Skip to main content

2015 | Buch

Betriebssysteme und Echtzeit

Echtzeit 2015

herausgegeben von: Wolfgang A. Halang, Olaf Spinczyk

Verlag: Springer Berlin Heidelberg

Buchreihe : Informatik aktuell

insite
SUCHEN

Über dieses Buch

Mit seinem Workshop 2015 zum Thema "Betriebssysteme und Echtzeit" bietet der GI/GMA/ITG-Fachausschuss Echtzeitsysteme Wissenschaftlern, Nutzern und Herstellern ein Forum an, auf dem neue Trends und Entwicklungen zu folgenden Programmschwerpunkten vorgestellt werden: Schnittstellen und Architekturen, Mikrokernbasierte Betriebssysteme, Anwendungsspezifische Maßschneiderung, Bewertung und systematischer Entwurf von Systemschnittstellen, Modellierung und Simulation, Plattformen, Einsatz von Graphik-Coprozessoren, Multi/Manycore-Systemen, Virtualisierung, Energieeffizienz, Sicherheit und Fehlertoleranz und Programmiersprachen. Berichte zu aktuellen Anwendungen und zur Ausbildung runden die Publikation ab.

Inhaltsverzeichnis

Frontmatter
Testen von Echtzeiteigenschaften für verteilte Ablaufsteuerungen
Zusammenfassung
Im Bereich der industriellen Automatisierung hat die Software-Qualität und damit das systematische Testen eine hohe Bedeutung. In dieser Arbeit wird die Erweiterung eines Testframeworks um die Validierung von Echtzeiteigenschaften für verteilte Zustandsmaschinen vorgestellt. Die Arbeit wurde zusammen mit einem industriellen mittelständischen Kooperationspartner im Bereich industrieller Ablaufsteuerungen durchgeführt. Der Aufbau der domänenspezifischen Testmodellierung und die Testauswertung der Echtzeiteigenschaften als Teil eines modellgetriebenen Testprozesses werden beschrieben, und als Konsequenz aus der Synchronisationsungenauigkeit der Uhren des verteilten zu testenden Systems wird eine Fehlerabschätzung gegeben, die bei der Testauswertung berücksichtigt wird.
Matthias Jurisch, Kai Beckmann
EMSBench: Benchmark und Testumgebung für reaktive Systeme
Zusammenfassung
Benchmark-Suiten für eingebettete Echtzeitsysteme (EEZS) bilden zumeist nur Berechnungen ab, die für solche Systeme typisch sind. Dies ermöglicht die Evaluierung der reinen Rechenleistung, andere Aspekte bleiben dabei aber außen vor. Reaktives Verhalten und die Interaktion zwischen vielen Software-Modulen, wie man sie in heutigen komplexen EEZS findet, werden nicht abgebildet. Im Hinblick auf den Einsatz von Mehrkernprozessoren in EEZS ist dies aber von erheblicher Bedeutung. Die Forschung ist hier auf geeignete Beispielanwendungen angewiesen, um die Praktikabilität neuer Techniken überprüfen zu können. Diese Arbeit unternimmt einen ersten Schritt, diese Lücke zu schließen. Es wird das Software-Paket EMSBench vorgestellt, welches aus zwei Komponenten besteht: (1) Eine quelloffene Steuerungs-Software für Verbrennungsmotoren, die so angepasst ist, dass sie als Benchmark- Programm für komplexe, reaktive EEZS dienen kann. (2) Eine Emulation des Kurbelwellenverhaltens erzeugt die Eingangssignale, die das interne Verhalten des Benchmark-Programms maßgeblich beeinflussen.
Florian Kluge, Theo Ungerer
Prozessorarchitektur zum Einsatz unter sicherheitsgerichteten Echtzeitbedingungen
Zusammenfassung
Moderne Prozessorarchitekturen, die auch in der sicherheitsgerichteten Echtzeitdatenverarbeitung eingesetzt werden, basieren auf Strukturen und Konzepten, die zum Teil aus den Anfängen der Informatik hervorgegangen sind. Dies führte dazu, dass moderne Prozessorarchitekturen nicht geeignet sind, um sicherheitsgerichtete Echtzeitfunktionen auszuführen. Dieser Beitrag geht zu Beginn auf die Probleme der bekannten Prozessortechnologien in Bezug auf sicherheitsgerichtete Echtzeitdatenverarbeitung ein. Anschließend werden für die Funktionalität unerlässliche Anforderungen aufgezeigt. Im Folgenden werden dann Konzepte erarbeitet, die losgelöst von altbekannten und potentiell ungeeigneten Technologien betrachtet werden. Es wird gezeigt, dass die entworfene Prozessorarchitektur alle internen Fehler- und Ausfallmöglichkeiten erkennen und den Großteil davon sogar tolerieren kann.
Daniel Koß
SAKKORO. Eine generische, echtzeitfähige Systemarchitektur für kognitive, kooperierende Roboter
Zusammenfassung
Dieser Beitrag stellt eine generische Systemarchitektur für kognitive, kooperierende Roboter vor und verdeutlicht Einzelheiten am Beispiel des robotergestützten Gangrehabilitationssystems CORBYS. Hauptmerkmal dieser Architektur ist die Integration von zeitund rechenintensiven kognitiven Modulen mit Echtzeitregelungsmodulen. Zudem erleichtert die Systemarchitektur das Hinzufügen neuer Funktionalität durch Bereitstellung einer Softwaremodulvorlage, welche die nötige Kommunikation mit vorhandenen Modulen bereits beinhaltet. Zudem werden internetbasierte Fernverbindungen unterstützt, welche ebenfalls die Systemintegration erleichtern und zur Fernüberwachung des Systems dienen.
Adrian Leu, Danijela Ristić-Durrant, Axel Gräser
CPS-Remus: Eine Hochverfügbarkeitslösung für virtualisierte cyber-physische Anwendungen
Zusammenfassung
Einen Ansatz für die hochverfügbare Absicherung von Anwendungen bietet die Technik der Replikation von virtuellen Maschinen (VMs). Den vorhandenen Implementierungen mangelt es jedoch an der Möglichkeit den Replikationszeitpunkt explizit bestimmen zu können. Das hat zur Folge, dass nur äußerst pessimistische Schranken für die Antwortzeiten von abgesicherten Anwendungen bestimmt werden können. Aus diesem Grund ist im Falle von VMs mit zeitkritischen Anforderungen eine Absicherung entweder nicht möglich oder es muss eine konservative und somit nur unbefriedigende Partitionierung der Systemressourcen erfolgen. In diesem Beitrag stellen wir eine Erweiterung der softwarebasierten Hochverfügbarkeitslösung Remus vor, welche einer VM die explizite Kontrolle über den Replikationszeitpunkt gewährt. Zum einen werden dadurch neue Anwendungsfälle erschlossen. Zum anderen zeigen die in diesem Artikel präsentierten Untersuchungen, dass im Vergleich zum aktuellen Stand der Technik die vorgestellte Erweiterung deutlich deterministischere Antwortzeiten bietet.
Boguslaw Jablkowski, Olaf Spinczyk
Ein hierarchisches Scheduling-Modell für unbekannte Anwendungen mit schwankenden Ressourcenanforderungen
Zusammenfassung
Die Ausführbarkeitsanalyse in Echtzeitsystemen wird extrem komplex bis unmöglich, wenn der Ressourcenbedarf von Anwendungen nicht a priori bekannt ist, von Umgebungsbedingungen abhängt oder wenn Anwendungen dynamisch zu- und abgeschaltet werden sollen. Als Lösungsansatz für weiche Echtzeitsysteme präsentieren wir ein dreistufiges hierarchisches Scheduling-Modell. In jeder Stufe werden Anforderungen mit tatsächlichen Kosten verglichen und notwendige Rekonfigurationen wie bei einer kaskadierten Regelung an die nächste Stufe weitergereicht. Auf oberster Ebene wird trotz beschränkter Ressourcen dynamisch ein optimaler Betriebsmodus für jede Anwendung eingestellt. Dieser wird nur dann verändert, wenn die Vorhersagen der Kosten nicht mehr zutreffen. Anhand unserer RTSJ-basierten Implementierung zeigen wir die Stabilität unseres Modells selbst bei Aktivitäten mit zyklisch schwankenden Anforderungen.
Vladimir Nikolov, Franz J. Hauck, Lutz Schubert
Wartefreie Synchronisation von Echtzeitprozessen mittels abgeschirmter Abschnitte
Zusammenfassung
Wartefreie Synchronisation gibt jedem konkurrierenden Prozess uneingeschränkte Fortschrittsgarantie. Sie ist für Echtzeitsysteme eine mehr als wünschenswerte Eigenschaft, erfordert aber eine adäquate Programmstrukturierung. Im Beitrag werden dazu herkömmliche kritische Abschnitte als sogenannte abgeschirmte Abschnitte ausgelegt. Anders als kritische Abschnitte blockieren Vorzugsprozesse niemals beim Eintritt in einen abgeschirmten Abschnitt, obwohl sie auch einen solchen Abschnitt nur sequentiell passieren dürfen. Konkurrierende Prozesse umgehen einen abgeschirmten Abschnitt, falls notwendig synchronisieren sie sich zu nebenläufigen Zustandsänderungen innerhalb des Abschnitts mit Hilfe von Terminvariablen (futures). In Konsequenz dieser Maßnahme ergeben sich Einschränkungen in den Überlappungsmustern gleichzeitiger Prozesse, wodurch der Weg für einen wartefrei synchronisierten und latenzminimierten Betriebssystemkern geebnet wird.
Gabor Drescher, Wolfgang Schröder-Preikschat
dOSEK: Maßgeschneiderte Zuverlässigkeit
Zusammenfassung
Sinkende Strukturgrößen und verringerte Versorgungsspannungen führen, zusammen mit einer stetigen Taktfrequenzsteigerung, zu einer immer weiter ansteigenden Anfälligkeit aktueller Hardware gegenüber transienten Hardwarefehlern. Ursprünglich im Avionikbereich behandelt, erreicht die Problematik durch Höhenstrahlung verursachter Bitfehler inzwischen auch sicherheitskritische Systeme auf Meereshöhe. Gerade hier finden sich jedoch vermehrt kostensensitive Anwendungsdomänen, insbesondere im Bereich der Automobilbranche, die eine sonst übliche rein hardwarebasierte Redundanz nicht umsetzen können. Hier kommen häufig softwarebasierte Techniken zum Einsatz, die in vielen Fällen jedoch nur die Anwendungsebene absichern, und ein darunterliegendes Betriebssystem als sicher annehmen.
Dieser Beitrag präsentiert die Entwicklung und Entwurfskonzepte des dOSEK Betriebssystems, welches als zuverlässige Ausführungsumgebung auf unzuverlässiger Hardware dienen soll. Der Entwurf basiert auf zwei Säulen: Konstruktive Fehlervermeidung, durch Vermeidung von fehlerträchtigen Indirektionen sowie ergänzende Integration von Fehlertoleranz, unter anderem durch den Einsatz fehlererkennender arithmetischer Kodierung innerhalb des gesamten Kernpfades. Den vollständigen Fehlerraum abdeckende Fehlerinjektionsexperimente zeigen eine deutliche Robustheitssteigerung gegenüber einem vergleichbaren industriell eingesetzten OSEK Betriebssystem.
Martin Hoffmann, Florian Lukas, Christian Dietrich, Daniel Lohmann
Ein Fork-Join-Parallelismus in einer gemischt-kritischen Mehrprozessorumgebung
Zusammenfassung
Wir geben einen Einblick in unsere Fallstudie und präsentieren eine statische Software-Abbildung von Auslastungsinformation der Prozessoren eines Multicore-Systems. Diese Information wird auf hierarchisch untergeordneter Planungsschicht zum Zwecke der Segmentierung von parallelisierbaren Berechnungen nach einem Fork-Join-Prinzip benutzt. Ziel ist die Implementierung einer Untermenge des OpenMPAPI zur Fork-Join-Parallelprogrammierung in einem Echtzeitsystem, welches diese Auslastungsinformation einerseits zum Zwecke der Optimierung heranziehen kann, andererseits auch ein deterministisches und simplifiziertes, d.h. einfach determinierbares, Verhalten ermöglicht.
Marc Bommert
React in Time: Ereignisbasierter Entwurf zeitgesteuerter verteilter Systeme
Zusammenfassung
Die Analyse und Verifikation von Echtzeitsystemen profitiert von einer zeitgesteuerten Implementierung. Jedoch erweist sich aus Entwicklersicht der ereignisorientierte Entwurf als deutlich flexiblerer und einfacher. Diese Arbeit stellt einen Ansatz zur automatisierten Analyse von existierenden Echtzeitsystemen, deren Überführung in eine abstrakte Zwischendarstellung sowie die anschließende Abbildung auf zeitgesteuerte (verteilte) Mehrkernsysteme vor.
Florian Franzmann, Tobias Klaus, Fabian Scheler, Wolfgang Schröder-Preikschat, Peter Ulbrich
Collaborative Resource Management for Multi-Core AUTOSAR OS
Abstract
Although the demand for and availability of multi-core processors in the automotive industry increases, the domain-specific AUTOSAR standard for the development of embedded automotive software, due to its inherent concept for static software designs, does not efficiently solve many of the problems related to the truly parallel execution of tasks in multi-core systems. In this paper we focus on the resource sharing problems inherent to the AUTOSAR Operating System and propose the introduction of a more flexible concept. While regular AUTOSAR tasks are unaware of their resource-related impact on each other, we extend the resource manager to issue so called hints across cores to notify blocking tasks about their spurious influence on the system. This gives them an opportunity to collaborate with other tasks in order to reduce bounded and avoid unbounded priority inversions as well as deadlocks. It also improves the overall system reactivity and allows to share the underlying hardware more efficiently. In the presented test cases, we could reduce the blocking time for spinlocks significantly, without changing the AUTOSAR API, and still keeping the system deadlock free.
Renata Martins Gomes, Fabian Mauroner, Marcel Baunach
Energieverbrauchsanalyse mittels impliziter Pfadaufzählung und genetischer Algorithmen
Zusammenfassung
Der Energieverbrauch stellt eine wichtiger werdende Rolle für zahlreiche eingebettete Echtzeitsysteme dar. Daraus ergibt sich die Notwendigkeit energiegewahrer Einplanungsentscheidungen, die neben Echtzeitanforderungen auch Energiebeschränkungen berücksichtigen. Existierende Werkzeuge zur Analyse der maximalen Ausführungszeit (engl. worst-case execution time, WCET) können hierfür jedoch nicht unmittelbar zur Bestimmung des maximalen Energieverbrauchs (engl. worst-case energy consumption, WCEC) verwendet werden, da der Energieverbrauch nicht zwingend mit der Ausführungszeit auf modernen Prozessoren korreliert und somit eine zuverlässige Ableitung des WCEC aus der WCET nicht möglich ist. Folglich müssen WCEC-Werkzeuge die Eigenschaften des Energieverbrauchs der Zielplattform beachten.
Der präsentierte Ansatz stellt eine Lösung dieses Problems der genauen Bestimmung des WCEC dar. Hierfür kommen neben statischen Analysemethoden auch dynamische, messbasierte Techniken zum Einsatz. Weiterhin verwendet der Ansatz Kombinationen aus Methoden, um entweder die Präzision des Ergebnisses zu verbessern oder die Dauer der Programmanalyse zu reduzieren. Falls präzise, feingranulare Energiekostenmodelle für die Zielplattform vorhanden sind, liefert das präsentierte Werkzeug Ergebnisse basierend auf statischer Programmanalyse durch implizite Pfadaufzählung. Alternativ werden genetische Algorithmen mit approximativen Energiekostenmodellen verwendet, um geeignete Eingabedaten zu identifizieren. Die bestimmten Eingabedaten lassen sich schließlich in einem messbasierten Analyseschritt verwenden, welcher eine Energieverbrauchsabschätzung des analysierten Programms ergibt.
Peter Wägemann
Testanwendungen zur Überprüfung des PEARL-Sprachsystems auf Sprachkonformität
Zusammenfassung
Da die Programmiersprache PEARL eine komfortable Programmierung von Multitasking Anwendungen erlaubt, soll PEARL als Programmiersprache in der Lehre eingesetzt werden. Derzeit entsteht ein PEARL-Sprachsystem [1], namens OpenPEARL90. Das Sprachsystem besteht aus zwei Hauptteilen 1. dem Sprachumsetzer und 2. dem Laufzeitsystem. Als Zwischensprachen wird hierbei C++ eingesetzt um eine einfache Erweiterbarkeit auf neuen Zielplattformen zu gewährleisten.
Um das PEARL-Sprachsystem später in der Lehre einzusetzen, muss dieses auf seine Sprachkonformität getestet werden. Die Sprachkonformität wird anhand der DIN 66253-2 [3] Spezifikation geprüft. Hierfür ist es essenziell, dass die Spezifikation keinerlei Lücken aufweist. Die Testanwendungen werden anhand des Black-Box-Testverfahren für die Plattform Linux entwickelt. Der Schwerpunkt, der Testanwendungen, liegt hierbei in den Bereichen Tasking, Semaphoren und Operatoren.
Christian Ritzler
Globale Kontrollflussanalyse von eingebetteten Echtzeitsystemen
Zusammenfassung
Eingebettete Echtzeitsysteme haben eine dedizierte Funktion und einen vorher festgelegten Funktionsumfang. Daraus resultiert ein hohes Maß an explizitem und implizitem statischem Wissen, dass schon zur Übersetzungszeit fest steht. Dieses hohe Maß an Wissen ermöglicht auf Programmiersprachenebene bereits Optimierungen einzelner Programme. Allerdings stoßen diese Optimierungen an der Betriebssystemschnittstelle üblicherweise an ihre Grenzen, da pessimistische Annahmen über die Auswirkungen des Systemaufrufs getroffen werden müssen. Der Übersetzer muss von einer beliebigen Überlappung der Fäden ausgehen, sodass kein gerichteter Informations- oder Kontrollfluss zwischen diesen angenommen werden darf. In eingebetteten Echtzeitsystemen zeigt sich jedoch ein anderes Bild: Aufgrund der hohen Vorhersagbarkeitsanforderungen, ist das Kernverhalten dieser Systeme häufig deterministisch und exakt spezifiziert.
Dieser Beitrag präsentiert eine Methode zur Extraktion gerichteter, flusssensitiven Kontrollflussabhängigkeiten zwischen einzelnen Ausführungsfäden. Hierfür wird die Spezifikation eines echtzeifähigen Kerns mit der Anwendungskonfiguration und der Anwendungslogik verbunden. Aus dieser Verbindung entsteht der globale Kontrollflussgraph, der die Interaktion zwischen Kern und Anwendung einfängt und systemweite Optimierungen über die Kerngrenzen hinweg ermöglicht.
Des Weiteren beschreiben wir zwei systemweite Optimierungen nichtfunktionaler Eigenschaften, die erst durch unsere Analyse ermöglicht werden. Durch spezialisierte Systemaufrufe senken wir die Kernlaufzeit. Des Weiteren führen zusätzlich eingebrachte Zustandszusicherungen zu einer deutlich Zuverlässigkeitssteigerung gegenüber transienten Hardwarefehlern.
Christian Dietrich, Martin Hoffmann, Daniel Lohmann
Metadaten
Titel
Betriebssysteme und Echtzeit
herausgegeben von
Wolfgang A. Halang
Olaf Spinczyk
Copyright-Jahr
2015
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-662-48611-5
Print ISBN
978-3-662-48610-8
DOI
https://doi.org/10.1007/978-3-662-48611-5