سیستم های عامل نامتقارن

سیستم های عامل نامتقارن



سیستم های عامل نامتقارن: کامپیوترها می‌توانند به جای یک CPU چندین CPU داشته باشند که در اینصورت به آنها سیستم multiprocessing میگویند. جهت استفاده از این سیستمها نیاز به یک سیستم عامل خاص می‌باشد که بتواند چندین برنامه یا نخهای یک فرایند را به صورت موازی واقعی روی آنها اجراء کند. سیستم عامل multitasking برای اجراء چند نخ بر روی یک CPU و سیستم عامل multiprocessing برای اجرای چند نخ بر روی چند CPU به کار می‌روند.  در سیستم چند پردازنده‌ای، CPU ها باید بتواند ازحافظه، امکانات ورودی و خروجی و گذرگاه BUS سیستم به صورت اشتراکی استفاده کنند. مزایای این سیستمهای عبارتند از: زیاد شدن توان عملیاتی ( throughput ). منظور از throughput تعداد کارهایی است که در یک واحد زمانی تمام می‌شوند. بدیهی است هر چقدر تعداد پردازنده‌ها بیشتر باشد تعداد کارهای تمام شده در یک پریود زمانی نیز بیشتر خواهد بود. البته این نسبت خطی نیست، مثلا اگر تعداد پردازنده‌ها n باشد سرعت اجراء برنامه‌ها n برابر نمی‌شود چرا که بخشی از وقت پردازنده‌ها جهت مسائل کنترلی و امنیتی و سوئیچ کردن ها به هدر می‌رود. صرفه جویی در هزینه‌ها، از آنجا که پردازنده‌ها منابع تغذیه، دیسکها، حافظه‌ها و ادوات جانبی را به صورت مشترک استفاده می‌کنند در هزینه‌های سخت افزاری صرفه‌جویی می‌شود (سیستم های عامل متقارن).

تحمل پذیری در برابر خطا ( fault-tolerant) سیستم های مالتی پروسسور قابلیت اعتماد را افزایش می‌دهند چرا که خرابی یک CPU سبب توقف سیستم نمی‌شود بلکه تنها سبب کند شدن آن خواهد شد. استمرار عمل با وجود خرابی نیازمند مکانیزمی است که اجازه دهد خرابی جستوجو شده، تشخیص داده شده و در صورت امکان اصلاح شود (یا کنار گذاشته شود). این توانایی به ادامه سرویس، متناسب با سطح بقای سخت افزار، تنزل مطبوع یا graceful degradation نامیده می‌شود (سیستم های عامل متقارن).


سیستمهای عامل های چند پردازنده‌ای به دو دسته کلی متقارن و نامتقارن تقسیم می‌شوند:
در سیستم چند پردازنده‌ای نامتقارن ( Asymmetric Multi Processing = ASMP ) یک پردازنده جهت اجراء سیستم عامل و پردازنده‌های دیگر جهت اجرای برنامه‌های کاربران استفاده می‌شود. از آنجا که کد سیستم عامل تنها روی یک پروسسور اجراء می‌شود، ساخت این نوع سیستم عامل نسبتا ساده است و از تعمیم سیستم عامل تک پردازنده‌‌ای به دست می‌آید.
این نوع سیستم عامل‌ها برای اجراء روی سخت افزارهای نامتقارن مناسب هستند، مانند کمک پردازنده‌ و پردازنده‌ای که به هم متصل هستند یا دو پردازنده‌ای که از تمام حافظه‌ موجود مشترکا” استفاده نمی‌کنند. یکی از معایب سیستم عامل نامتقارن غیر قابل حمل بودن (non-portable) آن است. یعنی برای سخت افزارهای مختلف باید سیستم عاملهای مختلفی نوشته شود چرا که نامتقارنی می‌تواند حالات مختلف داشته باشد (سیستم های عامل نامتقارن).
در سیستم چند پردازنده‌ای متقارن ( symmetric Multi Processing = ASMP ) سیستم عامل می‌تواند روی هر یک از پروسسورهای آزاد یا روی تمام پردازنده‌ها همزمان اجراء شود. در این حالت حافظه بین تمام آنها مشترک می‌باشد. تمام پردازنده‌ها اعمال یکسانی را می‌توانند انجام دهند. سیستم متقارن از چند جنبه نسبت به نوع نامتقارن برتری دارد:
از آنجا که سیستم عامل خود یک پردازش سنگین است اگر فقط روی یک CPU ها اجراء شود باعث می‌گردد که آن پردازنده همواره بار سنگینی داشته باشد، در حالیکه احتمالاً پردازنده‌های دیگر بی کار هستند لذا اجرای سیستم عامل روی چند پردازنده باعث متعادل شدن ( balancing ) بار سیستم می‌شود.
در سیستم نامتقارن اگر پردازنده اجرا کننده سیستم عامل خراب شود کل سیستم خراب می‌شود ولی در سیستم متقارن از این نظر امینت بیشتر است چرا که اگر یک پردازنده از کار بیفتد سیستم عامل می‌تواند روی پردازنده‌های دیگر اجراء شود (سیستم های عامل متقارن).
بر عکس سیستم عامل نامتقارن، سیستم عامل قابل حمل ( portable ) بر روی سیستم های سخت افزاری مختلف است.
سیستم عامل SUNOS ورژن 4 از نوع نامتقارن و سیستم عامل Solaris2 ورژن و همچنین windows NT از نوع متقارن می‌باشند.
وجود پردازنده‌های متعدد از دید کاربر مخفی است و زمانبندی نخها ( Thread ) یا فرآیندها ( process ) روی هر یک از پردازنده‌ها به عهده سیستم عامل است.
گرچه Multithriding و Multiprocessing امکانات مستقلی هستند ولی معمولاً با هم پیاده سازی می‌شوند. حتی در یک ماشین تک پردازنده‌ای، چند نخی کارایی را افزایش می‌دهد. همچنین ماشین چند پردازنده‌ای حتی برای فرآیندهای غیر نخی هم کارآمد است.
گاهی اوقات به سیستمهای چند پردازنده‌ای، سیستمهای Tightly Coupled یا ارتباط محکم نیز گفته می‌شود. چرا که پردازنده‌ها کلاک (Clock)، گذرگاه و همچنین حافظه مشترکی دارند.


منبع: سایت راسخون