تحمل الأعطال
تُعرف خاصية تحمل الأعطال بقدرة النظام على احتواء انتشارها (مثل عطل في الترانزستور، أو قصر في الموصل، أو انقطاع متقطع في ناقل البيانات). قد تظهر الأعطال على شكل أخطاء (مثل قيمة بيانات غير صحيحة، أو رسالة مفقودة) مما يؤدي إلى حالة غير صحيحة للنظام. تعمل الأنظمة التي تتمتع بخاصية تحمل الأعطال على إخفاء هذه الأخطاء والحفاظ على التشغيل السليم حتى في وجود مكون واحد أو أكثر معطل. تُعد هذه الخاصية أساسية للأنظمة عالية التوافر ، والأنظمة بالغة الأهمية ، وحتى الأنظمة التي تُهدد حياة الأفراد .
يشير مصطلح تحمل الأعطال تحديدًا إلى قدرة النظام على التعامل مع الأعطال دون أي تدهور أو توقف في الخدمة. في حالة حدوث خطأ، يبقى المستخدمون النهائيون غير مدركين لأي مشكلة. في المقابل، يُطلق على النظام الذي يتعرض لأخطاء مع بعض الانقطاع في الخدمة أو تدهور تدريجي في الأداء اسم "نظام مرن". في النظام المرن، يتكيف النظام مع الخطأ، ويحافظ على الخدمة مع إدراكه لتأثير معين على الأداء.
عادةً ما يصف مصطلح "تحمل الأعطال" أنظمة الحاسوب ، حيث يضمن استمرار عمل النظام ككل رغم وجود مشاكل في الأجهزة أو البرامج . ومن الأمثلة غير الحاسوبية الهياكل التي تحافظ على سلامتها رغم التلف الناتج عن الإجهاد أو التآكل أو الصدمات.
تاريخ
كان أول حاسوب معروف بقدرته على تحمل الأعطال هو SAPO ، الذي بناه أنتونين سفوبودا عام 1951 في تشيكوسلوفاكيا . [ 1 ] : 155 اعتمد تصميمه الأساسي على أسطوانات مغناطيسية متصلة عبر مرحلات، مع طريقة تصويت لكشف أخطاء الذاكرة ( تكرار معياري ثلاثي ). طُوّرت عدة أجهزة أخرى على هذا المنوال، معظمها للاستخدام العسكري. وفي النهاية، انقسمت هذه الحواسيب إلى ثلاث فئات متميزة:
- الآلات التي تدوم لفترة طويلة دون أي صيانة، مثل تلك المستخدمة في مركبات ناسا الفضائية والأقمار الصناعية ؛
- أجهزة كمبيوتر موثوقة للغاية ولكنها تتطلب مراقبة مستمرة، مثل تلك المستخدمة لمراقبة محطات الطاقة النووية أو تجارب المصادمات العملاقة والتحكم بها ؛
- أجهزة الكمبيوتر ذات وقت التشغيل الطويل والتي ستكون تحت الاستخدام المكثف، مثل العديد من أجهزة الكمبيوتر العملاقة التي تستخدمها شركات التأمين لمراقبة الاحتمالات .
أُنجزت معظم أعمال تطوير ما يُعرف بالحوسبة طويلة العمر التي لا تحتاج إلى صيانة (LLNM) من قِبل وكالة ناسا خلال ستينيات القرن الماضي، [ 2 ] استعدادًا لمشروع أبولو وجوانب بحثية أخرى. وُضع أول جهاز من ناسا في مرصد فضائي ، أما محاولتها الثانية، حاسوب JSTAR، فاستُخدمت في مركبة فوياجر الفضائية . كان هذا الحاسوب مزودًا بنسخة احتياطية من مصفوفات الذاكرة لاستخدام أساليب استعادة البيانات، ولذلك سُمّي حاسوب مختبر الدفع النفاث للاختبار الذاتي والإصلاح. كان بإمكانه اكتشاف أخطائه وإصلاحها أو استخدام وحدات احتياطية عند الحاجة. ولا يزال هذا الحاسوب يعمل حتى أوائل عام 2022. [ 3 ]
كانت شركات تصنيع الطائرات ، وشركات الطاقة النووية ، وقطاع السكك الحديدية في الولايات المتحدة، من أوائل من طوروا الحواسيب فائقة الموثوقية. [ 1 ] : 210. احتاجت هذه الجهات إلى حواسيب تتمتع بفترات تشغيل طويلة جدًا، وتستطيع التعامل مع الأعطال بسلاسة كافية لاستمرار العمل، مع الاعتماد على المراقبة البشرية المستمرة لمخرجات الحاسوب لاكتشاف الأعطال. طورت شركة IBM أول حاسوب من هذا النوع لوكالة ناسا لتوجيه صواريخ ساتورن 5. وفي وقت لاحق، قامت شركات BNSF و Unisys و General Electric ببناء حواسيبها الخاصة. [ 1 ] : 223
في سبعينيات القرن العشرين، أُنجزت أعمال كثيرة في هذا المجال. [ 4 ] [ 5 ] [ 6 ] على سبيل المثال، احتوى نظام F14 CADC على اختبار ذاتي مدمج وأنظمة احتياطية. [ 7 ]
بشكل عام، ركزت الجهود المبكرة في تصميم الأنظمة المقاومة للأعطال بشكل أساسي على التشخيص الداخلي، حيث يشير العطل إلى وجود خلل ما، ويمكن للعامل استبداله. على سبيل المثال، كان لدى شركة SAPO طريقة تُصدر من خلالها أسطوانات الذاكرة المعيبة صوتًا قبل تعطلها. [ 8 ] أظهرت الجهود اللاحقة أنه لكي يكون النظام فعالًا تمامًا، يجب أن يكون قادرًا على الإصلاح الذاتي والتشخيص الذاتي - أي عزل العطل ثم تنفيذ نسخة احتياطية زائدة مع التنبيه إلى الحاجة للإصلاح. يُعرف هذا باسم التكرار من النوع N، حيث تتسبب الأعطال في حدوث أعطال تلقائية وتنبيه المشغل، ولا يزال هذا هو الشكل الأكثر شيوعًا لتصميم الأنظمة المقاومة للأعطال من المستوى الأول المستخدم حتى اليوم.
كان التصويت طريقة أولية أخرى، كما ذُكر سابقًا، حيث تعمل نسخ احتياطية متعددة باستمرار وتتحقق من نتائج بعضها البعض. على سبيل المثال، إذا أبلغت أربعة مكونات عن إجابة 5، وأبلغ مكون واحد عن إجابة 6، فإن المكونات الأربعة الأخرى "تصوّت" على أن المكون الخامس معيب ويتم إخراجه من الخدمة. يُسمى هذا التصويت بالأغلبية من نوع M من N.
تاريخياً، كان الاتجاه هو الابتعاد عن نموذج N والتوجه نحو M من N، حيث أن تعقيد الأنظمة وصعوبة ضمان عدم تعطيل الحالة الانتقالية من حالة الخطأ السلبي إلى حالة الخطأ الإيجابي لم تعطل العمليات.
كانت شركة Tandem Computers في عام 1976 [ 9 ] وشركة Stratus Technologies من بين أوائل الشركات المتخصصة في تصميم أنظمة الكمبيوتر المقاومة للأخطاء لمعالجة المعاملات عبر الإنترنت .
أمثلة

تتطلب خاصية تحمل الأعطال في الأجهزة أحيانًا إزالة الأجزاء التالفة واستبدالها بأجزاء جديدة أثناء تشغيل النظام (وهي عملية تُعرف في الحوسبة باسم التبديل السريع ). يُعرف هذا النوع من الأنظمة، الذي يعتمد على نسخة احتياطية واحدة، باسم نظام تحمل الأعطال أحادي النقطة ، وهو يُمثل الغالبية العظمى من أنظمة تحمل الأعطال. في هذه الأنظمة، يجب أن يكون متوسط الوقت بين الأعطال كافيًا لتمكين المشغلين من إصلاح الأجهزة المعطلة ( متوسط وقت الإصلاح ) قبل تعطل النسخة الاحتياطية أيضًا. من المفيد أن يكون الوقت بين الأعطال أطول ما يُمكن، ولكن هذا ليس شرطًا أساسيًا في نظام تحمل الأعطال.
يُعدّ تحمّل الأعطال ناجحًا بشكل ملحوظ في تطبيقات الحاسوب. وقد بنت شركة تانديم كمبيوترز أعمالها بالكامل على هذه الآلات، التي استخدمت تحمّل نقطة واحدة لإنشاء أنظمة NonStop الخاصة بها والتي تتميز بفترات تشغيل تُقاس بالسنوات.
قد تشمل البنى الآمنة من الأعطال أيضًا برامج الكمبيوتر، على سبيل المثال عن طريق تكرار العمليات .
قد تُصمَّم تنسيقات البيانات أيضًا بحيث تتدهور جودتها تدريجيًا. فعلى سبيل المثال، صُمِّمت لغة ترميز النص التشعبي (HTML) لتكون متوافقة مع الإصدارات اللاحقة ، مما يسمح لمتصفحات الويب بتجاهل كيانات HTML الجديدة وغير المدعومة دون أن يؤدي ذلك إلى عدم إمكانية استخدام المستند. بالإضافة إلى ذلك، يتطلب تصميم واجهة المستخدم السليمة أن توفر مواقع الويب واجهة أمامية اختيارية خفيفة الوزن لا تعتمد على جافا سكريبت وتتميز بتصميم بسيط ، لضمان سهولة الوصول إليها وانتشارها على نطاق واسع . [ 10 ]
مصطلحات

قد يستمر النظام عالي التحمل للأعطال في العمل بنفس مستوى الأداء حتى في حال تعطل أحد مكوناته أو أكثر. على سبيل المثال، سيوفر مبنى مزود بمولد كهربائي احتياطي نفس الجهد الكهربائي لمنافذ الحائط حتى في حال انقطاع التيار الكهربائي الرئيسي.
النظام المصمم ليكون آمناً عند حدوث عطل، سواءً كان يعمل بمستوى منخفض أو يتعطل تماماً، يفعل ذلك بطريقة تحمي الأفراد والممتلكات والبيانات من الإصابة أو التلف أو الاختراق أو الكشف. في الحواسيب، قد يكون البرنامج آمناً عند حدوث عطل من خلال تنفيذ خروج سلس (بدلاً من تعطل غير متحكم به) لمنع تلف البيانات بعد حدوث خطأ. [ 11 ] ويُفرّق بشكل مماثل بين "التعطل الجيد" و" التعطل السيئ ".
يعمل النظام المصمم ليتحمل التدهور التدريجي ، أو ليتعطل بسلاسة (يُستخدم في الحوسبة، على غرار "النظام الآمن من الأعطال" [ 12 ] )، بمستوى أداء منخفض بعد تعطل أحد مكوناته. على سبيل المثال، في حال انقطاع التيار الكهربائي، قد يُخفّض المبنى مستوى إضاءةه أو سرعة مصاعده. وفي الحوسبة، إذا لم تكن سعة النطاق الترددي للشبكة كافية لبث فيديو عبر الإنترنت، فقد يتم بث نسخة منخفضة الدقة بدلاً من النسخة عالية الدقة. يُعد التحسين التدريجي مثالاً آخر، حيث تتوفر صفحات الويب بتنسيق وظيفي أساسي للمتصفحات القديمة أو ذات الشاشات الصغيرة أو ذات الإمكانيات المحدودة، ولكن بنسخة محسّنة للمتصفحات القادرة على التعامل مع تقنيات إضافية أو ذات الشاشات الأكبر.
في أنظمة الحاسوب المقاومة للأعطال، تُصمَّم البرامج التي تُعتبر متينة بحيث تستمر في العمل رغم حدوث خطأ أو استثناء أو إدخال بيانات غير صالحة، بدلاً من التوقف التام. هشاشة البرمجيات هي عكس المتانة. تستمر الشبكات المرنة في نقل البيانات رغم تعطل بعض الروابط أو العُقد. وبالمثل، يُتوقع من المباني والبنية التحتية المرنة منع الانهيار التام في حالات مثل الزلازل أو الفيضانات أو التصادمات.
يُنبه النظام ذو الشفافية العالية في رصد الأعطال المستخدمين إلى حدوث عطل في أحد المكونات، حتى لو استمر في العمل بكفاءة كاملة، ما يسمح بإصلاح العطل أو توقع حدوث عطل وشيك. [ 13 ] وبالمثل، يُصمم المكون سريع الاستجابة للإبلاغ عن العطل عند أول نقطة فيه، بدلاً من إرسال تقارير عند تعطل المكونات اللاحقة. وهذا يُسهل تشخيص المشكلة الأساسية، وقد يمنع التشغيل غير السليم في حالة العطل.
حالة العطل الفردي هي حالة يكون فيها أحد وسائل الحماية من الخطر معيبًا. إذا أدت حالة العطل الفردي حتمًا إلى حالة عطل فردي أخرى، يُعتبر العطلان حالة عطل فردي واحدة. [ 14 ] يقدم أحد المصادر المثال التالي:
حالة العطل الفردي هي حالة يكون فيها أحد وسائل الحماية من المخاطر في المعدات معيباً أو توجد حالة خارجية غير طبيعية واحدة، مثل حدوث ماس كهربائي بين الأجزاء الموصلة للتيار والجزء المستخدم. [ 15 ]
معايير
لا يُعدّ توفير تصميم مقاوم للأعطال لكل مكون خيارًا متاحًا عادةً. إذ يترتب على التكرار المصاحب له عدد من السلبيات، منها زيادة الوزن والحجم واستهلاك الطاقة والتكلفة، بالإضافة إلى زيادة وقت التصميم والتحقق والاختبار. لذا، يجب دراسة عدد من الخيارات لتحديد المكونات التي ينبغي أن تكون مقاومة للأعطال: [ 16 ]
- ما مدى أهمية هذا المكون؟ في السيارة، لا يعتبر الراديو مكونًا بالغ الأهمية، لذا فإن هذا المكون لا يحتاج إلى تحمل الأعطال بشكل كبير.
- ما مدى احتمال تعطل المكون؟ بعض المكونات، مثل عمود الدوران في السيارة، من غير المرجح أن تتعطل، لذلك لا حاجة إلى تحمل الأعطال.
- ما مدى تكلفة جعل المكون مقاومًا للأعطال؟ على سبيل المثال، من المرجح أن يكون طلب محرك سيارة احتياطي مكلفًا للغاية من الناحية الاقتصادية ومن حيث الوزن والمساحة، بحيث لا يمكن اعتباره خيارًا مطروحًا.
من الأمثلة على المكونات التي تجتاز جميع الاختبارات نظام تقييد ركاب السيارة. على الرغم من أن نظام التقييد الأساسي للركاب لا يُؤخذ في الاعتبار عادةً، إلا أنه يعتمد على الجاذبية . فإذا انقلبت السيارة أو تعرضت لقوى تسارع شديدة، فقد يفشل هذا النظام الأساسي. يُعد تقييد الركاب أثناء مثل هذا الحادث أمرًا بالغ الأهمية للسلامة، لذا يجتاز الاختبار الأول. كانت الحوادث التي تؤدي إلى قذف الركاب شائعة قبل اختراع أحزمة الأمان ، لذا يجتاز الاختبار الثاني. تكلفة نظام التقييد الاحتياطي، مثل أحزمة الأمان، منخفضة جدًا، سواء من الناحية الاقتصادية أو من حيث الوزن والحجم، لذا يجتاز الاختبار الثالث. لذلك، يُعد تركيب أحزمة الأمان في جميع المركبات فكرة ممتازة. أما أنظمة التقييد التكميلية الأخرى، مثل الوسائد الهوائية ، فهي أغلى ثمنًا، وبالتالي تجتاز هذا الاختبار بفارق أقل.
يُعد نظام الفرامل مثالًا ممتازًا آخر طويل الأمد لتطبيق هذا المبدأ عمليًا: فبينما تُعتبر آليات الفرامل نفسها بالغة الأهمية، إلا أنها ليست عرضة للعطل المفاجئ (بل للعطل التدريجي)، وهي في كل الأحوال مُضاعفة لضمان توزيع قوة الفرامل بالتساوي والتوازن على جميع العجلات. كما أن مضاعفة المكونات الرئيسية ستكون مكلفة للغاية، فضلًا عن أنها ستضيف وزنًا كبيرًا. مع ذلك، فإن الأنظمة بالغة الأهمية لتشغيل الفرامل تحت سيطرة السائق أقل متانة بطبيعتها، إذ تستخدم عادةً كابلًا (قد يصدأ أو يتمدد أو يتعطل أو ينقطع) أو سائلًا هيدروليكيًا (قد يتسرب أو يغلي وتتكون فيه فقاعات، أو يمتص الماء وبالتالي يفقد فعاليته). لذا، في معظم السيارات الحديثة، تُقسّم دائرة الفرامل الهيدروليكية للقدم قطريًا لتوفير نقطتي عطل أصغر. في حالة فقدان إحدى النقطتين، يقتصر العطل على خفض قوة الفرامل بنسبة 50% فقط، مما يقلل من اختلال توازن قوة الفرامل بشكل خطير مقارنةً بالتقسيم المباشر بين الأمام والخلف أو بين اليمين واليسار. أما في حالة تعطل الدائرة الهيدروليكية بالكامل (وهو أمر نادر الحدوث)، فيوجد نظام أمان يتمثل في فرامل التوقف التي تعمل بالكابل، والتي تُشغّل الفرامل الخلفية الضعيفة نسبيًا، ولكنها قادرة على إيقاف السيارة بالتزامن مع كبح ناقل الحركة/المحرك طالما أن متطلباتها تتوافق مع حركة المرور الطبيعية. إن الجمع بين تعطل فرامل القدم بالكامل والحاجة إلى كبح شديد في حالة الطوارئ، وهو أمر نادر الحدوث، من المرجح أن يؤدي إلى تصادم، ولكنه سيكون بسرعة أقل مما كان سيحدث في الأحوال العادية.
بالمقارنة مع فرامل الخدمة التي يتم تفعيلها بدواسة القدم، تُعد فرامل التوقف عنصرًا أقل أهمية، وما لم تُستخدم كبديل مؤقت لفرامل القدم، فلن تُشكل خطرًا مباشرًا في حال تعطلها لحظة استخدامها. لذا، لا يوجد نظام احتياطي مُدمج فيها (وهي عادةً ما تستخدم نظام تشغيل كابل أرخص وأخف وزنًا، ولكنه أقل متانة)، ويكفي، في حال حدوث ذلك على منحدر، استخدام فرامل القدم لإيقاف السيارة مؤقتًا، قبل الانطلاق إلى طريق مستوٍ للتوقف. بدلاً من ذلك، على المنحدرات الطفيفة، يمكن وضع ناقل الحركة على وضع التوقف أو الرجوع للخلف أو الترس الأول، واستخدام قفل ناقل الحركة/ضغط المحرك لتثبيت السيارة، إذ لا حاجة لوجود آلية معقدة لإيقافها أولًا.
في الدراجات النارية، يُوفر مستوى مماثل من الأمان في حالة الأعطال بأساليب أبسط؛ أولًا، نظاما الفرامل الأمامية والخلفية منفصلان تمامًا، بغض النظر عن طريقة تشغيلهما (سواءً كانت سلكية أو قضيبية أو هيدروليكية)، مما يسمح بتعطل أحدهما تمامًا دون التأثير على الآخر. ثانيًا، الفرامل الخلفية قوية نسبيًا مقارنةً بنظيرتها في السيارات، فهي عبارة عن قرص قوي في بعض الطرازات الرياضية، على الرغم من أن الهدف المعتاد هو أن يوفر النظام الأمامي الجزء الأكبر من قوة الكبح؛ ولأن وزن المركبة الإجمالي يتركز في المنتصف، يكون الإطار الخلفي عادةً أكبر حجمًا ويتمتع بتماسك أفضل، مما يسمح للراكب بالانحناء للخلف لزيادة الضغط عليه، وبالتالي تطبيق قوة كبح أكبر قبل انغلاق العجلة. في الدراجات الأرخص والأبطأ من فئة الاستخدام العام، حتى لو كان من المفترض أن تستخدم العجلة الأمامية قرصًا هيدروليكيًا لزيادة قوة الفرامل وتسهيل عملية التعبئة، فإن العجلة الخلفية عادةً ما تكون عبارة عن أسطوانة بدائية وغير فعالة إلى حد ما، ولكنها قوية بشكل استثنائي تعمل بقضيب، وذلك بفضل سهولة توصيل دواسة القدم بالعجلة بهذه الطريقة، والأهم من ذلك، شبه استحالة حدوث عطل كارثي حتى لو كانت بقية الدراجة، مثل العديد من الدراجات منخفضة السعر بعد سنوات استخدامها القليلة الأولى، على وشك الانهيار بسبب إهمال الصيانة.
متطلبات
تتطلب الخصائص الأساسية لتحمل الأعطال ما يلي:
- لا توجد نقطة فشل واحدة - إذا تعرض النظام لعطل، فيجب أن يستمر في العمل دون انقطاع أثناء عملية الإصلاح.
- عزل العطل في المكون المعطل – عند حدوث عطل، يجب أن يكون النظام قادرًا على عزل العطل في المكون المتسبب فيه. يتطلب ذلك إضافة آليات مخصصة لكشف الأعطال، موجودة فقط لغرض عزل العطل. يتطلب التعافي من حالة العطل تصنيف العطل أو المكون المعطل. تُصنف الأعطال عادةً حسب موقعها (داخلية أو خارجية للنظام)، وسببها (طبيعي أو من صنع الإنسان)، ومدتها (دائمة أو مؤقتة)، وتأثيرها على سلوك النظام. [ 17 ]
- احتواء الأعطال لمنع انتشارها - قد تتسبب بعض آليات الأعطال في تعطل النظام عن طريق نقل العطل إلى باقي أجزائه. ومن أمثلة هذا النوع من الأعطال "جهاز الإرسال المخالف" الذي قد يُعيق الاتصالات المشروعة في النظام ويؤدي إلى تعطله بالكامل. لذا، يلزم وجود جدران حماية أو آليات أخرى لعزل جهاز الإرسال المخالف أو المكون المعطل لحماية النظام.
- توفر أوضاع التراجع ، وهو التخلي عن التغييرات الأخيرة، عادةً في البرامج، التي تعيد النظام إلى سلوك ووظيفة مناسبة بشكل معقول.
بالإضافة إلى ذلك، تتميز الأنظمة المقاومة للأعطال بانقطاعات الخدمة المخططة وغير المخططة. وعادةً ما تُقاس هذه الانقطاعات على مستوى التطبيق وليس على مستوى الأجهزة فقط. ويُطلق على معيار الأداء هذا اسم " التوافر" ، ويُعبّر عنه كنسبة مئوية. فعلى سبيل المثال، يوفر نظام " خمس تسعات" توافرًا بنسبة 99.999% إحصائيًا.
تعتمد الأنظمة المقاومة للأعطال عادةً على مفهوم التكرار.
تقنيات تحمل الأعطال
يتطلب البحث في أنواع التفاوتات اللازمة للأنظمة الحيوية قدراً كبيراً من العمل متعدد التخصصات. فكلما ازداد تعقيد النظام، ازدادت الحاجة إلى دراسة جميع التفاعلات المحتملة والتحضير لها بعناية أكبر. ونظراً لأهمية الأنظمة عالية القيمة في قطاعات النقل والمرافق العامة والمالية والسلامة العامة والجيش، فإن مجال المواضيع التي تتناولها الأبحاث واسع جداً: إذ يشمل مواضيع بديهية مثل نمذجة البرمجيات وموثوقيتها، أو تصميم الأجهزة ، وصولاً إلى عناصر دقيقة مثل النماذج العشوائية ، ونظرية الرسوم البيانية ، والمنطق الرسمي أو الاستبعادي، والمعالجة المتوازية ، ونقل البيانات عن بُعد ، وغيرها. [ 18 ]
النسخ
تعالج المكونات الاحتياطية السمة الأساسية الأولى لتحمل الأعطال بثلاث طرق:
- النسخ المتماثل : توفير نسخ متعددة متطابقة من نفس النظام أو النظام الفرعي، وتوجيه المهام أو الطلبات إليها جميعًا بالتوازي ، واختيار النتيجة الصحيحة على أساس النصاب القانوني ؛
- التكرار : توفير نسخ متعددة متطابقة من نفس النظام والتحويل إلى إحدى النسخ المتبقية في حالة حدوث عطل ( التحويل التلقائي )؛
- التنوع: توفير تطبيقات متعددة ومختلفة لنفس المواصفات، واستخدامها كأنظمة متكررة للتعامل مع الأخطاء في تطبيق معين.
جميع تطبيقات RAID ، وهي عبارة عن مصفوفة زائدة من الأقراص المستقلة ، باستثناء RAID 0، هي أمثلة على جهاز تخزين مقاوم للأعطال يستخدم تكرار البيانات .
تستخدم الآلة المتزامنة المقاومة للأعطال عناصر مُكررة تعمل بالتوازي. في أي لحظة، يجب أن تكون جميع نسخ كل عنصر في الحالة نفسها. تُزوَّد كل نسخة بنفس المدخلات ، ويُتوقع منها نفس المخرجات. تُقارن مخرجات النسخ باستخدام دائرة تصويت. تُسمى الآلة التي تحتوي على نسختين من كل عنصر بالآلة ذات التكرار المعياري المزدوج (DMR). في هذه الحالة، لا تستطيع دائرة التصويت سوى اكتشاف عدم التطابق، ويعتمد الاسترداد على طرق أخرى. أما الآلة التي تحتوي على ثلاث نسخ من كل عنصر فتُسمى بالآلة ذات التكرار المعياري الثلاثي (TMR). تستطيع دائرة التصويت تحديد النسخة الخاطئة عند ملاحظة تصويت اثنين مقابل واحد. في هذه الحالة، تُخرج دائرة التصويت النتيجة الصحيحة، وتتجاهل النسخة الخاطئة. بعد ذلك، يُفترض أن الحالة الداخلية للنسخة الخاطئة تختلف عن حالتي النسختين الأخريين، ويمكن لدائرة التصويت التحول إلى وضع DMR. يمكن تطبيق هذا النموذج على أي عدد أكبر من النسخ.
تُصنع الآلات المتزامنة المقاومة للأعطال بسهولة تامة عندما تكون متزامنة تمامًا ، حيث تُجري كل بوابة في كل عملية نسخ نفس انتقال الحالة على نفس حافة إشارة الساعة، وتكون إشارات الساعة في عمليات النسخ متطابقة تمامًا في الطور. ومع ذلك، من الممكن بناء أنظمة متزامنة دون هذا الشرط.
يتطلب تحقيق التزامن بين النسخ المتماثلة توحيد حالاتها الداخلية المخزنة. يمكن تشغيلها من حالة ابتدائية ثابتة، كحالة إعادة الضبط. أو بدلاً من ذلك، يمكن نسخ الحالة الداخلية لإحدى النسخ المتماثلة إلى نسخة متماثلة أخرى.
أحد أنواع تقنية DMR هو نظام الزوج والاحتياطي . يعمل عنصران متطابقان بشكل متزامن كزوج، مع دائرة تصويت تكشف أي اختلاف بين عمليتيهما وتُخرج إشارة تُشير إلى وجود خطأ. يعمل زوج آخر بنفس الطريقة تمامًا. تقوم دائرة نهائية باختيار خرج الزوج الذي لا يُشير إلى وجود خطأ. يتطلب نظام الزوج والاحتياطي أربع نسخ بدلًا من ثلاث نسخ في نظام TMR، ولكنه يُستخدم تجاريًا.
الحوسبة غير المبالية بالفشل
الحوسبة غير المُدركة للأخطاء هي تقنية تُمكّن برامج الحاسوب من مواصلة التنفيذ رغم وجود أخطاء . [ 19 ] يمكن تطبيق هذه التقنية في سياقات مختلفة. فهي قادرة على معالجة عمليات قراءة الذاكرة غير الصالحة عن طريق إرجاع قيمة مُصنّعة إلى البرنامج، [ 20 ] الذي بدوره يستخدم هذه القيمة المُصنّعة ويتجاهل قيمة الذاكرة السابقة التي حاول الوصول إليها، وهذا يُشكّل تناقضًا كبيرًا مع أدوات فحص الذاكرة التقليدية ، التي تُبلغ البرنامج بالخطأ أو تُنهي البرنامج.
لهذا النهج تكاليف تتعلق بالأداء: لأن هذه التقنية تعيد كتابة التعليمات البرمجية لإدراج عمليات تحقق ديناميكية من صحة العنوان، سيزداد وقت التنفيذ بنسبة تتراوح بين 80% و500%. [ 21 ]
رعاية التعافي
تُعدّ تقنية التوجيه الاستردادي أسلوبًا خفيفًا يمكّن البرامج من التعافي من أخطاء كارثية، مثل الوصول إلى مؤشر فارغ والقسمة على صفر. [ 22 ] وبالمقارنة مع أسلوب الحوسبة غير المُدركة للأخطاء، تعمل تقنية التوجيه الاستردادي مباشرةً على الملف الثنائي للبرنامج المُجمّع، ولا تحتاج إلى إعادة تجميعه.
يستخدم هذا النظام إطار عمل Pin للتحليل الثنائي الفوري . يتصل بعملية التطبيق عند حدوث خطأ، ويُصلح التنفيذ، ويتتبع آثار الإصلاح أثناء استمرار التنفيذ، ويُبقي آثار الإصلاح داخل عملية التطبيق، وينفصل عن العملية بعد مسح جميع آثار الإصلاح من حالة العملية. لا يتداخل هذا النظام مع التنفيذ الطبيعي للبرنامج، وبالتالي يُسبب عبئًا إضافيًا ضئيلاً. [ 22 ] بالنسبة لـ 17 من أصل 18 خطأً حقيقيًا تم جمعها بشكل منهجي، مثل أخطاء الوصول إلى قيمة فارغة والقسمة على صفر، يُمكّن تطبيق نموذجي التطبيق من مواصلة التنفيذ لتوفير مخرجات وخدمة مقبولة لمستخدميه عند حدوث الأخطاء. [ 22 ]
قاطع الدائرة
يُعد نمط تصميم قاطع الدائرة أسلوبًا لتجنب الأعطال الكارثية في الأنظمة الموزعة.
التكرار
التكرار هو توفير قدرات وظيفية غير ضرورية في بيئة خالية من الأعطال. [ 23 ] قد يتضمن ذلك مكونات احتياطية تعمل تلقائيًا في حال تعطل أحد المكونات. على سبيل المثال، يمكن لشاحنات نقل البضائع الكبيرة أن تفقد إطارًا دون أي عواقب وخيمة. فهي مزودة بالعديد من الإطارات، ولا يُعد أي منها حرجًا (باستثناء الإطارات الأمامية، التي تُستخدم للتوجيه، ولكنها عمومًا تحمل حمولة أقل، كلٌ على حدة وإجمالًا، من الإطارات الأربعة إلى الستة عشر الأخرى، لذا فهي أقل عرضة للتعطل). وقد رائد جون فون نيومان فكرة دمج التكرار لتحسين موثوقية النظام في خمسينيات القرن الماضي. [ 24 ]
يُمكن تحقيق نوعين من التكرار: [ 25 ] التكرار المكاني والتكرار الزمني. يوفر التكرار المكاني مكونات أو وظائف أو عناصر بيانات إضافية غير ضرورية للتشغيل الخالي من الأعطال. ويُصنف التكرار المكاني إلى تكرار الأجهزة، وتكرار البرامج، وتكرار المعلومات، وذلك بحسب نوع الموارد المُضافة إلى النظام. أما في التكرار الزمني، فتُكرر عملية الحساب أو نقل البيانات، وتُقارن النتيجة بنسخة مُخزنة من النتيجة السابقة. ويُشار إلى هذا النوع من الاختبار حاليًا باسم اختبار تحمل الأعطال أثناء الخدمة (ISFTT).
العيوب
مزايا التصميم المقاوم للأعطال واضحة، بينما العديد من عيوبه ليست كذلك:
- تداخل مع نظام كشف الأعطال في نفس المكون. بالعودة إلى مثال سيارة الركاب المذكور أعلاه، في أي من نظامي تحمل الأعطال، قد لا يلاحظ السائق ثقب الإطار. عادةً ما يُعالج هذا الأمر بنظام آلي منفصل لكشف الأعطال. في حالة الإطار، يرصد جهاز مراقبة ضغط الهواء انخفاض الضغط ويُبلغ السائق. البديل هو نظام يدوي لكشف الأعطال، مثل فحص جميع الإطارات يدويًا عند كل توقف.
- تداخل مع اكتشاف الأعطال في مكون آخر. يتمثل أحد أشكال هذه المشكلة في أن خاصية تحمل الأعطال في أحد المكونات تمنع اكتشاف الأعطال في مكون آخر. على سبيل المثال، إذا كان المكون "ب" يُنفذ عملية ما بناءً على مخرجات المكون "أ"، فإن خاصية تحمل الأعطال في "ب" قد تُخفي مشكلة في "أ". إذا تم تغيير المكون "ب" لاحقًا (إلى تصميم أقل تحملاً للأعطال)، فقد يتعطل النظام فجأة، مما يُوحي بأن المكون "ب" الجديد هو سبب المشكلة. فقط بعد فحص النظام بدقة، سيتضح أن المشكلة الأساسية تكمن في المكون "أ".
- انخفاض أولوية تصحيح الأعطال. حتى لو كان المشغل على دراية بالعطل، فإن وجود نظام مقاوم للأعطال قد يقلل من أهمية إصلاحه. إذا لم يتم تصحيح الأعطال، فسيؤدي ذلك في النهاية إلى تعطل النظام، إما عند تعطل المكون المقاوم للأعطال بشكل كامل أو عند تعطل جميع المكونات الاحتياطية.
- صعوبة الاختبار. بالنسبة لبعض الأنظمة الحساسة التي تتحمل الأعطال، مثل المفاعل النووي ، لا توجد طريقة سهلة للتحقق من سلامة مكونات النسخ الاحتياطي. ولعلّ أشهر مثال على ذلك كارثة تشيرنوبيل ، حيث اختبر المشغلون نظام التبريد الاحتياطي الطارئ بتعطيل نظامي التبريد الأساسي والثانوي. فشل النظام الاحتياطي، مما أدى إلى انصهار قلب المفاعل وانبعاث كميات هائلة من الإشعاع.
- التكلفة. تميل كل من المكونات المقاومة للأعطال والمكونات الاحتياطية إلى زيادة التكلفة. قد تكون هذه التكلفة اقتصادية بحتة، أو قد تشمل عوامل أخرى، مثل الوزن. على سبيل المثال، تحتوي المركبات الفضائية المأهولة على العديد من المكونات الاحتياطية والمقاومة للأعطال، مما يزيد وزنها بشكل كبير مقارنةً بالأنظمة غير المأهولة التي لا تتطلب نفس مستوى الأمان.
- مكونات رديئة. قد يسمح التصميم المقاوم للأعطال باستخدام مكونات رديئة، والتي لولاها لكانت ستؤدي إلى تعطل النظام. ورغم أن هذه الممارسة قد تُخفف من زيادة تكلفة مقاومة الأعطال، إلا أن استخدام مكونات رديئة متعددة قد يُقلل من موثوقية النظام إلى مستوى يُعادل، أو حتى أسوأ من، نظام مماثل غير مقاوم للأعطال.
المصطلحات ذات الصلة
ثمة فرق بين تحمل الأعطال والأنظمة التي نادراً ما تواجه مشاكل. فعلى سبيل المثال، كانت أنظمة الوصلات المتقاطعة من شركة ويسترن إلكتريك تتميز بمعدلات فشل تبلغ ساعتين لكل أربعين عاماً، ولذلك كانت مقاومة للأعطال بدرجة عالية . ولكن عند حدوث عطل، كانت تتوقف عن العمل تماماً، وبالتالي لم تكن تتمتع بتحمل الأعطال .
انظر أيضاً
- تحمل الأعطال البيزنطية – مرونة النظام المتحمل للأعطال في مواجهة الأعطال البيزنطية
- إعادة تشكيل التحكم – نهج في نظرية التحكم لتحقيق تحكم مقاوم للأعطال للأنظمة الديناميكية
- القدرة على تحمل الأضرار - قدرة الهيكل على تحمل العيوب بأمان حتى يتم إصلاحه.
- تكرار البيانات – بيانات حاسوبية زائدة لتصحيح الأخطاء
- الدفاع المتعمق – الاستراتيجية العسكرية
- المرونة البيئية – قدرة النظم البيئية على مقاومة التغيرات والتعافي منها
- التدهور الأنيق – الحفاظ على الوظائف الكاملة من خلال التلف الدائم
- اكتشاف الأخطاء وتصحيحها – أساليب موثوقة لنقل البيانات الرقمية عبر قنوات غير موثوقة
- التصميم المتسامح مع الأخطاء – التصميم الذي لا يعاقب أخطاء المستخدم ( التصميم المتسامح مع الأخطاء البشرية )
- آمن ضد الأعطال – ميزة تصميم أو ممارسة
- دلالات الفشل – تُستخدم لتصنيف الأخطاء في الأنظمة الموزعة
- التراجع والتقدم – بروتوكول المودم لإدارة الاتصال بكفاءة
- الخروج السلس – أسلوب برمجي بسيط في البرنامج لاكتشاف حالة خطأ جسيم وإدارتها
- مقاومة الاختراق – تصميم مقاوم للأعطال لحماية أنظمة المعلومات
- قائمة سمات جودة النظام – المتطلبات غير الوظيفية لتقييم النظام
- التحسين التدريجي – استراتيجية تصميم مواقع الويب التي تركز على محتوى الويب أولاً
- المرونة (الشبكة) - قدرة الشبكة على البقاء فعالة أثناء الأعطال
- المتانة (علوم الحاسوب) - قدرة نظام الحاسوب على التعامل مع الأخطاء أثناء التنفيذ
- التراجع (إدارة البيانات) - عملية قاعدة البيانات التي تستعيد الحالة السابقة
- الإدارة الذاتية (علوم الحاسوب) – أنظمة لإدارة الحاسوب بدون تدخل بشري
- برامج معالجة الأعطال فقط – برامج حاسوبية تعالج الأعطال عن طريق إعادة التشغيل
مراجع
- 1 2 3 سيوريك، دانيال ب.؛ بيل، سي. جوردون؛ نيويل، ألين (1982). هياكل الحاسوب: المبادئ والأمثلة . ماكجرو هيل . ISBN 0-07-057302-6.
- ↑ Avižienis, Algirdas; Gilley, George C.; Mathur, Francis P.; Rennels, David A.; Rohr, John A.; Rubin, David K. "The STAR (Self-TESTING AND Repairing) Computer: An Investigation Of The ThePenty and Practice Of Auto-Tolerant Computer Design" (PDF) .
- ↑ "حالة مهمة فوياجر (غالباً ما تكون متأخرة ثلاثة أشهر على الأقل)" . ناسا . تم الاسترجاع في 1 أبريل 2022 .
- ↑ راندل، برايان ؛ لي، بنسلفانيا؛ تريليفن، بي سي (يونيو 1978). "قضايا الموثوقية في تصميم أنظمة الحوسبة" . مجلة ACM Computing Surveys . 10 (2): 123-165 . doi : 10.1145/356725.356729 . ISSN 0360-0300 . S2CID 16909447 .
- ↑ دينينغ، بي جيه (ديسمبر 1976). "أنظمة التشغيل المقاومة للأعطال" . مجلة ACM Computing Surveys . 8 (4): 359–389 . doi : 10.1145/356678.356680 . ISSN 0360-0300 . S2CID 207736773 .
- ↑ ليندن، ثيودور أ. (ديسمبر 1976). "هياكل أنظمة التشغيل لدعم أمن البرمجيات وموثوقيتها" . مجلة ACM Computing Surveys . 8 (4): 409-445 . doi : 10.1145/356678.356682 . hdl : 2027/mdp.39015086560037 . ISSN 0360-0300 . S2CID 16720589 .
- ↑ هولت، راي م. (22-09-1998). "حاسوب بيانات الهواء المركزي للطائرة F14A وأحدث تقنيات الدوائر المتكاملة واسعة النطاق في عام 1968" (ملف PDF) . firstmicroprocessor.com . تاريخ الاسترجاع: 16-12-2025 .
{{cite web}}: CS1 maint: url-status ( link ) - ↑ نيلفوروشان، إم آر. الحوسبة المتسامحة مع الأخطاء في تصميم الحاسوب. مجلة علوم الحاسوب في أرشيف الكليات، المجلد 18، العدد 4 (أبريل 2003)، الصفحات 213-220، الرقم الدولي الموحد للدوريات 1937-4771 .
- ↑ "تاريخ شركة تانديم كومبيوترز" . موقع فاندينغ يونيفرس . تم الاطلاع عليه بتاريخ 1 مارس 2023 .
- ↑ ناثانيال (17 مارس 2021). "لماذا يجب أن يعمل موقعك الإلكتروني بدون جافا سكريبت" . مجتمع المطورين . تم الاطلاع عليه بتاريخ 16 مايو 2021 .
- ↑ هوداك، جيه جيه؛ سوه، بي إتش؛ سيوريك، دي بي؛ سيغال، زد. (1993). "تقييم ومقارنة تقنيات البرمجيات المقاومة للأعطال". معاملات IEEE في الموثوقية . 42 (2): 190-204 . doi : 10.1109/24.229487 . ISSN 1558-1721 .
- ↑ ستالينجز، دبليو. (2009): أنظمة التشغيل. المبادئ الداخلية والتصميم ، الطبعة السادسة.
- ↑ ثامبي، سابو م. (2009-11-23). "مقدمة في الأنظمة الموزعة". arXiv : 0911.4395 [ cs.DC ].
- ↑ "التحكم" . معهد مهندسي الكهرباء والإلكترونيات . مؤرشف من الأصل بتاريخ 8 أكتوبر 1999. تم الاطلاع عليه بتاريخ 6 أبريل 2016 .
- ↑ بهاء الشيخ، سيمون جي. ستايسي، أساسيات المعدات في التخدير والرعاية الحرجة وطب ما قبل الجراحة (2017)، ص 247.
- ^ دوبروفا، إي. (2013). “التصميم المتسامح مع الأخطاء”، سبرينغر، 2013، ISBN 978-1-4614-2112-2.
- ↑ أفيزينيس، ألغيرداس؛ لابري، جان كلود؛ راندل، برايان؛ لاندوير، كارل (2004). "المفاهيم الأساسية وتصنيف الحوسبة الموثوقة والآمنة". معاملات IEEE في الحوسبة الموثوقة والآمنة . 1 (1): 11-33 . doi : 10.1109/TDSC.2004.2 . hdl : 20.500.12259/40395 . ISSN 1545-5971 .
- ↑ تقييم موثوقية بعض بنى الحواسيب المقاومة للأعطال . سبرينغر-فيرلاغ. نوفمبر 1980. ISBN 978-3-540-10274-8.
- ↑ هيرزبيرغ، أمير؛ شولمان، هايا (2012). "الحوسبة الثنائية بمساعدة الخادم، غير الواعية والعادلة" . المؤتمر الدولي السابع لعام 2012 حول التوافر والموثوقية والأمن . معهد مهندسي الكهرباء والإلكترونيات. الصفحات 75-84 . doi : 10.1109/ares.2012.28 . ISBN 978-1-4673-2244-7. S2CID 6579295 .
- ↑ ريغر، مانويل؛ بيكاريك، دانيال؛ موسنبوك، هانزبيتر (2018)، "الحوسبة الواعية بالسياق والمتجاهلة للأعطال كوسيلة لمنع تجاوزات المخزن المؤقت" ، أمن الشبكات والأنظمة ، سلسلة محاضرات في علوم الحاسوب، المجلد 11058، تشام: دار نشر سبرينغر الدولية، الصفحات 376-390 ، arXiv : 1806.09026 ، doi : 10.1007/978-3-030-02744-5_28 ، ISBN 978-3-030-02743-8تم الاطلاع عليه بتاريخ 2020-10-07
- ↑ كيروميتيس، أنجيلوس د. (2007)، "توصيف أنظمة البرمجيات ذاتية الإصلاح" ، في: غوروديتسكي، فلاديمير إي.؛ كوتينكو، إيغور؛ سكورمين، فيكتور أ. (محررون)، توصيف أنظمة البرمجيات ذاتية الإصلاح ، أمن شبكات الحاسوب: المؤتمر الدولي الرابع حول الأساليب الرياضية والنماذج والهياكل لأمن شبكات الحاسوب، سبرينغر ، ISBN 978-3-540-73985-2.
- 1 2 3 لونغ، فان؛ سيديروغلو-دوسكوس، ستيليوس؛ رينارد، مارتن (2014). "الإصلاح التلقائي لأخطاء وقت التشغيل واحتوائها عبر توجيه الاسترداد". وقائع المؤتمر الخامس والثلاثين لجمعية ACM SIGPLAN حول تصميم لغات البرمجة وتنفيذها . PLDI '14. نيويورك، نيويورك، الولايات المتحدة الأمريكية: ACM. الصفحات 227-238 . doi : 10.1145/2594291.2594337 . ISBN 978-1-4503-2784-8. S2CID 6252501 .
- ↑ لابري، جي سي (1985). " الحوسبة الموثوقة وتحمل الأعطال: المفاهيم والمصطلحات "، وقائع الندوة الدولية الخامسة عشرة حول الحوسبة المتسامحة مع الأعطال (FTSC-15)، ص 2-11.
- ↑ فون نيومان، ج. (1956). " المنطق الاحتمالي وتوليف الكائنات الموثوقة من المكونات غير الموثوقة "، في دراسات الأوتوماتا، تحرير سي. شانون وج. مكارثي، مطبعة جامعة برينستون، ص 43-98.
- ↑ Avizienis, A. (1976). " أنظمة تحمل الأعطال "، معاملات IEEE للحواسيب، المجلد 25، العدد 12، الصفحات 1304-1312.
- تحمل الأعطال
- هندسة الموثوقية
- أنظمة الحاسوب
- هندسة التحكم
- هندسة النظم
- جودة البرمجيات
- غارة
