Temps Réel - sysmic.orgsysmic.org/pub/Cours temps réel/plain/Sysmic - J. Pouiller - Cours... ·...

Preview:

Citation preview

Temps Réel

Jérôme Pouiller <j.pouiller@sysmic.org>

Quatrième partie IV

Ordonnancement

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

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

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

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

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

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

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

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

États des tâches

Running

Waiting

Interrupted

Ready

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Recommended