-
پاسخ : طراحی سیستم عامل
سیستم های چند پردازنده ای تقسیم بندی سیستم عاملهای چند پردازندهای
سیستم عاملهای چند پردازندهای به دو دسته کلی متقارن و نامتقارن تقسیم میشوند:
سیستم عامل سیستم چند پردازندهای نامتقارن
- در سیستم چند پردازندهای نامتقارن ( (Asymmetric Multi Processing = ASMP یک پردازنده جهت اجراء سیستم عامل و پردازندههای دیگر جهت اجرای برنامههای کاربران استفاده میشود. از آنجا که کد سیستم عامل تنها روی یک پروسسور اجراء میشود, ساخت این نوع سیستم عامل نسبتا ساده است و از تعمیم سیستم عامل تک پردازندهای به دست میآید.
این نوع سیستم عاملها برای اجراء روی سخت افزارهای نامتقارن مناسب هستند, مانند کمک پردازنده و پردازندهای که به هم متصل هستند یا دو پردازندهای که از تمام حافظهموجود مشترکا" استفاده نمیکنند.
یکی از معایب سیستم عامل نامتقارن غیر قابل حمل بودن (non-portable) آن است . یعنی برای سخت افزارهای مختلف باید سیستم عاملهای مختلفی نوشته شود چرا که نامتقارنی میتواند حالات مختلف داشته باشد.
-
پاسخ : طراحی سیستم عامل
سیستم های چند پردازنده ای ویژگی ها و تفاوتها
سیستم عامل سیستم چند پردازندهای متقارن
- در سیستم چند پردازندهای متقارن (symmetric Multi Processing = ASMP) سیستم عامل میتواند روی هر یک از پروسسورهای آزاد یا روی تمام پردازندهها همزمان اجراء شود. در این حالت حافظه بین تمام آنها مشترک میباشد. تمام پردازندهها اعمال یکسانی را میتوانند انجام دهند.
سیستم متقارن از چند جنبه نسبت به نوع نامتقارن برتری دارد:
* از آنجا که سیستم عامل خود یک پردازش سنگین است اگر فقط روی یکCPUاجراء شود باعث میگردد که آن پردازنده همواره بار سنگینی داشته باشد, در حالیکه احتمالاً پردازندههای دیگر بی کار هستند لذا اجراء سیستم عامل روی چند پردازنده باعث متعادل شدن (balancing) بار سیستم میشود.
*در سیستم نامتقارن اگر پردازنده اجراء کننده سیستم عامل خراب شود کل سیستم خراب میشود ولی در سیستم متقارن از این نظر امینت بیشتر است چرا که اگر یک پردازنده از کار بیفتد سیستم عامل میتواند روی پردازندههای دیگر اجراء شود.
*بر عکس سیستم عامل نامتقارن , سیستم عامل قابل حمل ( portable) بر روی سیستم های سخت افزاری مختلف است.
سیستم عامل SUNOS ورژن 4 از نوع نامتقارن و سیستم عامل Solaris2 و همچنین windows NT از نوع متقارن میباشند.
وجود پردازندههای متعدد از دید کاربر مخفی است و زمانبندی نخها (Thread) یا فرآیندها (process) رویهر یک از پردازندهها به عهده سیستم عامل است . گرچه multithreading و multiprocessing امکانات مستقلی هستند ولی معمولاً با هم پیاده سازی میشوند. حتی در یک ماشین تک پردازندهای , چند نخی کارایی را افزایش میدهد. همچنین ماشین چند پردازندهای حتی برای فرآیندهای غیر نخی هم کارآمد است.
گاهی اوقات به سیستمهای چند پردازندهای ,سیستمهای Tightly Coupled یا ارتباط محکم نیز گفته میشود چرا که پردازندهها کلاک (Clock) ، گذرگاه و همچنین حافظه مشترکی دارند.
-
پاسخ : طراحی سیستم عامل
سیستم های بلادرنگ سیستمهای بی درنگ معمولاً به عنوان یک کنترل کننده در یک کاربرد خاص استفاده میشوند. سیستم در این حالت میبایست در زمانی مشخص و معین حتماً جواب مورد نظر را بدهد .
سیستمهای کنترل صنعتی ، پزشکی ،کنترل موشک و غیره از این دستهاند.
در سیستمهای بی درنگ زمان پاسخ باید سریع و تضمین شده باشد ولی در سیستم اشتراک زمانی مطلوبست که زمان پاسخ سریع باشند (ولی اجباری نیست).در سیستم دسته ای هیچ محدودیت زمانی در نظر گرفته نمی شود .
در سیستمهای بی درنگ معمولاً وسایل ذخیره سازی ثانویه وجود ندارد و به جای آن از حافظه های ROM استفاده میشود. سیستم عاملهای پیشرفته نیز در این سیستمها وجود ندارند چرا که سیستم عامل کاربر را از سخت افزار جدا میکند و این جدا سازی باعث عدم قطعیت در زمان پاسخگویی میشود.
سیستمهای بی درنگ با سیستمهای اشتراک زمانی تناقض دارند لذا نمیتوانند هر دو توأماً وجود داشته باشند به دلیل نیاز به پاسخ دهی سریع و تضمین شده سیستمهای بلادرنگ از حافظه مجازی و اشتراک زمانی استفاده نمیکنند. به این سیستمها «بی درنگ سخت» نیز گفته میشود .
در سیستمهای «بی درنگ نرم» یک وظیفه بی درنگ بحرانی, نسبت به سایر وظایف اولویت دارد و تا پایان تکمیل شدنش این ارجعیت را دارا خواهد بود. از آنجا که این سیستمها مهلت زمانی (deadline) را پشتیبانی نمی کنند استفاده از آنها در کنترل صنعتی ریسک آور است . هر چند که این سیستمهای بی درنگ نرم میبایست پاسخی سریع داشته باشند ولی مساله پاسخ دهی به حادی سیستمهای بی درنگ سخت نمیباشد .
از کاربردهای سیستم بی درنگ نرم میتوان رزرواسیون شرکتهای هواپیمایی ، چند رسانهای (multimedia) ، واقعیت مجازی (Virtual reality) را نام برد. این سیستمها به ویژگیهای سیستم عاملهای پیشرفته (که توسط بیدرنگ سخت حمایت نمیشوند)نیازمندند . بعضی از نسخههای UNIX مانند solaris 2 خاصیت بیدرنگ نرم را دارا میباشند.
در برخی کاربردها (مثل کنترل صنعتی)در کامپیوترها از سیستم عامل استفاده نمیشود. از آنجا که در سیستمهای کنترل صنعتی برنامه میبایست در اسرع وقت در مقابل یک اتفاق , از خود عکس العمل .نشان دهد , وجود واسطه سیستم عامل باعث کند شدن مراحل میگردد.
-
پاسخ : طراحی سیستم عامل
انواع سیستم عامل از نظر ساختار دسترسی به سخت افزار ممکن نیست مگر از طریق سیستم عامل
انواع سیستم عامل از لحاظ ساختار عبارتند از :
- تکنیک سیستم یکپارچه
- تکنیک سیستم لایه ای
- سیستم مجازی در سیستم عامل (ماشین مجازی)
سیستم مشتری – خدمتگزار (client / server )
-
پاسخ : طراحی سیستم عامل
تکنیک سیستم یکپارچه سیستمهای تجاری زیادی وجود دارند که ساختار خوش تعریفی ندارند. اغلب این سیستم عاملهابه عنوان سیستم های کوچک و محدودی شروع شدهاند و سپس به تدریج ورای دید اولیه طراحان گسترش یافتهاند
سیستم عامل dos از این دسته می باشد.
سیستم عامل به صورت یک مجموعه از رویهها نوشته شده است که هر یک از آنها میتوانند دیگری را به هنگام نیاز فراخوانی کنند . برای مخفی کردن اطلاعات امکاناتی وجود ندارد و هر رویه برای دیگر رویهها قابل مشاهده است
مثلاً در ms-dos واسطهها و سطوح عملیاتی به خوبی مجزا نشدهاند و برنامههای کاربردی میتوانند مستقیماً به توابع rom bios و یا حتی پورت دستگاههای مختلف (مثل هارد دیسک ) دسترسی پیدا کنند لذا به راحتی میتوان برنامههای مخرب زیادی تحت dos پدید آورد.
-
پاسخ : طراحی سیستم عامل
اکثر CPU ها دارای دو مد کاری هستند مد هسته که مخصوص سیستم عامل است و در آن تمامی دستورالعملها مجاز میباشد و دیگری مد کاربر است که مخصوص برنامههای کاربران بوده ودر آن دستورات I/Oو دستورالعملهای معین دیگری مجاز نمیباشند .
سیستم عامل DOS توسط سخت افزار زمان خود ( پردازنده 8088) محدود بوده است چرا که این پردازنده فقط در یک مد کار میکند و تمام دستورات در آن مجاز میباشد ولی پردازنده386 دارای مدهای مختلفی است که سیستم عامل ویندوز از آن به خوبی استفاده میکند .
برنامه ی کاربردی یکی از فراخوانهای سیستمی (توابع سیستم عامل) را صدا میزند . در این حال ماشین از مد کاربر (user mode) به مد هسته (kernel mode) تغییر حالت میدهد و کنترل به سیستم عامل سپرده میشود .سیستم عامل با توجه به پارامترهای تابع مذکور تعیین میکند کدام فراخوان سیستمی باید اجراء شود سپس سیستم عامل به جدولی رجوع میکند که در ردیف k ام آن جدول یک اشارهگر به رویه اجراء کننده فراخوان سیستمی وجود دارد..سپس آن روتین اجراء شده و در انتها کنترل به برنامه کاربر بر می گردد
-
پاسخ : طراحی سیستم عامل
تکنیک سیستم لایه ای در روش لایهای سیستم عامل به تعدادی سطح یا لایه تقسیم میشود که هر کدام در بالای لایه پائین تر قرار میگیرند. مزیت مهم این روش پیمانهای (modularity) بودن آن است. یعنی لایهها به گونهای تقسیم بندی میشوند که هر لایه فقط توابع و سرویس های لایه پائین تر را استفاده میکند. بدین ترتیب هر لایه را میتوان مستقل از لایههای دیگر طراحی کرد، بسط داد و خطایابی کرد. هر سطح با استفاده از اعمال لایههای پایین تر پیاده سازی میشود ولی آن سطح نمیداند که اعمال سطح پایین چگونه پیاده شدهاند وفقط باید بداند که آن اعمال چه میکنند. بدین ترتیب هر لایه مسائلی را از لایههای بالاتر مخفی میسازد.
-
پاسخ : طراحی سیستم عامل
اولین سیستم لایهای، سیستم THE با 6 لایه بود:
لایه صفر مسائل زمانبندی (scheduling) پردازنده را انجام میدهد یعنی اینکه در هر لحظه CPU در اختیار کدام برنامه باشد.
لایه یک مدیریت حافظه (اصلی و جانبی) را بر عهده دارد.
لایه دو ارتباط بین هر پروسس و کنسول اپراتور را برقرار میسازد.
لایه سه مدیریت دستگاههای I/O و بافر کردن اطلاعات را برعهده دارد . در بالای این لایه هر پروسس به جای دستگاههای I/O حقیقی و پیچیده با دستگاههای ساده و مجازی I/O سرو کار دارد.
در لایه چهار برنامههای کاربران اجراء میشوند که هیچ نگرانی در مورد مدیریت پروسس ,حافظه, کنسول و I/Oندارند.
در لایه پنجم پروسس اپراتور سیستم قرار میگیرد.
-
پاسخ : طراحی سیستم عامل
مشکل اصلی در روش لایهلایه, تعریف مناسب لایههای مناسب است. از آنجا که یک لایه فقط میتواند لایههای پایین تر را به کار برد برای طراحی آن باید دقت زیادی به خرج داد. مشکل دیگر این ساختار این است که نسبت به انواع دیگربازدهی کمتری دارند. هنگامی که دستورات از لایه بالا به سمت پایین حرکت میکنند, در هر لایه پارامترهای دستور ممکن است، از نظر صحت بررسی شده و یا تغییر یابند .لذا هر لایه قدری سر بار (overhead) به سیستم اضافه می کند و در نتیجه فراخوانی سیستمی نسبت به سیستم غیر لایهای بیشتر طول میکشد.
لذا در سالهای اخیر سعی شده است لایههای کمتری با قابلیت عمل بیشتری طراحی شود. به عنوان مثال محصول اولیه windows NT با لایههای زیاد, کارایی کمتری نسبت به ویندوز95داشت. درNT4.0 سعی شد لایه ها به همدیگر نزدیکتر و مجتمع تر شوند تا کارایی بیشتر گردد. سیستم MULTICS به جای لایهها به صورت یکسری حلقهها متحدالمرکز سازماندهی شده است بطوریکه هر حلقه داخلی از امتیازات بالاتری نسبت به حلقه خارجی خود بهره مند میباشد.اگر یک رویه از حلقه خارجی بخواهد یک رویه از حلقه داخلی را صدا بزند ، بایدیکی از فراخوانهای سیستمی را اجراء کند و اعتبار پارامترهای این دستورالعمل قبل از اجراء به دقت بررسی میشود. مثلاً یک استاد برنامه گرفتن امتحان ونمره دادن را در حلقه n مینویسد و برنامه دانشجویانش در حلقه n+1 اجراء میشود, بدین ترتیب دانشجویان نمیتوانند نمره خود را تغییر دهند.
-
پاسخ : طراحی سیستم عامل
سیستم مجازی در سیستم عامل سیستم عامل VM بر روی سیستمهای IBM بهترین مثال از مفهوم ماشین مجازی است . قلب سیستم که به مانیتور ماشین مجازی (Virual Machine Monitor) معروف است، بر روی سخت افزار عریانی اجراء شده و چند برنامگی را پدید میآورد, این مانیتور مجازی را در لایه بالاتر فراهم میسازد. این ماشین های مجازی برای کاربران مشابه یک نسخه ازسخت افزار عریان هستند که دارای مودهای کاربر و هسته، I/O، وقفه ها و چیزهای دیگر «ماشین حقیقی» میباشند. به هر کاربر ماشین مجازی خودش داده میشود و او میتواند هر یک از سیستم عاملها یا بستههای نرم افزاری موجود را روی ماشین خودش اجراء کند.
Forum Modifications By
Marco Mamdouh