تخصیص پردازنده های فیزیکی به فرایندها سبب اجرای فرایندها می شود. این تخصیص معمولاً مسأله پیچیده ای است که توسط سیستم عامل مدیریت می شود. در این فصل درباره چگونگی تعیین زمان تخصیص پردازنده ها و اینکه پردازنده ها به کدام فرایندها باید تخصیص یابد، بحث خواهد شد. این عمل را زمانبندی پردازنده گویند.
سطوح زمانبندی
در شکل زیر سه سطح مهم از زمانبندی مورد توجه قرار گرفته است.
شکل 10-1 ) سطوح زمانبندی
• زمانبندی سطح بالا - این زمانبندی گاهی به عنوان زمانبندی کار نامیده می شود و تعیین می کند که کدام کارها بطور فعال منابع سیستم را در اختیار می گیرد و تکمیل می شود. همچنین بعضی اوقات زمانبندی ورود نامیده می شود، زیرا تعیین می کند که کدام کارها اجازه ورود به سیستم را می یابد. وقتی کاری اجازه ورود پیدا کرد، یکی از فرایندهای شناخته شده سیستم خواهد شد.
• زمانبندی سطح میانی – این زمانبندی تعیین می کند که کدام فرایندها اجازه خواهد یافت در اختیار cpu قرار بگیرد. زمانبندی سطح میانی با روش تعلیق و فعال کردن فرایندها به نوسانات بار سیستم پاسخ می دهد تا بتواند به عملکرد متعادل و کارآیی کلی سیستم کمک کند. بنابراین زمانبندی میانی در واقع به عنوان بافر بین ورود کارها به سیستم و تخصیص cpu به این کارها عمل می کند.
• زمانبندی سطح پائین – این زمانبندی تعیین می کند که کدامیک از فرایندهای آماده در اختیار cpu قرار خواهد گرفت (اگر cpu قابل دسترس باشد) و بطور واقعی cpu را در اختیار این فرایند قرار می دهد (فرایند را به cpu می فرستد). زمانبندی سطح پایین به وسیله ارسال کننده انجام می شود که در هر ثانیه چندین بار عمل می کند. بنابراین ارسال کننده می باید در تمامی اوقات در حافظه اصلی مقیم باشد.
در این فصل ما درباره سیاستهای مختلف زمانبندی که در سیستمهای عامل به کارگیری می شود و نیز روشهای پیاده سازی این سیاستها بحث می کنیم. بسیاری از سیاستها هم برای زمانبندی کار و هم برای زمانبندی فرایند مفید است.
اهداف زمانبندی
هر زمانبندی می باید دارای شرایط زیر باشد:
• عادل باشد. زمانبندی عادل است اگر با تمامی فرایندها بطور یکسان برخورد کند و هیچ فرایندی به مدت نامعین به تأخیر نیفتد.
• حداکثر توان عملیاتی را داشته باشد. زمانبند باید سعی کند در واحد زمان بیشترین تعداد ممکن از فرایندها را سرویس دهد.
• تعداد کاربران محاوره ای را با زمان پاسخ قابل قبول افزایش دهد.
• قابل پیش بینی باشد. هر کار بدون در نظر گرفتن بار سیستم با زمان و هزینه یکسان (قابل پیش بینی) اجرا شود. در واقع چه بار پردازشی سیستم سنگین باشد چه سبک، زمان و هزینه اجرای هر برنامه قابل تخمین باشد.
• کمترین سرباری را داشته باشد. جالب است که این شرط بطور کلی جزء اهداف مهم زمانبندی نیست. سرباری عموماً منابعی تلف شده تلقی می شود؛ اما بخشی از منابع واقعی سیستم که سرباری را به دنبال دارد، باعث بهبود کارآیی کلی سیستم می شود.
• استفاده از منابع سیستم را متعادل سازد. روشهای زمانبندی باید بتواند منابع سیستم را مشغول نگه دارد.
• بین زمان پاسخ و به کارگیری منابع، تعادل ایجاد کند. بهترین راه تضمین زمان پاسخ خوب، داشتن منابع کافی است که در صورت نیاز قابل دسترسی باشد. در سیستمهای بلادرنگ، زمان پاسخ سریع بسیار اساسی و استفاده از منابع از اهمیت کمتری برخوردار است. در انواع دیگری از سیستمها، اغلب، مسائل اقتصادی استفاده مؤثر از منابع را ضروری می سازد.
• از تأخیر به مدت نامعین بپرهیزد. در بسیاری از موارد، تأخیر به مدت نامعین به اندازه بن بست مشکل ساز است. خودداری از تأخیر به مدت نامعین با افزایش اولویت فرایندهای منتظر (فرایندهایی که منتظر در اختیار گرفتن منابع هستند) امکانپذیر است. سرانجام، اولویت فرایند منتظر آنقدر افزایش می یابد تا موفق به در اختیار گرفتن منبع می شود.
• اولویتها را اعمال کند. در محیطهایی که فرایندها بر مبنای اولویت مدیریت می شود، زمانبندی می باید به فرایندهای با اولویت بالا مساعدت بیشتری کند.
• به فرآیندهایی که منابع کلیدی در اختیار دارد، ارجحیت دهد. اگر فرایندی با اولویت پایین منبع کلیدی را در اختیار داشته باشد، ممکن است این منبع توسط فرایندی با اولویت بالا درخواست شود. اگر منبع انحصاری باشد، آنگاه زمانبندی باید رفتار بهتری (سرویس بهتری) با فرایند انجام دهد تا سریعاً منبع کلیدی را آزاد کند (این سرویس بهتر از حالتی است که فرایند مورد نظر، منبع کلیدی را در اختیار داشته باشد).
• سرویس بهتری به فرایندهایی ارائه کند که رفتار بهتری از خود نشان می دهد. برای مثال آن دسته از فرایندهایی که میزان فراخوانی و جایگزینی صفحه کمتری دارد، سرویس بهتری دریافت کند.
• وقتی بار سیستم سنگین است، سطح سرویس دهی را برای همه برنامه ها بطور مناسب کاهش دهد. برای مثال در حالتی که بار پردازشی سیستم زیاد است از پذیرش کار جدید خودداری کند.
بسیاری از این اهداف با یکدیگر در تضاد هستند و به همین دلیل طراحی زمانبندی عملی مسأله پیچیده ای است.
معیارهای زمانبندی
برای تحقق اهداف زمانبندی می باید معیارهای زیر را در نظر گرفت:
• ورودی / خروجی گرا بودن فرایند – وقتی فرایندی cpu را در اختیار می گیرد، آیا قبل از اعلام درخواست برای هر عمل cpu , I/O را به مدت محدود استفاده می کند؟