سیستم عاملهای کامپیوترهای شخصی و شبکه
سیستم عاملهای کامپیوترهای شخصی و شبکه
ابداع (Large Scale Integrated Circuit) از سال 1980 تا کنون که مدارات مجتمع با مقیاس بزرگ شدند، به عنوان نسل چهارم کامپیوترها شناخته میشود. در این سالها کامپیوترهای شخصی با قیمتی ارزان و کارآیی بالا و محیط گرافیکی و محاورهای بسیار خوب به سرعت گسترش یافتند. سیستم عاملهای اولیه بر روی PCها مانند DOS فقط تک کاره و تک برنامهای بودند.
ولی سیستم عاملهای امروزی آن مانند windows NT خاصیتهای چند برنامگی، چند کاربره (multiuser) و شبکه ای را دارا هستند. با توجه به هزینه اندک سخت افزار اهداف سیستم عامل در طول زمان تغییر کرده و برای PCها به جای ماکزیمم کردن درصد استفاده CPU و وسایل جانبی ، سیستم به سمت راحتی کاربر پیش میرود.
به تدریج ویژگیهای مهم سیستم عاملهای قدیمی در کامپیوترهای بزرگ (مانند حفاظت حافظه ، حافظه مجازی, محافظت فایلها ، همزمانی پردازشها و...) بر روی سیستم های PC نیز پیاده سازی شده است .
هنگامی که کامپیوترها از طریق شبکه به هم وصل شوند. به آنها ایستگاههای کاری (Work stations) میگویند . در یک سیستم عامل شبکه , کاربران از وجود ماشین های مختلف در شبکه با خبرند. آنها میتوانند از دور وارد یک ماشین شوند و همچنین فایلهای یک ماشین را روی ماشین دیگر کپی کنند .
هر کامپیوتر سیستم عامل محلی خودش را اجراء میکند و کاربر یا کاربران محلی مخصوص به خود را دارد.
سیستم های توزیع شده
سیستم عامل توزیع شده در یک محیط شبکه ای اجراء میشود. در این سیستم قسمتهای مختلف برنامه کاربر بدون آنکه خود او متوجه شود میتوانند همزمان در چند کامپیوتر مجزا اجراء شده و سپس نتایج نهایی به کامپیوتر اصلی کاربر بر گردند.
کاربران نباید از این موضوع باخبر شوند که برنامه آنها در کجا به اجراء در میآید و یا فایلهای آنها در کجای شبکه قرار دارد و همه این کارها باید توسط سیستم عامل به صورت خودکار انجام گیرد . به عبارت دیگر سیستم باید از دید کاربر شفاف باشد و هرچیز را با نام آن فراخوانی کند و کاری به آدرس آن نداشته باشد
یکی از مزایای مهم سیستمهای توزیع شده سرعت بالای اجرای برنامههاست چرا که یک برنامه همزمان میتواند از چندین کامپیوتر برای اجراء شدنش استفاده کند .
همچنین به علت توزیع شدن اطلاعات, بانکهای اطلاعاتی حجیم میتوانند روی یکسری کامپیوترهای شبکه شده قرار بگیرند و لازم نیست که همه اطلاعات به یک کامپیوتر مرکزی فرستاده شود (که در نتیجه این نقل و انتقالات حجیم زمان زیادی به هدر میرود).
به علت تأخیرهای انتقال در شبکه و نویزهای احتمالی در خطوط انتقالی قابلیت اعتماد اجرای یک برنامه دریک سیستم تنها ، بیشتر از قابلیت اجرای آن دریک سیستم توزیع شده است .
همچنین درسیستم توزیع شده اگر یکی از کامپیوترهایی که وظیفه اصلی برنامه جاری را برعهده دارد خراب شود کل عمل سیستم مختل خواهد شد . از طرف دیگر اگر اطلاعاتی همزمان در چند کامپیوتر به صورت یکسان ذخیره گردد و یکی از کامپیوترها خراب شود، داده ها را میتوان از کامپیوترهای دیگر بازیابی کرد، از این نظر امنیت افزایش مییابد.
به سیستم های توزیع شده گاهی اوقات سیستمهای Loosely Coupled یا ارتباط ضعیف نیز میگویند,چرا که هر پردازنده کلاک و حافظه مستقلی دارد .
پردازندهها از طریق خطوط مخابراتی مختلفی مثل گذرگاههای سریع یا خطوط تلفن ارتباط دارند.
سیستم های چند پردازنده ای
کامپیوترها میتوانند به جای یک 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) رویهر یک از پردازندهها به عهده سیستم عامل است . گرچه multithreading و multiprocessing امکانات مستقلی هستند ولی معمولاً با هم پیاده سازی میشوند. حتی در یک ماشین تک پردازندهای , چند نخی کارایی را افزایش میدهد. همچنین ماشین چند پردازندهای حتی برای فرآیندهای غیر نخی هم کارآمد است.
گاهی اوقات به سیستمهای چند پردازندهای ,سیستمهای Tightly Coupled یا ارتباط محکم نیز گفته میشود چرا که پردازندهها کلاک (Clock) ، گذرگاه و همچنین حافظه مشترکی دارند.
انواع سیستم عامل از نظر ساختار
دسترسی به سخت افزار ممکن نیست مگر از طریق سیستم عامل
انواع سیستم عامل از لحاظ ساختار عبارتند از :
- تکنیک سیستم یکپارچه
- تکنیک سیستم لایه ای
- سیستم مجازی در سیستم عامل (ماشین مجازی)
سیستم مشتری – خدمتگزار (client / server )
تکنیک سیستم یکپارچه
سیستمهای تجاری زیادی وجود دارند که ساختار خوش تعریفی ندارند. اغلب این سیستم عاملهابه عنوان سیستم های کوچک و محدودی شروع شدهاند و سپس به تدریج ورای دید اولیه طراحان گسترش یافتهاند
سیستم عامل DOS از این دسته می باشد.
سیستم عامل به صورت یک مجموعه از رویهها نوشته شده است که هر یک از آنها میتوانند دیگری را به هنگام نیاز فراخوانی کنند . برای مخفی کردن اطلاعات امکاناتی وجود ندارد و هر رویه برای دیگر رویهها قابل مشاهده است
مثلاً در MS-DOS واسطهها و سطوح عملیاتی به خوبی مجزا نشدهاند و برنامههای کاربردی میتوانند مستقیماً به توابع ROM BIOS و یا حتی پورت دستگاههای مختلف (مثل هارد دیسک ) دسترسی پیدا کنند لذا به راحتی میتوان برنامههای مخرب زیادی تحت DOS پدید آورد.
کثر CPU ها دارای دو مد کاری هستند مد هسته که مخصوص سیستم عامل است و در آن تمامی دستورالعملها مجاز میباشد و دیگری مد کاربر است که مخصوص برنامههای کاربران بوده ودر آن دستورات I/Oو دستورالعملهای معین دیگری مجاز نمیباشند .
سیستم عامل DOS توسط سخت افزار زمان خود ( پردازنده 8088) محدود بوده است چرا که این پردازنده فقط در یک مد کار میکند و تمام دستورات در آن مجاز میباشد ولی پردازنده386 دارای مدهای مختلفی است که سیستم عامل ویندوز از آن به خوبی استفاده میکند .
برنامه ی کاربردی یکی از فراخوانهای سیستمی (توابع سیستم عامل) را صدا میزند . در این حال ماشین از مد کاربر (user mode) به مد هسته (kernel mode) تغییر حالت میدهد و کنترل به سیستم عامل سپرده میشود .سیستم عامل با توجه به پارامترهای تابع مذکور تعیین میکند کدام فراخوان سیستمی باید اجراء شود سپس سیستم عامل به جدولی رجوع میکند که در ردیف k ام آن جدول یک اشارهگر به رویه اجراء کننده فراخوان سیستمی وجود دارد..سپس آن روتین اجراء شده و در انتها کنترل به برنامه کاربر بر می گردد