Fehlertolerierende Softwarearchitekturen (Vorlesung mit Übung) - Cheatsheet
Definition und Bedeutung von Fehlertoleranz
Definition:
Fähigkeit eines Systems, trotz Fehlern im Hardware- oder Softwarebetrieb weiterzulaufen.
Details:
- Erhöht Systemsicherheit und Zuverlässigkeit.
- Kernkonzepte: Redundanz, Diversität, Fehlererkennung und -korrektur.
- Typische Methoden: N-version programming, Checkpointing, Error detection codes.
- Wichtige Metriken: Mean Time Between Failures (MTBF), Mean Time To Repair (MTTR).
- Beispielhafte Anwendungsbereiche: Luft- und Raumfahrt, Medizintechnik, Bankenwesen.
Unterschiede zwischen Fehlervermeidung und Fehlertoleranz
Definition:
Unterschiede zwischen Fehlervermeidung und Fehlertoleranz – Konzepte der Fehlerhandhabung in Softwarearchitekturen
Details:
- Fehlervermeidung: Proaktiver Ansatz, um das Auftreten von Fehlern zu verhindern.
- Techniken: Formale Verifikation, statische Code-Analyse, Testen, gutes Design.
- Ziel: Systemfehler vermeiden (Fault Avoidance).
- Fehlertoleranz: Reaktiver Ansatz, um mit bereits aufgetretenen Fehlern umzugehen.
- Techniken: Redundanz, Recovery Blöcke, Checkpointing, Selbstüberwachung.
- Ziel: Fortsetzung des Betriebs trotz Fehler (Fault Tolerance).
Physikalische und logische Fehlererkennung
Definition:
Physikalische Fehlererkennung: Erkennung von Hardwarefehlfunktionen. Logische Fehlererkennung: Erkennung von Software- oder Datenfehlern.
Details:
- Implementierung durch Hardware-Redundanz, Paritätsbits, Checksummen, Fehlerkorrekturcodes
- Techniken wie Exception Handling, Assertions, logische Konsistenzprüfungen
- Beispiel für Hardware: ECC-Speicher (Error-Correcting Code)
- Beispiel für Software: Try-Catch-Blöcke in Programmcode
- Ziel: Sicherstellung der Systemzuverlässigkeit und -verfügbarkeit
Fehlermaskierung vs. Fehlerkorrektur
Definition:
Fehlermaskierung: Verbergen von Fehlern durch Umgehung oder Neutralisierung Fehlerkorrektur: Erkennen und Beheben von Fehlern im System.
Details:
- Fehlermaskierung: Ziel ist es, dass der Fehler das System nicht beeinflusst.
- Beispiel: Triple Modular Redundancy (TMR) nutzt drei Module und Mehrheitsvotum.
- Fehlerkorrektur: Ziel ist es, den Fehler tatsächlich zu beheben.
- Beispiel: Hamming-Code und CRC (Cyclic Redundancy Check) korrigieren Fehler in Daten.
- Fehlermaskierung: Sofortige Problemlösung,sichtbarer Fehler bleibt verborgen,führt zu potenziellen Akkumulation unerkannter Fehler
- Fehlerkorrektur: Längerer Prozess, umfasst Fehlerdiagnose und -behebung,kann zur Systemverlangsamung führen aufgrund zusätzlicher Verarbeitung
Redundanzstrategien: Daten-, Hardware- und Software-Redundanz
Definition:
Strategien zur Erhöhung der Fehlertoleranz durch das Einführen von Redundanzen auf Daten-, Hardware- und Software-Ebene.
Details:
- Daten-Redundanz: Mehrfache Speicherung derselben Daten. Angewendet bei RAID-Systemen, Replikation in Datenbanken.
- Hardware-Redundanz: Mehrfache Auslegung von Hardwarekomponenten. Beispiele: Dual-Modular-Redundancy (DMR), Triple-Modular-Redundancy (TMR).
- Software-Redundanz: Mehrfache Implementierung derselben Funktionalität. Techniken: N-Versionen-Programmierung, Recovery-Blöcke.
- Ziel: Erhöhung der Systemzuverlässigkeit und Fehlertoleranz.
Rollback und Rollforward-Strategien
Definition:
Rollback und Rollforward-Strategien sind Techniken zur Fehlerbehandlung in fehlertoleranten Softwaresystemen.
Details:
- Rollback: System wird in früheren, fehlerfreien Zustand zurückversetzt
- Typischerweise durch Nutzung von Checkpoints
- Rollforward: Fehlerbehebung durch Anwenden korrekter Operationen ab einem definierten Punkt
- Anwendung in Datenbanksystemen und zeitkritischen Systemen
Model Checking und Theorem Proving
Definition:
Verifikation von Softwaremodellen und mathematischen Beweisen; verwendet zur Analyse und Sicherstellung von korrektem Verhalten fehlertoleranter Systeme.
Details:
- Model Checking
- Automatische Verifikation eines Modells durch vollständige Zustandsraumanalyse
- Verwendet temporale Logik zur Spezifikation von Eigenschaften (z.B. LTL, CTL)
- Beispiel: Prüfung, ob ein Zustand in jedem möglichen Pfad erreicht wird
- Werkzeuge: SPIN, UPPAAL, NuSMV
- Theorem Proving
- Beweis der Korrektheit eines Systems durch formale mathematische Methoden
- Beweis ist interaktiv oder automatisch
- Verwendet Logik, Kalkül und Axiomatik
- Werkzeuge: Coq, Isabelle, HOL Light
Einsatz von Checkpoints und Backups
Definition:
Techniken zur Wiederherstellung nach Fehlern in fehlertoleranten Systemen; unverzichtbar in der Softwarearchitektur, um Systemrobustheit zu erhöhen.
Details:
- Checkpointing: Periodisches Speichern des Systemzustands
- Backups: Kopien von Daten zu bestimmten Zeitpunkten
- Ziel: Minimieren von Datenverlust und Ausfallzeiten
- Werkzeuge: Spezielle Software für automatische Speicherung und Wiederherstellung
- Strategien: Vollständige, inkrementelle und differenzielle Backups
- Formeln/Überlegungen: Optimale Checkpoint-Frequenz meist aus Balancierung von Performance und Wiederherstellungszeit
- Fähigkeit zur kontinuierlichen Verfügbarkeit: Erhöht Vertrauenswürdigkeit des Systems