سیستمعامل
سیستمعامل یا سامانهٔ عامل نرمافزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم میسازد که نرمافزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستمعامل خدماتی به برنامههای کاربردی و کاربر ارائه میدهد. برنامههای کاربردی یا از طریق واسطهای برنامه نویسی کاربردی (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)
== سیستمعاملهای فعلی ==
در سالهای اخیر رقابت بشتر بین سیستمعاملهای مایکروسافت ویندوز، اپل مک اواس و لینوکس جریان دارد که آماری که در ماه اوت ۲۰۱۰ توسط وبگاه W3Schools به ثبت رسیده حاکی از آن است که هم اکنون ۸۷٫۶ درصد کاربران رایانههای شخصی از سیستمعامل ویندوز استفاده میکنند.
آمار موجود که مربوط به اوت ۲۰۱۰ میباشد به شرح زیر است:
* ویندوز ۷ : ۲۲٫۳٪
* ویندوز ویستا : ۱۰٫۵٪
* ویندوز اکس پی : ۵۳٫۱٪
* ویندوز سرور ۲۰۰۳ : ۱٫۳٪
* ویندوز ۲۰۰۰ : ۰٫۴٪
* مک اواس : ۶٫۷٪
* لینوکس : ۴٫۹٪
از سیستمعاملهای مشهور کامپیوترهای شخصی میتوان به اسامی زیر اشاره کرد:
* یونیکس
* لینوکس
* مک اواس
* ویندوز اکسپی
* ویندوز ویستا
* ویندوز انتی
* ویندوز ۷
* ویندوز سیئی
* سولاریس
* بی اس دی
* داس
* ام وی اس
* ویلز
* پالم
همچنین از سیستمعاملهای موجود روی گوشیهای تلفن همراه نسل جدید میتوان به اسامی زیر اشاره کرد:
* گوگل_اندروید
* iOS
* ویندوز موبایل
* ویندوز فون
* سیمبیَن
* UIQ
* بادا
* بلک بری
* پالم
== تاریخچه ==
=== در آغاز ===
اولین کامپیوترها فاقد سیستمعامل بودند. در اوایل سال ۱۹۶۴ فروشندگان کامپیوترهای تجاری ابزار کاملا گستردهای را برای تسهیل توسعه، زمانبندی، و اجرای کارها روی یک سیستم پردازش دستهای فراهم میکردند. برای مثال کامپیوتر تولید شده توسط UNIVAC.
در ابتدا سیستمعامل روی مین فریمها مستقر میشد و کمی بعد سیستمعامل میکروکامپیوترهای ابتدایی که فقط از یک برنامه در هر زمان پشتیبانی میکردند و به یک زمانبند بسیار ابتدایی نیاز داشتند. هر برنامه زمانی که در حال اجرا بود تحت کنترل کامل ماشین قرار داشت. چند وظیفهای (اشتراک زمانی) اولین بار در مین فریمها و در ۱۹۶۰ عرضه شد. ابتدا کامپیوترها به اندازه یک زمین فوتبال بودند اما امروزه در کف یک دست جا میگیرند.
=== مین فریمها ===
§÷۵=== میکرو کامپیوترها === میکروکامپیوترهای اولیه نیاز یا ظرفیت داشتن یک سیستمعامل پیچیده که روی مین فریمها توسعه یافته بود نداشتند.
== انواع سیستمعامل ==
=== سیستمعامل تک پردازنده ===
این نوع سیستمعاملها، سیستمعاملهای نسل چهارم (نسل فعلی) هستند که بر روی یک پردازنده اجرا میشوند.از قبیل XP,Vista,۹۸,Me که بیشتر محصول شرکت مایکرو سافت میباشند.
=== سیستمعامل شبکهای ===
این نوع سیستمعاملها، از کنترل کنندههای واسط شبکه و نرمافزارهای سطح پایین به عنوان گرداننده استفاده میکنند و برنامههایی برای ورود به سیستمهای راه دور و دسترسی به فایل از راه دور در آنها به کار گرفته میشود.
=== سیستمعامل توزیع شده ===
این سیستمعاملها خود را مانند سیستمعاملهای تک پردازنده به کاربر معرفی میکنند، اما در عمل از چندین پردازنده استفاده میکنند. این نوع سیستمعامل در یک محیط شبکهای اجرا میشود در این نوع سیستم یک برنامه پس از اجرا در کامپوترهای مختلف جواب نهایی به سیستم اصلی کاربر بر میگردد سرعت پردازش در این نوع سیستم بسیار بالاست.
=== سیستمعامل بیدرنگ ===
از این نوع سیستمهای عامل برای کنترل ماشین آلات صنعتی، تجهیزات علمی و سیستمهای صنعتی استفاده میگردد. یک سیستمعامل بیدرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامههای کاربردی مختص کاربران هستند. یکی از بخشهای مهم این نوع سیستمهای عامل، مدیریت منابع موجود کامپیوتری بگونهای است که یک عملیات خاص در زمانی که میبایست، اجراء خواهند شد، مهمتر اینکه مدیریت منابع بگونه ایست که این عمل در هر بار وقوع، مقدار زمان یکسانی بگیرد.
== ویژگیها ==
=== اجرای برنامه ===
=== وقفهها ===
==== دستهبندی وقفهها ====
* برنامه وقفههایی که به دلیل بعضی شرایظ حاصل از یک دستورالعمل بروز میکند. شامل سریز شدن محاسباتی، تقسیم بر صفر، تلاش برای اجرای یک دستورالعمل ماشین غیر مجاز و مراجعه به آدرسی خارج از فضای مجاز کاربر.
* زمانسنج وقفهای که توسط زمانسنج داخلی تولید میشود. این وقفه به سیستمعامل اجازه میدهد، بعضی اعمال را به طور مرتب انجام دهد.
* ورودی/خروجیوقفههایی که به وسیله کنترل کننده ورودی/خروجی تولید میشود، تا کامل شدن طبیعی یک عمل یا شرایط خطا را اعلام نماید.
* نقص سختافزار وقفههایی که با نقص سختافزاری تولید میشود، مثل نقص برق یا خطای توازن حافظه.
=== حالت حفاظت شده و ناظر ===
=== مدیریت حافظه ===
=== حافظه مجازی ===
=== چند وظیفهای ===
=== دسترسی به دیسک و سیستم فایل ===
=== راه اندازهای دستگاهها ===
=== شبکه ===
=== امنیت ===
== منابع ==
* آندرواس تننباوم و وودهال، طراحی و پیاده سازی سیستمهای عامل.چاپ چهارم ویرایش دوم ۱۳۸۱.