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

scheduling in echtzeitbetriebssystemen
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Scheduling in Echtzeitbetriebssystemen

  • Prof. Dr. Margarita Esponda

Freie Universität Berlin

slide-2
SLIDE 2

Echtzeitsysteme

Korrekte Ergebnisse zum richtigen Zeitpunkt

Echtzeitsysteme Hart Weich

Eine verspätete Antwort ist eine falsche Antwort Eine verspätete Antwort bedeutet schlechte Qualität

  • M. Esponda-Argüero
slide-3
SLIDE 3

Scheduler

Task = Ausführung eines Programms oder Teile eines Programms

Task = Prozess

In Echtzeitbetriebssystemen wird sehr oft der Begriff Task verwendet.

  • M. Esponda-Argüero
slide-4
SLIDE 4

Scheduling in Echtzeitbetriebssystemen

Algorithmen

  • ff-line
  • n-line

statische Prioritäten dynamische Prioritäten

RMS DMS EDF LLF

Rate Monotonic Scheduling Deadline Monotonic Scheduling Earliest Deadline First Least Laxity First

  • M. Esponda-Argüero
slide-5
SLIDE 5

Scheduling-Algorithmen

Vereinfachung: Die Prozesse sind voneinander unabhängig Die Prozesse sind alle unterbrechbar Notation: r = release

= Startpunkt, an dem der Prozess zur Ausführung bereit ist.

e = execution = Zeiteinheiten für die CPU.

Schlimmste Ausführungszeit.

d = deadline

= Zeiteinheiten bis zur nächsten Zeitschranke.

p = period

= Zeit bis zum nächsten Aufruf desselben Prozesses.

Prozess: Ti = ( ri, ei, di, pi ) Beispiel: T1 = ( 1, 3, 7, 10 )

  • M. Esponda-Argüero
slide-6
SLIDE 6

Notation

Prozess: Ti = ( ri, ei, di, pi ) Beispiel: T1 = ( 1, 3, 7, 10 ) Zeit

8 1 11

r =1 e =3 d =7 p =10 T1

  • M. Esponda-Argüero
slide-7
SLIDE 7

Beispiel: drei Prozesse (Tasks)

5 10 15 20 Prozesse

T1 T2 T3

T1 = ( 0, 1, 3, 3 ) Start CPU Deadline Periode T2 = ( 0, 1, 4, 4 ) T3 = ( 0, 2, 5, 5 )

3 CPUs

  • M. Esponda-Argüero
slide-8
SLIDE 8

RMS Rate Monotonic Scheduling

Feste Prioritäten

Die Prioritäten werden umgekehrt proportional zur Periode vergeben

Beispiel: T1 = ( 0, 2, 5, 5 ) T2 = ( 0, 3, 10, 10 ) T3 = ( 0, 4, 20, 20 )

Deadline = Periode

r e d p

  • M. Esponda-Argüero
slide-9
SLIDE 9

Beispiel: RMS

T1 = ( 0, 2, 5, 5 ) T2 = ( 0, 2, 7, 7 ) T3 = ( 0, 3, 18, 18 )

r e d p Auslastung der CPU 2 5 2 7 3 18 + + = 86 % Der RMS-Algorithmus ist der am besten untersuchte und der am häufigsten eingesetzte Algorithmus.

Anim

  • M. Esponda-Argüero
slide-10
SLIDE 10

DMS Deadline Monotonic Scheduling

Die Prioritäten der Prozesse sind umgekehrt proportional zur Länge der Deadlines.

Feste Prioritäten

Deadline Periode

Beispiel: T1 = ( 0, 2, 3, 5 ) T2 = ( 0, 3, 10, 10 ) T3 = ( 0, 4, 8, 20 )

r e d p

  • M. Esponda-Argüero
slide-11
SLIDE 11

DMS

1 2

5 10 15 20 Prozesse

T1 T2 T3

4 5 3 6

Deadline verletzt !

T1 = ( 0, 1, 3, 3 ) T2 = ( 0, 1, 4, 4 ) T3 = ( 0, 2, 5, 5 )

Mit DMS nicht lösbar

  • M. Esponda-Argüero
slide-12
SLIDE 12

DMS

1 2

5 10 15 20 Prozesse

T1 T2 T3

4 5 3

Deadline verletzt !

3

  • M. Esponda-Argüero
slide-13
SLIDE 13

Beispiel: DMS

Erfüllbarkeitstest

Prüft, ob alle Deadlines eingehalten werden können.

e2 /p2 = 40 % e1 /p1 = 50 %

CPU Auslastung CPU Auslastung 90%

T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

r e d p

  • M. Esponda-Argüero
slide-14
SLIDE 14

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 ) Priorität ( T1 ) > Priorität ( T2 )

25 50 75 100 125 150

r e d p

  • M. Esponda-Argüero
slide-15
SLIDE 15

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 ) Priorität ( T1 ) > Priorität ( T2 )

25 50 75 100 125 150

d1 d1 d2 d2

  • M. Esponda-Argüero
slide-16
SLIDE 16

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 ) Priorität ( T1 ) > Priorität ( T2 )

25 50 75 100 125 150

d1 d1 d2 d2

  • M. Esponda-Argüero
slide-17
SLIDE 17

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 ) Priorität ( T1 ) > Priorität ( T2 )

25 50 75 100 125 150

d1 d1 d2 d2

  • M. Esponda-Argüero
slide-18
SLIDE 18

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 ) Priorität ( T1 ) > Priorität ( T2 )

25 50 75 100 125 150

d1 d1 d2 d2 T2 verpasst die erste Deadline

  • M. Esponda-Argüero
slide-19
SLIDE 19

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 ) Priorität ( T1 ) < Priorität ( T2 )

25 50 75 100 125 150

d1 d1 d2 d2

  • M. Esponda-Argüero
slide-20
SLIDE 20

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 ) Priorität ( T1 ) < Priorität ( T2 )

25 50 75 100 125 150

d1 d1 d2 d2 T1 verpasst die erste Deadline

  • M. Esponda-Argüero
slide-21
SLIDE 21

EDF Earliest Deadline First

Früheste Deadline zuerst Der Prozess mit der nächsten Deadline wird als nächster abgearbeitet.

Priorität von Ti(t) = di(t) - t

  • M. Esponda-Argüero
slide-22
SLIDE 22

Earliest Deadline First

1 2

5 10 15 20 Prozesse

T1 T2 T3

3 T1 = ( 0, 1, 3, 3 ) T2 = ( 0, 1, 4, 4 ) T3 = ( 0, 2, 5, 5 )

  • M. Esponda-Argüero
slide-23
SLIDE 23

Earliest Deadline First

1 2

5 10 15 20 Prozesse

T1 T2 T3

3 4 6 9 11 13 16 5 8 12 14 10 15 7 T1 = ( 0, 1, 3, 3 ) T2 = ( 0, 1, 4, 4 ) T3 = ( 0, 2, 5, 5 )

  • M. Esponda-Argüero
slide-24
SLIDE 24

LLF Least Laxity First

Kleinster zeitlicher Spielraum Der Prozess mit der kleinsten Zusatzzeit wird als nächster abgearbeitet.

li(t) = di(t) – t – ei(t)

Zeitlicher Spielraum

  • M. Esponda-Argüero
slide-25
SLIDE 25

Beispiel: zwei Prozesse

5 10 15 20 Prozesse

T1 T2

T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-26
SLIDE 26

Least Laxity First

5 10 15 20 Prozesse

T1 T2

3 4 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-27
SLIDE 27

Least Laxity First

5 10 15 20 Prozesse

T1 T2

3 3 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-28
SLIDE 28

Least Laxity First

5 10 15 20 Prozesse

3 2 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

T1 T2

t

  • M. Esponda-Argüero
slide-29
SLIDE 29

Least Laxity First

5 10 15 20 Prozesse

t1 t2

2 2 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-30
SLIDE 30

Least Laxity First

5 10 15 20 Prozesse

t1 t2

1 2 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-31
SLIDE 31

Least Laxity First

5 10 15 20 Prozesse

t1 t2

1 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-32
SLIDE 32

Least Laxity First

5 10 15 20 Prozesse

t1 t2

1 3 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-33
SLIDE 33

Least Laxity First

5 10 15 20 Prozesse

t1 t2

2 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-34
SLIDE 34

Least Laxity First

5 10 15 20 Prozesse

t1 t2

2 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-35
SLIDE 35

Least Laxity First

5 10 15 20 Prozesse

t1 t2

2 4 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-36
SLIDE 36

Least Laxity First

5 10 15 20 Prozesse

t1 t2

2 3 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-37
SLIDE 37

Least Laxity First

5 10 15 20 Prozesse

t1 t2

3 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-38
SLIDE 38

Least Laxity First

5 10 15 20 Prozesse

t1 t2

3 3 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-39
SLIDE 39

Least Laxity First

5 10 15 20 Prozesse

t1 t2

3 2 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-40
SLIDE 40

Least Laxity First

5 10 15 20 Prozesse

t1 t2

2 2 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-41
SLIDE 41

Least Laxity First

5 10 15 20 Prozesse

t1 t2

1 2 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-42
SLIDE 42

Least Laxity First

5 10 15 20 Prozesse

t1 t2

1 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-43
SLIDE 43

Least Laxity First

5 10 15 20 Prozesse

t1 t2

T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

t

  • M. Esponda-Argüero
slide-44
SLIDE 44

Earliest Deadline First

Prozesse

t1 t2

5 10 15

T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

  • M. Esponda-Argüero
slide-45
SLIDE 45

Earliest Deadline First

Prozesse

t1 t2

5 10 15 20

1 2 3 5 6 4 7

25

8 10

30 35

9 T1 = ( 0, 3, 6, 6 ) T2 = ( 0, 4, 8, 9 )

idle

  • M. Esponda-Argüero
slide-46
SLIDE 46

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

5 9

  • M. Esponda-Argüero
slide-47
SLIDE 47

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

5 8

Least Laxity First

  • M. Esponda-Argüero
slide-48
SLIDE 48

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

5 7

Least Laxity First

  • M. Esponda-Argüero
slide-49
SLIDE 49

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

5 6

Least Laxity First

  • M. Esponda-Argüero
slide-50
SLIDE 50

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

5 5

Least Laxity First

  • M. Esponda-Argüero
slide-51
SLIDE 51

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

5 4

Least Laxity First

  • M. Esponda-Argüero
slide-52
SLIDE 52

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

4

Least Laxity First

  • M. Esponda-Argüero
slide-53
SLIDE 53

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

4

Least Laxity First

  • M. Esponda-Argüero
slide-54
SLIDE 54

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

4

Least Laxity First

5

  • M. Esponda-Argüero
slide-55
SLIDE 55

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

4

  • M. Esponda-Argüero
slide-56
SLIDE 56

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

4

  • M. Esponda-Argüero
slide-57
SLIDE 57

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

4 9

  • M. Esponda-Argüero
slide-58
SLIDE 58

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

4 8

  • M. Esponda-Argüero
slide-59
SLIDE 59

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

8 5

  • M. Esponda-Argüero
slide-60
SLIDE 60

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

7 5

  • M. Esponda-Argüero
slide-61
SLIDE 61

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

6 5

  • M. Esponda-Argüero
slide-62
SLIDE 62

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

5 5

  • M. Esponda-Argüero
slide-63
SLIDE 63

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

4 5

  • M. Esponda-Argüero
slide-64
SLIDE 64

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

4 4

  • M. Esponda-Argüero
slide-65
SLIDE 65

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

3

  • M. Esponda-Argüero
slide-66
SLIDE 66

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

Least Laxity First

  • M. Esponda-Argüero
slide-67
SLIDE 67

Beispiel: Keine Lösung mit DMS

CPU Auslastung 90% T1 = ( 0, 25, 50, 50 ) T2 = ( 0, 30, 75, 75 )

25 50 75 100 125 150

d1 d1 d2 d2

aber mit Least Laxity First

d1

idle

  • M. Esponda-Argüero
slide-68
SLIDE 68

Scheduling in Echtzeitbetriebssystemen

 Echtzeitbetriebssysteme müssen Zeitanforderungen

erfüllen

 Scheduling wird häufig durch Prioritätsvergabe gesteuert  Prioritäten können statisch oder dynamisch vergeben

werden

 Wir haben vier grundlegende Algorithmen besprochen  Was noch fehlt: Scheduling mit abhängigen Prozessen

  • M. Esponda-Argüero