Fehlertoleranz

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

In der Technik, besonders in der Datenverarbeitung, bedeutet Fehlertoleranz (von lateinisch tolerare ‚erleiden‘, ‚erdulden‘), die Eigenschaft eines technischen Systems, seine Funktionsweise auch aufrechtzuerhalten, wenn unvorhergesehen Eingaben oder Fehler in der Hard- oder Software auftreten.

Fehlertoleranz erhöht die Zuverlässigkeit eines Systems, wie es beispielsweise in der Medizintechnik oder in der Luft- und Raumfahrttechnik gefordert ist. Fehlertoleranz ist ebenso eine Voraussetzung für Hochverfügbarkeit, die insbesondere in der Telekommunikationstechnik eine wichtige Rolle spielt.

Ansätze auf verschiedenen Ebenen[Bearbeiten]

Fehlertoleranz kann auf verschiedenen Ebenen erreicht werden. Je nach Einsatzgebiet (PC, Medizintechnik, Weltraumtechnik usw.) sind verschiedene Ansätze sinnvoll, auch Kombinationen bieten sich oft an.

Fehlertoleranz in Hardware[Bearbeiten]

Hardware, d. h. eine elektronische Schaltung, kann z. B. durch Hinzufügen von Redundanz fehlertolerant gemacht werden.

Laufen z. B. zwei Implementierungen einer Schaltung parallel (dual modular redundancy, DMR), so kann eine Entscheidungseinheit einen Fehler durch Vergleichen der Ausgänge der beiden Komponenten feststellen, jedoch nicht korrigieren.

Fügt man eine weitere Instanz der Komponenten hinzu (triple modular redundancy, TMR), so kann eine Entscheidungseinheit einen Fehler korrigieren. Wird die fehlerhafte Einheit als defekt markiert, ist ein Fehler weiter erkennbar (wie bei DMR).

Fehlertoleranz in Software[Bearbeiten]

Auf Software-Ebene kann Fehlertoleranz durch folgende Maßnahmen erreicht werden:

  • Design-Diversität: verschiedene Implementierungen eines Algorithmus laufen parallel
  • Daten-Diversität: die Eingabedaten werden leicht modifiziert mehrfach bearbeitet (z. B. gut gegen Rundungsfehler)
  • Temporale Diversität: ein Algorithmus wird mit denselben Daten mehrfach aufgerufen (z. B. gut gegen kurzzeitige Hardwarefehler)

Fehlertoleranz in Benutzerschnittstellen[Bearbeiten]

Häufig verursachen fehlerhafte Benutzereingaben, also menschliches Versagen, abnorme Betriebszustände. Fehlertoleranz ist daher eines der Gestaltungsprinzipien für Dialoge nach EN ISO 9241, Abschnitt 110 (Grundsätze der Dialoggestaltung). Ein Dialog ist fehlertolerant, wenn das beabsichtigte Arbeitsergebnis trotz erkennbar fehlerhafter Eingaben entweder mit keinem oder mit minimalem Korrekturaufwand durch den Benutzer erreicht werden kann:

  • Unterstützung bei der Entdeckung und Vermeidung von Eingabefehlern (Plausibilisierung)
  • Keine Systemabbrüche oder undefinierten Systemzustände
  • Fehlererläuterungen zu Korrekturzwecken
  • Zusätzlicher Darstellungsaufwand zur Fehlerlokalisierung
  • Automatische Fehlerkorrektur mit Information
  • Aufschiebbare Fehlerbehandlungen
  • Zusätzliche Erläuterungen auf Anforderung
  • Prüfung und Bestätigung vor Ausführung
  • Fehlerbehebung ohne Zustandsänderung des Dialogs

Die potentiellen Fehler, die Besucher verursachen oder die ihnen begegnen können, lassen sich wie folgt klassifizieren:

Vermeidbare Fehler

Diese Art von Fehlern treten aufgrund mangelnder Beschäftigung mit dem Benutzerverhalten auf und wären bei sorgfältiger Auseinandersetzung mit der Zielgruppe und ihrem typischen Nutzungsverhalten vermeidbar. Typisch vermeidbare Anwenderfehler auf Websites sind Navigationsfehler oder fehlerhafte Eingaben auf Formularen. Durch umfangreiche Tests vor dem Launch einer Website oder Anwendung könnten viele dieser Fehler vermieden werden.

Bekannte, nicht vermeidbare Fehler

Nicht alle bekannten Fehler lassen sich vermeiden. Ein Vertippen mit der Tastatur, ein versehentliches Abschicken eines Formulars, das noch nicht vollständig ausgefüllt war, sind nur zwei Beispiele für Fehler, mit denen man rechnen muss, weil sie sich nicht ausschließen lassen. Für alle vorhersehbaren Fehler muss es deshalb einfache, klar erkennbare Korrekturmöglichkeiten geben.

Nicht antizipierbare Fehler

In diese Klasse von Fehlern fallen all diejenigen, welche aufgrund unerwarteten Benutzerverhaltens passieren oder durch schwer identifizierbare Programmierfehler verursacht werden. Meist führen diese Fehler zu undurchsichtigen Programmverhalten, die für den Benutzer nicht verständlich sind.[1]

Stufen der Fehlertoleranz[Bearbeiten]

In der Regel werden folgende Stufen der Fehlertoleranz unterschieden:

Stufe Verhalten des Systems
go System reagiert sicher und korrekt.
fail-operational System fehlertolerant ohne Leistungsverminderung
fail-soft Systembetrieb sicher, aber Leistung vermindert
fail-safe Nur Systemsicherheit gewährleistet
fail-unsafe unvorhersehbares Systemverhalten

Reaktion und Korrektur von Fehlern[Bearbeiten]

Bei der Reaktion oder Korrektur von Fehlern unterscheidet man die zwei Prinzipien der Vorwärts- und der Rückwärtsfehlerkorrektur.

Vorwärtsfehlerkorrektur[Bearbeiten]

Bei der Vorwärtsfehlerkorrektur versucht das System, so weiterzumachen als ob kein Fehler aufgetreten wäre, indem es etwa fehlerhafte Eingabewerte durch Erfahrungswerte aus der Vergangenheit oder Eingabewerte von korrekt funktionierenden Eingabeschnittstellen ausgleicht oder im Moment des Auftretens eines Fehlers sofort mit korrekt funktionierenden Ersatzsystemen weiterarbeitet. Fehler bleiben bei der Vorwärtsfehlerkorrektur normalerweise unsichtbar für Anwender.

Rückwärtsfehlerkorrektur[Bearbeiten]

Bei der Rückwärtsfehlerkorrektur versucht das System bei Auftreten eines Fehlers in einen Zustand vor diesem Auftreten zurückzukehren, etwa in den Zustand direkt vor einer fehlerhaften Berechnung, um diese Berechnung erneut auszuführen. Genauso ist aber auch ein Zustandswechsel in einen Notbetrieb oder z. B. ein Neustart des Systems möglich. Kann eine fehlerhafte Berechnung erfolgreich wiederholt werden, bleibt auch bei der Rückwärtsfehlerkorrektur der Fehler für den Anwender unsichtbar. Oft ist aber nur ein Weiterbetrieb mit Leistungseinbußen oder eingeschränkter Funktionalität möglich und der Fehler somit sichtbar.

Externe Korrektur[Bearbeiten]

In der Weltraumtechnik wird eine Fehlerkorrektur durch die Auswertung von Satelliten-Telemetriedaten in der Bodenstation durch Systemexperten und Umschaltung der Funktionen durch Telekommandos durchgeführt. Seit den enormen Fortschritten bei der Bord-Datenverarbeitung (schnelle Prozessoren, große Datenspeicher, intelligente Software-Konzepte) wird die Datenauswertung und Umschaltung zur Fehlerkorrektur mehr und mehr autonom vom Satellitensystem selbst ausgeführt.

Wegen der erforderlichen umfangreichen Überprüfungsmaßnahmen eines komplexen Bordsystems und dem damit verbundenen Zeit- und Kostenaufwand wird die zunehmende Autonomie in Hinsicht auf Fehlerkorrektur nur in kleinen Schritten realisiert, denn anders als bei Systemen auf der Erde kann eine falsche Fehlerkorrektur zum kompletten Verlust eines Satelliten führen.

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

  • Thomas Becker: Transparente Fehlertoleranz in verteilten Systemen. Shaker, ISBN 3-8265-1194-8.
  • Jürgen Eich: Fehlertoleranz durch robuste Regelung am Beispiel eines redundanten elektrohydraulischen Stellantriebs. Shaker, ISBN 3-8265-6229-1.
  • Stefan Petri: Lastausgleich und Fehlertoleranz in Workstation-Clustern. Shaker, ISBN 3-8265-2471-3.
  • Alexander Krautstrunk: Fehlertolerantes Aktorkonzept für sicherheitsrelevante Anwendungen. Shaker, ISBN 3-8322-4203-1.
  • Diskussionskreis Fehlertoleranz 2005. Shaker, ISBN 3-8322-4427-1.
  • Sergio Montenegro: Sichere und fehlertolerante Steuerungen: Entwicklung sicherheitsrelevanter Systeme. Hanser, ISBN 3-446-21235-3.
  • Karsten Grans: Das Duplexsystem mit Rückwärtsbehebung – ein kombiniert redundantes Fehlertoleranzverfahren für verteilte Systeme. Logos, ISBN 3-89722-591-3.
  • Klaus Echtle: Fehlertoleranzverfahren. Springer, ISBN 3-54052-680-3. (online)
  • Jürgen Stoll: Fehlertoleranz in verteilten Realzeitsystemen – Anwendungsorientierte Techniken. Springer, ISBN 3-54052-331-6.
  • Hubert Mäncher: Fehlertolerante dezentrale Prozessautomatisierung. Springer, ISBN 3-54018-754-5.
  • Rolf Hedtke: Mikroprozessorsysteme: Zuverlässigkeit, Testverfahren, Fehlertoleranz. Springer, ISBN 3-54012-996-0.
  • Winfried Görke, H. Sörensen: Fehlertolerierende Rechensysteme. Springer, ISBN 3-54051-565-8.
  • J. Schneider: Fehlerreaktion mit Speicherprogrammierbaren Steuerungen – ein Beitrag zur Fehlertoleranz. Springer, ISBN 3-54058-170-7.
  • Franz-Josef Markus: Verteilte dynamische und fehlertolerante Prozeßzuordnung für Multicomputer mit einer integrierten graphischen Entwicklungsumgebung. Tectum, ISBN 3-82881-082-9.
  • Uwe Gläser, Uwe Steinhausen: Fehlererkennung und Fehlertoleranz beim assoziativen RAM-Speicher (ARAM). GMD-Forschungszentrum Informationstechnik, ISBN 3-88457-172-9.
  • Jürgen Nikolaizik, Boris Nikolov, Joachim Warlitz: Fehlertolerante Mikrocomputersysteme. Verlag Technik, ISBN 3-34100-859-4.
  • Sven Nilsson: Konzept und Architektur eines fehlertoleranten Mehrmikrorechner-Systems. ISBN 3-81072-148-4.
  • Mario DalCin: Fehlertolerante Systeme: Modelle der Zuverlässigkeit, Verfügbarkeit, Diagnose und Erneuerung. ISBN 3-51902-352-0.
  • Lavrentios Servissoglou: TUFT – Tübinger Fehlertoleranz für Nachrichtenaustauschsysteme. ISBN 3-89722-037-7.
  • Norbert Becker: Entwurf und Implementierung eines fehlertoleranten Datenerfassungssystems für SPS-Steuerungen. ISBN 3-93121-634-9.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. . Abgerufen am 27. Oktober 2012.