180 likes | 342 Views
Fehlertoleranz. Pleiten, Pech und Pannen der Informatik WS01/02 Christian Teufel. Einführung. The Patriot Missile Failure 25.02.1991 - Golfkrieg Amerikanische Patriot-Rakete verfehlt irakische Scud-Rakete. 28 Todesopfer – 100 Verletzte.
E N D
Fehlertoleranz Pleiten, Pech und Pannen der Informatik WS01/02 Christian Teufel
Einführung The Patriot Missile Failure 25.02.1991 - Golfkrieg Amerikanische Patriot-Rakete verfehlt irakische Scud-Rakete. 28 Todesopfer – 100 Verletzte Verfehlte Scud-Rakete trifft amerikanische Kaserne. Ursache - Rundungsfehler Ungenaue Berechnung der Zeit seit Systemstart, da interne Uhr in zehntel Sekunden rechnet. Christian Teufel
Einführung The Patriot Missile Failure Berechnung der verstrichenen Zeit in sec = Systemuhr * 1/10. Binärdarstellung von 1/10: 0.0001100110011001100110011001100... 24bit Register kürzte Binärdarstellung auf: 0.00011001100110011001100 => approx. Fehler 9,5*10^(-8) Nach 100 Betriebstunden Fehler von 9.5*10^(-8)*3.6*10^6=0.34s v(Scud) = 6034km/h => Scud ca. 0,57km weiter als berechnet. Folge: Scud - Rakete außerhalb des „Aufspührsystems“! Christian Teufel
Einführung Einsatzorte fehlertoleranter Systeme Anwendungen mit extremer Lebensdauer z.B. Raumfahrt Sicherheitskritische Anwendungen z.B. Medizintechnik Verlängerung der Wartungsintervalle z.B. räumlich weitverteilt Hohe Anforderungen an Verfügbarkeit z.B. Telekommunikation Christian Teufel
Überblick • Einführung • Fehler - Grundbegriffe - Klassifizierung - Umgang • Fehlertoleranz - Fehlerentdeckung - Fehlerbehebung, Fehlerkompensation - Redundanz • Techniken der Fehlertoleranz - Hardware - Software • Fazit Christian Teufel
Fehler - Grundbegriffe fault Fehler(ursache) Grund, der das System zu einem inkorrekten macht. z.B. Designfehler error Fehl(er)zustand Fehlerauswirkung Lokalisierbare Aus- wirkung im Systemzustand. z.B. Fehlerhafte Werte in Variablen failure Versagen Sichtbare Abweichung vom Normalen Verhalten. z.B. Flugzeugabsturz Christian Teufel
Fehler - Klassifikation Wann gerät er in das System? Warum wurde er gemacht? Worin liegt sein Ursprung? Fehler Wer hat ihn gemacht? Wie lange dauert seine Wirkung an? Wo ist er lokalisiert? Was sind seine Auswirkungen? Christian Teufel
Fehler - Umgang • Zur Entwicklungszeit: • Formale Methoden • Software Engineering • Reviews, Testen • Lokalisierung • Analyse • Behebung • Zur Laufzeit: • Fehlerentdeckung • Fehlerlokalisierung • Fehlermeldung • Fehlerbehebung Fehlertoleranz Fehlervermeidung Christian Teufel
Fehlerentdeckung Replikation Umkehrungstests Konsistenztests Zeitüberprüfung Codierungstests Diagnoseläufe Ergebnisvergleiche Probe Datenstrukturtests Erkennung von Deadlines Prüfsummen Speichertests Christian Teufel
Fehlerbehebung und -kompensation Rückwärtsfehlerbehebung Vorwärtsfehlerbehebung Fehlerkompensation (Fehlermaskierung) Rücksprung zu gespeicherten Rücksetzpunkten. Allgemein, systematisch, aufwändig wegen Fehlerlokalisierung. Korrigierende Vorausberechnung. erfordert Schadensbestimmung, sehr speziell. Funktionsausfall wird behoben nicht aber der Fehlzustand. Erfordert Redundanz. (Schnell, benötigt n-von-m System, teuer.) Christian Teufel
Redundanz Redundanz: Teil des Systems, der bei Fehlerfreiheit nicht notwendig wäre. Strukturelle Redundanz: Vervielfältigung von Komponenten (baugleiche/ alternative Entwürfe). Zeitliche Redundanz: Zusätzliche Zeit für wieder- holte Ausführung (retry). Funktionale Redundanz: Zusätzliche, unterstützende Komponenten (Sensoren). Informationsredundanz: Zusätzliche Information (Prüfbits, Zähler). Ausnahmebetrieb: dynamische Redundanz Normalbetrieb: statische Redundanz Christian Teufel
Techniken - Hardware Triple Modular Redundancy (TMR) 1 2 Voter Eingabe Ausgabe 3 Christian Teufel
Techniken - Hardware Reservekomponenten fault detection 1 switch 2 „heiße“ Reserve Christian Teufel
Techniken - Hardware Selbstprüfende Paare 1 Ausgabe 2 Vergleich Fehlermeldung Eingabe 1 Vergleich 2 Vergleich Christian Teufel
Techniken - Software recovery blocks 1 Akzeptanz- test passed failed 2 Akzeptanz- test passed failed 3 Akzeptanz- test passed failed Christian Teufel
Techniken - Software n-version programming 1 2 Voter Eingabe Ausgabe 3 Christian Teufel
Fazit Fehlertoleranz sollte nur ein zusätzliches Verfahren sein und nicht andere Verfahren zur Konstruktion korrekter Systeme ersetzen. Fehlertoleranz erhöht die Systemkomplexität deutlich. Fehlertoleranz ist im allgemeinen teuer. Murphys Gesetz – wenn etwas schiefgehen kann, dann wird es auch schiefgehen – gilt immer! Christian Teufel