scheduling in echtzeitbetriebssystemen
play

Scheduling in Echtzeitbetriebssystemen Prof. Dr. Margarita Esponda - PowerPoint PPT Presentation

Scheduling in Echtzeitbetriebssystemen Prof. Dr. Margarita Esponda Freie Universitt Berlin Echtzeitsysteme Korrekte Ergebnisse zum richtigen Zeitpunkt Hart Eine versptete Antwort ist eine falsche Antwort Echtzeitsysteme Weich Eine


  1. Scheduling in Echtzeitbetriebssystemen Prof. Dr. Margarita Esponda Freie Universität Berlin

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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

  44. 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

  45. 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

  46. 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

  47. 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