انواع زمان‌بندی‌ها در سیستم عامل

از یک جنبه زمانبندی‌های پردازش در سیستم عامل به سه دسته :

الف) دراز مدت (Long term scheduler)

ب) کوتاه مدت(Short term scheduler)

ج ) میان مدت

تقسیم بندی می‌شوند.

در یک سیستم دسته ای پردازشهای بیشتری نسبت به آنچه فوراً می‌توانند اجرا شوند تحویل داده می‌شوند . این پردازش‌ها در دیسک نگهداری می‌شوند .زمانبندی دراز مدت (یازمانبندی کار sheduler Job )پروسس‌هایی را انتخاب کرده و آنها را برای اجرا از دیسک به حافظه اصلی می‌آورد.

زمانبند کوتاه مدت (یا زمانبند CPU ) از بین پروسسهای موجود در حافظه اصلی که آماده اجرا هستند یک را انتخاب کرده و CPU را به آن اختصاص می‌دهد. غالبا زمانبند کوتاه مدت هر صد میلی ثانیه یک بار اجراء می‌شود ولی زمانبند دراز مدت ممکن است هر چند دقیقه یک بار اجرا شود. در واقع زمانبند دراز مدت در جه چند برنامگی (degree of multiprogramming) یعنی تعداد پردازشهای موجود در حافظه را کنترل می‌کند .

زمانبند دراز مدت وقت زایدی برای تصمیم گیری دارد ولی زمانبند کوتاه مدت می‌بایست خیلی سریع تصمیمی گیری کند. زمانبند دراز مدت می‌بایست مخلوط مناسبی از پردازشهای CPU-limiter و I/O limited را جهت قرار گیری در حافظه انتخاب کند تا کارایی CPU و وسایل I/O بهینه شود. در بعضی سیستمها مثل اغلب سیستم های اشتراک زمانی زمانبند دراز مدت وجود ندارد، چرا که هر پردازش در سیستم عامل جدید جهت زمانبند CPU در حافظه گذاشته می‌شود تا زمان پاسخ دهی به برنامه مناسب باشد.

البته بعضی سیستم عامل‌ها از زمانبند میان مدت نیز استفاده می‌کنند. بدین ترتیب که گاهی پروسس هایی از حافظه و در واقع از رقابت جهت دریافت CPU حذف شده و به دیسک برده می‌شوند (swap Out) .بدین ترتیب درجه چند برنامگی کاهش می‌یابد . سپس در زمانی دیگر پردازش در سیستم عامل مذکور مجددا به حافظه آورده شده (swap in) و اجرایش از همان نقطه قبلی ادامه می‌یابد، این عملیات به نام مبادله (swapping)معروف است .

زمانبندی CPU به طوری کلی می تواند انحصاری (غیر قابل پس گرفتن non preemptive) یا غیر انحصاری (قابل پس گرفتن preemptive) باشد.

در سیستم انحصاری فقط هنگامی CPU ازپردازش در حال اجراء گرفته می‌شود که جهت عملیات I/O یا اتمام پردازش در سیستم عامل فرزند را رخداد دیگری بلوکه شود. بنابراین مفهوم و پیاده سازی الگوریتم زمانبندی انحصاری ساده است .ولی ممکن است پردازشی برای مدت طولانی CPU را جهت محاسبات در اختیار بگیرد.

رد این حال پردازشهای دیگر برای مدتی طولانی انتظار خواهند کشید و این موضوع مخصوصاً برای سیستم‌های اشتراک زمانی نامناسب است .لذا در اغلب سیستمها از یک زمان سنج(Timer) داخلی برای ایجاد وقفه‌های متناوب سخت افزاری جهت گرفتن CPUاستفاده می‌شود.

در هر وقفه در سیستم عامل ساعت، سیستم عامل اجرا می‌شود تا تصمیم بگیرد که آیا به پروسس در حال اجرا اجازه ادامه کار را بدهد یا اینکه چون پروسس به اندازه کافی از زمان CPU استفاده کرده آن را معلق نماید تا CPU به پروسس دیگری تخصیص داده شود. فرکانس این وقفه در سیستم عامل‌های ساعت معمولا بین 50تا60 بار در ثانیه است . این نوع زمانبندی که در آن پس از تمام شدن برش زمانی معین ، CPU از گرفته می‌شود زمانبندی غیر انحصاری نام دارد.

Advertisements