Fehlertolerierende Softwarearchitekturen (Vorlesung mit Übung) - Cheatsheet.pdf

Fehlertolerierende Softwarearchitekturen (Vorlesung mit Übung) - Cheatsheet
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,...

© StudySmarter 2024, all rights reserved.

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
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden