رسم بياني للمقارنة
أساس من أجل Comparsion | مأزق | جوع |
---|---|---|
الأساسية | الجمود هو المكان الذي لا تتم فيه أية عملية ، ويتم حظره. | التجويع هو المكان الذي يتم فيه حظر العمليات ذات الأولوية المنخفضة ، وعائدات عملية ذات أولوية عالية. |
حالة الشرط | حدوث الاستبعاد المتبادل ، انتظر والانتظار ، لا الاستباقية والانتظار الدائري في وقت واحد. | إنفاذ الأولويات ، وإدارة الموارد غير المنضبط. |
اسم آخر | الانتظار الدائري. | Lifelock. |
مصادر | في حالة توقف تام ، يتم حظر الموارد المطلوبة بواسطة العمليات الأخرى. | في التجويع ، يتم استخدام الموارد المطلوبة بشكل مستمر من خلال العمليات ذات الأولوية العالية. |
الوقاية | تجنب الاستبعاد المتبادل ، والانتظار والانتظار ، وانتظار دائري والسماح للاستباق. | شيخوخة. |
تعريف الجمود
حالة الجمود هي حالة تتنافس فيها العمليات المتعددة في وحدة المعالجة المركزية على العدد المحدود من الموارد المتاحة داخل وحدة المعالجة المركزية. هنا ، تحتفظ كل عملية بمورد وتنتظر الحصول على مورد تحتفظ به بعض العمليات الأخرى. جميع العمليات تنتظر الموارد بطريقة دائرية. في الصورة أدناه ، يمكنك أن ترى أن العملية P1 قد حصلت على مورد R2 المطلوب بواسطة العملية P2 ، بينما تطلب عملية P1 للمورد R1 الذي يحتفظ به R2 مرة أخرى. لذا فإن عملية P1 و P2 تشكل حالة توقف تام.
- الاستبعاد المتبادل: يمكن أن تستخدم عملية واحدة فقط في كل مرة موردًا إذا طلبت عملية أخرى نفس المورد ، فعليها الانتظار حتى يتم تنفيذ العملية باستخدام الموارد.
- الانتظار والانتظار: يجب أن تحتفظ العملية بمورد وتنتظر الحصول على مورد آخر تحتفظ به بعض العمليات الأخرى.
- لا الاسترداد: لا يمكن استباق عملية الاحتفاظ بالموارد. يجب أن تحرر عملية الاحتفاظ بالمورد المورد طواعية عندما تنتهي من مهمتها.
- الانتظار الدائري: يجب أن تنتظر العملية الموارد بطريقة دائرية. لنفترض أن لدينا ثلاث عمليات {P0، P1، P2}. يجب انتظار P0 المورد المحتفظ بها P1؛ يجب الانتظار P1 للحصول على الموارد المحتفظ بها في العملية P2 ، ويجب الانتظار P2 للحصول على العملية التي تحتفظ بها P0.
على الرغم من أن هناك بعض التطبيقات التي يمكن الكشف عن البرامج التي قد تحصل على deadlocked. لكن نظام التشغيل لا يتحمل مطلقًا المسؤولية عن منع الجمود. تقع على عاتق المبرمجين مسؤولية تصميم برامج خالية من حالة توقف تام. يمكن القيام بذلك عن طريق تجنب الشروط المذكورة أعلاه والتي تعتبر ضرورية لحدوث حالة توقف تام
تعريف الجوع
يمكن تعريف التجويع بأنه عندما يكون طلب عملية لمورد وهذا المورد قد تم استخدامه بشكل مستمر من قبل العمليات الأخرى ، فستواجه عملية الطلب التجويع. في حالة الجوع ، عملية جاهزة لتنفيذ انتظار وحدة المعالجة المركزية لتخصيص المورد. ولكن يجب أن تنتظر العملية إلى أجل غير مسمى بينما تقوم العمليات الأخرى بحظر الموارد المطلوبة باستمرار.
تحدث مشكلة التجويع بشكل عام في خوارزمية الجدولة ذات الأولوية . في خوارزمية الجدولة ذات الأولوية ، يتم دائمًا تخصيص العملية ذات الأولوية الأعلى للمورد ، مما يمنع عملية الأولوية الأقل من الحصول على المورد المطلوب.
الشيخوخة يمكن أن تحل مشكلة المجاعة. إن الشيخوخة تزيد تدريجياً من أولوية العملية التي كانت تنتظر طويلاً للحصول على الموارد. الشيخوخة تمنع عملية ذات أولوية منخفضة للانتظار لأجل غير مسمى لمورد.
الاختلافات الرئيسية بين Deadlock و Starvation في نظام التشغيل
- في حالة توقف تام ، لا يتم تنفيذ أي من العمليات للتنفيذ ، يتم حظر كل عملية انتظارًا للموارد التي حصلت عليها عملية أخرى. ومن ناحية أخرى ، فإن التجويع هو شرط تسمح فيه للعمليات التي تحظى بأولوية أعلى بالحصول على الموارد باستمرار من خلال منع العمليات ذات الأولوية المنخفضة من الحصول على الموارد مما يؤدي إلى منع عمليات ذات أولوية منخفضة إلى أجل غير مسمى.
- ينشأ الجمود عند أربعة شروط الاستبعاد المتبادل ، امسك وانتظر ، لا الاستباقية ، والانتظار الدائري يحدث في وقت واحد. ومع ذلك ، يحدث التجويع عندما يتم تنفيذ أولويات العملية أثناء تخصيص الموارد أو وجود إدارة موارد غير مضبوطة في النظام.
- غالباً ما يطلق على الجمود اسم الانتظار الدائري ، بينما يسمى التجويع " القفل المحبب" .
- في حالة الجمود ، يتم حظر الموارد من خلال العملية بينما ، في حالة التجويع ، يتم استخدام العمليات بشكل مستمر من خلال العمليات ذات الأولويات العالية.
- يمكن منع الجمود من خلال تجنب الظروف مثل الاستبعاد المتبادل ، الانتظار والانتظار ، والانتظار الدائري والسماح بعمليات الاستحواذ التي تحتفظ بالموارد لفترة طويلة. من ناحية أخرى ، يمكن الوقاية من الجوع من خلال الشيخوخة .
استنتاج:
كل من Deadlock و Starvation يؤخران تنفيذ العملية عن طريق منعها. فمن ناحية ، يمكن أن يؤدي الجمود إلى تجويع العمليات ، ومن جهة أخرى يمكن للجوع الأخرى أن تخرج العمليات من المأزق.