Professional Documents
Culture Documents
موفق باشید-خرام
درس سیستم عامل – دانشکده شهید باهنر شیراز – مدرس :محمدرضا خرام
وظیفه :Task
هر فرایند در حال اجرا ،از یک یا تعدادی قطعه کد تشکیل شده است .به قطعه کد در حال اجرا در هر فرایند ،وظیفه ) (taskگویند.
در لحظهی اجرای یک فرایند ،فقط دستورات وظیفهی فعال موجود در حافظه اجرا میشود .برای درک تفاوت بین وظیفه و فرایند،
به مثال زیر توجه کنید .اگر برنامه Ms-Wordرا اجرا کنید .پس از اجرای آن ممکن است دو یا چند پرونده را در آن باز کنید .به
برنامه Ms-Wordموجود فرایند گوییم و به پروندهها موجود در آن "وظیفه" گوییم.
در حالت کلی میتوان گفت برنامههایی که چند وظیفهی جدا از هم را میتوانند اجرا کنند ،میتوانند به صورت چند وظیفهای
پیادهسازی شوند .سیستمهایی که امکان اجرای چندین وظیفه را بصورت همزمان فراهم میکنند ،سیستمهای چند وظیفهای
نامیده میشوند.
نمای کلی سیستم کامپیوتر
ثبات های قابل رؤیت برای کاربر :تخصیص متغیر به یک ثبات در هر حافظه به کمک برنامه نویسی.
ثبات های کنترل و وضعیت :پردازنده از این ثبات ها برای کنترل عملیات پردازنده استفاده کرده و رویه های ممتاز سیستم عامل
از آنها برای کنترل اجرای برنامه استفاده میکند.
اجرای دستورالعمل
برنامه ای که باید توسط پردازنده اجرا شود شامل مجموعهای از دستورالعملهاست که در حافظه ذخیره شدهاند .پردازش دستورالعمل
در ساده ترین شکل گرفتن دستورالعمل( )fetchو اجرا( )executeاز چهار گام زیر تشکیل شده است.
مثال دستور 1940به شکل زیر ذخیره میشود(1)10 = (0001)2 , (9)10 = (1001)2 , (4)10 = (0100)2 .
مثال :فرایند اجرای یک برنامه بسیار ساده در زیر آورده شده است
میخواهیم مرحله به مرحله مجموع دو عدد را توسط پردازنده و ذخیره نتیجه در حافظه را تشریح کنیم.
برنامه ثباتهای داخلی CPU لیست چند کد عملیاتی
1940 آدرس دستورالعمل= شمارنده برنامه )(PC 0001یعنی AC :را از حافظه بارگذاری کن
5941 دستورالعملی که اجرا میشود=ثبات دستورالعمل)(IR 0010یعنی :محتوایACرا در حافظه ذخیره کن
2941 ثبات ذخیره موقت = انباشتگر )(AC 0101یعنی :از حافظه به ACاضافه کن
-1شمارنده برنامه ) (PCحاوی آدرس ( 300آدرس اولین دستورالعمل) است .این دستورالعمل (مقدار 1940در مبنای شانزده) در
ثبات دستورالعمل ) (IRبارگذاری و مقدار PCیک واحد اضافه میشود .توجه کنید که این فرایند ،متضمن استفاده از یک ثبات
آدرس حافظه ) (MARو یک ثبات میانگیر حافظه ) (MBRاست .این ثباتهای میانی برای سادگی نشان داده نشدهاند.
-2اولین 4بیت (اولین رقم مبنای شانزده) در IRبیانگر این است که ACباید از حافظه بارگذاری شود 12 .بیت باقیمانده( سه رقم
در مبنای شانزده) مشخص کننده آدرس ( )940میباشد.
-3دستورالعمل بعدی ( )5941از محل 301واکشی) (fetchمیگردد و مقدار PCافزایش مییابد.
-4محتوای قبلی ACو محتوای محل 941با هم جمع میشوند و نتیجه در ACذخیره میگردد.
-5دستورالعمل بعدی ( )2941از محل 302واکشی میشود و مقدار PCافزایش مییابد.
-6محتوای ACدر محل 941ذخیره میشود.
وقفه : interrupt
تقریبا همه کامپیوترها دارای مکانیزمیهستند که ماژول های ورودی/خروجی ویا ماژول های حافظه با بکارگیری آن میتوانند در
ترتیب عادی اجرای دستورالعملها در پردازنده وقفه ایجاد کنند.
انواع وقفه ها
وقفه برنامه :این وقفه با بوجود آمدن بعضی از شرایط حاصل از اجرای یک دستورالعمل مانند سرریزحسابی ،تقسیم بر صفر، ❖
تالش برای اجرای یک دستورالعمل غیر مجاز و ارجاع به فضای غیر قابل دسترسی کاربر در حافظه تولید میشود.
وقفه زمان سنج :این وقفه توسط زمان سنج درون پردازنده ایجاد میشود این وقفه به سیستم عامل اجازه میدهد که اعمال ❖
معینی را به طور مرتب انجام دهد.
وقفه ورودی/خروجی :این وقفه توسط یک کنترلکننده ورودی/خروجی تولید میشود که نشاندهنده اتمام عادی یک ❖
عملیات یا نوعی از شرایط خطا میباشد.
وقفه نقص سختافزاری :این وقفه توسط یک نقص در سختافزار مانند نقص در سیستم تغذیه یا خطای توازن )(parity ❖
حافظه تولید میشود.
وقفه ها و چرخه دستورالعمل ها
برای بررسی حاالت فرایند نیاز بود که مقدماتی گفته شود تا بتوانیم حاالت فرایند به شکلی مفهومیبیان کنیم
حاالت فرایند
فرایند برنامه در حال اجراست .ولی از دید سیستم عامل میتوان گفت فرایند در سیستم عامل یکسری ساختمان داده است.
هر فرایند در سیستم عامل توسط یک ساختمان داده به نام بلوک کنترل فرایند PCBیا process Control Blockنشان داده
میشود PCB .شامل اطالعات زیادی در مورد یک فرایند در سیستم عامل است .این اطالعات مثالً هنگامیکه فرایند از «حالت اجرا»
به حالت «آماده » میرود الزم است ذخیره شود که اگر دوباره فرایند خواست به حالت اجرا برگردد از همان نقطهای که قطع شده
بود ،به درستی ادامه یابد.
آماده) : (READYفرایندی که وقتی به آن فرصت داده شد ،برای اجرا آماده باشد.
اجرا) : (Runningفرآیندی که هم اکنون در حال اجرا میباشد.
مسدود) : (Blockedفرایندی که تا بروز حادثه ای نمیتواند اجرا شود و منتظر میماند.
معلق ) : (Suspendدر اکثر اوقات ،پردازنده بیکار میماند که برای حل مشکل از مبادله استفاده میشود و بخشی از فرایند به دیسک
منتقل میشود .در این حالت برای فرایند یکی از اتقاقات زیر ممکن است رخ داده باشد
فورا آماده اجرا نباشد •
منتظر یک حادثه باشد یا نباشد •
توسط عاملی در حالت معلق گذاشته شده تا از اجرای آن جلوگیری کند. •
منتظر فرمان از طرف سیستم عامل باشد •
جدید ) : (Newفرایندی که هم اکنون گرفته شده است ،اما هنوز جزء فرایندهای قابل اجرای سیستم عامل پذیرفته نشده باشد.
خروج ) :(Terminatedفرایندی که اجرای آن پایان یافته است و یا اجرای آن قطع شده و از مجموعه فرایندهای قابل اجرای سیستم
خارج شده است.
در نسل سوم کامپیوترها ( )1965-80از مدارات مجتمع ) (Integrated Circuit=ICبرای ساخت کامپیوترها استفاده شد .به طور
کلی برنامهها را میتوان به دو دسته تقسیم کرد :یکی برنامه ها با تنگنای محاسباتی CPU boundیا CPU Limiterمانند محاسبات
علمی سنگین که بیشتر زمان کامپیوتر صرف محاسبات Cpuمیشود ودیگری برنامه های تنگنای )I/O Limited) I/Oمانند
برنامههای تجاری که بیشتر زمان کامپیوتر صرف ورود دادهها و خروج اطالعات میشود .
یک اشکال مهم سیستم های دستهای این است که وقتی کار جاری برای تکمیل یک عملیات I/Oمثالً بر روی نوار گردان منتظر
میشود .در این حال CPUبیکار میماند و مجبور است صبر کند تا عملیات I/Oبه اتمام برسد .در برنامه های CPU Limitedاین
اتالف وقت اندک است ولی در برنامه های I/O Limitedممکن است حدود 80تا 90درصد وقت CPUبه هدر برود.
برای رفع این مشکل از تکنیک multiprogrammingاستفاده میشود .بدین ترتیب که حافظه به چند قسمت تقسیم شده و در هر
قسمت یک برنامه مجزا قرار داده میشود .وقتی که یک jobبرای تکمیل عملیات I/Oمنتظر میماند ,پردازنده به jobدیگری داده
میشود .اگر تعداد کارهای ) (Jobsموجود در حافظه کافی باشد میتوان CPUرا تقریباً صد در صد مشغول نگه داشت.
البته نگهداری همزمان چند برنامه در حافظه نیاز به مدیریت خاص حافظه دارد تا برنامهها بر همدیگر اثر سوء نداشته باشند .لذا
مدیریت حافظه بحث مهمی در سیستم عامل میباشد.
کامپیوتر با استفاده از اشتراک منابع در میان انواع وظایف به فعالیت خود ادامه میدهد .اما هنوز هم در این سیستمهای عامل،
بایستی کاربران ساعتها در انتظار باقی میماندند.
سیستمعامل بیدرنگ Real time Operating System
سیستمعامل بیدرنگ دارای ویژگی چند نخی است و برای کاربردهای بالدرنگ پیجیده ای که نیاز به پاسخگوییهای سریع و قطعی
دارند ،طراحی شدهاست .نوعی سیستمعامل است که در آن ،زمان ،پارامتر کلیدی است .برای مثال در سیستمهای کنترل فرایند،
رایانههای بیدرنگ باید دادههای فرایند تولید را جمعآوری کرده و به کمک آن ماشینهای داخل کارخانه را کنترل کنند .خیلی
اوقات باید فرجه زمانی ( )deadlineبهطور دقیق برآورده شود؛ یعنی باید کارها در لحظات خاصی از زمان انجام گیرد .برای مثال اگر
یک خودرو در خط مونتاژ در حال حرکت باشد و ربات جوشکاری خیلی زود یا خیلی دیر جوش دهد ،خودرو خراب خواهد شد.
زمانی از یک سیستم بیدرنگ استفاده میشود که الزم باشد عملیات پردازنده یا جریان داده در زمان کامالً مشخصی انجام شود؛
بنابراین یک سیستم بیدرنگ اغلب بهعنوان ابزار کنترلی در یک کاربرد خاص استفاده میشود .سیستمهایی که آزمایشهای علمی
را کنترل میکنند ،سیستمهای تصویربرداری پزشکی ،سیستمهای کنترل صنعتی ،و نیز برخی از موتورهای انژکتوری در خودرو،
کنترلرهای لوازم خانگی و سیستمهای جنگافزاری ،سیستمهای بیدرنگ هستند .این سیستمها برای آنکه بهدرستی کار کنند باید
پاسخ درست را در فرجه زمانی از پیش تعیین شده بازگردانند در صورتی که در سیستمهای اشتراک زمانی مطلوب است (ولی
اجباری نیست) که سریع پاسخ دهند.
دو نوع از سیستمهای عامل همزمان وجود دارند :سیستمهای عامل سخت و نرم.
سیستمهای عامل همزمان سخت :سیستمهای همزمان سخت تضمین میکنند که وظایف حیاتی در طی زمان معینی پایان
مییابند .در سیستمهای همزمان سخت ،درایوهای ذخیرهسازی ثانویه محدود هستند یا کالً وجود ندارند و دادهها در ROMذخیره
میشوند .در چنین سیستمهایی ،حافظه مجازی تقریباً هرگز مشاهده نمیشود.
سیستمهای عامل همزمان نرم :سیستمهای همزمان نرم محدودیتهای کمتری دارند .در این سیستمها یک وظیفه همزمان حیاتی
نسبت به وظایف دیگر اولویت مییابد و این اولویت را تا زمانی که به پایان نرسیده است حفظ میکند .سیستمهای همزمان نرم
کاربر کمتری نسبت به سیستمهای همزمان سخت دارند .برای نمونه پروژههای چندرسانهای ،واقعیت مجازی و پروژههای علمی
پیشرفته مانند کاوش زیردریا و روباتهای کاوشگر فضایی مواردی از کاربردهای این سیستمها هستند.
سیستم های چند پردازندهایMulti processing
کامپیوترها میتوانند به جای یک CPUچندین CPUداشته باشند که در اینصورت به آنها سیستم multiprocessingمیگویند.
جهت استفاده از این سیستمها نیاز به یک سیستم عامل خاص میباشد که بتواند چندین برنامه یا نخهای یک فرآیند را به صورت
موازی واقعی روی آنها اجراء کند.
سیستم عامل multitaskingبرای اجراء چند نخ بر روی یک CPUو سیستم عامل multiprocessingبرای اجرای چند نخ بر روی
چند CPUبه کار میروند.
در سیستم چند پردازندهایCPU ،ها باید بتوانند از حافظه ،امکانات ورودی و خروجی و گذرگاه Busسیستم به صورت اشتراکی
استفاده کنند .مزایای این سیستمها عبارتند از:
-1زیاد شدن توان عملیاتی (throughput) .منظور از throughputتعداد کارهایی است که در یک واحد زمانی تمام میشوند.
-2تحمل پذیری در برابر خطا)(fault-tolerantسیستم های مالتی پروسسور قابلیت اعتماد را افزایش میدهند چرا که خرابی یک
CPUسبب توقف سیستم نمیشود بلکه تنها سبب کند شدن آن خواهد شد.
سیستمهای عاملهای چند پردازندهای به دو دسته کلی متقارن و نامتقارن تقسیم میشوند.
در سیستم چند پردازندهای نامتقارن )(Asymmetric Multi Processing = ASMPیک پردازنده جهت اجراء سیستم عامل و
پردازندههای دیگر جهت اجرای برنامههای کاربران استفاده میشود .از آنجا که کد سیستم عامل تنها روی یک پروسسور اجراء
میشود ,ساخت این نوع سیستم عامل نسبتا ساده است و از تعمیم سیستم عامل تک پردازندهای به دست میآید.
در سیستم چند پردازندهای متقارن )(symmetric Multi Processing = ASMPسیستم عامل میتواند روی هر یک از پروسسورهای
آزاد یا روی تمام پردازندهها همزمان اجراء شود .در این حالت حافظه بین تمام آنها مشترک میباشد .تمام پردازندهها اعمال یکسانی
را میتوانند انجام دهند.