Konstruktive Zuverlässigkeit: Eine Methodik für zuverlässige Systemsoftware auf unzuverlässiger Hardware

Language
de
Document Type
Doctoral Thesis
Issue Date
2016-04-19
Issue Year
2016
Authors
Hoffmann, Martin
Editor
Abstract

Shrinking transistor sizes and reduced supply voltages, in combination with enhance CPU frequencies, increase the susceptibility of recent processors against external interference, as for example cosmic radiation. These emerge in terms of transient hardware faults, which can temporarily influence the system behavior, without necessarily leading to permanent damage. While this topic is well known in the aerospace domain and generally tackled by costly hardware-based redundancy, the problem spreads to further safety-critical domains, as the automotive industry. Especially in this domain, an increased use of computer-aided applications, from driver assistance systems to autonomous driving, arises, which have to ensure functional safety also under the influence of transient hardware faults.

Hardware-based redundancy is often no viable solution, due to unbearable limitations in terms of cost, weight and other resources. On the contrary, especially the automotive domain shows a trend towards the consolidation of different applications onto single control units. Thus, alternative solutions have to be found, to provide functional safety. Software-based measures are a cost-efficient solution to selectively harden applications. Existing solutions often focus solely on the application layer, disregarding the operating system which acts a reliable computing base also for overlaying dependability measures.

This thesis describes the design concept of the dOSEK operating system, which aims to provide a reliable computing base even on unreliable hardware. dOSEK was developed from scratch with dependability as the first-class design goal. This dependability is based on two pillars: Strict fault avoidance and constructive integration of fault detection. Based on the inherent robustness of a static system design dOSEK is tailored to the dedicated needs of each specific application scenario. Vulnerable system state is reduced to a minimum. Further, different kinds of indirections, both regarding data flow as well as control flow, act as a major catalyst for silent data corruptions. An extensive static analysis of the entire system allows to determine the expected overall system behavior according to the OSEK specification. This knowledge about all possible system states and transitions leverages further tailoring of the system software up to an almost entire elimination of indirections. Any remaining, unavoidable vulnerable run-time state is then protected by a combination of tailored redundancy measures. Besides assertions on the expected system behavior based on the static system analysis, further fault detection and fault masking measures are applied selectively. Here, dOSEK’s prime directive is the fault containment within the kernel execution: Faults during the execution of the kernel may not silently propagate up to the application layer. Extensive emulation-based fault injections comparing against an industry-grade OSEK operating system and real-world radiation experiments show the effectiveness of the dOSEK design concept.

Abstract

Sinkende Strukturgrößen und verringerte Versorgungsspannungen, zusammen mit einer steten Steigerung der Taktfrequenz, erhöhen die Anfälligkeit aktueller Prozessoren gegenüber externen Störeinflüssen, wie zum Beispiel Höhenstrahlung. Diese äußern sich durch transiente Hardwarefehler, die das Verhalten des Systems kurzfristig beeinflussen können, ohne jedoch zwangsläufig zu dauerhaften Schäden zu führen. Während diese Problematik in der Luft- und Raumfahrt lange bekannt ist und durch kostenaufwändige Hardwareredundanz angegangen wird, erreicht die Problemstellung zunehmend weitere sicherheitskritische Domänen, wie beispielsweise die Automobilbranche. Gerade hier verzeichnet sich ein vermehrter Einsatz rechnergestützter Anwendungen, von Fahrerassistenzsystemen bis hin zu autonomen Fahren, die funktionale Sicherheit auch unter Einfluss transienter Fehler garantieren müssen.

Hardwarebasierte Redundanz scheidet an dieser Stelle aufgrund von Kosten-, Gewichts-, oder sonstiger Ressourcenbeschränkungen häufig aus. Vielmehr schreitet stattdessen die Konsolidierung verschiedener Anwendungen auf einzelne Steuergeräte voran, sodass zur Einhaltung der funktionalen Sicherheit alternative Lösungen zu suchen sind. Softwarebasierte Redundanzmaßnahmen bieten hier die Möglichkeit selektiv und kosteneffizient Anwendungen abzusichern. Existierende Ansätze konzentrieren sich jedoch oft ausschließlich auf die Ebene der Anwendung und lassen dabei das Betriebssystem außer Acht, welches jedoch als Perfektionskern (engl. reliable computing base) gerade die Grundlage aller Redundanzmaßnahmen darstellt. Diese Dissertation beschreibt Entwurfskonzepte für ein Betriebssystem, welches als zuverlässiger Perfektionskern auf unzuverlässiger Hardware dienen soll. Die Entwicklung hat dabei von Beginn an den Aspekt Zuverlässigkeit als oberstes Entwurfsziel. Diese Zuverlässigkeit ruht auf zwei Säulen: Konstruktive Fehlervermeidung und ergänzende Fehlertoleranz. Basierend auf der inhärenten Robustheit eines statischen Systementwurfs wird das Betriebs- system auf die jeweiligen Anforderungen einzelner Anwendungsszenarien maßgeschneidert. Anfälliger dynamischer Systemzustand wird hierbei auf ein Minimum reduziert. Als entscheidender Katalysator für unerkannte Datenfehler (engl. silent data corruptions) zeigen sich außerdem Indirektionen, sowohl im Daten-, als auch im Kontrollfluss. Eine stark erweiterte statische Analyse des Gesamtsystems erlaubt das erwartete Systemverhalten, entsprechend der Betriebssystemspezifikation, zu bestimmen. Dieses umfangreiche Wissen über mögliche Systemzustände und -übergänge ermöglicht eine weitere Maßschneiderung der Systemsoftware bis hin zur fast vollständigen Vermeidung anfälliger Indirektionen. Verbleibender, unvermeidlicher dynamischer Systemzustand wird anschließend gezielt durch Hinzufügen von Redundanz abgesichert. Neben der Überprüfung des erwarteten Laufzeitverhaltens, basierend auf der statischen Systemanalyse, werden zielgerichtet Maßnahmen zur Fehlererkennung und -maskierung eingesetzt. Oberste Direktive ist hierbei die Eindämmung von Fehlern innerhalb des Kernpfades: Fehler während der Ausführung des Perfektionskerns dürfen sich nicht unerkannt zur Anwendungsebene fortpflanzen. Umfangreiche Fehlerinjektionen, im Vergleich zu einem industriell eingesetzten OSEK-Betriebssystem zeigen die Effektivität der Maßnah- men: Die Zuverlässigkeit eines Betriebssystems lässt sich bis an die Grenzen der per Software handhabbaren Fehlerstellen ausweiten.Die Kernbeiträge dieser Dissertation umfassen damit Entwurfs- und auch Umsetzungskonzepte für zuverlässige Echtzeitbetriebssysteme. Eine umfassende statische Analyse des Gesamtsystems, über die Kern–Anwendungsschnittstelle hinaus, dient dabei als Grundlage für maßgeschneiderte Fehlervermeidungs- und Fehlertoleranzstrategien.

DOI
Faculties & Collections
Zugehörige ORCIDs