الجمود في البرامج

ما هو الجمود (Deadlock) في البرامج؟

الجمود (Deadlock) هو حالة يتعذر فيها على البرنامج الوصول إلى المورد الذي يحتاجه للمتابعة. عندما يصل تطبيق نشط إلى حالة توقف تام، فقد “يتعطل” أو يصبح غير مستجيب.

قد يتم قفل الموارد، مثل البيانات المحفوظة أو المخزنة مؤقتًا، عند الوصول إليها من خلال عملية معينة داخل البرنامج. يؤدي تأمين البيانات إلى منع العمليات الأخرى من الكتابة فوق البيانات قبل الأوان.

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

على سبيل المثال، سيؤدي الموقف التالي إلى طريق مسدود بين عمليتين:

  • تطلب العملية 1 المورد B من العملية 2.
  • يتم تأمين المورد ب أثناء تشغيل العملية 2.
  • تتطلب العملية 2 المورد A من العملية 1 حتى تنتهي من التشغيل.
  • يتم تأمين المورد أ أثناء تشغيل العملية 1.

والنتيجة هي أن العملية 1 والعملية 2 تنتظران انتهاء بعضهما البعض. نظرًا لعدم إمكانية استمرار أي من العمليتين حتى تكتمل العملية الأخرى، يتم إنشاء حالة توقف تام.

إقرأ أيضاً… ما هي (jQuery) في برمجة الجافا؟


طرق تجنب الجمود.

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

على سبيل المثال، بدلاً من اعتماد عمليتين على بعضهما البعض، يمكن كتابة التعليمات البرمجية المصدر بحيث ينتهي كل مؤشر ترابط قبل أن يحتاج مؤشر ترابط آخر إلى موارده.

من خلال ضمان إمكانية الوصول إلى البيانات عند الحاجة، يمكن للمبرمجين حماية تطبيقاتهم من التعليق أو التعطل.

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

مقالات مرتبطة...

  • ما هي خوارزمية التعلم؟

    خوارزمية التعلم هي مجموعة من التعليمات المستخدمة في التعلم الآلي والتي تسمح لبرنامج الكمبيوتر بتقليد الطريقة التي يتحسن بها الإنسان في توصيف بعض أنواع المعلومات. يمكن للرياضيات والمنطق اللذين يدعمان خوارزمية التعلم تحديث نفسها بمرور الوقت (دون تدخل بشري) حيث تتعرض البرمجة لمزيد من البيانات. تعد خوارزميات التعلم مفيدة في كل من التعلم الآلي الخاضع…

  • ما هي بيانات اعتماد تسجيل الدخول؟

    تعتبر بيانات اعتماد تسجيل الدخول مهمة لأنها تمكننا من الوصول إلى أي نظام أو حساب أو جهاز خاص مقيد في العمل أو المنزل أو على الويب. ما هي بيانات اعتماد تسجيل الدخول؟ بيانات اعتماد تسجيل الدخول عبارة عن تركيبة اسم مستخدم وكلمة مرور تستخدم لتسجيل دخولك إلى الحسابات عبر الإنترنت. يمكن أيضًا دمجها مع أكثر…

  • ما هو اتصال DSL في الإنترنت؟

    خط المشترك الرقمي، أو اتصال DSL هو وسيلة اتصالات تستخدم لنقل الإشارات الرقمية عبر خطوط الهاتف القياسية. إلى جانب الإنترنت عبر الكابل، تعد خدمة DSL واحدة من أكثر الطرق شيوعًا التي يوفر بها مزودوا خدمات الإنترنت الوصول إلى الإنترنت واسع النطاق. عند إجراء مكالمة هاتفية باستخدام خط أرضي، يتم إرسال الإشارة الصوتية باستخدام ترددات منخفضة…

  • ما هو القرص الصلب؟ كيف يعمل، وما هي أنواعه؟

     محرك الأقراص الصلبة أو القرص الصلب (HDD) هو جهاز تخزين البيانات, ويستخدم لتخزين الملفات الرقمية, وهو نوع من أنواع وسائط التخزين غير المتقلب، مما يعني أنه يحتفظ ببياناته حتى عند إيقاف تشغيله. الأقراص الصلبة شائعة في أجهزة الحاسوب الشخصية والخوادم. المحتويات: 1. ما هو القرص الصلب؟ 2. القرص الصلب والمرن. 3. ما هو القرص الصلب…

  • أنواع لغات البرمجة.

     هناك ثلاثة أنواع رئيسية من لغات البرمجة: لغة الآلة ولغة التجميع واللغة منخفضة المستوى واللغة عالية المستوى. لغة الآلة هي اللغة الوحيدة التي يستطيع الحاسوب فهمها ويتم تنفيذها مباشرة بواسطة الحاسوب. لغة التجميع هي لغة برمجة منخفضة المستوى تتطلب مترجماً لتحويلها إلى رمز آلة بحيث يمكن قراءتها وتنفيذها بواسطة الحاسوب. لا يتم تنفيذ اللغات عالية…

  • ما هو شريط العنوان في متصفح الويب؟

    شريط العنوان (Address Bar) هو حقل نصي بالقرب من الجزء العلوي لنافذة متصفح الويب ويعرض عنوان URL لصفحة الويب الحالية. يعكس عنوان URL أو عنوان الويب عنوان الصفحة الحالية ويتغير تلقائيًا كلما قمت بزيارة صفحة ويب جديدة. ولذلك، يمكنك دائمًا التحقق من موقع صفحة الويب التي تشاهدها حاليًا باستخدام هذا الشريط في المتصفح. بينما يتم…