•بن بست را به صورت مسدود بودن دائمی مجموعه ای از فرایندها، که برای منابع سیستم رقابت میکنند یا با یکدیگر در ارتباط هستند. تعریف میکنند .
•
•برای بن بست راه حل کارآمدی وجود ندارد.
•تمام بن بست ها با نیازهای متضاد دو فرایند یا بیشتر، برای منابع همراه هستند.
سیستمهای بیدرنگ یا زمان واقعی یک سیستم عامل چند وظیفهای است که معمولاً بعنوان یک کنترل کننده در یک کاربرد خاص استفاده میشوند. سیستم در این حالت میبایست در زمانی مشخص و معین حتماً جواب مورد نظر را بدهد. سیستمهای کنترل آزمایشهای علمی، تصویربرداری پزشکی، کنترل صنعتی و برخی از سیستمهای نمایش از این دستهاند. هدف اصلی استفاده از سیستمهای بیدرنگ واکنش سریع و تضمین شده در برابر یک رویداد خارجی میباشد. در سیستمهای بیدرنگ معمولاً وسایل ذخیرهسازی ثانویه وجود ندارد و به جای آن از حافظههای ROM استفاده میشود. سیستمعاملهای پیشرفته نیز در این سیستمها وجود ندارند چرا که سیستمعامل کاربر را از سختافزار جدا میکند و این جداسازی باعث عدم قطعیت در زمان پاسخگویی میشود. سیستمهایی که در آن مهلت زمانی[یادداشت ۲] باید پاسخ داده شود را بیدرنگ سخت و سیستمهایی که مهلت زمانی را پشتیبانی نمیکنند بیدرنگ نرم مینامند. از کاربرد سیستمهای بیدرنگ سخت میتوان به کنترل موتور یک خودرو (پاسخ با تأخیر میتواند نتایج فاجعهباری را به همراه داشته باشد) و در سیستمهای بیدرنگ نرم میتوان به اسکن بارکد در پایانه فروشگاه (با اینکه سرعت پاسخدهی باید سریع باشد اما به حادّی سیستمهای سخت نمیباشد) اشاره کرد
سیستمهای چند کاربره
سیستمهای چند کاربره اجازه میدهند تا کاربران متعدد بصورت همزمان به یک سیستم کامپیوتری دسترسی داشته باشند. سیستمهای اشتراک زمانی و کارساز وب را میتوان بعنوان سیستمهای چند کاربره طبقهبندی کرد. در سیستمهای اشتراک زمانی تنها یک پردازنده قرار دارد که توسط مکانیزمهای زمانبندی بین برنامههای مختلف کاربرها با سرعت زیاد سوئیچ میشود و بنابراین هر کاربر تصور میکند کل رایانه در اختیار اوست
سیستمعامل تک پردازنده
این نوع سیستمعاملها، سیستمعاملهای نسل چهارم (نسل فعلی) هستند که بر روی یک پردازنده اجرا میشوند. از قبیل XP,Vista,98,Me که بیشتر محصول شرکت مایکرو سافت میباشند.
سیستمعامل شبکهای
سیستم عاملهایی مثل ناول نت که بیشترین استفاده و امکانات این سیستم عامل برای شبکه میباشد.
سیستمعامل توزیع شده
این سیستمعاملها خود را مانند سیستمعاملهای تک پردازنده به کاربر معرفی میکنند، اما در عمل از چندین پردازنده استفاده میکنند. این نوع سیستمعامل در یک محیط شبکهای اجرا میشود در این نوع سیستم یک برنامه پس از اجرا در کامپوترهای مختلف جواب نهایی به سیستم اصلی کاربر برمیگردد سرعت پردازش در این نوع سیستم بسیار بالاست.
دلایل ایجاد سیستمعامل
یک سیستم کامپیوتری پیشرفته از یک یا چند پردازنده، مقداری حافظه اصلی، دیسکها، چاپگرها، صفحهکلید، صفحه نمایش، واسطهای شبکهای و دیگر دستگاههای ورودی و خروجی تشکیل شدهاست. اگر سیستم یکپارچهای برای مدیریت این منابع وجود نداشته باشد، هر برنامه باید به تنهایی این کار را انجام دهد. سیستمعامل یک لایه نرمافزاری فراهم میکند که وظیفه مدیریت منابع سیستم را از دوش برنامههای کاربردی رهانیده و کار برنامهنویسی را سادهتر مینماید؛ که با توجه به نسخههای جدید سیستم عاملها که به دلیل بهرهمندی از تکنولوژی گرافیک و امکان استفاده از ماوس، امکان استفاده ساده و آسان را برای کاربران مبتدی فراهم نمودهاست. در حقیقت سیستمعامل واسط بین سختافزار رایانه و کاربر میباشد.
وظایف سیستمعامل
سیستمعامل دو کار عمده انجام میدهد:
در نگرش پایین به بالا، منابع منطقی (مانند فایلها) و منابع فیزیکی (مانند دستگاههای سختافزاری) رایانه را مدیریت و کنترل میکند.
در نگرش بالا به پایین، وظیفه سیستمعامل این است که یک ماشین توسعه یافته[یادداشت ۳]یا ماشین مجازی را به کاربران ارائه کند تا آنها بتوانند آسانتر برنامهنویسی نمایند و درگیر پیچیدگیهای سختافزاری رایانه نشوند.[نیازمند منبع]
به طور کلی، وظایف سیستمعامل شامل موارد زیر است:
استفاده بهینهتر از منابع و جلوگیری از به هدر رفتن آنها
تخصیص و آزاد سازی منابع
اداره صفها و زمانبندی استفاده از منابع
حسابداری میزان استفاده از منابع
ایجاد امنیت
ایجاد، حذف و اداره فرایندها
ایجاد مکانیسمهای ارتباط بین فرایندهاو همگامسازی آنها
مدیریت فایلهاو پوشهها
مدیریت حافظههایاصلی و جانبی
برقراری امکان دسترسی چندتایی و اجرای هم روند فرایندها
به اشتراک گذاری منابع
تعیین راهکارهایی برای اداره بنبست
جلوگیری از وضعیت رقابتی و تداخل یا در هم قفل شدن فرایندها
جلوگیری از گرسنگی
سیستمعاملهای فعلی
در سالهای اخیر رقابت بیشتر بین سیستمعاملهای مایکروسافت ویندوز، اپل مک اواس و لینوکس جریان دارد که آماری که در ماه ژوییه ۲۰۱۱ توسط وبگاه W3Schools به ثبت رسیده حاکی از آن است که هم اکنون بیش از ۸۰ درصد کاربران اینترنت از سیستمعامل ویندوز استفاده میکنند.
آمار موجود که مربوط به اوت ۲۰۱۰ میباشد به شرح زیر است:
ویندوز ۷: ۳۷٫۸٪
ویندوز ویستا: ۶٫۷٪
ویندوز اکس پی: ۳۹٫۷٪
ویندوز ۲۰۰۳: ۰٫۹٪
مک اواس: ۸٫۱٪
توزیعهای گنو/لینوکس: ۵٫۲٪
از سیستمعاملهای مشهور کامپیوترهای شخصی میتوان به اسامی زیر اشاره کرد:
یونیکس
گنو/لینوکس
مک اواس
ویندوز اکسپی
ویندوز ویستا
ویندوز انتی
ویندوز ۷
ویندوز ۸
ویندوز 8.1
ویندوز 10
ویندوز سیای
سولاریس
بی اس دی
داس
ام وی اس
ویلز
پالم
همچنین از سیستمعاملهای موجود روی گوشیهای تلفن همراه نسل جدید میتوان به اسامی زیر اشاره کرد:
اندروید
iOS
ویندوز موبایل
ویندوز فون
سیمبین
یوآیکیو
بادا
بلک بری
میگو
پالم
تایزن
تاریخچه سیستم عامل
در آغاز
اولین کامپیوترها فاقد سیستمعامل بودند. در اوایل سال ۱۹۶۴ فروشندگان کامپیوترهای تجاری ابزار کاملاً گستردهای را برای تسهیل توسعه، زمانبندی، و اجرای کارها روی یک سیستم پردازش دستهای فراهم میکردند. برای مثال رایانه تولید شده توسط UNI VAC.
در ابتدا سیستمعامل روی مین فریمها مستقر میشد و کمی بعد سیستمعامل میکروکامپیوترهای ابتدایی که فقط از یک برنامه در هر زمان پشتیبانی میکردند و به یک زمانبند بسیار ابتدایی نیاز داشتند. هر برنامه زمانی که در حال اجرا بود تحت کنترل کامل ماشین قرار داشت. چند وظیفهای (اشتراک زمانی) اولین بار در مین فریمها و در ۱۹۶۰ عرضه شد. ابتدا کامپیوترها بسیار بزرگ و جاگیر بودند اما امروزه در کف یک دست جا میگیرند.
مین فریمها
میکرو کامپیوترها
میکروکامپیوترهای اولیه نیاز یا ظرفیت داشتن یک سیستمعامل پیچیده که روی مین فریمها توسعه یافته بود نداشتند.
سیستم عامل
سیستم عامل بدون شک مهمترین نرم افزار در کامپیوتر است . پس از روشن کردن کامپیوتر اولین نرم افزاری که مشاهده می گردد سیستم عامل بوده و آخرین نرم افزاری که قبل از خاموش کردن کامپیوتر مشاهده خواهد شد، نیز سیستم عامل است . سیستم عامل نرم افزاری است که امکان اجرای تمامی برنامه های کامپیوتری را فراهم می آورد. سیستم عامل با سازماندهی ، مدیریت و کنترل منابع سخت افزاری امکان استفاده بهینه و هدفمند آنها را فراهم می آورد. سیتم عامل فلسفه بودن سخت افزار را بدرستی تفسیر و در این راستا امکانات متعدد و ضروری جهت حیات سایر برنامه های کامپیوتری را فراهم می آورد.
تمام کامپیوترها از سیستم عامل استفاده نمی نمایند. مثلا" اجاق های مایکرویو که در آشپزخانه استفاده شده دارای نوع خاصی از کامپیوتر بوده که از سیستم عامل استفاده نمی نمایند. در این نوع سیستم ها بدلیل انجام عملیات محدود و ساده، نیازی به وجود سیستم عامل نخواهد بود. اطلاعات ورودی و خروجی با استفاده از دستگاههائی نظیر صفحه کلید و نمایشگرهای LCD ، در اختیار سیستم گذاشته می گردند. ماهیت عملیات انجام شده در یک اجاق گاز مایکروویو بسیار محدود و مختصر است، بنابراین همواره یک برنامه در تمام حالات و اوقات اجراء خواهد شد.
برای سیستم های کامپیوتری که دارای عملکردی بمراتب پیچیده تر از اجاق گاز مایکروویو می باشند، بخدمت گرفتن یک سیستم عامل باعث افزایش کارآئی سیستم و تسهیل در امر پیاده سازی برنامه های کامپیوتری می گردد. تمام کامپیوترهای شخصی دارای سیستم عامل می باشند. ویندوز یکی از متداولترین سیستم های عامل است . یونیکس یکی دیگر از سیستم های عامل مهم در این زمینه است . صدها نوع سیستم عامل تاکنون با توجه به اهداف متفاوت طراحی و عرضه شده است. سیستم های عامل مختص کامپیوترهای بزرگ، سیستم های روبوتیک، سیستم های کنترلی بلادرنگ ، نمونه هائی در این زمینه می باشند.
سیستم عامل با ساده ترین تحلیل و بررسی دو عملیات اساسی را در کامپیوتر انجام می دهد :
مدیریت منابع نرم افزاری و سخت افزاری یک سِستم کامپیوتری را برعهده دارد.پردازنده ، حافظه، فضای ذخیره سازی نمونه هائی از منابع اشاره شده می باشند .
روشی پایدار و یکسان برای دستیابی و استفاده از سخت افزار را بدو ن نیاز از جزئیات عملکرد هر یک از سخت افزارهای موجود را برای برنامه های کامپیوتری فراهم می نماید
اولین وظیفه یک سیستم عامل، مدیریت منابع سخت افزاری و نرم افزاری است . برنامه های متفاوت برای دستیابی به منابع سخت افزاری نظیر: پردازنده ، حافظه، دستگاههای ورودی و خروجی، حافطه های جانبی، در رقابتی سخت شرکت خواهند کرد. سیستم های عامل بعنوان یک مدیر عادل و مطمئن زمینه استفاده بهینه از منابع موجود را برای هر یک از برنامه های کامپیوتری فراهم می نمایند.
وظیفه دوم یک سیستم عامل ارائه یک رابط ( اینترفیس ) یکسان برای سایر برنامه های کامپیوتری است . در این حالت زمینه استفاده بیش از یک نوع کامپیوتر از سیستم عامل فراهم شده و در صورت بروز تغییرات در سخت افزار سیستم های کامپیوتری نگرانی خاصی از جهت اجرای برنامه وجود نخواهد داشت، چراکه سیستم عامل بعنوان میانجی بین برنامه های کامپیوتری و سخت افزار ایفای وظیفه کرده و مسئولیت مدیریت منابع سخت افزاری به وی سپرده شده است .برنامه نویسان کامپیوتر نیز با استفاده از نقش سیستم عامل بعنوان یک میانجی براحتی برنامه های خود را طراحی و پیاده سازی کرده و در رابطه با اجرای برنامه های نوشته شده بر روی سایر کامپیوترهای مشابه نگرانی نخواهند داشت . ( حتی اگر میزان حافظه موجود در دو کامپیوتر مشابه نباشد ) . در صورتی که سخت افزار یک کامپیوتر بهبود و ارتقاء یابد، سیستم عامل این تضمین را ایجاد خواهد کرد که برنامه ها، در ادامه بدون بروز اشکال قادر به ادامه حیات وسرویس دهی خود باشند. مسئولیت مدیریت منابع سخت افزاری برعهده سیتم عامل خواهد بود نه برنامه های کامپیوتری، بنابراین در زمان ارتقای سخت افزار یک کامپیوتر مسئولیت سیتستم عامل در این راستا اولویت خواهد داشت . ویندوز 98 یکی از بهترین نمونه ها در این زمینه است . سیستم عامل فوق بر روی سخت افزارهای متعدد تولید شده توسط تولیدکنندگان متفاوت اجراء می گردد. ویندوز 98 قادر به مدیریت و استفاده از هزاران نوع چاپگر دیسک و سایر تجهیزات جانبی است .
سیستم های عامل را از بعد نوع کامپیوترهائی که قادر به کنترل آنها بوده و نوع برنامه های کاربردی که قادر به حمایت از آنها می باشند به چهار گروه عمده تقسیم می نمایند.
سیستم عامل بلادرنگ(RTOS). از این نوع سیستم های عامل برای کنترل ماشین آلات صنعتی ، تجهیزات علمی و سیستم های صنعتی استفاده می گردد. یک سیستم عامل بلادرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامه های کاربردی مختص کاربران می باشند. یکی از بخش های مهم این نوع سیستم های عامل ، مدیریت منابع موجود کامپیوتری بگونه ای است که یک عملیات خاص در زمانی که می بایست ، اجراء خواهند شد.
تک کاربره - تک کاره. همانگونه که از عنوان این نوع سیستم های عامل مشخص است، آنها بگونه ای طراحی شده اند که قادر به مدیریت کامپیوتر بصورتی باشند که یک کاربر در هر لحظه قادر به انجام یک کار باشد. سیستم عامل Palm OSبرای کامپیوترهای PDA نمونه ای مناسب از یک سیستم عامل مدرن تک کاربره و تک کاره است .
تک کاربره - چندکاره. اکثر سیستم های عامل استفاده شده در کامپیوترهای شخصی از این نوع می باشند. ویندوز 98 و MacOS نمونه هائی در این زمینه بوده که امکان اجرای چندین برنامه بطور همزمان را برای یک کاربر فراهم می نمایند. مثلا" یک کاربر ویندوز 98 قادر به تایپ یک نامه با استفاده از یک واژه پرداز بوده و در همان زمان اقدام به دریافت یک فایل از اینترنت نموده و در همان وضعیت محتویات نامه الکترونیکی خود را برای چاپ بر روی چاپگر ارسال کرده باشد.
چندکاربره. یک سیستم عامل چند کاربره ، امکان استفاده همزمان چندین کاربر از منابع موجود کامپیوتر را فراهم می آورند. منابع مورد نیاز هر یک از کاربران می بایست توسط سیستم عامل بدرستی مدیریت تا در صورت بروز اشکال در منابع تخصیص یافته به یک کاربر، بر روند استفاده سایر کاربران از منابع مورد نظر اختلالی ایجاد نگردد. یونیکس، VMS و سیستم های عامل کامپیوترهای بزرگ نظیر MVS نمونه هائی از سیستم های عامل چندکاربره می باشند.
در اینجا لازم است که به تفاوت های موجود سیستم های عامل " چند کاربر " و " تک کاربر" در رابطه با امکانات شبکه ای اشاره گردد. ویندوز 2000 و ناول قادر به حمایت از صدها و هزاران کاربر شبکه می باشند این نوع سیستم های عامل بعنوان سیستم عامل چند کاربره واقعی در نظر گرفته نمی شوند.
در ادامه با توجه به شناخت مناسب بوجود آمده در دررابطه با انواع سیستم های عامل به عملیات و وظایف سیستم عامل اشاره می گردد.
وظایف سیستم عامل
پس از روشن نمودن کامپیوتر، لولین برنامه ای که اجراء می گردد ، مجموعه دستوراتی می باشند که در حافظه ROM ذخیره و مسئول بررسی صحت عملکرد امکانات سخت افزاری موجود می باشند. برنامه فوق (POST) ، پردازنده ، حافظه و سایر عناصر سخت افزاری را بررسی خواهد کرد . پس از بررسی موفقیت آمیز برنامه POST ، در ادامه درایوهای ( هارد ، فلاپی ) سیستم فعال خواهند شد. در اکثر کامپیوترها ، پس از فعال شدن هارد دیسک ، اولین بخش سیستم عامل با نام Bootstrap Loader فعال خواهد شد. برنامه فوق صرفا" دارای یک وظیفه اساسی است : انتقال ( استقرار ) سیستم عامل در حافظه اصلی و امکان اجرای آن . برنامه فوق عملیات متفاوتی را یه منظور استفرار سیستم عامل در حافظه انجام خواهد داد.
سیستم عامل دارای وظایف زیر است :
پاورپوینت-اصول همزمانی و بن بست در سیستم عامل- در 54 اسلاید-powerpoin-ppt