4. Echtzeitaspekte der Software Echtzeitaspekte der Software eingebetteter Systeme 4.1 Grundlagen von Echtzeitsystemen 4.2 Echtzeitprogrammierung 4.3 Aufbau von Echtzeitbetriebssystemen 4.4 Echtzeitscheduling 4.5 Synchronisation und Kommunikation 4.6 Speicher- und IO-Verwaltung 4.7 Klassifizierung und Beispiele von Echtzeitbetriebssystemen
4. Echtzeitaspekte der Software Bei vielen eingebetteten Systemen gibt die Umgebung Zeitbedingungen vor, die das eingebettete System einhalten muss Echtzeitanforderungen Beispiele: Prozesssteuerung Robotik Fahrzeugsteuerung Fertigung ...
4. Echtzeitaspekte der Software Eingebettete Systeme sind daher oft Echtzeitsysteme: Echtzeitsysteme Eingebettete Systeme
4.1 Grundlagen von Echtzeitsystemen Bei Nicht-Echtzeitsystemen kommt es ausschließlich auf die logische Korrektheit der Ergebnisse an Bei Echtzeitsystemen kommt neben der logischen Korrektheit auch die zeitliche Korrektheit der Ergebnisse Rechtzeitigkeit Gleichzeitigkeit Verfügbarkeit
4.1 Grundlagen von Echtzeitsystemen Für alle Echtzeitsysteme gilt: Das Ergebnis von Echtzeit-Datenverarbeitung ist nur dann korrekt, wenn es logisch und zeitlich korrekt ist. Stop Stop logisch korrekt, zeitlich inkorrekt logisch und zeitlich korrekt
4.1 Grundlagen von Echtzeitsystemen Grundbegriffe des Zusammenspiels mit dem Umfeld: Rechtzeitigkeit heißt, die Ausgabedaten müssen rechtzeitig berechnet werden und zur Verfügung stehen. muss Daten rechtzeitig abholen und liefern Ausgabedaten Echtzeit- Datenverarbeitung Technisches Umfeld, Technischer Prozess (Steuerung, Regelung, Überwachung) Eingabedaten diktiert Zeitbedingungen
4.1 Grundlagen von Echtzeitsystemen Varianten zur Angabe einer Zeitbedingung: a) Zeit t b) Zeit tmax c) Zeit tmin d) Zeit tmin tmax Angabe eines genauen Zeitpunktes (Teileauswurf von Förderband) Angabe eines spätesten Zeitpunktes (Deadline, Verlassen Kreuzung) Angabe eines frühesten Zeitpunktes (Entladen) Angabe eines Zeitintervalls (Jitter)
4.1 Grundlagen von Echtzeitsystemen Periodische und aperiodische Zeitbedingungen: a) Zeit t t + p t + 2p t + 3p p: Periodendauer b) Zeit t1 t2 t3 t4 aperiodisch periodische Zeitbedingungen aperiodische Zeitbedingungen
4.1 Grundlagen von Echtzeitsystemen Je nach Strenge der einzuhaltenden Zeitbedingungen unterscheidet man weiche Echtzeitbedingungen (soft deadline) können in gewissen Grenzen überschritten werden, ohne zu fatalen Systemzuständen zu führen(periodische Abfrage Temperatursensor) feste Echtzeitbedingungen (firm deadline) bewirken bei Überschreiten einen Abbruch der Aktion (Überwachung von Verfall, Flugpositionen) harte Echtzeitbedingungen (hard deadline) müssen auf jeden Fall eingehalten werden, anderenfalls droht Schaden (Anhalten vor Ampel) Die Bewertung von Zeitbedingungen kann auch durch eine Wertfunktion erfolgen: Zeit Wert Deadline weich fest hart Wert > 0: ausführen, Wert = 0: abbrechen, Wert < 0: Schaden
4.1 Grundlagen von Echtzeitsystemen Die Gleichzeitigkeit bedeutet, dass die Rechtzeitigkeit für mehrere Aktionen gleichzeitig gewährleistet sein muss . Beispiel: Gleichzeitig durchzuführende Aufgaben bei einem fahrerlosen Transportsystem Transponder- Erkennung Funk- Kommunikation Kamera- Datenverarbeitung FTS Motorsteuerung und -regelung Laserscanner- Datenverarbeitung
4.1 Grundlagen von Echtzeitsystemen Möglichkeiten zur Erfüllung der Gleichzeitigkeit: Vollständige Parallelverarbeitung in einem Mehrprozessorsystem Quasi-parallele Verarbeitung in einem Mehrprozessorsystem Quasi-parallele Verarbeitung in einem Einprozessorsystem Vollständige Parallelverarbeitung, Mehrprozessorsystem Quasi-Parallelverarbeitung, Mehrprozessorsystem Quasi-Parallelverarbeitung, Einprozessorsystem Aufgabe 1 . . . Aufgabe n Aufgabe 1 . . . Aufgabe n Aufgabe 1 . . . Aufgabe n Echtzeit-Scheduler Echtzeit-Scheduler n > m Prozessor 1 Prozessor n Prozessor 1 Prozessor m Prozessor 1 . . . . . .
4.1 Grundlagen von Echtzeitsystemen Die Verfügbarkeit: Echtzeitsysteme müssen über einen längeren Zeitraum hinweg verfügbar sein (z.B. rund um die Uhr). Verfügbarkeit erfordert keine Unterbrechungen des Betriebs für Reorganisationsphasen. Problematisch: Reorganisation von DB, Speicherbereinigung von z.B. Java Speicherreorganisation im Block b) Speicherreorganisation in kleinen Schritten verpasst Betrieb Reorganisation Ereignisse Ereignisse
4.2 Echtzeitprogrammierung Es gibt zwei grundlegende Programmierverfahren: Die synchrone Programmierung zur Konstruktion zeitgesteuerter Systeme. Die asynchrone Programmierung zur Konstruktion von ereignisgesteuerten Systemen.
4.2 Echtzeitprogrammierung 4.2.1 Synchrone Programmierung Das zeitliche Verhalten periodischer Aktionen wird vor deren Ausführung geplant Die periodischen Aktionen werden in ein Zeitraster T synchronisiert (daher Name des Verfahrens) Aktionen werden immer zu ganzzahligen Vielfachen von T ausgeführt Das Zeitraster wird durch einen Zeitgeber gewonnen Die Reihenfolge des Ablaufs der Teilprogramme wird fest vorgegeben
4.2 Echtzeitprogrammierung Vereinfachtes FTS Beispiel mit zwei periodischen Aufgaben Transponder- Erkennung Funk- Kommunikation Kamera- Datenverarbeitung FTS Motorsteuerung und -regelung Laserscanner- Datenverarbeitung
4.2 Echtzeitprogrammierung Aufbau der FTS Steuerung mit einem Mikrocontroller Fahrspur Kameradatenverarbeitung Motorsteuerung Kameradaten T 2T Motordaten Prozessorkern T Zeit- geber Eingabe Ausgabe Mikrocontroller Kamera Motor
4.2 Echtzeitprogrammierung Ablaufplanung und deren Realisierung für die einfache FTS-Steuerung Kameradaten- verarbeitung aufrufen Motorsteuerung t++ t = = 2 ? t = 0 Ende Unterbrechung ja nein Periodische Unterbrechung im Zeitabstand T Initialisierung Ablaufplanung Aufgabe Periode Kameradaten- verarbeitung T Motor- steuerung 2T
4.2 Echtzeitprogrammierung Zeitlicher Ablauf der einfachen FTS-Steuerung 2T Motor- steuerung T Kameradaten- verarbeitung Ruhe T 2T 3T 4T 5T 6T 7T 8T Exakte Einhaltung der Periodenzeiten unter zwei Bedingungen: Die Summe der Ausführungszeiten der einzelnen Aufgaben ist kleiner T. Jede längere Periodenzeit ist ein ganzzahliges Vielfaches der nächst kürzeren Periodenzeit.
4.2 Echtzeitprogrammierung Periodenabweichung bei Summe der Ausführungszeiten größer T 2T Motor- steuerung Kameradaten- verarbeitung T + ta Ruhe T 2T 3T 4T 5T 6T 7T 8T ta: Ausführungszeit Kameradatenverarbeitung + Ausführungszeit Motorsteuerung -T
4.2 Echtzeitprogrammierung Periodenabweichung bei Verletzung ´Periodenzeit ist ganzzahliges Vielfaches der nächst kürzeren Periodenzeit.´ 3T + tk tk: Ausführungszeit Kameradaten- verarbeitung Motor- steuerung 2T Kameradaten- verarbeitung Ruhe T 2T 3T 4T 5T 6T 7T 8T Angestrebte Periodendauer: Kameradatenverarbeitung: 2T Motorsteuerung: 3T
4.2 Echtzeitprogrammierung Die Vorteile der synchronen Programmierung sind offensichtlich: Sie besitzt ein festes, vorhersagbares Zeitverhalten. Sie erlaubt eine einfache Analyse und einen einfachen Test des Systems. Sie ist hervorragend bei zyklischen Abläufen anwendbar. Bei richtiger Planung können Rechtzeitigkeit und Gleichzeitigkeit garantiert werden. Dadurch ist die synchrone Programmierung insbesondere für zyklische und sicherheitsrelevante Aufgaben geeignet. Daneben sind aber auch zwei wesentliche Nachteile zu nennen: Geringe Flexibilität gegenüber Änderungen der Aufgabestellung. Eine Reaktion auf aperiodische Ereignisse ist nicht vorgesehen.
4.2 Echtzeitprogrammierung Komplexeres FTS Beispiel mit vier Aufgaben Transponder- Erkennung Funk- Kommunikation Kamera- Datenverarbeitung FTS Motorsteuerung und -regelung Laserscanner- Datenverarbeitung Aperiodische Ereignisse (Transponder, Laserscanner) bei der synchronen Programmierung nur mittels periodischer Überprüfung möglich
4.2 Echtzeitprogrammierung Aufbau der komplexeren FTS Steuerung mit einem Mikrocontroller Transpondererkennung Transponder- daten 4T Landmarke Fahrspur Kameradatenverarbeitung Motorsteuerung T Kameradaten Kollisions- gefahr 2T Laserscannerdaten- verarbeitung Motordaten Laserscannerdaten 3T Prozessorkern T Eingabe Zeit- geber Ausgabe Mikrocontroller Transponder- leser Kamera Laserscanner Motor
4.2 Echtzeitprogrammierung Ablaufplanung und deren Realisierung für eine komplexere FTS-Steuerung Initialisierung t1= 0, t2 = 0, t3 = 0 Periodische Unterbrechung im Zeitabstand T ja nein Laserscannerda- tenverarbeitung aufrufen t++, t2++, t3++ Kameradaten- verarbeitung aufrufen t2= 0 t3 == 4 ? t1 == 2 ? nein nein Ablaufplanung Aufgabe Periode Kameradaten- verarbeitung T Motorsteuerung 2T Laserscannerdaten-verarbeitung 3T Transponder-erkennung 4T ja ja Motorsteuerung aufrufen Transponder- erkennung aufrufen t1= 0 t3= 0 t2 == 3 ? nein Ende Unterbrechung ja
4.2 Echtzeitprogrammierung Zeitlicher Ablauf der komplexeren FTS-Steuerung ~ 3T 4T Transponder- datenverarbeitung 2T Laserscanner- datenverarbeitung Motor- steuerung T Kameradaten- verarbeitung Ruhe T 2T 3T 4T 5T 6T 7T 8T
4.2 Echtzeitprogrammierung 4.2.2 Asynchrone Programmierung Ablaufplanung der Aktionen zur Laufzeit durch ein Organisationsprogramm (Echtzeitbetriebssystem) Aufgaben des Organisationsprogramms: Ereignisse überwachen Informationen über einzuhaltende Zeitbedingungen entgegennehmen Ablaufreihenfolge von Teilprogrammen zur Bearbeitung der eingetretenen Ereignisse ermitteln Teilprogramme gemäß der ermittelten Ablaufreihenfolge aktivieren Dies nennt man Echtzeitscheduling
4.2 Echtzeitprogrammierung Ein einfaches Echtzeitscheduling-Verfahren Fixed Priority Preemptive Scheduling besitzt folgende Eigenschaften: Jedes Ereignis erhält eine feste Priorität (Fixed Priority) Die Reihenfolge der Ausführung richtet sich nach dieser Priorität, Ereignisse hoher Priorität werden vor Ereignissen niederer Priorität behandelt. Ereignisse höherer Priorität unterbrechen Ereignisse niederer Priorität (Preemption). Die Bearbeitung eines Ereignisses niederer Priorität wird erst wieder aufgenommen, wenn alle Ereignisse höherer Priorität abgearbeitet oder inaktiv geworden sind.
4.2 Echtzeitprogrammierung Transponder- daten FTS Steuerung mittels Mikrocontroller und asynchroner Programmierung Transpondererkennung Landmarke Fahrspur Kameradatenverarbeitung Motorsteuerung Kamera- daten T Kollisions- gefahr Laserscanner- daten 2T Laserscannerdaten- verarbeitung Motordaten Echtzeitbetriebssystem Prozessorkern Ereignisse Unterbrechungen T Eingabe Zeit- geber Ausgabe Mikrocontroller Transponder- leser Kamera Laserscanner Motor
4.2 Echtzeitprogrammierung Prioritätenzuordnung für das FTS bei asynchroner Programmierung Prioritätenzuordnung Aufgabe Ereignis Periode Priorität Laserscanner- datenverarbeitung Kollisions- warnung - 1 (höchste) Transponder- erkennung Landmarke erkannt - 2 Kameradaten- verarbeitung Zeitgeber T 3 Motor- steuerung Zeitgeber 2T 4 (niedrigste)
4.2 Echtzeitprogrammierung Zeitlicher Ablauf der FTS-Steuerung bei asynchroner Programmierung Transponder- datenverarbeitung Laserscanner- datenverarbeitung > 2T < 2T Motor- steuerung T > T Kameradaten- verarbeitung Ruhe T 2T 3T 4T 5T 6T 7T 8T Kollisionswarnung Kollisionswarnung Landmarke
4.2 Echtzeitprogrammierung Charakterisierung der asynchronen Programmierung Flexibler Programmablauf und flexible Programmstruktur Reaktion auf periodische und aperiodische Ereignisse Rechtzeitigkeit nicht in jedem Fall im Voraus garantierbar Je niederer die Priorität einer Aktivität, desto größer die möglichen Zeitschwankungen Systemanalyse und Systemtest daher schwieriger als bei der synchronen Programmierung Je nach verwendeter Echtzeitschedulingstrategie ist jedoch bei Kenntnis bestimmter Parameter (kleinste Periodendauer, größte Ausführungszeit der Aktivitäten) eine Vorabanalyse zur Rechtzeitigkeit möglich (Feasibility Analysis)
4.2 Echtzeitprogrammierung Aktivität A B C E D C/D ? Formen der Ablaufsteuerung: zyklisch Spezielle Form der synchronen Programmierung Fortlaufende Schleife – schnellstmögliche Periodendauer Periodendauer = Summe der Ausführungs- zeiten einzelner Aktivitäten. Definierte Periodendauer durch Warteschleifen Schwankende Periodendauer durch alternative Aktivitäten Prozessor ständig aktiv
4.2 Echtzeitprogrammierung Zeit A ? Aktivität A Zeit B ? B Zeit C ? C Ja Nein Formen der Ablaufsteuerung: zeitgesteuert Für synchrone Programmierung gut geeignet Fortlaufende Schleife Periodendauer ist bestimmt durch die Abfragezeiten A, B und C und ggf. durch die Ausführungszeiten der Aktivitäten Konstante Periodendauer, falls folgende Bedingungen erfüllt sind: Summe aller Ausführungszeiten < T Längere Periodenzeit = ganzzahl. Vielfaches der kürzere Periodenzeit Prozessor ständig aktiv
4.2 Echtzeitprogrammierung Formen der Ablaufsteuerung: unterbrechungsgesteuert Aktivität A B C D Unter- brechung Ende Unter- Ruhezustand Prozessor nicht ständig aktiv Ereignisgesteuert (Unterbrechung durch Ereignis) oder zeitgesteuert (Unterbrechung durch Zeitgeber) Geeignet für asynchrone und synchrone Programmierung Wegen Energieeffizienz bevorzugte Lösung Bei gleichzeitigen Ereignissen bestimmen die Prioritäten den Ablauf oder es wird ein fester Ablauf vorgegeben Echtzeitscheduling