Tolérance aux défaillances de logiciel Systèmes en temps réel Tolérance aux défaillances de logiciel
Synopsis Tolérance Redondance Redondance statique Redondance dynamique Patterns de tolérance des défaillances Fault Tolerance - 2
Prévention des fautes Évitement des fautes – Limitation de l’introduction de composantes fautives durant la construction Spécification rigoureuses (formelles) Méthodologies de design prouvées Sélection d’un langage de programmation approprié Environnement de développement/ingénierie (IDEs) Enlèvement des fautes – trouver et enlever les causes d’erreurs Revues, inspections, tests Mais que ce passe-t-il si les fautes ne peuvent pas êtres prévenues? fault prevention - attempts to eliminate any possibility of faults getting into a system before it goes operational Fault Tolerance - 3
Tolérance des défaillances La capacité qu’un système a de continuer de fonctionner même en présence des fautes. Tolérance des défaillances complète – système continue d’opérer sans aucune perte de fonctionnalité significative (pour une période de temps limitée) Mode dégradé – système continue d’opérer mais en mode dégradé Sécurité intégrée – (fail safe) système passe en un état sécuritaire avant de se fermer ou résultant d’une faute particulière fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 4
Redondance Pour permettre la tolérance des fautes en logiciel, nous avons besoin d’un certain degré de redondance. {dans ce sens, la définition de redondance inclus le code additionnel qui ne serait pas requis pour l’opération normal du système} But – minimiser la redondance, maximiser R(t) Paradoxe – trop peut réduire R(t) fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 5
Redondance statique Composantes redondantes sont utilisées pour masquer les erreurs h/w: Redondance N Modulaire (NMR) s/w: programmation N-versions N versions redondantes du même module sous un même contrôleur et un système de votes fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 6
Redondance statique Suppositions Problèmes) Spécifications complètes, consistantes, sans ambiguïtés Mode de défaillance indépendants => équipes de développement séparés, processeurs, langages, lignes de communication qui sont tolérantes, … Problèmes) spécifications sont un facteur contribuant majeur des défauts indépendance n’est pas une supposition raisonnable $$$ fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 7
Redondance dynamique Composantes redondantes pour détecter les erreurs h/w: check des parité s/w: bloques de reprise phases détection éval/contrôle des dommages reprise des erreurs traitement de faute/continue RP1 RP2 RP3 Points de reprise Processus P1 fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 8
Redondance dynamique Suppositions Problèmes Modules alternes exécutent seulement sur la détection d’erreur(s) Encore dépendant des spécification en grande mesure Les modes de défaillance connues et non connues peuvent être traités Problèmes La reprise d’erreurs vers l’arrière ne peut pas toujours enlever les dommages $$ fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 9
Quelques patterns de tolérance Pattern de redondance homogène Protège contre les défaillances matériels seulement (aléatoire) Pattern de redondance diverse Protège contre les fautes systématiques 3 types: Différent mais égale Léger Séparation des moniteurs / actionneurs Pattern Moniteur-Actionneur Spécialisation de la redondance diverse Pattern de surveillance (Watchdog) fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 10
Pattern de redondance homogène fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 11
Pattern de redondance homogène fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 12
Pattern de redondance diverse fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 13
Pattern moniteur-actionneur fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 14
Pattern moniteur-actionneur fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 15
Pattern de surveillance (watchdog) fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 16
Pattern de surveillance (watchdog) fault tolerance - features which enable a system to continue functioning even in the presence of faults. matériel ou logiciel Fault Tolerance - 17
Références [1] Burns and Wellings, “Real-Time Systems and Programming Languages”, Chap 5. [2] Douglass, “Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns”, Chap 3. fault tolerance - features which enable a system to continue functioning even in the presence of faults. Fault Tolerance - 18