Thursday, May 23, 2013

الجمود/التعليق وقتله في نظام التشغيل | Deadlock and Kill Deadlock in OS


إعداد/ خالد أبو دقة
مقدمة:
يوجد عمليتين (أ، ب) كل منهما تريد استخدام الطابعة والفلاش ميموري، العملية الأولى (أ) سمح لها من الوصول إلى الطابعة، ولكن عليها انتظار الفلاش ميموري، وفي المقابل العملية الثانية (ب) سمح لها من الوصول إلى الفلاش ميموري، ولكن تنتظر الطابعة.
في هذه الحالة تنتظر كل عملية من العمليتين إحدى المصادر المستخدمة، لذلك لن تنتهي العملية من التنفيذ ويحدث أكثر من عملية انتظار تؤدي إلى الجمود/التعليق.

تعريف الجمود
Deadlock
وجود عمليتين أو أكثر تحجز كل منهما مصادر Resource's بشكل دائم، وهذه المصادر تحتاجها عمليات أخرى في نفس الوقت، لذلك سوف تنتظر العمليات الأخرى ترك هذه المصادر، ويحدث تنافس مع العميات على هذه الموارد أثناء عملية الاتصال بينهم.
لذلك لن تنتهي العمليات من التنفيذ ويحدث الجمود.

كيف تتعامل العمليات مع الموارد بشكل تسلسلي:

  •          الطلب: أي طلبه من نظام التشغيل.
  •          استخدامه: بعد الحصول عليه يتم استخدامه.
  •          تركه/تحريره: ترك المصدر بعد الانتهاء من تنفيذه.


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

2-      الاستخدام والانتظار Hold and Wait: في هذه الحالة العملية تستخدم مصدر خصص لها، وتنتظر الحصول على مصدر آخر تم إسناده لعملية أخرى.

3-      منع الإجهاض No preemption: نظام التشغيل لا يجبر أي عملية على ترك المصدر، لذلك العملية ستترك المصدر طوعا بعد الانتهاء من المهمة.

4-      الانتظار الدائم/الدائري Circular Wait: احتكار عملية لمورد أو أكثر تنتظره عملية أخرى، وهذه العملية الأخرى بدورها تنتظر عملية أخرى ....وهكذا تتكون دائرة مغلقة من الانتظارات .
P0  معه مصدر، وP1 يحتاج للمصدر الموجود مع P0، وP2 تحتاج للمصدر الموجود مع P1، .. وهكذا
Pn-1  تنتظر العملية Pn والعملية Pn تحتاج للمصدر الموجود مع P0.


كيفية رسم إسناد المصادر (RAG):
·         لا يوجد حالة جمود




·         وجود حالة جمود: لأنه حدث معنا دائرة



منع الجمود:
يجب التغيير في القواعد الأربعة لنظام التشغيل السابقة:
      1-      حيث يتم مشاركة المصادر والسماح لها أن تُستخدم في نفس الوقت.
2-      إذا كانت العملية تمتلك مصدر فإنه لا يمكن لها طلب مصدر آخر، والعكس.
3-      إذا كانت العملية تريد مصدر معين وهي تحجز مصدر آخر، فإنه عليها ترك المصدر المحجوز للحصول على المصدر الآخر.
4-      ترتيب كافة المصادر، وذلك بوجود عداد يقوم بالزيادة في الطابور حتى الوصول إلى المصدر.

الحالة الامنة:
عندما تطلب العملية أحد الموارد المتاحة، يجب أن يقرر النظام، هل عملية الإسناد تجعل النظام آمن أو لا.

وهذا مثال يشرح الجمود في الحالة الآمنة والغير آمنه

وفي هذه الرسمة الحالة غير آمنه، لأن العملية الأولى (P1) من المحتمل أن تطلب المصدر الثاني (R2) والذي هو مسند للعملية (P2)، لذلك من المحتمل حدوث جمود.. وهذه الحالة غير آمنه.




تجنب التعليق:
هو ضمان أن النظام لا يدخل في حالة غير آمنه

  •          إذا الرسم لا يحدث دائرة.. لا يوجد جمود
  •          إذا الرسم يحتوي على دائرة وكان المصدر يوجد به حالة واحد، يحدث جمود.
  •        إذا الرسم يحتوي على دائرة وكان المصدر يوجد لديه أكثر من حالة، من الممكن أن يحدث جمود، ولكن ليس أكيد.
  •          إذا كان النظام في حالة آمنه.. لا يوجد جمود. والعكس.

    قتل الجمود في نظام التشغيل:
و   في هذا الفيديو كيفية عمل قتل للجمود/التعليق في نظام التشغيل أوبونتو.



   يتبع..

     تقبلوا الشرح / خالد أحمد أبو دقة

تعليقات الفيس
2 تعليقات بلوجر

2 comments :

وما يلفظ من قول إلا لديه رقيب عتيد

كورس متقدم مايكروسوفت اوفيس

آخر المشاريع على GitHub

آخر الأعمال على بيهانس

FaceBook

من تغريداتي

من قناتي

صوت

الأكثر قراءة ومشاهدة