Scheduling in Echtzeitbetriebssystemen Prof. Dr. Margarita Esponda Freie Universität Berlin
Echtzeitsysteme Korrekte Ergebnisse zum richtigen Zeitpunkt Hart Eine verspätete Antwort ist eine falsche Antwort Echtzeitsysteme Weich Eine verspätete Antwort bedeutet schlechte Qualität M. Esponda-Argüero
Scheduler In Echtzeitbetriebssystemen wird sehr oft der Begriff Task verwendet. Task = Ausführung eines Programms oder Teile eines Programms Task = Prozess M. Esponda-Argüero
Scheduling in Echtzeitbetriebssystemen Algorithmen off-line on-line dynamische Prioritäten statische Prioritäten DMS EDF LLF RMS L east E arliest D eadline R ate L axity M onotonic D eadline M onotonic F irst S cheduling S cheduling F irst M. Esponda-Argüero
Scheduling-Algorithmen Vereinfachung: Die Prozesse sind voneinander unabhängig Die Prozesse sind alle unterbrechbar Notation: = Startpunkt, an dem der Prozess zur r = release Ausführung bereit ist. e = execution = Zeiteinheiten für die CPU. Schlimmste Ausführungszeit. = Zeiteinheiten bis zur nächsten d = deadline Zeitschranke. = Zeit bis zum nächsten Aufruf p = period desselben Prozesses. Prozess: T i = ( r i , e i , d i , p i ) Beispiel: T 1 = ( 1, 3, 7, 10 ) M. Esponda-Argüero
Notation Prozess: T i = ( r i , e i , d i , p i ) Beispiel: T 1 = ( 1, 3, 7, 10 ) d =7 e =3 T 1 Zeit 8 11 1 r =1 p =10 M. Esponda-Argüero
Beispiel: drei Prozesse (Tasks) Prozesse 3 CPUs T 3 T 2 T 1 0 5 10 15 20 Start CPU Deadline Periode T 1 = ( 0, 1, 3, 3 ) T 2 = ( 0, 1, 4, 4 ) T 3 = ( 0, 2, 5, 5 ) M. Esponda-Argüero
RMS Rate Monotonic Scheduling Feste Prioritäten Die Prioritäten werden umgekehrt proportional zur Periode vergeben Deadline = Periode r e d p Beispiel: T 1 = ( 0, 2, 5, 5 ) T 2 = ( 0, 3, 10, 10 ) T 3 = ( 0, 4, 20, 20 ) M. Esponda-Argüero
Beispiel: RMS r e d p Anim T 1 = ( 0, 2, 5, 5 ) T 2 = ( 0, 2, 7, 7 ) T 3 = ( 0, 3, 18, 18 ) 2 2 3 + = 86 % Auslastung der CPU + 5 7 18 Der RMS -Algorithmus ist der am besten untersuchte und der am häufigsten eingesetzte Algorithmus. M. Esponda-Argüero
DMS Deadline Monotonic Scheduling Feste Prioritäten Die Prioritäten der Prozesse sind umgekehrt proportional zur Länge der Deadlines. Deadline Periode r e d p Beispiel: T 1 = ( 0, 2, 3, 5 ) T 2 = ( 0, 3, 10, 10 ) T 3 = ( 0, 4, 8, 20 ) M. Esponda-Argüero
DMS Prozesse Deadline verletzt ! 3 6 T 3 2 5 T 2 1 4 T 1 0 5 10 15 20 T 1 = ( 0, 1, 3, 3 ) Mit DMS nicht lösbar T 2 = ( 0, 1, 4, 4 ) T 3 = ( 0, 2, 5, 5 ) M. Esponda-Argüero
DMS Prozesse 3 T 3 T 2 T 1 0 5 10 15 20 1 4 2 5 3 Deadline verletzt ! M. Esponda-Argüero
Beispiel: DMS Erfüllbarkeitstest Prüft, ob alle Deadlines eingehalten werden können. r e d p T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 ) e 1 /p 1 = 50 % CPU Auslastung e 2 /p 2 = 40 % CPU Auslastung 90% M. Esponda-Argüero
Beispiel: Keine Lösung mit DMS r e d p T1 = ( 0, 25, 50, 50 ) CPU Auslastung 90% T2 = ( 0, 30, 75, 75 ) Priorität ( T 1 ) > Priorität ( T 2 ) 0 25 50 75 100 125 150 M. Esponda-Argüero
Beispiel: Keine Lösung mit DMS T1 = ( 0, 25, 50, 50 ) CPU Auslastung 90% T2 = ( 0, 30, 75, 75 ) Priorität ( T 1 ) > Priorität ( T 2 ) d 1 d 2 d 1 d 2 0 25 50 75 100 125 150 M. Esponda-Argüero
Beispiel: Keine Lösung mit DMS T1 = ( 0, 25, 50, 50 ) CPU Auslastung 90% T2 = ( 0, 30, 75, 75 ) Priorität ( T 1 ) > Priorität ( T 2 ) d 1 d 2 d 1 d 2 0 25 50 75 100 125 150 M. Esponda-Argüero
Beispiel: Keine Lösung mit DMS T1 = ( 0, 25, 50, 50 ) CPU Auslastung 90% T2 = ( 0, 30, 75, 75 ) Priorität ( T 1 ) > Priorität ( T 2 ) d 1 d 2 d 1 d 2 0 25 50 75 100 125 150 M. Esponda-Argüero
Beispiel: Keine Lösung mit DMS T1 = ( 0, 25, 50, 50 ) CPU Auslastung 90% T2 = ( 0, 30, 75, 75 ) Priorität ( T 1 ) > Priorität ( T 2 ) d 1 d 2 d 1 d 2 0 25 50 75 100 125 150 T 2 verpasst die erste Deadline M. Esponda-Argüero
Beispiel: Keine Lösung mit DMS T1 = ( 0, 25, 50, 50 ) CPU Auslastung 90% T2 = ( 0, 30, 75, 75 ) Priorität ( T 1 ) < Priorität ( T 2 ) d 1 d 2 d 1 d 2 0 25 50 75 100 125 150 M. Esponda-Argüero
Beispiel: Keine Lösung mit DMS T1 = ( 0, 25, 50, 50 ) CPU Auslastung 90% T2 = ( 0, 30, 75, 75 ) Priorität ( T 1 ) < Priorität ( T 2 ) d 1 d 2 d 1 d 2 0 25 50 75 100 125 150 T 1 verpasst die erste Deadline M. Esponda-Argüero
EDF Earliest Deadline First Früheste Deadline zuerst Der Prozess mit der nächsten Deadline wird als nächster abgearbeitet. Priorität von T i (t) = d i (t) - t M. Esponda-Argüero
Earliest Deadline First Prozesse T 3 T 2 T 1 0 5 10 15 20 1 2 T 1 = ( 0, 1, 3, 3 ) 3 T 2 = ( 0, 1, 4, 4 ) T 3 = ( 0, 2, 5, 5 ) M. Esponda-Argüero
Earliest Deadline First Prozesse 3 7 10 15 T 3 2 5 8 12 14 T 2 1 4 6 9 11 13 16 T 1 0 5 10 15 20 T 1 = ( 0, 1, 3, 3 ) T 2 = ( 0, 1, 4, 4 ) T 3 = ( 0, 2, 5, 5 ) M. Esponda-Argüero
LLF Least Laxity First Kleinster zeitlicher Spielraum Der Prozess mit der kleinsten Zusatzzeit wird als nächster abgearbeitet. Zeitlicher Spielraum l i (t) = d i (t) – t – e i (t) M. Esponda-Argüero
Beispiel: zwei Prozesse Prozesse T 2 T 1 t 0 5 10 15 20 T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 4 T 2 3 T 1 0 5 10 15 20 T 1 = ( 0, 3, 6, 6 ) t T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 3 T 2 3 T 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 2 T 2 3 T 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 2 t 2 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 2 t 2 1 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 1 t 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 1 t 2 3 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse t 2 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse t 2 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 4 t 2 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 3 t 2 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 3 t 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 3 t 2 3 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 3 t 2 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 2 t 2 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse 1 t 2 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse t 2 1 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Least Laxity First Prozesse t 2 t 1 0 5 10 15 20 t T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Earliest Deadline First Prozesse t 2 t 1 0 5 10 15 T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Earliest Deadline First Prozesse 2 4 7 9 t 2 1 3 5 6 8 10 t 1 0 5 10 15 20 25 30 35 idle T 1 = ( 0, 3, 6, 6 ) T 2 = ( 0, 4, 8, 9 ) M. Esponda-Argüero
Beispiel: Keine Lösung mit DMS T1 = ( 0, 25, 50, 50 ) CPU Auslastung 90% T2 = ( 0, 30, 75, 75 ) Least Laxity First d 1 d 2 d 1 d 2 5 9 0 25 50 75 100 125 150 M. Esponda-Argüero
Beispiel: Keine Lösung mit DMS T1 = ( 0, 25, 50, 50 ) CPU Auslastung 90% T2 = ( 0, 30, 75, 75 ) Least Laxity First d 1 d 2 d 1 d 2 5 8 0 25 50 75 100 125 150 M. Esponda-Argüero
Recommend
More recommend