ریشه سسیستم عامل
در فرهنگ رایانه سیستم عامل (به انگلیسی: Operating System) نرمافزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم می سازد که برنامههای کاربردی اجرا شده و از خدمات آن استفاده کنند.
دلایل ایجاد سیستم عامل
یک سیستم کامپیوتری پیشرفته از یک یا چند پردازنده، مقداری حافظه اصلی، دیسکها ، چاپگرها ، صفحهکلید، صفحهنمایش، واسطهای شبکهای و دیگر دستگاههای ورودی و خروجی تشکیل شده است. اگر سیستم یکپارچهای برای مدیریت این منابع وجود نداشته باشد، هر برنامه باید به تنهایی این کار را انجام دهد. سیستم عامل یک لایه نرمافزاری فراهم میکند که وظیفه مدیریت منابع سیستم را از دوش برنامههای کاربردی رهانیده و کار برنامه نویسی را سادهتر مینماید.
وظایف سیستم عامل
سیستم عامل دو کار عمده انجام میدهد :
در نگرش پایین به بالا ، منابع منطقی ( مانند فایل ها ) و منابع فیزیکی ( مانند دستگاه های سخت افزاری ) رایانه را مدیریت و کنترل میکند .
در نگرش بالا به پایین ، وظیفه سیستم عامل این است که یک ماشین توسعه یافته ( Extended Machine ) یا ماشین مجازی ( Virtual Machine ) را به کاربران ارائه کند تا آنها بتوانند آسان تر برنامه نویسی نمایند و درگیر پیچیدگی های سخت افزاری رایانه نشوند .
به طور کلی ، وظایف سیستم عامل شامل موارد زیر است :
استفاده بهینه از منابع و جلوگیری از به هدر رفتن آنها
تخصیص و آزاد سازی منابع
اداره صف ها و زمان بندی استفاده از منابع
حساب داری ( Accounting ) میزان استفاده از منابع
ایجاد امنیت ( security )
ایجاد ، حذف و اداره فرایند ها
ایجاد مکانیسم های ارتباط بین فرایند ها و همگام سازی آنها
مدیریت فایل ها و پوشه ها
مدیریت حافظه های اصلی و جانبی
برقراری امکان دسترسی چندتایی ( Multiaccess ) و اجرای هم روند ( Concurrent ) فرایند ها
به اشتراک گذاری منابع ( Resource Sharing )
تعیین راهکار هایی برای اداره بن بست ( deadlock ) ها
جلوگیری از شرایط رقابتی ( Race Condition ) و تداخل یا در هم قفل شدن ( Interlock ) فرایند ها
جلوگیری از گرسنگی ( Starvation )
سیستم عامل های فعلی
امروزه پرکاربردترین سیستم عامل جهان، ویندوز است که بر روی بیشتر رایانههای شخصی نصب شده است.
نام چند سیستم عامل معروف جهان در زیر آمده است:
یونیکس
لینوکس
سولاریس (سیستم عامل)
بی اس دی
سیستم عامل داس
مک اواس ده
ام وی اس
ویلز (سیستم عامل)
ویندوز اکسپی
ویندوز ویستا
ویندوز انتی
ویندوز سیئی
آیفون اواس
پالم (سیستم عامل)
سیمبیان (سیستم عامل)
گوگل اندروید
انواع سیستم عامل
سیستم عامل تک پردازنده
این نوع سیستم عامل ها ، سیستم عامل های نسل چهارم ( نسل فعلی ) هستند که بر روی یک پردازنده اجرا می شوند .
سیستم عامل شبکه ای
این نوع سیستم عامل ها ، از کنترل کننده های واسط شبکه و نرم افزار های سطح پایین به عنوان گرداننده استفاده می کنند و برنامه هایی برای ورود به سیستم های راه دور و دسترسی به فایل از راه دور در آنها به کار گرفته می شود .
سیستم عامل توزیع شده
این سیستم عامل ها خود را مانند سیستم عامل های تک پردازنده به کاربر معرفی می کنند ، اما در عمل از چندین پردازنده استفاده می کنند. این نوع سیستم عامل در یک محیط شبکه ای اجرا می شود در این نوع سیستم یک برنامه پس از اجرا در کامپوترهای مختلف جواب نهایی به سیستم اصلی کاربر بر می گردد سرعت پردازش در این نوع سیستم بسیار بالاست.
سیستم عامل بی درنگ
از این نوع سیستمهای عامل برای کنترل ماشین آلات صنعتی، تجهیزات علمی و سیستمهای صنعتی استفاده میگردد. یک سیستم عامل بلادرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامههای کاربردی مختص کاربران هستند. یکی از بخشهای مهم این نوع سیستمهای عامل، مدیریت منابع موجود کامپیوتری بگونهای است که یک عملیات خاص در زمانی که میبایست، اجراء خواهند شد , مهمتر اینکه مدیریت منابع بگونه ایست که این عمل در هر بار وقوع, مقدار زمان یکسانی بگیرد.
به طور کلی نرم افزارهای کامپیوتر به دو گروه تقسیم میشوند:
یکی برنامههای سیستمی که عملیات کامپیوتر را مدیریت میکنند و دیگری برنامههای کاربردی .سیستم عامل (operating system=os) اصلی ترین برنامه سیستمی است که به عنوان رابط بین کاربر و سخت افزار کامپیوتر عمل میکند .
سیستم عامل دو وظیفه (یا هدف) اصلی دارد:
سیستم عامل استفاده از کامپیوتر را ساده میسازد. این بدان معناست که مثلاًکاربر یا برنامه نویس بدون درگیر شدن با مسائل سخت افزاری دیسکها به راحتی فایلی را بر روی دیسک ذخیره و حذف کند . این کار در واقع با به کاربردن دستورات سادهای که فراخوان های سیستمی (System Calls) را صدا میزنند انجام پذیرد .
در صورت عدم وجود سیستم عامل کاربرو یا برنامه نویس میبایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل مانیتور ,فلاپی , کی بورد و غیره) داشته باشدو روتینهایی برای خواندن و یا نوشتن آنها به زبانهای سطح پائین بنویسد. از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ماشین مجازی (Virtual machine) یاد میشود که واقعیت سخت افزار را از دید برنامه نویسان مخفی میسازد.
وظیفه دوم سیستم عامل مدیریت منابع(Resource Management) میباشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند (اقتصادی) از منابع سیستم میگردد. منظور از منابع پردازندهها ,حافظهها ,دیسکها,موس ها , چاپگرها , فایلها , پورتها و غیره هستند. یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامههای مشخصی تخصیص میدهد.
سیستم عامل معمولا اولین برنامههای است که پس از بوت شدن در حافظه بار میشود. پس از بار شدن قسمتی از سیستم عامل بطور دائم در حافظه باقی (Resident)میماند. قسمتهای دیگر با توجه به کاربرد کامپیوتر توسط کاربر از دیسک به حافظه آورده میشود.
به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام میدهد هسته یا Kernel گفته میشود. هسته سیستم عامل برنامهای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست.
سیستم عامل و معماری کامپیوتر اثر زیادی بر روی یکدیگر داشتهاند. یعنی جهت سهولت کار با سخت افزارهای جدید, سیستم عاملها توسعه یافتندو همچنین در اثنای طراحی سیستم عاملها , مشخص شد که تغییراتی در طراحی سخت افزار میتواند سیستم عاملها را ساده تر و کارآمدتر سازد .
هر چند که تطبیق نسلهای کامپیوتر با نسلهای سیستم عامل کار درستی نیست ولی این تطبیق که در ادامه انجام میدهیم علت ایجاد سیستم عاملهای جدید را مشخص میسازد.
تطابق تکنیکهای سیستم عامل با نسل های کامپیوتر:
در نسل اول کامپیوتر ها (55-1945) که از لامپ خلأ برای ساخت آنها استفاده میشد,زبانهای برنامه نویسی (حتی اسمبلی )ابداع نشده بودند و سیستم عامل نیز اصلاً وجود نداشت . روند کار به این صورت بود که برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوتر بزرگ و گران قیمت را داشتند.
آنها برنامههای خود را توسط تا نسل های کامپیوترخته مدار سوراخدار (و بعدها توسط کارتهای پانچ) و به زبان ماشین به کامپیوتر میدادند. اکثر برنامههای محاسبات عددی معمولی مانند جداول سینوس و کسینوس بود.