Inhalte Anforderungen Klassifizierungen Verschiedene Verfahren: FIFO, Round Robin, Least Laxity, EDF, fixed/dyn. Prio. Beispiele und Aufgaben Seite 1
Motivation Gegeben: Ein Einprozessorsystem, das Multiprogrammierung erlaubt. Prozess, der von der CPU bedient wird, ist im Status running. Prozesse, die auf CPU warten, sind im Status ready. Frage: Welcher der lauffähigen Prozesse soll als nächster bedient werden? Kriterien aus Sicht der Prozesse: Fairness: kein Prozess soll zu lange auf CPU-Zuteilung warten. Wichtigkeit: Prozesse mit hoher Priorität werden bevorzugt abgearbeitet. Kriterien aus Sicht der CPU: Maximaler Durchsatz Maximale Auslastung der CPU Minimale mittlere Wartezeit (= Zeit, bis ein Prozess abgearbeitet wird = Reaktionszeit)) Minimale mittlere Systemzeit (= Wartezeit + Ausführungszeit) Kriterien sind z.t. widersprüchlich. Im Allgemeinen wird eine Mischung dieser Kriterien gewählt. Seite 2
Scheduling: Unter Scheduling versteht man die Vergabe des Prozessors an ablaufwillige Tasks nach einem festgelegten Algorithmus (Schedulingverfahren), so dass alle harten/festen Echtzeitanforderungen und möglichst viele weiche Echtzeitanforderungen erfüllt werden. Der Scheduler stellt die Tasks in die Bereitliste, die der Dispatcher abarbeitet, indem er die nächste Task dem Prozessor übergibt. Problemstellungen beim Scheduling Ist es für eine Menge von Tasks möglich, alle Zeitbedingungen einzuhalten? falls ja, existiert (mindestens) ein Schedule, d.h. zeitliche Aufteilung der CPU an die Tasks mathematische Analyse: Scheduling Analysis ggf. unter Berücksichtigung eines Schedulingverfahrens Kann der Schedule in endlicher Zeit berechnet werden? Findet das benutzte Schedulingverfahren diesen Schedule? ein optimales Schedulingverfahren findet den Schedule immer, falls dieser existiert Seite 3
Scheduling Analysis (Feasibility Analysis) Vorab-Analyse, ob für eine Taskmenge ein Schedule existiert Zentrale Größe: Prozessorauslastung H Notwendige Bedingung für Existenz eines Schedule: H 1 (bzw. 100%) Gilt auch für periodische Tasks, falls Zeitschranke = Periode Beispiel: Seite 4
Klassifizierung von Schedulingverfahren: Statisches Scheduling Dynamisches Scheduling Nicht-präemptives Scheduling Präemptives Scheduling Nicht-präemptives Scheduling Präemptives Scheduling Statische Prioritäten Dynamische Prioritäten Statische Prioritäten Dynamische Prioritäten Nicht prioritätsbasiert Nicht prioritätsbasiert Seite 5
Klassifizierung von Schedulingverfahren: Statisches oder dynamisches Scheduling statisch: Schedule wird bereits vor der Ausführung berechnet Zuordnungstabelle enthält Startzeit für jede Task CPU-Zuteilung zur Laufzeit durch Dispatcher entspricht Prinzip der synchronen Programmierung (determiniertes Verhalten) dynamisch: Zuordnung Task - CPU zur Laufzeit berechnet entspricht asynchroner Programmierung (flexibel bei Änderungen) Statische oder dynamische Prioritäten es gibt aber auch Verfahren ganz ohne Prioritäten Präemptives oder nicht-präemptives Scheduling Präemptiv: höherpriore Task verdrängt niederpriore Nicht-präemptiv: Prozessorfreigabe durch die Task selbst präemptives Scheduling meist vorteilhafter (Reaktionszeit!) Seite 6
Klassifizierung von Schedulingverfahren: Task 1 fertig Task 2 fertig Task 1 (wichtig) Task 2 (weniger wichtig) Präemption Ruhe Ereignis für Task 2 Ereignis für Task 1 Ereignis für Task 2 Ereignis für Task 1 a) Präemptives Scheduling b) Nicht-präemptives Scheduling Seite 7
Scheduling in Abhängigkeit der Ausführungszeiten der Prozesse Grundlegendes Problem: Woher weiß man a-priori, wie lange ein Prozess dauern wird? Lösung: Aus der Dauer der Prozesse in der Vergangenheit auf das Verhalten in der Zukunft schließen. Einfache Schätzverfahren verwenden Zeitfenster, z.b. den Durchschnitt der letzten n Prozesse oder 80% des Maximalwerts der letzten n Prozesse Exponential-Averaging versucht, adaptiv aus der Vergangenheit zu lernen: Sei T(n) die Schätzung für den n-ten Prozess und t(n) seine tatsächliche Dauer, dann erhält man die Schätzung für den (n+1)-prozess durch T(n+1) = α * t(n) + (1 α) * T(n) mit: α liegt in [0,1] und beeinflusst die Art des Lernens: Extremfälle: α = 0 => T(n+1) = T(n), d.h. die Schätzung ist immer gleich. Es findet kein Lernen statt. α = 1 => T(n+1) = t(n), d.h. nur der letzte Wert wird für die Schätzung herangezogen, was einem hektischen Verhalten entspricht. Kompromiss: Verwendung von 0 < α < 1, wodurch ein exponentielles Abklingen der Vergangenheit erreicht wird (je größer α, desto schneller wird die Vergangenheit vergessen). Seite 8
Scheduling in Abhängigkeit der Ausführungszeiten der Prozesse Exponential-Averaging: Schaue in die Vergangenheit und versuche, die Zukunft vorherzusagen (mittels gewichteter Mittelwertbildung) Tatsächliche Dauer t(n) des Prozesses Geschätzte Dauer T(n+1) des folgenden Prozesses Seite 9
Verschiedene Schedulingverfahren: FIFO-Verfahren Zeitscheibenverfahren (Round Robin, time slice scheduling) Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) Für zyklische Tasks: Ratenmonotones Scheduling (RMS) Verfahren der kleinsten Restantwortzeit (earliest deadline first (EDF)) Verfahren des kleinsten Spielraums (least laxity first (LLF)) Verfahren Guaranteed Percentage Scheduling (GP) Seite 10
FIFO Scheduling (first-in-first-out): Dynamisch, nicht-präemptiv, ohne Prioritäten Task, deren Einplanung am weitesten zurückliegt, bekommt Prozessor Einfache Realisierung, aber keine Berücksichtigung der Zeitbedingungen Beispiel. Siehe Gantt Diagramm (Balkenplan) unten Für harte Realzeitsysteme nicht geeignet Task A B C D Ausführungs zeit 8 ms 5 ms 2 ms 10 ms Task A bereit Task B bereit Task C bereit Task D bereit t [ms] A B C D 5 10 15 20 t [ms] 25 Seite 11
FIFO Scheduling (first-in-first-out): Warteschlangenmodell: [ neue Task ] CPU [ Task fertig ] FIFO-Warteschlange Es gibt auch die LIFO-Strategie, bei der der Prozess, der als letzter CPU-Zeit angefordert hat und damit am kürzesten wartet, CPU-Zugriff erhält; für diese Strategie gibt es auch eine präemptive Variante: Seite 12
FIFO Scheduling (first-in-first-out): Beispiel Task Periode p i Ausführungszeit e i 1 150 ms 15 ms 2 10 ms 1 ms H = 20% Deadline für 1. Aus- Führung von Task 2 1. Ausführung von Task 2 fertig Task 1 Task 2 ruhend 0 verpasst 5 10 15 20 25 t [ms] Ereignis für Task 1 Ereignis für Task 2 Ereignis für Task 2 Seite 13
FIFO Scheduling (first-in-first-out): Übung: Zeichnen Sie den Ablauf der einzelnen Tasks und berechnen Sie die durchschnittliche Reaktionszeit (Wartezeit im Zustand bereit ) dieser Tasks beim FIFO- Verfahren. Task Ankunftszeit Ausführungszeit A 0 ms 4 ms B 2 ms 3 ms C 4 ms 6 ms D E 11 ms 3 ms Deadline für 1. Aus- 12 ms Führung von Task 62 ms Task A Task B Task C Task D Task E ruhend 0 5 10 15 20 25 t [ms] Seite 14
FIFO Scheduling (first-in-first-out): Hauptproblem bei FIFO ist die Benachteiligung kurzlaufender Jobs durch Langläufer Beispiel aus dem täglichen Leben: analoges Problem an Supermarktkassen Lösung hier: Schnellkassen für Kunden mit maximal 10 Artikeln Entsprechend beim CPU-Scheduling: ausführungszeitabhängige Strategien Shortest-Processing-Time-First (SPT), auch Shortest-Job-First (SJF) Voraussetzung: Ausführungszeit der Tasks ist bekannt Man kann zeigen, dass die mittlere Reaktionszeit von SPT für die Klasse der nicht-präemptiven Strategien minimal ist, d.h. SPT ist die optimale Strategie bzgl. der Wartezeit. Übung: Zeichnen Sie den Ablauf der einzelnen Tasks und berechnen Sie die durchschnittliche Reaktionszeit (Wartezeit) dieser Tasks für FIFO und SPT unter der Voraussetzung, dass alle zum Zeitpunkt T=0 kurz hintereinander eintreffen: A,B,C,D. Task A B C Ausführungszeit 6 ms 8 ms 7 ms D 3 ms Seite 15
FIFO 0 A 6 t [ms] A, B, C, D SPT D 0 3 t [ms] A, B, C, D Seite 16
Round Robin Verfahren (RR): Dynamisch, präemptiv, ohne Prioritäten Jede Task bekommt einen festgelegten Zeitschlitz, zu der sie den Prozessor bekommt Reihenfolge gem. Kreis (manchmal auch nach zeitlichem Eintreffen) Periodendauer abh. von der Anzahl der Tasks Für harte Realzeitsysteme untauglich A D B C Task A B C D Ausführungs zeit 25 ms 20 ms 30 ms 20 ms Zeitschlitz (Quantum) = Q = 10 ms A B C D A B C D A C t [ms] 0 10 40 50 80 100 A, B, C, D Seite 17
Round Robin Verfahren (RR): Warteschlangenmodell: [ neue Task ] FIFO-Warteschlange CPU [ Task fertig ] [ Task nicht fertig ] RR versucht, Fairness gegenüber Kurzläufern und soweit möglich auch gegenüber Langläufern zu gewähren rechnender Prozess wird vom BS nach dem Ablauf einer Zeitscheibe (time slice, Q=Quantum) unterbrochen und wieder hinten in die Warteschlange eingefügt Wichtige Frage: Wie lang ist Q? Q : FIFO Q 0 : Prozessor-Sharing, d.h. CPU wird gleichmäßig auf die z. Zt. Aktiven Prozesse aufgeteilt, wodurch jeder Prozess genau 1/n der CPU-Leistung erhält. sehr problematische Annahme, dass Zerhacken in kleinste Scheiben nichts kostet. Richtwerte: 20 bis 50 ms Seite 18
Round Robin Verfahren: Übung: Zeichnen Sie den Ablauf der einzelnen Tasks und berechnen Sie die durchschnittliche Reaktionszeit für Zeitschlitz = 1ms. Reihenfolge gem. Alphabet. Task Ankunftszeit Ausführungszeit A 0 ms 4 ms B 2 ms 3 ms C 4 ms 6 ms D E 11 ms 3 ms Deadline für 1. Aus- 12 ms Führung von Task 62 ms Task A Task B Task C Task D Task E ruhend 0 5 10 15 20 25 t [ms] Seite 19
Round Robin Verfahren: Übung: Zeichnen Sie den Ablauf der einzelnen Tasks und berechnen Sie die durchschnittliche Reaktionszeit für Zeitschlitz = 5ms). Reihenfolge gem. Alphabet. Task Ankunftszeit Ausführungszeit A 0 ms 4 ms B 2 ms 3 ms C 4 ms 6 ms D E 11 ms 3 ms Deadline für 1. Aus- 12 ms Führung von Task 62 ms Task A Task B Task C Task D Task E ruhend 0 5 10 15 20 25 t [ms] Seite 20
Multilevel Feedback Scheduling (MFS): mehrere Warteschlangen mit Prioritäten, Zeitscheiben und Rückkopplung: Neu ankommende Jobs werden in die höchste Prioritätsklasse eingeordnet Abarbeitung nach Round-Robin: unterschiedliche Quantengröße, Klassen hoher Priorität haben kleine Quanten, bei kleiner Priorität große Quanten, d.h. Q1 < Q2 < < Qn. Wenn Job in seiner Zeitscheibe nicht fertig wird, wandert er in die nächst niedrigere Prioritätsklasse Bedient wird nicht-präemptiv Beispiel: 3 Warteschlangen: Q1=8ms mit max. 10 Zeitschlitzen, Q2=16ms mit max. 5 Zeitschlitzen, Q3=FIFO: Ein neuer Prozess landet in Warteschlange Q1 die mittels FIFO verwaltet wird. Wenn der Prozess an der Reihe ist erhält er 8 ms CPU-Zeit. Wenn der Prozess nicht fertig geworden ist, landet er unmittelbar in Q2. In Q2 wartet der Prozess wieder gemäß FIFO und erhält zusätzliche 16 ms. Reicht dies immer noch nicht, dann wir der Prozess unterbrochen und in Warteschlange Q3 verschoben. Seite 21
Multilevel Feedback Scheduling (MFS): mehrere Warteschlangen mit Prioritäten, Zeitscheiben und Rückkopplung: Seite 22
Übung 1 zum MFS Verfahren: Für das MFS Verfahren stehen 6 Warteschlangen zur Verfügung. Jeder Prozess in einer Warteschlange bekommt seine eigene Zeitscheibe, jedoch alle mit dem Quantum Q = 1. Jeder Prozess beginnt in der Warteschlange 1. Wenn ein Prozess nicht fertig wird, wandert er in die nächst niedere (FIFO-) Warteschlange. Task Ankunftszeit Ausführungszeit A 0 ms 6 ms B 1 ms 2 ms C 3 ms 3 ms D 4 ms 6 ms E 8 ms 1 ms F 16 ms 1 ms Übung: Zeichnen Sie den Ablauf der einzelnen Tasks in ein Gantt-Diagramm Seite 23
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A B A6 B2 A6 B2 A5 Seite 24
Übung 2 zum Multilevel Feedback Scheduling (MFS): Gegeben sei folgende Scheduling-Strategie mit vier Prioritätsklassen. Jeder Klasse ist eine eigene FIFO-Warteschlange und ein eigenes Quantum zugeordnet: Es wird Process Aging verwendet, d.h. wenn das Zeitquantum eines Prozesses abgelaufen ist, wird er an das Ende der Warteschlange mit nächstniedriger Priorität gestellt. Neuen Prozessen ist eine bestimmte Priorität zugeordnet. Sie werden an das Ende der Warteschlange ihrer Prioritätsklasse angehängt. Es wird am Ende jeder Zeiteinheit überprüft, welcher Prozess am Anfang der nicht leeren Warteschlange mit der höchsten Priorität steht und dieser dann im nächsten Schritt bearbeitet. Ein Prozess, der zum Zeitpunkt t ankommt, wird erst ab dem Zeitpunkt (t +1) berücksichtigt, d.h. er kann frühestens eine Zeiteinheit nach seiner Ankunft die CPU verwenden. Stellen Sie für die ersten 15 Zeiteinheiten tabellarisch die Warteschlangen der einzelnen Prioritätsklassen sowie die Prozesszuteilung für die folgenden Prozesse dar: Seite 25
Lösungsblatt zur MFS Übung 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A(3) A B(5) Running Incoming Prio 0, Q=1 A(3) Prio 1, Q=4 Prio 2, Q=8 Prio 3, FIFO Seite 26
Round Robin Verfahren mit individueller Zeitscheibenlänge: Dauer der Zeitscheibe einer Task sollte proportional zu deren Prozessorauslastung H = e/p sein Beispiel: Task Periode p i Ausführungszeit e i H Zeitscheibe T1 10 ms 1 ms 10% 0,5 ms T2 10 ms 5 ms 50% 2,5 ms T3 15,4 ms 5,5 ms 36% 1,8 ms Task T1 Task T2 0,5 2,5 0,5 0,5 0,5 2,5 2,5 2,5 Deadline Task T3 1,8 1,8 1,8 0,1 Task ist fertig idle T1, T2 T3 T1, T2 0 5 10 15 20 t [ms] Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 27
Vergleich der Verfahren FIFO und Round Robin anhand der Übungen: Bei FIFO werden keine Prozesse verdrängt, das spart Prozesswechselzeiten FIFO begünstigt lange Prozesse RR begünstigt die Antwortzeiten bei kurzen Prozessen und benachteiligt die langen Prozesse Bei großen Zeitschlitzen geht RR über in FIFO Bei kleinen Zeitschlitzen nimmt der Zeitaufwand für den Prozesswechsel überhand Kleine Zeitschlitze bedeuten kurze Antwortzeiten Seite 28
Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) : Dynamisches Scheduling mit statischen Prioritäten präemptive und nicht-präemptive Strategie ist möglich, wobei die präemptive Variante unter Umständen die Einhaltung von Zeitbedingungen garantieren kann Task mit höchster Priorität bekommt Prozessor für harte Echtzeitsysteme nur bedingt geeignet Task Ausführungszeit Priorität A 8 ms 1 (höchste) B 5 ms 1 (höchste) C 2 ms 2 D 10 ms 3 Bei Tasks mit gleicher Priorität: Weitere Bedingung nötig, z.b. FIFO A B C D 5 10 15 20 25 t [ms] Seite 29
Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS) für rein periodische Anwendungen: Priorität ist umgekehrt proportional zur Periodendauer, d.h. Task mit der kleinsten Zykluszeit erhält die höchste Priorität Präemptive Strategie Einhaltung der Zeitschranken (Deadlines) ist vorab überprüfbar, falls Periodendauer ist konstant und Zeitschranke = Deadline Ausführungszeit ist konstant und bekannt Tasks sind voneinander unabhängig (Keine Synchr.) Busy Period Analysis:Tritt bei periodischen Tasks keine Verletzung der Zeitschranken bis zu dem Zeitpunkt auf, an dem der Prozessor das erste Mal in den Ruhezustand geht, dann wird auch danach keine Verletzung der Zeitschranken mehr auftauchen. Seite 30
Scheduling mit festen Prioritäten (fixed priority scheduling (FPS) mit Rate monotonic scheduling (RMS) Task Ausführungszeit Periode Prio Beispiel: Erste geplante Ausführung aller Tasks bei t = 0 ms. Danach werden die Tasks zyklisch wiederholt. A 10 ms 40 ms 1 B 20 ms 50 ms 2 C 10 ms 80 ms 3 D 20 ms 100 ms 4 Task D wird unterbrochen A B C A B D 1 A C B A D 2 t [ms] ABCD 0 10 A B 50 AC 80 BD 100 A 120 Seite 31
Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Beispiel für das RMS: Task Periode p i Ausführungszeit e i Priorität 1 150 ms 15 ms 2 (niedrig) 2 10 ms 1 ms 1 (hoch) Präemption Präemption Task 1 2 ms 9 ms 4 ms Task 2 1 ms 1 ms idle 0 5 10 15 20 t [ms] Ereignis für Task 1 Ereignis für Task 2 Ereignis für Task 2 Seite 32
Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Beispiel für das RMS: Worst Case: Ereignisse treten gleichzeitig auf Task Periode p i Ausführungszeit e i Priorität 1 150 ms 15 ms 2 (niedrig) 2 10 ms 1 ms 1 (hoch) Task 1 Task 2 idle 0 5 10 15 20 t [ms] Ereignis für Task 1 und Task 2 Ereignis für Task 2 Ereignis für Task 2 Seite 33
Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Zuteilung der Prioritäten gemäß dem Rate Monotonic Prinzip ist essentiell! Würde man keine Präemption zulassen oder die Prioritäten anders herum verteilen, so würde Task 2 ihre Zeitschranken verletzen. Beispiel: Task Periode p i Ausführungszeit e i Prioritäten vertauscht 1 150 ms 15 ms 1 (hoch) 2 10 ms 1 ms 2 (niedrig) Task 1 Task 2 Deadline für 1. Ausführung von Task 2 verpasst Ereignis für Task 1 und Task 2 Ereignis für Task 2 Ereignis für Task 2 t [ms] Seite 34
Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Beispiel: Transportsystem mit T1 = Kameradatenverarbeitung, T2 = Motorsteuerung und T3 = Transpondererkennung (aperiodische Task T3 wird mit Deadline periodisiert) H = e 1 /p 1 + e 2 /p 2 + e 3 /p 3 = 95,71 % 2 mögliche Prioritätenfestlegung für T1 und T2, da p 1 = p 2 : T1 > T2 > T3 T2 > T1 > T3 Task Periode p i Ausführungszeit e i H T1 10 ms 1 ms 10% T2 10 ms 5 ms 50% T3 (15,4 ms) 5,5 ms 36% Seite 35
Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Ablauf mit Prioritäten T1 > T2 > T3 Präemption Task Periode p i Ausführungszeit e i Prio T1 10 ms 1 ms 1 T2 10 ms 5 ms 2 T3 15,4 ms 5,5 ms 3 Task T1 Task T2 Task T3 1 5 4 1 5 1,5 Deadline Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] verpasst (um 2,1) Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 36
Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Ablauf mit Prioritäten T2 > T1 > T3 Task Periode p i Ausführungszeit e i Prio T1 10 ms 1 ms 2 T2 10 ms 5 ms 1 T3 15,4 ms 5,5 ms 3 Task T1 Task T2 Task T3 5 1 Präemption 4 5 1 1,5 Deadline Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] verpasst (um 2,1) Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 37
Übung (Voraussetzung: Tasks werden EINEM Prozessor zugeteilt): 1) Vergeben Sie die Prioritäten nach dem Rate Monotonic Prinzip (RMS) 2) Stellen Sie den zeitlichen Verlauf aller 4 Tasks dar unter der Voraussetzung, dass alle Tasks gleichzeitig bereit sind (s. Lösungsblatt 1) 3) Zeichnen Sie für die Task 3 ihre Zustände (ruhend, ablaufwillig, laufend) über eine Zeitachse von 0 bis 250 ms (s. Lösungsblatt 2). Ausführungszeit Periodendauer Priorität Task 1 20 ms 500 ms? Task 2 10 ms 40 ms? Task 3 30 ms 160 ms? Task 4 40 ms 110 ms? Seite 38
Lösung zu Teilaufgabe 1: In Abhängigkeit der Periodendauer ergibt sich folgende Prioritätsvergabe: P(2) > P(4) > P(3) > P(1) Lösungsblatt 1 zur Teilaufgabe 2: Priorität Task 2 Task 4 Task 3 Task 1 50 100 150 200 250 t [ms] Seite 39
Lösungsblatt 2 zur Teilaufgabe 3: Taskzustände in Abhängigkeit der Zeit Zustand von Task 3 laufend ablaufwillig ruhend 50 100 150 200 250 t [ms] Seite 40
Verfahren der kleinsten Restantwortzeit (earliest deadline first (EDF)) Dynamisches Scheduling mit dynamischen Prioritäten, i.d.r. präemptiv Task mit kleinster Restantwortzeit bekommt den Prozessor, d.h. wo die Deadline am nächsten ist Optimales Scheduling-Verfahren, das immer einen ausführbaren Schedule findet, wenn H 100% ist Jedoch hoher Rechenaufwand für das Scheduling Task Ausführungszeit Ankunfts zeit Deadline A 10 ms 0 ms 40 ms B 10 ms 0 ms 30 ms C 30 ms 30 ms 100 ms D 40 ms 50 ms 200 ms E 10 ms 70 ms 90 ms B A C D 1 E D 2 t [ms] AB 0 10 C D 50 E 100 Deadline von B ist früher als von A, und von E ist früher als von D (Präemption) Seite 41
Verfahren der kleinsten Restantwortzeit (earliest deadline first (EDF)) Beispiel Transportsystem: gemäß Busy Period Analysis werden die Zeitschranken auch in Zukunft eingehalten Deadline T3=15,4; T1=T2=10 Deadline T3=14,4; T2=9 Task Periode p i Ausführungszeit e i Prio T1 10 ms 1 ms dyn. T2 10 ms 5 ms dyn. T3 (15,4 ms) 5,5 ms dyn. Deadline T3=5,4; T1=T2=10 Task T1 Task T2 1 5 1 5 Deadline Task T3 5,5 1,5 Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 42
Laxity A=10; B=20 Verfahren des kleinsten Spielraums (least laxity first (LLF)) Dynamisches Scheduling mit dynamischen Prioritäten, i.d.r. präemptiv Task mit kleinstem Spielraum (Laxity) bekommt den Prozessor Optimales Scheduling-Verfahren Jedoch sehr hoher Rechenaufwand Deadlines sind absolut für harte Echtzeitsysteme am besten geeignet Laxity A=10; B=0 Laxity D=90; E=10 Task Ausführungszeit Ankunfts zeit Deadline A 30 ms 0 ms 40 ms B 10 ms 0 ms 30 ms C 30 ms 30 ms 100 ms D 40 ms 50 ms 200 ms E 10 ms 70 ms 90 ms Merkregel: A 1 B A 2 AB 0 10 C D 50 C E E D 100 120 t [ms] Laxity der rechnenden Task bleibt konstant Laxity der anderen Tasks sinkt stetig Seite 43
Verfahren des kleinsten Spielraums (least laxity first (LLF)) Beispiel Transportsystem: L1=9, L2=5, L3=9,9 Task T1 Task T2 Task T3 Spielraum (Laxity): L1, L2 und L3 Grob-Darstellung: in ms statt 1/10 ms L1=5, L2=5, L3=5,9 5 L1=4, L3=4,9 1 L1=9, L2=5, L3=3,9 L3=3,9 5,5 L1=8, L2=4, L3=3,9 L1=7, L2=3 Task Periode p i Ausführungszeit e i Prio 5 T1 10 ms 1 ms dyn. T2 10 ms 5 ms dyn. T3 (15,4 ms) 5,5 ms dyn. L1=3, L2=3 1 Deadline Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 44
Verfahren Guaranteed Percentage Scheduling (GP) Dynamisches, präemptives Scheduling ohne Prioritäten Jeder Task wird fester Teil des Prozessors zugewiesen, d.h. feingranulares Round Robin mit HW-Unterstützung Optimales Scheduling-Verfahren auf Einprozessorsystemen: H=100% Tasks sind zeitlich isoliert, laufen gleichmäßig ab und starten sofort Periodendauer unabhängig von der Anzahl der Tasks für harte Echtzeitsysteme gut geeignet Beispiel: Threads Periode = 100 Taktzyklen Thread A, 30% Thread B, 20% Thread C, 40%... Thread A 30 Taktzyklen Thread B 20 Taktzyklen Thread C 40 Taktzyklen Thread A 30 Taktzyklen Thread B 20 Taktzyklen Thread C 40 Taktzyklen... 100 Taktzyklen 100 Taktzyklen Seite 45
Verfahren Guaranteed Percentage Scheduling (GP) Beispiel: Transportsystem (100-Zyklen-Intervall) T1 mit 10 Taktzyklen T2 mit 50 Taktzyklen T3 mit 36 Taktzyklen Task Periode p i Ausführungszeit e i H T1 10 ms 1 ms 10% T2 10 ms 5 ms 50% T3 15,4 ms 5,5 ms 36% Task T1 Task T2 Task T3 Deadline Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 46
Übung zum Scheduling-Verfahren Gegeben ist nebenstehender Taskplan. Bitte füllen Sie die u.s. Tabelle entsprechend des geforderten Scheduling -Verfahrens aus: 1. FIFO 2. Round Robin 3. Earliest Deadline 4. Least Laxity Task Dauer in ms Ankunftszeit in ms Deadline in ms A 20 10 100 B 10 10 30 C 20 0 50 D 30 30 100 E 20 60 90 In dem Fall, dass Prioritäten gesetzt werden müssen, soll dies gemäß der Buchstabenreihenfolge im Alphabet erfolgen. Falls eine Zeitscheibe notwendig ist, ist diese mit 10 ms anzunehmen. Neuberechnung bei 3. und 4. alle 10 ms. Die Deadlines sind als absolut zu nehmen. 10 ms 20 ms 30 ms 40 ms 50 ms 60 ms 70 ms 80 ms 90 ms 100 ms 1. 2. 3. 4. Seite 47