به طور خلاصه و کلی از سیستم عامل میتوان به عنوان رابط کاربر و سخت افزار یاد کرد.

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

 

در ادامه با 5 نمونه از ساختارهای سیستم عامل به طور مختصر و مفید آشنا خواهید شد.

1- ساختار یکپارچه (Monolitic)

در ساختار یکپارچه هیچ دسته بندی و سلسله مراتب خاصی وجود ندارد و از پیاده سازی ساده ای برخوردار است.

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

برنامه های کاربردی میتوانند توابع سیستم عامل (System Call) را صدا بزنند که در این صورت، ماشین از حالت کاربر (User Mode) به حالت هسته (Kernel Mode) رفته و کنترل به سیستم عامل منتقل میشود.

همچنین روتین سرویس دهی مورد نظر اجرا میشود و در انتها به برنامه کاربر بازمیگردد.

 

2- ساختار لایه ای

ویژگی ساختار لایه ای از روی نام آن پیداست و آن چند لایه بودن ساختار است.

لایه های پایین به لایه های سطح بالا سرویس میدهند.

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

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

 

3- ماشین های مجازی

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

این ماشین ها هر یک، کپی دقیقی از سخت افزار ساده به همراه حالت کاربر و کرنل، ورودی/خروجی وقفه ها و تمام مواردی است که یک ماشین واقعی داراست؛ و نیز هر کدام میتوانند هر سیستم عاملی را که قادر به اجرا بر روی سخت افزار ساده باشد، اجرا نمایند.

 

مزایای ماشین های مجازی عبارتند از:

– هر ماشین مجازی از سایر ماشین ها کاملاً جداست. برنامه های کاربران همزمان اجرا میشوند و با یکدیگر هیچ تداخلی ندارند.

– میتوان سیستم عامل های مختلفی را به طور همزمان روی ماشین های مجازی اجرا نمود؛ در حالی که سایر کاربران در حال استفاده از سیستم هستند.

مثال این نوع سیستم عامل، سیستم عامل VM/370 بر روی سیستم های IBM است.

مثال دیگر، ایجاد ماشین های مجازی اینتل بر روی پردازنده های کامپیوتر های غیر اینتل است؛ در این حالت ماشین مجازی دستورات اینتل را به دستورات پردازنده جدید تبدیل میکند.

 

4- ساختار EXOKERNEL

در سیستم VM/370 هر فرآیند کاربر، یک کپی از کامپیوتر را در اختیار دارد.

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

به این معنی که مثلاً یک ماشین مجازی بخشی از بلوک های یک دیسک را فرضاً از صفر تا 1023 در اختیار میگرفت و ماشین های دیگر به همین ترتیب بلوک های دیگری را به خود اختصاص میدادند.

در لایه زیرین، برنامه ای در حالت کرنل (Kernel Mode) به نام EXOKERNEL اجرا شد که کار اصلی این لایه تخصیص منابع به ماشین های مجازی و به کارگیری مجزا در هر ماشین بود، البته با این اطمینان که هیچ ماشینی سعی در استفاده از منابع دیگر ماشین ها نداشت.

هر ماشین مجازی همانند VM/370 در لایه کاربر، سیستم عامل خودش را استفاده میکرد.

 

از مزیت های سیستم EXOKERNEL این است که لایه نگاشت صرفه جویی میشود.

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

در صورتی که در این سیستم نگاشت مجددی مورد نیاز نیست و این سیستم فقط منابعی که هر ماشین مجازی به خود اختصاص داده است را باید پیگیری و ردیابی کند، همچنین ساختار EXOKERNEL نیز از مزیت چند برنامگی برای هر ماشین مجازی با سربار کمتر از VM/370 برخوردار است.

 

5- مدل مشتری – خدمتگزار

یک روند در سیستم های عامل مدرن بر این ایده مبتنی است که کد به لایه های بالاتر انتقال یابد و تا حد امکان از سیستم عامل کم گردد و آنرا تا حد یک هسته کمینه کوجک نماید.

بیشتر وظایف سیستم عامل در فرآیندهای کاربر پیاده سازی میشود.

برای درخواست خدماتی نظیر خواندن یک بلوک از فایل، یک فرآیند کاربر، درخواست را به فرآیند خدمت گزار میفرستند؛ آنگاه پس از انجام این کار پاسخ را برمیگرداند.

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

 

مزایای مدل مشتری – خدمت گزار عبارتند از:

– با شکافتن سیستم عامل به بخش های کوچک که هر کدام یک وظیفه از سیستم را به عهده دارند، طراحی و پیاده سازی این سیستم بسیار ساده تر خواهد شد.

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

برای مثال چنانچه در خدمت گزار فایل اشکالی رخ دهد، باعث خراجی کل سیستم نخواهد شد.

– این مدل با سیستم های توزیع شده سازگار است.