Ein Angebot von

Systemarchitekturen für sicherheitskritische Systeme

| Autor / Redakteur: David Kalinsky * / Franz Graser

Sicherheitskritische Systeme sind Embedded-Systeme, bei denen Fehler oder Ausfälle bzw. Fehlfunktionen zu ernsthaften Verletzungen oder sogar zum Tod von Menschen führen können. Doch dabei sind nicht nur schwere anlagen gemeint, auch Sysstemfehler in alltäglichen Anwendungen können in diese Kategorie fallen.
Sicherheitskritische Systeme sind Embedded-Systeme, bei denen Fehler oder Ausfälle bzw. Fehlfunktionen zu ernsthaften Verletzungen oder sogar zum Tod von Menschen führen können. Doch dabei sind nicht nur schwere anlagen gemeint, auch Sysstemfehler in alltäglichen Anwendungen können in diese Kategorie fallen. (Bild: Clipdealer)

Firma zum Thema

Vernünftige Systemarchitekturen für sicherheitskritische Systeme (Safety Critical Systems) sind unbezahlbar - dienen sie doch dazu, Menschenleben zu schützen. Eine Risikoeinschätzung und ein vernünftiges Grunddesign sind hier essentiell, denn auch alltägliche Systeme können sicherheitskritisch sein.

Sicherheitskritische Systeme sind Embedded-Systeme, bei denen Fehler oder Ausfälle bzw. Fehlfunktionen zu ernsthaften Verletzungen oder sogar zum Tod von Menschen führen können. Dabei denkt man zunächst z.B. an Flugleitsysteme, Drive-by-Wire in Fahrzeugen, Kernreaktor-Steuerungen oder Herz-Lungen-Maschinen in einem OP. Doch auch ganz alltägliche Systeme können sicherheitskritisch sein, z.B. ein elektrischer Fensterheber im Auto.

Beispiel: Ein Kleinkind streckt am Drive-In-Schalter den Arm aus dem Fenster, um nach einem Päckchen Ketchup zu greifen, und stützt sich dabei versehentlich auf dem Fensterheber-Schalter ab – das Fenster geht zu und klemmt den Arm ein oder verletzt das Kind noch schlimmer. Kleinere Systemfehler oder Probleme können sich schnell in eine Kaskade lebensbedrohlicher Ausfälle (Failures) verwandeln, wie in Abbildung 1 dargestellt.

Faults sind Fehler oder Probleme, die Ausfälle (Failures) verursachen können. Solche Faults sind manchmal nur geringfügig, z.B. ein blockiertes Speicherbit, eine nicht initialisierte Software-Variable oder ein kosmischer Strahl, die sich seinen Weg durch ein Embedded-System bahnt. Ein Fault kann (muss aber nicht) einen Zustandsfehler (Error) zur Folge haben. Ein Error manifestiert einen Fault; es kommt also zu einem unerwarteten Verhalten in unserem System. Dies äußert sich z.B. in falschen Rechenergebnissen oder einem ungültigen Wert für eine Zustandsvariable.

Zustandsfehler können (müssen aber nicht) einen Ausfall verursachen. Ein Ausfall lässt sich als Situation definieren, in der ein System (oder ein Teil des Systems) den vorgesehenen Dienst nicht erbringt. Wie in Abbildung 1 gezeigt, kann ein Ausfall auf einer unteren Systemebene auf einer höheren Ebene einen Fault darstellen, welcher dort dann Zustandsfehler (Errors) verursachen kann. Oder er verursacht Ausfälle, welche dann auf einer noch höheren Ebene einen Fault darstellen können. Wenn sich diese Faults ungehindert zu Ausfällen auf Systemebene entwickeln, kann dies ernsthafte Verletzungen oder sogar den Tod von Menschen zur Folge haben.

Sicherheit vs. Hochverfügbarkeit

Vielleicht denkt der eine oder andere jetzt: “Das klingt langsam wie diese Sachen über ‘Hochverfügbarkeit‘, die ich vor drei Jahren im Embedded Systems Programming Magazin gelesen habe.“ Zwar gibt es ein paar Berührungspunkte zwischen dem Entwurf sicherheitskritischer Systeme und dem Entwurf hochverfügbarer Systeme, aber die Zielsetzung ist jeweils eine völlig andere. Oft werden auch oft völlig unterschiedliche Designarchitekturen verwendet.

Bei vielen hochverfügbaren Systemen bedeutet ein Ausfall (Failure) nicht zwangsläufig, dass menschliches Leben gefährdet wird. Diese Systeme sind vielmehr für eine maximale Betriebszeit und minimale Standzeit ausgelegt, und man erwartet von ihnen, dass sie 99,999% der Zeit in Betrieb sind (Verfügbarkeitsklasse 5). Dies entspricht einem Stillstand von weniger als 5 Minuten pro Jahr.

Sicherheitskritische Systeme dagegen sind nicht immer für maximale Betriebszeit ausgelegt. Falls erforderlich, schalten sie sich oder ein Untersystem gezielt ab, z.B. in Situationen, die eine Gefahr für menschliches Leben darstellen. Das System soll in einen „sicheren Zustand“ gebracht werden, um die in Abb. 1 dargestellte Abfolge von Fault zu Hazard zu durchbrechen, ehe es überhaupt zu einer lebensbedrohlichen Situation kommen kann. Bei vielen sicherheitskritischen Systemen, z.B. medizinischen Infusionspumpen oder Bestrahlungssystemen in der Krebstherapie, bedeutet dieser „sichere Zustand“, dass das System sofort anhält und abschaltet.

Bei anderen sicherheitskritischen Systemen wiederum gibt es keinen sicheren Zustand – Anhalten kommt bei ihnen nicht infrage, z.B. Triebwerksregler im Flugzeug oder Beatmungsgeräte. Es gibt auch sicherheitskritische Systeme, für die sichere Zustände existieren. Um das System in einen solchen Zustand zu überführen, ist jedoch erst eine komplexe und lange Abfolge von Aktivitäten zu durchlaufen.

Ein Beispiel hierfür ist ein Brake-by-Wire-System im Fahrzeug. Wenn man gerade auf der Autobahn fährt, möchte man nicht auf einmal diese Meldung bekommen: „Speicher-Paritätsfehler: Bremsen nicht verfügbar!“. Viel sicherer wäre hier eine Designlösung mit sanfter Leistungsminderung (graceful degradation), die so aussehen könnte: “Fahren Sie zur nächsten Werkstatt: Bremse nur für drei Räder verfügbar!”. Weiteres Beispiel: Ein elektrischer Fensterheber im Auto muss das Fenster vollständig öffnen, wenn beim Hochfahren des Fensters ein Hindernis erkannt wird. Solche Systeme dürfen nicht stehenbleiben oder abschalten, wenn eine Gefahr erkannt wird, sondern ihre Funktionen müssen weiter verfügbar sein, solange Störungen oder Gefahren vorliegen.

Abbildung 2 zeigt das Verhältnis zwischen sicherheitskritischen und hochverfügbaren Systemen in Hinblick auf Gefährdungen und sichere Zustände.

Sicherheitskritische Infusionspumpen und Bestrahlungssysteme würden in den linken Bereich dieses Venn-Diagramms fallen. Triebwerksregler, Beatmungsgeräte, Brake-by-Wire-Systeme und elektrische Fensterheber fallen in den mittleren Bereich, in dem sich sicherheitskritische und hochverfügbare Systeme überschneiden. Hochverfügbare Systeme, die nicht sicherheitskritisch sind, z.B. Online-Banking, Börsensysteme oder Business-Websites, gehören rechts ins Diagramm, ebenso viele Kommunikationssysteme. Davon ausgenommen sind Notrufsysteme („911“ in den USA), die in den mittleren Bereich des Venn-Diagramms fallen.

Den rechten Bereich der Abbildung 2 haben wir kürzlich in einem Beitrag mit dem Titel “Design Patterns für hochverfügbare Systeme” beleuchtet. Viele der dort besprochenen Entwurfsmuster bieten sich auch beim Entwurf sicherheitskritischer Systeme an, die in die Mitte des Diagramms (Abbildung 2) fallen. Der linke und der mittlere Bereich des Diagramms – also der für sicherheitskritische Systeme – wird in diesem Beitrag noch weiter beleuchtet.

Inhalt des Artikels:

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Ausklappen
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Ausklappen
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44853387 / Safety & Security)