Deadlock vs. Starvation

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

المقدمة

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


Deadlock

قبل ما نشوف ايه هي الـ Deadlock من الناحية الـ Technical تعالوا نفهمها سوا بشكل بسيط من خلال المثال ده:

دلوقتي ولنفترض ان عندنا اوضتين وكل اوضة ليها باب ومفتاح خاص بيها , فعندنا محمود دخل الاوضة بتاعته والباب اتقفل عليه بالقفل , وعندنا يوسف دخل الاوضة التانية والباب اتقفل عليه كذلك بالقفل , طب ايه رأيكم لو محمود كان معاه مفتاح اوضة يوسف بالخطأ ويوسف معاها مفتاح اوضة محمود ؟

كل واحد فيهم عاوز يخرج من الاوضة اللي هو فيها ولكن كل واحد مش هيعرف يفتح اوضته لان المفتاح اللي عاوزه مع التاني فبالتالي بنقول ان حصل هنا Deadlock.

طب كـ Technical باه الكلام ده بيحصل ازاي او بنترجمه لايه ؟

Deadlock vs. Starvation

خلونا نتخيل إن عندنا Network System فيه عمليتين (Processes) A و B وكل عملية عايزة تطبع على طابعتين P1 و P2 الاتنين مع بعض.

  • العملية A حجزت الطابعة P1 ومستنية الطابعة P2.
  • العملية B حجزت الطابعة P2 ومستنية الطابعة P1.

في الحالة دي، العملية A مش هتقدر تكمل لأن الطابعة P2 محجوزة من العملية B، والعكس صحيح. ده بيعمل Deadlock وكل عملية واقفة مستنية التانية.


تقدروا دلوقتي تشتركوا في النشرة الأسبوعية لاقرأ-تِك بشكل مجاني تمامًا عشان يجيلكوا كل جديد بشكل أسبوعي فيما يخص مواضيع متنوعة وبشروحات بسيطة وسهلة وبجودة عالية 🚀

النشرة هيكون ليها شكل جديد ومختلف عن شكلها القديم وهنحاول انها تكون مميزة ومختلفة وخليط بين المحتوى الأساسي اللي بينزل ومفاجآت تانية كتير 🎉

Eqraatech Newsletter | Eqraatech - اقرأ-تِك | Substack
محتوى تقني متميز في مختلف مجالات هندسة البرمجيات باللغة العربية عن طريق تبسيط المفاهيم البرمجية المعقدة بشكل سلس وباستخدام صور توضيحية مذهلة. Click to read Eqraatech Newsletter, a Substack publication with hundreds of subscribers.

Starvation

قبل ما نشوف ايه هي الـ Starvation من الناحية الـ Technical تعالوا نفهما سوا بشكل بسيط من خلال المثال ده:

مثال على ده لو احنا في مستشفى او في عيادة , وفيه طابور اللي بيجي الاول بيدخل الاول , ولكن فيه استثناء هنا الا وهو ان الحالات الطارئة تقدر تدخل وليها اولوية عن المرضى اللي موجودين.

في الحالة دي لو فيه يوم كان عدد حالات الطوارئ كبير جدا , وقتها المرضى هيحصلهم Starvation ومش هيدخلوا للدكتور لان كل ما هيجي الدور على واحد , هيكون فيه حالة طارئة بتدخل.

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

اشترك الآن بنشرة اقرأ-تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!