Fach: Verlässliche Echtzeitsysteme
ECTS: 7.5
Prüfer: Peter Ulbrich
Beisitzer: Florian Schmaus
Was ist ein Fehler?
Wie kommt es zu Fehlern?
Wie kann es dann damit weitergehen?
Fehlerkette über verschiedene Ebenen
Fehlverhalten in einer Ebene kann zu Defekt in der nächsten führen
Erschwert ausfindig machen des Defekts
Wie kann man Fehler kategorisieren?
Viele verschiedene Möglichkeiten z.B. nach Art:
permanente Fehler: Sind permanent; können erst durch eine korrigierende Maßnahme behoben werden, systemintern
sporadische Fehler: unregelmäßiges Auftreten, häufig gebündelt, oft Vorboten permanenter Fehler, z.B durch Verschleiß verursacht
transiente Fehler: unregelmäßiges Auftreten, durch äußere Einwirkung ausgelöst, münden aber meistens nicht in einen permanenten Fehler
Wie ist das mit transienten Defekten? Wo treten diese auf und kann daraus ein permanenter Fehler werden?
Wie kann man mögliche Fehler identifizieren?
Fehlerbaumanalyse?
Komponente/Pfade finden die zu Systemversagen führen
Wurzel = Fehlverhalten, ausgehend davon Ursachen identifizieren
Schnitt: atomare Ereignisse, die Schadensereignis verursachen
Minimalschnitt: kritische atomare Ereignisse, die zu Systemversagen führen
Minimalpfade: Gegenteil Schnitt –> atomare Ereignisse, die das Schadensereignis verhindern
Wie kann man Fehlertoleranz implementieren?
Strukturelle Redundanz: Komponenten gleichartig auslegen mit Relativtests
Funktionelle Redundanz: Komponenten verschiedenartig auslegen (unterschiedliche Herleitung), mit Akzeptanztests
Informationsredundanz: Einbringen zusätzlicher Informationen
zeitliche Redundanz: Schlupfzeit
Was sind die Vor- und Nachteile der verschiedenen Arten von Redundanz?
Strukturell: + Verlässlich, - teuer, - Gleichtaktfehler, -Single Points of Failure
Funktionell: + Gleichtaktfehler durch Diversität vermeiden, - sehr aufwändig, - Anwendungsspezifisch durch Akzeptanztest, -Single Points of Failure
Informations-: + Fehlererkennung, - Berechnungen teuer, - noch keine Fehlertoleranz
Wenn wir strukturelle Redundanz haben, wo sind diese Single Points of Failure?
Wieso mache ich den Akzeptanzmaskierer am Eingang und filtere nicht erst bei der Ausgabe?
So wird der Replikatdeterminismus zerstört
Z.B. bei Floating Point Zahlen: Wenn ich bei drei Sensoren leicht unterschiedliche Werte reingebe können trotzdem stark unterschiedliche Ergebnisse rauskommen
Welcher Bereich ist bei Replikation geschützt?
Wie kann ich jetzt sicherstellen, dass darin das richtige berechnet wird?
Warum teste ich nicht einfach alles durch?
Was ist bei abstrakter Semantik anders?
Was ist ein Beispiel einer abstrakten Semantik?
Was sind die Eigenschaften? (mit Skizze)
Vollständig, Korrekt
Präzise
Geringe Komplexität
Was macht Astree?
Intervallabstraktion: liefert keine Werte, nur Wertebereich für Variablen
Mit Zusicherungen und Known-Ranges Präzision hinzufügen und arbeiten