Temps Réel
Jérôme Pouiller <[email protected]>
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