Projekttag Informatik 2015

TRES

In sicherheitskritischen Anwendungen wird für eingebettete Systeme eine extrem hohe Zuverlässigkeit gefordert. Insbesondere muss das eingebettete System auch dann funktionieren, wenn Teile des Systems, wie zum Beispiel einzelne Prozessoren, eine Fehlfunktion haben.

Die Wahrscheinlichkeit der Einsatzbereitschaft bzw. auch die Verfügbarkeit des Systems kann dadurch gesteigert werden, dass Teile des Systems redundant ausgelegt werden. Hierbei ergeben sich für die Programmierung unterschiedliche Probleme, zum Beispiel muss der Systemzustand zwischen den redundanten Teilsystemen konsistent gehalten werden, sodass ein beliebiger Teil des Systems ausfallen kann, ohne einen Datenverlust zu verursachen. Auch das korrekte Zeitverhalten muss garantiert werden, wenn zeitkritische Steuerungsaufgaben ausgeführt werden.

Jeder Thread, der in einem Prozessor ausgeführt wird, stellt einen Programmablauf dar. Durch das gezielte Beobachten und Sichern des Zustandes eines Threads (also der Werte aller explizit oder implizit enthaltenen Variablen) werden die redundante Auslegung und sogar das Verschieben von Threads zwischen Prozessoren (Migration) möglich.

Das Bachelor-Projekt TRES (Thread Level Redundancy for Embedded Systems), betreut durch die Arbeitsgruppe Zuverlässige Eingebettete Systeme unter der Leitung von Prof. Dr.-Ing. Görschwin Fey, entwickelt ein redundantes Netz aus STM32F4-Microcontrollern. Das System soll sich unter Echtzeit-Bedingungen korrekt verhalten, auch wenn einzelne Komponenten ausfallen. Die Script-Sprache Lua wird verwendet, damit ein Thread als ausgeführtes Script und zugehöriger Kontext betrachtet wird. Zum Nachweis der Korrektheit des Konzepts kommen Methoden aus den Bereichen Verifikation und Test zum Einsatz. Es wird ein Demonstrator entwickelt, um die Arbeitsweise des entwickelten Systems zu veranschaulichen.