سیستم‌عامل

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

سیستم‌عامل یا سامانهٔ عامل[۱] (به انگلیسی: Operating System) نرم‌افزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم می‌سازد که نرم‌افزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستم‌عامل جزء ضروری‌ترین نرم‌افزارهای یک سیستم کامپیوتری است. سیستم‌عامل خدماتی به برنامه‌های کاربردی و کاربر ارائه می‌دهد. برنامه‌های کاربردی یا از طریق واسط‌های برنامه نویسی کاربردی (به انگلیسی: Application User Interface-APIs) و یا از طرق فراخوانی‌های سیستم به این خدمات دسترسی دارند. با فراخوانی این واسط‌ها، برنامه‌های کاربردی می‌توانند سرویسی را از سیستم‌عامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرم‌افزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر با سیستم‌عامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموما واسط کاربری به عنوان بخشی از سیستم‌عامل در نظر گرفته می‌شود. در سیستم‌های بزرگ و چند کاربره مثل یونیکس و سیستم‌های شبیه یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستم‌عامل اجرا می‌شود پیاده‌سازی می‌شود. نمونه‌هایی از محبوب‌ترین سیستم‌عامل‌های نوین شامل: اندروید، بی‌اس‌دی، آی‌اواس، لینوکس، اواس ده، کیوان‌اکس، مایکروسافت ویندوز، ویندوز فون و زد/اواس می‌باشند.

انواع سیستم‌عامل[ویرایش]

سیستم‌های بی‌درنگ[ویرایش]

سیستم‌های بی‌درنگ یا زمان واقعی یک سیستم عامل چند وظیفه‌ای است که معمولا بعنوان یک کنترل کننده در یک کاربرد خاص استفاده می‌شوند. سیستم در این حالت می‌بایست در زمانی مشخص و معین حتما جواب مورد نظر را بدهد. سیستم‌های کنترل آزمایش‌های علمی، تصویربرداری پزشکی، کنترل صنعتی و برخی از سیستم‌های نمایش از این دسته‌اند. هدف اصلی استفاده از سیستم‌های بی‌درنگ واکنش سریع و تضمین شده در برابر یک رویداد خارجی می‌باشد. در سیستم‌های بی‌درنگ معمولا وسایل ذخیره‌سازی ثانویه وجود ندارد و به جای آن از حافظه‌های ROM استفاده می‌شود. سیستم‌عامل‌های پیشرفته نیز در این سیستم‌ها وجود ندارند چرا که سیستم‌عامل کاربر را از سخت‌افزار جدا می‌کند و این جداسازی باعث عدم قطعیت در زمان پاسخ‌گویی می‌شود. سیستم‌هایی که در آن مهلت زمانی(به انگلیسی: Deadline) باید پاسخ داده شود را بی‌درنگ سخت و سیستم‌هایی که مهلت زمانی را پشتیبانی نمی‌کنند بی‌درنگ نرم می‌نامند. از کاربرد سیستم‌های بی‌درنگ سخت می‌توان به کنترل موتور یک خودرو(پاسخ با تاخیر می‌تواند نتایج فاجعه‌باری را به همراه داشته باشد) و در سیستم‌های بی‌درنگ نرم می‌توان به اسکن بارکد در پایانه فروشگاه(با اینکه سرعت پاسخ‌دهی باید سریع باشد اما به حادّی سیستم‌های سخت نمی‌باشد) اشاره کرد.[۲][۳]

سیستم‌های چند کاربره[ویرایش]

سیستم‌های چند کاربره اجازه می‌دهند تا کاربران متعدد بصورت همزمان به یک سیستم کامپیوتری دسترسی داشته باشند. سیستم‌های اشتراک زمانی و کارساز وب را می‌توان بعنوان سیستم‌های چند کاربره طبقه‌‌بندی کرد. در سیستم‌های اشتراک زمانی تنها یک پردازنده قرار دارد که توسط مکانیزم‌های زمانبندی بین برنامه‌های مختلف کاربرها با سرعت زیاد سوئیچ می‌شود و بنابراین هر کاربر تصور می‌کند کل رایانه در اختیار اوست.[۲]

سیستم‌عامل تک پردازنده[ویرایش]

این نوع سیستم‌عامل‌ها، سیستم‌عامل‌های نسل چهارم (نسل فعلی) هستند که بر روی یک پردازنده اجرا می‌شوند.از قبیل XP,Vista,۹۸,Me که بیشتر محصول شرکت مایکرو سافت می‌باشند.

سیستم‌عامل شبکه‌ای[ویرایش]

سیستم عاملهایی مثل ناول نت که بیشترین استفاده و ا مکانات این سیستم عامل برای شبکه می‌باشد

سیستم‌عامل توزیع شده[ویرایش]

نوشتار اصلی: سیستم‌های عامل توزیع شده

این سیستم‌عامل‌ها خود را مانند سیستم‌عامل‌های تک پردازنده به کاربر معرفی می‌کنند، اما در عمل از چندین پردازنده استفاده می‌کنند. این نوع سیستم‌عامل در یک محیط شبکه‌ای اجرا می‌شود در این نوع سیستم یک برنامه پس از اجرا در کامپوترهای مختلف جواب نهایی به سیستم اصلی کاربر بر می‌گردد سرعت پردازش در این نوع سیستم بسیار بالاست.

دلایل ایجاد سیستم‌عامل[ویرایش]

یک سیستم کامپیوتری پیشرفته از یک یا چند پردازنده، مقداری حافظه اصلی، دیسک‌ها، چاپگرها، صفحه‌کلید، صفحه‌نمایش، واسط‌های شبکه‌ای و دیگر دستگاه‌های ورودی و خروجی تشکیل شده‌است. اگر سیستم یکپارچه‌ای برای مدیریت این منابع وجود نداشته باشد، هر برنامه باید به تنهایی این کار را انجام دهد. سیستم‌عامل یک لایه نرم‌افزاری فراهم می‌کند که وظیفه مدیریت منابع سیستم را از دوش برنامه‌های کاربردی رهانیده و کار برنامه‌نویسی را ساده‌تر می‌نماید. که با توجه به نسخه‌های جدید سیستم عامل‌ها که به دلیل بهره‌مندی از تکنولوژی گرافیک و امکان استفاده از ماوس، امکان استفاده ساده و آسان را برای کاربران مبتدی فراهم نموده‌است. در حقیقت سیستم‌عامل واسط بین سخت‌افزار رایانه و کاربر می‌باشد.

وظایف سیستم‌عامل[ویرایش]

سیستم‌عامل دو کار عمده انجام می‌دهد:

  1. در نگرش پایین به بالا، منابع منطقی (مانند فایل‌ها) و منابع فیزیکی (مانند دستگاه‌های سخت‌افزاری) رایانه را مدیریت و کنترل می‌کند.
  2. در نگرش بالا به پایین، وظیفه سیستم‌عامل این است که یک ماشین توسعه یافته (Extended Machine) یا ماشین مجازی را به کاربران ارائه کند تا آنها بتوانند آسان‌تر برنامه‌نویسی نمایند و درگیر پیچیدگی‌های سخت‌افزاری رایانه نشوند.[نیازمند منبع]

به طور کلی، وظایف سیستم‌عامل شامل موارد زیر است:

  • استفاده بهینه‌تر از منابع و جلوگیری از به هدر رفتن آنها
  • تخصیص و آزاد سازی منابع
  • اداره صف‌ها و زمان‌بندی استفاده از منابع
  • حسابداری میزان استفاده از منابع
  • ایجاد امنیت
  • ایجاد، حذف و اداره فرایندها
  • ایجاد مکانیسم‌های ارتباط بین فرایندها و همگام‌سازی آن‌ها
  • مدیریت فایل‌ها و پوشه‌ها
  • مدیریت حافظه‌های اصلی و جانبی
  • برقراری امکان دسترسی چندتایی (Multiaccess) و اجرای هم روند (Concurrent) فرایندها
  • به اشتراک گذاری منابع (Resource Sharing)
  • تعیین راهکارهایی برای اداره بن‌بست (Deadlock)
  • جلوگیری از وضعیت رقابتی (Race Condition) و تداخل یا در هم قفل شدن (Interlock) فرایندها
  • جلوگیری از گرسنگی (Starvation)

سیستم‌عامل‌های فعلی[ویرایش]

در سالهای اخیر رقابت بیشتر بین سیستم‌عامل‌های مایکروسافت ویندوز، اپل مک اواس و لینوکس جریان دارد که آماری که در ماه ژوییه ۲۰۱۱ توسط وب‌گاه W3Schools به ثبت رسیده حاکی از آن است که هم اکنون بیش از ۸۰ درصد کاربران اینترنت از سیستم‌عامل ویندوز استفاده می‌کنند.

آمار موجود که مربوط به اوت ۲۰۱۰ می‌باشد به شرح زیر است:

از سیستم‌عامل‌های مشهور کامپیوترهای شخصی می‌توان به اسامی زیر اشاره کرد:

همچنین از سیستم‌عامل‌های موجود روی گوشی‌های تلفن همراه نسل جدید می‌توان به اسامی زیر اشاره کرد:

تاریخچه[ویرایش]

در آغاز[ویرایش]

اولین کامپیوترها فاقد سیستم‌عامل بودند. در اوایل سال ۱۹۶۴ فروشندگان کامپیوترهای تجاری ابزار کاملا گسترده‌ای را برای تسهیل توسعه، زمانبندی، و اجرای کارها روی یک سیستم پردازش دسته‌ای فراهم می‌کردند. برای مثال رایانه تولید شده توسط UNI VAC.

در ابتدا سیستم‌عامل روی مین فریم‌ها مستقر می‌شد و کمی بعد سیستم‌عامل میکروکامپیوترهای ابتدایی که فقط از یک برنامه در هر زمان پشتیبانی می‌کردند و به یک زمانبند بسیار ابتدایی نیاز داشتند. هر برنامه زمانی که در حال اجرا بود تحت کنترل کامل ماشین قرار داشت. چند وظیفه‌ای (اشتراک زمانی) اولین بار در مین فریم‌ها و در ۱۹۶۰ عرضه شد. ابتدا کامپیوترها بسیار بزرگ و جاگیر بودند اما امروزه در کف یک دست جا می‌گیرند.

مین فریم‌ها[ویرایش]

میکرو کامپیوترها[ویرایش]

میکروکامپیوترهای اولیه نیاز یا ظرفیت داشتن یک سیستم‌عامل پیچیده که روی مین فریم‌ها توسعه یافته بود نداشتند.


ویژگی‌ها[ویرایش]

اجرای برنامه[ویرایش]

نوشتار اصلی: پردازش


وقفه‌ها[ویرایش]

نوشتار اصلی: وقفه ها

دسته‌بندی وقفه‌ها[ویرایش]

  • برنامه وقفه‌هایی که به دلیل بعضی شرایظ حاصل از یک دستورالعمل بروز می‌کند. شامل سریز شدن محاسباتی، تقسیم بر صفر، تلاش برای اجرای یک دستورالعمل ماشین غیر مجاز و مراجعه به آدرسی خارج از فضای مجاز کاربر.
  • زمان‌سنج وقفه‌ای که توسط زمان‌سنج داخلی تولید می‌شود. این وقفه به سیستم‌عامل اجازه می‌دهد، بعضی اعمال را به طور مرتب انجام دهد.
  • ورودی/خروجیوقفه‌هایی که به وسیله کنترل کننده ورودی/خروجی تولید می‌شود، تا کامل شدن طبیعی یک عمل یا شرایط خطا را اعلام نماید.
  • نقص سخت‌افزار وقفه‌هایی که با نقص سخت‌افزاری تولید می‌شود، مثل نقص برق یا خطای توازن حافظه.

حالت حفاظت شده و ناظر[ویرایش]

مدیریت حافظه[ویرایش]

نوشتار اصلی: مدیریت حافظه


حافظه مجازی[ویرایش]

نوشتار اصلی: حافظه مجازی


چند وظیفه‌ای[ویرایش]

نوشتار اصلی: چند وظیفه ای


دسترسی به دیسک و سیستم فایل[ویرایش]

راه اندازهای دستگاه‌ها[ویرایش]

شبکه[ویرایش]

نوشتار اصلی: شبکه


امنیت[ویرایش]

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. فرهنگ واژه‌های مصوّب فرهنگستان: ۱۳۷۶ تا ۱۳۸۵، بخش دوم فارسی، صفحهٔ ۳۹۸. (دانلود از فرهنگستان)
  2. ۲٫۰ ۲٫۱ مقسمی, حمیدرضا. «فصل یک». در سیستم عامل. صفحه 32: انتشارات گسترش علوم پایه, 1389. ISBN ‎978-964-49-303-8. 
  3. «Real - time Operating System s that Support Java». W. Arnold, K. Branson, D. Chung, R. Pesigan University of California, San Diego. بازبینی‌شده در ۱۷ اوت ۲۰۱۴. 
  • آندرواس تننباوم و وودهال، طراحی و پیاده‌سازی سیستمهای عامل.چاپ چهارم ویرایش دوم ۱۳۸۱.