قبل البدء فى تعريف ماهو Deadlock سنعرف ماهى Process فى انظمة التشغيل.
محتوي المقال
ماهى Process
Process هى البرنامج ولكن فى مرحلة التنفيذ بمعنى انه حينما يقوم الحاسب بتحميل البرنامج فى ذاكرة RAM يتحول البرنامج إلى Process.
يمكن تخيل Process على انها البرنامج وذلك للتبسيط.
كيف تستخدم Process الموارد المختلفة
والمقصود بالموارد او Resources هى اي مكان فى الذاكرة الدائمة او المؤقتة او الاجهزة المتصلة مثل الطابعة وغيره او حتى موارد افتراضية وتشمل الملفات ، اتصالات الشبكة وغيرها.
لكى تستخدم Process الموارد تقوم بالتالى.
- تطلب المورد
- تستخدم المورد
- تترك المورد
ماهو Deadlock
Deadlock من المفاهيم الشهيرة فى انظمة التشغيل وتعنى باللغة العربية الجمود.
Deadlock هي موقف حيث يتم ايقاف مجموعة من العمليات Processes لأن كل عملية تحتجز موردًا وتنتظر موردًا آخر حصلت عليه عملية أخرى.
فمثلاً عندما يتجه قطاران نحو بعضهما البعض في نفس المسار ولا يوجد سوى مسار واحد ، بحيث لا يمكن لأي من القطاران أن يتحرك عندما يكونا أمام بعضها البعض.
يحدث موقف مماثل في أنظمة التشغيل عندما يكون هناك عمليتان أو أكثر تحتفظان ببعض الموارد وينتظران الموارد التي يحتفظ بها الآخرون.
على سبيل المثال ، في المخطط أدناه ، تحتفظ العملية 1 بالمورد 1 وتنتظر المصدر 2 الذي يتم الحصول عليه عن طريق العملية 2 ، والعملية 2 في انتظار المورد 1.
طرق للتعامل مع حالة Deadlock
هناك ثلاث طرق للتعامل مع حالة Deadlock.
- منع Deadlock وتجنبه نحتاج للتأكد من أن جميع المعلومات المتعلقة بالموارد التي تحتاجها العملية معروفة لنا قبل تنفيذ العملية. نستخدم خوارزمية Banker لتفادي deadlock وذلك عن طريق الكشف المبكر عن هذه الحالة وبالتالى تجنب حدوثها.
- اكتشاف Deadlock بعد ذلك التعامل معها عند حدوثها بمعنى ان نظام التشغيل يترك Deadlock تحدث وبمجرد حدوثها يقوم بحل المشكلة.
- تجاهل المشكلة كلها فى حين ان حالة deadlock تام نادرة جدًا ، فندعها تحدث ونعيد تشغيل النظام. هذا هو النهج الذي يتبعه كل من Windows و UNIX.
المراجع
لتصحيح اي معلومة من فضلك تواصل معنا فى التعليقات ولاثراء النقاش حول الموضوع يمكنك استخدم التعليقات ايضًا.