Mohieddine Jelali Prozessautomatisierungstechnik 4. Echtzeitsysteme und Echtzeitprogrammierung WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 1
Inhaltsangaben zu Kapitel 4 Echtzeitsysteme und Echtzeitprogrammierung 4.1 Echtzeitsysteme 4.2 Aufgaben von Echtzeitsystemen 4.3 Echtzeitsysteme Beispiele 4.4 Anforderungen an Echtzeitsysteme 4.5 Echtzeit-Programmierverfahren 4.6 Synchronisierung von Tasks 4.7 Synchronisierungsverfahren 4.8 Scheduling-Verfahren WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 2
Echtzeitbezug 4.1 Echtzeitsysteme Automatisierung mit Echtzeitanforderungen Automatisierungssystem Zeitabhängige Eingangsdaten Zeitabhängige Ausgangsdaten Schnittstelle (Sensorik) Schnittstelle (Kommunikation) Schnittstelle (Aktorik) Technisches System (Produkt oder Anlage) WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 3
4.1 Echtzeitsysteme Echtzeitsteuerung (Real Time Control) Bei der Datenverarbeitung in Echtzeitsystemen muss die Erfassung, Verarbeitung und Ausgabe von (gültigen, fehlerfreien) Daten zu bestimmten, durch das System und seinen Zustand vorgegebenen Zeitpunkten (oder innerhalb bestimmter Zeitintervalle) erfolgen. Das Ergebnis ist nur dann fehlerfrei, wenn es inhaltlich und zeitlich den gestellten Anforderungen entspricht. Echtzeitanforderungen - Harte Anforderungen: verspätete Reaktion einer Komponente führt zum Systemausfall, zu Schadensfällen oder zu Katastrophen. - Weiche Anforderungen: Überschreitungen von Zeitlimits können ausnahmsweise toleriert werden, ohne dass der technische Prozess in gefährliche oder fatale Systemzustände übergeht. Nichteinhaltung von vorgegebenen Reaktionszeiten führt zu ansteigenden Kosten WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 4
Hardware Betriebssoftware Anwendungssoftware 4.1 Echtzeitsysteme Komponenten eines Echtzeit-Steuerungssystems Verarbeitungs- und Steuerungsalgorithmen Regel- und Steuerprogramm Anwendung Mensch-Maschine-Schnittstelle (HMI: Human Machine Interface) Bedienung und Visualisierung Programm zur Verwaltung der Rechenprozesse und Betriebmittel in Echtzeit Echtzeit-Betriebssystem, Run-Time-System, Run-Time-Umgebung Prozessperipherie Bus Schnittstelle Hardware Timer WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 5
4.1 Echtzeitsysteme Aufgaben des Timer - zyklische Interruptgenerierung zur Realisierung von zeitabhängigen Systemdienste ( Weckrufe ) - Zeitmessung, z.b. zur Ermittlung von Geschwindigkeiten - Watchdog-Funktionen, z.b. zur Zeitüberwachung in kritischen Prozessen - Zeitsteuerung für periodische Dienste, z.b. Messwertübertragung Anforderungen bei Echtzeitprogrammierung - Rechtzeitigkeit: Reaktion zur richtigen Zeit - Gleichzeitigkeit: gleichzeitige Reaktion auf mehrere Dinge - Verlässlichkeit: Zuverlässigkeit, Sicherheit, Verfügbarkeit - Vorhersehbarkeit: Planbarkeit und Determiniertheit aller Reaktionen WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 6
4.2 Aufgaben von Echtzeitsystemen Hauptfunktion Steuerung und Überwachung von quasi-parallelen Teilprogrammen bei vorgegebenen Zeitbedingungen unter Berücksichtigung von Nebenbedingungen, wie z.b. der Prozesspriorität Allgemeine Organisationsaufgaben - Laden und Starten von Anwendungsprogrammen - Organisation von Schnittstellen-Operationen (Ein- und Ausgabe, Datentransport) - Speichermanagement - Klassifizierung von Fehlern und Handhabung von Ausnahmezuständen (Neuanlauf nach Stromausfall, Alarmfunktionen usw.) WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 7
4.2 Aufgaben von Echtzeitsystemen Koordinierungssaufgaben - Entscheidung der Reihenfolge der Abarbeitung von Teilprogrammen - Gegenseitiger Ausschluss zweier oder mehrerer Tasks, um zu verhindern, dass mehrere Prozesse auf die gleichen Resourcen zugreifen. - Zuordnung der Tasks zu den Prozessoren bei Multiprozessorsystemen - Verwaltung der Systemprozesse - Verwaltung von Interrupts WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 8
Steigende Prio. 4.2 Aufgaben von Echtzeitsystemen Verwaltung von Interrupts - Unterbrechung des geplanten Programmablaufs - Anstoß einer Behandlungsroutine - Priorisierung von Interrupts - Hardwarefunktionen für die Interrupt-Behandlung Geplanter Programmablauf (ohne Interrupt): Steuerungsprogramm t Tatsächlicher Programmablauf (mit Interrupt): Interrupt 1 ISR 1 Interrupt Service Routine Steuerungsprogramm Steuerungsprogramm t WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 9
4.2 Aufgaben von Echtzeitsystemen Speicherverwaltung - Optimale Ausnutzung der schnellen Speicher - Koordinierung des gemeinsamen Zugriffs auf einen Speicherbereich - Schutz des Speicherbereichs verschiedener Rechenprozesse gegen Fehlzugriffe - Zuweisung von physikalischen Speicheradressen für die logischen Namen in Anwenderprogrammen Ein-/Ausgabesteuerung - Hardwareunabhängige Ebene für die Datenverwaltung und den Datentransport - Hardwareabhängige Ebene, die alle gerätespezifischen Eigenschaften berücksichtigt (Treiber-Programme). WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 10
4.2 Aufgaben von Echtzeitsystemen Klassifikation und Behandlung von Fehlern und irregulärer Betriebszustände - fehlerhafte Benutzereingaben - fehlerhafte Anwenderprogramme - Hardwarefehler/-ausfälle Erkennung von Hardwarefehlern bzw. ausfällen Rekonfigurierung ohne die fehlerhaften Teile Abschaltsequenzen bei Stromausfällen - Deadlocks (Verklemmungen) aufgrund dynamischer Konstellationen WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 11
Externe Interrupts Rechenprozesscode 4.3 Echtzeitsysteme - Beispiele Übersichtsdiagramm für ein Mini-Betriebssystem Uhrimpulsinterrupt Zeit Aktivierung Suche Interrupt 1 Interrupt 2 Verwaltungsblock Interrupt k Zyklus Zeitzähler Deaktivierung Unterbrechungsverwaltung Zeitverwaltung Taskverwaltung Prozessorverwaltung WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 12
4.3 Echtzeitsysteme - Beispiele Aktuelle Beispiele für Echtzeitbetriebssysteme - QNX: kommerzielles Unix-ähnliches Betriebssystem speziell für eingebettete Systeme (Embedded systems); POSIX-konform (Portable operating system interface for Unix) - OS9: relativ stark verbreitet in Steuerungssystemen, ursprünglich für den 8-Bit-Prozessor 6809 von Motorola entwickelt. - VxWorks (wurde bei der Pathfinder-Mission zum Mars eingesetzt) - RTLinux: Erweiterung von Linux für Echtzeitanforderungen - Windows CE: sehr kleines Echtzeitbetriebssystem, das auf vielen Pocket-PCs läuft. WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 13
4.3 Echtzeitsysteme - Beispiele Auswahl kommerzieller Echtzeit-Betriebssysteme WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 14
4.3 Echtzeitsysteme - Beispiele Auswahl kommerzieller Echtzeit-Betriebssysteme WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 15
4.4 Anforderungen an Echtzeitsysteme Nicht-Echtzeit-Datenverarbeitung Eingangsdaten Daten- Verarbeitung Ausgangsdaten Echtzeit-Datenverarbeitung Zeit Zeit Zeit Eingangsdaten Daten- Verarbeitung Ausgangsdaten Automatisierungssystem Zeitabhängige Eingangsdaten Zeitabhängige Ausgangsdaten Technischer Prozess WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 16
4.4 Anforderungen an Echtzeitsysteme Forderung nach Rechtzeitigkeit - unterschiedliche Fälle 1 0 t 1 t 2 t 3 t 4 t Ausführung eines Programms zu bestimmten Zeitpunkten t i 1 0 Toleranzbereich t 1 t 2 t Ausführung eines Programms zu bestimmten Zeitpunkten t i unter Zulassung von Toleranzintervallen 1 0 t i t Ausführung eines Programms bis spätestens zu einem bestimmten Zeitpunkt t i 1 0 t i t Ausführung eines Programms frühestens ab einem bestimmten Zeitpunkt t i WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 17
4.4 Anforderungen an Echtzeitsysteme Forderung nach Gleichzeitigkeit - Vorgänge in Umwelt laufen gleichzeitig ab gleichzeitige Reaktion der Echtzeit-Systeme erforderlich Gleichzeitige Durchführung von mehreren Datenverarbeitungsaufgaben - Beispiele: Reaktion auf gleichzeitige Fahrt mehrerer Züge Verarbeitung mehrerer gleichzeitig anfallender Messwerte bei einer Heizungsregelung Motorsteuerung und ABS-System gleichzeitig - Realisierung der Gleichzeitigkeit: Ideal: Getrennter Rechner für jede Datenverarbeitungsaufgabe echt parallel Praxis: Einen Rechner führt alle Datenverarbeitungsaufgaben durch. quasi-gleichzeitig / quasi-parallel WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 18
4.4 Anforderungen an Echtzeitsysteme Forderung nach Vorhersagbarkeit/Determiniertheit - Determiniertheit: Eindeutige Bestimmbarkeit der Menge von Ausgangsinformationen und des nächsten Zustandes für jeden möglichen Zustand und für jede Menge an Eingangsinformationen Voraussetzung: endliche Menge von Systemzuständen; bei digitalen Rechnersystemen immer gegeben. - Zeitliche Determiniertheit: Antwortzeit für jede Menge von Ausgangsinformationen bekannt! - Determiniertheit als elementar wichtige Eigenschaft für harte Echtzeitsysteme: Voraussetzung für Garantie der Sicherheit bei sicherheitskritischen Systemen Geringste zeitliche Verschiebungen können zu vollkommen unterschiedlichen Abläufen führen. WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 19
4.5 Echtzeit-Programmierverfahren Synchrone Programmierung - Prinzip: Planung des zeitlichen Ablaufs vor der Ausführung der Programme - Vorgehensweise: Teilprogramme werden zyklisch abgearbeitet. Zyklischer Ablauf wird mit Hilfe einer Echtzeituhr über ein vorgegebenes Zeitraster synchronisiert. (Zeittriggerung) Reihenfolge der Teilprogramme wird vorher festgelegt. WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 20
DAU ADU 4.5 Echtzeit-Programmierverfahren Synchrone Programmierung - Beispiel: Heizungsregelung; Aufgabenstellung Echtzeit- Uhr Bedienterminal u 3 (t) u 2 (t) Automatisierungsrechner REGLER 3 REGLER 2 y 3 (t) y 2 (t) u 1 (t) REGLER 1 y 1 (t) T 3 = T T 3 = 2T T 3 = 5T Teilstrecke 1 Heizkreis Wohnung Teilstrecke 2 Heizkreis Büro Teilstrecke 3 Heizkessel Raumtemperatur Wohnung Vorlauftemperatur Raumtemperatur Büro WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 21
4.5 Echtzeit-Programmierverfahren Synchrone Programmierung - Beispiel: Heizungsregelung; Grobentwurf des Steuerungsprogramms Interruptsignale von der Echtzeit-Uhr mit der Zykluszeit T ANFANG Alle T 1 = T REGLER 1 aufrufen Alle T 2 = 2T REGLER 2 aufrufen Alle T 3 = 5T REGLER 3 aufrufen Warteschleife WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 22
4.5 Echtzeit-Programmierverfahren Synchrone Programmierung - Beispiel: Heizungsregelung; Feinentwurf des Steuerungsprogramms Im Zeitabstand T aufeinanderfolgende Interruptsignale bewirken Start an dieser Stelle ANFANG Definition der Zählvariablen Z2 und Z3 Z2:=1 Z3:=1 REGLER1 abarbeiten Z2 und Z3 initialisieren Z2:=Z2+1 nein Z2:=2? ja REGLER2 abarbeiten Z2=1 Z3:=Z3+1 nein Z3:=5? ja REGLER3 abarbeiten Z3:=1 Warteschleife WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 23
4.5 Echtzeit-Programmierverfahren Synchrone Programmierung - Beispiel: Heizungsregelung; Zeitlicher Ablauf der Teilprogramme ca. 5T 2T T REGLER3 REGLER2 REGLER1 Steuerprogramm 1T 2T 3T 4T 5T 6T 7T 8T 9T 10T 11T t Annahmen: - Rechenzeit für Teilprogramme gleich groß - Summe der Rechenzeiten der drei Teilprogramme kleiner als Zykluszeit WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 24
4.5 Echtzeit-Programmierverfahren Synchrone Programmierung - Eigenschaften: Forderung nach Rechtzeitigkeit wird nur näherungsweise erfüllt. Forderung nach Gleichzeitigkeit wird erfüllt, wenn Zykluszeiten der Regelstrecken groß sind gegenüber den Rechenzeiten der Teilprogramme. Synchrone Programmierung ist gut für Echtzeit-Systeme mit zyklischen Programmabläufen. Synchrone Programmierung ist ungeeignet für die Reaktion auf zeitlich nicht vorhersehbare (asynchrone) Ereignisse, z.b. Alarmsignal Brennerstörung im Bespiel der Heizungsregelung. Erhöhung der Rechenzeit durch ständiges Abfragen, Verzögerung der Reaktion Gesamte Programmstruktur muss geändert werden, wenn die Aufgabenstellung geändert wird. Steuerprogramm ist unflexibel. WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 25
4.5 Echtzeit-Programmierverfahren Asynchrone Programmierung/Parallelprogrammierung - Prinzip: Organisation des zeitlichen Ablaufs während der Ausführung der Programme - Vorgehensweise: Aufruf der Teilprogramme erfolgt nach Zeitbedingungen und Anforderungen aus dem Prozess. Konfliktsituation wird durch bestimmte Strategie (Scheduling-Strategie) gelöst. - Typische Scheduling-Strategie: Vergabe von Prioritäten Priorität umso höher, je niedriger die Prioritätsnummer WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 26
DAU ADU 4.5 Echtzeit-Programmierverfahren Asynchrone Programmierung/Parallelprogrammierung - Beispiel: Heizungsregelung; Aufgabenstellung Echtzeit- Uhr Automatisierungsrechner Bedienterminal u 3 (t) u 2 (t) REGLER 3 REGLER 2 y 3 (t) y 2 (t) u 1 (t) REGLER 1 y 1 (t) Alarm T 3 = T T 3 = 2T T 3 = 5T Teilstrecke 1 Heizkreis Wohnung Teilstrecke 2 Heizkreis Büro Teilstrecke 3 Heizkessel Brenner Brennerstörung Raumtemperatur Wohnung Vorlauftemperatur Raumtemperatur Büro WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 27
4.5 Echtzeit-Programmierverfahren Asynchrone Programmierung/Parallelprogrammierung - Beispiel: Heizungsregelung: Zuordnung von Prioritäten Teilprogramm Bezeichner Abtastzeit Prioritätsnummer Priorität Reaktion auf Brennerstörung mit Alarmmeldung Temperatur-Regler 1 für Heizkreis Wohnung ALARM - 1 höchste REGLER1 T 1 = T 2 zweithöchste Temperatur-Regler 2 für Heizkreis Büro REGLER2 T 2 = 2T 3 dritthöchste Temperatur-Regler 3 für Heizkessel REGLER3 T 3 = 5T 4 niedrigste WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 28
4.5 Echtzeit-Programmierverfahren Asynchrone Programmierung/Parallelprogrammierung - Beispiel: Heizungsregelung: Zeitlicher Verlauf der Teilprogramme REGLER3 (Priorität 4) REGLER2 (Priorität 3) REGLER1 (Priorität 2) ALARM (Priorität 1) REGLER3 REGLER2 REGLER1 ALARM Betriebssystem WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 29
4.5 Echtzeit-Programmierverfahren Asynchrone Programmierung/Parallelprogrammierung - Eigenschaften: Forderung nach Rechtzeitigkeit wird nur näherungsweise erfüllt; Je höher die Priorität ist, desto besser wird die Anforderung erfüllt. Ist-Zeitablauf kann sich gegenüber Soll-Zeitablauf stark verschieben, dass sich Teilprogramme gegenseitig überholen können. Aufeinanderfolge der Teilprogramme ist nicht determiniert; Sie kann durch sporadisch auftretende Ereignisse dynamisch beeinflusst werden. Bei Programmerstellung lässt sich nicht im Voraus angeben, welches Teilprogramm zu welchem Zeitpunkt ablaufen wird. einfache Entwicklung, Komplexität im Verwaltungsprogramm, Programmablauf schwer durchschaubar WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 30
4.6 Synchronisierung von Tasks Rechenprozess = Task ein von einem Echtzeit-Betriebssystem gesteuerter Vorgang der Abarbeitung eines sequenziellen Programms Grundzustände von Tasks - ablaufend (running) : Teilprogramm ist in Bearbeitung. - bereit/ablaufwillig (runnable) : alle Zeitbedingungen für den Ablauf sind erfüllt. Es fehlt der Start durch das Betriebssystem. - blockiert (suspended) : Rechenprozess wartet auf den Eintritt eines Ereignisses Wenn das Ereignis eingetreten ist, Übergang aus dem Zustand blockiert in den Zustand bereit. - ruhend (dormant) : Rechenprozess ist nicht ablaufbereit, weil Zeitbedingungen oder sonstige Voraussetzungen nicht erfüllt sind. WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 31
4.6 Synchronisierung von Tasks Zustandsdiagramm einer Task Vereinbarung der Task Löschen der Task ruhend Einplanung bereit blockiert Einplanung bedeutet: - die Beauftragung eines Rechenprozesses zyklisch oder zu bestimmten Zeiten laufend - der Übergang vom Zustand ruhend in den Zustand bereit WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 32
4.6 Synchronisierung von Tasks Beispiel zum Zustandsverlauf Task REGLER3 bei der Heizungsregelung Task REGLER3 ist: REGLER 1/2 (höhere Prio.) läuft ab. ablaufend (aktiv) blockiert ablaufwillig (bereit) ruhend 0 T 2T 3T 4T 5T 6T 7T t WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 33
4.6 Synchronisierung von Tasks Prioritätsvergabe für Tasks - statische Prioritätsvergabe - dynamische Prioritätsvergabe (z.b. durch Verwendung von Deadlines) Zeitparameter einer Task A: Arrival time (Ankunftszeitpunkt) R: Request time (Einplanungszeitpunkt) S: Start time (Startzeit, Zuteilung eines Betriebsmittels) C: Completion time (Beendigungszeitpunkt) D: Deadline (Maximalzeit) E: Execution time (maximale Ausführungsdauer) P: Period time (maximale Antwortzeit) L: Laxity (Spielraum) F(t): Flow time (Antwortzeit) RF(t): Remaining flow time (Restantwortzeit) WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 34
4.6 Synchronisierung von Tasks Auftreten der Zeitparameter einer Task Task- zustände Antwortzeit F(t) Restantwortzeit RF(t) laufend blockiert Maximale Antwortzeitdauer P Spielraum L Maximale Ausführungsdauer E E alt (t) E neu (t) A: Arrival time R: Request time S: Start time C: Completion time D: Deadline L: Laxity bereit A R S C E D E E(t) = E alt (t) + E neu (t) ruhend L = D S E A R S C D Betrachtungszeitpunkt t WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 35
4.6 Synchronisierung von Tasks Begriffe - Synchronisierung: zeitliche Koordinierung - Zwei Aktionen (Threads) in Tasks heißen parallel, wenn sie gleichzeitig ablaufen können. - Zwei Aktionen heißen sequenziell, wenn sie in einer bestimmten Reihenfolge angeordnet sind. - Zwei Aktionen aus zwei verschiedenen Tasks heißen nebenläufig, wenn sie gleichzeitig ablaufen können (äußere Parallelität). - Zwei Aktionen einer Task heißen simultan, wenn sie gleichzeitig ausgeführt werden können (innere Parallelität). Abhängigkeiten zwischen Tasks - Logische Abhängigkeiten aufgrund der Vorgänge im technischen Prozess - Abhängigkeiten durch die gemeinsame Benutzung von Betriebsmitteln (d.h. Geräten oder Programmen) WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 36
4.6 Synchronisierung von Tasks Beispiel zur Abhängigkeit von Tasks - Tasks 1 und 2 benutzen gemeinsam die Betriebsmittel Protokolldrucker und Analog-Eingabe. Task 1: Messwerterfassung Task 2: Prozessüberwachung Analog- Eingabe belegen Treiberprogramm für Protokolldrucker belegen Verklemmung (Deadlock) Betriebsmesswerte einlesen und umrechnen Treiberprogramm für Protokolldrucker belegen Störungsmeldung an Protokolldrucker ausgeben Analog- Eingabe belegen Ausdruck Betriebsmesswerte und Uhrzeit Prozessgrößen einlesen und überwachen WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 37
4.6 Synchronisierung von Tasks Logische (aufgaben-/oder prozessorientierte) Synchronisierung - Anpassung des Ablaufs der Rechenprozesse an den Ablauf der Vorgänge im technischen Prozess - Synchronisierung bedeutet: Erfüllung von Anforderungen bezüglich der Reihenfolge von Aktionen Berücksichtigung vorgegebener Zeitpunkte bzw. Zeitabstände Reaktionen auf Unterbrechungsmeldungen aus dem technischen Prozess Betriebsmittelorientierte Synchronisierung Einhaltung von Bedingungen bezüglich der Verwendung gemeinsam benutzter Betriebsmittel (Ressourcen) WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 38
4.7 Synchronisierungsverfahren Grundgedanke der Synchronisierung - Rechenprozess muss warten, bis ein bestimmtes Signal bzw. Ereignis eintrifft. - Einfügen von Wartebedingungen an den kritischen Stellen Verfahren - Semaphorkonzept - kritische Regionen - Rendez-Vous-Konzept WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 39
4.7 Synchronisierungsverfahren Semaphorkonzept - Synchronisierung von Rechenprozessen durch Signale (nach Dijkstra) - Einführung von zwei Semaphor-Variablen: V(S) und P(S) (positive, ganzzahlige Werte) V(S i ): Verlassen-Operation: S i S i + 1; Task wird fortgesetzt. P(S i ): Passieren-Operation: S i wird abgefragt: S i > 0: S i S i 1; Task wird fortgesetzt. S i = 0: S i bleibt unverändert; Task geht in den Zustand blockiert über. Ein Verlassen dieses Zustandes ist nur möglich, wenn diese Semaphor-Variable S i in einer anderen Task inkrementiert wird. WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 40
Fahrtrichtung der Züge 4.7 Synchronisierungsverfahren Semaphorkonzept - Beispiel 1: Zugverkehr über eine eingleisige Strecke Gleismagnet Gleismagnet P(S 1 ) P(S 2 ) Anfangsbedingungen: S 1 = 1 ( grün ) S 2 = 0 ( rot ) Signal S 1 Signal S 2 V(S 2 ) V(S 1 ) Gleismagnet Gleismagnet Ablaufreihenfolge: ABAB WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 41
Task A Task B 4.7 Synchronisierungsverfahren Semaphorkonzept - Beispiel 2: Zwei Rechenprozesse A und B sollen stets abwechselnd laufen. S 1 = 1 S 2 = 0 P(S 1 ) S 1 = 0 V(S 2 ) S 2 = 1 P(S 2 ) S 2 = 0 P(S 1 ) S 1 = 0 V(S 1 ) S 1 = 1 Logische Synchronisierung V(S 2 ) S 2 = 1 P(S 2 ) S 2 = 0 t t WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 42
4.7 Synchronisierungsverfahren Kommunikation zwischen Tasks Kommunikation: Austausch von Daten zwischen parallel ablaufenden Tasks Möglichkeiten der Datenkommunikation - Direkter Datenaustausch (Rendez-vous) - Gemeinsam benutzter Speicher (Shared memory) gemeinsame Variable gemeinsame komplexe Datenstruktur - Versenden von Nachrichten (Messages) Übertragung von Nachrichten von einem Rechenprozessor zu einem anderen (Message passing) vor allem bei verteilten Systemen Arten der Kommunikation - Synchron: sendende und empfangende Task kommunizieren an einer definierten Stelle im Programmablauf. - Asynchron: Daten werden gepuffert. WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 43
4.8 Scheduling-Verfahren Begriffe - Scheduling (Planung): Vergabe des Prozessors an ablaufbereite Rechenprozesse nach einem festgelegten Algorithmus (Scheduling-Verfahren) - Scheduler (Planer): Teil eines Echtzeit-Betriebssystems zur Zuteilung des Prozessors - Schedule (Plan): vom Scheduler erzeugte Ablauf- und Zuteilungsplan Notwendigkeit des Scheduling von Tasks - Tasks benötigen Ressourcen (Prozessor, Ein-/Ausgabegeräte usw.) - Ressourcen sind knapp - Tasks konkurrieren um Ressourcen - Zuteilung der Ressourcen muss verwaltet werden. WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 44
4.8 Scheduling-Verfahren Grundsatzfragen zum Scheduling 1. Gibt es für einen Taskset einen ausführbaren Plan (Schedule)? (Schedulability test) 2. Gibt es einen Algorithmus, der einen ausführbaren Schedule findet? 3. Ist der Algorithmus optimal in dem Sinne, dass er immer einen gültigen Schedule findet, wenn dies durch eine Ausführbarkeitstest nachgewiesen wurde? Klassifizierung Scheduling-Verfahren statisch dynamisch Zeitpunkt der Planung preemptiv Nicht-preemptiv preemptiv Nicht-preemptiv Art der Durchführung WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 45
4.8 Scheduling-Verfahren Statisches Scheduling Synchrone Programmierung - Planung des zeitlichen Ablaufs der Tasks erfolgt vor der Ausführung (Dispatching table) vorhersehbar, aber unfexibel - Berücksichtigung von Informationen über Taskset, Deadlines, Ausführungszeiten, Reihenfolgebeziehungen, Ressourcen - Dispatcher macht Zuteilung gemäß Dispatching Table - minimaler Laufzeit-Overhead - determiniertes Verhalten Dynamisches Scheduling Asynchrone Programmierung - Organisation des zeitlichen Ablaufs während der Ausführung der Tasks - erheblicher Laufzeit-Overhead durch die Online-Suche nach einem ausführbaren Schedule WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 46
4.8 Scheduling-Verfahren Preemptives Scheduling - Laufende Task kann unterbrochen werden. - Höherpriore Task verdrängt niederpriore Task. Nicht-preemptives Scheduling - Laufende Task kann nicht unterbrochen werden. - Prozessorfreigabe erfolgt durch die Task selbst. Wichtigste Scheduling-Verfahren - FIFO-Scheduling (First-in-first-out) - Zeitscheibenverfahren - Scheduling mit festen Prioritäten - Ratenmonotones Scheduling - Verfahren der kleinsten Restantwortzeit - Verfahren des kleinsten Spielraums WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 47
4.8 Scheduling-Verfahren FIFO-Scheduling - Nicht-preemptives Scheduling - Task, deren Einplanung am weitesten zurückliegt, bekommt Prozessor. Beispiel: Task A bereit Task B bereit Task C bereit Task D bereit Tasks werden in der Reihenfolge ausgeführt, in der sie ablauffähig werden: t A B C D t Einfache Realisierung, aber ungeeignet für harte Echtzeitsysteme! WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 48
4.8 Scheduling-Verfahren Zeitscheibenverfahren (Round-Robin-Verfahren) - Jede Task bekommt einen festgelegten Zeitschlitz, zu der sie den Prozessor bekommt. - Reihenfolge wird statisch festgelegt. - Abarbeitung einer Task Stück für Stück - Verwendung bei Dialogsystemen (Multi-Tasking-Systeme) Beispiel: 4 Tasks mit Zeitdauern: A: 25ms, B: 20ms, C: 30ms, D: 20ms Jeder Zeitschlitz sei 10ms groß. Reihenfolge der zyklischen Abarbeitung: A-B-C-D A B C D A B C D A C 10 30 50 70 90 110 t [ms] Ungeeignet für harte Echtzeitsysteme! WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 49
4.8 Scheduling-Verfahren Scheduling mit festen Prioritäten - Prioritäten werden statisch vergeben. - Task mit höchster Priorität bekommt Prozessor. - Preemptive und nicht-preemptive Strategie ist möglich. - einfache Implementierung Beispiel: Task Prio. A 1 höchste B 1 Prio. C 2 D 3 E 3 Bei Tasks mit gleicher Priorität: weitere unterlagerte Bedingung nötig. A* B C D E * FIFO-Scheduling: A war zuerst ablauffähig. t Nur bedingt geeignet für harte Echtzeitsysteme! WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 50
4.8 Scheduling-Verfahren Ratenmonotones Scheduling (Rate-Monotonic-Verfahren) - Spezialfall des Verfahrens mit festen Prioritäten für zyklische Tasks - Task mit kleinster Zykluszeit (Periode) erhält höchste Priorität. - preemptive Strategie Beispiel: Task A B C D Ausführungsdauer 10 ms 20 ms 10 ms 20 ms Zykluszeit 40 ms 50 ms 80 ms 100 ms Prio. 1 2 3 4 Erste geplante Ausführung aller Tasks bei t = 0 ms Danach werden die Tasks zyklisch wiederholt. A1 B1 C1 A2 B2 D1 a A3 C2 B3 A4 D1 b 0 20 40 60 80 100 120 140 t [ms] Task D wird unterbrochen. Verfahren wird in der Praxis häufig verwendet! WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 51
4.8 Scheduling-Verfahren Verfahren der kleinsten Restantwortzeit (Earliest-Deadline-First-Verfahren) - Task mit kleinster Restantwortzeit bekommt Prozessor. - preemptives Vorgehen - hoher Rechenaufwand für das Scheduling - Einhaltung von zeitlichen Anforderungen wird speziell unterstützt. Beispiel: Task Dauer t min t max A B C D E 10 ms 10 ms 30 ms 40 ms 10 ms 0 ms 0 ms 30 ms 50 ms 70 ms 40 ms 30 ms 100 ms 200 ms 90 ms t min : frühester Termin t max : spätester Termin = Deadline B A C D a E D b 0 20 40 60 80 100 120 t [ms] Deadline von B ist früher als von A. Deadline von E ist früher als von D. Unterbrechung WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 52
4.8 Scheduling-Verfahren Verfahren des kleinsten Spielraums (Least-Laxity-Verfahren) - Task mit kleinstem Spielraum erhält Prozessor. - Berücksichtigung von Deadlines und Ausführungsdauern - sehr aufwendiges Verfahren Beispiel: Task Dauer Einplanung Deadline Spielraum A B C D E 30 ms 10 ms 30 ms 40 ms 10 ms 0 ms 0 ms 30 ms 50 ms 70 ms 40 ms 30 ms 100 ms 200 ms 90 ms 10 20 40 110 10 0 A a B C E D A b 20 40 60 80 100 120 t [ms] Am besten geeignet für harte Echtzeitsysteme! WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 53
4.8 Scheduling-Verfahren Ausführbarkeitstest (Schedulability Test) Unter einem Schedulability-Test versteht man die Prüfung, ob der zeitliche Ablauf für einen Taskset so geplant werden kann, dass jede Task ihre Deadline einhält. Theorem von Liu und Layland (Teil I) Eine beliebige Menge periodischer Tasks (Deadline = Periodendauer) kann durch das preemptive Earliest-Deadline-First-Verfahren ausgeführt werden, wenn gilt (notwendige und hinreichende Bedingung): n i 1 C T i i 1 mit: n: Anzahl der Tasks C i : Ausführungszeit der Task i T i : Zykluszeit der Task i WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 54
4.8 Scheduling-Verfahren Theorem von Liu und Layland (Teil II) Eine beliebige Menge periodischer Tasks (Deadline = Periodendauer) kann durch das Rate-Monotonic-Verfahren ausgeführt werden, wenn gilt (hinreichende Bedingung): n 1 Ci U * n n n n i 1 Ti U U U U * 1 * 2 * 3 * 1,0 2 1, 1,2, 0,828 0,779 ln 2 0,693 mit: U i : Utilization (Prozessorauslastung): U i C T i i WS 2013/14 Vorlesung: Prozessautomatisierung, Prof. Dr.-Ing. Mohieddine Jelali 55