الفصل ٥: جدولة المعالج

CS330 - أنظمة التشغيل

خوارزميات الجدولة، مقاييس الأداء، والتحليل

٥.١ المفاهيم الأساسية

جدولة المعالج هي أساس أنظمة التشغيل متعددة البرمجة. بتبديل المعالج بين العمليات، يمكن لنظام التشغيل جعل الكمبيوتر أكثر إنتاجية.

دورة انفجار المعالج والإدخال/الإخراج

تنفيذ العملية يتكون من دورة من تنفيذ المعالج وانتظار الإدخال/الإخراج:

  • انفجار المعالج: عندما يتم تنفيذ العملية في المعالج
  • انفجار الإدخال/الإخراج: عندما تنتظر العملية عملية إدخال/إخراج

تنفيذ العملية يبدأ بانفجار معالج، يتبعه انفجار إدخال/إخراج، ثم انفجار معالج آخر، وهكذا.

جدول المعالج

جدول المعالج يختار من بين العمليات في قائمة الانتظار الجاهزة ويخصص نواة معالج لواحدة منها.

الموزع

الموزع يعطي التحكم في المعالج للعملية التي اختارها الجدول. هذا يتضمن:

  • تبديل السياق
  • التحول إلى وضع المستخدم
  • القفز إلى الموقع المناسب في برنامج المستخدم

كمون التوزيع: الوقت الذي يستغرقه الموزع لإيقاف عملية وبدء تشغيل أخرى.

٥.٢ معايير الجدولة

⚙️ استغلال المعالج

إبقاء المعالج مشغولاً قدر الإمكان. في الأنظمة الحقيقية، يجب أن يتراوح من ٤٠٪ (تحميل خفيف) إلى ٩٠٪ (تحميل ثقيل).

📊 الإنتاجية

عدد العمليات التي تكمل التنفيذ لكل وحدة زمنية. الأكبر هو الأفضل.

⏱️ زمن الإنجاز

مقدار الوقت لتنفيذ عملية معينة. مجموع الفترات التي تقضيها في الانتظار، قائمة الانتظار الجاهزة، التنفيذ، وأداء الإدخال/الإخراج.

⏳ زمن الانتظار

مقدار الوقت الذي قضته العملية في الانتظار في قائمة الانتظار الجاهزة.

💬 زمن الاستجابة

الوقت من تقديم الطلب حتى ظهور أول استجابة. مهم للأنظمة التفاعلية.

الصيغ الرئيسية:

زمن الإنجاز = وقت الإكمال - وقت الوصول
زمن الانتظار = زمن الإنجاز - وقت الانفجار
زمن الاستجابة = أول وقت معالج - وقت الوصول

معايير التحسين

المعيار هدف التحسين
استغلال المعالج تعظيم
الإنتاجية تعظيم
زمن الإنجاز تقليل
زمن الانتظار تقليل
زمن الاستجابة تقليل

٥.٣ الجدولة الاستباقية مقابل غير الاستباقية

قرارات جدولة المعالج قد تحدث عندما:

  1. تنتقل العملية من حالة التشغيل إلى حالة الانتظار (طلب إدخال/إخراج)
  2. تنتقل العملية من حالة التشغيل إلى حالة الجاهزية (مقاطعة)
  3. تنتقل العملية من حالة الانتظار إلى حالة الجاهزية (اكتمال إدخال/إخراج)
  4. تنتهي العملية

الجدولة غير الاستباقية

  • الجدولة فقط في الحالتين ١ و ٤
  • العملية تبقى في المعالج حتى تفرج عنه
  • لا مقاطعة في منتصف التنفيذ
  • أمثلة: FCFS, SJF (غير استباقي)

الجدولة الاستباقية

  • الجدولة في كل الحالات (١، ٢، ٣، ٤)
  • يمكن مقاطعة العملية
  • زمن استجابة أفضل
  • أمثلة: RR, SJF (استباقي), Priority

⚠️ مهم:

تقريبًا كل أنظمة التشغيل الحديثة بما فيها ويندوز، ماك أو إس، لينكس، ويونكس تستخدم خوارزميات جدولة استباقية.

٥.٤ جدولة من يأتي أولاً يُخدم أولاً (FCFS)

خوارزمية FCFS

  • أبسط خوارزمية جدولة معالج
  • العملية التي تطلب المعالج أولاً تُخصص لها المعالج أولاً
  • تُنفذ بقائمة FIFO
  • غير استباقية

مثال ١: FCFS

العملية وقت الانفجار
P1 ٢٤
P2 ٣
P3 ٣

ترتيب الوصول: P1, P2, P3

مخطط جانت:

P1
P2
P3
٠
٢٤
٢٧
٣٠
العملية زمن الانتظار زمن الإنجاز
P1 ٠ ٢٤
P2 ٢٤ ٢٧
P3 ٢٧ ٣٠
المتوسط ١٧ ٢٧

تأثير القافلة

⚠️ تأثير القافلة:

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

📝 تطبيق:

إذا تغير ترتيب الوصول إلى P2, P3, P1:

  • متوسط زمن الانتظار = (٦ + ٠ + ٣) / ٣ = ٣
  • أفضل بكثير من الحالة السابقة!

٥.٥ جدولة الأقصر وظيفةً أولاً (SJF)

خوارزمية SJF

  • ربط كل عملية بطول انفجار المعالج التالي لها
  • جدولة العملية بأقصر وقت انفجار
  • SJF مثالي - يعطي أقل متوسط زمن انتظار
  • يمكن أن تكون استباقية أو غير استباقية

نسختان:

SJF غير استباقية

بمجرد إعطاء المعالج لعملية، لا يمكن استباقها حتى تكمل انفجار المعالج الخاص بها

SJF استباقية (SRTF)

إذا وصلت عملية جديدة بطول انفجار معالج أقل من الوقت المتبقي للعملية الحالية، يتم استباقها. تُعرف أيضًا بأقصر وقت متبقي أولاً

مثال: SJF استباقية

العملية وقت الوصول وقت الانفجار
P1 ٠ ٨
P2 ١ ٤
P3 ٢ ٩
P4 ٣ ٥

مخطط جانت (SJF استباقية):

P1
P2
P4
P1
P3
٠
١
٥
١٠
١٧
٢٦

متوسط زمن الانتظار = [(١٠-١) + (١-١) + (١٧-٢) + (٥-٣)] / ٤ = ٢٦/٤ = ٦.٥

٥.٦ جدولة الأولويات

خوارزمية الأولويات

  • رقم أولوية (عدد صحيح) يُربط بكل عملية
  • المعالج يُخصص للعملية ذات الأولوية الأعلى
  • الاتفاقية: رقم أصغر = أولوية أعلى
  • يمكن أن تكون استباقية أو غير استباقية

مثال: جدولة الأولويات

العملية وقت الانفجار الأولوية
P1 ١٠ ٣
P2 ١ ١
P3 ٢ ٤
P4 ١ ٥
P5 ٥ ٢

مخطط جانت:

P2
P5
P1
P3
P4
٠
١
٦
١٦
١٨
١٩

⚠️ مشكلة - التجويع:

العمليات ذات الأولوية المنخفضة قد لا تُنفذ أبدًا.

✅ حل - التقادم:

مع مرور الوقت، زيادة أولوية العملية.

٥.٧ جدولة Round Robin

خوارزمية Round Robin

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

الأداء:

  • إذا كان q كبيرًا → FIFO (FCFS)
  • إذا كان q صغيرًا → مشاركة المعالج (تظهر كل العمليات وكأنها تعمل في وقت واحد)
  • يجب أن يكون q كبيرًا بالنسبة لوقت تبديل السياق
  • q عادة ١٠-١٠٠ ملي ثانية، تبديل السياق أقل من ١٠ ميكروثانية

مثال: Round Robin (q = ٤)

العملية وقت الانفجار
P1 ٢٤
P2 ٣
P3 ٣

مخطط جانت (الكم الزمني = ٤):

P1
P2
P3
P1
P1
P1
P1
P1
٠
٤
٧
١٠
١٤
١٨
٢٢
٢٦
٣٠
العملية زمن الانتظار زمن الإنجاز
P1 ٦ ٣٠
P2 ٤ ٧
P3 ٧ ١٠
المتوسط ٥.٦٦ ١٥.٦٦

⚠️ اختيار الكم الزمني:

  • صغير جدًا: تبديل سياق كثير، استغلال المعالج يقل
  • كبير جدًا: يصبح FCFS، زمن استجابة سيئ
  • قاعدة عامة: ٨٠٪ من انفجارات المعالج يجب أن تكون أقصر من q

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

قائمة الانتظار الجاهزة مقسمة إلى قوائم منفصلة بناءً على خصائص العملية.

مثال قوائم متعددة:

عمليات النظام (أعلى أولوية)
عمليات تفاعلية
عمليات تحرير تفاعلية
عمليات دفعية
عمليات الطلاب (أقل أولوية)

الخصائص:

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

تسمح للعملية بالتنقل بين القوائم. الفكرة هي فصل العمليات وفقًا لخصائص انفجارات المعالج الخاصة بها.

مثال: ثلاث قوائم

الجدولة:

  1. وظيفة جديدة تدخل Q0 (أعلى أولوية)
  2. تحصل على ٨ ملي ثانية؛ إذا لم تنته، تنتقل إلى Q1
  3. في Q1 تحصل على ١٦ ملي ثانية؛ إذا لم تنته، تنتقل إلى Q2
  4. Q2 هي FCFS (أقل أولوية)

٥.٩ مقارنة الخوارزميات

الخوارزمية استباقية المزايا العيوب الأفضل لـ
FCFS لا بسيطة، عادلة تأثير القافلة، زمن انتظار سيئ أنظمة الدفعات
SJF كلاهما أفضل متوسط زمن انتظار تجويع، تحتاج معرفة وقت الانفجار عند معرفة أوقات الانفجار
Priority كلاهما المهام المهمة أولاً تجويع أنظمة الزمن الحقيقي
Round Robin نعم زمن استجابة جيد، عادلة زمن إنجاز أعلى أنظمة المشاركة الزمنية

٥.١٠ مسألة مثال كامل

مسألة اختبار CS330

تأمل مجموعة العمليات التالية بوقت وصول ٠:

العملية وقت الانفجار الأولوية
P1 ٢ ٢
P2 ١ ١
P3 ٨ ٤
P4 ٤ ٢
P5 ٥ ٣

احسب أوقات الانتظار والإنجاز لـ:

  1. جدولة الأولويات (الرقم الأصغر = أولوية أعلى)
  2. Round Robin (q = ٢)
  3. SJF

الحل: جدولة الأولويات

الترتيب: P2 → P1 → P4 → P5 → P3

العملية زمن الانتظار زمن الإنجاز
P1 ١ ٣
P2 ٠ ١
P3 ١٢ ٢٠
P4 ٣ ٧
P5 ٧ ١٢

الحل: Round Robin (q = ٢)

الترتيب: P1(٢) → P2(١) → P3(٢) → P4(٢) → P5(٢) → P3(٢) → P4(٢) → P5(٢) → P3(٢) → P5(١) → P3(٢)

العملية زمن الانتظار زمن الإنجاز
P1 ٠ ٢
P2 ٢ ٣
P3 ١٢ ٢٠
P4 ٩ ١٣
P5 ١٣ ١٨

الحل: SJF

الترتيب: P2 → P1 → P4 → P5 → P3

العملية زمن الانتظار زمن الإنجاز
P1 ١ ٣
P2 ٠ ١
P3 ١٢ ٢٠
P4 ٣ ٧
P5 ٧ ١٢

٥.١١ أسئلة تطبيقية على طريقة الاختبارات

أسئلة اختيار من متعدد

س١. أي خوارزمية جدولة غير استباقية؟

  • أ) FCFS
  • ب) Round Robin
  • ج) الأولويات (استباقية)
  • د) SRTF

س٢. أي خوارزمية جدولة تعطي أفضل متوسط زمن استجابة؟

  • أ) الأقصر وظيفةً أولاً
  • ب) Round Robin
  • ج) FCFS
  • د) جدولة الأولويات

س٣. إذا كان الكم الزمني صغيرًا جدًا في جدولة RR:

  • أ) استغلال المعالج سيقل
  • ب) الإنتاجية ستزيد
  • ج) زمن الاستجابة سيسوء
  • د) ستصبح FCFS

س٤. أي مشكلة مرتبطة بجدولة الأولويات؟

  • أ) تأثير القافلة
  • ب) التجويع
  • ج) زمن استجابة سيئ
  • د) عبء عالٍ

س٥. جدولة SJF مثالية لأنها تعطي:

  • أ) أقل متوسط زمن انتظار
  • ب) أقصى استغلال للمعالج
  • ج) أفضل زمن استجابة
  • د) أقصى إنتاجية

أسئلة إجابة قصيرة

س٦. عرّف زمن الإنجاز والإنتاجية. (٣ درجات)

الإجابة:

  • زمن الإنجاز: الفاصل الزمني من وقت تقديم العملية إلى وقت اكتمالها.
  • الإنتاجية: عدد العمليات التي تكمل تنفيذها لكل وحدة زمنية.

س٧. ما هو تأثير القافلة في جدولة FCFS؟ (٢ درجات)

الإجابة:

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

س٨. كيف يحل التقادم مشكلة التجويع في جدولة الأولويات؟ (٢ درجات)

الإجابة:

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

٥.١٢ المصطلحات الرئيسية والتعريفات

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

٥.١٣ مخططات من الشرائح

📊 دورة انفجار المعالج والإدخال/الإخراج

[إدراج مخطط يظهر انفجارات المعالج والإدخال/الإخراج المتناوبة]

📊 عملية الموزع

[إدراج مخطط تبديل الموزع من الشرائح]

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

[إدراج مخطط قائمة انتظار متعددة المستويات]

ملاحظة: يرجى توفير المخططات الفعلية من شرائح Chapter_5.pdf لاستبدال هذه العناصر النائبة.