آموزش سیستم عامل – مرور مفاهیم و حل تست کنکور ارشد
فرایند: به برنامه در حال اجرا می گویند. فرایندها: ۱ ) محدود به CPU (CPU Limited) بیشتر زمان کامپیوتر صرف محاسبات CPU می شود ۲ ) محدود به ورودی / خروجی (I/O Limited ) بیشتر زمان کامپیوتر صرف ورود و خروج اطلاعات می شود.
فرایند
فرایند: به برنامه در حال اجرا می گویند.
فرایندها:
۱ ) محدود به CPU (CPU Limited)
بیشتر زمان کامپیوتر صرف محاسبات CPU می شود
۲ ) محدود به ورودی / خروجی (I/O Limited )
بیشتر زمان کامپیوتر صرف ورود و خروج اطلاعات می شود
بلوک کنترل فرآیند (PCB) Process Control Block
ساختاری برای مشخص کردن فرایند در سیستم
شامل تمام اطلاعات مورد نیاز سیستم عامل در مورد یک فرایند
- حالت فرایند : یک فرایند می تواند دریکی از حالات جدید ، آماده ، اجرا ، انتظار ، و غیره باشد
- شمارنده برنامه (pc) : شامل آدرس دستور بعدی که باید اجرا شود
- اطلاعات زمانبندیCPU : شامل اولویت فرایند و اشاره گر به صف زمانبندی
- اطلاعات مدیریت حافظه : شامل مقدار ثباتهای پایه و حد /جدولهای صفحه یا قطعه
- اطلاعات حسابرسی : میزان استفاده از پردازنده ،محدودیت های زمانی ،شماره فرایند
- اطلاعات وضعیت I/O : شامل لیست دستگاه های I/O تخصیص داده شده به فرایند
- ثباتهای CPU
حالات فرایند
- آماده(READY): فرایندی که وقتی به آن فرصت داده شد ،برای اجرا آماده باشد
- اجرا (Running): فرآیندی که هم اکنون در حال اجرا می باشد
- مسدود (Blocked) یا انتظار : فرایندی که تا بروز حادثه ای نمی تواند اجرا شود
- جدید (New):فرایندی که هم اکنون گرفته شده است ، اما هنوز جزء فرایندهای قابل اجرای سیستم عامل پذیرفته نشده باشد
- خروج (Terminated): فرایندی که اجرای آن پایان یافته است و یا اجرای آن قطع شده و از مجموعه فرایند های قابل اجرای سیستم خارج شده است
مدل فرایند پنج حالته
وجود وضعیت مسدود باعث افزایش بهره وری پردازنده می شود. چون وقتی فرایند در حال اجرا نیاز به I/O پیدا می کند به حالت Blocking منتقل شده و فرایند آماده دیگری به قسمت اجرا منتقل می شود ، تا در حد امکان CPU بیکار نماند.
وجود وضعیت معلق ، موجب اجرای فرایند جدید حتی در صورت پر بودن حافظه اصلی می شود.
صف آماده و صف بلوکه
تغییر حالات ممکن
۱ – جدید به آماده : اگر سیستم عامل امادگی گرفتن یک فرایند دیگر را داشته باشد ، فرایند موجود در حالت جدید را به حالت آماده می برد.
۲ – آماده به اجرا : سیستم عامل یکی از فرایند های موجود در حالت آماده که وقت اجرای آن فرا رسیده است را انتخاب کرده و
از حالت آماده به اجرا می برد . به این عمل توزیع (Dispatch) می گویند
۳ – اجرا به خروج : وقتی که فرآیند جاری اعلام پایان کند ،سیستم عامل آن را از حالت اجرا به خروج می برد
۴ – مسدود به آماده : وقتی حادثه ای که فرایند منتظر آن بوده است رخ دهد ،از حالت مسدود به آماده می رود (Wake up)
۵ – اجرا به مسدود :وقتی فرایندی چیزی را بخواهد که به خاطر آن باید منتظر بماند ،سیستم عامل آن فرایند را از حالت اجرا به
مسدود می برد .به این عمل بلوکه شدن می گویند.
۶ – اجرا به آماده : به دلیل اتمام زمان مجاز برای اجرای فرایند جاری در سیستم عامل چند برنامه ای
۷ – آماده به خروج : با پایان یافتن فرایند پدر ، ممکن است همه فرایند های فرزند آن نیز پایان یابند
۸ – مسدود به خروج
مهندسی IT – دولتی ۸۶
شکل زیر ۵ حالت اصلی فرآیند را نمایش میدهد .در این شکل رویدادها با شماره های ۱ تا ۶ نشان داده شده اند .کدام گزینه رویداد های صحیح را بیان میکند؟
۱ ) رویداد ۶، درخواست آماده بودن است که فرآیند مسدود شده به سیستم عامل میدهد
رویداد ۱، درخواست ایجاد فرایند است که هر فرآیندی میتواند از سیستم عامل درخواست نماید
رویداد ۴،درخواست کاربر برنامه در حال اجرا از سیستم عامل است
۲ ) رویداد ۴،درخواست کاربر برنامه در حال اجرا از سیستم عامل است
رویداد ۵،وقفه درخواست ورودی است
رویداد ۲،عبارت است از (رویداد ۵) OR (رویداد ۴) OR (رویداد ۳)
۳ ) رویداد ۵،وقفه درخواست ورودی است
رویداد ۳،وقفه پایان سهم زمانی است
رویداد ۶،درخواست آماده بودن است که فرآیند مسدود شده به سیستم عامل میدهد
۴ ) رویداد ۱،درخواست ایجاد فرآیند جدید است که هر فرایندی میتواند از سیستم عامل درخواست نماید
رویداد ۲،عبارت است از (رویداد۵) OR (رویداد۴) OR (رویداد۳)
رویداد۳،وقفه پایان سهم زمانی است
پاسخ :جواب گزینه سه است.
طبق شکل داریم : رویداد ۱،درخواست ایجاد فرایند جدید است که هر فرایندی میتواند از سیستم عامل درخواست نماید
رویداد ۲،عبارت است از (رویداد ۵ )OR (رویداد ۴ )OR (رویداد۳) یعنی رویداد ۲ وقتی رخ میدهد که یکی از رویدادهای ۳یا ۴ یا ۵ رخ داده باشد
دلایل پایان یک فرایند
پایان طبیعی |
فراخوانی یک سرویس سیستم عامل برای بیان تکمیل اجرایش |
سقف زمانی |
در فرایند محاوره ای ، مقدار زمانی که از آخرین ورودی کاربر گذشته است |
گذشت زمان |
انتظار زیادتر از حد برای بروز یک حادثه مشخص |
نبود حافظه |
نیاز به حافظه ای بیش از آنچه که سیستم می تواند فراهم کند |
تجاوز از حدود |
مراجعه به محلهای غیر مجاز در حافظه |
خطای حفاظت |
تلاش برای دسترسی به منبعی که مجاز به استفاده از آن نیست |
خطای محاسباتی |
مانند تقسیم بر صفر یا تلاش برای ذخیره عددی بزرگتر از ظرفیت سخت افزاری |
خطای ورود / خروجی |
مانند پیدا نکردن فایل |
دستور العمل نامعتبر |
تلاش برای اجرای دستورالعملی که وجود ندارد |
دستورالعمل ممتاز |
تلاش برای اجرای دستورالعملی که مخصوص سیستم عامل است |
استفاده نامناسب از داده |
داده با نوع نامناسب یا بدون مقدار اولیه |
دخالت سیستم عامل |
به دلیلی مانند بن بست |
پایان یافتن پدر |
با پایان یافتن یک فرایند ،فرایندهای فرزند آن نیز پایان داده شوند |
درخواست پدر |
فرایند حق پایان دادن به هر یک از فرایند های فرزند خود را دارد |
فرایند معلق
فرایندی است که فورا آماده اجرا نیست. توسط عاملی در حالت معلق قرار گرفته است (مانند سیستم عامل ،خودش یا فرآیند پدر). تا وقتی عامل تعلیق فرمان ندهد، نمی توان فرایند را از حالت معلق خارج کرد.
دلایل معلق کردن یک فرآیند
۱ – مبادله
۲ – ترتیب زمانی
۳ – درخواست کاربر محاوره ای
۴ – درخواست فرایند پدر
مدل فرایند هفت حالته
مدل فرآیند را هنگامی که با حالات معلق رسم می کنیم هفت حالته می شود.
۱ – مسدود و معلق (Suspend-Wait)
فرآیند مورد نظر در حافظه ثانوی و منتظر حادثه ای است.
۲ – آماده و معلق (Suspend – Ready)
فرآیند مورد نظر در حافظه ثانوی و به محض لود شدن در حافظه اصلی آماده اجراست.
حالات ممکن در این نمودار
۱ – مسدود به مسدود و معلق
۲ – مسدود و معلق به آماده و معلق
وقتی حادثه ای که یک فرایند مسدود و معلق منتظر آن بوده است رخ دهد به حالت آماده و معلق می رود
۳ – آماده و معلق به آماده
وقتی که هیچ فرایند آماده ای در حافظه اصلی نباشد سیستم عامل یک فرایند آماده و معلق را به حالت آماده می آورد . همچنین ممکن است فرایند موجود در حالت آماده و معلق دارای اولویت بیشتری نسبت به همه فرایندهای آماده باشد که در این حالت فرایند به حالت آماده ، آورده می شود
۴ – آماده به اماده و معلق
به طور معمول سیستم عامل ترجیح می دهد یک فرآیند مسدود را به جای فرآیند آماده به حال تعلیق در آورد ولی در صورتی که راهی برای خالی کردن حافظه اصلی نباشد یک فرآیند آماده را به تعلیق در می آورد یا ممکن است سیستم عامل یک فرایند آماده ولی با اولویت کم را به جای فرایند مسدودی که اولویتش بیشتر است و گمان میکند بزودی اماده میشود به حالت معلق می برد
۵ – مسدود و معلق به مسدود
اگر اولویت فرایندی که در صف مسدود و معلق است از اولویت همه فرایندهای موجود در صف آماده و معلق بیشتر باشد و سیستم عامل گمان کند حادثه ای که فرایند مسدود و منتظر آن بوده است به زودی رخ دهد آن را به حالت مسدود می آورد البته باید مقداری از حافظه اصلی خالی باشد تا آوردن یک فرایند مسدود به حافظه نسبت به یک فرایند اماده معقول به نظر برد
۶ – اجرا به آماده و معلق
معمولا با پایان زمان منظور شده برای فرآیند جاری ،فرآیند به حالت آماده منتقل می شود . در این حالت اگر این فرآیند به خاطر فرایند با اولویت بیشتری قبضه شود سیستم عامل میتواند فرایند جاری را مستقیما به صف آماده و معلق منتقل کند تا بخشی از حافظه اصلی آزاد شود
۷ – مختلف به خروج
ممکن است یک فرایند از هر حالتی به حالت خروج منتقل شود
مهندسی کامپیوتر – دولتی ۸۶
در مدل انتقال حالت ( transition state)یک سیستم عامل که اجازه داده میشود یک فرایند از حافظه اصلی بیرون کشیده شود و در زمان مناسب دوباره به حافظه اصلی بازگردانده شود (مانند unix )کدام یک از انتقالها نمیتواند مجاز باشد؟
(SLEEP SWAPPED : جا به جا شده، به خواب رفته ) ( READY TO RUN IN MEMORY )
- از sleep swapped به ready to run in memory
- از ready to run in memory به ready to run swapped
- از ready to run swapped به ready to run in memory
- از sleep in memory به sleep swapped
پاسخ : گزینه ۱ جواب است .
باتوجه به نمودار حالات فرایند ،گزینه یک یعنی انتقال از مسدودو معلق به اماده مجاز نمی باشد
طبق این تعاریف گزینه ها را میتوان به صورت زیر نوشت :
۱ ) از مسدود و معلق به آماده
۲ ) از آماده به آماده و معلق
۳ ) از آماده و معلق به اماده
۴ ) از مسدود به مسدود و معلق
مهندسی it – دولتی ۸۹
شکل زیر تغییر حالتهای یک فرایند را نشان میدهد تغییر حالت از رونده به خروج امکان دارد باعث کدام تغییر حالتها شود؟
- ۱۰،۷،۴
- ۲،۴،۱
- ۸،۵،۲
- ۹،۶
پاسخ :جواب گزینه ۴ است.
وقتی اجرای فرایندی تمام میشود و خارج میشود به علت آزاد کردن حافظه ای که در اختیار داشته برنامه های معلق شده (در حالت آماده و معلق یا مسدود و معلق ) که به علت کمبود جا در دیسک بوده اند می توانند به خافظه بیایند یعنی تغییر حالتهای ۹،۶
انواع زمانبند ها
کلید چند برنامگی زمانبندی است .زمانبندی بر روی کارایی سیستم اثر می گذارد زیرا مشخص می کند کدام فرآیندها منتظر مانده و کدام فرایند ها به جلو بروند انواع زمانبندی برای پردازنده:
۱ – زمانبندی بلند مدت (Long Term Scheduler)
تصمیم گیری در مورد افزودن به مجموعه فرایند ها برای اجرا
۲ – زمانبندی میان مدت (Middle Term Scheduler)
تصمیم گیری در مورد افزودن به تعداد فرآیند هایی که بخشی یا تمام آنها در حافظه اصلی است
۳ – زمانبندی کوتاه مدت (Short Term Scheduler)
تصمیم گیری در مورد اینکه کدام یک از فرایندهای موجود در حافظه اصلی برای اجرا توسط پردازنده انتخاب می شود
۴ – زمانبندی ورودی / خروجی
تصمیم می گیرد که کدام درخواست I/O فرآیندها به وسیله یک دستگاه I/O موجود انجام بگیرد
نمودار تغییر حالت فرایند همراه با زمانبندی
نکته ها :
وظیفه فعال سازی و تعلیق فرآیند ها برعهده زمانبند میان مدت (Medium – term scheduler) می باشد
زمانبند میان مدت فرایندی را از حافظه اصلی حذف و به حافظه جانبی می برد این فرایند بعدا میتواند به حافظه اصلی لود شود
این الگو را مبادله (Swapping) می گویند
ایده اصلی زمانبندی میان مدت این است که میتواند فرایندی را از حافظه حذف کند و درجه چندبرنامگی را کاهش می دهد
زمانبند بلند مدت ترکیب خوبی از فرآیند های CPU Limited , I/O limited انتخاب میکند
نام دیگر زمانبند بلند مدت زمانبند کار است
نام دیگر زمانبند کوتاه مدت ،زمانبند پردازنده است
مهندسی it – دولتی ۹۲
کدام یک از انواع برنامه ریزها ،وظیفه فعال سازی وتعلیق فرآیندها را بر عهده دارد؟
- Prioritized scheduler
- Long-term scheduler
- Medium-term scheduler
- Short-term scheduler
پاسخ :جواب گزینه ۳است.
وظیفه تعلیق فرایندها و دوباره فعال سازی فرایندها برعهده زمانبند میان مدت می باشد .تصمیم گیری درمورد افزودن به تعداد فرایندهایی که بخشی یا تمام انها در حافظه اصلی است برعهده این زمانبند است .زمان بند میان مدت فرآیندی را از حافظه اصلی حذف و به حافظه جانبی می برد .این فرآیند بعدا می تواند به حافظه اصلی لود شود این الگو را مبادله می گویند.
توزیع کننده (Dispatcher)
توزیع کننده ،پیمانه ای است که کنترل را به پردازنده ای میدهد که توسط زمانبند کوتاه مدت انتخاب شده است.
این عمل شامل موارد زیر است:
- تعویض بستر (Context Switch)
- تغییر به حالت کاربر
- پرش به محل مناسبی در برنامه کاربر و آغاز مجدد ان برنامه.
مهندسی it – دولتی ۸۷
پروسس فرزند ، کدام یک از موارد زیر را از پروسس پدر به ارث نمی برد؟
- تایمر
- دایرکتوری جاری
- نام کاربر اجرا کننده
- توصیفگر فایل های باز
پاسخ – جواب گزینه ۱ است.
تایمر هر فرایند به طور جداگانه در نظر گرفته می شود و فرایند فرزند تایمر را از فرزند پدر به ارث نمی برد.
ولی مواردی مانند دایرکتوری جاری ، نام کاربر اجرا کننده ، و توصیفگر های فایل های باز را فرزند از پدر به ارث می برد.
نخ (Thread)
به توزیع وقت پردازنده ،نخ می گویند.
به تملک منبع ،فرایند می گویند.
نخ در برنامه نویسی ،بخشی از یک فرایند یا برنامه بزرگتر می باشد
با تقسیم یک کار به چند نخ ،برنامه ساز میتواند کنترل زیادی روی مولفه ای بودن آن کاربرد و تنظیم وقت حوادث
مربوط به آن داشته باشد.
مثال ۱ : در برنامه اکسل از یک نخ برای خواندن ورودی کاربر و از نخ دیگری برای بهنگام سازی استفاده می شود.
مثال ۲ : در صفحات وب ،شامل چند تصویر کوچک ، هر نخ میتواند به طور همزمان با نخ های دیگر تصویر مربوط
به خود را درخواست کند.
مثال ۳ : در word ، جهت حفاظت در مقابل قطع برق ،یک نخ می تواند تنها برای گرفتن پشتیبان دوره ای ایجاد شود
وخودش را مستقیما با سیستم عامل زمانبندی کند.
نخ ها وفرایند ها میتوانند ۴ حالت را بوجود آوردند:
۱ – یک فرایند – یک نخ
۲ – یک فرایند – چند نخ
۳ – چند فرایند – یک نخ در هر فرایند
۴ – چند فرایند – چند نخ در هر فرایند
مدل تک نخی و چند نخی
حالات اصلی نخ
اجرا ،آماده و مسدود .(نخ حالت معلق ندارد)
تمام نخ های یک فرایند ،در حالت و منابع آن فرایند شریک هستند.
اگر نخ یک فرآیند در حال اجرا باشد و آن فرایند به حالت خروج برود ، نخ نمی تواند به اجرا ادامه دهد.
تغییر متن میان دو نخ متعلق به دو فرآیند جداگانه ، مثل این است که تعویض متن فرایند رخ داده است.
تغییر متن در نخ های یک فرآیند:
الف – اشاره گر پشته (SP) را تغییر می دهد.
ب – ثبات های مدیریت حافظه را تغییر نمی دهد.
ج – جداول مدیریت حافظه را تغییر نمی دهد.
نخ های سطح کاربر
سیستم عامل از وجود نخ ها آگاه نمی باشد.
تمام عملیات راهبری در فضای آدرس کاربر انجام می شود.
سریع بودن: ایجاد ،حذف ،همگام سازی و تعویض متن نخ ها
هزینه ایجاد نخ با هزینه تخصیص حافظه برای برپاسازی پشته نخ تعیین می شود.
تعویض متن نخ اغلب با تعدادکمی از دستورالعمل ها انجام می شود.
در تعویض متن نخ ها ،نیازی به حسابداری پردازنده ، تغییر نگاشت های حافظه نمی باشد.
نقاط ضعف نخ های سطح کاربر:
۱ – اگر یک نقص صفحه (Page fault) برای یک نخ رخ دهد ،همه نخ های درون فرایند به اشتباه مسدود می شود.
۲ – اگر نخی یک فراخوان سیستمی بلوکه کننده را صدا بزند ، همه نخ های درون فرایند به اشتباه مسدود می شوند.
۳ – چون سیستم عامل از وجود نخ ها آگاه نمی باشد ،نخ ها را بین چندین پردازنده به خوبی پخش و زمان بندی نمی کند.
نخ های سطح هسته
اگر نخ ها در هسته سیستم عامل پیاده سازی شوند ،مشکلات روش قبل رخ نمی دهند . هر عملیات نخ باید توسط هسته انجام شود و به یک فراخوانی سیستمی نیاز دارد و هزینه بالا می رود.
تعویض متن نخ ممکن است به اندازه تعویض متن فرایند پر هزینه باشد.
فرایند های سبک وزن (LWP)
LWP ، نگاشتی بین نخ سطح کاربر و نخ سطح هسته می باشد.
هر LWP از یک (یا بیشتر) نخ سطح کاربر حمایت می کند و به یک نخ سطح هسته می نگارد.
مهندسی it – دولتی ۹۱
در رابطه با مدیریت نخ کدام یک از جملات زیر صحیح است؟
- یک نخ عادی در طول حیات خود ممکن است در LWP های مختلف بخش هایی از اجرای خود را بگذراند.
- به ازای هر نخ سیستم عامل یک LWP ایجاد میکند و نخ تا پایان حیات خود به آن LWP منتسب است .زمان بندی نخ می تواند توسط سیستم عامل با کاربر انجام پذیرد.
- نخ مستقیما زیر نظر سیستم عامل اجرا می شود و مدیریت آن نمی تواند در سطح کاربر باشد.
- تغییر متن مابین نخ ها شامل موارد زیر است:
الف – ذخیره ثباتهای پردازنده مربوط به نخ بیرون رانده و بار کردن ثبات های پردازنده مربوط به نخ داخل شونده.
ب – ذخیره لیست فایلهای باز شده توسط نخ
جواب گزینه یک است
مهندسی کامپیوتر – دولتی ۹۰
در این سوال تفاوت های مابین تغییر متن (context switch) در فرایند ها و تغییر متن در نخ های یک فرایند بررسی می شوند کدام گزینه صحیح است؟
- تغییر متن در فرایند ها ،موجب تغییر ثبات های اجرایی برنامه می شود با TLB کاری ندارد
تغییر متن در نخ ها ،موجب تغییر اشاره گر پسته (sp) و پاک شدن TLB می شود
- تغییر متن در فرایندها ،موجب تغییر اشاره گر پسته (sp) و پاک شدن TLB می شود
تغییر متن در نخ ها موجب تخصیص سهم زمانی تازه می شود و برنامه شمار (pc) تغییر می کند
- تغییر متن در فرایندها موجب تغییر ثبات های اجرایی برنامه می شود و سیاست های محافظتی را تغییر می دهد
تغییر متن در نخ ها ،موجب تغییر اشاره گر پسته (sp) و پاک شدن TLB می شود
- تغییر متن در فرایندها موجب تغییر ثباتها ی اجرایی برنامه و تغییر برنامه شمار (pc) می شود
تغییر متن درنخ ها ،ثبات ها و جداول مدیریت حافظه را تغییر نمی دهد و اشاره گر پشته (sp) تغییر می دهد
پاسخ :جواب گزینه ۴ است.
مهندسی کامپیوتر – دولتی ۸۸
کدام عبارت نادرست است؟
- عمل سوئیچینگ مابین دو نخ متعلق به دو فرایند جداگانه از نوع تعویض متن فرایندی است
- در سیستم عامل اگر نخ مربوط به یک فرایند در حال اجرا باشد و آن فرآیند با حالت خروج برود امکان آن که آن نخ به اجرا ادامه دهد وجود ندارد
- یک فرآیند قادر است که روی رویداد منتظر بماند ولی پیاده سازی آن امکان پذیر نیست
- با افزایش سطح چند برنامگی مبتنی بر اشتراک زمانی کارائی CPU بصورت غیر خطی افزایش و سپس به صورت غیر خطی کاهش می یابد
گزینه ۳ نادرست است .چون فرایند می تواند بدون مسدود شدن منتظر رویدادی شود و در ادامه اجرایش منتظر رویدادهای دیگر نیز می شود.
مهندسی کامپیوتر – دولتی ۸۹
در یک سیستم کامپیوتری نحوه استفاده از نخ در لایه کاربر و در لایه کرنل به صورت مقابل نشان داده شده است کدام عبارت درست است؟
- فراخوانی های سیستمی از نوع مسدود با تامین هم روندی حمایت می شوند و برای فراخوانی های سیستمی از نوع غیر مسدود درجه هم روندی بالاتر است
- فراخوانی های سیستمی از نوع مسدود با تامین هم روندی حمایت می شوند و برای فراخوانی های سیستمی از نوع غیر مسدود درجه هم روندی پایین تر است
- فراخوانی های سیستمی از نوع مسدودبدون تامین هم روندی اجرا می شوند و برای فراخوانی های سیستمی از نوع غیر مسدود درجه هم روندی را تامین می کنند
- فراخوانی های سیستمی از نوع مسدودبدون تامین هم روندی اجرا می شوند و برای فراخوانی های سیستمی از نوع غیر مسدود نیز با مشکل هم روندی مواجه هستند
جواب گزینه ۱ است
مجموعه: اخبار و تازه ها