Ein Angebot von

Automatische Multi-Core-Echtzeitvalidierung

| Autor / Redakteur: Felix Martin, Andreas Sailer, Michael Deubzer, Jürgen Mottok* / Christine Kremser

(Bild: gemeinfrei/Pixabay / CC0)

Dieser Beitrag zeigt am Beispiel des freien Echtzeitbetriebssystemes Erika Enterprise einen modellbasierten Ansatz, um die Einhaltung von sicherheitskritischen Echtzeitanforderungen mittels Tracing über den kompletten Entwicklungsprozess zu überwachen.

Ein modellbasierter Entwicklungsansatz erlaubt es bereits in der Planungsphase von Softwareprojekten die Einhaltung von systemkritischen Anforderungen und Beschränkungen sicherzustellen [1]. Dazu wird ein Modell erstellt, welches das zeitliche Verhalten des Systems beschreibt.

Ein solches Modell besteht aus einem Hardware-, einem Betriebssystem- und einem Anwendungsteil. Der Hardwareteil beschreibt abstrakt das Verhalten des Prozossers auf dem die finale Applikation ausgeführt werden soll. Der Betriebssystemteil modelliert das Verhalten von Serviceroutinen, wie zum Beispiel die Anzahl an Instruktionen, die für eine Inter-Prozess-Aktivierung notwendig sind. Das Anwendungsmodell bildet die eigentliche Funktionalität der Applikation ab. Echtzeitkritische Softwaresysteme setzen sich aus verschiedenen Tasks zusammen, die wiederum anwendungsspezifische Funktionen, sogenannte Runnables, aufrufen.

Basierend auf einem solchen Modell können dann Anforderungen hinsichtlich des geforderten Zeitverhaltens definiert werden. Anforderungen können für alle Objekte die im Anwendungsteil des Modells bestimmt sind gestellt werden. Ein klassisches Beispiel hierfür ist die maximale Reaktionszeit einer Task, also die Zeit von ihrer Aktivierung bis zur Terminierung. Anforderungen an Datenabhängigkeiten können in Form von Data-Age-Constraints festgehalten werden [2]. Außerdem erlauben es sogenannte Ereignissketten Zeitanforderungen für die Ausführung einer beliebigen Folge von Systemereignissen festzulegen.

Mit Hilfe einer diskreten Event-Simulation ist es nun möglich das Laufzeitverhalten der finalen Applikation basierend auf einer solchen Systembeschreibung zu berechnen. Das Ergebnis ist ein sogenannter Trace – eine Abfolge von Ereignissen, die das Echtzeitverhalten des Systems wiedergeben. Dieser Trace kann nun ausgewertet und mit den definierten Anforderungen verglichen werden, welcher in Bild 1 (vgl. Bildergalerie) dargestellt ist. So lassen sich Fehler im Systemdesign früh erkennen und beheben.

Auch wenn eine Applikation in die Entwicklungsphase geht, können die gestellten Anforderungen weiterhin validiert werden. Dazu ist es notwendig das Verhalten der Software auf der Zielplattform aufzuzeichnen – ein Prozess der als Tracing oder Trace Recording bekannt ist. Der erste Teil dieses Beitrags zeigt die verschiedenen Möglichkeiten um Traces von der Hardware aufzuzeichnen. Aufgezeichnete Traces sind üblicherweise nicht in einem Format das für die Validierung der Echtzeitanforderungen geeignet ist. Aus diesem Grund erläutert der zweite Teil welche Schritte zur Überführung in ein geeignetes Format notwendig sind. Abschließend wird beschrieben wie diese Schritte unter Verwendung des Modells automatisiert werden können.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

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