Hartner, G. (2008). Safety Supervision Layer : fault detection for operating systems in fail-safe environments [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/186420
Safety; Fail-Safe; Operating System; POSIX; Linux; Fault detection; System Safety
en
Abstract:
This work deals with fail-safe applications in a railway context and describes a way to produce safety-relevant software more efficiently. Fail-safe systems in this context have to be shut down if they produce erroneous results in order to guarantee that neither material nor people are harmed. Those errors have to be detected.<br />Safety-critical applications run on operating systems, operating systems provide interfaces to the hardware those systems run on. Hence not only those applications themselves, but also operating systems as well as hardware are possible sources of failure. As they are potential sources of failure, they have to be validated and verified, their functionality has to be monitored, which is costly in terms of man hours and increases time-to-market for the considered products.<br />Currently whole operating systems and their specific functions have to be verified line by line by experts. Nowadays operating systems get more and more complex and change rapidly. For every system or version change they have to be evaluated again. Complex hardware tests have to be written to match the different architectures. When used hardware changes, tests have to be re-written and re-verified.<br />The approach used in this work is to provide end-to-end checking by creating a layer between the safety-relevant applications and the operating system interface. This safety supervision layer offers the applications functions enriched with fault detection features. The ultimate goal of the layer is to provide the application developer with the guarantee that every fault situated in the layers below - may it either be somewhere in the operating system or the hardware - is detected and the system is shut down in order to prevent hazardous situations.<br />The end-to-end checking approach is a generic way to check for failures as it checks if a given result is plausible respective to a given specification. To stay on this generic track the layer is intended to be above the Portable Operating System Interface, which is implemented by many systems. As there are faults that may not be checked in that end-to-end way directly when calling a function, a watchdog structure is suggested in this work.
de
Diese Arbeit behandelt Fail-Safe Eisenbahn-Applikationen.<br />Fail-Safe Systeme kennen einen sicheren Zustand, in den sie im Fehlerfall gebracht werden und abgeschaltet werden können, ohne Menschen oder Material zu gefährden. Diese Fehler müssen von Seiten des Systems erkannt werden. Sicherheitskritische Anwendungen laufen auf Betriebssystemen, Betriebssysteme laufen auf Hardware. Daher sind nicht nur die Anwendungen selbst, sondern auch Betriebssystem und Hardware potentielle Fehlerquellen. Weil sie mögliche Fehlerquellen darstellen, müssen sie sorgfältig verifiziert und validiert werden, ihr Funktionieren überwacht. Dies ist sehr teuer, was den Personalaufwand betrifft, und erhöht die Entwicklungszeit für die betreffenden Produkte.<br />Zur Zeit müssen ganze Betriebssysteme und ihre Funktionen Zeile für Zeile von Experten verifiziert werden. Heutzutage werden diese immer komplexer und ändern sich schnell. Für jede neue Version oder Änderung wird der Code erneut überprüft. Komplexe Hardware-Test werden entwickelt werden, um unterschiedlichen Architekturen zu genügen. Ändert sich die zu überprüfende Hardware, müssen die komplexen Tests neu geschrieben werden.<br />Als Lösungsvorschlag beschreibt diese Arbeit einen Safety-Layer zwischen den Applikationen und dem Betriebssystem. Diese Schicht bietet den Zugriff auf herkömmliche System Calls über Wrapper-Funktionen, die mit Features zur End-to-End-Fehlerdetektion angereichert sind. Das ultimative Ziel dieses Layers ist, dem Entwickler die Garantie zu bieten, dass alle Fehler, die ihren Ursprung unterhalb dieser Schicht haben, verlässlich erkannt werden. Die Anwendung wird davon mittels Signalen in Kenntnis gesetzt und kann das System in einen sicheren Zustand bringen, um Gefahrensituationen zu vermeiden.<br />Dieser End-to-End-Ansatz überprüft, ob ein geliefertes Ergebnis plausibel im Sinne einer Spezifikation ist. Um diesen allgemeinen Anspruch weiter zu führen, setzt die Schicht auf dem Portable Operating System Interface auf. Zusätzlich zu den Fehlererkennungs-Funktionen wird eine Watchdog-Struktur für generelle Systemfehler vorgeschlagen.<br />