سیستمعامل یا سامانهٔ عامل[۱] (به انگلیسی: Operating System) نرمافزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم میسازد که نرمافزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستمعامل جزء ضروریترین نرمافزارهای یک سیستم کامپیوتری است. سیستمعامل خدماتی به برنامههای کاربردی و کاربر ارائه میدهد. برنامههای کاربردی یا از طریق واسطهای برنامه نویسی کاربردی (به انگلیسی: Application User Interface-APIs) و یا از طرق فراخوانیهای سیستم به این خدمات دسترسی دارند. با فراخوانی این واسطها، برنامههای کاربردی میتوانند سرویسی را از سیستمعامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرمافزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر با سیستمعامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموما واسط کاربری به عنوان بخشی از سیستمعامل در نظر گرفته میشود. در سیستمهای بزرگ و چند کاربره مثل یونیکس و سیستمهای شبیه یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستمعامل اجرا میشود پیادهسازی میشود. نمونههایی از محبوبترین سیستمعاملهای نوین شامل: اندروید، بیاسدی، آیاواس، لینوکس، اواس ده، کیواناکس، مایکروسافت ویندوز، ویندوز فون و زد/اواس میباشند.
محتویات
۱ انواع سیستمعامل
۱.۱ سیستمهای بیدرنگ
۱.۲ سیستمهای چند کاربره
۱.۳ سیستمعامل تک پردازنده
۱.۴ سیستمعامل شبکهای
۱.۵ سیستمعامل توزیع شده
۲ دلایل ایجاد سیستمعامل
۳ وظایف سیستمعامل
۴ سیستمعاملهای فعلی
۵ تاریخچه
۵.۱ در آغاز
۵.۲ مین فریمها
۵.۲.۱ میکرو کامپیوترها
۶ ویژگیها
۶.۱ اجرای برنامه
۶.۲ وقفهها
۶.۲.۱ دستهبندی وقفهها
۶.۳ حالت حفاظت شده و ناظر
۶.۴ مدیریت حافظه
۶.۵ حافظه مجازی
۶.۶ چند وظیفهای
۶.۷ دسترسی به دیسک و سیستم فایل
۶.۸ راه اندازهای دستگاهها
۶.۹ شبکه
۶.۱۰ امنیت
۷ جستارهای وابسته
۸ منابع
انواع سیستمعامل
سیستمهای بیدرنگ
سیستمهای بیدرنگ یا زمان واقعی یک سیستم عامل چند وظیفهای است که معمولا بعنوان یک کنترل کننده در یک کاربرد خاص استفاده میشوند. سیستم در این حالت میبایست در زمانی مشخص و معین حتما جواب مورد نظر را بدهد. سیستمهای کنترل آزمایشهای علمی، تصویربرداری پزشکی، کنترل صنعتی و برخی از سیستمهای نمایش از این دستهاند. هدف اصلی استفاده از سیستمهای بیدرنگ واکنش سریع و تضمین شده در برابر یک رویداد خارجی میباشد. در سیستمهای بیدرنگ معمولا وسایل ذخیرهسازی ثانویه وجود ندارد و به جای آن از حافظههای ROM استفاده میشود. سیستمعاملهای پیشرفته نیز در این سیستمها وجود ندارند چرا که سیستمعامل کاربر را از سختافزار جدا میکند و این جداسازی باعث عدم قطعیت در زمان پاسخگویی میشود. سیستمهایی که در آن مهلت زمانی(به انگلیسی: Deadline) باید پاسخ داده شود را بیدرنگ سخت و سیستمهایی که مهلت زمانی را پشتیبانی نمیکنند بیدرنگ نرم مینامند. از کاربرد سیستمهای بیدرنگ سخت میتوان به کنترل موتور یک خودرو (پاسخ با تاخیر میتواند نتایج فاجعهباری را به همراه داشته باشد) و در سیستمهای بیدرنگ نرم میتوان به اسکن بارکد در پایانه فروشگاه (با اینکه سرعت پاسخدهی باید سریع باشد اما به حادّی سیستمهای سخت نمیباشد) اشاره کرد.[۲][۳]
سیستمهای چند کاربره
سیستمهای چند کاربره اجازه میدهند تا کاربران متعدد بصورت همزمان به یک سیستم کامپیوتری دسترسی داشته باشند. سیستمهای اشتراک زمانی و کارساز وب را میتوان بعنوان سیستمهای چند کاربره طبقهبندی کرد. در سیستمهای اشتراک زمانی تنها یک پردازنده قرار دارد که توسط مکانیزمهای زمانبندی بین برنامههای مختلف کاربرها با سرعت زیاد سوئیچ میشود و بنابراین هر کاربر تصور میکند کل رایانه در اختیار اوست.[۲]
سیستمعامل تک پردازنده
این نوع سیستمعاملها، سیستمعاملهای نسل چهارم (نسل فعلی) هستند که بر روی یک پردازنده اجرا میشوند. از قبیل XP,Vista,۹۸,Me که بیشتر محصول شرکت مایکرو سافت میباشند.
سیستمعامل شبکهای
سیستم عاملهایی مثل ناول نت که بیشترین استفاده و ا مکانات این سیستم عامل برای شبکه میباشد
سیستمعامل توزیع شده
نوشتار اصلی: سیستمهای عامل توزیع شده
این سیستمعاملها خود را مانند سیستمعاملهای تک پردازنده به کاربر معرفی میکنند، اما در عمل از چندین پردازنده استفاده میکنند. این نوع سیستمعامل در یک محیط شبکهای اجرا میشود در این نوع سیستم یک برنامه پس از اجرا در کامپوترهای مختلف جواب نهایی به سیستم اصلی کاربر بر میگردد سرعت پردازش در این نوع سیستم بسیار بالاست.
دلایل ایجاد سیستمعامل
یک سیستم کامپیوتری پیشرفته از یک یا چند پردازنده، مقداری حافظه اصلی، دیسکها، چاپگرها، صفحهکلید، صفحهنمایش، واسطهای شبکهای و دیگر دستگاههای ورودی و خروجی تشکیل شدهاست. اگر سیستم یکپارچهای برای مدیریت این منابع وجود نداشته باشد، هر برنامه باید به تنهایی این کار را انجام دهد. سیستمعامل یک لایه نرمافزاری فراهم میکند که وظیفه مدیریت منابع سیستم را از دوش برنامههای کاربردی رهانیده و کار برنامهنویسی را سادهتر مینماید؛ که با توجه به نسخههای جدید سیستم عاملها که به دلیل بهرهمندی از تکنولوژی گرافیک و امکان استفاده از ماوس، امکان استفاده ساده و آسان را برای کاربران مبتدی فراهم نمودهاست. در حقیقت سیستمعامل واسط بین سختافزار رایانه و کاربر میباشد.
وظایف سیستمعامل
سیستمعامل دو کار عمده انجام میدهد:
در نگرش پایین به بالا، منابع منطقی (مانند فایلها) و منابع فیزیکی (مانند دستگاههای سختافزاری) رایانه را مدیریت و کنترل میکند.
در نگرش بالا به پایین، وظیفه سیستمعامل این است که یک ماشین توسعه یافته (Extended Machine) یا ماشین مجازی را به کاربران ارائه کند تا آنها بتوانند آسانتر برنامهنویسی نمایند و درگیر پیچیدگیهای سختافزاری رایانه نشوند.[نیازمند منبع]
به طور کلی، وظایف سیستمعامل شامل موارد زیر است:
استفاده بهینهتر از منابع و جلوگیری از به هدر رفتن آنها
تخصیص و آزاد سازی منابع
اداره صفها و زمانبندی استفاده از منابع
حسابداری میزان استفاده از منابع
ایجاد امنیت
ایجاد، حذف و اداره فرایندها
ایجاد مکانیسمهای ارتباط بین فرایندها و همگامسازی آنها
مدیریت فایلها و پوشهها
مدیریت حافظههای اصلی و جانبی
برقراری امکان دسترسی چندتایی (Multiaccess) و اجرای هم روند (Concurrent) فرایندها
به اشتراک گذاری منابع (Resource Sharing)
تعیین راهکارهایی برای اداره بنبست (Deadlock)
جلوگیری از وضعیت رقابتی (Race Condition) و تداخل یا در هم قفل شدن (Interlock) فرایندها
جلوگیری از گرسنگی (Starvation)
سیستمعاملهای فعلی
در سالهای اخیر رقابت بیشتر بین سیستمعاملهای مایکروسافت ویندوز، اپل مک اواس و لینوکس جریان دارد که آماری که در ماه ژوییه ۲۰۱۱ توسط وبگاه W3Schools به ثبت رسیده حاکی از آن است که هم اکنون بیش از ۸۰ درصد کاربران اینترنت از سیستمعامل ویندوز استفاده میکنند.
آمار موجود که مربوط به اوت ۲۰۱۰ میباشد به شرح زیر است:
ویندوز ۷: ۳۷٫۸٪
ویندوز ویستا: ۶٫۷٪
ویندوز اکس پی: ۳۹٫۷٪
ویندوز ۲۰۰۳: ۰٫۹٪
مک اواس: ۸٫۱٪
توزیعهای گنو/لینوکس: ۵٫۲٪
از سیستمعاملهای مشهور کامپیوترهای شخصی میتوان به اسامی زیر اشاره کرد:
یونیکس
گنو/لینوکس
مک اواس
ویندوز اکسپی
ویندوز ویستا
ویندوز انتی
ویندوز ۷
ویندوز ۸
ویندوز سیای
سولاریس
بی اس دی
داس
ام وی اس
ویلز
پالم
همچنین از سیستمعاملهای موجود روی گوشیهای تلفن همراه نسل جدید میتوان به اسامی زیر اشاره کرد:
اندروید
iOS
ویندوز موبایل
ویندوز فون
سیمبین
یوآیکیو
بادا
بلک بری
میگو
پالم
تاریخچه
در آغاز
اولین کامپیوترها فاقد سیستمعامل بودند. در اوایل سال ۱۹۶۴ فروشندگان کامپیوترهای تجاری ابزار کاملا گستردهای را برای تسهیل توسعه، زمانبندی، و اجرای کارها روی یک سیستم پردازش دستهای فراهم میکردند. برای مثال رایانه تولید شده توسط UNI VAC.
در ابتدا سیستمعامل روی مین فریمها مستقر میشد و کمی بعد سیستمعامل میکروکامپیوترهای ابتدایی که فقط از یک برنامه در هر زمان پشتیبانی میکردند و به یک زمانبند بسیار ابتدایی نیاز داشتند. هر برنامه زمانی که در حال اجرا بود تحت کنترل کامل ماشین قرار داشت. چند وظیفهای (اشتراک زمانی) اولین بار در مین فریمها و در ۱۹۶۰ عرضه شد. ابتدا کامپیوترها بسیار بزرگ و جاگیر بودند اما امروزه در کف یک دست جا میگیرند.
مین فریمها
میکرو کامپیوترها
میکروکامپیوترهای اولیه نیاز یا ظرفیت داشتن یک سیستمعامل پیچیده که روی مین فریمها توسعه یافته بود نداشتند.
ویژگیها
اجرای برنامه
نوشتار اصلی: پردازش
وقفهها
نوشتار اصلی: وقفه
دستهبندی وقفهها
برنامه وقفههایی که به دلیل بعضی شرایظ حاصل از یک دستورالعمل بروز میکند. شامل سریز شدن محاسباتی، تقسیم بر صفر، تلاش برای اجرای یک دستورالعمل ماشین غیر مجاز و مراجعه به آدرسی خارج از فضای مجاز کاربر.
زمانسنج وقفهای که توسط زمانسنج داخلی تولید میشود. این وقفه به سیستمعامل اجازه میدهد، بعضی اعمال را به طور مرتب انجام دهد.
ورودی/خروجیوقفههایی که به وسیله کنترل کننده ورودی/خروجی تولید میشود، تا کامل شدن طبیعی یک عمل یا شرایط خطا را اعلام نماید.
نقص سختافزار وقفههایی که با نقص سختافزاری تولید میشود، مثل نقص برق یا خطای توازن حافظه.