الجدولة (الحوسبة)

في مجال الحوسبة ، تُعرف عملية الجدولة بأنها تخصيص الموارد لأداء المهام . قد تكون هذه الموارد معالجات أو روابط شبكية أو بطاقات توسعة . أما المهام فقد تكون خيوط معالجة أو عمليات أو تدفقات بيانات .

تتم عملية الجدولة بواسطة آلية تسمى المجدول . غالبًا ما يتم تصميم المجدولات بحيث تُبقي جميع موارد الحاسوب مشغولة (كما هو الحال في موازنة الأحمال )، أو تسمح لعدة مستخدمين بمشاركة موارد النظام بكفاءة، أو لتحقيق مستوى مستهدف من جودة الخدمة .

تعتبر الجدولة أساسية للحوسبة نفسها، وجزءًا جوهريًا من نموذج تنفيذ نظام الكمبيوتر؛ إن مفهوم الجدولة يجعل من الممكن القيام بمهام متعددة للكمبيوتر باستخدام وحدة معالجة مركزية واحدة (CPU).

الأهداف

قد يهدف المخطط إلى تحقيق هدف واحد أو أكثر، على سبيل المثال:

  • زيادة الإنتاجية إلى أقصى حد (إجمالي كمية العمل المنجز لكل وحدة زمنية)؛
  • تقليل وقت الانتظار (الوقت من جاهزية العمل حتى النقطة الأولى التي يبدأ فيها التنفيذ)؛
  • تقليل زمن الاستجابة ( الوقت من جاهزية العمل حتى الانتهاء منه في حالة النشاط الدفعي، [ 1 ] [ 2 ] [ 3 ] أو حتى يستجيب النظام ويسلم أول مخرجات للمستخدم في حالة النشاط التفاعلي)؛ [ 4 ]
  • تحقيق أقصى قدر من العدالة (وقت وحدة المعالجة المركزية متساوٍ لكل عملية، أو بشكل عام أوقات مناسبة وفقًا لأولوية وعبء العمل لكل عملية).

عمليًا، غالبًا ما تتعارض هذه الأهداف (مثلًا، معدل نقل البيانات مقابل زمن الاستجابة)، لذا يقوم المجدول بتطبيق حل وسط مناسب. تُقاس الأفضلية بناءً على أيٍّ من الاعتبارات المذكورة أعلاه، وذلك وفقًا لاحتياجات المستخدم وأهدافه.

في بيئات العمل الآنية ، مثل الأنظمة المدمجة للتحكم الآلي في الصناعة ( كالروبوتات على سبيل المثال )، يجب على مُجدوِل المهام ضمان التزام العمليات بالمواعيد النهائية ؛ وهذا أمر بالغ الأهمية للحفاظ على استقرار النظام. كما يمكن توزيع المهام المُجدولة على أجهزة بعيدة عبر الشبكة وإدارتها من خلال نظام إدارة خلفي.

أنواع برامج جدولة أنظمة التشغيل

المُجدوِل هو وحدة في نظام التشغيل تُحدد المهام التالية التي ستُضاف إلى النظام والعملية التالية التي ستُنفذ. قد تحتوي أنظمة التشغيل على ثلاثة أنواع متميزة من المُجدوِل: مُجدوِل طويل الأجل (يُعرف أيضًا بمُجدوِل الإدخال أو المُجدوِل عالي المستوى)، ومُجدوِل متوسط ​​الأجل ، ومُجدوِل قصير الأجل . تُشير هذه المسميات إلى التكرار النسبي لأداء وظائفها.

مُجدول العمليات

يُعدّ مُجدوِل العمليات جزءًا من نظام التشغيل، وهو المسؤول عن تحديد أيّ العمليات تُنفّذ في وقتٍ مُعيّن. وعادةً ما يمتلك القدرة على إيقاف عمليةٍ قيد التشغيل مؤقتًا، ونقلها إلى نهاية قائمة الانتظار، ثمّ بدء عمليةٍ جديدة؛ ويُعرف هذا النوع من المُجدوِل باسم المُجدوِل الاستباقي . أما إذا لم يتمكّن المُجدوِل من إيقاف عمليةٍ قيد التشغيل مؤقتًا وبدء عمليةٍ جديدة، فيُعرف باسم المُجدوِل التعاوني . [ 5 ]

نميز بين الجدولة طويلة الأجل ، والجدولة متوسطة الأجل ، والجدولة قصيرة الأجل بناءً على عدد مرات اتخاذ القرارات. [ 6 ]

الجدولة طويلة الأجل

يُحدد مُجدول العمليات طويل الأجل ، أو مُجدول القبول ، المهام أو العمليات التي ستُضاف إلى قائمة الانتظار (في الذاكرة الرئيسية)؛ ​​أي أنه عند محاولة تنفيذ برنامج، يُصرّح مُجدول العمليات طويل الأجل بدخوله إلى مجموعة العمليات قيد التنفيذ حاليًا أو يُؤخّره. وبالتالي، يُحدد هذا المُجدول العمليات التي ستُشغّل على النظام، ودرجة التزامن التي سيتم دعمها في أي وقت - سواءً كان سيتم تنفيذ عدد كبير أو قليل من العمليات في وقت واحد، وكيفية التعامل مع التقسيم بين العمليات كثيفة الإدخال/الإخراج والعمليات كثيفة المعالجة المركزية. مُجدول العمليات طويل الأجل مسؤول عن التحكم في درجة تعدد البرامج. 

بشكل عام، يمكن وصف معظم العمليات بأنها إما عمليات مُقيدة بالإدخال/الإخراج أو عمليات مُقيدة بوحدة المعالجة المركزية . العملية المُقيدة بالإدخال/الإخراج هي التي تقضي معظم وقتها في عمليات الإدخال/الإخراج مقارنةً بالعمليات الحسابية. أما العملية المُقيدة بوحدة المعالجة المركزية، على النقيض، فتُولد طلبات إدخال/إخراج على فترات متباعدة، وتقضي معظم وقتها في العمليات الحسابية. من المهم أن يختار مُجدول العمليات طويل الأجل مزيجًا مناسبًا من العمليات المُقيدة بالإدخال/الإخراج والعمليات المُقيدة بوحدة المعالجة المركزية. إذا كانت جميع العمليات مُقيدة بالإدخال/الإخراج، فسيكون طابور الجاهزية فارغًا في أغلب الأحيان، ولن يكون لدى مُجدول العمليات قصير الأجل الكثير ليفعله. من ناحية أخرى، إذا كانت جميع العمليات مُقيدة بوحدة المعالجة المركزية، فسيكون طابور انتظار الإدخال/الإخراج فارغًا في أغلب الأحيان، وستبقى الأجهزة غير مُستخدمة، وسيصبح النظام غير متوازن. وبالتالي، فإن النظام ذو الأداء الأفضل سيحتوي على مزيج من العمليات المُقيدة بوحدة المعالجة المركزية والعمليات المُقيدة بالإدخال/الإخراج. في أنظمة التشغيل الحديثة، يُستخدم هذا لضمان حصول العمليات في الوقت الحقيقي على وقت كافٍ من وحدة المعالجة المركزية لإنهاء مهامها. [ 7 ]

يُعدّ التخطيط طويل الأجل بالغ الأهمية في الأنظمة واسعة النطاق، مثل أنظمة المعالجة الدفعية ، ومجموعات الحواسيب ، والحواسيب العملاقة ، ومزارع العرض . فعلى سبيل المثال، في الأنظمة المتزامنة ، غالبًا ما يكون التخطيط المشترك للعمليات المتفاعلة ضروريًا لمنعها من التوقف بسبب انتظار بعضها البعض. في هذه الحالات، يُستخدم عادةً برنامج مُخصّص لجدولة المهام لدعم هذه الوظائف، بالإضافة إلى أي دعم أساسي لجدولة القبول في نظام التشغيل.

تسمح بعض أنظمة التشغيل بإضافة مهام جديدة فقط إذا كانت متأكدة من إمكانية الوفاء بجميع المواعيد النهائية في الوقت الفعلي. وتُعرف الخوارزمية الاستدلالية المحددة التي يستخدمها نظام التشغيل لقبول المهام الجديدة أو رفضها بآلية التحكم في القبول . [ 8 ]

الجدولة متوسطة المدى

يقوم مُجدول العمليات متوسط ​​المدى بإزالة العمليات مؤقتًا من الذاكرة الرئيسية ووضعها في الذاكرة الثانوية (مثل القرص الصلب ) أو العكس، وهو ما يُعرف عادةً باسم "التبديل" أو "التبديل إلى" (ويُشار إليه أيضًا بشكل خاطئ باسم " الترحيل " أو "الترحيل إلى "). قد يقرر مُجدول العمليات متوسط ​​المدى تبديل عملية لم تكن نشطة لفترة من الوقت، أو عملية ذات أولوية منخفضة، أو عملية تُعاني من أخطاء الصفحات بشكل متكرر، أو عملية تستهلك قدرًا كبيرًا من الذاكرة، وذلك لتحرير الذاكرة الرئيسية لعمليات أخرى، ثم يُعيد العملية إلى الذاكرة الرئيسية لاحقًا عندما تتوفر ذاكرة أكبر، أو عندما يتم إلغاء حظر العملية ولم تعد تنتظر موردًا.

في العديد من الأنظمة الحالية (التي تدعم ربط مساحة العناوين الافتراضية بوحدات تخزين ثانوية غير ملف التبديل)، قد يقوم مُجدوِل العمليات متوسط ​​المدى بدور مُجدوِل العمليات طويل المدى، وذلك بمعاملة الملفات الثنائية كعمليات مُبدَّلة عند تنفيذها. وبهذه الطريقة، عندما يكون جزء من الملف الثنائي مطلوبًا، يمكن إدخاله عند الطلب، أو تحميله عند الحاجة ، أو ما يُعرف أيضًا بالترحيل عند الطلب .

الجدولة قصيرة الأجل

يُحدد مُجدول العمليات قصير المدى (المعروف أيضًا بمُجدول وحدة المعالجة المركزية ) أيًّا من العمليات الجاهزة الموجودة في الذاكرة سيتم تنفيذها (تخصيص وحدة معالجة مركزية لها) بعد مقاطعة الساعة ، أو مقاطعة الإدخال/الإخراج، أو استدعاء نظام التشغيل ، أو أي شكل آخر من الإشارات. وبالتالي، يتخذ مُجدول العمليات قصير المدى قرارات الجدولة بوتيرة أعلى بكثير من مُجدولي العمليات طويل المدى أو متوسط ​​المدى - إذ يجب اتخاذ قرار جدولة، كحد أدنى، بعد كل فترة زمنية قصيرة جدًا. يمكن أن يكون هذا المُجدول استباقيًا ، ما يعني قدرته على إزالة العمليات قسرًا من وحدة المعالجة المركزية عندما يقرر تخصيصها لعملية أخرى، أو غير استباقي (المعروف أيضًا بالاختياري أو التعاوني )، وفي هذه الحالة لا يستطيع المُجدول إجبار العمليات على مغادرة وحدة المعالجة المركزية. 

المرسل

يُعدّ المُوزّع (Dispatcher) أحد المكونات الأخرى المشاركة في وظيفة جدولة وحدة المعالجة المركزية، وهو الوحدة التي تُسند التحكم في وحدة المعالجة المركزية إلى العملية التي يختارها مُجدول العمليات قصيرة المدى. ويتلقى المُوزّع التحكم في وضع النواة نتيجةً لمقاطعة أو استدعاء نظام. وتشمل وظائف المُوزّع ما يلي:

  • تبديل السياق ، حيث يقوم الموزع بحفظ حالة (المعروفة أيضًا باسم السياق ) العملية أو الخيط الذي كان قيد التشغيل سابقًا؛ ثم يقوم الموزع بتحميل الحالة الأولية أو الحالة المحفوظة مسبقًا للعملية الجديدة.
  • الانتقال إلى وضع المستخدم.
  • الانتقال إلى الموقع المناسب في برنامج المستخدم لإعادة تشغيل ذلك البرنامج المشار إليه بحالته الجديدة.

ينبغي أن يكون الموزع سريعًا قدر الإمكان لأنه يُستدعى أثناء كل تبديل بين العمليات. خلال تبديل السياق، يكون المعالج خاملاً فعليًا لجزء من الوقت، لذا يجب تجنب تبديلات السياق غير الضرورية. يُعرف الوقت الذي يستغرقه الموزع لإيقاف عملية وبدء أخرى بزمن استجابة التوزيع . [ 7 ] : 155

تخصصات الجدولة

نظام الجدولة (ويُسمى أيضًا سياسة الجدولة أو خوارزمية الجدولة ) هو خوارزمية تُستخدم لتوزيع الموارد بين الأطراف التي تطلبها في وقت واحد أو بشكل غير متزامن. تُستخدم أنظمة الجدولة في أجهزة التوجيه (لمعالجة حركة مرور الحزم) وكذلك في أنظمة التشغيل (لتقاسم وقت وحدة المعالجة المركزية بين كل من الخيوط والعمليات )، ومحركات الأقراص ( جدولة الإدخال/الإخراج )، والطابعات ( خدمة التخزين المؤقت للطباعة )، ومعظم الأنظمة المدمجة، وغيرها .

تتمثل الأهداف الرئيسية لخوارزميات الجدولة في تقليل استنزاف الموارد وضمان العدالة بين الأطراف التي تستخدمها. وتتناول الجدولة مشكلة تحديد أي من الطلبات المعلقة سيتم تخصيص الموارد لها. توجد العديد من خوارزميات الجدولة المختلفة، وسنستعرض في هذا القسم بعضًا منها.

في شبكات الكمبيوتر ذات التبديل الحزمي وغيرها من تقنيات الإرسال المتعدد الإحصائي ، يتم استخدام مفهوم خوارزمية الجدولة كبديل لترتيب حزم البيانات حسب أسبقية الوصول .

أبسط خوارزميات جدولة المهام بأفضل جهد هي: التناوب الدوري ، والجدولة العادلة ( خوارزمية جدولة عادلة تعتمد على الحد الأقصى والحد الأدنى )، والجدولة العادلة النسبية ، وخوارزمية الإنتاجية القصوى . في حال تقديم جودة خدمة متميزة أو مضمونة ، بدلاً من الاتصال بأفضل جهد، يمكن استخدام الجدولة العادلة الموزونة .

في شبكات الراديو الحزمية اللاسلكية المتقدمة، مثل نظام HSDPA (الوصول الحزمي عالي السرعة للوصلة الهابطة) من الجيل 3.5 ، يُمكن استخدام جدولة تعتمد على القناة للاستفادة من معلومات حالة القناة . فإذا كانت ظروف القناة مواتية، يُمكن زيادة معدل نقل البيانات وكفاءة الطيف للنظام . وفي أنظمة أكثر تطورًا، مثل LTE ، تُدمج الجدولة من خلال تخصيص القناة الديناميكي حزمةً تلو الأخرى ، أو من خلال تخصيص حوامل OFDMA المتعددة أو مكونات معادلة المجال الترددي الأخرى للمستخدمين الذين يُمكنهم الاستفادة منها على النحو الأمثل. [ 9 ]

الأولوية لمن يأتي أولاً

مجموعة خيوط نموذجية (مربعات خضراء) مع قائمة انتظار (FIFO) للمهام المنتظرة (أزرق) وقائمة انتظار للمهام المكتملة (أصفر)

خوارزمية "الأول في الأول خارج " ( FIFO )، والمعروفة أيضًا باسم " الأول في الأول وصولًا" (FCFS)، هي أبسط خوارزميات الجدولة. ببساطة، تقوم FIFO بوضع العمليات في قائمة الانتظار حسب ترتيب وصولها إلى قائمة الانتظار الجاهزة. تُستخدم هذه الخوارزمية عادةً لـقائمة المهام ، على سبيل المثال كما هو موضح في هذا القسم.

  • بما أن تبديل السياق لا يحدث إلا عند إنهاء العملية، ولا يلزم إعادة تنظيم قائمة انتظار العملية، فإن عبء الجدولة يكون ضئيلاً.
  • قد يكون معدل النقل منخفضًا لأن العمليات الطويلة قد تشغل وحدة المعالجة المركزية، مما يتسبب في انتظار العمليات القصيرة لفترة طويلة (المعروف باسم تأثير القافلة).
  • لا يوجد تجويع، لأن كل عملية تحصل على فرصة للتنفيذ بعد وقت محدد.
  • يعتمد وقت الإنجاز ووقت الانتظار ووقت الاستجابة على ترتيب وصولها، ويمكن أن تكون مرتفعة للأسباب نفسها المذكورة أعلاه.
  • لا يتم تحديد الأولويات، وبالتالي يواجه هذا النظام صعوبة في الالتزام بالمواعيد النهائية للعمليات.
  • يعني غياب تحديد الأولويات أنه طالما اكتملت جميع العمليات في النهاية، فلا يوجد نقص في الموارد. أما في بيئة قد لا تكتمل فيها بعض العمليات، فقد يحدث نقص في الموارد.
  • يعتمد ذلك على نظام الانتظار في الطابور.

جدولة ذات أولوية

خوارزمية "الأقرب موعدًا أولًا" (EDF) أو "الأقل وقتًا للتنفيذ" هي خوارزمية جدولة ديناميكية تُستخدم في أنظمة التشغيل في الوقت الحقيقي لوضع العمليات في قائمة انتظار ذات أولوية. عند حدوث أي حدث جدولة (انتهاء مهمة، أو إطلاق مهمة جديدة، إلخ)، يتم البحث في قائمة الانتظار عن العملية الأقرب إلى موعدها النهائي، والتي ستكون التالية التي يتم جدولة تنفيذها.

أقصر وقت متبقٍ أولاً

يشبه هذا الأسلوب أسلوب "أقصر مهمة أولاً" (SJF). في هذا الأسلوب، يقوم المجدول بترتيب العمليات التي يتبقى لها أقل وقت معالجة مُقدّر لتكون التالية في قائمة الانتظار. يتطلب هذا معرفة متقدمة أو تقديرات دقيقة للوقت اللازم لإتمام كل عملية.

  • إذا وصل برنامج أقصر أثناء تنفيذ برنامج آخر، يتم مقاطعة البرنامج الجاري تنفيذه (وهي عملية تُعرف بالاستباق)، مما يؤدي إلى تقسيمه إلى جزأين حسابيين منفصلين. ينتج عن ذلك زيادة في الحمل الزائد بسبب تبديل السياق. كما يجب على المجدول وضع كل برنامج وارد في مكان محدد في قائمة الانتظار، مما يزيد من الحمل الزائد.
  • تم تصميم هذه الخوارزمية لتحقيق أقصى إنتاجية في معظم السيناريوهات.
  • يزداد وقت الانتظار ووقت الاستجابة مع ازدياد متطلبات المعالجة الحسابية. وبما أن وقت الإنجاز يعتمد على وقت الانتظار بالإضافة إلى وقت المعالجة، فإن العمليات الأطول تتأثر بذلك بشكل ملحوظ. ومع ذلك، فإن وقت الانتظار في هذه الطريقة أقصر من وقت الانتظار في طريقة FIFO، حيث لا تضطر أي عملية إلى انتظار انتهاء أطول عملية.
  • لا يتم إيلاء اهتمام خاص للمواعيد النهائية؛ فكل ما يمكن للمبرمج فعله هو محاولة جعل العمليات ذات المواعيد النهائية قصيرة قدر الإمكان.
  • من الممكن حدوث مجاعة، خاصة في نظام مزدحم يتم فيه تشغيل العديد من العمليات الصغيرة.
  • لاستخدام هذه السياسة، ينبغي أن يكون لدينا على الأقل عمليتان ذواتا أولويات مختلفة

جدولة استباقية ذات أولوية ثابتة

يُعيّن نظام التشغيل رتبة أولوية ثابتة لكل عملية، ويقوم المجدول بترتيب العمليات في قائمة الانتظار حسب ترتيب أولويتها. وتُقاطع العمليات ذات الأولوية المنخفضة بواسطة العمليات الواردة ذات الأولوية الأعلى.

  • التكاليف العامة ليست ضئيلة، وليست كبيرة أيضاً.
  • لا تتمتع FPPS بميزة خاصة من حيث الإنتاجية مقارنة بجدولة FIFO.
  • إذا كان عدد التصنيفات محدودًا، فيمكن وصف النظام بأنه مجموعة من طوابير FIFO، واحدة لكل تصنيف أولوية. يتم اختيار العمليات في الطوابير ذات الأولوية المنخفضة فقط عندما تكون جميع الطوابير ذات الأولوية الأعلى فارغة.
  • يعتمد وقت الانتظار ووقت الاستجابة على أولوية العملية. فالعمليات ذات الأولوية الأعلى تتميز بأوقات انتظار واستجابة أقصر.
  • يمكن الالتزام بالمواعيد النهائية من خلال إعطاء العمليات ذات المواعيد النهائية أولوية أعلى.
  • من الممكن حدوث حرمان للعمليات ذات الأولوية المنخفضة من الموارد مع وجود أعداد كبيرة من العمليات ذات الأولوية العالية التي تنتظر دورها للحصول على وقت وحدة المعالجة المركزية.

جدولة التناوب الدوري

يُخصّص المُجدوِل وحدة زمنية ثابتة لكل عملية، ثم يُجري دورة بينها. إذا اكتملت العملية خلال تلك الفترة الزمنية، يتم إنهاؤها، وإلا يُعاد جدولتها بعد إعطاء الفرصة لجميع العمليات الأخرى.

  • تتضمن جدولة السكك الحديدية تكاليف إضافية كبيرة، خاصة مع وحدة زمنية صغيرة.
  • إنتاجية متوازنة بين FCFS/FIFO و SJF/SRTF، حيث يتم إنجاز المهام الأقصر بشكل أسرع من FIFO ويتم إنجاز العمليات الأطول بشكل أسرع من SJF.
  • متوسط ​​وقت الاستجابة جيد، ووقت الانتظار يعتمد على عدد العمليات، وليس على متوسط ​​طول العملية.
  • بسبب أوقات الانتظار الطويلة، نادراً ما يتم الالتزام بالمواعيد النهائية في نظام RR البحت.
  • لا يمكن أن يحدث تجويع، إذ لا تُعطى أي أولوية. يعتمد ترتيب تخصيص وحدات الوقت على وقت وصول العملية، على غرار نظام FIFO (الوارد أولاً يُصرف أولاً).
  • إذا كانت شريحة الوقت كبيرة، فإنها تصبح FCFS/FIFO أو إذا كانت قصيرة، فإنها تصبح SJF/SRTF.

جدولة قوائم الانتظار متعددة المستويات

يُستخدم هذا الأسلوب في الحالات التي يسهل فيها تقسيم العمليات إلى مجموعات مختلفة. على سبيل المثال، يُقسّم عادةً بين العمليات الأمامية (التفاعلية) والعمليات الخلفية (الدفعية). يختلف هذان النوعان من العمليات في متطلبات زمن الاستجابة، وبالتالي قد تختلف احتياجاتهما في الجدولة. وهو مفيد جدًا لمشاكل الذاكرة المشتركة .

جداول العمل الموفرة للوقت

المجدول المُحافظ على الموارد هو مجدول يسعى دائمًا إلى إبقاء الموارد المُجدولة مشغولة إذا كانت هناك مهام جاهزة للجدولة. في المقابل، المجدول غير المُحافظ على الموارد هو مجدول قد يُبقي الموارد المُجدولة خاملة في بعض الحالات على الرغم من وجود مهام جاهزة للجدولة.

مشاكل تحسين الجدولة

توجد العديد من مشاكل الجدولة التي يكون الهدف منها هو تحديد أي مهمة تذهب إلى أي محطة وفي أي وقت، بحيث يتم تقليل إجمالي مدة الإنجاز :

  • جدولة ورش العمل يوجد عدد n من المهام وعدد m من المحطات المتطابقة. يجب تنفيذ كل مهمة على آلة واحدة. يُعتبر هذا عادةً مشكلةً متصلةً بالإنترنت. 
  • جدولة العمل المفتوح هناك n وظيفة و m محطة مختلفة. يجب أن تقضي كل وظيفة بعض الوقت في كل محطة، بترتيب حر. 
  • جدولة التدفق في خط الإنتاج - هناك n وظيفة و m محطة مختلفة. يجب أن تقضي كل وظيفة بعض الوقت في كل محطة، بترتيب محدد مسبقًا. 

الجدولة اليدوية

تُعدّ جدولة المهام يدويًا من أكثر الطرق شيوعًا في الأنظمة المدمجة. ويمكن القيام بذلك، على سبيل المثال، بتقنية تعدد الإرسال الزمني. أحيانًا، تُقسّم نواة النظام إلى ثلاثة أجزاء أو أكثر: الجدولة اليدوية، والجدولة الاستباقية، وجدولة مستوى المقاطعة. غالبًا ما تكون الطرق الدقيقة لجدولة المهام حصرية.

  • مشاكل نقص الموارد
  • قدرة عالية جدًا على التنبؤ؛ مما يسمح بتنفيذ أنظمة الوقت الحقيقي الصارمة
  • لا توجد تكاليف إضافية تقريبًا
  • قد لا يكون مثاليًا لجميع التطبيقات
  • تعتمد الفعالية كلياً على التنفيذ

اختيار خوارزمية الجدولة

عند تصميم نظام تشغيل، يجب على المبرمج مراعاة خوارزمية الجدولة الأنسب للاستخدام المتوقع للنظام. لا توجد خوارزمية جدولة مثالية عالمية ، وتستخدم العديد من أنظمة التشغيل خوارزميات جدولة موسعة أو مزيجًا من الخوارزميات المذكورة أعلاه.

على سبيل المثال، تستخدم أنظمة التشغيل Windows NT وXP وVista طابور تغذية راجعة متعدد المستويات ، وهو مزيج من جدولة استباقية ذات أولوية ثابتة، وجدولة بالتناوب، وخوارزمية "الأول في الأول خارج". في هذا النظام، يمكن للخيوط أن تزيد أو تنقص في أولويتها ديناميكيًا بناءً على ما إذا كانت قد تمت خدمتها بالفعل أو ما إذا كانت تنتظر لفترة طويلة. يُمثَّل كل مستوى أولوية بطابور خاص به، مع جدولة بالتناوب بين الخيوط ذات الأولوية العالية، وجدولة " الأول في الأول خارج" بين الخيوط ذات الأولوية المنخفضة. وبهذا المعنى، يكون زمن الاستجابة قصيرًا لمعظم الخيوط، وتُنجز خيوط النظام القصيرة ولكن الحرجة بسرعة كبيرة. نظرًا لأن الخيوط لا يمكنها استخدام سوى وحدة زمنية واحدة من جدولة التناوب في طابور الأولوية الأعلى، فقد يُمثل نقص الموارد مشكلة للخيوط الطويلة ذات الأولوية العالية.

تطبيقات جدولة عمليات نظام التشغيل

قد تكون الخوارزمية المستخدمة بسيطة مثل خوارزمية التناوب الدوري ، حيث يُمنح كل معالج وقتًا متساويًا (على سبيل المثال، 1  مللي ثانية، وعادةً ما يكون الوقت بين 1  مللي ثانية و100  مللي ثانية) في قائمة دورية. لذا، يُنفذ المعالج A لمدة 1  مللي ثانية، ثم المعالج B، ثم المعالج C، ثم يعود إلى المعالج A.

تأخذ الخوارزميات الأكثر تطورًا في الحسبان أولوية العملية، أو أهميتها. وهذا يسمح لبعض العمليات باستهلاك وقت أطول من غيرها. يستخدم نظام التشغيل دائمًا جميع الموارد اللازمة لضمان الأداء السليم للنظام، ولذا يمكن القول إن له أولوية غير محدودة. في أنظمة المعالجة المتعددة المتناظرة (SMP) ، يُعتبر تقارب المعالج عاملًا مُحسِّنًا لأداء النظام بشكل عام، حتى لو أدى ذلك إلى إبطاء عمل إحدى العمليات. يُحسِّن هذا الأداء عمومًا عن طريق تقليل التداخل في ذاكرة التخزين المؤقت .

نظام التشغيل OS/360 والأنظمة اللاحقة له

كان نظام التشغيل IBM OS/360 متوفرًا بثلاثة مُجدولات مختلفة. وكانت الاختلافات كبيرة لدرجة أن هذه المتغيرات كانت تُعتبر في كثير من الأحيان ثلاثة أنظمة تشغيل مختلفة:

  • يوفر خيار جدولة التسلسل الفردي ، والمعروف أيضًا باسم برنامج التحكم الأساسي (PCP)، التنفيذ التسلسلي لتدفق واحد من المهام.
  • يُتيح خيار جدولة المهام المتعددة المتسلسلة ، المعروف باسم البرمجة المتعددة بعدد ثابت من المهام (MFT)، تنفيذ مهام متزامنة متعددة. ويخضع التنفيذ لأولوية افتراضية لكل مسار، أو يُمكن طلبها بشكل منفصل لكل مهمة. أضاف الإصدار الثاني من MFT مهامًا فرعية (خيوطًا)، تُنفذ بأولوية تعتمد على أولوية المهمة الأصلية. ويُحدد كل مسار مهمة الحد الأقصى للذاكرة التي يُمكن لأي مهمة في ذلك المسار استخدامها.
  • يتميز خيار جدولة الأولويات المتعددة ، أو البرمجة المتعددة مع عدد متغير من المهام (MVT) ، بالمهام الفرعية منذ البداية؛ حيث تطلب كل مهمة الأولوية والذاكرة التي تحتاجها قبل التنفيذ.

أضافت الإصدارات اللاحقة من نظام التخزين الافتراضي MVS ميزة إدارة أحمال العمل إلى المجدول، والتي تقوم بجدولة موارد المعالج وفقًا لمخطط مفصل تحدده عملية التثبيت.

ويندوز

كانت أنظمة MS-DOS وMicrosoft Windows في بداياتها غير داعمة لتعدد المهام، ولذلك لم تكن مزودة بجدول زمني. استخدم Windows 3.1x جدولًا زمنيًا غير استباقي، أي أنه لم يقاطع البرامج. كان يعتمد على البرنامج لإنهاء عمله أو إخبار نظام التشغيل بأنه لم يعد بحاجة إلى المعالج ليتمكن من الانتقال إلى عملية أخرى. يُعرف هذا عادةً بتعدد المهام التعاوني. قدم Windows 95 جدولًا زمنيًا استباقيًا بدائيًا؛ ومع ذلك، ولأغراض دعم الأنظمة القديمة، سمح بتشغيل تطبيقات 16 بت دون مقاطعة. [ 10 ]

تستخدم أنظمة التشغيل المبنية على نظام ويندوز إن تي قائمة انتظار متعددة المستويات. يتم تحديد 32 مستوى أولوية، من 0 إلى 31، حيث تمثل الأولويات من 0 إلى 15 الأولويات العادية ، بينما تمثل الأولويات من 16 إلى 31 أولويات الوقت الحقيقي المرن، والتي تتطلب صلاحيات لتعيينها. المستوى 0 محجوز لنظام التشغيل. تتعامل واجهات المستخدم وواجهات برمجة التطبيقات مع فئات الأولوية للعملية والخيوط داخلها، والتي يقوم النظام بعد ذلك بدمجها لتكوين مستوى الأولوية المطلق.

قد تُغيّر نواة النظام مستوى أولوية الخيط بناءً على استخدامه للإدخال/الإخراج ووحدة المعالجة المركزية، وما إذا كان تفاعليًا (أي يستقبل مدخلات من المستخدمين ويستجيب لها)، فترفع أولوية العمليات التفاعلية والمحدودة بالإدخال/الإخراج، وتخفض أولوية العمليات المحدودة بوحدة المعالجة المركزية، وذلك لزيادة استجابة التطبيقات التفاعلية. [ 11 ] تم تعديل مُجدوِل العمليات في نظام التشغيل ويندوز فيستا لاستخدام سجل عداد الدورات في المعالجات الحديثة لتتبع عدد دورات وحدة المعالجة المركزية التي نفذها الخيط بدقة، بدلاً من استخدام روتين مقاطعة مؤقت الفاصل الزمني فقط. [ 12 ] كما يستخدم فيستا مُجدوِل أولويات لطابور الإدخال/الإخراج، بحيث لا تتداخل برامج إلغاء تجزئة القرص وغيرها من البرامج المماثلة مع العمليات الأمامية. [ 13 ]

نظام التشغيل ماك الكلاسيكي ونظام التشغيل ماك

يستخدم نظام التشغيل Mac OS 9 جدولة تعاونية للخيوط، حيث تتحكم عملية واحدة في عدة خيوط تعاونية، كما يوفر جدولة استباقية لمهام المعالجة المتعددة. تقوم النواة بجدولة مهام المعالجة المتعددة باستخدام خوارزمية جدولة استباقية. تعمل جميع عمليات مدير العمليات ضمن مهمة معالجة متعددة خاصة، تُسمى المهمة الزرقاء . تُجدول هذه العمليات بشكل تعاوني، باستخدام خوارزمية جدولة بالتناوب ؛ حيث تُسلّم عملية ما التحكم في المعالج إلى عملية أخرى عن طريق استدعاء دالة حظر صريحة WaitNextEvent. لكل عملية نسخة خاصة بها من مدير الخيوط الذي يُجدول خيوط تلك العملية بشكل تعاوني؛ حيث يُسلّم خيط ما التحكم في المعالج إلى خيط آخر عن طريق استدعاء YieldToAnyThreadدالة حظر YieldToThread. [ 14 ]

يستخدم نظام macOS طابور تغذية راجعة متعدد المستويات، مع أربع نطاقات أولوية للخيوط : عادي، وأولوية عالية للنظام، ووضع النواة فقط، والوقت الحقيقي. [ 15 ] تُجدول الخيوط بشكل استباقي؛ كما يدعم macOS أيضًا جدولة الخيوط بشكل تعاوني في تطبيقه لمدير الخيوط في Carbon . [ 14 ] 

نظام التشغيل AIX

في نظام AIX الإصدار 4، توجد ثلاث قيم محتملة لسياسة جدولة الخيوط:

  • أسبقية الوصول، أسبقية الخروج: بمجرد جدولة عملية ما وفقًا لهذه السياسة، فإنها تستمر في العمل حتى اكتمالها ما لم يتم حظرها، أو تتنازل طواعيةً عن التحكم في وحدة المعالجة المركزية، أو تصبح عملية أخرى ذات أولوية أعلى قابلة للتنفيذ. ولا يمكن تطبيق سياسة جدولة أسبقية الوصول إلا على العمليات ذات الأولوية الثابتة.
  • التوزيع الدوري: يشبه هذا النظام آلية التوزيع الدوري في نظام AIX الإصدار 3، والتي تعتمد على  فترات زمنية مدتها 10 مللي ثانية. عندما يتحكم أحد خيوط التوزيع الدوري في نهاية الفترة الزمنية، ينتقل إلى نهاية قائمة الخيوط القابلة للتوزيع وفقًا لأولويته. لا يمكن تطبيق سياسة التوزيع الدوري إلا على الخيوط ذات الأولوية الثابتة.
  • أخرى: تُعرَّف هذه السياسة في معيار POSIX1003.4a على أنها مُحدَّدة حسب التنفيذ. في نظام AIX الإصدار 4، تُعرَّف هذه السياسة على أنها مُكافئة لسياسة RR، باستثناء أنها تُطبَّق على الخيوط ذات الأولوية غير الثابتة. إعادة حساب قيمة أولوية الخيط الجاري عند كل مقاطعة ساعة يعني أن الخيط قد يفقد التحكم لأن قيمة أولويته قد ارتفعت فوق قيمة أولوية خيط آخر قابل للإرسال. هذا هو سلوك نظام AIX الإصدار 3.

تُعدّ الخيوط ذات أهمية بالغة للتطبيقات التي تتكون حاليًا من عدة عمليات غير متزامنة. وقد تُخفّف هذه التطبيقات من الحمل على النظام إذا تم تحويلها إلى بنية متعددة الخيوط.

يُطبّق نظام AIX 5 سياسات الجدولة التالية: FIFO، والتوزيع الدوري، والتوزيع الدوري العادل. تتضمن سياسة FIFO ثلاثة تطبيقات مختلفة: FIFO، وFIFO2، وFIFO3. تُسمى سياسة التوزيع الدوري SCHED_RR في نظام AIX، بينما يُسمى التوزيع الدوري العادل SCHED_OTHER. [ 16 ]

لينكس

لينكس 1.2

استخدم نظام لينكس 1.2 سياسة جدولة بالتناوب الدوري . [ 17 ]

لينكس 2.2

أضاف نظام لينكس 2.2 فئات الجدولة ودعم المعالجة المتعددة المتناظرة (SMP). [ 17 ]

بنية مبسطة للغاية لنواة لينكس، والتي تتضمن مُجدولات العمليات، ومُجدولات الإدخال/الإخراج، ومُجدولات الحزم.

لينكس 2.4

في نظام لينكس 2.4، [ 17 ] استُخدم مُجدوِل ذو تعقيد زمني O(n) مع طابور تغذية راجعة متعدد المستويات، تتراوح مستويات الأولوية فيه من 0 إلى 140؛ حيث تُخصَّص المستويات من 0 إلى 99 للمهام الآنية ، بينما تُعتبر المستويات من 100 إلى 140 مستويات مهام مُفضَّلة . بالنسبة للمهام الآنية، كان الوقت المُخصَّص لتبديل العمليات حوالي 200  مللي ثانية، وللمهام المُفضَّلة حوالي 10 مللي ثانية. يُنفِّذ المُجدوِل جميع العمليات الجاهزة في طابور التشغيل ، تاركًا العمليات ذات الأولوية الأعلى تُنفَّذ أولًا وتُكمل فتراتها الزمنية، ثم تُوضع في طابور العمليات المنتهية الصلاحية. عندما يُصبح الطابور النشط فارغًا، يُصبح طابور العمليات المنتهية الصلاحية هو الطابور النشط، والعكس صحيح.

ومع ذلك، قامت بعض توزيعات لينكس للمؤسسات مثل SUSE Linux Enterprise Server باستبدال هذا المجدول بنسخة معدلة من المجدول O(1) (الذي كان آلان كوكس يحتفظ به في سلسلة نواة لينكس 2.4-ac الخاصة به) إلى نواة لينكس 2.4 المستخدمة في التوزيعة.

لينكس من الإصدار 2.6.0 إلى الإصدار 2.6.22

في الإصدارات من 2.6.0 إلى 2.6.22، استخدمت النواة مُجدوِلًا من نوع O(1) طوّره إنجو مولنار والعديد من مطوري النواة الآخرين خلال تطوير لينكس 2.5. بالنسبة للعديد من النوى في تلك الفترة، طوّر كون كوليفاس مجموعات تصحيحات حسّنت التفاعل مع هذا المُجدوِل أو حتى استبدلته بمُجدوِلات خاصة به.

من لينكس 2.6.23 إلى لينكس 6.5

ألهم عمل كون كوليفاس، ولا سيما تطبيقه لجدولة عادلة تُسمى " جدولة المواعيد النهائية المتدرجة الدوارة " (RSDL)، إنجو مولنار لتطوير " المجدول العادل تمامًا" (CFS) كبديل للمجدول السابق O(1) ، مع الإشارة إلى كوليفاس في إعلانه. [ 18 ] يُعد CFS أول تطبيق لمجدول عمليات عادل يُستخدم على نطاق واسع في نظام تشغيل للأغراض العامة. [ 19 ]

يستخدم نظام CFS خوارزمية جدولة كلاسيكية مدروسة جيدًا تُسمى " الجدولة العادلة" ، والتي طُورت في الأصل لشبكات الحزم . وقد طُبقت الجدولة العادلة سابقًا على جدولة وحدة المعالجة المركزية تحت اسم " جدولة الخطوة" . يتميز مُجدول CFS الذي يعتمد على الجدولة العادلة بتعقيد جدولة قدرهيا(سجلشمال){\displaystyle O(\log N)}حيث N هو عدد المهام في قائمة الانتظار . يمكن اختيار مهمة في وقت ثابت، لكن إعادة إدخال مهمة بعد تشغيلها يتطلبيا(سجلشمال){\displaystyle O(\log N)}العمليات، لأن قائمة التشغيل يتم تنفيذها كشجرة حمراء سوداء .

يُعد برنامج Brain Fuck Scheduler ، الذي ابتكره أيضاً كون كوليفاس، بديلاً عن نظام CFS.

لينكس 6.6

في عام 2023، اقترح بيتر زيلسترا استبدال خوارزمية CFS بخوارزمية جدولة العمليات التي تعتمد على أقرب موعد نهائي افتراضي مؤهل أولاً (EEVDF). [ 20 ] [ 21 ] وكان الهدف هو الاستغناء عن الحاجة إلى تصحيحات زمن الاستجابة الخاصة بخوارزمية CFS . [ 22 ]

لينكس 6.12

أضاف نظام لينكس 6.12 دعمًا لإضافات جدولة المهام التي يمكن إضافتها من مساحة المستخدم ؛ وتُعرف هذه الآلية باسم sched_ext. يمكن تحميل برنامج eBPF في نواة النظام لتنفيذ سياسة جدولة. [ 23 ] يمكن لهذه الجداول أن تحل محل الجدول الافتراضي. [ 24 ]

فري بي إس دي

يستخدم نظام FreeBSD طابور تغذية راجعة متعدد المستويات بأولويات تتراوح من 0 إلى 255. تُخصص الأولويات من 0 إلى 63 للمقاطعات، ومن 64 إلى 127 للجزء العلوي من النواة، ومن 128 إلى 159 لخيوط المستخدم في الوقت الحقيقي، ومن 160 إلى 223 لخيوط المستخدم ذات المشاركة الزمنية، ومن 224 إلى 255 لخيوط المستخدم الخاملة. وكما هو الحال في نظام Linux، يستخدم FreeBSD إعداد الطابور النشط، ولكنه يتضمن أيضًا طابورًا للخيول الخاملة. [ 25 ]

نظام التشغيل NetBSD

يستخدم نظام NetBSD قائمة انتظار متعددة المستويات ذات أولويات تتراوح من 0 إلى 223. يتم حجز الأرقام من 0 إلى 63 للخيوط المشتركة زمنيًا (الافتراضي، سياسة SCHED_OTHER)، ومن 64 إلى 95 لخيوط المستخدم التي دخلت مساحة النواة ، ومن 96 إلى 128 لخيوط النواة، ومن 128 إلى 191 لخيوط المستخدم في الوقت الحقيقي (سياسات SCHED_FIFO وSCHED_RR)، ومن 192 إلى 223 لمقاطعات البرامج .

سولاريس

يستخدم نظام سولاريس طابور تغذية راجعة متعدد المستويات، تتراوح أولوياته بين 0 و169. تُخصص الأولويات من 0 إلى 59 للخيوط المُشاركة زمنيًا، ومن 60 إلى 99 لخيوط النظام، ومن 100 إلى 159 لخيوط الوقت الحقيقي، ومن 160 إلى 169 للمقاطعات ذات الأولوية المنخفضة. على عكس لينكس، [ 25 ] عند انتهاء عملية ما من استخدام حصتها الزمنية، تُمنح أولوية جديدة وتُعاد إلى الطابور.  قدم سولاريس 9 فئتين جديدتين للجدولة، وهما فئة الأولوية الثابتة وفئة المشاركة العادلة. تتمتع الخيوط ذات الأولوية الثابتة بنفس نطاق أولوية فئة المشاركة الزمنية، ولكن أولوياتها لا تُعدل ديناميكيًا. تستخدم فئة الجدولة العادلة حصص وحدة المعالجة المركزية لتحديد أولويات الخيوط عند اتخاذ قرارات الجدولة. تشير حصص وحدة المعالجة المركزية إلى استحقاق مواردها، وتُخصص لمجموعة من العمليات، تُعرف مجتمعةً باسم مشروع. [ 7 ]

ملخص

نظام التشغيلالاستباقالخوارزمية
نظام التشغيل أميغانعمجدولة التناوب الدوري ذات الأولوية
فري بي إس دينعمقائمة انتظار التغذية الراجعة متعددة المستويات
نواة لينكس قبل الإصدار 2.6.0نعمقائمة انتظار التغذية الراجعة متعددة المستويات
نواة لينكس 2.6.0 2.6.23نعمجدولة O(1)
نواة لينكس 2.6.23 6.6نعمجدولة عادلة تمامًا
نواة لينكس 6.6 والإصدارات الأحدثنعمالجدولة الافتراضية حسب الموعد النهائي الأسبق (EEVDF)
نظام التشغيل ماك الكلاسيكي ما قبل الإصدار 9لا أحدمُجدول تعاوني
نظام التشغيل ماك أو إس 9بعضجدولة استباقية لمهام المعالجة المتعددة، وتعاونية للعمليات والخيوط
نظام التشغيل macOSنعمقائمة انتظار التغذية الراجعة متعددة المستويات
نظام التشغيل NetBSDنعمقائمة انتظار التغذية الراجعة متعددة المستويات
سولاريسنعمقائمة انتظار التغذية الراجعة متعددة المستويات
ويندوز 3.1xلا أحدمُجدول تعاوني
ويندوز 95 ، 98 ، مينصفجدولة استباقية للعمليات ذات 32 بت، وجدولة تعاونية للعمليات ذات 16 بت
ويندوز إن تي (بما في ذلك 2000، إكس بي، فيستا، 7، وسيرفر)نعمقائمة انتظار التغذية الراجعة متعددة المستويات

انظر أيضاً

ملحوظات

  1. سي إل، ليو؛ جيمس دبليو، لايلاند (يناير 1973). "خوارزميات الجدولة للبرمجة المتعددة في بيئة زمنية حقيقية صارمة" . مجلة ACM . 20 (1). ACM: 46-61 . doi : 10.1145/321738.321743 . S2CID 207669821. نُعرّف زمن استجابة طلب مهمة معينة بأنه الفترة الزمنية بين تقديم الطلب ونهاية الاستجابة له. 
  2. ↑ كلاينروك ، ليونارد (1976). أنظمة الانتظار، المجلد 2: تطبيقات الحاسوب ( الطبعة الأولى). وايلي-إنترساينس. ص 171. ISBN   047149111Xبالنسبة للعميل الذي يحتاج إلى x ثانية من الخدمة، فإن وقت استجابته سيساوي وقت خدمته x بالإضافة إلى وقت انتظاره.
  3. فيتلسون، درور ج. (2015). نمذجة عبء العمل لتقييم أداء أنظمة الحاسوب . مطبعة جامعة كامبريدج. القسم 8.4 (الصفحة 422) في الإصدار 1.03 من المخطوطة المتاحة مجانًا. ISBN 9781107078239تم الاسترجاع في 2015-10-17 . إذا رمزنا للوقت الذي تنتظره مهمة ما في قائمة الانتظار بـ t w ، والوقت الذي يتم تشغيلها فيه فعليًا بـ t r ، فإن وقت الاستجابة هو r = t w + t r .
  4. سيلبرشاتز، أبراهام؛ جالفين، بيتر باير؛ غاني، جريج (2012). مفاهيم أنظمة التشغيل ( الطبعة التاسعة). دار نشر وايلي. ص 187. ISBN   978-0470128725في الأنظمة التفاعلية ، قد لا يكون وقت الاستجابة المعيار الأمثل. ففي كثير من الأحيان، يمكن للعملية إنتاج بعض المخرجات في وقت مبكر نسبيًا، والاستمرار في حساب نتائج جديدة أثناء عرض النتائج السابقة للمستخدم. لذا، يُعدّ الوقت المستغرق من تقديم الطلب حتى ظهور أول استجابة معيارًا آخر. يُسمى هذا المقياس "وقت الاستجابة"، وهو الوقت اللازم لبدء الاستجابة، وليس الوقت اللازم لعرضها.
  5. بول كرزيزانوفسكي (19 فبراير 2014). "جدولة العمليات: من سيُنفذ العملية التالية؟" . cs.rutgers.edu . مؤرشف من الأصل بتاريخ 2 أغسطس 2023. تم الاطلاع عليه بتاريخ 19 يونيو 2023 .
  6. رافائيل فينكل (1988). "الفصل الثاني: إدارة الوقت". دليل أنظمة التشغيل . برنتيس هول. ص 27. 
  7. 1 2 3 أبراهام سيلبرشاتز ؛ بيتر باير جالفين؛ جريج غاني (2013). مفاهيم أنظمة التشغيل . المجلد 9. جون وايلي وأولاده، المحدودة. ISBN  978-1-118-06333-0.
  8. روبرت كروجر (2004). "التحكم في الوصول لتطبيقات الوقت الحقيقي المُؤلَّفة بشكل مستقل" . UWSpace. http://hdl.handle.net/10012/1170 . القسم "2.6 التحكم في الوصول". ص 33.
  9. غووانغ مياو ؛ ينس زاندر؛ كي وون سونغ؛ بن سليمان (2016). أساسيات شبكات البيانات المتنقلة . مطبعة جامعة كامبريدج . ISBN 978-1107143210.
  10. نوافذ مبكرة في آلة Wayback (فهرس الأرشيف)
  11. سريرام كريشنان. "قصة نظامي جدولة ويندوز إن تي وويندوز سي إي" . مؤرشف من الأصل في 22 يوليو 2012.
  12. "إدارة نظام ويندوز: نظرة داخلية على نواة ويندوز فيستا: الجزء الأول" . Technet.microsoft.com . 14 نوفمبر 2016. تاريخ الاطلاع: 9 ديسمبر 2016 .
  13. "نسخة مؤرشفة" . blog.gabefrost.com . مؤرشفة من الأصل بتاريخ 19 فبراير 2008. تم الاطلاع عليها بتاريخ 15 يناير 2022 .{{cite web}}: CS1 maint: archived copy as title ( link )
  14. 1 2 "المذكرة الفنية TN2028: بنى الخيوط" . developer.apple.com . تم الاطلاع عليها بتاريخ 15 يناير 2019 .
  15. "جدولة Mach وواجهات الخيوط" . developer.apple.com . تم الاطلاع عليه بتاريخ 15 يناير 2019 .
  16. أُرشف بتاريخ 11 أغسطس 2011 في أرشيف الإنترنت (Wayback Machine) .
  17. 1 2 3 جونز، م. (2018-09-18) [نُشر لأول مرة في 2009-12-14]. "نظرة داخلية على مُجدول لينكس 2.6 العادل تمامًا" . developer.ibm.com . تم الاطلاع عليه في 2024-02-07 .
  18. مولنار، إنجو (13-04-2007). " [ رقعة ] نواة جدولة معيارية وجدولة عادلة تمامًا [ CFS ] " . linux-kernel (قائمة بريدية).
  19. تونغ لي؛ دان بومبرغر؛ سكوت هان. "جدولة عادلة وفعالة وقابلة للتوسع للمعالجات المتعددة باستخدام خوارزمية التوزيع الموزون بالتناوب" (ملف PDF) . Happyli.org . تاريخ الاسترجاع: 9 ديسمبر 2016 .
  20. "قد يكون مُجدول EEVDF جاهزًا للإدراج مع نظام لينكس 6.6" . فورونيكس . تم الاطلاع عليه بتاريخ 31 أغسطس 2023 .
  21. "دمج مُجدول EEVDF لنظام Linux 6.6، وإعادة تقديم جدولة مجموعات Intel الهجينة" . www.phoronix.com . تاريخ الاسترجاع: 7 فبراير 2024 .
  22. "مُجدول وحدة المعالجة المركزية EEVDF لنظام لينكس [ LWN.net ] " . LWN.net . تم الاطلاع عليه بتاريخ 31 أغسطس 2023 .
  23. "دمج Sched_ext لنظام Linux 6.12 - سياسات الجدولة كبرامج BPF" . www.phoronix.com . تاريخ الاسترجاع: 10 فبراير 2025 .
  24. "مجدولات وحدة المعالجة المركزية القابلة للتوصيل - ويكي openSUSE" . en.opensuse.org . تم الاطلاع عليه بتاريخ 10 فبراير 2025 .
  25. 1 2 "مقارنة بين نواة أنظمة سولاريس ولينكس وفري بي إس دي" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 7 أغسطس 2008.

مراجع

للمزيد من القراءة