موصى به, 2024

اختيار المحرر

الفرق بين الجمود والتجويع في نظام التشغيل

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

رسم بياني للمقارنة

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

تعريف الجمود

حالة الجمود هي حالة تتنافس فيها العمليات المتعددة في وحدة المعالجة المركزية على العدد المحدود من الموارد المتاحة داخل وحدة المعالجة المركزية. هنا ، تحتفظ كل عملية بمورد وتنتظر الحصول على مورد تحتفظ به بعض العمليات الأخرى. جميع العمليات تنتظر الموارد بطريقة دائرية. في الصورة أدناه ، يمكنك أن ترى أن العملية P1 قد حصلت على مورد R2 المطلوب بواسطة العملية P2 ، بينما تطلب عملية P1 للمورد R1 الذي يحتفظ به R2 مرة أخرى. لذا فإن عملية P1 و P2 تشكل حالة توقف تام.

يعد الجمود مشكلة شائعة في أنظمة التشغيل متعددة المعالجات ، والأنظمة الموزعة ، وكذلك في أنظمة الحوسبة المتوازية. هناك أربعة شروط يجب أن تحدث في وقت واحد لرفع حالة الجمود ، والتي هي الاستبعاد المتبادل ، الانتظار والانتظار ، لا الاستباقية ، والانتظار الدائري.

  • الاستبعاد المتبادل: يمكن أن تستخدم عملية واحدة فقط في كل مرة موردًا إذا طلبت عملية أخرى نفس المورد ، فعليها الانتظار حتى يتم تنفيذ العملية باستخدام الموارد.
  • الانتظار والانتظار: يجب أن تحتفظ العملية بمورد وتنتظر الحصول على مورد آخر تحتفظ به بعض العمليات الأخرى.
  • لا الاسترداد: لا يمكن استباق عملية الاحتفاظ بالموارد. يجب أن تحرر عملية الاحتفاظ بالمورد المورد طواعية عندما تنتهي من مهمتها.
  • الانتظار الدائري: يجب أن تنتظر العملية الموارد بطريقة دائرية. لنفترض أن لدينا ثلاث عمليات {P0، P1، P2}. يجب انتظار P0 المورد المحتفظ بها P1؛ يجب الانتظار P1 للحصول على الموارد المحتفظ بها في العملية P2 ، ويجب الانتظار P2 للحصول على العملية التي تحتفظ بها P0.

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

تعريف الجوع

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

تحدث مشكلة التجويع بشكل عام في خوارزمية الجدولة ذات الأولوية . في خوارزمية الجدولة ذات الأولوية ، يتم دائمًا تخصيص العملية ذات الأولوية الأعلى للمورد ، مما يمنع عملية الأولوية الأقل من الحصول على المورد المطلوب.

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

الاختلافات الرئيسية بين Deadlock و Starvation في نظام التشغيل

  1. في حالة توقف تام ، لا يتم تنفيذ أي من العمليات للتنفيذ ، يتم حظر كل عملية انتظارًا للموارد التي حصلت عليها عملية أخرى. ومن ناحية أخرى ، فإن التجويع هو شرط تسمح فيه للعمليات التي تحظى بأولوية أعلى بالحصول على الموارد باستمرار من خلال منع العمليات ذات الأولوية المنخفضة من الحصول على الموارد مما يؤدي إلى منع عمليات ذات أولوية منخفضة إلى أجل غير مسمى.
  2. ينشأ الجمود عند أربعة شروط الاستبعاد المتبادل ، امسك وانتظر ، لا الاستباقية ، والانتظار الدائري يحدث في وقت واحد. ومع ذلك ، يحدث التجويع عندما يتم تنفيذ أولويات العملية أثناء تخصيص الموارد أو وجود إدارة موارد غير مضبوطة في النظام.
  3. غالباً ما يطلق على الجمود اسم الانتظار الدائري ، بينما يسمى التجويع " القفل المحبب" .
  4. في حالة الجمود ، يتم حظر الموارد من خلال العملية بينما ، في حالة التجويع ، يتم استخدام العمليات بشكل مستمر من خلال العمليات ذات الأولويات العالية.
  5. يمكن منع الجمود من خلال تجنب الظروف مثل الاستبعاد المتبادل ، الانتظار والانتظار ، والانتظار الدائري والسماح بعمليات الاستحواذ التي تحتفظ بالموارد لفترة طويلة. من ناحية أخرى ، يمكن الوقاية من الجوع من خلال الشيخوخة .

استنتاج:

كل من Deadlock و Starvation يؤخران تنفيذ العملية عن طريق منعها. فمن ناحية ، يمكن أن يؤدي الجمود إلى تجويع العمليات ، ومن جهة أخرى يمكن للجوع الأخرى أن تخرج العمليات من المأزق.

Top