جدولة المعالج

المجدولات Schedulers:أحياناً يتم تقديم submitted عدد كبير من الإجرائيات التي لا تتسع لها  الذاكرة الرئيسية, يتم نقل هذه الإجرائيات إلى الذاكرة الثانوية (القرص) لتخزن ضمن لائحة المهام job pool, يقوم مجدول المهام job scheduler أو يدعى  long-term scheduler المجدول طويل الأمد, باختيار الإجرائيات من هذه اللائحة لنقلها إلى الذاكرة الرئيسية ليتم تنفيذها, بينما يقوم المجدول قصير الأمد short-term scheduler أو يدعى مجدول وحدة المعالجة المركزية CPU scheduler, باختيار إحدى الإجرائيات الجاهزة للتنفيذ وحجز وحدة المعالجة المركزية لها. الفرق الرئيسي بين هذين المجدولين يكمن في تواتر عملها (عدد مرات التكرار خلال ثانية واحدة), المجدول قصير الأمد short-term يجب أن يختار إجرائية جديدة لوحدة المعالجة المركزية بتردد عالي, لأن زمن بقاء الإجرائية قيد التنفيذ قد لا يتجاوز عدة ميلي ثانية قبل أن تقوم بطلب جهاز دخل/خرج, غالباً فإن المجدول قصير الأمد يقوم بانتقاء إجرائية كل 100 ميلي ثانية, وبسبب الوقت القصير بين عمليات الانتقاء, فإن المجدول قصير الأمد يجب أن يكون سريعاُ في عمله, فمثلاً إذا تطلبت عملية انتقاء الإجرائية 10 ميلي ثانية بالنسبة للمجدول قصير الأمد, وكان زمن تنفيذ الإجرائية هو 100 ميلي ثانية, عندها فإن 9% من زمن وحدة المعالجة المركزية يضيع على جدولة الإجرائيات. أما بالنسبة للمجدول طويل الأمد long-term, يتم التنفيذ بتردد أبطأ, ربما قد يصل إلى دقائق. يتحكم المجدول طويل الأمد بدرجة degree تعدد البرمجة multi-programming (وهو عدد الإجرائيات الموجودة في الذاكرة), إذا كانت درجة تعدد البرمجة مستقرة فهذا يعني أن المعدل الوسطي لإنشاء إجرائيات جديدة يساوي المعدل الوسطي للإجرائيات التي تغادر الذاكرة (تنتهي terminated), وبالتالي فإن المجدول طويل الأمد يمكننا أن لا نستدعيه إلا عندما تغادر إحدى الإجرائيات. وبسبب الفواصل الزمنية الطويلة بين عمليات استدعائه, يمكن للمجدول طويل الأمد أن يأخذ وقته الكافي ليقرر أي إجرائية سيقوم بانتقائها.يمكن تصنيف معظم الإجرائيات بشكل عام إلى: I/O-bound process إجرائيات نمط دخل/خرج, وهي إجرائيات تقضي معظم وقتها في تنفيذ عمليات دخل/خرج, أكثر مما تقضيه في تنفيذ العمليات الحسابية. التنصيف الثاني هو CPU-bound process إجرائيات نمط معالجة, وكما هو متوقع, فإن هذه الإجرائيات تقضي معظم وقتها في تنفيذ العمليات الحسابية أكثر مما تقضيه في تنفيذ عمليات دخل/خرج.  من المهم أن يقوم المجدول طويل الأمد باختيار مزيج mix متناسق من الإجرائيات, يضم إجرائيات نمط دخل/خرج و إجرائيات نمط معالجة. لأنه إذا كانت كل الإجرائيات نمط دخل/خرج I\O-bound سنجد أن رتل الجاهزية ready queue سيكون معظم الوقت فارغ, وعملياً المجدول قصير الأمد لن يجد شيئاً ليفعله, إذا كانت كل الإجرائيات من نمط معالجة CPU-bound, عندها فإن أرتال اجهزة الدخل خرج ستكون تقريباً فارغة, وعملياً أجهزة الدخل/خرج غير مستخدمة, وفي كلا الحالتين يعتبر النظام غير متوازن, حتى نحصل على أفضل أداء للنظام يجب على المجدول طويل الأمد أن يقوم باختيار مزيج combination من الإجرائيات نمط المعالجة والإجرائيات نمط دخل/خرج.