بخشی از پاورپوینت
--- پاورپوینت شامل تصاویر میباشد ----
اسلاید 1 :
فصل 5: زمانبندی پردازنده (CPU Scheduling)
nBasic Concepts
nScheduling Criteria
nScheduling Algorithms
nThread Scheduling
nMultiple-Processor Scheduling
nOperating Systems Examples
nAlgorithm Evaluation
اسلاید 2 :
اهداف
آشنایی با زمانبندی پردازنده ها به عنوان پایه اصلی سیستم عامل های چندبرنامگی (multiprogrammed)
توصیف الگوریتم های مختلف زمانبندی CPU
بحث در مورد انتخاب یک الگوریتم زمانبندی CPU مناسب برای یک سیستم خاص
اسلاید 3 :
مفاهیم پایه ای
حداکثر بهره وری (utilization) از CPU به کمک چندبرنامگی
nCPU–I/O Burst Cycle – اجرای یک پردازه شامل یک دور از اجراهای CPU و انتظار برای I/O است
در حقیقت ما می خواهیم CPU burst را توزیع و مدیریت کنیم
اسلاید 4 :
زمانبند (Scheduler) CPU
از میان پردازه های موجود در سیستم یکی را انتخاب می کند و CPU را در اختیار آن قرار دهد
تصمیمات زمانبند CPU در یکی از حالات زیر اعمال می گردد. وقتی که یک پردازه :
.1از حالت اجرا به حالت انتظار سوئیچ کند (درخواست I/O، دستور wait و ...)
.2از حالت اجرا به حالت آماده سوئیچ کند (وقوع وقفه)
.3از حالت انتظار به حالت آماده سوئیچ کند (اتمام I/O)
.4به اتمام برسد
به حالتی که زمانبندی در شرایط 1 و 4 اعمال گردد حالت بدون غیر قابل پس گرفتنی (nonpreemptive) می گویند
به حالت دیگر پس گرفتنی (preemptive) می گویند
اسلاید 5 :
اعزام کننده (Dispatcher)
پیمانه اعزام کننده (Dispatcher module) کنترل CPU را به پردازه ای می دهد که توسط زمانبند کوتاه مدت (short-term scheduler) انتخاب شده است. شامل:
سوئیچ زمینه (switching context)
سوئیچ به مد کاربر (switching to user mode)
مقدار دهی Program Counter به مکان مناسب برای ازسرگیری اجرای برنامه
تاخیر اعزام (Dispatch latency) – مدت زمانی که یک پردازه متوقف و پردازه بعدی توسط اعزام کننده شروع به اجرا می کند
اسلاید 6 :
بهره وری پردازنده (CPU utilization) – پردازه را تا حد امکان مشغول نگه داریم
بازده (Throughput) – تعداد پردازه هایی که در یک واحد زمانی اجرای آنها به اتمام می رسد
زمان گردش (Turnaround time) – مدت زمان مورد نیاز برای اجرای کامل یک پردازه
زمان انتظار (Waiting time) – مدت زمانی که یک پردازه در مدت اجرای کامل خود در صف آماده منتظر تخصیص CPU می ماند
زمان پاسخ (Response time) – مدت زمان که طول می کشد تا از زمان ارسال یک درخواست اولین پاسخ دریافت گردد. (برای سیستم های اشتراک زمانی منظور یک خروجی معین نیست)
اسلاید 7 :
Scheduling Algorithm Optimization Criteria
nMax CPU utilization
nMax throughput
nMin turnaround time
nMin waiting time
nMin response time
اسلاید 8 :
Shortest-Job-First (SJF) Scheduling
nبرای هر پردازه یک عدد به عنوان زمان اجرای (CPU Burst) بعدی مورد نیاز در نظر گرفته می شود. از این عدد برای زمانبندی پردازه ها استفاده می شود.
nابتدا پردازه های با CPU Burst کمتر اجرا خواهند شد.
nSJF بهینه است – یعنی برای یک مجموعه از پردازه ها کمترین متوسط زمان انتظار را خواهیم داشت
lاما یک مشکل بزرگ داریم: زمان مورد نیاز برای CPU در درخواست بعدی را نمی دانیم
اسلاید 9 :
مشخص نمودن اندازه CPU Burst بعدی
می توانیم تنها طول اجرا را تخمین بزنیم
می توانیم با دانستن زمان CPU Burst قبلی و به کمک میانگیری نمایی (exponential averaging) تخمینی از زمان بعدی داشت
اسلاید 10 :
Examples of Exponential Averaging
na =0
ltn+1 = tn
lفقط همان تخمین اولیه مهم است و زمان آخر واقعی هیچ ارزشی ندارد
na =1
l tn+1 = a tn
lهمان زمان آخر واقعی اجرا برای مرحله بعد در نظر گرفته می شود
nاگر فرمول را بست دهیم به عبارت زیر می رسیم:
tn+1 = a tn+(1 - a)a tn -1 + …
+(1 - a )j a tn -j + …
+(1 - a )n +1 t0