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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

  • الذكاء الإصطناعي: ما هو ؟ وما هي أنواعه السبعة ؟

    يُعتبر الذكاء الإصطناعي من أكبر ثورات التكنولوجيا الحديثة, لكن ما هو الذكاء الإصطناعي؟ كيف يعمل؟ وما هي أنواعه وتطبيقاته؟ سنقوم بإجابتكم على جميع هذه التساؤلات في هذه المقالة. المحتويات : 1. ما هو الذكاء الإصطناعي ؟ 2. ما هو الذكاء ؟ 3. أنواع الذكاء الإصطناعي السبعة. 1. ما هو الذكاء الإصطناعي ؟ الذكاء الإصطناعي هو…

  • ما هي نسبة العرض إلى الارتفاع (Aspect Ratio)؟

    تصف نسبة العرض إلى الارتفاع (Aspect Ratio) العلاقة بين عرض الكائن وارتفاعه. ويشيع استخدامه في الحوسبة لوصف نسب الشاشة المستطيلة. تتم كتابة نسب الارتفاع كتعبيرات رياضية، باستخدام التنسيق التالي: عرض : ارتفاع على سبيل المثال، الشاشة التي يبلغ عرضها 20 بوصة وطولها 15 بوصة تبلغ نسبة العرض إلى الارتفاع 20:15. بعد تبسيط الكسر (قسمة كل رقم…

  • ما هي لغة البرمجة HTML؟

    HTML هو اختصار يشير إلى Hyper Text Markup Language الذي يستخدم لإنشاء صفحات الويب وتطبيقات الويب، فما هو المقصود بلغة البرمجة HTML. المحتويات: 1. ما هي لغة البرمجة HTML؟ 2. تاريخ لغة البرمجة HTML. 3. إصدارات HTML. 4. ميزات لغة البرمجة HTML. 1. ما هي لغة البرمجة HTML؟ قبل الحديث عن لغة البرمجة HTML وتعريفها،…

  • ما هو مشاركة اتصال الإنترنت (ICS)؟

    مشاركة اتصال الإنترنت (ICS – Internet Connection Sharing) هي خدمة برمجية تسمح لجهاز كمبيوتر واحد بمشاركة اتصال مباشر بالإنترنت مع أجهزة كمبيوتر أخرى عبر شبكة محلية. فهو يسمح للكمبيوتر المضيف بالعمل كبوابة، وتوجيه حركة المرور بين أجهزة الكمبيوتر القريبة والإنترنت. تدعم أنظمة التشغيل Windows وmacOS وUnix جميعها شكلاً من أشكال ICS. كيف تعمل مشاركة اتصال الإنترنت (ICS)؟…

  • سمكة القرش النمر.

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

  • ما هو موزع (USB Hub)؟

    منذ منتصف التسعينيات، شهدنا ولادة ونمو تقنية ربط تسمى Universal Serial Bus (USB)، تم تصميمها في الأصل لتوصيل أجهزة الكمبيوتر ومعدات الاتصالات، وأصبحت الوسيلة الأساسية لتوصيل مجموعة كاملة من الأجهزة الأخرى وقدم مساهمات كبيرة في عالم تكنولوجيا المعلومات اليوم، وعندما لا تكون كافية، يمكنك الآن استخدام موزع USB Hub. إن العدد الهائل من منتجات USB…