You are on page 1of 45

‫جدولة وحدة اﳌعاﳉة‬

CPU Scheduling

Chapter 5
22/03/2018 Operating Systems DR.Mamoun Younes 166
Lecture 8 and 9

22/03/2018 Operating Systems DR.Mamoun Younes 167


‫جدولة وحدة المعالجة المركزية‬
‫‪CPU scheduling‬‬
‫• إن جدول ة وح دة المعالج ة ه ي أس اس نظ م التش غيل المتع ددة البرمج ة‪ ،‬حي ث يس تطيع نظ ام‬
‫التشغيل من خﻼل تبديل التنفيذ بين اﻹجرائيات‪ ،‬من جعل الحاسوب أكثر إنتاجية‪.‬‬
‫• إن الهدف اﻷساسي من تعدد البرمجة هو أن يكون لدينا دوم ا ً إجرائي ة تنف ذ‪ ،‬وذل ك لرف ع مع دل‬
‫استخدام وحدة المعالجة إلى أعلى حد ممكن‪ ،‬ففي نظام أحادي المعالج‪ ،‬ﻻ يمكن وجود أكث ر م ن‬
‫إجرائي ة واح دة ف ي ح ال التنفي ذ ‪ ،‬وإذا وج دت أكث ر م ن إجرائي ة ف ي النظ ام‪ ،‬ف إن واح دة منه ا‬
‫ستكون في حالة التنفيذ‪ ،‬وأما البقية فستنتظر إلى أن تحرر وحدة المعالجة وتعاد جدولتها‪.‬‬
‫• يقوم نظام التشغيل بانتقاء إحدى اﻹجرائي ات الج اهزة للتنفي ذ‪ ،‬وعن دما تص بح وح دة المعالج ة‬
‫في حالة راحة يجري اتخاذ قرارات الجدولة في الظروف التالية‪:‬‬
‫• تبدل حالة إجرائية من حالة التنفيذ إلى حال ة اﻻنتظ ار‪ ،‬أو م ن حال ة التنفي ذ إل ى حال ة الجاهزي ة‪ ،‬أو م ن‬
‫حالة اﻻنتظار إلى حالة الجاهزية‪ ،‬أو عند انتهاء اﻹجرائية‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪168‬‬


‫المجدوﻻت في وحدة المعالجة‬
‫‪schedulers‬‬
‫• مهم ة المج دول ه و تنظ يم دخ ول اﻹجرائي ات إل ى المع الج ‪ ،‬هنال ك ثﻼث ة أن واع م ن‬
‫المجدوﻻت‪ ،‬ولكل مجدول عمل يقوم به ‪:‬‬
‫‪ .1‬المج دول طوي ل اﻷم د )مج دول اﻷعم ال( ‪ :Long term scheduler‬يخت ار م ن ب ين‬
‫مجموعة اﻹجرائيات المراد تنفيذها‪ ،‬والموجودة عل ى الق رص الص لب‪ ،‬م ن أج ل تحميله ا‬
‫في الذاكرة لبدء تنفيذها‪ .‬وتكون الفترة ب ين اختي ار إجرائي ة وأخ رى ع دة دق ائق ‪ .‬وي تحكم‬
‫بعدد البرامج في الذاكرة ‪ ،‬فالمجدول يقوم بـ ‪:‬‬
‫‪‬اختيار اﻹجرائيات التي ستحمل في الذاكرة )إدخال اﻹجرائيات إلى صف اﻻنتظار(‪.‬‬
‫‪‬يحدد أي إجرائية ستبدأ اعتمادا ً على الترتيب واﻷفضلية‪.‬‬
‫‪‬ﻻ يُستخدم في أنظمة التقسيم الزمني ) ‪. ( Time sharing systems‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪169‬‬


‫‪ .2‬المج دول متوس ط اﻷم د ‪ : Medium term scheduler‬يض اف ف ي بع ض نظ م‬
‫التش غيل )خاص ة نظ م المش اركة ب زمن المع الج(‪ ،‬حي ث يعتم د عل ى إزال ة اﻹجرائي ات‬
‫م ن‪/‬إل ى ال ذاكرة أي التب ديل ب ين اﻹجرائي ات المنف ذة والم راد تنفي ذها‪ ،‬م ن أج ل تحس ين‬
‫اﻹجرائيات التي يجري تنفيذها ‪ ،‬فالمجدول ‪:‬‬
‫‪‬يجدول اﻹجرائيات بنا ًء على الموارد التي تحتاج )ذاكرة‪ /‬دخل‪/‬خرج (‪.‬‬
‫‪‬يقوم بتعليق ‪suspend‬اﻹجرائيات التي لم تتوفر لها مواردها حاليا‪.‬‬
‫‪‬ع ادة تك ون ال ذاكرة ذات م ورد مح دود وهن ا يعم ل م دير ال ذاكرة كمج دول متوس ط اﻷم د )اس تخدام‬
‫الذاكرة اﻻفتراضية (‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪170‬‬


‫‪ .3‬المج دول قص ير اﻷم د )مج دول وح دة المعالج ة( ‪ :Short term scheduler‬يخت ار‬
‫إجرائية من بين اﻹجرائيات الجاهزة للتنفيذ‪ ،‬وذل ك لك ي ت ُس ند إل ى وح دة المعالج ة‪ ،‬والف رق‬
‫اﻷساس ي ب ين المج دولين ه و ف ي ت واتر تنفي ذهما‪ ،‬فالمج دول قص ير اﻷم د ينتخ ب إجرائي ة‬
‫جديدة ً لوحدة المعالجة بتواتر كبير )يستخدم مرة على اﻷقل كل ‪ 100‬ميلي ثانية(‪ ،‬بينما ينفذ‬
‫المجدول طويل اﻷمد بتواتر أقل بكثير )من مرتبة دقائق(‪ ،‬فهو غالبا ًيُس تدعى عن دما تغ ادر‬
‫إجرائية ما النظام‪.‬‬
‫‪‬يقوم المجدول باختيار إجرائية من اﻹجرائيات الموج ودة بال ذاكرة والج اهزة للتنفي ذ ) ‪ready queue‬‬
‫( وحجز وحدة المعالجة لها‪.‬‬
‫‪ ‬تحديد اﻹجرائية التالية التي ستستخدم وحدة المعالجة بعد انتهائها من اﻹجرائية الحالية كما هو مبين‬
‫في الشكل )‪. (2‬‬
‫‪ ‬يجب أن يكون المجدول سريع جدا ً‪.‬‬
‫‪ ‬إذا احتاجت إجرائية مورد أو دخل‪/‬خرج ستزال من وحدة المعالجة وتحول إلى حال ة اﻻنتظ ار وإدخ ال‬
‫إجرائية أخرى من صف اﻻنتظار إلى وحدة المعالجة‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪171‬‬


Running

‫( أنواع المجدوﻻت‬1)‫يبين الشكل‬


22/03/2018 Operating Systems DR.Mamoun Younes 172
‫يبين الشكل)‪ (2‬مجدول وحدة المعالجة المركزية‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪173‬‬
‫• يتخذ المجدول قراراته عند ما تتحول اﻹجرائية من‪:‬‬
‫من حالة التنفيذ ‪ running‬إلى حالة اﻻنتظار ‪.waiting‬‬ ‫‪.1‬‬
‫من حالة التنفيذ ‪ running‬إلى حالة الجاهزية ‪ready‬‬ ‫‪.2‬‬
‫من حالة اﻻنتظار ‪ waiting‬إلى حالة جاهزية ‪ready‬‬ ‫‪.3‬‬
‫منتهية ‪Terminates‬‬ ‫‪.4‬‬
‫• في الحالتين ‪ 1‬و ‪ 4‬ستخرج اﻹجرائية إجباريا ً إما ﻻنتهائها أو ﻷنها تحتاج دخل أو خرج‪،‬‬
‫في هذه الحالة ﻻبد للمجدول من اختيار إجرائية بديلة‪ ،‬فليس لديه خيار آخر‪ .‬في هذه الحال‬
‫نقول أن المجدول ‪. non-preemptive .‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪174‬‬


‫• أم ا ف ي الح التين ‪ 4‬و‪ 3‬ف إن اﻹجرائي ة تخ رج اختي ارا ً‪ ،‬وق د تتواص ل‪ ،‬هن ا للمج دول ح ق‬
‫اﻻختيار في إخراجها أو ﻻ‪ ،‬هنا نقول أن المجدول قابل للتوقف ‪. preemptive‬‬

‫مﻼحظة ‪:‬‬
‫• الجدولة غير قابلة للتوقف ‪ : non-preemptive scheduling‬عند ما تدخل إجرائية‬
‫المعالج وتبدأ التنفيذ فإنها لن تترك وحدة المعالجة أبدا ً إﻻ في إحدى الحالتين ‪:‬‬
‫اﻻكتمال ‪.‬‬ ‫‪.1‬‬
‫التحول إلى حالة اﻻنتظار ‪.‬‬ ‫‪.2‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪175‬‬


‫‪‬المرسل ‪Dispatcher‬‬
‫• المرسل هو جزء من المجدول يقوم بإرسال اﻹجرائيات التي يختارها المجدول قصير اﻷمد‬
‫) مجول وحدة المعالجة ( ومن وظائفه‪:‬‬
‫‪‬تبديل السياق ‪ : switching context‬حفظ بيانات اﻹجرائية الموقفة وتحميل بيانات اﻹجرائية الت ي‬
‫تم اختيارها لتعمل في وحدة المعالجة ‪.‬‬
‫‪‬التحول إلى وضع المستخدم ‪. user mode‬‬
‫‪‬القفز إلى الموقع المناسب في برنامج المستخدم ﻹعادة تشغيل البرنامج‪.‬‬
‫• المرسل ﻻبد من أن يكون سريعا ً جدا ً‪ ،‬ﻷنه سيعمل مع كل ﻹجرائية‪.‬‬
‫• زمن تلبث اﻹرسال ‪ : Dispatch latency‬هو الزمن الذي يس تغرقه المرس ل ف ي توقي ف‬
‫إجرائية وتشغيل أخرى )تبديل إجرائية (‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪176‬‬


22/03/2018 Operating Systems DR.Mamoun Younes 177
‫تحسين أداء وحدة المعالجة‬

‫• تعتبر وحدة المعالجة ال ‪CPU‬أهم الموارد التي تتزاحم عليه ا اﻻجرائي ات‪ ،‬ل ذلك ك ان ﻻ ب د‬
‫م ن إيج اد خوارزمي ات لترتي ب وتنظ يم عملي ات الحص ول عل ى ه ذا الم ورد م ن قب ل‬
‫اﻻجرائيات ‪ ،‬ويسمى ذلك بجدولة وحدة المعالجة المركزية ويقوم به ا مك ون برمج ي يس مى‬
‫المجدول‪ ،‬ويسعى المجدول لتحسين أداء وحدة المعالجة لتحقيق اﻷهداف التالية‪:‬‬
‫زيادة نسبة استثمار وحدة المعالجة المركزية ‪CPU utilization‬‬ ‫‪.1‬‬
‫زيادة اﻹنتاجية )عدد اﻻجرائيات التي يتم إنجازها خﻼل فترة زمنية محددة(‬ ‫‪.2‬‬
‫التسريع باﻻستجابة لﻺجرائيات ‪ :‬أي جعل العمليات تبدأ بالحصول على أح د مخرجاته ا ف ي أس رع‬ ‫‪.3‬‬
‫وقت ممكن ‪.‬‬
‫التقليل من زمن انتظار اﻹجرائيات في الحصول على وحدة المعالجة ‪.‬‬ ‫‪.4‬‬
‫التقليل من زمن اﻻكتمال أو الزمن الكلي لﻺجرائية وهو الفترة الزمنية الفاص لة ب ين لحظ ة وص ول‬ ‫‪.5‬‬
‫اﻹجرائية إلى رتل اﻹجرائيات الجاهزة ولحظة اكتمال تنفيذها )أي اﻻنتهاء من التنفيذ( ‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪178‬‬


‫معايير الجدولة‬
‫• تتمتع خوارزميات الجدول ة المختلف ة لوح دات المعالج ة بخص ائص مختلف ة‪ ،‬ل ذلك يج ب اختي ار‬
‫الخوارزمية اﻷنسب لﻼستخدام في حالة معينة‪.‬‬
‫• المعايير المستخدمة للمقارنة بين الخوارزميات‪:‬‬
‫‪‬معدل استخدام وحدة المعالجة‪ :‬يجب أن تكون وحدة المعالجة مشغولة قدر اﻹمكان ﻻستغﻼلها بالشكل اﻷمثل‬
‫‪‬معدل اﻹنتاجية)التدفق(‪ :‬عدد اﻹجرائيات التي يتم تنفيذها في واحدة الزمن‪.‬‬
‫‪‬ال زمن الكل ي‪ :‬ه و ال زمن ال ﻼزم لتنفي ذ اﻹجرائي ة‪ ،‬أي ال زمن ب ين طل ب تنفي ذ اﻹجرائي ة وإنهائه ا ويس اوي ‪:‬‬
‫الزمن الكلي= زمن التنفيذ ‪ +‬زمن اﻻنتظار ‪.‬‬
‫‪‬زمن اﻻنتظار‪ :‬هو الوقت الذي تقضيه إجرائية منتظرة في رتل الج اهزات )يس اوي مجم وع فت رات اﻻنتظ ار‬
‫في رتل الجاهزات(‪.‬‬
‫‪ ‬زمن اﻻستجابة‪ :‬الزمن بين إرسال طلب وحدوث أول استجابة )الفترة الزمنية قبل حدوث اﻻستجابة(‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪179‬‬


‫خوارزمية الجدولة )القادم أوﻻً – يُخدّم أوﻻً ‪(FCFS‬‬
‫)‪First-come First-served (FCFS‬‬
‫• تعتبر هذه الخوارزمية من أبسط خوارزميات جدولة وحدة المعالجة‪ ،‬فاﻹجرائية التي تطل ب‬
‫وحدة المعالجة أوﻻ‪ ،‬هي التي تحصل عليها أوﻻً ‪.‬‬
‫• تنف ذ اﻹجرائي ات حس ب ترتي ب وص ولها لوح دة المعالج ة بواس طة المج دول قص ير اﻷم د‪،‬‬
‫حيث تنفذ أول عملية وصلت إلى صف اﻻنتظار أوﻻً ثم التي وصلت بعدها ثانيا‪ ،‬وهكذا‪.‬‬
‫• وهي خوارزمية بسيطة في عملها وواضحة‪.‬‬
‫• من الناحية التقنية يمكن تحقيق هذه الخوارزمية من خﻼل رتل‪ ،‬فعند دخول إجرائية إلى رتل‬
‫الجاهزي ات‪ ،‬ت ربط كتل ة ال تحكم باﻹجرائي ة الخاص ة به ا إل ى م ؤخرة الرت ل ‪ ،‬وعن د تحري ر‬
‫وحدة المعالجة‪ ،‬يجري اسنادها إلى اﻹجرائية التي في مقدمة الرتل‪.‬‬
‫• الخوارزمي ة مناس بة لﻺجرائي ات الكبي رة عن دما تج د فرص ة للتنفي ذ‪ ،‬وتس بب مش كلة‬
‫لﻺجرائيات القصيرة إذا كانت خلف إجرائيات كبيرة ‪.‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪180‬‬
‫• سيئات هذه الخوارزمية‪:‬‬
‫‪‬ما إن تعطى وحدة المعالجة إلى إجرائية ما حتى تحتكره ا‪ ،‬وﻻ تحرره ا إﻻ عن د انته اء‬
‫التنفيذ أو طلب عملية دخل‪/‬خرج )بينما من الضروري حص ول اﻹجرائي ات عل ى وح دة‬
‫المعالجة خﻼل فترات زمنية نظامية(‪.‬‬
‫‪‬قد يحدث انتظار مجموعة من اﻹجرائي ات الص غيرة‪ ،‬خ روج إجرائي ة كبي رة م ن وح دة‬
‫المعالجة‪ ،‬وهذا ما يخفض من معدل استخدام وحدة المعالجة والتجهيزات‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪181‬‬


‫مثال ‪Example‬‬
‫• الجدول التالي يوضح إجرائيات في صف اﻻنتظار ونريد تنفيذها حسب خوارزمية القادم‬
‫أوﻻ ً يخدم أوﻻ ً‪.‬‬
‫• حيث يمثل العمود اﻷول اسم اﻹجرائية بينما العمود الثاني يمثل الزمن الذي تحتاجه كل‬
‫إجرائية لتكمل عملها داخل المعالج‪ ،‬والمطلوب ‪:‬‬
‫اﻹجرائية‬ ‫الزمن‬ ‫‪ .1‬احسب متوسط زمن اﻻنتظار ‪. waiting time‬‬
‫‪P1‬‬ ‫‪24‬‬ ‫‪ .2‬احسب متوسط زمن اﻻكتمال ‪. completion time‬‬
‫‪P2‬‬ ‫‪3‬‬ ‫‪ .3‬احسب متوسط زمن اﻻنتظار إذا كان ترتيب الوصول‬
‫‪P3‬‬ ‫‪3‬‬ ‫عكسي ) ‪ p2‬ثم ‪ p3‬ثم ‪ ( p1‬وضح الفرق بين المتوسطين‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪182‬‬


‫‪ ‬الحل ‪:‬‬
‫إذا وصلت العمليات بالترتيب ‪ P1‬ثم ‪ P2‬ثم ‪ ،P3‬وتم تخديمها بترتيب القادم أوﻻً يخدم أوﻻً‪،‬‬
‫فإن المجدول سينفذ العمليات في وحدة المعالجة حسب ترتيبها ‪ ،‬لنرسم مخطط غانت‬
‫‪ Gantt Chart‬التالي ‪:‬‬

‫‪ .1‬متوسط زمن اﻻنتظار ‪:‬‬


‫‪(0+24+27)/3 = 17 mS‬‬
‫‪ .2‬متوسط زمن اﻻكتمال ‪:‬‬
‫‪( 24 + 27 + 30 ) / 3 = 27 mS‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪183‬‬


‫‪ .3‬إذا وصلت اﻹجرائيات بالترتيب العكسي فإن شكل اﻹجرائيات داخل وحدة المعالجة‬
‫سيكون كما في الشكل التالي لمخطط غانت ‪:‬‬

‫متوسط زمن اﻻنتظار ‪:‬‬ ‫‪.I‬‬


‫‪(0+3+6)/3 = 3 mS‬‬
‫‪ .II‬متوسط زمن اﻻكتمال ‪:‬‬
‫‪( 3 + 6 + 30 ) / 3 = 13 mS‬‬
‫• حيث نﻼحظ أن متوسط زم ن اﻻنتظ ار إذا نف ذت اﻹجرائي ات الكبي رة ف ي النهاي ة أفض ل م ن‬
‫متوسط زمن اﻻنتظار إذا تم تنفيذ اﻹجرائيات الكبيرة أوﻻ‪.‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪184‬‬
‫خوارزمية الجدولة )اﻷقصر عمﻼً أوﻻً – ‪(SJF‬‬
‫)‪Shortest-Job-First (SJF‬‬
‫• تربط هذه الخوارزمية بكل إجرائية دفعة الـ ‪CPU‬التالية المتعلقة بها‪ ،‬فعندما تتحرر وح دة‬
‫المعالج ة تعط ی لﻺجرائي ة ذات دفع ة التنفي ذ التالي ة اﻷص غر زمن ا ‪ ،‬وإذا وج دت إجرائيت ان‬
‫لهما طول دفعة واحد يجري اﻻختيار حسب ‪. FCFS‬‬
‫• فإن المجدول سيختار اﻹجرائية التي تحتاج زمن أقل أوﻻً‪.‬‬
‫• إن هذه الخوارزمية تحقق أصغر زمن انتظار وسطي‪ ،‬لمجموعة من اﻹجرائي ات المعط اة‪،‬‬
‫فمن خﻼل تمري ر إجرائي ة قب ل إجرائي ة أخ رى أط ول منه ا‪ ،‬يقص ر زم ن انتظ ار اﻹجرائي ة‬
‫القصيرة‪ ،‬بدﻻً من تطويل زمن انتظار اﻹجرائية الطويلة ‪.‬‬
‫• لكن الصعوبة الحقيقية في هذه الخوارزمية هي معرفة مدة الطلب التالي لوحدة المعالج ة‪،‬‬
‫أي معرف ة ط ول الوق ت ال ذي س تحتاجه العملي ة داخ ل وح دة المعالج ة مس بقا ‪،‬فغالب ا ﻻ يعل م‬
‫المجدول ذلك مما يصعب معرفة اﻹجرائية اﻷقصر‪.‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪185‬‬
‫• سيكون اﻷداء ضعيف في حالة وصول إجرائيات قصيرة بعد بدء تنفيذ إجرائية طويلة‪.‬‬
‫• كذلك قد يحدث حرمان لﻺجرائيات الطويلة )تحرم من التنفيذ لوجود إجرائيات قصيرة(‪.‬‬
‫• يقدم خدمة جيدة لﻺجرائيات القصيرة‪.‬‬
‫• تفشل الخوارزمية مع اﻹجرائيات التي كانت سابقا قصيرة لكنها أصبحت اﻵن طويلة ‪.‬‬
‫‪ ‬تنقسم الخوارزمية إلى نوعين هما ‪:‬‬
‫‪ .1‬غي ر قابل ة للتوق ف ‪ : Non-preemptive‬ف إذا وردت إجرائي ة جدي دة إل ى رت ل‬
‫الجاهزيات‪ ،‬وكانت دفع ة ال ـ ‪ CPU‬التالي ة له ا أقص ر مم ا بق ي لﻺجرائي ة الت ي يج ري‬
‫تنفيذها ‪ ،‬تتابع اﻹجرائية تنفيذها دون توقف‪ ،‬حتى انتهاء الفترة المخصصة لها‪.‬‬
‫‪ .2‬قابلة للتوقف ‪ : Preemptive‬إذا وصلت إجرائية جديدة إلى صف اﻻنتظار وكان‬
‫زمنها أقص ر م ن ال زمن المتبق ي لﻺجرائي ة الت ي تنف ذ حالي ا بالمع الج س يقوم المج دول‬
‫بإيق اف اﻹجرائي ة الت ي تنف ذ‪ ،‬وي تم اس ناد وح دة المعالج ة إل ى اﻹجرائي ة الجدي دة الت ي‬
‫وصلت حديثا ً ‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪186‬‬


‫مثال ‪Example 1‬‬
‫• الجدول التالي يوضح اﻹجرائيات في صف اﻻنتظار ونريد تنفيذها حسب خوارزمية ‪، SJF‬‬
‫وغير قابلة للتوقيف والتي وصلت في نفس الوقت )أي دون اعتبار لزمن الوصول(‪.‬‬
‫• والمطلوب ‪:‬‬
‫‪ .1‬ارسم مخطط غانت‬
‫اﻹجرائية‬ ‫الزمن‬ ‫‪ .2‬احسب متوسط زمن اﻻنتظار ‪. waiting time‬‬
‫‪Burst time‬‬
‫‪ .3‬احسب متوسط زمن اﻻكتمال ‪. completion time‬‬
‫‪P1‬‬ ‫‪6‬‬
‫‪P2‬‬ ‫‪8‬‬
‫‪P3‬‬ ‫‪7‬‬
‫‪P4‬‬ ‫‪3‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪187‬‬
: ‫ الحل‬

: ‫ متوسط زمن اﻻنتظار‬.1


( 0 + 3 + 9 + 16 ) / 4 = 7 mS
: ‫ متوسط زمن اﻻكتمال‬.2
( 3 + 9 + 16 + 24 ) / 4 = 13 mS

22/03/2018 Operating Systems DR.Mamoun Younes 188


‫مثال ‪Example 2‬‬
‫• الجدول التالي يوضح اﻹجرائيات في صف اﻻنتظار ونريد تنفيذها حسب خوارزمية ‪، SJF‬‬
‫والقابلة للتوقيف والتي وصلت في أزمان مختلفة ‪.‬‬
‫• والمطلوب ‪:‬‬
‫اﻹجرائية‬ ‫زمن‬ ‫الزمن‬
‫‪ Burst time‬الوصول‬ ‫‪ .1‬ارسم مخطط غانت‬
‫‪ .2‬احسب متوسط زمن اﻻنتظار ‪. waiting time‬‬
‫‪P1‬‬ ‫‪0‬‬ ‫‪8‬‬ ‫‪ .3‬احسب متوسط زمن اﻻكتمال ‪. completion time‬‬
‫‪P2‬‬ ‫‪1‬‬ ‫‪4‬‬
‫‪P3‬‬ ‫‪2‬‬ ‫‪9‬‬
‫‪P4‬‬ ‫‪3‬‬ ‫‪5‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪189‬‬


‫‪ ‬الحل ‪:‬‬

‫‪ ‬زمن انتظار اﻹجرائية = زمن اﻻنتظار الكلي – زمن الوصول‬


‫‪ ‬زمن انتظار ‪P1‬‬
‫‪(0+9)–0=9‬‬
‫‪‬زمن انتظار ‪P2‬‬
‫‪1– 1 = 0‬‬
‫‪‬زمن انتظار ‪P3‬‬
‫‪17– 2 = 15‬‬
‫‪‬زمن انتظار ‪P4‬‬
‫‪5– 3 = 2‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪190‬‬


: ‫ متوسط زمن اﻻنتظار‬.1
(9 + 0 + 15 + 2 ) / 4 = 6.75 mS
: ‫ متوسط زمن اﻻكتمال‬.2
( 17 + 5 + 26 + 10 ) / 4 = 14.5 mS

22/03/2018 Operating Systems DR.Mamoun Younes 191


‫مثال ‪Example 3‬‬
‫• مثال آخر على إجرائيات لم تصل في وقت واحد باستخدام خوارزمية اﻷقصر أوﻻً غير‬
‫قابلة للتوقف ‪.‬‬
‫• الجدول التالي يوضح اﻹجرائيات في صف اﻻنتظار ونريد تنفيذها حسب خوارزمية ‪، SJF‬‬
‫وغيرالقابلة للتوقيف والتي وصلت في أزمان مختلفة ‪.‬‬
‫العملية‬ ‫زمن‬ ‫الزمن‬
‫• والمطلوب ‪:‬‬
‫‪ Burst time‬الوصول‬
‫‪P1‬‬ ‫‪0‬‬ ‫‪7‬‬ ‫‪ .1‬ارسم مخطط غانت‬
‫‪P2‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪ .2‬احسب متوسط زمن اﻻنتظار ‪. waiting time‬‬
‫‪P3‬‬ ‫‪4‬‬ ‫‪1‬‬ ‫‪ .3‬احسب متوسط زمن اﻻكتمال ‪. completion time‬‬
‫‪P4‬‬ ‫‪5‬‬ ‫‪4‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪192‬‬


‫‪ ‬الحل ‪:‬‬

‫‪‬زمن انتظار اﻹجرائية = زمن اﻻنتظار الكلي – زمن الوصول‬


‫‪ ‬زمن انتظار ‪P1‬‬
‫‪0 - 0 = 10‬‬
‫‪‬زمن انتظار ‪P2‬‬
‫‪8– 2 = 6‬‬
‫‪‬زمن انتظار ‪P3‬‬
‫‪7– 4 = 3‬‬
‫‪‬زمن انتظار ‪P4‬‬
‫‪12– 5 = 7‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪193‬‬
: ‫ متوسط زمن اﻻنتظار‬.1
(0 + 6 + 3 + 7 ) / 4 = 4 mS
: ‫ متوسط زمن اﻻكتمال‬.2
(7 + 8 + 12 + 16 ) / 4 = 10.75 mS

22/03/2018 Operating Systems DR.Mamoun Younes 194


‫مثال ‪Example 4‬‬
‫• هنا سنحل المثال )‪ (3‬السابق بطريقة اﻷقصر أوﻻ القابلة للتوقف ‪.‬‬
‫• الجدول التالي يوضح اﻹجرائيات في صف اﻻنتظار ونريد تنفيذها حسب خوارزمية ‪، SJF‬‬
‫القابلة للتوقيف والتي وصلت في أزمان مختلفة ‪.‬‬
‫• والمطلوب ‪:‬‬
‫العملية‬ ‫زمن‬ ‫الزمن‬
‫‪ Burst time‬الوصول‬ ‫‪ .1‬ارسم مخطط غانت‬
‫‪P1‬‬ ‫‪0‬‬ ‫‪7‬‬ ‫‪ .2‬احسب متوسط زمن اﻻنتظار ‪. waiting time‬‬
‫‪P2‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪ .3‬احسب متوسط زمن اﻻكتمال ‪completion time‬‬
‫‪P3‬‬ ‫‪4‬‬ ‫‪1‬‬
‫‪P4‬‬ ‫‪5‬‬ ‫‪4‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪195‬‬


‫‪ ‬الحل ‪:‬‬

‫‪‬زمن انتظار اﻹجرائية = زمن اﻻنتظار الكلي – زمن الوصول‬


‫‪ ‬زمن انتظار ‪P1‬‬
‫‪( 0 +( 11 -2 ) )- 0 = 9‬‬
‫‪‬زمن انتظار ‪P2‬‬
‫‪( 2 + ( 5– 2) ) - 2 = 1‬‬
‫‪‬زمن انتظار ‪P3‬‬
‫‪4– 4 = 0‬‬
‫‪‬زمن انتظار ‪P4‬‬
‫‪7– 5 = 2‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪196‬‬
: ‫ متوسط زمن اﻻنتظار‬.1
(9 + 1 + 0 + 2 ) / 4 = 3 mS
: ‫ متوسط زمن اﻻكتمال‬.2
(16 + 7 + 5 + 11 ) / 4 = 9.75 mS

22/03/2018 Operating Systems DR.Mamoun Younes 197


‫خوارزمية الجدولة )حسب اﻷولوية (‬
‫‪Priority Scheduling‬‬
‫في خوارزمية الجدولة وفق اﻷولوية‪ ،‬تحدد أولوية بكل إجرائي ة‪ ،‬ويج ري اختي ار اﻹجرائي ة‬ ‫•‬
‫ذات اﻷولوية العليا‪.‬‬
‫نﻼحظ أن خوارزمية ‪SJF‬هي حالة خاصة من خوارزمية الجدولة وف ق اﻷولوي ة م ع اعتب ار‬ ‫•‬
‫أولوية اﻹجرائية هي مقلوب زمن دفعة الـ ‪CPU‬التالية‪.‬‬
‫يمك ن أن تع رف اﻷولوي ات إم ا داخلي ا ً أو خارجي ا‪ ً،‬حي ث تس تخدم اﻷولوي ات المعرف ة داخلي ا ً‬ ‫•‬
‫مقادير قابلة للقياس )مثل الحدود الزمنية‪ ،‬متطلبات الذاكرة‪ ،‬عدد الملف ات المفتوح ة( م ن أج ل‬
‫حساب اﻷولوية‪ ،‬أما اﻷولويات الخارجية فيجري تعينه ا بواس طة مع ايير خارجي ة عل ى نظ ام‬
‫التشغيل )مثل أهمية اﻹجرائية‪ ،‬المبلغ المدفوع(‪.‬‬
‫ك ل إجرائي ة ل ديها رق م مرف ق معه ا‪ ،‬ه ذا ال رقم يح دد أهمي ة اﻹجرائي ة‪ ،‬حي ث س يتم تنفي ذ‬ ‫•‬
‫اﻹجرائية ذات اﻷولوية اﻷعلى )أقل رقم(‪.‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪198‬‬
‫• فإذا كنا نعتبر أن الرقم اﻷقل يمثل اﻷولوية اﻷعلى‪ ،‬فهذا يعني أنه إذا كان لدي إجرائية برقم‬
‫اﻷولوية ‪ 5‬وهنالك إجرائية ب رقم اﻷولوي ة ‪ ،7‬فس ينفذ المج دول اﻹجرائي ة ذات ال رقم ‪ 5‬قب ل‬
‫اﻹجرائية ذات الرقم ‪ ،7‬ﻷن أولويتها أعلى‪ .‬هنالك نوعين هما‪:‬‬
‫‪ .1‬قابلة للتوقف ‪Preemptive‬‬
‫‪ .2‬غير قابلة للتوقف ‪non-preemptive‬‬
‫• المش كلة ف ي خوارزمي ة اﻷولوي ة ه و الحرم ان ‪ ،Starvation‬حي ث ل ن تج د اﻹجرائي ات‬
‫ذات اﻷولوية الدنيا فرصة للتنفيذ داخل المعالج طالما أن هنالك إجرائي ات ذات أولوي ة أعل ى‬
‫منها‪ ،‬حيث سينفذ المعالج اﻹجرائيات ذات اﻷولوية العليا و كلما قرب دور اﻹجرائي ات ذات‬
‫اﻷولوية الدنيا للتنفيذ داخل المعالج قد تصل إجرائيات أخرى لها أولوية أعلى منه ا فتحرمه ا‬
‫من استخدام المعالج‪.‬‬
‫• حل مشكلة الحرمان هو النضوج ‪ ، Aging‬وذلك بزيادة أولوية اﻹجرائية منخفضة اﻷولوي ة‬
‫تدريجياً‪ ،‬مع استمرار بقائها بانتظار ‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪199‬‬


‫مثال ‪Example 1‬‬
‫• الج دول الت الي يوض ح اﻹجرائي ات ف ي ص ف اﻻنتظ ار ونري د تنفي ذها حس ب خوارزمي ة‬
‫اﻷولوية ‪ ،‬غير القابلة للتوقيف والتي وصلت في وقت واحد‪.‬‬
‫• والمطلوب ‪:‬‬
‫العملية‬ ‫رقم‬ ‫الزمن‬ ‫‪ .1‬ارسم مخطط غانت‬
‫اﻷولوية‬
‫‪ .2‬احسب متوسط زمن اﻻنتظار ‪. waiting time‬‬
‫‪P1‬‬ ‫‪3‬‬ ‫‪10‬‬
‫‪ .3‬احسب متوسط زمن اﻻكتمال ‪completion time‬‬
‫‪P2‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪P3‬‬ ‫‪3‬‬ ‫‪2‬‬
‫‪P4‬‬ ‫‪4‬‬ ‫‪1‬‬
‫‪P5‬‬ ‫‪2‬‬ ‫‪5‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪200‬‬
: ‫ الحل‬

: ‫ متوسط زمن اﻻنتظار‬.1


(6 + 0 + 16 + 18 + 1 ) / 5 = 8.2 mS
: ‫ متوسط زمن اﻻكتمال‬.2
(16 + 1 + 18 + 19 + 6 ) / 5 = 12 mS

22/03/2018 Operating Systems DR.Mamoun Younes 201


‫مثال ‪Example 2‬‬
‫• الج دول الت الي يوض ح اﻹجرائي ات ف ي ص ف اﻻنتظ ار ونري د تنفي ذها حس ب خوارزمي ة‬
‫اﻷولوية ‪ ،‬القابلة للتوقيف والتي وصلت في أوقات مختلفة ‪.‬‬
‫العملية‬ ‫رقم‬ ‫الزمن‬ ‫زمن‬ ‫• والمطلوب ‪:‬‬
‫اﻷولوية‬ ‫الوصول‬ ‫‪ .1‬ارسم مخطط غانت‬
‫‪P1‬‬ ‫‪3‬‬ ‫‪10‬‬ ‫‪0‬‬ ‫‪ .2‬احسب متوسط زمن اﻻنتظار ‪. waiting time‬‬
‫‪P2‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪2‬‬
‫‪ .3‬احسب متوسط زمن اﻻكتمال ‪completion time‬‬
‫‪P3‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪4‬‬
‫‪P4‬‬ ‫‪4‬‬ ‫‪1‬‬ ‫‪7‬‬
‫‪P5‬‬ ‫‪2‬‬ ‫‪5‬‬ ‫‪9‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪202‬‬


‫العملية‬ ‫الزمن‬ ‫زمن‬ ‫رقم‬
Burst time ‫الوصول‬ ‫اﻷولوية‬
P1 10 0 3
P2 1 2 1
P3 2 4 3
P4 1 7 4
P5 5 9 2

22/03/2018 Operating Systems DR.Mamoun Younes 203


‫خوارزمية الجدولة ) التقسيم الزمني ‪-‬الدائرية ‪( RR‬‬
‫‪Round Robin (RR) Scheduling‬‬
‫• يتم التعامل في هذه الخوارزمية مع رتل الجاهزيات بطريقة دوارة‪ ،‬وتنتقل وح دة المعالج ة‬
‫بين إجرائيات الرتل‪ ،‬بحيث أن لكل إجرائية مدة زمنية ﻻ تتجاوز حصة زمنية محددة مسبقا‪.‬‬
‫• تبدأ وحدة المعالجة بتنفيذ اﻹجرائية اﻷولى في رتل الجاهزيات‪ ،‬ومن ث م إذا ك ان لﻺجرائي ة‬
‫دفعة وحدة معالجة أقص ر م ن حص ة زمني ة واح دة‪ ،‬عن دها تتخل ى ع ن وح دة المعالج ة عن د‬
‫انتهاء دفعة التنفيذ‪ ،‬وتعود إلى مؤخرة رتل الجاهزات‪.‬‬
‫• أما إذا كانت دفعة وحدة المعالجة أطول من حصة زمنية واحدة‪ ،‬عندها م ع اكتم ال الحص ة‬
‫الزمني ة‪ ،‬تج ري مقاطع ة اﻹجرائي ة‪ ،‬فيتوق ف تنفي ذها ويج ري تب ديل الس ياق م ع اﻹجرائي ة‬
‫اﻷولى في رتل الجاهزيات‪ ،‬بينما تعود هذه اﻹجرائية إلى مؤخرة الرتل‪.‬‬
‫• يعتمد أداء هذه الخوارزمية عل ى حج م الحص ة الزمني ة‪ ،‬ف إذا كان ت كبي رة ج دا ً تتح ول إل ى‬
‫‪ ،FCFS‬وإذا كانت صغيرة جدا ً يصبح هناك تشارك كامل بالمعالج‪.‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪204‬‬
‫• هذا النوع من الخوارزميات صمم خصيصا للنظم الت ي تس تخدم المش اركة ب الزمن ) ‪time‬‬
‫‪ ، (sharing‬فلك ل إجرائي ة حص ة زمني ة داخ ل المع الج تخ رج بع دها م ن المع الج لت دخل‬
‫اﻹجرائية التي تليها فتأخ ذ نف س الحص ة الزمني ة الت ي أخ ذتها اﻹجرائي ة اﻷول ى‪ ،‬وهك ذا ي تم‬
‫تقسيم زمن المعالج بحيث تأخذ كل إجرائية حصة بالمعالج‪ ،‬ثم تبدأ من جديد‪.‬‬
‫• فالخوارزمية تعمل بطريقة تشبه خوارزمية القادم أوﻻ ً يخ دم أوﻻ ً‪ ،‬لك ن م ع إمكاني ة توقي ف‬
‫كل إجرائية إذا اكتملت الفترة الزمنية المقررة لها داخل المعالج ‪ ،‬حيث تحدد الحصة الزمنية‬
‫)‪ ( quantum or time slice‬بقيمة صغيرة تتراوح بين ‪ 10‬إلى ‪ 100‬ملي ثانية‪.‬‬
‫• يق وم المج دول بتقس يم زم ن المع الج ب ين اﻹجرائي ات فتعط ي ك ل إجرائي ة حص ة زمني ة‬
‫محددة داخل المعالج‪ ،‬ويتم تحديد الفت رة الزمني ة لك ل اﻹجرائي ات فيم ا يس مى ‪،Quantum‬‬
‫فإذا كانت قيمة ‪Quantum‬هي ‪ ،10‬فهذا يعني أن المجدول سيسمح لكل عملية أن تنفذ ف ي‬
‫المعالج لمدة ‪ 10‬ملي ثانية‪ ،‬ثم تخرج )ترجع إلى نهاي ة ص ف اﻻنتظ ار(‪ ،‬وت دخل اﻹجرائي ة‬
‫التي تليها‪ ،‬لتأخذ ‪ 10‬ملي ثانية وهكذا‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪205‬‬


‫‪ ‬مﻼحظات ‪:‬‬
‫• إذا كان الزمن الذي تحتاجه العملية أقل من الحصة المقررة‪ ،‬فستأخذ العملية ما تحتاجه من‬
‫الحصة وتخرج لتدخل العملية التي تليها‪.‬‬
‫• مثﻼ إذا كانت العملية تحتاج ‪ 3‬ملي ثانية وكانت الحصة المقررة للعملية هي ‪ 10‬ملي ثانية‪،‬‬
‫فستمكث العملية بالمعالج ‪ 3‬ملي ثانية وليست ‪ 10‬ملي ثانية ‪.‬‬
‫• ﻻ توجد عمليات غير قابلة للتوقف في هذه الخوارزمية فكل العمليات ستجبر على التوقف‬
‫عند اكتمال حصتها بالمعالج‪.‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪206‬‬


‫مثال ‪Example 1‬‬
‫• الج دول الت الي يوض ح اﻹجرائي ات ف ي ص ف اﻻنتظ ار ونري د تنفي ذها حس ب خوارزمي ة‬
‫الجدولة الدائرية وحددت لها حصة زمنية ‪ Quantum‬تساوي ‪. 4 mS‬‬
‫• والمطلوب ‪:‬‬
‫‪ .1‬ارسم مخطط غانت‬
‫اﻹجرائية‬ ‫الزمن‬ ‫‪ .2‬احسب متوسط زمن اﻻنتظار ‪. waiting time‬‬
‫‪Burst time‬‬
‫‪ .3‬احسب متوسط زمن اﻻكتمال ‪completion time‬‬
‫‪P1‬‬ ‫‪24‬‬
‫‪P2‬‬ ‫‪3‬‬
‫‪P3‬‬ ‫‪3‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪207‬‬


‫‪ ‬الحل ‪:‬‬

‫‪ ‬زمن انتظار ‪0 + ( 10 – 4 ) = 6 : P1‬‬


‫‪ ‬زمن انتظار ‪P2 = 4‬‬
‫‪ ‬زمن انتظار ‪p3 = 7‬‬
‫‪ .1‬متوسط زمن اﻻنتظار‬
‫‪( 6 + 4 + 7 ) / 3 = 5.67 mS‬‬
‫‪ .2‬متوسط زمن اﻻكتمال‬
‫‪( 30 + 7 + 10 ) / 3 = 15.67 mS‬‬

‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪208‬‬


‫مثال ‪Example 2‬‬
‫• الج دول الت الي يوض ح اﻹجرائي ات ف ي ص ف اﻻنتظ ار ونري د تنفي ذها حس ب خوارزمي ة‬
‫الجدولة الدائرية وحددت لها حصة زمنية ‪ Quantum‬تساوي ‪. 20 mS‬‬
‫• والمطلوب ‪:‬‬
‫‪ .1‬ارسم مخطط غانت‬
‫اﻹجرائية‬ ‫الزمن‬ ‫‪ .2‬احسب متوسط زمن اﻻنتظار ‪. waiting time‬‬
‫‪Burst time‬‬
‫‪ .3‬احسب متوسط زمن اﻻكتمال ‪completion time‬‬
‫‪P1‬‬ ‫‪53‬‬
‫‪P2‬‬ ‫‪17‬‬
‫‪P3‬‬ ‫‪68‬‬
‫‪P4‬‬ ‫‪24‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪209‬‬
‫‪ ‬الحل ‪:‬‬

‫‪0 + ( 77-20)+( 121-97 ) = 81‬‬ ‫‪ ‬زمن انتظار ‪: P1‬‬


‫‪ ‬زمن انتظار ‪p2 = 20‬‬
‫‪37 + ( 97 – 57 )+ ( 134 – 117 ) = 94‬‬ ‫‪ ‬زمن انتظار ‪: P3‬‬
‫‪57 + ( 117 – 77 ) = 97‬‬ ‫‪ ‬زمن انتظار ‪: P4‬‬
‫• متوسط زمن اﻻنتظار ‪:‬‬
‫‪( 81 + 20 + 94 + 97 ) / 4 = 73 mS‬‬
‫• متوسط زمن اﻻكتمال ‪:‬‬
‫‪(134 + 37 + 162 + 121 ) / 4 = 113.5 mS‬‬
‫‪22/03/2018 Operating Systems‬‬ ‫‪DR.Mamoun Younes‬‬ ‫‪210‬‬

You might also like