Professional Documents
Culture Documents
نظم تشغيل - الفصل السابع
نظم تشغيل - الفصل السابع
deadlock
Chapter 7
22/03/2018 Operating Systems DR.Mamoun Younes 244
Lecture 12 and 13
• يج ري عب ور الجس ر باتج اه واح د للم رور فق ط ) ﻻ يتس ع المم ر اﻹ لس يارة واح دة (،
وباعتبار كل جهة من طرفي الجسر كما لو أنها مورد من الموارد .
• إذا كن ت تق ود س يارة ) إجرائي ة ( ودخل ت ف ي مم ر الجس ر وج اءت س يارة ف ي اﻻتج اه
المعاكس) إجرائية أخرى ( ودخلت نفس الممر ،فالتقت السيارتان في منتصف الجسر وك ل
سيارة تريد المرور عبر الجسر ،في ه ذه الحال ة يح دث حال ة اﻻقف ال المتب ادل ف يمكن حل ه
بأن تعود إحدى السيارات إلى الوراء .
• منع حدوث اﻻقفال المتبادل هو الغ اء إمكاني ة تحق ق أح د الش روط الﻼزم ة لح دوث اﻻقف ال
المتبادل من خﻼل وضع قيود على طريقة طلب الموارد وحجزها منها:
.1منع اﻻستبعاد المتبادل :من خﻼل اﻻستغناء عنه في حال ة الم وارد الت ي يمك ن التش ارك
بها ،بينما يجب تحقيقه من أجل الموارد التي ﻻ يمكن التشارك بها .يمكننا تجنب اﻻحتك ار
وذلك بتخصيص إجرائية تكون مسؤولة عن ه ذا الم ورد ،بحي ث نمن ع بقي ة اﻹجرائي ات
م ن اس تخدام الم ورد مباش رة وإنم ا تتعام ل ه ذه اﻹجرائي ة م ع اﻹجرائي ة المس ؤولة م ن
المورد وتقوم اﻷخيرة بالتعامل مع المورد .
• مثﻼً مدير الطباعة في ويندوز يمثل إجرائية مس ؤولة ع ن الطباع ة ،بحي ث عن دما يرس ل
أي برنامج ) إجرائية ( أمر طباعة ،فإن الملف المراد طباعته سيُرسل إلى م دير الطباع ة ،
ويتعامل مدير الطباعة مع الطابعة حيث يرسل لها ملف كلما فرغت من عمله ا حس ب ورود
الملفات إليه ) ( FCFS
22/03/2018 Operating Systems DR.Mamoun Younes 262
• نج د أن هن اك ملف ين أرس ﻼ للطابع ة ولك ن ق ام باس تﻼم ه ذه الملف ات م دير الطباع ة ،يق وم
مدير الطباعة بتنظيم التعامل مع الطابعة ،بحيث يتم طباعة الملف اﻷول ثم الثاني .
ذكرنا أن اﻻستبعاد المتبادل يحصل عندما تكون الموارد ﻻ يمكن مشاركتها بين اﻹجرائيات وبهذا فإن الموارد التي يمكن مش اركتها
هي وسيلة لمنع حصول حلقة اقفال متبادل كمثال أيضا لدينا الملفات القابلة للقراء فقط كمثال عن الموارد التي يمكن تشاركها بحيث
مثﻼ إذا حاولت عدة ﻹجرائيات أن تقوم بفتح ملف قابل للقراءة فقط في لحظة زمنية معينة عندها يمكن لهذه اﻹجرائيات أن تفتح الملف
بشكل متماثل دون الوقوع بحلقة انتظار ولكن فإننا ﻻ يمكن أن نضمن منع هذا الشرط دائم ا ﻷن ال نظم تحت وي عل ى م وارد غي ر قابل ة
ﻷن تصبح موارد مشتركة .
22/03/2018 Operating Systems DR.Mamoun Younes 263
.2منع اح تفظ وانتظ ر :يج ب أن نض من أﻻ تق وم إجرائي ة م ا بطل ب م ورد م ا ،قب ل تحري ر
الموارد التي كانت تحتفظ بها ،وذلك من خﻼل :حجز اﻹجرائية لكافة الموارد الﻼزمة له ا
قب ل ب دء التنفي ذ ،أو الس ماح له ا بطل ب الم وارد فق ط عن دما ﻻ تك ون بحوزته ا م وارد
محج وزة) .يس بب اﻷس لوب الس ابق انخفاض ا ً بنس بة اس تثمار الم وارد ويمك ن أن يس بب
الحرمان(.
• إذا ك ان ل دينا م وارد ،منه ا المس تخدم ومنه ا غي ر المس تخدم ) ح ره( ،وهن اك إجرائي ات
تستخدم م وارد وتري د المزي د ،فيمكنن ا اس تخدام الطريق ة التالي ة للتأك د م ن أن حج ز الم وارد
الحرة لﻺجرائيات التي تريد موارد ﻻ تسبب اﻻقفال المتبادل .
• الش كل الت الي يوض ح ث ﻼث إجرائي ات A , B , Cوك ل إجرائي ة تس تخدم ع دد مع ين م ن
الموارد وتحتاج أن تصل إلى عدد معين من الموارد لتعمل .
يكفيها لديها اﻹجرائية
9 3 A
4 2 B
7 2 C
• هذا يدل أن الموارد يمكن استخدامها دون حدوث اقفال نتبادل أي حالة آمنة.
• بعد انتهاء اﻹجرائية Bستترك الموارد التي كانت تستخدم ) 4موارد( ،فيصبح المتوفر هو 4
• هنا وصلنا إل ى حال ة غي ر آمن ة وح دث اﻻقف ال المتب ادل ،ﻻن الم وارد المت وفر ) 4م وارد( ﻻ
تكفي ﻷي إجرائية .
• من أجل كشف حالة اﻹقفال المتبادل يتم فحص النظام دورياً ،حيث يُسمح للنظام الدخول في
حالة إقفال متبادل ،ومن ثم تطبق خوارزمية كشف اﻹقفال المتبادل ،وبع دها مخط ط التع افي
من حالة اﻹقفال.
• يجري كشف حالة اﻹقف ال المتب ادل م ن خ ﻼل التعام ل م ع بي ان اﻻنتظ ار ،حي ث يت ألف ه ذا
البي ان م ن مجموع ة م ن العق د ،وه ي عب ارة ع ن مجموع ة اﻹجرائي ات ف ي النظ ام ،وم ن
مجموعة اﻻرتباطات Pi → Pjإذا كانت اﻹجرائية Piتنتظر اﻹجرائية . Pj
• في حال وجود حلقة في بيان اﻻنتظار ،فهذا يعني الدخول في حالة إقفال متبادل.
• نستدعي دوريا ً خوارزمية الكشف عن وجود حلقات في البيان.
) = ( 5 6 7الموارد الكلية
) = ( 3 4 5الموارد المستخدمة
-------------------
) = ( 2 2 2الموارد المتاحة
• اﻹجرائية اﻷولى تحتاج إلى طابعتين ،و ماسحين ،و قرصين .
• اﻹجرائية الثانية تحتاج إلى 5طابعات ،و 6ماسحات ،و 7أقراص .
• اﻹجرائية الثالثة تحتاج إلى 4طابعات ،و 3ماسحات ،و 3أقراص .
• اﻹجرائية الثانية تحتاج إلى 4طابعات ،و 4ماسحات ،و 4أقراص .
22/03/2018 Operating Systems DR.Mamoun Younes 284
اكتشاف اﻻقفال المتبادل بالمصفوفات
• اﻷن لدينا عدد الموارد الكلية ،وعدد الموارد المتاحة ،وعدد الم وارد المس تخدمة ،وع دد
الموارد المطلوبة التي تحتاجها اﻹجرائيات ﻹتمام عمله ا ،س نقوم باس تخدام ه ذه المعطي ات
ﻻكتشاف هل سيحدث اقفال متبادل أم ﻻ؟
• طريقة الحل :
• نقوم أوﻻ بمقارنة الموارد المتاحة مع صفوف مصفوفة الموارد المطلوبة ،ثم نختار الص ف
)اﻹجرائية ( الذي تكون موارده المطلوبة أقل أو تساوي الموارد الحرة المتوفرة.
• بمقارن ة ص فوف مص فوفة الطلب ات ) الم وارد ات ي تحتاجه ا ( م ع الم وارد الح رة ) الم وارد
المتاحة ( سنجد أن اﻹجرائية اﻷولى يمكنها إكمال عملها باستخدام الموارد الحرة المتاحة.
• سنعطي اﻹجرائية اﻷولى ما تحتاج من الموارد المتاحة ونخصم ذلك من الموارد الحرة كما
يلي:
• إذا كان ت الم وارد الح رة تكف ي لﻺجرائي ة اﻷول ى أو الثاني ة عل ى س بيل المث ال ،فاﻷفض ل
اختي ار اﻹجرائي ة الت ي تس تخدم م وارد أكث ر ﻷنن ا سنحص ل عل ى م وارد ح رة أكث ر بع د أن
تكتمل اﻹجرائية عملها وتحرر ما تستخدم من موارد .
• اﻵن ستكتمل اﻹجرائية اﻷولى عملها ثم تحرر ما ل ديها م ن م وارد ،وتك ون الم وارد الح رة
اﻹجمالية بعد انتهاء اﻹجرائية اﻷولى كما يلي :
• اﻵن سنقارن الم وارد الح رة الت ي حص لنا عليه ا بع د انته اء اﻹجرائي ة اﻷول ى وتحري ر
مواردها مع المتبقي من صفوف مصفوفة اﻻحتياجات ،س نجد أن اﻹجرائي ة الت ي يمك ن أن
تكفيها هذه الموارد الحرة هي اﻹجرائي ة الثالث ة ،فنخص م الم وارد الت ي تري دها م ن الم وارد
الحرة التي بحوزتنا كما يلي :
) = ( 3 3 7الموارد المتاحة
) = ( 3 3 4الموارد التي تستخدمها اﻹجرائية اﻷولى
-------------------
) = ( 0 0 3الموارد المتاحة ) الحرة (
• اﻵن سنقارن الموارد الحرة التي حصلنا عليها بعد انتهاء اﻹجرائية الثالثة وتحرير مواردها
مع المتبق ي م ن ص فوف مص فوفة اﻻحتياج ات ،س نجد أن الم وارد المت وفرة ل دينا ﻻ تكف ي
ﻷي من اﻹجرائيات المتبقية .
• يمكننا القول أن هناك قفال متبادل حدث في هذه النقطة .
• المعطيات :
الموارد الموجودة بالنظام ) . ( 1 3 2 4
1 0 0 2 0 1 0 0
• نقارن الموارد المتاحة مع الموارد المطلوبة فنجد أن اﻹجرائية الثانية يمكنها إكمال عملها
باستخدام الموارد الحرة المتاحة
) = ( 0 2 2 2الموارد المتوفرة
) = ( 0 1 0 1الموارد الموارد المطلوبة
-------------------
) = ( 0 1 2 1الموارد المتاحة ) الحرة (
22/03/2018 Operating Systems DR.Mamoun Younes 291
• اﻵن س تكتمل اﻹجرائي ة عمله ا ث م تح رر م ا ل ديها م ن م وارد ،وتك ون الم وارد الح رة
اﻹجمالية كما يلي :
) = ( 0 1 2 1الموارد المتاحة المتبقية بعد إعطاء اﻹجرائية الثانية ما تحتاجه من موارد
) = ( 1 0 0 2الموارد التي كانت تستخدمها اﻹجرائية الثانية
) = ( 0 1 0 1الموارد التي استخدمتها اﻹجرائية الثانية مؤخرا ً
---------------------------------------------------------------
) = ( 1 2 2 4الموارد المتاحة ) الحرة ( بعد انتهاء اﻹجرائية الثانية وتحريرها لمواردها
• نق ارن الم وارد المتاح ة م ع الم وارد المطلوب ة فنج د أن اﻹجرائي ة اﻷول ى يمكنه ا إكم ال
عملها باستخدام الموارد الحرة المتاحة ،وهذا يعني انه ﻻ يوجد اقفال متبادل .
• يجري التعافي من حالة اﻹقفال المتبادل من خﻼل إنهاء كافة اﻹجرائيات المسببة لﻺقفال ،أو
إنهاء إجرائية واحدة في كل مرة.
• ما هو الترتيب الذي يجب علينا إنهاء اﻹجرائيات فيه؟
حسب أولوية اﻹجرائية .
حسب الطول الزمني المنقضي من تنفيذ اﻹجرائية ،أو حسب الزمن المتبقي من زمن التنفيذ الكلي .
الموارد التي تستخدمها اﻹجرائية .
الموارد التي تحتاجها اﻹجرائية حتى تنتهي .
عدد اﻹجرائيات التي تحتاج إليها حتى تنتهي تنفيذها .
، باﻹضافة إلى نوعية اﻹجرائية هل هو تخاطبي؟ أم ﻻ.
• الشكل التالي يوضح ثﻼث إجرائيات A , B , Cوكل إجرائية تستخدم عدد معين من
الموارد وتحتاج أن تصل إلى عدد معين من الموارد لتعمل .
يكفيها لديها اﻹجرائية
9 3 A
4 2 B
7 2 C
• نريد التأكد من أننا لو استخدمنا هذه الموارد المتوفرة يمكن أن نصل إلى حالة آمنة ) ﻻ
يحدث اقفال متبادل ( .
22/03/2018 Operating Systems DR.Mamoun Younes 295
مسألة) (2عن حجز الموارد