نموذج موارد خوارزمية تشاندي-ميسرا-هاس

تتحقق خوارزمية تشاندي -ميسرا-هاس لنموذج الموارد من حالات الجمود في النظام الموزع . وقد طُوّرت هذه الخوارزمية بواسطة ك. ماني تشاندي ، وجاياديف ميسرا، ولورا م. هاس .

يعتمد على الموقع

لنفترض وجود n عملية P1 ، P2 ، P3 ، P4 ، P5 ، ...، Pn تُنفذ في نظام واحد (وحدة تحكم). تعتمد P1 محليًا على Pn إذا كانت P1 تعتمد على P2 ، و P2 على P3 ، وهكذا ، و Pn - 1 على Pn . أي ، إذاP1P2P3...Pن{\displaystyle P_{1}\rightarrow P_{2}\rightarrow P_{3}\rightarrow \ldots \rightarrow P_{n}}، ثمP1{\displaystyle P_{1}}يعتمد محليًا علىPن{\displaystyle P_{n}}إذا قيل أن P1 يعتمد محليًا على نفسه ، وكان يعتمد محليًا على Pn ، وكان Pn يعتمد على P1 ، أي إذاP1P2P3...PنP1{\displaystyle P_{1}\rightarrow P_{2}\rightarrow P_{3}\rightarrow \ldots \rightarrow P_{n}\rightarrow P_{1}}، ثمP1{\displaystyle P_{1}}يعتمد على نفسه محلياً.

وصف

تستخدم الخوارزمية رسالة تُسمى probe(i,j,k) لنقل رسالة من وحدة تحكم العملية Pj إلى وحدة تحكم العملية Pk . تُحدد هذه الرسالة رسالةً بدأتها العملية Pi للتحقق مما إذا كان قد حدث تعطل أم لا. تحتفظ كل عملية Pj بمصفوفة منطقية تُسمى dependent ، تحتوي على معلومات حول العمليات التي تعتمد عليها. في البداية ، تكون جميع قيم كل مصفوفة "خطأ".

وحدة التحكم ترسل مسبارًا

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

وحدة التحكم تستقبل مسبارًا

في جانب الاستقبال، يتحقق المتحكم مما إذا كانت العملية P k تُنفذ مهمةً ما. إذا كانت كذلك، فإنه يتجاهل طلب التحقق. وإلا، فإنه يتحقق من الاستجابات المُقدمة من P k إلى P وإذا كانت قيمة k (i) التابعة خاطئة، فإنه يُعيّن القيمة صحيحةً لها. ثم يتحقق مما إذا كانت k تساوي i. إذا كانتا متساويتين، يحدث تعطل، وإلا فإنه يُرسل طلب التحقق إلى العملية التابعة التالية.

الخوارزمية

في الشفرة الزائفة ، تعمل الخوارزمية على النحو التالي: [ 1 ]

وحدة التحكم ترسل مسبارًا

إذا كانت P j تعتمد محليًا على نفسها، فأعلن عن حالة تعطل ، وإلا فلكل P j و P k بحيث (i) P i يعتمد محليًا على P j ، (ii) ينتظر P j ' P k و (iii) P j و P k موجودان على وحدات تحكم مختلفة. أرسل إشارة التحقق (i, j, k) إلى الموقع الرئيسي لـ P k

وحدة التحكم تستقبل مسبارًا

إذا (1) كان P k خاملاً / محجوباً (ii) التابع k (i) = خطأ، و (iii) إذا لم يستجب P k لجميع طلبات P  فابدأ بـ "التابعين" "k" (i) = صحيح؛ إذا كان k == i، فأعلن أن P i في حالة جمود، وإلا لكل P a و P b بحيث (i) يعتمد P k محليًا على P a ، (ii) ينتظر P a و P b (iii) P a و P b موجودان على وحدات تحكم مختلفة. أرسل المسبار (i, a, b) إلى الموقع الرئيسي لـ P b .

مثال

حدوث حالة تعطل في النظام الموزع

يبدأ P1 عملية اكتشاف حالة التعطل. يرسل C1 إشارة تفيد بأن P2 يعتمد على P3 . بمجرد استلام C2 للرسالة ، يتحقق مما إذا كان P3 في وضع الخمول. يكون P3 في وضع الخمول لأنه يعتمد محليًا على P4 ، ويُحدِّث P3 (2) التابع إلى " صحيح " .

كما سبق، يرسل C2 إشارة فحص إلى C3 ، ويرسل C3 إشارة فحص إلى C1 . عند C1 ، يكون P1 في وضع الخمول ، لذا يقوم بتحديث التابع 1 (1 ) إلى صحيح. وبالتالي، يمكن إعلان حالة تعطل.

تعقيد

لنفترض أن هناكن{\displaystyle n}أجهزة التحكم وم{\displaystyle m}العمليات، على الأكثرم(ن-1)/2{\displaystyle m(n-1)/2}يجب تبادل الرسائل لاكتشاف حالة الجمود، مع تأخير قدرهيا(ن){\displaystyle O(n)}الرسائل. [ 2 ]

مراجع

  1. تشاندي، ك.م.؛ ميسرا، ج.؛ هاس، ل.م. (1983). "الكشف عن حالات الجمود الموزعة" . معاملات ACM لأنظمة الحاسوب . 1 (2): 144. doi : 10.1145/357360.357365 . S2CID 9147318 . 
  2. كشمكالياني، أجاي؛ سينغال، موكيش. "الكشف عن حالات التعطل في الأنظمة الموزعة" (ملف PDF) . تم الاطلاع عليه بتاريخ 2024-04-08 .