Skip to main content

1990 | Buch

Fehlertoleranzverfahren

verfasst von: Klaus Echtle

Verlag: Springer Berlin Heidelberg

Buchreihe : Studienreihe Informatik

insite
SUCHEN

Über dieses Buch

Dieses Buch beschreibt die grundlegenden Verfahren zur Tolerierung von Fehlern, die in Rechensystemen auftreten. Besondere Beachtung finden Fehlertoleranz-Maßnahmen für verteilte Systeme, da diese eine zunehmende Bedeutung erlangen. Die Ansätze zur Vermeidung von Zuverlässigkeitsengpässen durch Fehlertoleranz-Instanzen, die selbst fehlertolerant sind, werden ausführlich diskutiert. Die Darstellung ist weniger auf die Beschreibung existierender fehlertoleranter Rechensysteme ausgerichtet als vielmehr auf eine systematische, weitgehend implementierungsunabhängige Klassifikation der verschiedenen Schritte zur Fehlertoleranz und ihrer Varianten. Es wird ein Überblick gegeben, der die Entwurfsalternativen bei der Realisierung von Fehlertoleranz-Verfahren aufzeigt und ihre Auswirkungen auf Zuverlässigkeit, Leistungsfähigkeit und andere Eigenschaften eines Rechensystems verdeutlicht.

Inhaltsverzeichnis

Frontmatter
1. Einführung
Zusammenfassung
Das Prinzip, Systeme so zu konstruieren, daß sie nach Auftreten von Fehlern in einzelnen Komponenten als Ganzes noch funktionsfähig sind, wurde nicht erst mit dem Aufkommen von Rechensystemen entdeckt, sondern erstreckt sich auf eine Vielzahl technischer, aber auch biologischer Systeme. So werden Kraftfahrzeuge allgemein mit einem Reserverad ausgestattet, Verkehrsflugzeuge verfügen über mehr Triebwerke, als zum Fliegen unbedingt erforderlich wären, und der Mensch besitzt einige Organe doppelt. Wegen der Erhöhung der Komponentenanzahl kann die gewünschte Funktion auch dann noch erbracht werden, wenn eine Komponente versagt. Dank dieser Fehlertoleranz-Fähigkeit kann die Zuverlässigkeit eines Gesamtsystems weit über die seiner einzelnen Komponenten gesteigert werden. Somit lassen sich technische Grenzen bei der Konstruktion zuverlässiger Komponenten überwinden.
Klaus Echtle
2. Struktur-Funktions-Modell
Zusammenfassung
Das Verhalten eines Rechensystems bei Auftreten von Fehlern resultiert aus dem Aufeinandertreffen von Fehlerwirkungen und den realisierten Gegenmaßnahmen. Die Beschreibung der Fehlertoleranz-Fähigkeit umfaßt somit eine Fehlerbetrachtung und eine Darstellung des eingesetzten Fehlertoleranz-Verfahrens nebst dessen Einbettung in den normalen Rechenbetrieb. Die für ein bestimmtes Verfahren relevanten Fehler sind in einer Fehlervorgabe zusammengefaßt, die sich auf einFehlermodell bezieht (siehe Bild 1.4–1). Als Gegenmaßnahmen sind alle Mittel zu sehen, die ein Fehlertoleranz-Verfahren zur Fehlerdiagnose und -behandlung einsetzt. Obwohl sich für verschiedene Verfahren spezielle Beschreibungsmethoden anbieten, kann ein Struktur-Funktions-Modell; als allgemeines Modell betrachtet werden, auf das sich spezielle Modelle stützen. Ein Struktur-Funktions-Modell grenzt einerseits durch seine Strukturbeschreibung die Bereiche der Fehlerentstehung und -ausbreitung ein und charakterisiert andererseits durch seine wahlweise grobe oder detaillierte Funktionsbeschreibung die Wirkungsweise von Fehlertoleranz-Verfahren. Beide Beschreibungen sind nicht auf die vollständige Darstellung eines Systems ausgerichtet und eignen sich daher kaum für eine rechnergestützte Weiterverarbeitung. Sie sollen vielmehr durch geeignete Abstraktion das Verständnis des Menschen für bestimmte Eigenschaften eines Fehlertoleranz-Verfahrens ansprechen [Rand 79b].
Klaus Echtle
3. Redundanz
Zusammenfassung
Die beiden grundlegenden Schritte eines Fehlertoleranz-Verfahrens, die Diagnose und die Behandlung von Fehlern (siehe Bild 1.4–1), benötigen jeweils zusätzliche Mittel, die über die Erfordernisse des Nutzbetriebs hinausreichen. Zusätzliche Komponenten sind hinzuzufügen und bestehende zum Teil um zusätzliche Funktionen zu erweitern. Auf diese Weise lassen sich Fehlertoleranz-Instanzen zur Ausführung von Fehlertoleranz-Verfahren realisieren und Anwendungsfunktionen (gleichzeitig oder sukzessiv) von mehreren Komponenten ausführen. Alle zusätzlichen Mittel eines Rechensystems sind unter dem Begriff Redundanz zusammengefaßt [NTG 82]:
Klaus Echtle
4. Fehlerdiagnose
Zusammenfassung
Um fehlertolerantes Verhalten zu erzielen, sind zwei Aufgaben zu erfüllen: Fehlerdiagnose und Fehlerbehandlung. Die nachfolgenden Unterabschnitte behandeln die wesentlichen Aspekte der Fehlerdiagnose, soweit sie für Fehlertoleranz-Verfahren allgemein gelten und
  • nicht von der Implementierungsform der Diagnose-Verfahren durch Hardware oder Software sowie
  • nicht vom Ort der Fehlerentstehung in Hardware oder Software abhängen.
Klaus Echtle
5. Rekonfigurierung
Zusammenfassung
Nach Auftreten eines Fehlers befinden sich meist mehrere Komponenten eines Rechensystems in einemFehlzustand. Bezogen auf das Schichtenmodell führt die vertikale Fehlerausbreitung (siehe Abschnitt 2.4.1) z.B. von fehlerhafter Hardware über Funktionsausfälle zu Fehlern des Betriebssystems und der Anwendungsprozesse. Bei vielen Fehlerarten (z. B. permanenten Hardwarefehlern) ist man nicht in der Lage, ohne manuelle Eingriffe eine Fehl erb ehebung in der betroffenen Komponente durchzuführen. Bei automatisch durchzuführenderFehlerbehandlung kann auf Fehlerausgrenzung nicht verzichtet werden. Beispielsweise müssen in einem Mehrrechnersystem fehlerhafte Rechner ausgeschaltet und ihre Anwendungsprozesse auf andere Rechner übertragen werden. Aus der Sicht einer bestimmten Schicht (z. B. der Anwendungsprozesse) ist zunächst dafür zu sorgen, daß künftig keine ausgefallenen Funktionen benutzt werden. Nur noch fehlerfreie Komponenten von tieferen Schichten (z. B. Rechner) sollen Funktionen zur Verfügung stellen. Der Übergang von fehlerhaften auf fehlerfreie Komponenten löst bestehende Funktionszuordnungen auf und ersetzt sie durch neue (siehe Bild 5–1) — eine Änderung der Konfiguration, die alsRekonfigurierung bezeichnet wird.
Klaus Echtle
6. Rückwärtsbehebung
Zusammenfassung
Entsprechend der Darstellung in Abschnitt 1.4 (siehe Bild 1.4–1) ist unter Fehlerbehebung die Rückführung einer Komponente aus einem fehlerhaften in einen fehlerfreien Zustand zu verstehen. Die hier dargestellte Rückwärtsbehebung versucht, auf einen noch fehlerfreien Zustand in der Vergangenheit zuzugreifen. Alle anderen Techniken der Fehlerbehebung sind unter dem Begriff Vorwärtsbehebung zusammengefaßt, der im nachfolgenden Abschnitt 7 erläutert wird. Bei intermittierenden Fehlern reicht die Fehlerbehebung aller Komponenten in dem betroffenen Fehlerbereich als einziges Mittel zur Fehlertoleranz aus. Ausgehend von dem gefundenen fehlerfreien Zustand kann nach anfänglichem Wiederholungsbetrieb der Nutzbetrieb fortgeführt werden. Beipermanenten Fehlern ist die Fehlerbehebung dagegen als Ergänzung zurFehlerausgrenzung zu sehen. Erst nachdem der Rekonfigurator ein System erzeugt hat, bei dem nur noch Funktionen nicht permanent fehlerhafter Komponenten benutzt werden, ist die Beseitigung der Folgefehler durch Schaffung eines fehlerfreien Zustands sinnvoll. Andernfalls kann die Benutzung ausgefallener Funktionen sofort einen erneuten Fehler hervorrufen. Die gemeinsame Anwendung von Fehlerausgrenzung und Fehlerbehebung legt folgende Aufteilung nahe: Permanent fehlerhafte Hardware-Komponenten werden zusammen mit zugehörigen niedrigen Schichten des Betriebssystems ausgegliedert. Die von Folgefehlern in „Mitleidenschaft“ gezogenen Prozesse der höheren Software-Schichten erfahren eine Fehlerbehebung. Unabhängig davon sollte in allen Hardware- oder Software-Komponenten bei diagnostizierten intermittierenden Fehlern eine lokale Fehlerbehebung angewandt werden.
Klaus Echtle
7. Vorwärtsbehebung
Zusammenfassung
Fehlerbehebung hat zum Ziel, ein Subsystem nach Auftreten von Fehlern wieder in einen konsistenten Zustand zu versetzen. Rückwärtsbehebung greift auf in der Vergangenheit abgespeicherte Zustandsinformation zurück. Alternativ dazu bietet sich Vorwärtsbehebung als ein weiteres Fehlerbehebungs-Verfahren an. Der Begriff darf nicht mißverstanden werden: Selbstverständlich gibt es keine Möglichkeit, auf zukünftige Zustandsinformation gezielt zuzugreifen. Man hätte sonst einen „Programmausführungs-Beschleuniger“ geschaffen, der auch unabhängig von Fehlerereignissen nutzbringend zu verwenden wäre. Vorwärtsbehebung bezeichnet vielmehr alle Fehlerbehebungs-Verfahren, die keine Zustandsinformation der Vergangenheit verwenden. Ohne Wissen um die Vergangenheit bleibt als einzige Möglichkeit zur Herstellung eines konsistenten Zustands, Fehlfunktions-Annahmen und anwendungsspezifisches Wissen heranzuziehen.
Klaus Echtle
8. Fehlermaskierung
Zusammenfassung
Fehlertoleranz-Verfahren sind immer dann erforderlich, wenn ein fehlerhaftes Subsystem ein unzulässiges Ergebnis liefert. Um in dieser Situation das korrekte Ergebnis zu erhalten, kann entweder das Subsystem wieder in einen fehlerfreien Zustand versetzt und zur erneuten Berechnung veranlaßt werden (Fehlerbehebung), oder eine zusätzliche Instanz muß aus dem falschen Ergebnis das richtige berechnen (Fehlerkompensierung, siehe dazu die Begriffsübersicht in Bild 1.4–1). Falsche Ergebnisse lassen sich nur auf richtige abbilden, wenn sie noch genügend fehlerfreie Teilinformation enthalten. Ergebnisse müssen daher Informationsredundanz aufweisen, deren Mindestaufwand von der Fehlervorgabe festgelegt wird. Die einfachste Form der Informationsredundanz besteht darin, Ergebnisse mehrfach zu errechnen und unter diesen ein fehlerfreies Ergebnis auszuwählen. Fehlerhafte Ergebnisse werden ausgeblendet und ignoriert. Man kann sich die ein Ergebnis auswählende Fehlertoleranz-Instanz so vorstellen, als enthielte sie eine Maske, die nur fehlerfreie Ergebnisse durchläßt, weshalb dieses Verfahren zur Fehlerkompensierung als Fehlermaskierung und die Fehlertoleranz-Instanz als Maskierer bezeichnet wird.
Klaus Echtle
9. Fehlerkorrektur
Zusammenfassung
Neben der Fehlermaskierung existiert ein weiterer Ansatz zur Fehlerkompensierung, die Fehlerkorrektur. Während Fehlermaskierung aus mehreren Ergebnissen, die von je einem der redundanten Subsystemexemplare (z.B. Prozeßexemplare) erarbeitet wurden, ein fehlerfreies Ergebnis auswählt (z. B. durch Mehrheitsentscheidung), geht Fehlerkorrektur von nur einem Subsystemexemplar und folglich nur einem Ergebnis aus. Ist der vorliegende Ergebniswert fehlerhaft, so wird aus diesem ein fehlerfreier errechnet. Die
Fehlerkorrektur bildet einzelne fehlerhafte Ergebnisse, die genügend Informationsredundanz enthalten, auf fehlerfreie ab.
Klaus Echtle
10. Entwurf von Fehlertoleranz-Verfahren
Zusammenfassung
Die vorangehenden Abschnitte haben die verschiedenen Wege zur Fehlertoleranz von Rechensystemen aufgezeigt, indem sie einzelne Verfahrens-Schritte getrennt betrachtet und jeweils die grundsätzlichen Alternativen zur Realisierung aufgezeigt haben. Damit eröffnet sich für den Entwerfer ein breites Feld, aus dem er unter Berücksichtigung von Fehlervorgabe und Leistungsanforderungen geeignete Ansätze auswählen und aus ihnen ein Fehlertoleranz-Verfahren konstruieren kann. Auf die Verträglichkeit bzw. Unverträglichkeit verschiedener Alternativen ist bei ihrer Beschreibung bereits eingegangen worden. Ebenso wurde ausgeführt, welche Schritte mindestens gemeinsam auszuführen sind, damit ein vollständiges Fehlertoleranz-Verfahren entsteht.
Klaus Echtle
11. Absichten, Einsichten und Aussichten
Zusammenfassung
Der Benutzer eines Rechensystems fordert spezifikationsgerechtes Verhalten bezüglich aller relevanten Funktionen. Hardware- und Softwarefehler können aber Subsysteme so beeinträchtigen, daß die Gesamtfunktion ausfällt. Mit einem Fehlertoleranz-Verfahren wird daher die Absicht verfolgt, daß sich ein intern fehlerhaftes Rechensystem nach außen wie ein fehlerfreies verhält. Fehlertoleranz sollte eine rein rechnerspezifische und keine anwendungsspezifische Eigenschaft sein, so daß sich der Benutzer nicht weiter mit ihr befassen muß. Konsequenterweise wird er ein fehlertolerantes System wünschen, bei dem die Funktionen des Nutzbetriebs, die Kompatibilität mit der Systemumgebung, der Benutzungskomfort, die Antwortzeiten, der Durchsatz und die Kosten mit einem nicht fehlertoleranten System übereinstimmen. Darüber hinaus kann die Absicht, von Fehlern „abstrahieren“ zu dürfen, nicht nur auf das tatsächliche, sondern auch auf das garantierte Systemverhalten bezogen werden: Es werden Zuverlässigkeits- und Sicherheitsnachweise verlangt, die sich primär auf alle möglichen Fehler beziehen.
Klaus Echtle
Backmatter
Metadaten
Titel
Fehlertoleranzverfahren
verfasst von
Klaus Echtle
Copyright-Jahr
1990
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-642-75765-5
Print ISBN
978-3-540-52680-3
DOI
https://doi.org/10.1007/978-3-642-75765-5