مشخصات سیستم عامل — راهنمای جامع
هر سیستم عاملی صرف نظر از نوع آن، به طور کلی برخی مشخصات کلی دارد که در این نوشته به بررسی تک تک این مشخصات سیستم عامل میپردازیم.
پردازش دستهای
پردازش دستهای تکنیکی است که سیستم عامل به وسیله آن برنامهها و دادهها را پیش از پردازش در یک دسته گردآوری میکند. یک سیستم عامل فعالیتهای زیر را در ارتباط با پردازش دستهای انجام میدهد:
- سیستم عامل یک وظیفه تعریف میکند که توالی از پیش تعریفشدهای از دستورها، برنامهها و دادهها را به عنوان یک واحد منفرد دارد.
- سیستم عامل تعدادی از وظایف را در حافظه نگهداری میکند و آنها را بدون ورود هر گونه اطلاعات دستی اجرا میکند.
- این وظیفهها به ترتیب تحویل پردازش میشوند، یعنی اول وظیفهای که در ابتدای صف قرار دارد پردازش میشود.
- زمانی که یک وظیفه خاتمه یافت، حافظه مربوط به آن آزاد میشود و خروجی وظیفه در یک spool خروجی قرار میگیرد تا بعداً پرینت شده یا پردازش شود.
مزایا
- پردازشهای دستهای بسیاری از وظایفت اپراتور رایانه را به خود رایانه انتقال میدهند.
- عملکرد کاری افزایش مییابد، زیرا یک وظیفه جدید به محض این که وظیفه قبلی پایان یافت اجرا میشود و هیچ مداخله دستی لازم نیست.
معایب
- دیباگ کردن برنامهها دشوار است
- یک وظیفه میتواند وارد حلقه بیانتها شود.
- به دلیل فقدان طرح حفاظتی، یک وظیفه دستهای میتواند بر روی وظایف در صف انتظار، تأثیر بگذارد.
چند وظیفگی
چند وظیفگی (Multitasking) به حالتی گفته میشود که چند وظیفه به طور همزمان از سوی CPU اجرا شوند. سوئیچ بین این وظیفهها ممکن است آن قدر سریع رخ دهد که کاربر متوجه نشود و همزمان با برنامه در حال اجرا ارتباط داشته باشد. سیستم عامل فعالیتهای زیر را در خصوص چندوظیفگی انجام میدهد:
- کاربر دستورالعملها را به سیستم عامل یا مستقیماً به یک برنامه میدهد و پاسخی بیدرنگ دریافت میکند.
- سیستم عامل چندوظیفگی را به روشی اجرا میکند که میتواند چندین برنامه را همزمان عملیاتی/اجرایی کند.
- سیستمهای عامل با خصوصیت چندوظیفگی به نام سیستمهای اشتراک زمانی نیز شناخته میشوند.
- این سیستمهای چندوظیفگی به منظور ایجاد امکان استفاده تعاملی از یک رایانه با هزینهای معقول طراحی شدهاند.
- سیستمهای عامل اشتراک زمانی از مفهوم زمانبندی CPU و چند برنامگی برای ارائه بخش کوچکی از زمان اشتراکی CPU به هر کاربر استفاده میکنند.
- هر کاربر دست کم یک برنامه مستقل در حافظه دارد.
- برنامهای که در حافظه بارگذاری شده و در حال اجرا است، معمولاً به نام process نامیده میشود.
- زمانی که یک پروسس اجرا میشود، به طور معمول در طی زمان کوتاهی یا باید پایان یابد و یا یک عملیات I/O اجرا کند.
- از آنجا که عملیات I/O معمولاً با سرعتهای پایینتری اجرا میشود، زمانی طول میکشد تا پایان یابد. در طی این زمان CPU میتواند به پروسسهای دیگر برسد.
- سیستم عامل به کاربران اجازه میدهد که از رایانه به طور همزمان و مشترک استفاده کنند. از آنجا که هر اقدام یا دستور در سیستم اشتراک زمانی باید کوتاه باشد، تنها زمان اندکی از CPU برای هر کاربر مورد نیاز است.
- به دلیل این که سیستم به سرعت CPU را از یک برنامه یا کاربر به برنامه یا کاربر بعدی سوئیچ میکند، هر کاربر تصور میکند که یک CPU اختصاصی برای خود دارد؛ در حالی که در عمل یک CPU در میان کاربران و برنامههای مختلف به اشتراک گذارده شده است.
چند برنامگی
اشتراک پردازنده وقتی یک یا دو برنامه در حافظه به طور همزمان وجود داشته باشند، به نام چند برنامگی (multiprogramming) نامیده میشود. در چندبرنامگی تصور میشود که یک پردازنده مشترک منفرد وجود دارد. چند برنامگی موجب افزایش استفاده از CPU از طریق سازماندهی وظایف میشود به طوری که CPU همواره کاری برای اجرا داشته باشد.
در شکل زیر وضعیت حافظه در یک سیستم چند برنامگی نمایش یافته است.
سیستم عامل فعالیتهای زیر را در خصوص چندبرنامگی اجرا میکند:
- سیستم عامل چندوظیفه را همزمان در حافظه نگهداری میکند.
- این مجموعه وظایف زیرمجموعهای از وظایفی هستند که در استخر (pool) وظایف قرار دارند.
- سیستم عامل یک به یک این وظایف را از حافظه برداشته و اجرا میکند.
- سیستمهای عامل چند برنامگی وضعیت همه برنامهها و منابع سیستم را با استفاده از برنامههای مدیریت حافظه رصد و کنترل میکنند تا مطمئن شوند که CPU هرگز بیکار نمیماند؛ مگر این که پروسسی برای اجرا وجود نداشته باشد.
مزایا
- استفاده بالا و مؤثر از CPU
- کاربر حس میکند که برنامهها تقریباً به طور همزمان از CPU استفاده میکنند.
معایب
- به زمانبندی CPU نیاز داریم
- برای گنجاندن وظایف زیاد در حافظه به مدیریت حافظه نیاز داریم.
تعاملپذیری
منظور از تعاملپذیری توانایی کاربران برای برقراری ارتباط با سیستم رایانهای است. سیستم عامل فعالیتهای زیر را در خصوص تعاملپذیری انجام میدهد:
- رابطی در اختیار کاربر قرار میدهد تا با سیستم تعامل کند.
- دستگاههای ورودی مانند کیبورد را مدیریت کرده و ورودیهای کاربر را دریافت میکند.
- دستگاههای خروجی مانند نمایشگر را مدیریت کرده و خروجی مناسب را به کاربر نمایش میدهد.
زمان پاسخدهی سیستم عامل باید کوتاه باشد، چون کاربر وظیفهای را تحویل داده و منتظر نتیجه است.
سیستم همزمان
سیستمهای همزمان معمولاً سیستمهای اختصاصی و توکار هستند. سیستم عامل فعالیتهای زیر را در خصوص سیستمهای همزمان انجام میدهد:
- در چنین سیستمهایی، سیستم عامل معمولاً اطلاعات را از دادههای سنسور خوانده و واکنش نشان میدهد.
- سیستم عامل باید پاسخ به رویدادها را در محدوده زمانی ثابتی تضمین کند تا عملکرد صحیحی صورت بپذیرد.
محیط توزیع یافته
منظور از یک محیط توزیع یافته، CPU ها یا پردازندههای مستقل چندگانهای در یک سیستم رایانهای هستند. یک سیستم عامل فعالیتهای زیر را در خصوص محیط توزیع یافته انجام میدهد:
- سیستم عامل منطق محاسباتی را میان چند پردازنده فیزیکی توزیع میکند.
- پردازندهها حافظه یا ساعت مشترکی ندارند. به جای آن هر پردازنده حافظه محلی خاص خود را دارد.
- سیستم عامل ارتباط بین پردازنده را مدیریت میکند. این پردازندهها از طریق خطوط ارتباطی مختلف با هم ارتباط برقرار میکنند.
Spooling
Spool اختصاری برای عبارت «عملیات جانبی همزمان روی خط» (simultaneous peripheral operations on line) است. منظور از اسپول کردن، قرار دادن دادههای وظایف مختلف ورودی/خروجی در یک بافر است. این بافر ناحیه خاصی از حافظه روی هارددیسک است که دستگاههای ورودی/خروجی به آن دسترسی دارند.
سیستم عامل فعالیتهای زیر را در خصوص محیط توزیع یافته انجام میدهد:
- دادههای دستگاههای ورودی/خروجی را مدیریت میکند، چون این دستگاهها نرخهای دسترسی متفاوتی دارند.
- سیستم عامل بافرِ اسپولینگ را نگهداری میکند. این بافر ایستگاه انتظاری برای دادهها است تا زمانی که دستگاههای کندتر هنوز دادههای خود را ارسال نکردهاند، منتظر بمانند.
- محاسبات موازی را اجرا میکند، چون در طی فرایند اسپول کردن، یک رایانه میتواند وظایف ورودی/خروجی دیگری را به صورت موازی اجرا کند. بدین ترتیب این امکان پدید میآید که رایانه دادهها را از یک نوار بخواند، آنها را روی یک دیسک یا روی یک پرینتر نوار مغناطیسی بنویسد و همزمان وظایف محاسباتی خود را نیز اجرا کند.
مزایا
- عملیات اسپول کردن از دیسک به عنوان یک بافر بسیار بزرگ استفاده میکند.
- اسپول کردن امکان همپوشانی عملیات ورودی/خروجی را برای وظایف مختلف ارائه میکند.
اگر این مطلب برایتان مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای دروس مهندسی کامپیوتر
- آموزش سیستم های عامل
- مفاهیم سیستم عامل — راهنمای جامع
- مجموعه آموزشهای مهندسی نرمافزار
- آموزش سیستم عامل لینوکس (Linux) – مقدماتی
- مجموعه آموزشهای لینوکس (Linux)
==