فصل ۵: زمانبندی پردازنده (CPU Scheduling)
nBasic Concepts
nScheduling Criteria
nScheduling Algorithms
nThread Scheduling
nMultiple-Processor Scheduling
nOperating Systems Examples
nAlgorithm Evaluation
اهداف
آشنایی با زمانبندی پردازنده ها به عنوان پایه اصلی سیستم عامل های چندبرنامگی (multiprogrammed)
توصیف الگوریتم های مختلف زمانبندی CPU
بحث در مورد انتخاب یک الگوریتم زمانبندی CPU مناسب برای یک سیستم خاص
مفاهیم پایه ای
حداکثر بهره وری (utilization) از CPU به کمک چندبرنامگی
nCPU–I/O Burst Cycle – اجرای یک پردازه شامل یک دور از اجراهای CPU و انتظار برای I/O است
در حقیقت ما می خواهیم CPU burst را توزیع و مدیریت کنیم
زمانبند (Scheduler) CPU
از میان پردازه های موجود در سیستم یکی را انتخاب می کند و CPU را در اختیار آن قرار دهد
تصمیمات زمانبند CPU در یکی از حالات زیر اعمال می گردد. وقتی که یک پردازه :
.۱از حالت اجرا به حالت انتظار سوئیچ کند (درخواست I/O، دستور wait و …)
.۲از حالت اجرا به حالت آماده سوئیچ کند (وقوع وقفه)
.۳از حالت انتظار به حالت آماده سوئیچ کند (اتمام I/O)
.۴به اتمام برسد
به حالتی که زمانبندی در شرایط ۱ و ۴ اعمال گردد حالت بدون غیر قابل پس گرفتنی (nonpreemptive) می گویند
به حالت دیگر پس گرفتنی (preemptive) می گویند
اعزام کننده (Dispatcher)
پیمانه اعزام کننده (Dispatcher module) کنترل CPU را به پردازه ای می دهد که توسط زمانبند کوتاه مدت (short-term scheduler) انتخاب شده است. شامل:
سوئیچ زمینه (switching context)
سوئیچ به مد کاربر (switching to user mode)
مقدار دهی Program Counter به مکان مناسب برای ازسرگیری اجرای برنامه
تاخیر اعزام (Dispatch latency) – مدت زمانی که یک پردازه متوقف و پردازه بعدی توسط اعزام کننده شروع به اجرا می کند
بهره وری پردازنده (CPU utilization) – پردازه را تا حد امکان مشغول نگه داریم
بازده (Throughput) – تعداد پردازه هایی که در یک واحد زمانی اجرای آنها به اتمام می رسد
زمان گردش (Turnaround time) – مدت زمان مورد نیاز برای اجرای کامل یک پردازه
زمان انتظار (Waiting time) – مدت زمانی که یک پردازه در مدت اجرای کامل خود در صف آماده منتظر تخصیص CPU می ماند
زمان پاسخ (Response time) – مدت زمان که طول می کشد تا از زمان ارسال یک درخواست اولین پاسخ دریافت گردد. (برای سیستم های اشتراک زمانی منظور یک خروجی معین نیست)
Scheduling Algorithm Optimization Criteria
nMax CPU utilization
nMax throughput
nMin turnaround time
nMin waiting time
nMin response time
Shortest-Job-First (SJF) Scheduling
nبرای هر پردازه یک عدد به عنوان زمان اجرای (CPU Burst) بعدی مورد نیاز در نظر گرفته می شود. از این عدد برای زمانبندی پردازه ها استفاده می شود.
nابتدا پردازه های با CPU Burst کمتر اجرا خواهند شد.
nSJF بهینه است – یعنی برای یک مجموعه از پردازه ها کمترین متوسط زمان انتظار را خواهیم داشت
lاما یک مشکل بزرگ داریم: زمان مورد نیاز برای CPU در درخواست بعدی را نمی دانیم
مبلغ واقعی 17,000 تومان 20% تخفیف مبلغ قابل پرداخت 13,600 تومان
برچسب های مهم