مرکز دانلود خلاصه کتاب و جزوات دانشگاهی

مرکز دانلود تحقیق رايگان دانش آموزان و فروش آنلاين انواع مقالات، پروژه های دانشجويی،جزوات دانشگاهی، خلاصه کتاب، كارورزی و کارآموزی، طرح لایه باز کارت ویزیت، تراکت مشاغل و...(توجه: اگر شما نویسنده یا پدیدآورنده اثر هستید در صورت عدم رضایت از نمایش اثر خود به منظور حذف اثر از سایت به پشتیبانی پیام دهید)

نمونه سوالات کارشناسی ارشد دانشگاه پیام نور (سوالات تخصصی)

نمونه سوالات کارشناسی دانشگاه پیام نور (سوالات تخصصی)

نمونه سوالات دانشگاه پيام نور (سوالات عمومی)

کارآموزی و کارورزی

مقالات رشته حسابداری و اقتصاد

مقالات علوم اجتماعی و جامعه شناسی

مقالات روانشناسی و علوم تربیتی

مقالات فقهی و حقوق

مقالات تاریخ- جغرافی

مقالات دینی و مذهبی

مقالات علوم سیاسی

مقالات مدیریت و سازمان

مقالات پزشکی - مامایی- میکروبیولوژی

مقالات صنعت- معماری- کشاورزی-برق

مقالات ریاضی- فیزیک- شیمی

مقالات کامپیوتر و شبکه

مقالات ادبیات- هنر - گرافیک

اقدام پژوهی و گزارش تخصصی معلمان

پاورپوئینت و بروشورر آماده

طرح توجیهی کارآفرینی

آمار سایت

آمار بازدید

  • بازدید امروز : 1006
  • بازدید دیروز : 2772
  • بازدید کل : 13119138

سیستم عامل2


 

معرفی کلی انواع هسته های سیستم عامل

کرنل ها بخش اصلی یک سیستم عامل را تشکیل می دهند ووظایف اساسی از قبیل مدیریت حافظه . مدیریت سخت افزار . ایجاد بستر مناسب برایاینترفیس ها و ... را به عهده دارد .

کرنل ها بستگی به نوع ساختار خود به دسته های مختلفی تقسیم میشوند اما در کل به دسته Monolithic Kernel ها و Micro Kernel ها تقسیم بندی می شوند .

Monolithic Kernel
در کرنل های monolithic معمولا کرنل به عنوانیک تک برنامه در بالای مموری نشسته و سیستم را مدیریت می کند. این نوع کرنل ها کهبه هسته های یکپارچه در فارسی معروفند به خاطر وابستگی قسمت های مختلف به یکدیگردرصورت بروز مشکل در یک قسمت امکان دارد کل سیستم مختل شود . البته در صورت نبودچنین مشکلی این ارتباط نزدیک بخش های مختلف یکی از مزایای این سیستم به شمار می رود .
لینوکس و یونیکس از معروفترین این نوع کرنل ها هستند.

شمای کلی این نوع کرنل :

 


Micro Kernel
ریزهسته ها یا micro kernel هابیشتر تمرکز خود را بر اجرای device driver ها و سرویس ها در محیط userspace دارند . مزیت این سیستم ها این است که در صورت بروز مشکل در یک قسمت بقیه قسمت ها بدونمشکل کار خواهند كرد.

Minix , AIXاز معروفترین این نوع کرنل ها هستند.

در این تقسیم بندی ساختار های دیگری نیز وجود دارد مثل :
Hybird Kernel

که از زیرمجموعه Micro Kernel ها هستند و در واقع برایبهبود Micro Kernel شامل کدهای در حافظه هستند.

Modular Kernel

این کرنل ها قسمت های مختلف را به صورت module بعد از لود شدن کرنل لود می کنند .
البته این تقسیم بندی در اینجا تمامنمی شود کرنل های دیگری مثله Nano Kernel ها و ExoKernel ها هم وجوددارد.

 

آشنایی با هسته‌ی لینوکس - سیستم های عامل، یونیکس و لینوکس

سیستم فایل هر کامپیوتر، امکان ذخیره سازی فایل‌ها و اطلاعات را روی آن فراهم می‌سازد. هنگامی که از داخل برنامه واژه پرداز خود سندی را ذخیره می‌کنید، این سیستم فایل است که تعیین می‌کند سند چگونه و کجا ذخیره شود. در واقع به نوعي نحوه ذخيره سازي و سازماندهي فايلها را روي رسانه ذخيره سازي مشخص ميكند. اينكه كاربر بتواند براي دسترسي به فايلها سطح دسترسي تعيين كند از امكاناتي است كه سيستم فايل در اختيار كاربر خود قرار ميدهد.

سيستم عامل لينوكس برعكس ويندوز - كه تنها از فايل سيستم هاي FAT و NTFS پشتيباني ميكند – قابليت پشتيباني از فايل سيستم هاي متنوعي را دارد مانند EXT3, EXT2, ReiserFS , XFS , و ...

شايد به راحتي نتوان يك فايل سيستم را از جميع جهات به عنوان بهترين فايل سيستم انتخاب كرد به همين دليل ما در اين مقاله به بررسي اجمالي برخي ويژگيهاي فايل سيستم هاي مطرح خواهيم پرداخت.

يك سناريو:

فرض كنيد روي اين سرور لينوكس شما قصد داريد سرويسي را براي كاربران شبكه ارائه بدهيد. شما بايد يك تصميم مهم بگيريد و آن تصميم نوع فايل سيستمي هست كه بايد براي سرور خود انتخاب كنيد.

براي اينكه يك انتخاب خوب داشته باشيد بايد به سوالات زير جواب دهيد.

1. آيا قصد استفاده از فايل سيستم هاي جورنالينگ رو داريد؟

2. نوع سرويسي كه قرار هست سرور شما ارائه دهد بيشتر وابسته به پردازنده سريع است يا يك ديسك پرسرعت؟ اينكه برنامه شما از پردازنده بيشتري استفاده خواهد كرد به طور قطع اين پيام رو براي شما خواهد داشت كه بايد از فايل سيستمي استفاده كنيد كه بار كمتري به سيستم شما اضافه كند. از طرف ديگر اگه برنامه شما تراكنش زيادي با ديسك خواهد داشت شما بايد از فايل سيستمي استفاده كنيد كه فارغ از سرعت پردازنده شما ، بتواند عمليات خواندن و نوشتن را سريع انجام دهد.

دقت كنيد كه فايل سيستم ها نقاط ضعف و قوت مختلفي در مواجه با شرايط مختلف دارند. مثلا ممكن است يك فايل سيستم فايلهاي زياد ولي كم حجم را به خوبي پشتيباني كند ولي همان فايل سيستم با فايلهاي حجيم بازدهي مناسبي نداشته باشد. بنابراين لازم است درك صحيح و واضحي برنامه هاي سرور خود داشته باشيد.

نكته: نتايج زير حاصل انجام تست روي لينوكس با كرنل 2.6 ميباشد.

JFS يا XFS:

هر دوي اين فايل سيستم ها از نظر پايداري به اندازه فايل سيستم ext3 مناسب هستند ولي از نظر سرعت XFS به نظر يك فايل سيستم سريع تر است. در حالي كه به نسبت فايل سيستم JFS از پردازنده بيشتري استفاده ميكند. از طرف ديگر وقتي پاي تعداد زياد فايل در ميان باشد JFS به طور محسوسي كند ميشود.

وقتي سرور ما با برنامه اي كار ميكند كه تراكنش زيادي را با ديسك انجام ميدهد شرايط به كم پارامتريك تر ميشود. چرا كه دراين حالت نوع ديسك. تعداد فايلها و نيز حجم فايلها اهميت زيادي در انتخاب فايل سيستم بهتر خواهند داشت.

ReiserFS

فايل سيتم ReiserFS v4 در تست هاي به عمل آمده سريع ترين فايل سيستم شناخته شده است ولي در نظر داشته باشيد كه اين ورژن از فايل سيستم ReiserFS هنوز به مراحل پاياني توليد خود نرسيده است. به هر حال در تست هايي كه Bonnie++ انجام داده سرعت اين فايل سيستم %95 سريع تر از EXT3 و %65 سريع تر از ReiserFS v3 بوده است.

اگر شما با تعداد زيادي از فايلهاي كم حجم سر و كار داريد فايل سيستم ReiserFS v3 فايل سيستم مناسبي است ولي اگر به فايل سيستمي براي كار با فايلهايي با حجم متوسط به بالا نياز داريد XFS يك انتخاب مناسب است.

اگر از نظر پردازنده در مضيقه هستيد و سرور شما نياز مبرمي به پردازنده دارد بنابراين شما بهتر است از فايل سيستم JFS كه كمترين بار روي پردازنده شما رو دارد استفاده كنيد.

 

 

فايل سيستم (File system)

در يك سيستم عامل به ساختار كلي نامگذاري ، ذخيره سازي و سازماندهيفايل ها گفته مي شود . سيستم فايل ها ، داده ها را به واحدهايي به نام Cluster تقسيم بندي مي كنند . هر كلاستر مي تواند فقط بخشي از يك فايل را نگه دارد . يكفايل ممكن است چندين كلاستر را به خود اختصاص دهد ،و مقداري فضاي خالي در آخرينكلاستر بلا استفاده باقي بماند . كلاستر هاي كوچك مي توانند داده هاي بيشتري در يكديسك جاي بدهند ( چون فضاي بلا استفاده كمتري به وجود مي آورند ) اما كلاستر هايبزرگ ، كارايي را بالا مي برند ( در كلاسترهاي بزرگتر ، داده هاي بيشتري مي توانددر هر كلاستر نگهداري شود . بدين معني كه براي بازيابي آن ، سيستم كار كمتري انجاممي دهد و در نتيجه به طور كارآمدتر و سريعتر آن را بازيابي مي كند ) اندازه كلاستردر اندازه ديسك سختي كه كامپيوتر مي تواند پشتيباني كند نيز نقش دارد .

Fat مخفف File Allocatin Table،

جدول تخصيص فضا به فايل . اين جدول كه در نزديكيهايابتداي ديسك سخت ذخيره مي شود ، توسط سيستم عامل نگهداري مي شود تا فضاي مورداستفاده براي ذخيره سازي فايل ها را مديريت كند . اين جدول وظيفه نگهداري فضاهايموجود در ديسك را بر عهده دارد تا سگمنت هاي خراب غير قابل استفاده ، علامت گذاريشوند و قسمت هاي مختلف يك فايل با يكديگر مرتبط شوند . در واقع هنگام ذخيره داده هاروي ديسك سخت ، سيستم جهت دستيابي به كلاسترهاي خالي با Fat مشورت كرده و هم درهنگام اجرا فايل ، Fat را جستجو مي كند تا كلاسترهاي مرتبط با آن را يافته واطلاعات ذخيره شده در آن كلاسترها را بخواند . دو نوع Fat اصلي وجود دارد : Fat 16 , Fat32

Fat 16 :

اين سيستم فايل ، يك سيستم فايل 16 بيتي است ، زيرا كلاسترهايي را تشخيص مي دهد كه 16 بيت طول ( يا رقم ) دارند . اندازه كلاسترهاي Fat بستهبه مقدار فضا درايوي است و از آنجا كه Fat16 نمي تواند به اندازه Fat32 كلاسترداشته باشد ، براي پوشش دادن به مقدار يكساني از فضا به كلاسترهاي بزرگتري نيازدارد . Windows XP كلاسترهاي 64 كيلو بايتي را براي Fat16 پشنيباني مي كند. چون Fat16 فقط 65,536 كلاستر را پشتيباني مي كند ، با اين سيستم فايل ، حداكثر يكپارتيشن 4 گيگابايتي را مي توان تقسيم بندي كرد .

Fat32 : يك سيستم فايل 32بيتي است ، مي تواند كلاسترهاي بيشتري را نسبت به Fat16 آدرس دهي كند . در نتيجه Fat32 مي تواند از كلاسترهاي كوچكتري براي كارآمدتر كردن سيستم ذخيره سازي ، بهرهبگيرد . همچنين بدين مفهوم است كه Fat32 مي تواند پارتيشنهاي بزرگتري را پشتيبانيكند . Fat32 با كلاسترهاي 32 بيتي مي تواند پارتيشنهايي تا 8 ترا بايت را پشتيبانيكند .

NTFS مخفف NT File System مي باشد . در سيستم فايل fat ، جدول تخصيصفضا ( File Allocation Table ) داشتيم و در اينجا جدول فايل اصلي ( MFT: Master File Table ) داريم . البته MFT بسيار پيچيده تر است . MFT صفات فايل را براي هرفايل ذخيره شده در پارتيشن NTFS ذخيره مي كند . ( صفات فايل هر چيزي را كه لازم استدرباره يك فايل دانست ، توصيف مي كند . در NTFS حتي داده هاي موجود در يك فايل نيزصفت فايل محسوب مي شود . اسم ، مكان ، و اطلاعات امنيتي نيز ، از ديگر صفات فايلمحسوب مي شود )
NTFS در صورت امكان همه صفات فايل را ، شامل داده هاي فايل ، در MFT ذخيره مي كند . ( هر چند در اكثر موارد ، جاي كافي براي ذخيره همه صفات در MFT وجود ندارد . در اين زمان صفت داده اي به خارج MFT انتقال مي يابد
Metadata:MFT اساسا داده هايي درباره خود Data است . بعنوان مثال عنوان ، موضوع ، مولف و اندازه يك فايل ، Metadata آن فايل راتشكيل مي دهند ) NTFS از فايلهاي Metadata براي مديريت داده هاي روي پارتيشن بهرهمي گيرد . بعضي از مهمترين فايلهاي Metadata بشرح زير است :
MFT Mirror : MFT يك نسخه پشتيبان از MFT است . در ابتداي سطح ديسك ذخيره مي شود ، در حاليكه MFT Mirror در وسط ديسك قرار مي گيرد . و در صورت خراب شدن MFT اصلي مي تواند مساله راحل كند . و اطلاعات لازم را براي بازيابي داده ها روي سيستم فراهم كند .

Log File : كه Log Journal نيز ناميده مي شود ، تغييرات روي سيستم فايل را ثبت مي كند . Log File فقط عملياتي را كه انجام مي گيرد ثبت مي كند ، نه داده هايي كه اصلاح ميشوند .

Cluster Allocation Bitmap نقشه اي از پارتيشن را در خود دارد . سيستم مي تواند اين اطلاعات را براي يافتن كلاسترهاي موحود به كار گيرد

Bad Cluster File : بخشهايي از ديسك را كه معيوب شده اند ، علامت گذاري ميكند . بدين ترتيب NTFS از كلاسترهاي معيوب كه در اين فايل علامت گذاري شده اند برايذخيره داده هاي جديد استفاده نخواهد كرد .
Quota Table : جدول سهميه ها ،يك خصوصيت جديد در windows 2000/xp با استفاده از اين خصوصيت مي توانيد بعنوان مديرسيستم ، دايركتوري ها و زير دايركتوري ها را در ديسك سخت كنترل كنيد . و ميزان مصرففضاي ديسك سخت كاربران مختلف يك كامپيوتر را كنترل كنيد

.
NFTS مي تواندتعداد كلاسترهاي بيشتري را نسبت به Fat32 پشتيباني كند . در نتيجه ، كلاسترهاي NTFS عموما كوچك و براي حفظ فضاي ديسك سخت ، كارآمد هستند . يكي ديگر از مزاياي NTFS پشتيباني آن براي مجوزهاي فايل و دايركتوري است . اين خصوصيت امنيتي ، اطمينان ميدهد كه فقط كاربران خاصي به فايلها و دايركتوري ها ي ويژه دسترسي دارند .

درميان آنچه ذكر شد ، سيستم فايل كارآمد NTFS است . چون مي تواند براي پارتيشنهاي 2گيگابايت و بيشتر ، كلاسترهاي 4 كيلو بايتي ايجاد كند ، كه بهترين تعادل بين سرعتعمل ديسك سخت و صرفه جويي در فضاي ديسك را فراهم مي سازد . و در واقع بهترين كارآييرا به سيستم مي دهد .

ساختار سیستم فایل لینوکس و یونیکس

 

سیستم فایل هر کامپیوتر، امکان ذخیره سازی فایل ها و اطلاعات را روی آن فراهم می سازد. هنگامی که از داخل برنامه واژه پرداز خود سندی را ذخیره می کنید، این سیستم فایل است که تعیین می کند سند چگونه و کجا ذخیره شود.

ابزارهای ذخیره سازی مانند فلاپی دیسک ها، دیسک های سخت، درایوهای CD-ROM، درایوهای Zip و... تا قبل از اینکه سیستم عامل سیستم فایل را روی آنها تشکیل دهد، قابل استفاده نیستند.

سیستم فایلهای گوناگونی برای سیستم عامل های مبتنی بر یونیکس و لینوکس ارائه شده اند که برخی از آنها عبارتند از ext2، ext3، xfs، reiserfs و غیره. این سیستم فایل ها در جزئیات فنی دارای تفاوت هایی با هم هستند ولی از نظر ساختاری که ایجاد می کنند مشابه بوده و تفاوت چندانی باهم ندارند. در این مقاله ما وارد جزئیات فنی هر نوع از سیستم فایلها نشده و تنها ساختار آنها را بررسی خواهیم کرد.

● سیستم فایل یا درخت؟

سیستم فایل سیستم عامل های مبتنی بر یونیکس و لینوکس بصورت یک درخت وارونه پیاده سازی شده است. در یونیکس و لینوکس دیگر شما چیزی به نام درایوهای A، C و ... ندارید. تمام ابزارها و سیستم فایلها شاخه هایی از این درخت وارونه هستند. مرکز این درخت ریشه یا root نام دارد که بالاترین سطح سیستم فایل را تشکیل می دهد. زیر ریشه، پوشه هایی قرار دارند که سایر قسمت های سیستم فایل را تشکیل می دهند که اکنون درباره آنها توضیح می دهم. تصویر 1 سیستم فایل سیستم های مبتنی بر یونیکس و لینوکس را نشان می دهد.

همانطور که می بینید سیستم فایل از تعداد زیادی پوشه تشکیل شده است که این پوشه ها تقریبا در تمامی سیستم عامل های مبتنی بر یونیکس و لینوکس مشترک هستند. اکنون به تشریح تک تک این شاخه ها پرداخته و در میان آن توضیحات اضافه را به شما ارائه خواهم کرد.

● پارتیشن ها

در سیستم فایل سیستم عامل های مبتنی بر لینوکس و یونیکس، دیسک های سخت می توانند پارتیشن های متعددی داشته باشند. در این صورت هر پارتیشن دارای یک نقطه اتصال یا mount point می باشد که در آن نقطه به درخت سیستم فایل متصل می شود. مثلا می توانید اطلاعات کاربران سیستم را در یک پارتیشن جداگانه ذخیره نموده و نقطه اتصال آنرا home تعیین کنید که محل قرارگیری اطلاعات کاربران است و به همین ترتیب.

بخش های درخت سیستم فایل

اکنون به بررسی تک تک شاخه های سیستم فایل می پردازیم. توجه داشته باشید که دسترسی به اکثر این شاخه ها فقط توسط کاربر ریشه امکان پذیر است.

 

- شاخه bin:

در این شاخه، دستورات سیستم عامل که برای تمام کاربران قابل دستیابی هستند و برخی دستورات مدیریتی سیستم قرار می گیرند.

- شاخه boot:

این شاخه که می تواند در یک پارتیشن جداگانه بوده و به پوشه boot متصل شده باشد، حاوی برنامه راه نداز بوت سیستم عامل می باشد. مانند Grub و Lilo.

- شاخه dev:

محل قرارگیری نقطه دسترسی های ابزارهای سخت افزاری است. مثلا تمام پورت ها، پارتیشن ها و... در اینجا دارای یک فایل هستند. برای مثال فایل dev/fd0 نشاندهنده فلاپی درایو سیستم است و به همین ترتیب. بسیاری از برنامه های کاربردی از این فایلهای دسترسی برای خواندن و نوشتن داده ها بر روی ابزار مورد نظرشان استفاده می کنند. مثلا یک برنامه کاربردی فایل dev/fd0 را باز کرده و در آن می نویسد. در حقیقت اطلاعات روی درایو فلاپی و دیسکی که در آن قرار دارد، نوشته خواهد شد.

- شاخه etc:

در این شاخه فایل های پیکربندی برنامه های سرویس دهنده و برخی فایلهای سیستمی دیگر قرار می گیرند. مثلا فایل پیکربندی سرویس دهنده وب آپاچی در سیستم های دبیان در etc/apache/http.conf قرار دارد و به همین ترتیب.

- شاخه home:

در این شاخه دایرکتوری های خانگی کاربران سیستم و اطلاعات آنها قرار می گیرد. بهتر است این شاخه در یک پارتیشن جداگانه قرار گرفته و متصل شود. این کار حفاظت از داده های کاربران را بالاتر خواهد برد. ضمنا در صورت نیاز به فرمت و نصب مجدد سیستم، اطلاعات کاربران دست نخورده باقی مانده و پس از نصب مجدد، کلیه تنظیمات شخصی و اطلاعات آنها بدون تغییر باقی خواهند ماند.

- شاخه lib:

این شاخه همانطور که از نام آن پیداست، محل قرار گیری فایل های کتابخانه برنامه ها است. این کتابخانه ها توسط برنامه های کاربردی و ابزارهای برنامه نویسی بکار گرفته می شوند.

- شاخه mnt:

این شاخه معمولا دارای زیرشاخه هایی مانند floppy و cdrom بوده و محل اتصال سنتی درایوهای فلاپی و CD-ROM می باشد. همچنین پارتیشن ها دیگر دیسک سخت را نیز می توانید در این شاخه متصل نمایید. البته اجباری به این کار وجود ندارد. مثلا در سیستم های مبتنی بر دبیان، درایوهای فلاپی و CDROM در شاخه های floppy و cdrom که در زیر ریشه قرار دارند، متصل می شوند. اتصال و برداشتن اتصال پارتیشن ها و درایوها با استفاده از دستور mount صورت می گیرد. اشتراکات شبکه را نیز می توانید در این شاخه متصل نمایید.

- شاخه proc:

این شاخه یک سیستم فایل مجازی است که برخی اطلاعات مربوط به سیستم و هسته از آن قابل دستیابی می باشد. مثلا فایل version در این شاخه حاوی اطلاعات هسته سیستم عامل مانند نسخه آن و ... می باشد.

- شاخه sbin:

دستورات و برنامه های مدیریتی سیستم در این شاخه قرار می گیرند که مخصوص کاربر root است.

- شاخه tmp:

محل قرارگیری برخی فایلهای موقتی برنامه های کاربردی است.

- شاخه usr:

بسیاری از برنامه های کاربردی در این شاخه نصب می شوند. مثلا Xwindow در این شاخه قرار دارد. همچنین برخی دستورات و دستورات مدیریتی نیز در مسیرهای usr/bin و usr/sbin قرار می گیرند.

 

- شاخه var:

این شاخه که معمولا در کامپیوترهای سرویس دهنده در یک پارتیشن جداگانه قرار می گیرد، مخصوص برنامه های سرویس دهنده ای مانند وب و FTP و بانکهای اطلاعاتی است. مثلا فایل های مربوط به یک وب سایت می توانند در var/www قرار گیرند. به دلیل اینکه در برخی از حملات DOS دیسک سخت سیستم با فایل های آشغال پر می شود، این شاخه را در یک پارتیشن جداگانه قرار می دهند که در صورت قرارگیری تحت حمله و پرشدن احتمالی دیسک سخت، کل سیستم عامل دچار وقفه نگردد و آسیب به همان قسمت محدود شود.

تمامی شاخه هایی که در بالا توضیح داده شد، می توانند در پارتیشن های جداگانه قرار داده شوند. ولی ضرورتی ندارد.

 

● پارتیشن swap

هنگام نصب لینوکس، پارتیشنی به نام swap می سازید. کاربرد این پارتیشن چیست؟ این پارتیشن که تحت ساختار سیستم فایل جایی متصل نمی شود، محل قرارگیری swapping file لینوکس که همان حافظه مجازی روی دیسک سخت است، می باشد. بهتر است حجم آنرا برابر یا 2 برابر حافظه سیستم خود تعیین نمایید.

 

یک سیستم فایل موازی نسل جدید برای کلاسترهای لینوکس

 

دانشمندان علوم کامپیوتر از کامپیوترهای عظیم موازی به منظور شبیه سازی رویدادهایی که در دنیای واقعی رخ می دهند استفاده می کنند. این اعمال در چنین مقیاس بزرگی جهت درک بهتر نمودهای علمی یا پیش بینی رفتارها لازم و ضروری می باشند. در اغلب موارد منابع محاسباتی یک فاکتور محدود کننده در حوزه این شبیه سازی ها محسوب می گردند. منابع محدود تنها شامل CPU و حافظه نمی شوند، بلکه این منابع زیرسیستم های ورودی/خروجی را نیز در بر می گیرند، چرا که چنین برنامه هایی معمولا حجم زیادی از داده را تولید و یا پردازش می نمایند. برای اینکه روند شبیه سازی با سرعت بالا اجرا شده و ادامه یابد، سیستم ورودی/خروجی بایستی قادر به ذخیره صدها مگابایت داده در هر ثانیه باشد، و در این عملیات باید دیسک های زیادی مورد استفاده قرار گیرد. نرم افزاری که این دیسک ها را به صورت یک سیستم فایل مرتبط سازماندهی می کند یک "سیستم فایل موازی" نامیده می شود.

سیستم های فایل موازی بویژه به منظور فراهم نمودن ورودی/خروجی های بسیار سریع در مواقعی که بایستی توسط پردازش های زیادی در یک لحظه مورد دسترسی قرار گیرند طراحی شده اند. این پردازش ها میان چندین کامپیوتر مختلف، یا میان گره ها(nodes)، که کامپیوتر موازی را تشکیل می دهند توزیع گردیده است. شکل 1 یک نمای سطح بالا از یک کامپیوتر موازی به همراه یک سیستم فایل موازی را نمایش می دهد. گره هایی که کار محاسبه را انجام می دهند به یکدیگر متصل شده اند و از سوی دیگر توسط شبکه کلاستر به گره های سرور ورودی/خروجی مرتبط هستند، و داده را بر روی دیسک های الصاقی به گره های سرور ذخیره می نمایند.

لازم نیست که شما برای بهره بردن از یک سیستم فایل موازی در یک لابراتوار ملی، که دارای یک کلاستر 1000 گره ای است، مشغول به کار باشید. برای سالها سیستم فایل موازی مجازی (PVFS) مخصوص کلاسترهای لینوکس در دسترس بوده است، که به هر شخصی امکان برپا کردن و استفاده از همان سیستم فایل موازی که در حال حاضر بر روی کلاسترهای بزرگ فراوانی در سراسر دنیا مورد استفاده قرار می گیرند را می دهد. اخیرا یک سیستم فایل موازی کامل تر و جدیدتر بنام PVFS2 عرضه شده است. این سیستم فایل جدید دارای انعطاف پذیری بیشتری بوده، و بهره بیشتری از سخت افزار موجود در کلاسترهای امروزی می برد، با کلاسترهای بزرگتر مطابقت بیشتری دارد، و مدیریت آن نسبت به نسل قبل ساده تر است.

  • مفاهیم سیستم فایل موازی

برای دستیابی به کارآیی بالا، یک سیستم فایل موازی فایل ها را همانند سیستم RAID میان گره ها قطعه قطعه و تقسیم می نماید. در این سیستم، بجای دیسک ها، گره ها سرورهای داده محسوب می شوند. همانگونه که یک RAID چندین کانال را به منظور افزایش کارآیی در یک مجموعه از دیسک های محلی متمرکز می کند، یک سیستم فایل موازی نیز اتصالات شبکه را در یک مجموعه از دیسک هایی که به صورت شبکه در آمده اند متمرکز می نماید. قطعه قطعه کردن داده در میان گره ها یک روش ساده برای دستیابی به موازی سازی میان چندین سیستم ورودی/خروجی سری است. بر خلاف حالتی که چندین گره از یک RAID به صورت اشتراکی استفاده می کنند، یک سیستم فایل موازی قادر به استفاده همزمان از چندین لینک شبکه، با حذف گلوگاه محدودکننده، می باشد. تا زمانی که فایلها به این روش قطعه قطعه می شوند و برنامه های موازی وادار به کار بر روی نواحی معینی از یک فایل به اشتراک گذاشته شده می گردند، شبکه و محتویات لود شده دیسک ها توانایی گسترش در میان گره های ذخیره سازی را دارند. >

در مقابل، سیستم های فایل شبکه ای دارای نقش متفاوتی هستند. امروزه، داشتن یک پیکربندی از چندین ماشین با برخی از انواع ذخیره سازی اشتراکی یا سیستم فایل همچون NFS، Windows Networking یا AppleTalk دیگر امر غیر عادی محسوب نمی شود. این سیستم ها با توجه به پیشرفت های حاصل شده در کارآیی آنها (پیشرفت هایی نظیر عمل کش کردن سمت کلاینت) به خوبی home directory ها کار خود را انجام می دهند. کش سازی سمت کلاینت تاریخچه تغییرات محلی فایل را بدون بروزرسانی بیدرنگ در وضعیتی که داده بر روی سرور و یا بر روی حافظه های کش موجود بر روی سایر کلاینت ها ذخیره شده باشد نگه داری می کند. این رویکرد بطور کلی بارگذاری های شبکه را کاهش داده و سرعت انجام اعمال معمولی از قبیل ویرایش یا کامپایل فایل ها را به روشی که هزینه های شبکه را تقریبا شفاف می سازد افزایش می دهد.

در حالی که مزیت کش سازی سمت کلاینت در سیستم های فایل شبکه ای بر کسی پوشیده نیست، برنامه های موازی در صورتیکه داده ارائه شده به آنها ناهماهنگ و متناقض باشد می توانند نتایج نادرستی را تولید نمایند. اگر پردازش ها همواره یک دید مشترک از داده را به اشتراک گذارند، برنامه های موازی قادر خواهند بود بدون خطا به کار خود ادامه دهند. یک روش، حصول اطمینان از این مسئله است که حافظه های کش موجود در هر گره همواره حاوی آخرین داده است. تکنیک های گوناگونی برای حفظ هماهنگی و سازگاری وجود دارد، که توسط هر تکنیک به مشخصه های متفاوتی از کارآیی می توان دست یافت.

برای مثال، برخی سیستم های فایل کلاستر مسئله سازگاری و هماهنگی داده را با استفاده از قفل های فایل به منظور جلوگیری از دستیابی همزمان به فایل حل می کنند. بطور کلی، قفل ها روشی برای حصول اطمینان از این مطلب هستند که تنها یک فرایند در یک لحظه قادر به اعمال تغییرات بر روی داده است. در یک سیستم فایل شبکه ای، معمولا یک قفل بایستی از یک مدیر قفل مرکزی کسب اجازه نماید. قفل های فایل نوع Coarse-grained تضمین می کنند که فقط یک پردازش در یک لحظه قادر به نوشتن داده در یک فایل باشد. کارآیی با افزایش تعداد پردازش ها تنزل خواهد یافت. سایر روش ها شامل طرح های قفل فایل fine-grained، همچون قفل محدوده بایت (byte-range)، می باشند که این امکان را فراهم می آورند که چندین پردازش بصورت همزمان نواحی مختلفی از یک فایل به اشتراک گذاشته شده را بنویسند. به هر حال، آنها با محدودیت های مقیاس پذیری ((scalability نیز مواجه می شوند. بالاسری (overhead) ناشی از نگهداری تعداد زیادی از قفل های از این نوع در نهایت به تنزل کارآیی ختم می گردد. در حالت کلی تر، هر سیستم قفل شبکه ای با یک گلوگاه محدود کننده برای دسترسی داده مواجه می شود. برای دستیابی به مقیاس پذیری و کارآیی در مورد درخواست های برنامه هایی که اعمال ورودی/خروجی زیادی دارند، یک سیستم بدون بالاسری قابل توجه (همچون قفل کردن) و بدون عرضه متفاوت داده میان گره ها (همچون کش سازی سمت کلاینت) مورد نیاز است. برنامه های موازی تمایل دارند که هر فرایند را وادار به نوشتن در نواحی مجزایی از یک فایل به اشتراک گذاشته شده نمایند. برای این نوع برنامه ها، در حقیقت هیچ نیازی به عمل قفل کردن نیست، و ما می خواهیم که تمام اعمال نوشتن بصورت موازی و بدون تاخیر موجود در چنین رویکردهایی ادامه یابد.

بجای داشتن یک سیستم فایل با کارآیی بالا که زمان زیادی را صرف مجادله برای منابع مشترک یا تلاش برای حفظ سازگاری و هماهنگی حافظه های کش کند، حالت ایده آل این است که سیستمی را طراحی کنیم که به اشتراک گذاری منابع و سازگاری مناسب را پشتیبانی نماید. PVFS2 مثالی از یک سیستم فایل موازی نسل آینده است که برای برآورده ساختن این موارد طراحی شده است. در قسمت بعد به بحث در مورد چگونگی راه اندازی PVFS2 خواهیم پرداخت.

● سیستم PVFS2

PVFS2 نشان می دهد که ساختن یک سیستم فایل موازی که بصورت مجازی با پی ریزی دقیق فوق داده و فضانام و همچنین تعریف معانی دستیابی داده که می تواند بدون قفل کردن در دسترس قرار گیرد سازگاری را حفظ کند، امکانپذیر است. این طراحی به بروز برخی از رفتارهای سیستم فایل که مورد انتظار تعدادی از برنامه های سنتی نیست ختم می شود. این معانی در زمینه ورودی/خروجی موازی بحث جدیدی به شمار نمی روند. PVFS2 بصورت دقیق تر معانی را که توسط MPI-IO، یک API ورودی/خروجی با کارآیی بالا، دیکته می شود پیاده سازی می نماید.

PVFS2 همچنین دارای پشتیبانی محلی برای الگوهای انعطاف پذیر ناپیوسته دستیابی داده می باشد. اغلب برنامه های سنتی (نظیر "cat" و "vi") به نواحی داده پیوسته از فایل های باز شده دسترسی دارند، در حالیکه برنامه های علمی اغلب اوقات نیازمند الگوهای دستیابی هستند که ناپیوسته باشند. برای مثال، شما می توانید برنامه ای را تصور نمایید که ستونی از عناصر خارج از یک آرایه را می خواند. برای بازیابی این داده، برنامه ممکن است تعداد زیادی عمل خواندن کوچک و پراکنده را بر روی سیستم فایل انجام دهد. در صورتیکه، اگر بتواند طی یک مرحله تمامی عناصر ناپیوسته را از سیستم فایل درخواست نماید، هم سیستم فایل و هم برنامه به نحو کارآمد تری وظیفه خود را انجام خواهند داد (شکل 2 را ببینید).

علاوه بر کارآیی، ثبات و مقیاس پذیری scalability)) نیز اهداف مهم طراحی به شمار می آیند. به منظور کمک به دستیابی به این اهداف، PVFS2 بر اساس یک معماری مستقل از وضعیت ((stateless طراحی گردیده است. این به آن معنی است که سرورهای PVFS2 تاریخچه مربوط به اطلاعات سیستم فایل، اطلاعاتی مانند اینکه کدام فایل ها باز شده اند یا موقعیت فایل ها و مواردی از این قبیل، را نگهداری نمی کنند. همچنین در این مورد هیچ وضعیت قفل مشترکی برای مدیریت وجود ندارد. مزیت اصلی یک معماری مستقل از وضعیت این است که در آن کلاینت ها قادرند بدون بهم زدن کل سیستم دچار خطا شده و مجددا به کار خود ادامه دهند. این معماری همچنین به PVFS2 این امکان را می دهد که در مواجهه با صدها سرور و هزاران کلاینت بدون اینکه تحت فشار بالاسری و پیچیدگی پیگیری وضعیت فایل یا اطلاعات قفل متعلق به کلاینت های مذکور قرار گیرد وظیفه خود را بدرستی انجام دهد.

بر خلاف PVFS نسل گذشته، PVFS2 دارای یک سیستم شبکه ای و ذخیره سازی ماژولار است. یک سیستم ذخیره سازی ماژولار این امکان را برای چندین back-end ذخیره سازی فراهم می آورد که به راحتی به PVFS2 متصل شوند. این خاصیت تلفیقی کار افرادی را که در حال تحقیق بر روی ورودی/خروجی به منظور آزمایش و تجربه تکنیک های مختلف ذخیره سازی هستند ساده می سازد. همچنین یک سیستم شبکه ای ماژولار اجازه کار بر روی اتصالی از شبکه های چندگانه را داده و فرایند افزودن پشتیبانی برای انواع دیگری از شبکه ها را آسان می نماید. PVFS2 در حال حاضر TCP/IP و همچنین شبکه های Infinibandو Myrinet را پشتیبانی می کند.

این طراحی ها PVFS2 را قادر به انجام وظایف خود به نحو عالی در یک محیط موازی می سازد، اما در وضعیتی که به عنوان یک سیستم فایل محلی مورد استفاده قرار گیرد کار خود را به خوبی قبل انجام نخواهد داد. بدون کش سازی فوق داده سمت کلاینت، برخی اعمال زمان زیادی صرف می کنند.این امر می تواند مدت زمان انجام برنامه هایی همچون "ls" را بیشتر از حد انتظار افزایش دهد. با وجود این محدودیت، PVFS2 برای برنامه هایی که دارای اعمال ورودی/خروجی زیادی هستند مناسب تر است، تا اینکه برای میزبانی یک home directory مورد استفاده قرار گیرد. PVFS2 برای خواندن و نوشتن کارآمد حجم زیادی از داده بهینه شده است، و از اینرو بسیار مناسب برنامه های علمی می باشد.

● اجزاء PVFS2

بسته اصلی PVFS2 شامل سه جزء متفاوت است: یک سرور، یک کلاینت و یک ماژول کرنل. سرور بر روی گره هایی که داده سیستم فایل یا فوق داده را ذخیره می کنند اجرا می شود. کلاینت و ماژول کرنل نیز بوسیله گره هایی که به شکل فعال داده (یا فوق داده) را از سرورهای PVFS2 ذخیره یا بازیابی می کنند مورد استفاده قرار می گیرند. بر خلاف PVFS اصلی، هر سرور PVFS2 توانایی ایفای نقش به عنوان یک سرور داده، یک سرور فوق داده یا هر دو را بصورت همزمان دارد. همانگونه که قبلا گفته شد، سیستم های فایل موازی از تعدادی گره سود می برند که تمام داده میان آنها به شکل قابل پیش بینی قطعه قطعه شده است. این گره ها همان سرورهای داده در PVFS2 هستند. برخی از انواع پیکربندی نیز ممکن است از چندین سرور فوق داده بهره ببرند. ذخیره کردن فوق داده در میان چندین گره کمکی است به موازنه بارگذاری سرور تحت اعمالی که شامل دسترسی سنگین و زیاد به فوق داده هستند (مثلا ایجاد یا تغییر نام تعداد زیادی فایل). این نوع پیکربندی بطور کامل در PVFS2 پشتیبانی می گردد. بهرحال، تعداد سرورهای فوق داده هیچ فشاری بر روی اعمال خواندن یا نوشتن وارد نمی آورد، و اکثر برنامه های علمی اعمال فوق داده کافی جهت هر گونه بهره برداری از پیچیدگی افزوده انجام نمی دهند.

کلاینت های PVFS2 با سرورهای PVFS2 بر روی اتصال شبکه ارتباط برقرار می نمایند. تمامی ارتباط به صورت اختیاری به حالت رمز در می آیند تا اطمینان حاصل گردد که ماشین های دارای معماری های متفاوت توانایی درک یکدیگر را دارند. یک کلاستر مختلط شامل گره های x86، Itanium و PowerPC را تصور نمایید. رمزبندی ارتباط ما تضمین می کند که تمامی گره ها قادر به استفاده از یک PVFS2 volume، صرفنظر از ترتیب بایت محلی یا اندازه کلمه خواهند بود. ماژول کرنل PVFS2 یک درایور کرنل لینوکس است که به یک PVFS2 اجازه نصب را همانند هر نوع سیستم فایل لینوکس دیگری می دهد. وظیفه اصلی آن ترجمه واضح تمامی اعمال سیستم فایل به دستورات کلاینت PVFS2 بر روی PVFS2 نصب شده است.

● دستیابی به سیستم های فایل PVFS2

دو روش جهت دستیابی به سیستم های فایل PVFS2 فراهم گردیده است. روش اول نصب کردن سیستم فایل PVFS2 است. این روش اعمال تغییرات توسط کاربر و دایرکتوری های لیست، یا انتقال فایل ها و همچنین اجرای باینری ها از سیستم فایل را مجاز می شمارد. این مکانیزم با برخی بالاسری های کارآیی مواجه می گردد اما مناسب ترین روش جهت دستیابی تعاملی به سیستم فایل می باشد.برنامه های علمی از روش دوم (MPI-IO) استفاده می نمایند. اینترفیس MPI-IO به دستیابی بهینه به فایل های منفرد توسط تعداد زیادی از پردازش ها بر روی گره های مختلف کمک می کند. آن همچنین اعمال دستیابی غیرپیوسته را فراهم می آورد که جهت دستیابی کارآمد به داده گسترش یافته در سراسر فایل مورد استفاده قرار می گیرد. در مورد تصویر 2 این کار با درخواست هر عنصر هشتمی که در آفست 0 شروع شده و در آفست 56 پایان می یابد، کلا به عنوان یک عملیات سیستم فایل، صورت می پذیرد. در این مقاله ما بر روی روش اول تمرکز کرده ایم.

● راه اندازی PVFS2

PVFS2 جهت اجرا بر روی چندین ماشین در نظر گرفته شده است. در هر صورت، برای سادگی کار، ما PVFS2 را بر روی یک ماشین نصب و راه اندازی می کنیم. ما ماشین را با نام "testmachine1" صدا خواهیم زد و نصب را در محل پیش فرض (/usr/local) انجام خواهیم داد. سپس نسخه PVFS2 را در /mnt/pvfs نصب خواهیم کرد. فرایند مربوط به نصب بر روی چندین ماشین کاملا مشابه روند گفته شده است. PVFS2 بر روی اغلب توزیع های جدید GNU/Linux ایجاد شده است، اما اگر شما مایلید از ماژول کرنل استفاده نمایید، شما به کرنل لینوکس نسخه 2.6.0-test4 یا پس از آن نیاز خواهید داشت. PVFS2 با استفاده از "configure" و "make" ایجاد و نصب گردیده است. در مثال هایی که در ادامه آمده است اینگونه فرض شده که شما به عنوان root وارد سیستم شده اید. در صورتیکه شما مایل به ایجاد ماژول کرنل باشید گزینه "--with-kernel" مورد نیاز خواهد بود.

./configure --with-kernel=/usr/src/linux-2.6.x

▪ make

make install

اگر شما قصد ایجاد ماژول کرنل اختیاری را دارید، اکنون باید آن را بصورت مجزا کامپایل نمایید. این کار را با تغییر دایرکتوری ها به دایرکتوری "src/kernel/linux-2.6" و اجرای "make" انجام دهید. پس از اینکه ماژول ایجاد شد، فایل pvfs2.ko را در محلی به انتخاب خود کپی نمایید (مثلا در /lib/modules/`uname -r`/kernel/fs/pvfs2.ko). پس از آنکه نرم افزار ایجاد و نصب گردید، بایستی پیکربندی شود. بسته PVFS2 ابزاری بنام pvfs2-genconfig را جهت ایجاد فایل های پیکربندی برای هر یک از سرورهای شما فراهم آورده است. هر سرور به دو فایل پیکربندی نیاز دارد (یکی برای پیش فرض های عمومی، و یکی برای تنظیمات محلی) که بایستی در هنگام اجرای pvfs2-genconfig مشخص گردند. یک مثال دستور خط فرمان می تواند به صورت زیر باشد:

▪ pvfs2-genconfig global.conf local.conf

این فرمان اطلاعات دیگری نیز از شما دریافت می نماید؛ بهرحال، احتمالا موارد پیش فرض برای این مثال کفایت می کند. توجه داشته باشید که فایل های ایجاد شده global.conf و local.conf-testmachine1 خواهند بود. قبل از آغاز به کار سرور PVFS2، شما بایستی دایرکتوری هایی را که برای عمل ذخیره سازی مورد استفاده قرار خواهند گرفت را تعیین نمایید. این کار بسیار ساده با آغاز pvfs2-server به همراه یک آرگومان "-f" در کنار نام فایل های پیکربندی صورت می گیرد.

▪ pvfs2-server global.conf local.conf-testmachine1 -f

سرور، فضای ذخیره سازی را آغاز سازی نموده و سپس خارج می شود. حال از این پس با همین خط فرمان اما بدون آرگومان "-f" می تواند شروع به کار نماید.

▪ pvfs2-server global.conf local.conftestmachine1

در مرحله بعد، یک فایل با نام /etc/pvfs2tab ایجاد نمایید. این فایل حاوی خط زیر است:

▪ tcp://testmachine1:3334/pvfs2-fs /mnt/pvfs pvfs2 default 0 0

در این مرحله از کار، اگر شما اینترفیس ماژول کرنل لینوکس را مورد آزمایش قرار نداده اید، می توانید بدون هیچ مشکلی به قسمت Testing بروید. در غیر اینصورت، همین حالا آن را با استفاده از insmod یا modprobe لود نمایید. گام بعدی آغاز به کار برنامه کلاینت PVFS2 است. برنامه کلاینت PVFS2 شامل دو برنامه به نام های pvfs2-client-core و pvfs2-client است. در صورتیکه برنامه pvfs2-client-core در PATH سیستم شما نصب شده باشد، برنامه pvfs2-client آن را بصورت خودکار یافته و شما به سادگی می توانید "pvfs2-client" را اجرا نمایید. در غیر اینصورت، شما باید با استفاده از سوییچ خط فرمان –p محل برنامه pvfs2-client-core را برای pvfs2-client مشخص نمایید.

▪ pvfs2-client -p /usr/local/bin/pvfs2-client-core

و در نهایت، برای نصب نوع نسخه PVFS2 :

▪ mount -t pvfs2 pvfs2 /mnt/pvfs

حالا PVFS2 نصب شده و آماده آزمایش است!

● سیستم فایل جدید خود را آزمایش نمایید

نخستین کار استفاده از ابزار pvfs2-ping به منظور اطمینان از روشن و در حال اجرا بودن سرور است. این ابزار طی یکسری مراحل تعیین می نماید که سیستم بدرستی پیکربندی شده و به درخواست هایی که از سوی کلاینت (کلاینتی که بر روی آن نصب شده است) صادر می شود پاسخ می دهد.

▪ pvfs2-ping -m /mnt/pvfs

سپس یک فایل را با استفاده از pvfs2-import بر روی سیستم کپی نمایید. این ابزار از برخی جهات شبیه "cp" است، اما در هنگام انتقال داده به سیستم فایل از بافرهای بزرگی استفاده می کند. همچنین زمان کپی را محاسبه می نماید.

▪ pvfs2-import linuxdistro.iso /mnt/pvfs/linuxdistro.iso

برای چک کردن فضای قابل استفاده بر روی سرورها، ما ابزاری بنام pvfs2-statfs فراهم کرده ایم. این ابزار اطلاعات را مشابه فرمان "df" گزارش می دهد؛ آن در میان تمامی سرورهای PVFS2 پیکربندی شده شما کار خود را انجام می دهد. همانند "df"، استفاده از گزینه "-h" موجب نمایش خروجی در اندازه خوانا توسط انسان می شود.

▪ pvfs2-statfs -h -m /mnt/pvfs

اگر شما PVFS2 را نصب کرده باشید، امکان استفاده از ابزارهای سیستمی استاندارد همچون "cp" و "df" برای شما فراهم خواهد بود. در هنگام کار با سیستم فایل آزمایشی تان، این احتمال وجود دارد که برخی از اعمال بنظر پاسخ دهندگی کمی داشته باشند. مجددا ذکر این نکته اهمیت دارد که سیستم های فایل موازی همچون PVFS2 برای انتقال حجم زیادی از داده بهینه شده اند.

 

● نتیجه گیری

هیچ سیستم فایلی وجود ندارد که راه حل کاملی برای هر نوع از اعمال ورودی/خروجی باشد، و PVFS2 نیز از این قاعده مستثنی نیست. برنامه های با کارآیی بالا برای دستیابی داده بر روی مجموعه متفاوتی از مشخصه ها تکیه دارند. به طور خاص، PVFS2 جهت برنامه های دارای حجم زیادی از اعمال ورودی/خروجی بسیار مناسب است. اگر شما حجم زیادی از داده دارید و نیازمند دسترسی سریع به آن از ماشین های فراوانی هستید، ارزش آن را دارد که نگاهی به PVFS2 بیاندازید.

 

معرفی کلی انواع هسته های سیستم عامل

کرنل ها بخش اصلی یک سیستم عامل را تشکیل می دهند ووظایف اساسی از قبیل مدیریت حافظه . مدیریت سخت افزار . ایجاد بستر مناسب برایاینترفیس ها و ... را به عهده دارد .

کرنل ها بستگی به نوع ساختار خود به دسته های مختلفی تقسیم میشوند اما در کل به دسته Monolithic Kernel ها و Micro Kernel ها تقسیم بندی می شوند .

Monolithic Kernel
در کرنل های monolithic معمولا کرنل به عنوانیک تک برنامه در بالای مموری نشسته و سیستم را مدیریت می کند. این نوع کرنل ها کهبه هسته های یکپارچه در فارسی معروفند به خاطر وابستگی قسمت های مختلف به یکدیگردرصورت بروز مشکل در یک قسمت امکان دارد کل سیستم مختل شود . البته در صورت نبودچنین مشکلی این ارتباط نزدیک بخش های مختلف یکی از مزایای این سیستم به شمار می رود .
لینوکس و یونیکس از معروفترین این نوع کرنل ها هستند.

شمای کلی این نوع کرنل :

 


Micro Kernel
ریزهسته ها یا micro kernel هابیشتر تمرکز خود را بر اجرای device driver ها و سرویس ها در محیط userspace دارند . مزیت این سیستم ها این است که در صورت بروز مشکل در یک قسمت بقیه قسمت ها بدونمشکل کار خواهند كرد.

Minix , AIXاز معروفترین این نوع کرنل ها هستند.

در این تقسیم بندی ساختار های دیگری نیز وجود دارد مثل :
Hybird Kernel

که از زیرمجموعه Micro Kernel ها هستند و در واقع برایبهبود Micro Kernel شامل کدهای در حافظه هستند.

Modular Kernel

این کرنل ها قسمت های مختلف را به صورت module بعد از لود شدن کرنل لود می کنند .
البته این تقسیم بندی در اینجا تمامنمی شود کرنل های دیگری مثله Nano Kernel ها و ExoKernel ها هم وجوددارد.

 

آشنایی با هسته‌ی لینوکس - سیستم های عامل، یونیکس و لینوکس

سیستم فایل هر کامپیوتر، امکان ذخیره سازی فایل‌ها و اطلاعات را روی آن فراهم می‌سازد. هنگامی که از داخل برنامه واژه پرداز خود سندی را ذخیره می‌کنید، این سیستم فایل است که تعیین می‌کند سند چگونه و کجا ذخیره شود. در واقع به نوعي نحوه ذخيره سازي و سازماندهي فايلها را روي رسانه ذخيره سازي مشخص ميكند. اينكه كاربر بتواند براي دسترسي به فايلها سطح دسترسي تعيين كند از امكاناتي است كه سيستم فايل در اختيار كاربر خود قرار ميدهد.

سيستم عامل لينوكس برعكس ويندوز - كه تنها از فايل سيستم هاي FAT و NTFS پشتيباني ميكند – قابليت پشتيباني از فايل سيستم هاي متنوعي را دارد مانند EXT3, EXT2, ReiserFS , XFS , و ...

شايد به راحتي نتوان يك فايل سيستم را از جميع جهات به عنوان بهترين فايل سيستم انتخاب كرد به همين دليل ما در اين مقاله به بررسي اجمالي برخي ويژگيهاي فايل سيستم هاي مطرح خواهيم پرداخت.

يك سناريو:

فرض كنيد روي اين سرور لينوكس شما قصد داريد سرويسي را براي كاربران شبكه ارائه بدهيد. شما بايد يك تصميم مهم بگيريد و آن تصميم نوع فايل سيستمي هست كه بايد براي سرور خود انتخاب كنيد.

براي اينكه يك انتخاب خوب داشته باشيد بايد به سوالات زير جواب دهيد.

1. آيا قصد استفاده از فايل سيستم هاي جورنالينگ رو داريد؟

2. نوع سرويسي كه قرار هست سرور شما ارائه دهد بيشتر وابسته به پردازنده سريع است يا يك ديسك پرسرعت؟ اينكه برنامه شما از پردازنده بيشتري استفاده خواهد كرد به طور قطع اين پيام رو براي شما خواهد داشت كه بايد از فايل سيستمي استفاده كنيد كه بار كمتري به سيستم شما اضافه كند. از طرف ديگر اگه برنامه شما تراكنش زيادي با ديسك خواهد داشت شما بايد از فايل سيستمي استفاده كنيد كه فارغ از سرعت پردازنده شما ، بتواند عمليات خواندن و نوشتن را سريع انجام دهد.

دقت كنيد كه فايل سيستم ها نقاط ضعف و قوت مختلفي در مواجه با شرايط مختلف دارند. مثلا ممكن است يك فايل سيستم فايلهاي زياد ولي كم حجم را به خوبي پشتيباني كند ولي همان فايل سيستم با فايلهاي حجيم بازدهي مناسبي نداشته باشد. بنابراين لازم است درك صحيح و واضحي برنامه هاي سرور خود داشته باشيد.

نكته: نتايج زير حاصل انجام تست روي لينوكس با كرنل 2.6 ميباشد.

JFS يا XFS:

هر دوي اين فايل سيستم ها از نظر پايداري به اندازه فايل سيستم ext3 مناسب هستند ولي از نظر سرعت XFS به نظر يك فايل سيستم سريع تر است. در حالي كه به نسبت فايل سيستم JFS از پردازنده بيشتري استفاده ميكند. از طرف ديگر وقتي پاي تعداد زياد فايل در ميان باشد JFS به طور محسوسي كند ميشود.

وقتي سرور ما با برنامه اي كار ميكند كه تراكنش زيادي را با ديسك انجام ميدهد شرايط به كم پارامتريك تر ميشود. چرا كه دراين حالت نوع ديسك. تعداد فايلها و نيز حجم فايلها اهميت زيادي در انتخاب فايل سيستم بهتر خواهند داشت.

ReiserFS

فايل سيتم ReiserFS v4 در تست هاي به عمل آمده سريع ترين فايل سيستم شناخته شده است ولي در نظر داشته باشيد كه اين ورژن از فايل سيستم ReiserFS هنوز به مراحل پاياني توليد خود نرسيده است. به هر حال در تست هايي كه Bonnie++ انجام داده سرعت اين فايل سيستم %95 سريع تر از EXT3 و %65 سريع تر از ReiserFS v3 بوده است.

اگر شما با تعداد زيادي از فايلهاي كم حجم سر و كار داريد فايل سيستم ReiserFS v3 فايل سيستم مناسبي است ولي اگر به فايل سيستمي براي كار با فايلهايي با حجم متوسط به بالا نياز داريد XFS يك انتخاب مناسب است.

اگر از نظر پردازنده در مضيقه هستيد و سرور شما نياز مبرمي به پردازنده دارد بنابراين شما بهتر است از فايل سيستم JFS كه كمترين بار روي پردازنده شما رو دارد استفاده كنيد.

 

 

فايل سيستم (File system)

در يك سيستم عامل به ساختار كلي نامگذاري ، ذخيره سازي و سازماندهيفايل ها گفته مي شود . سيستم فايل ها ، داده ها را به واحدهايي به نام Clus

  انتشار : ۲۲ آبان ۱۳۹۵               تعداد بازدید : 1073

دفتر فنی دانشجو

توجه: چنانچه هرگونه مشكلي در دانلود فايل هاي خريداري شده و يا هر سوال و راهنمایی نیاز داشتيد لطفا جهت ارتباط سریعتر ازطريق شماره تلفن و ايميل اعلام شده ارتباط برقرار نماييد.

فید خبر خوان    نقشه سایت    تماس با ما