Professional Documents
Culture Documents
نظم - تشغيل - 1 - نظري 5
نظم - تشغيل - 1 - نظري 5
CPU Scheduling
5
د .المثنى خضر
15/11/2023 16
سنتعرف في هذه المحاضرة على تعريف جدولة ال cupواهميتها وخوارزميات الجدولة ال5
: CPU Brustمقدار الوقت التي تستغرقه العملية في استخدام المعالج قبل ان تصبح غير جاهزة (ينتظر ▪
المعالج I/Oليكمل التنفيذ).
: IO Brustمقدار الوقت التي تستغرقه البيانات في التنقل داخل او خارج النظام ▪
يبدأ تنفيذ العملية مع دفقة معالج ) (CPU Burstيتبعها دفقة دخل وخرج ) (I/O Brustوهكذا بالتناوب حتى يطلب
النظام انهاء تنفيذ العملية .
1
نظم تشغيل | 1عملي مشترك
عندما تصبح وحدة المعالجة المركزية خاملة ،فإن مهمة مجدول وحدة المعالجة المركزية (المعروف أيضًا باسم المجدول
قصير األمد) هي اختيار إحدى العمليات الموجودة ضمن رتل الجاهزية وتخصيص المعالج لها ليتم تنفيذها .
انتهاء تنفيذها .تستخدم عند انتهاء العملية او عندما تتحول العملية من حالة التشغيل الى حالة االنتظار .
الجدولة الشفعية :تتعلق بأولوية العمليات فتجبر العملية على المغادرة في أي وقت .تستخدم عند التبديل من حالة
التشغيل الى حالة الجاهزية او عند التبديل من حالة االنتظار الى حالة الجاهزية.
2
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
المرسل Dispatcher
المرسل :المرسل هو الوحدة التي تمنح التحكم في وحدة المعالجة المركزية للعملية المحددة بواسطة المجدول قصير
األمد و يجب أن يكون سريعاً قدر اإلمكان .
تتضمن وظيفته:
.1تبديل السياق (راجع المحاضرة الثالثة)
.2االنتقال الى وضع المستخدم
.3القفز الى الموقع الصحيح في وضع المستخدم إلعادة تشغيل هذا البرنامج
:هو الوقت الذي يستغرقه المرسل إليقاف عملية أولى وبدء تشغيل عملية تأخير االرسال dispatch latency
أخرى .
يجب أن يكون المرسل سريعًا قدر اإلمكان ،حيث يتم تشغيله على كل محول سياق فلهذا يكون زمن تأخير االرسال أكبر
من ال overheadفي تبديل السياق ألنه يحوي على عملية تبديل السياق .Context Switch
3
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
4
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
الية الرسم تعتمد على الخوارزمية التي انفذها ففي حالة ال FCFSومن التعريف ستقوم بتنفيذ العملية P1حتى تنتهي
ومن ثم P2حتى تنتهي و P3حتى تنتهي وهذا ما يوضحه لنا المخطط السابق
االن لحساب متوسط زمن االنتظار نقوم أوال بحساب زمن انتظار كل عملية على حدى . ▪
نعل م ان زمن االنتظار هو مقدار الوقت التي تنتظره العملية في رتل االنتظار (جميع لحظات انتظار العملية خالل تنفيذها
منذ زمن وصولها )
وفي مثالنا وصلت العمليات جميعها في اللحظة 0
• P1وصلت في اللحظة 0وتم تنفيذها في اللحظة 0ف وقت انتظارها هو 0
• P2وصلت في اللحظة 0وتم تنفيذها في اللحظة 24ف وقت انتظارها هو 24
P3وصلت في اللحظة 0وتم تنفيذها في اللحظة 27ف وقت انتظارها هو 27 •
ومنه نستنتج ان متوسط زمن االنتظار هو مجموع ازمنة االنتظار على عدد العمليات
(0+24+27)/3=17
حساب زمن االستخدامية :Turnaround timeمقدار الوقت الالزم لتنفيذ عملية من لحظة وصولها حتى انتهاء وقت
تنفيذها
P1وصلت في اللحظة 0وتم انتهاء تنفيذها في اللحظة 24زمن االستخدامية هو 24 •
P2وصلت في اللحظة 0وتم انتهاء تنفيذها في اللحظة 27زمن االستخدامية هو 27 •
P3وصلت في اللحظة 0وتم انتهاء تنفيذها في اللحظة 30زمن االستخدامية هو 30 •
5
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
ومنه نستنتج ان متوسط زمن االستخدامية هو مجموع االزمنة على عدد العمليات
(24+27+30)/3=27
االن حساب زمن االستجابة : Response timeهو الوقت المستغرق من لحظة وصول العملية حتى بدء اول تنفيذ
لها
ومنه نستنتج ان متوسط زمن االستجابة هو مجموع ازمنة االستجابة على عدد العمليات
(0+24+27)/3=17
نالحظ ان زمن االستجابة يساوي زمن االنتظار الن الخوارزمية غير شفعية وال يوجد أولوية لتنفيذ
العمليات وال يوجد مقاطعة بالتنفيذ .
مثال :
لدينا العمليات P1,P2,P3,P4تصل في اللحظة نفسها (اللحظة )0على الترتيب )من P1حتى )P4ولديها ال Burst
احسب متوسط زمن االنتظار و االستجابة و االستخدامية باستخدام SJF-Non timeالموضح في الجدول
.Preemptive
6
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
نحسب زمن االستجابة وزمن االنتظار وزمن االستخدامية كما فعلنا في ، FCFSفيكون :
كما نعلم ان زمن االستجابة يساوي زمن االنتظار الن الخوارزمية غير شفعية ☺
مثال : 2
ليكن لدينا العمليات P1,P2,P3,P4لها ازمنة وصول مختلفة ولديها ال Burst timeالموضح في الجدول ارسم مخطط
غانت
احسب متوسط زمن االنتظار و االستجابة و االستخدامية باستخدام .SJF- Preemptive
7
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
الحل:
نالحظ هنا ان أوقات الوصول مختلفة وان الخوارزمية شفعية أي ان العملية يمكن مقاطعتها في أي وقت وإدخال عملية
أخرى حسب أولوية الخوارزمية واالولوية في SJFهي ال Burst timeاألقصر وفي مثالنا
وصلت P1في اللحظة 0وال يوجد عملية أخرى لمقارنة األولوية فنقوم بتنفيذها .وصلت العملية P2في اللحظة 1فنقوم
بمقارنة ال Burst timeبين P1و P2
ال Burst timeل P1هو 7وليس 8الن تم تنفيذها من اللحظة 0الى اللحظة 1فنقوم بمقارنة ال Burst timeبين
P1و P2نالحظ ان P2هي صاحبة األولوية الن Burst timeاصغر 7>4 ,فتذهب ال P1الى رتل االنتظار و تنفذ
. P2
فنقوم بالمقارنة بين P1و P2و P3نستنتج ان P2هي األصغر وتتابع تنفيذها وتذهب وصلت ال P3في اللحظة 2
P3الى رتل االنتظار
وصلت P4في اللحظة 3نقوم بالمقارنة مع باقي العمليات ونستنتج ان P2هي األصغر فتتابع تنفيذها
ان عملية المقارنة تحدث في كل لحظة من الزمن والعملية ذات ال Burst timeاألقصر ستنفذ .
فيكون مخطط غانت هو
• ان العملية P1دخلت في اللحظة 0ونفذت في نفس اللحظة وفي اللحظة 1ذهبت الى رتل االنتظار ولم يعاد
تنفيذها حتى اللحظة 10واكملت تنفيذها فهي انتظرت من اللحظة 1حتى اللحظة 10فمجموع أوقات االنتظار هو
.9
• العملية P2وصلت في اللحظة 1ونفذت في نفس اللحظة حتى أكملت تنفيذها فمجموع أوقات االنتظار هو 0
• العملية P3وصلت في اللحظة 2ونفذت في اللحظة 17فمجموع أوقات االنتظار هو 15
• العملية P4وصلت في اللحظة 3ونفذت في اللحظة 5فمجموع أوقات االنتظار هو 2
نعلم ان زمن االستجابة هو الوقت المستغرق من لحظة وصول العملية حتى بدء اول تنفيذ لها .
• العملية P1وصلت في اللحظة 0ونفذت في اللحظة 0فزمن االستجابة هو 0
• العملية P2وصلت في اللحظة 1ونفذت في اللحظة 1فزمن االستجابة هو 1
• العملية P3وصلت في اللحظة 2ونفذت في اللحظة 17فزمن االستجابة هو 15
8
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
نعلم ان زمن االستخدامية مقدار الوقت الالزم لتنفيذ عملية من لحظة وصولها حتى انتهاء وقت تنفيذها.
• العملية P1وصلت في اللحظة 0و انهت تنفيذها في اللحظة 17فزمن االستجابة 17
• العملية P2وصلت في اللحظة 1و انهت تنفيذها في اللحظة 5فزمن االستجابة 4
• العملية P3وصلت في اللحظة 2و انهت تنفيذها في اللحظة 26فزمن االستجابة 24
• العملية P4وصلت في اللحظة 3و انهت تنفيذها في اللحظة 10فزمن االستجابة 7
Priority Scheduling
-يستند مبدأ هذه الخوارزمية على تنفيذ العمليات تبعاً لرقم األولوية الذي يعطى لكل عملية .
-العملية ذات رقم األولوية األقل هي األولى بالتنفيذ(ذات األولوية األعلى).
-عند تساوي رقم األولوية نستخدم خوارزمية FCFS
-يمكن ان تكون شفعية او غير شفعية .
-تعتبر خوارزمية SJFهي حالة خاصة من خوارزمية األولوية Priorityحيث يمثل رقم األولوية مقلوب Burst Time
التالي المتوقع
-إن أحد أبرز مشاكل خوارزمية األولوية Priorityهي مشكلة ال Starvationأي ان العمليات ذات األولويات المنخفضة
يمكن أال تنفذ إلى األبد بسبب وجود عمليات ذات أولوية اعلى تسبقها تتولد باستمرار.
تم حل مشكلة ال Starvationمن خالل ال Agingأي بزيادة أولوية هذه العمليات بشكل تدريجي التي تنتظر فترة
طويلة.
9
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
مثال :
اذا كانت األولويات تتراوح بين ( 0عالية) و ) 127منخفضة ) فمثال اذا كانت لدينا عملية ذات رقم أولوية كبير مثل 127
فسيكون تنفيذها صعب جدا فنلجأ إلى زيادة اولويتها من خالل االنقاص من رقم األولوية كل مدة من الزمن (من 1الى
15دقيقة) etc---- 60 – 105 --- 127
ليكن لدينا العمليات P1و P2و P3و P4و P5تصل في اللحظة نفسها (اللحظة ) 0على الترتيب ولها Burst time
ورقم األولوية الموضح في الجدول التالي
10
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
مالحظة :يتم التعامل ضمن رتل الجاهزية وفق النمط ، FIFOحيث تضاف اإلجرائيات الجديدة إلى ▪
نهاية الرتل.
مثال على خوارزمية RR
ليكن لدينا العمليات P1و P2و P3تصل في اللحظة نفسها (اللحظة ) 0على الترتيب ولها Burst timeالموضح في
الجدول التالي :
11
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
و نحسب زمن االنتظار واالستجابة واالستخدامية بنفس الطريقة المتبعة في الخوارزميات السابقة فيكون :
.1امامي (تفاعلي)
.2خلفي (دفعي)
12
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
مثال على جدولة وفق ارتال متعددة المستويات بتغذية راجعة في نظام متعدد
المعالجات (أو معالج متعدد النوى):
لدينا العمليات P1,P2,P3,P4تصل في ازمنة وصول مختلفة على الترتيب )من P1حتى )P4ولديها ال Burst time
الموضح في الجدول
الحل :
تدخل العملية P1الى الرتل األول وتقوم بالتنفيذ بمقدار 8فيتم تنفيذ العملية P1بالكامل .
عند اللحظة 7وهي اللحظة التي انتهت فيها ال P1تدخل P2ويتم تنفيذها بمقدار 8ويذهب ما تبقى منها الى الرتل
الثاني و بنفس الطريقة بالنسبة ل P3و P4
في الرتل الثاني تتابع تنفيذها ال P2بمقدار 16ويذهب ما تبقى منها الى الرتل الثالث اما ال P3فتنفذ بمقدار 12وهو
الزمن المتبقي منها و ننتقل الى P4تنفذ بمقدار 16وتذهب الى الرتل الثالث
وفي الرتل الثالث تتابع P1تنفيذها حتى النهاية ويأتي دور P4ويتابع تنفيذها حتى النهاية
13
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
ان الفرق بين الجدولة وفق ارتال متعددة المستويات بتغذية راجعة وفق نظام متعدد المعالجات (او معالج
متعدد النواة) و بين الجدولة وفق ارتال متعددة المستويات بتغذية راجعة وفق نظام وحيد النواة
في نظام متعدد المعالجات يتم تنفيذ العمليات في الرتل األول والثاني والثالث على التوازي ومخطط غانت يوضح هذه
االمر
اما نظام وحيد النواة فينتظر الرتل األول حتى يكمل تنفيذه ونفس االمر بالنسبة للرتل الثاني والثالث فيكون مخطط
غانت
14
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
FCFS :
SJF :
Priority :
15
/ITE.RBCs
نظم تشغيل | 1عملي مشترك
𝑃1 𝑃2 𝑃3 𝑃4 𝑃5 𝑃1 𝑃3 𝑃5 𝑃1 𝑃5 𝑃1 𝑃5
0 1 2 3 4 5 6 7 10
8 9 11 12
12 13 14 .... 19 تكرار بمقدار 1 msفي كل دخول وخروج
16
/ITE.RBCs