Fehlertoleranz in Computersystemen: Klassifikation möglicher Fehler
In dieser Serie möchte ich näher auf mögliche Fehler bzw. Fehlertoleranzen eines Computersystems eingehen. Dafür werden zunächst einige Begriffe und Beispiele vorgestellt, welche Arten von Fehler es gibt.
Fehlertoleranz
Ein System ist fehlertolerant, wenn es trotz des Auftretens unvorhergesehener Fehler weiterhin in der Lage ist seine Funktionen korrekt auszuführen. Ein fehlertolerantes System hat somit die Eigenschaft, dass es bei Auftreten von Fehlern möglicherweise mit verringerter Effizienz oder Genauigkeit weiterarbeitet.Systemsicherheit
Ein System gilt als sicher, wenn die Wahrscheinlichkeit auftretender Fehler minimiert ist. Das Konzept der Systemsicherheit befasst sich mit der Minimierung des Fehlerrisikos. Natürlich kann man das Auftreten von Fehlern nie völlig ausschließen.
Klassifikation möglicher Fehler
In der Umgangssprache verwenden wir Begriffe wie Fehler, Defekt, Ausfall, und Error. Während der jeweilige Kontext klar bestimmt was diese Ausdrücke bedeuten, muss man sie für die Fehleranalyse eines Systems genauer definieren. So beschreiben die Begriffe Fehler, und Defekt generell das fehlerhafte Verhalten von Systemkomponenten, wobei die Bezeichnung Error beschreibt, wie sich ein Fehlverhalten eines Systems auswirkt.
So wird häufig das Verhalten eines logischen Schaltkreises, der unabhängig von den jeweiligen Eingangsgrößen immer den Wert 0 aufweist, als Fehler deklariert. Ein Error tritt auf, wenn dieser Wert dann weiterverarbeitet wird, z.B. in einem Addierer, dessen Ergebnis dann demzufolge fehlerhaft ist.
Betrachtet man eine Funktion, bei der dem Programmierer ein Fehler bei der Implementierung unterlaufen ist und daher nur positive Funktionswerte berechnet werden. Es präsentiert sich dieser Fehler allerdings nur als Error, falls die Funktion mit Parametern aufgerufen wird, die zu einem Ergebnis mit negativen Werten führen.
Das Konzept eines Fehlers kann noch weiter aufgeteilt werden:
Permanente Fehler sind Fehler, die bei Auftreten die jeweilige Komponente oder das System permanent außer Betrieb setzen.
Transiente Fehler sind solche Fehler, die dazu führen, dass eine Komponente oder ein System für ein bestimmtes Zeitintervall nicht korrekt arbeitet. Nach diesem Zeitintervall ist der Fehler nicht mehr präsent und das korrekte Systemverhalten ist wiederhergestellt.
Sporadische Fehler sind generell immer präsent, zeigen sich allerdings nur in unregelmäßigen Intervallen als Fehlverhalten des Systems.
Transiente und sporadische Fehler lassen sich häufig sehr schwer finden, da ihr Auftreten oft keinem vorhersehbaren Muster folgt. So ist es zum Beispiel schwer einen Programmierfehler zu identifizieren, der nur bei bestimmten Konfigurationen der Eingangswerte oder Parameter auftritt.
Hier setzt man spezielle Verfahren der Softwaretechnik ein, die sich mit dem Testen von Software und der Identifikation von Fehlern befassen, die
daten- oder konfigurationsabhängig sind.
Viele Fehler können in unkritische und kritische Fehler klassifiziert werden. So ist beispielsweise ein Fehler, der ein System zu einem kompletten Stillstand bringt als unkritisch anzusehen, wenn keine falschen Resultate generiert werden.
In diesem Kontext umfassen die kritischen Fehler solche, die verfälschte Werte an andere Komponenten weitergeben und somit fehlerhafte Ergebnisse erzeugen. Exemplarisch für einen kritischen Fehler betrachtet man ein System, das durch das Austauschen von Messwerten mit anderen Systemen oder Komponenten Entscheidungen koordiniert. Wenn das System allen Komponenten die gleichen Messwerte mitteilt, können alle Teilsysteme unabhängig voneinander Entscheidungen treffen, die mit den bekannten Messwerten korrespondieren. Wenn nun das System aber unterschiedliche Messwerte an die Teilsysteme verteilt, so werden diese nicht in der Lage sein, ein konsistentes Ergebnis zu errechnen und somit möglicherweise eine inkonsistente Entscheidung treffen.
Quellen
Koren, I. and Mani Krishna , C. (2007). Fault-Tolerant Systems. CA: Elsevier.
http://sites.science.oregonstate.edu/~landaur/INSTANCES/WebModules/1_ComputerPrecision/PrecisionFiles/Pdfs/PrecisionII_15Sept.pdf