temps réel - sysmic.orgsysmic.org/pub/cours temps réel/plain/sysmic - j. pouiller - cours... ·...

69
Temps Réel Jérôme Pouiller <[email protected]>

Upload: others

Post on 19-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Temps Réel

Jérôme Pouiller <[email protected]>

Page 2: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Quatrième partie IV

Ordonnancement

Sysmic - J. Pouiller Temps Réel 76 / 1

Page 3: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Sysmic - J. Pouiller Temps Réel 77 / 1

Page 4: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Modèle de tâches

Paramètres définissant une tâche i :

Date d’arrivée de la tâche dans le système : Si

Première date d’activation : Ri

Période d’activation : Ti

Délai critique ou deadline (Délai maximum acceptable pour sonexécution) : Di

Capacité (Temps CPU nécessaire à l’exécution de la tâche) : Ci

Sysmic - J. Pouiller Temps Réel 78 / 1

Page 5: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Modèle de tâches

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

i

Si Ri

TR1i

Di

Ti

TR2i

Di

Ti

Tâche Arrivée Période Capacité Délaii 2 6 2 5

Sysmic - J. Pouiller Temps Réel 79 / 1

Page 6: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Modèle de tâches

Par conséquent :

Tâche périodique définie par : (Si ,Ri ,Ti ,Di ,Ci )Tâche apériodique définie par : (Si ,Ri ,0,Di ,Ci )

Très souvent :

Les tâches sont connues au début de l’ordonnancement : Si = 0Les tâches périodiques sont actives dès le début del’ordonnancement : Ri = 0Le délai critique des tâches périodiques est leur période : Di = Ti

Sysmic - J. Pouiller Temps Réel 80 / 1

Page 7: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Paramètres statiques

Paramètres statiques :

Date de réveil sur une période k : rik

Échéance sur une période k : dik = rik +Di

Facteur d’utilisation du processeur : Ui = Ci/Ti

Facteur de charge du processeur : CHi = Ci/Di (CHi = Ui si délaicritique sur périodes)Laxité (ou Slack) de la tâche (retard maximum acceptable pourl’exécution de la tâche) : Li = Di −Ci

Sysmic - J. Pouiller Temps Réel 81 / 1

Page 8: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Paramètres dynamiques

Paramètres dynamiques (dépendant de l’ordonnancement) :

Priorité (peut être dynamique ou statique) : Pi

Date du début de l’exécution d’une période k : sik

Date de la fin de l’exécution d’une période k :eik

Temps de réponse de la tâche TRik = eik − rik (Nous verronscomment le calculer)Durée d’exécution résiduelle à la date t : Ci (t) (0≤ Ci (t)≤ Ci )Délai critique résiduel à la date t : Di (t) = dik − t (0≤ Di (t)≤ Di )Charge résiduelle à la date t : CHi (t) = Ci (t)/Di (t)(0≤ CHi (t)≤ CHi )Laxité résiduelle à la date t : Li (t) = Di (t)−Ci (t) (0≤ Li (t)≤ Li )Laxité conditionnelle à la date t (somme sur les tâchesdéclenchées à la date t et qui sont devant i du point de vue del’ordonnancement) : LCi (t) (calcul complexe)

Sysmic - J. Pouiller Temps Réel 82 / 1

Page 9: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Paramètres du système

Configuration : ensemble des tâches mises en jeu parl’applicationTaux d’utilisation du processeur : U = ∑i Ui

Taux de charge du processeur : CH = ∑i CHi

Intervalle d’étude : intervalle de temps minimum pour prouverl’ordonnancabilité d’une configuration

Dans le cas de tâches périodiques : ppcmi (Ti )Dans le cas de tâches apériodiques :[mini{Ri},maxi{Ri +Di}+2×ppcmi (Ti )]

Laxité du processeur : intervalle de temps pendant lequel leprocesseur peut rester inactif tout en respectant les échéances :LP(t) = mini{LCi (t)}

Sysmic - J. Pouiller Temps Réel 83 / 1

Page 10: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

États des tâches

Running

Waiting

Interrupted

Ready

Sysmic - J. Pouiller Temps Réel 84 / 1

Page 11: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Typologie des algorithmes

On distingue diverses typologies d’algorithmes :

on line ou off line : Choix dynamique ou prédéfini à la conceptionà priorité statique ou dynamique : La priorité d’une tâche est-ellefixe ou une variable dépendante d’autres paramètrespréemptif ou non préemptif : Une tâche peut-elle perdre leprocesseur (au profit d’une tâche plus prioritaire) ou non

Sysmic - J. Pouiller Temps Réel 85 / 1

Page 12: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Théorème de l’instant critique

Si toutes les tâches arrivent initialement dans le système en mêmetemps et si elles respectent leur première échéance, alors toutes leséchéances seront respectées par la suite, quel que soit l’instantd’arrivée des tâches.

C’est une condition nécessaire et suffisante si toutes les tâchesdu système sont initialement prêtes au même instant.Dans le cas contraire, c’est une condition nécessaire

Sysmic - J. Pouiller Temps Réel 86 / 1

Page 13: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Temps de réponse

Délai entre l’activation d’une tâche et sa terminaison.

TRi = Ci + ∑Pj>Pi

⌈TRi

Tj

⌉Cj

Sysmic - J. Pouiller Temps Réel 87 / 1

Page 14: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Calcul du temps de réponse

Technique de calcul : on évalue de facon itérative

wn+1i = Ci + ∑

Pj>Pi

⌈wn

iTj

⌉Cj

On démarre avec w0i = Ci

Échec si wni > Ti

Réussite si wn+1i = wn

i

Sysmic - J. Pouiller Temps Réel 88 / 1

Page 15: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Calcul du temps de réponse

Exemple :

Tâche Arrivée Période Capacité Délai PrioritéA 0 7 3 Fin de période 1B 0 12 2 Fin de période 2C 0 20 5 Fin de période 3

w01 = C1 = 3

w02 = C2 = 2

w12 = 2+3

⌈27

⌉= 5

w22 = 2+3

⌈57

⌉= 5

w03 = C3 = 5

w13 = 5+3

⌈57

⌉+2⌈

512

⌉= 10

w23 = 5 + 3

⌈107

⌉+2⌈

1012

⌉= 13

w33 = 5+ 3

⌈137

⌉+2⌈

1312

⌉= 15

w43 = 5+ 3

⌈157

⌉+2⌈

1512

⌉= 18

w53 = 5+ 3

⌈187

⌉+2⌈

1812

⌉= 18

Sysmic - J. Pouiller Temps Réel 89 / 1

Page 16: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Calcul du temps de réponse

Exemple :

Tâche Arrivée Période Capacité Délai PrioritéA 0 7 3 Fin de période 1B 0 12 2 Fin de période 2C 0 20 5 Fin de période 3

w01 = C1 = 3

w02 = C2 = 2

w12 = 2+3

⌈27

⌉= 5

w22 = 2+3

⌈57

⌉= 5

w03 = C3 = 5

w13 = 5+3

⌈57

⌉+2⌈

512

⌉= 10

w23 = 5+3

⌈107

⌉+ 2⌈

1012

⌉= 13

w33 = 5+3

⌈137

⌉+ 2⌈

1312

⌉= 15

w43 = 5+3

⌈157

⌉+ 2⌈

1512

⌉= 18

w53 = 5+3

⌈187

⌉+ 2⌈

1812

⌉= 18

Sysmic - J. Pouiller Temps Réel 89 / 1

Page 17: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Rate Monotonique

Aussi appelé RMA (Rate Monotonic Algorithm)

Ordonnancement à priorité statique où les priorités sont inversementproportionnelles aux périodes des tâches.

Fonctionne en version préemptive. La version non-préemptive n’estpas garantie.

Liu et Layland ont démontré qu’un système est ordonnancable si letaux d’occupation du processeur U vérifie la condition suffisante (nonnécessaire) suivante :

U =n

∑i

Ci

Ti≤ n

(2

1n −1

)

n limite d’occupation1 100.0%2 82.8%3 78.0%4 75.7%5 74.3%

10 71.9%∞ 69.3%

Sysmic - J. Pouiller Temps Réel 90 / 1

Page 18: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple 1

Tâche Arrivée Période Capacité DélaiA 0 20 8 Fin de périodeB 0 10 1 Fin de périodeC 0 4 1 Fin de période

Sysmic - J. Pouiller Temps Réel 91 / 1

Page 19: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple 1

Tâche Arrivée Période Capacité DélaiA 0 20 8 Fin de périodeB 0 10 1 Fin de périodeC 0 4 1 Fin de période

Charge du CPU :8

20+

110

+14

= 0.75

Sysmic - J. Pouiller Temps Réel 91 / 1

Page 20: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple 1

Tâche Arrivée Période Capacité DélaiA 0 20 8 Fin de périodeB 0 10 1 Fin de périodeC 0 4 1 Fin de période

Mode préemptif (ppcm(4,10,20) = 20) :

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

15

A

B

C

16

A

B

C

17

A

B

C

18

A

B

C

19

A

B

C

20

A

B

C

Sysmic - J. Pouiller Temps Réel 91 / 1

Page 21: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple 1

Tâche Arrivée Période Capacité DélaiA 0 20 8 Fin de périodeB 0 10 1 Fin de périodeC 0 4 1 Fin de période

Mode non-préemptif :

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

15

A

B

C

16

A

B

C

17

A

B

C

18

A

B

C

19

A

B

C

20

A

B

C ×

Sysmic - J. Pouiller Temps Réel 91 / 1

Page 22: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple 2

Tâche Arrivée Période Capacité DélaiA 0 16 8 Fin de périodeB 0 8 2 Fin de périodeC 0 4 1 Fin de période

Charge du CPU :8

16+

28

+14

= 1

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

15

A

B

C

16

A

B

C

Sysmic - J. Pouiller Temps Réel 92 / 1

Page 23: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple 2

Tâche Arrivée Période Capacité DélaiA 0 16 8 Fin de périodeB 0 8 2 Fin de périodeC 0 4 1 Fin de période

Charge du CPU :8

16+

28

+14

= 1

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

15

A

B

C

16

A

B

C

Sysmic - J. Pouiller Temps Réel 92 / 1

Page 24: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple 2

Tâche Arrivée Période Capacité DélaiA 0 16 8 Fin de périodeB 0 8 2 Fin de périodeC 0 4 1 Fin de période

Charge du CPU :8

16+

28

+14

= 1

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

15

A

B

C

16

A

B

C

Sysmic - J. Pouiller Temps Réel 92 / 1

Page 25: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Deadline Monotonic (DM)

Aussi appelé DMA (Deadline Monotonic AlgorithmAlgorithme à priorité statiqueGénéralisation de Rate Monotonic pour les tâche avec Di < Ti

Basé sur le délai critique :La tâche de plus petit délai critique est la plus prioritaire

Test d’acceptabilité (suffisant mais pas nécessaire) :

CH =n

∑i

Ci

Di≤ n

(2

1n −1

)

Équivalent à Rate Monotonic dans le cas des tâches à échéancesur requête, meilleur dans les autres cas

Sysmic - J. Pouiller Temps Réel 93 / 1

Page 26: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 3 7B 0 5 2 4C 0 10 2 9

Sysmic - J. Pouiller Temps Réel 94 / 1

Page 27: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 3 7B 0 5 2 4C 0 10 2 9

Charge CPU :3

20+

25

+2

10= 0.75

Sysmic - J. Pouiller Temps Réel 94 / 1

Page 28: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 3 7B 0 5 2 4C 0 10 2 9

Par RM :

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

15

A

B

C

×

Sysmic - J. Pouiller Temps Réel 94 / 1

Page 29: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 3 7B 0 5 2 4C 0 10 2 9

Test d’acceptabilité :37

+24

+29

= 1.15

Sysmic - J. Pouiller Temps Réel 94 / 1

Page 30: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 3 7B 0 5 2 4C 0 10 2 9

Par DM :

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

15

A

B

C

Sysmic - J. Pouiller Temps Réel 94 / 1

Page 31: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Algorithme EDF

Algorithme à priorité dynamiqueBasé sur l’échéance :

A chaque instant (i.e à chaque réveil de tâche), la prioritémaximale est donnée à la tâche dont l’échéance est la plus proche

Test d’acceptabilité :Condition nécessaire :

U =n

∑i

CiTi≤ 1

Condition suffisante :

U =n

∑i

CiDi≤ 1

Dans le cas de tâche à échéance sur requête, les deux conditionssont égales

Sysmic - J. Pouiller Temps Réel 95 / 1

Page 32: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 3 7B 0 5 2 4C 0 10 2 8

Sysmic - J. Pouiller Temps Réel 96 / 1

Page 33: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 3 7B 0 5 2 4C 0 10 2 8

Condition nécessaire :

320

+25

+2

10= 0.75≤ 1

Condition suffisante :

37

+24

+29

= 1.15 > 1

Sysmic - J. Pouiller Temps Réel 96 / 1

Page 34: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 3 7B 0 5 2 4C 0 10 2 8

Par DM :

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

15

A

B

C

16

A

B

C

17

A

B

C

18

A

B

C

19

A

B

C

20

A

B

C ×

Sysmic - J. Pouiller Temps Réel 96 / 1

Page 35: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 3 7B 0 5 2 4C 0 10 2 8

Par EDF :

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

15

A

B

C

16

A

B

C

17

A

B

C

18

A

B

C

19

A

B

C

20

A

B

C

Sysmic - J. Pouiller Temps Réel 96 / 1

Page 36: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Least Slack Time (LST)

Algorithme à priorité dynamiqueAussi appelé Least Laxity First (LLF)Basé sur la laxité résiduelle :

La priorité maximale est donnée à la tâche qui a la plus petite laxitérésiduelle : L(t) = D(t)−C(t)

Équivalent à EDF si on ne calcule la laxité qu’au réveil destâchesOptimum à trouver entre la granularité du calcul et le nombre dechangements de contexte provoquésPermet d’être parfois plus résistant aux erreursDemande une connaissance de la capacité des tâchesGain discutablePeu utilisé dans la pratique

Sysmic - J. Pouiller Temps Réel 97 / 1

Page 37: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 1 7B 0 5 2 3C 0 10 3 8

Sysmic - J. Pouiller Temps Réel 98 / 1

Page 38: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 1 7B 0 5 2 3C 0 10 3 8

Par EDF :

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

Sysmic - J. Pouiller Temps Réel 98 / 1

Page 39: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Tâche Arrivée Période Capacité DélaiA 0 20 1 7B 0 5 2 3C 0 10 3 8

Par LST, en recalculant l’algorithme à chaque période :

0

A

B

C

1

A

B

C

2

A

B

C

3

A

B

C

4

A

B

C

5

A

B

C

6

A

B

C

7

A

B

C

8

A

B

C

9

A

B

C

10

A

B

C

11

A

B

C

12

A

B

C

13

A

B

C

14

A

B

C

Sysmic - J. Pouiller Temps Réel 98 / 1

Page 40: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple - 2

Tâche Arrivée Période Capacité DélaiA 0 17 7 Fin de périodeB 0 18 7 Fin de période

Par EDF :

0

A

B1

A

B2

A

B3

A

B4

A

B5

A

B6

A

B7

A

B8

A

B9

A

B10

A

B11

A

B12

A

B13

A

B14

A

B15

A

B16

A

B17

A

B18

A

B

Par LST, en recalculant l’algorithme à chaque période :

0

A

B1

A

B2

A

B3

A

B4

A

B5

A

B6

A

B7

A

B8

A

B9

A

B10

A

B11

A

B12

A

B13

A

B14

A

B15

A

B16

A

B17

A

B18

A

B

Sysmic - J. Pouiller Temps Réel 99 / 1

Page 41: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple - 2

Tâche Arrivée Période Capacité DélaiA 0 17 7 Fin de périodeB 0 18 7 Fin de période

Par EDF :

0

A

B1

A

B2

A

B3

A

B4

A

B5

A

B6

A

B7

A

B8

A

B9

A

B10

A

B11

A

B12

A

B13

A

B14

A

B15

A

B16

A

B17

A

B18

A

B

Par LST, en recalculant l’algorithme à chaque période :

0

A

B1

A

B2

A

B3

A

B4

A

B5

A

B6

A

B7

A

B8

A

B9

A

B10

A

B11

A

B12

A

B13

A

B14

A

B15

A

B16

A

B17

A

B18

A

B

Sysmic - J. Pouiller Temps Réel 99 / 1

Page 42: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple - 2

Tâche Arrivée Période Capacité DélaiA 0 17 7 Fin de périodeB 0 18 7 Fin de période

Par EDF :

0

A

B1

A

B2

A

B3

A

B4

A

B5

A

B6

A

B7

A

B8

A

B9

A

B10

A

B11

A

B12

A

B13

A

B14

A

B15

A

B16

A

B17

A

B18

A

B

Par LST, en recalculant l’algorithme à chaque période :

0

A

B1

A

B2

A

B3

A

B4

A

B5

A

B6

A

B7

A

B8

A

B9

A

B10

A

B11

A

B12

A

B13

A

B14

A

B15

A

B16

A

B17

A

B18

A

B

Sysmic - J. Pouiller Temps Réel 99 / 1

Page 43: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Tâches apériodiques

Tâches prises en compte dans une configuration comprenantdéjà des tâches périodiquesA priori, on ne connaît pas l’instant d’arrivée de la requête deréveil de la tâche apériodiqueContraintes temporelles strictes ou relativesButs à atteindre :

Maintenir les garanties du temps réelles sur les tâches déjàprésentes dans l’ordonnanceurSi contraintes relatives : minimiser le temps de réponseSi contraintes strictes : maximiser le nombre de tâches acceptéesen respectant leurs contraintes

Sysmic - J. Pouiller Temps Réel 100 / 1

Page 44: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Ordonnancement conjoint

Algorithme fonctionnant avec DMA, EDF ou LST et des tâchesapériodiques avec des délais critiquesOn ordonnance les tâches apériodiques de la même manièreque les tâches périodiquesAvant d’accepter la tâche, il faut vérifier le critère d’acceptabilité(ce qui correspond à évaluer l’algorithme hors ligne)

Sysmic - J. Pouiller Temps Réel 101 / 1

Page 45: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Traitement en arrière-plan

Aussi appelé backgound ou sur temps creuxTâches apériodiques ordonnancées quand le processeur estoisif

Les tâches périodiques restent les plus prioritaires

Ordonnancement relatif des tâches apériodiques en mode FIFOTraitement le plus simple, mais le moins performantPas de marge de manoeuvre pour améliorer le temps deréponse des tâches apériodique. Potentiellement, les tâchesapériodique peuvent avoir des temps de réponse long.

Sysmic - J. Pouiller Temps Réel 102 / 1

Page 46: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Traitement en arrière-plan

Avec ordonnancement RM des tâches périodiques :

Tâche Arrivée Période Capacité DélaiA 0 5 2 Fin de périodeB 0 10 2 Fin de période1 4 - 2 Aucune2 10 - 1 Aucune3 11 - 3 Aucune

0

A

B

1

2

31

A

B

1

2

32

A

B

1

2

33

A

B

1

2

34

A

B

1

2

35

A

B

1

2

36

A

B

1

2

37

A

B

1

2

38

A

B

1

2

39

A

B

1

2

310

A

B

1

2

311

A

B

1

2

312

A

B

1

2

313

A

B

1

2

314

A

B

1

2

315

A

B

1

2

316

A

B

1

2

317

A

B

1

2

318

A

B

1

2

319

A

B

1

2

320

A

B

1

2

3

Sysmic - J. Pouiller Temps Réel 103 / 1

Page 47: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Traitement en arrière-plan

Avec ordonnancement RM des tâches périodiques :

Tâche Arrivée Période Capacité DélaiA 0 5 2 Fin de périodeB 0 10 2 Fin de période1 4 - 2 Aucune2 10 - 1 Aucune3 11 - 3 Aucune

0

A

B

1

2

31

A

B

1

2

32

A

B

1

2

33

A

B

1

2

34

A

B

1

2

35

A

B

1

2

36

A

B

1

2

37

A

B

1

2

38

A

B

1

2

39

A

B

1

2

310

A

B

1

2

311

A

B

1

2

312

A

B

1

2

313

A

B

1

2

314

A

B

1

2

315

A

B

1

2

316

A

B

1

2

317

A

B

1

2

318

A

B

1

2

319

A

B

1

2

320

A

B

1

2

3

Sysmic - J. Pouiller Temps Réel 103 / 1

Page 48: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Traitement en arrière-plan

Avec ordonnancement RM des tâches périodiques :

0

A

B

1

2

31

A

B

1

2

32

A

B

1

2

33

A

B

1

2

34

A

B

1

2

35

A

B

1

2

36

A

B

1

2

37

A

B

1

2

38

A

B

1

2

39

A

B

1

2

310

A

B

1

2

311

A

B

1

2

312

A

B

1

2

313

A

B

1

2

314

A

B

1

2

315

A

B

1

2

316

A

B

1

2

317

A

B

1

2

318

A

B

1

2

319

A

B

1

2

320

A

B

1

2

3

TR1 = 4TR2 = 5TR3 = 9

Sysmic - J. Pouiller Temps Réel 104 / 1

Page 49: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Traitement par serveur

Un serveur est une tâche périodique créée spécialement pourprendre en compte les tâches apériodiquesUn serveur est caractérisé par :

Sa périodeSon temps d’exécution : capacité du serveur

Un serveur est généralement ordonnancé suivant le mêmealgorithme que les autres tâches périodiquesTrès souvent, afin de diminuer le temps de réponses des tâchesapériodiques, la priorité du serveur est haute (sinon, sesperformances sont identiques au traitement sur temps creux)Une fois actif, le serveur sert les tâches apériodiques dans lalimite de sa capacité.l’ordre de traitement des tâches apériodiques ne dépend pas del’algorithme généralIl est possible de le combiner le traitement avec un serveur avecun traitement en background (Temps de réponse+,prédictabilité-)

Sysmic - J. Pouiller Temps Réel 105 / 1

Page 50: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Serveur par scrutation

Aussi appelé pollingA chaque activation, traitement des tâches en suspens jusqu’àépuisement de la capacité ou jusqu’à ce qu’il n’y ait plus detâches en attenteSi aucune tâche n’est en attente (à l’activation ou parce que ladernière tâche a été traitée) , le serveur se suspendimmédiatement et perd sa capacité qui peut être réutilisée parles tâches périodiquesQuand une instance (un événement) de tâche apériodique arrive,elle attend jusqu’à ce que la capacité du serveur soit disponible.Il est possible de rendre la main au CPU si aucunes tachesapériodiques n’est en attente (TR des taches périodiques +,prédictabilité -)Dans le cas ou le serveur à la plus petite priorité, l’algorithmeéquivaut à peu près au traitement en background

Sysmic - J. Pouiller Temps Réel 106 / 1

Page 51: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

A vide, avec ordonnancement RM des tâches périodiques :

Tâche Arrivée Période Capacité DélaiA 0 20 3 Fin de périodeB 0 10 2 Fin de périodeS 0 5 2 Fin de période

0

ABS

1

ABS

2

ABS

3

ABS

4

ABS

5

ABS

6

ABS

7

ABS

8

ABS

9

ABS

10

ABS

11

ABS

12

ABS

13

ABS

14

ABS

15

ABS

16

ABS

17

ABS

18

ABS

19

ABS

20

ABS

Sysmic - J. Pouiller Temps Réel 107 / 1

Page 52: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

A vide, avec ordonnancement RM des tâches périodiques :

Tâche Arrivée Période Capacité DélaiA 0 20 3 Fin de périodeB 0 10 2 Fin de périodeS 0 5 2 Fin de période

0

ABS

1

ABS

2

ABS

3

ABS

4

ABS

5

ABS

6

ABS

7

ABS

8

ABS

9

ABS

10

ABS

11

ABS

12

ABS

13

ABS

14

ABS

15

ABS

16

ABS

17

ABS

18

ABS

19

ABS

20

ABS

Sysmic - J. Pouiller Temps Réel 107 / 1

Page 53: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Idem avec les 3 tâches apériodiques :

Tâche Arrivée Période Capacité DélaiA 0 20 3 Fin de périodeB 0 10 2 Fin de périodeS 0 5 2 Fin de période1 2 - 2 Aucune2 9 - 1 Aucune3 10 - 3 Aucune

0

ABS123

1

ABS123

2

ABS123

3

ABS123

4

ABS123

5

ABS123

6

ABS123

7

ABS123

8

ABS123

9

ABS123

10

ABS123

11

ABS123

12

ABS123

13

ABS123

14

ABS123

15

ABS123

16

ABS123

17

ABS123

18

ABS123

19

ABS123

20

ABS123

Sysmic - J. Pouiller Temps Réel 108 / 1

Page 54: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Idem avec les 3 tâches apériodiques :

Tâche Arrivée Période Capacité DélaiA 0 20 3 Fin de périodeB 0 10 2 Fin de périodeS 0 5 2 Fin de période1 2 - 2 Aucune2 9 - 1 Aucune3 10 - 3 Aucune

0

ABS123

1

ABS123

2

ABS123

3

ABS123

4

ABS123

5

ABS123

6

ABS123

7

ABS123

8

ABS123

9

ABS123

10

ABS123

11

ABS123

12

ABS123

13

ABS123

14

ABS123

15

ABS123

16

ABS123

17

ABS123

18

ABS123

19

ABS123

20

ABS123

Sysmic - J. Pouiller Temps Réel 108 / 1

Page 55: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Idem avec les 3 tâches apériodiques :

0

ABS123

1

ABS123

2

ABS123

3

ABS123

4

ABS123

5

ABS123

6

ABS123

7

ABS123

8

ABS123

9

ABS123

10

ABS123

11

ABS123

12

ABS123

13

ABS123

14

ABS123

15

ABS123

16

ABS123

17

ABS123

18

ABS123

19

ABS123

20

ABS123

TR1 = 5TR2 = 2TR3 = 7

Sysmic - J. Pouiller Temps Réel 109 / 1

Page 56: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Idem, en utilisant les temps creux en plus :

Tâche Arrivée Période Capacité DélaiA 0 20 3 Fin de périodeB 0 10 2 Fin de périodeS 0 5 2 Fin de période1 2 - 2 Aucune2 9 - 1 Aucune3 10 - 3 Aucune

0

ABS123

1

ABS123

2

ABS123

3

ABS123

4

ABS123

5

ABS123

6

ABS123

7

ABS123

8

ABS123

9

ABS123

10

ABS123

11

ABS123

12

ABS123

13

ABS123

14

ABS123

15

ABS123

16

ABS123

17

ABS123

18

ABS123

19

ABS123

20

ABS123

Sysmic - J. Pouiller Temps Réel 110 / 1

Page 57: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Idem, en utilisant les temps creux en plus :

Tâche Arrivée Période Capacité DélaiA 0 20 3 Fin de périodeB 0 10 2 Fin de périodeS 0 5 2 Fin de période1 2 - 2 Aucune2 9 - 1 Aucune3 10 - 3 Aucune

0

ABS123

1

ABS123

2

ABS123

3

ABS123

4

ABS123

5

ABS123

6

ABS123

7

ABS123

8

ABS123

9

ABS123

10

ABS123

11

ABS123

12

ABS123

13

ABS123

14

ABS123

15

ABS123

16

ABS123

17

ABS123

18

ABS123

19

ABS123

20

ABS123

Sysmic - J. Pouiller Temps Réel 110 / 1

Page 58: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Idem, en utilisant les temps creux en plus :

0

ABS123

1

ABS123

2

ABS123

3

ABS123

4

ABS123

5

ABS123

6

ABS123

7

ABS123

8

ABS123

9

ABS123

10

ABS123

11

ABS123

12

ABS123

13

ABS123

14

ABS123

15

ABS123

16

ABS123

17

ABS123

18

ABS123

19

ABS123

20

ABS123

TR1 = 5TR2 = 1TR3 = 5

Sysmic - J. Pouiller Temps Réel 111 / 1

Page 59: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Limitation

Limitations du serveur par scrutation

perte de la capacité si aucune tâche apériodique en attentesi occurrence d’une tâche apériodique alors que le serveur estsuspendu, il faut attendre la requête suivante

Sysmic - J. Pouiller Temps Réel 112 / 1

Page 60: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Serveur différé

Aussi appelé serveur ajournableLa fausse bonne idéeMal géré, il provoque des erreurs d’ordonnancementCas d’exécutions dos à dos du serveur

Sysmic - J. Pouiller Temps Réel 113 / 1

Page 61: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Avec ordonnancement RM :

Tâche Arrivée Période Capacité DélaiA 0 7 2 Fin de périodeS 0 6 3 Fin de période1 21 - 6 Aucune

0

AS1

1

AS1

2

AS1

3

AS1

4

AS1

5

AS1

6

AS1

7

AS1

8

AS1

9

AS1

10

AS1

11

AS1

12

AS1

13

AS1

14

AS1

15

AS1

16

AS1

17

AS1

18

AS1

19

AS1

20

AS1

21

AS1

22

AS1

23

AS1

24

AS1

25

AS1

26

AS1

27

AS1

28

AS1

×

Sysmic - J. Pouiller Temps Réel 114 / 1

Page 62: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Avec ordonnancement RM :

Tâche Arrivée Période Capacité DélaiA 0 7 2 Fin de périodeS 0 6 3 Fin de période1 21 - 6 Aucune

0

AS1

1

AS1

2

AS1

3

AS1

4

AS1

5

AS1

6

AS1

7

AS1

8

AS1

9

AS1

10

AS1

11

AS1

12

AS1

13

AS1

14

AS1

15

AS1

16

AS1

17

AS1

18

AS1

19

AS1

20

AS1

21

AS1

22

AS1

23

AS1

24

AS1

25

AS1

26

AS1

27

AS1

28

AS1

×

Sysmic - J. Pouiller Temps Réel 114 / 1

Page 63: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Serveur différé

Tout de même possible de l’utiliser si :

∑i∈TP

Ci

Ti≤ ln

US +22US + 1

Grosso modo, on exige que le système soit ordonnancable avec unecapacité du serveur deux fois plus importante.

Dans le cas précédant :

27≈ 0.286

ln0.5+2

2×0.5+1= ln1.25

≈ 0.22327� ln

0.5 + 22×0.5+1

Sysmic - J. Pouiller Temps Réel 115 / 1

Page 64: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Serveur différé

Tout de même possible de l’utiliser si :

∑i∈TP

Ci

Ti≤ ln

US +22US + 1

Grosso modo, on exige que le système soit ordonnancable avec unecapacité du serveur deux fois plus importante.Dans le cas précédant :

27≈ 0.286

ln0.5+2

2×0.5+1= ln1.25

≈ 0.22327� ln

0.5 +22×0.5+1

Sysmic - J. Pouiller Temps Réel 115 / 1

Page 65: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Serveur sporadique

Améliore le temps de réponse des tâches apériodiques sansdiminuer le taux d’utilisation du processeur pour les tâchespériodiquesTrès utilisé pour les IHM car permet une meilleure expérienceutilisateurComme le serveur différé mais

Ne retrouve pas sa capacité à période fixe, mais à un instant deréinitialisation égal à la date courante additionnée de la période deréinitialisationLa capacité retrouvée est égale à la capacité consommée

Sysmic - J. Pouiller Temps Réel 116 / 1

Page 66: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Avec ordonnancement RM :

Tâche Arrivée Période Capacité DélaiA 0 20 3 Fin de périodeB 0 10 2 Fin de périodeS 0 5 2 Fin de période1 2 - 2 Aucune2 9 - 1 Aucune3 10 - 3 Aucune

0

A

B

S

1

2

31

A

B

S

1

2

32

A

B

S

1

2

33

A

B

S

1

2

34

A

B

S

1

2

35

A

B

S

1

2

36

A

B

S

1

2

37

A

B

S

1

2

38

A

B

S

1

2

39

A

B

S

1

2

310

A

B

S

1

2

311

A

B

S

1

2

312

A

B

S

1

2

313

A

B

S

1

2

314

A

B

S

1

2

315

A

B

S

1

2

316

A

B

S

1

2

317

A

B

S

1

2

318

A

B

S

1

2

319

A

B

S

1

2

320

A

B

S

1

2

3

Sysmic - J. Pouiller Temps Réel 117 / 1

Page 67: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Avec ordonnancement RM :

Tâche Arrivée Période Capacité DélaiA 0 20 3 Fin de périodeB 0 10 2 Fin de périodeS 0 5 2 Fin de période1 2 - 2 Aucune2 9 - 1 Aucune3 10 - 3 Aucune

0

A

B

S

1

2

31

A

B

S

1

2

32

A

B

S

1

2

33

A

B

S

1

2

34

A

B

S

1

2

35

A

B

S

1

2

36

A

B

S

1

2

37

A

B

S

1

2

38

A

B

S

1

2

39

A

B

S

1

2

310

A

B

S

1

2

311

A

B

S

1

2

312

A

B

S

1

2

313

A

B

S

1

2

314

A

B

S

1

2

315

A

B

S

1

2

316

A

B

S

1

2

317

A

B

S

1

2

318

A

B

S

1

2

319

A

B

S

1

2

320

A

B

S

1

2

3

Sysmic - J. Pouiller Temps Réel 117 / 1

Page 68: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Exemple

Avec ordonnancement RM :

0

A

B

S

1

2

31

A

B

S

1

2

32

A

B

S

1

2

33

A

B

S

1

2

34

A

B

S

1

2

35

A

B

S

1

2

36

A

B

S

1

2

37

A

B

S

1

2

38

A

B

S

1

2

39

A

B

S

1

2

310

A

B

S

1

2

311

A

B

S

1

2

312

A

B

S

1

2

313

A

B

S

1

2

314

A

B

S

1

2

315

A

B

S

1

2

316

A

B

S

1

2

317

A

B

S

1

2

318

A

B

S

1

2

319

A

B

S

1

2

320

A

B

S

1

2

3

TR1 = 2TR2 = 1TR3 = 5

Sysmic - J. Pouiller Temps Réel 118 / 1

Page 69: Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... · Dans le cas de tâches périodiques : ppcm i(T i) Dans le cas de tâches apériodiques

Slack Stealer

On alloue miniLCi (t) périodes pour l’exécution des tâchesapériodiquesOn recalcule l’algorithme à chaque activation d’une tâche(périodique ou apériodique) dans le systèmeTemps de réponses des tâches apériodiques optimalLCi (t) se calcule d’une manière similaire au temps de réponseGarantir le temps de réponse du calcul de LCi (t) est difficileDu coup, c’est le serpent qui se mange la queue : On connaît unalgorithme optimal, mais il est incompatible avec lesproblématique du temps réelPrincipalement universitaire, peu utilisé dans l’industrie

Sysmic - J. Pouiller Temps Réel 119 / 1