سیستمعامل یا سامانهٔ عامل ( Operating System) نرمافزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم میسازد که نرمافزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستمعامل خدماتی به برنامههای کاربردی و کاربر ارائه میدهد. برنامههای کاربردی یا از طریق واسطهای برنامه نویسی کاربردی (Application User Interface-APIs) و یا از طرق فراخوانیهای سیستم (system call) به این خدمات دسترسی دارند. با فراخوانی این واسطها، برنامههای کاربردی میتوانند سرویسی را از سیستمعامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرمافزار مثل واسط خط فرمان
(Command Line Interface-CLI) یا یک واسط گرافیکی کاربر (Graphical User Interface-GUI) با سیستمعامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموما واسط کاربری به عنوان بخشی از سیستمعامل در نظر گرفته میشود. در سیستمهای بزرگ و چند کاربره مثل یونیکس و سیستمهای شبیه یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستمعامل اجرا میشود پیاده سازی میشود.
دلایل ایجاد سیستمعامل:
یک سیستم کامپیوتری پیشرفته از یک یا چند پردازنده ، مقداری حافظه اصلی ، دیسکها، چاپگرها، صفحهکلید ، صفحه نمایش، واسط های شبکهای و دیگر دستگاه های ورودی و خروجی تشکیل شده است . اگر سیستم یکپارچه ای برای مدیریت این منابع وجود نداشته باشد، هر برنامه باید به تنهایی این کار را انجام دهد. سیستمعامل یک لایه نرمافزاری فراهم میکند که وظیفه مدیریت منابع سیستم را از دوش برنامه های کاربردی رهانیده و کار برنامهنویسی را ساده تر مینماید. که با توجه به نسخههای جدید سیستم عامل ها که به دلیل بهره مندی از تکنولوژی گرافیک و امکان استفاده از ماوس، امکان استفاده ساده و آسان را برای کاربران مبتدی فراهم نمودهاست. در حقیقت سیستم عامل واسط بین سختافزار رایانه و کاربر میباشد.
وظایف سیستمعامل:
سیستمعامل دو کار عمده انجام میدهد: در نگرش پایین به بالا، منابع منطقی (مانند فایلها) و منابع فیزیکی (مانند دستگاههای سختافزاری) رایانه را مدیریت و کنترل میکند.
در نگرش بالا به پایین، وظیفه سیستمعامل این است که یک ماشین توسعه یافته (Extended Machine) یا ماشین مجازی (Virtual Machine) را به کاربران ارائه کند تا آنها بتوانند آسان تر برنامه نویسی نمایند و درگیر پیچیدگیهای سختافزاری رایانه نشوند.
به طور کلی، وظایف سیستمعامل شامل موارد زیر است:
- استفاده بهینه تر از منابع و جلوگیری از به هدر رفتن آنها
- تخصیص و آزاد سازی منابع
- اداره صفها و زمان بندی استفاده از منابع
- حساب داری میزان استفاده از منابع
- ایجاد امنیت
- ایجاد، حذف و اداره فرایندها
- ایجاد مکانیسمهای ارتباط بین فرایندها و همگام سازی آنها
- مدیریت فایلها و پوشهها
- مدیریت حافظههای اصلی و جانبی
- برقراری امکان دسترسی چندتایی (Multiaccess) و اجرای هم روند (Concurrent) فرایندها
- به اشتراک گذاری منابع (Resource Sharing)
- تعیین راهکارهایی برای اداره بن بست (deadlock)ها
- جلوگیری از شرایط رقابتی (Race Condition) و تداخل یا در هم قفل شدن (Interlock) فرایندها
- جلوگیری از گرسنگی Starvation
در آغاز:
اولین کامپیوترها فاقد سیستمعامل بودند. در اوایل سال ۱۹۶۴ فروشندگان کامپیوترهای تجاری ابزار کاملا گستردهای را برای تسهیل توسعه، زمانبندی، و اجرای کارها روی یک سیستم پردازش دستهای فراهم میکردند. برای مثال کامپیوتر تولید شده توسط UNI VAC.
در ابتدا سیستمعامل روی مین فریمها مستقر میشد و کمی بعد سیستمعامل میکرو کامپیوترهای ابتدایی که فقط از یک برنامه در هر زمان پشتیبانی میکردند و به یک زمانبند بسیار ابتدایی نیاز داشتند. هر برنامه زمانی که در حال اجرا بود تحت کنترل کامل ماشین قرار داشت. چند وظیفهای (اشتراک زمانی) اولین بار در مین فریم ها و در ۱۹۶۰ عرضه شد. ابتدا کامپیوترها بسیار بزرگ و جا گیر بودند اما امروزه در کف یک دست جا میگیرند.
انواع سیستمعامل:
سیستمعامل تک پردازنده:
این نوع سیستمعاملها، سیستمعاملهای نسل چهارم (نسل فعلی) هستند که بر روی یک پردازنده اجرا میشوند.
سیستمعامل شبکهای:
سیستم عاملهایی مثل ناول نت که بیشترین استفاده و ا مکانات این سیستم عامل برای شبکه می باشد
سیستمعامل توزیع شده:
این سیستمعاملها خود را مانند سیستمعاملهای تک پردازنده به کاربر معرفی میکنند، اما در عمل از چندین پردازنده استفاده میکنند. این نوع سیستمعامل در یک محیط شبکهای اجرا میشود در این نوع سیستم یک برنامه پس از اجرا در کامپوترهای مختلف جواب نهایی به سیستم اصلی کاربر بر میگردد سرعت پردازش در این نوع سیستم بسیار بالاست.
سیستمعامل بیدرنگ:
از این نوع سیستمهای عامل برای کنترل ماشین آلات صنعتی، تجهیزات علمی و سیستمهای صنعتی استفاده میگردد. یک سیستمعامل بیدرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامههای کاربردی مختص کاربران هستند. یکی از بخشهای مهم این نوع سیستمهای عامل، مدیریت منابع موجود کامپیوتری بگونهای است که یک عملیات خاص در زمانی که میبایست، اجراء خواهند شد، مهمتر اینکه مدیریت منابع بگونه ایست که این عمل در هر بار وقوع، مقدار زمان یکسانی بگیرد.
برای کسب اطلاعات بیشتر میتوانید به لینک زیر مراجعه کنید:
http://en.wikipedia.org/wiki/Operating_system