أقصر مهمة أولاً (SJF): مثال وقائي وغير وقائي

⚡ ملخص ذكي

خوارزمية "أقصر مهمة أولاً" (SJF) هي خوارزمية جدولة لوحدة المعالجة المركزية (CPU) تختار العملية ذات أقصر وقت تنفيذ لتشغيلها تالياً. يمكن أن تكون هذه الخوارزمية استباقية أو غير استباقية، وهي تقلل بشكل كبير من متوسط ​​وقت انتظار العمليات.

  • ⏱️ فريف: يتم اختيار العملية ذات أقصر وقت تنفيذ للتنفيذ التالي.
  • 🔀 نوعين: يمكن أن يكون SJF غير استباقي أو استباقي (أقصر وقت متبقي أولاً).
  • 📉 الفائدة الرئيسية: يوفر هذا النظام أقل متوسط ​​وقت انتظار لمجموعة معينة من العمليات.
  • 🏭 أفضل استخدام: مثالي لأنظمة الدفعات حيث تكون أوقات تشغيل المهام معروفة مسبقًا.
  • ❓ القيد الرئيسي: يجب معرفة وقت الانفجار مسبقًا، وهو أمر يصعب التنبؤ به.
  • ⚠️ خطر: قد تفشل العمليات الطويلة إذا استمرت المهام القصيرة في الوصول.

جدولة المهام الأقصر أولاً (SJF)

ما هو أقصر جدولة الوظيفة أولا؟

أقصر مهمة أولاً (SJF) هي خوارزمية يتم فيها اختيار العملية التي لها أقل وقت تنفيذ للتنفيذ التالي. يمكن أن تكون طريقة الجدولة هذه وقائية أو غير وقائية. فهو يقلل بشكل كبير من متوسط ​​وقت الانتظار للعمليات الأخرى التي تنتظر التنفيذ. الشكل الكامل لـ SJF هو أقصر وظيفة أولاً.

هناك نوعان أساسيان من أساليب SJF:

  • SJF غير وقائية
  • SJF الاستباقي

خصائص جدولة SJF

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

SJF غير وقائية

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

ضع في اعتبارك العمليات الخمس التالية، ولكل منها وقت انفجار ووقت وصول فريدين.

قائمة انتظار العملية وقت الانفجار وقت الوصول
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

الخطوة 0) عند الزمن = 0، يصل P4 ويبدأ التنفيذ.

SJF غير وقائية

الخطوة 1) عند الزمن = 1، تصل العملية P3. لكن العملية P4 لا تزال بحاجة إلى وحدتي تنفيذ لإكمالها. ستواصل التنفيذ.

SJF غير وقائية

الخطوة 2) في الوقت = 2، تصل العملية P1 وتتم إضافتها إلى قائمة انتظار الانتظار. سوف يستمر P4 في التنفيذ.

SJF غير وقائية

الخطوة 3) في الوقت = 3، ستنتهي العملية P4 من تنفيذها. تتم مقارنة وقت الاندفاع P3 وP1. يتم تنفيذ العملية P1 لأن وقت انفجارها أقل مقارنة بالعملية P3.

SJF غير وقائية

الخطوة 4) في الوقت = 4، تصل العملية P5 وتتم إضافتها إلى قائمة انتظار الانتظار. سوف يستمر P1 في التنفيذ.

SJF غير وقائية

الخطوة 5) في الوقت = 5، تصل العملية P2 وتتم إضافتها إلى قائمة انتظار الانتظار. سوف يستمر P1 في التنفيذ.

SJF غير وقائية

الخطوة 6) في الوقت = 9، ستنتهي العملية P1 من تنفيذها. تتم مقارنة وقت الاندفاع P3 وP5 وP2. يتم تنفيذ العملية P2 لأن وقت انفجارها هو الأقل.

SJF غير وقائية

الخطوة 7) عند الزمن = 10، يكون P2 قيد التنفيذ ويكون P3 و P5 في قائمة الانتظار.

SJF غير وقائية

الخطوة 8) في الوقت = 11، ستنتهي العملية P2 من تنفيذها. تتم مقارنة وقت الاندفاع P3 وP5. يتم تنفيذ العملية P5 لأن وقت انفجارها أقل.

SJF غير وقائية

الخطوة 9) في الوقت = 15، ستنتهي العملية P5 من تنفيذها.

SJF غير وقائية

الخطوة 10) في الوقت = 23، ستنتهي العملية P3 من تنفيذها.

SJF غير وقائية

الخطوة 11) لنحسب متوسط ​​وقت الانتظار للمثال أعلاه.

Wait time
P4 = 0 - 0 = 0
P1 = 3 - 2 = 1
P2 = 9 - 5 = 4
P5 = 11 - 4 = 7
P3 = 15 - 1 = 14
Average Waiting Time = (0 + 1 + 4 + 7 + 14)/5 = 26/5 = 5.2

SJF الاستباقي

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

ضع في اعتبارك العمليات الخمس التالية:

قائمة انتظار العملية وقت الانفجار وقت الوصول
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

الخطوة 0) عند الزمن = 0، يصل P4 ويبدأ التنفيذ.

قائمة انتظار العملية وقت الانفجار وقت الوصول
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

SJF الاستباقي

الخطوة 1) عند الزمن = 1، تصل العملية P3. لكن العملية P4 لديها وقت تنفيذ أقصر، لذا ستواصل التنفيذ.

SJF الاستباقي

الخطوة 2) في الوقت = 2، تصل العملية P1 مع وقت الاندفاع = 6. وقت الاندفاع أكبر من زمن الاندفاع P4. وبالتالي، سيستمر P4 في التنفيذ.

SJF الاستباقي

الخطوة 3) في الوقت = 3، ستنتهي العملية P4 من تنفيذها. تتم مقارنة وقت الاندفاع P3 وP1. يتم تنفيذ العملية P1 لأن وقت انفجارها أقل.

SJF الاستباقي

الخطوة 4) في الوقت = 4، ستصل العملية P5. تتم مقارنة وقت الاندفاع P3 وP5 وP1. يتم تنفيذ العملية P5 لأن وقت انفجارها هو الأدنى. تم استباق العملية P1.

قائمة انتظار العملية وقت الانفجار وقت الوصول
P1 باقي 5 من 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

SJF الاستباقي

الخطوة 5) عند الزمن = 5، ستصل العملية P2. تتم مقارنة أوقات التنفيذ للعمليات P1 وP2 وP3 وP5. تُنفذ العملية P2 لأن وقت تنفيذها هو الأقصر. تُقاطع العملية P5.

قائمة انتظار العملية وقت الانفجار وقت الوصول
P1 باقي 5 من 6 2
P2 2 5
P3 8 1
P4 3 0
P5 باقي 3 من 4 4

SJF الاستباقي

الخطوة 6) عند الزمن = 6، يتم تنفيذ P2.

SJF الاستباقي

الخطوة 7) عند الزمن 7، تنتهي العملية P2 من تنفيذها. تتم مقارنة زمن التنفيذ للعمليات P1 وP3 وP5. يتم تنفيذ العملية P5 لأن زمن تنفيذها أقصر.

قائمة انتظار العملية وقت الانفجار وقت الوصول
P1 باقي 5 من 6 2
P2 2 5
P3 8 1
P4 3 0
P5 باقي 3 من 4 4

SJF الاستباقي

الخطوة 8) عند الزمن 10، ستنتهي العملية P5 من تنفيذها. تتم مقارنة زمن التنفيذ للعمليتين P1 وP3. يتم تنفيذ العملية P1 لأن زمن تنفيذها أقصر.

SJF الاستباقي

الخطوة 9) عند الزمن 15، تنتهي العملية P1 من تنفيذها. تبقى العملية P3 فقط، وستبدأ هي التنفيذ.

SJF الاستباقي

الخطوة 10) عند الزمن = 23، ينهي البرنامج P3 تنفيذه.

SJF الاستباقي

الخطوة 11) لنحسب متوسط ​​وقت الانتظار للمثال أعلاه.

Wait time
P4 = 0 - 0 = 0
P1 = (3 - 2) + 6 = 7
P2 = 5 - 5 = 0
P5 = 4 - 4 + 2 = 2
P3 = 15 - 1 = 14
Average Waiting Time = (0 + 7 + 0 + 2 + 14)/5 = 23/5 = 4.6

مزايا SJF

فيما يلي فوائد/مزايا استخدام طريقة SJF:

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

عيوب/سلبيات SJF

فيما يلي بعض عيوب/سلبيات خوارزمية SJF:

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

الأسئلة الشائعة

خوارزمية SRTF (أقصر وقت متبقٍ أولاً) هي ببساطة النسخة الاستباقية من خوارزمية SJF. في خوارزمية SJF، تنتهي المهمة الجارية قبل اختيار المهمة التالية. أما في خوارزمية SRTF، فيمكن لمهمة جديدة ذات وقت متبقٍ أقصر أن تستبق العملية الجارية.

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

نعم. من المؤكد أن خوارزمية SJF هي الأمثل لأنها تُنتج أقل متوسط ​​ممكن لوقت الانتظار لمجموعة معينة من العمليات. مع ذلك، لا يصح هذا إلا إذا كانت أوقات التنفيذ معروفة مسبقًا، وهو أمر نادر الحدوث عمليًا.

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

ربما. يواجه نظام SJF صعوبة في الجدولة قصيرة المدى نظرًا لعدم معرفة أوقات الذروة. قد يُحسّن الذكاء الاصطناعي الذي يتنبأ بالذروات في الوقت الفعلي من جدوى استخدام SJF، ولكن يجب أن تبقى تكلفة التنبؤ والأخطاء منخفضة بما يكفي للحفاظ على جدوى قرار الجدولة.

تلخيص هذه التدوينة بـ: