Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Ordonnancement
Temps Réel
Introduction
➢instant de fin
●r : date de réveil
moment du déclenchement de la 1ère requête d'exécution
●C : durée d'exécution maximale (capacité)
●D : délai critique
➢délai maximum acceptable pour son exécution
P P
D
t
r0 C d0 r1 d1 r2
Caractéristiques des tâches (2)
●paramètres statiques
➢U = C/P : facteur d'utilisation du processeur
●paramètres dynamiques
➢s : date du début de l'exécution
P P
D(t)
t
r0 t d0 r1 d1 r2
Caractéristiques des tâches (2)
●paramètres statiques
➢U = C/P : facteur d'utilisation du processeur
●paramètres dynamiques
➢s : date du début de l'exécution
t
r0 t d0 r1 d1 r2
Caractéristiques des tâches (2)
●paramètres statiques
➢U = C/P : facteur d'utilisation du processeur
●paramètres dynamiques
➢s : date du début de l'exécution
✔retard maximum pour son début d'exécution s (si elle est seule)
P P
L
t
r0 d0 r1 d1 r2
Caractéristiques des tâches (2)
●paramètres statiques
➢U = C/P : facteur d'utilisation du processeur
●paramètres dynamiques
➢s : date du début de l'exécution
✔retard maximum pour son début d'exécution s (si elle est seule)
L(t)
t
r0 d0 r1 t d1 r2
Caractéristiques des tâches (2)
●paramètres statiques
➢U = C/P : facteur d'utilisation du processeur
●paramètres dynamiques
➢s : date du début de l'exécution
✔retard maximum pour son début d'exécution s (si elle est seule)
Courante
f
Bloquée Prête
f
f
Inexistante Passive
temporelles
➢en fonctionnement anormal (par exemple pannes
➢contraintes de précédence
14
Introduction
●tâches indépendantes :
➢pas de partage de ressources
connus
➢sinon test de garantie au réveil des tâches
tâches périodiques
Rate Monotonic Analysis (RMA)
●exemple
T1 (r0=0, C=3, P=20), T2 (r0=0, C=2, P=5), T3 (r0=0, C=2, P=10)
Ci
= 3 20 + 2 5 + 2 10 = 0,75 ≤ n 21 n
− 1 = 0,77
Pi
0 4 5 7 9 20
T2
0 2 5 7 10 12 15 17 20
T3
0 2 4 10 12 14 20
0 2 4 5 7 9 10 12 14 15 17 20
Deadline Monotonic Analysis (DMA)
n
Ci
≤ n n1 n −1
Di
i=1
●équivalentà RMA dans le cas des tâches à échéance sur
requête, meilleur dans les autres cas
Deadline Monotonic Analysis (DMA)
●exemple
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=9, P=10)
Ci
= 3 7 + 2 4 + 2 9 = 1,14 > n 21 n
− 1 = 0,77
Di
T1
0 2 5 7 20
T2
0 2 4 5 7 9 10 12 14 15 17 19 20
T3
0 7 9 10 12 14 19 20
Earliest Deadline First (EDF)
n
Ci
≤1
Di
➢ condition suffisante i=1
●on peut montrer que EDF est un algorithme optimal pour les
algorithmes à priorité dynamique
Earliest Deadline First (EDF)
●exemple
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
Ci
= 3 20 + 2 5 + 2 10 = 0,75 <1
Pi
Ci
= 3 7 + 2 4 + 2 8 = 1,18 >1
Di
T1
0 2 5 7 20
T2
0 2 4 5 7 8 9 10 12 14 15 17 19 20
T3
0 5 7 8 10 12 14 18 20
Exercice
●soit une configuration avec 2 tâches à échéance sur
requête :
●T1 : (r0 = 0, C1 = 2, P1 = 5)
T2 : (r0 = 0, C2 = 4, P2 = 7)
●intervalle d'étude ?
●la configuration est-elle ordonnançable avec RMA ?
Justifiez votre réponse.
●même question avec EDF
●tracer les chronogrammes en indiquant les éventuelles
fautes temporelles
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
t=0
L1 = 7-3 = 4, L2 = 4-2 = 2, L3 = 8-2 = 6
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
t=1
L1 = 3, L2= 2, L3 = 5
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
t=2
L1 = 2, L3 = 4
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
t=3
L1 = 2, L3 = 3
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
t=4
L1 = 2, L3 = 2
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
t=5
L2 = 2, L3 = 1
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
t=6
L2 = 1, L3 = 1
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
t=7
L2 = 0
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Least Laxity First (LLF)
●exemple
même configuration que pour EDF
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
●laxité calculée à t = 0, 1, 2, 3, etc...
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Traitement des tâches apériodiques
Introduction
●tâches prises en compte dans une configuration comprenant déjà
des tâches périodiques critiques
➢les tâches apériodiques peuvent être critiques (contrainte stricte)
requêtes
➢les tâches apériodiques dont le taux d'arrivée est borné
●buts à atteindre :
➢si contraintes relatives : minimiser le temps de réponse
critiques)
●ordonnancement relatif des tâches apériodiques en mode
FIFO
●préemption des tâches apériodiques par les tâches
périodiques
●traitement le plus simple, mais le moins performant
RM
Tâches périodiques
Queue à haute priorité
CPU
premier arrivé
Tâches apériodiques
premier servi
Queue à basse priorité
Traitement d'arrière-plan (2)
●ordonnancement RMA des tâches périodiques
●exemple
Tp1 (r0=0, C=2, P=5), Tp2 (r0=0, C=2, P=10)
●Ta3 (r=3, C=2), Ta4 (r=10, C=1), Ta5 (r=11, C=2)
Tp1
0 2 5 7 10 12 15 17 20
Tp2
0 2 4 10 12 14 20
Temps creux
4 5 7 10 14 15 17 20
Tâches apériodiques
3 4 5 7 8 10 11 14 15 17 19
Ci
Pi
= 3 20 + 2 10 + 2 5 = 0,75 ≤ n 21 n
− 1 = 0,77
Tp1
0 2 4 5 7 9 20
Tp2
0 2 4 10 12 14 20
Tps
0 2 5 7 10 11 12 15 17 20
Traitement par serveur par scrutation (3)
Tp1
0 2 5 20
Tp2
0 2 10 12 14 20
Tps
0 2 5 7 10 11 12 15 17 20
Ta3 Ta4 Ta5 Tâches apériodiques
Capacité capacité
2
1
perdue
0
Traitement par serveur par scrutation (4)
●limitationsdu serveur par scrutation
➢perte de la capacité si aucune tâche apériodique en attente
●Serveur sporadique
➢améliore le temps de réponse des tâches apériodiques
➢tâches apériodiques : Ta3 (r=4, C=2), Ta4 (r=10, C=1), Ta5 (r=11, C=2)
Tp1
0 2 4 6 7 20
Tp2
0 2 10 12 14 20
Tps
0 4 6 10 11 12 15 16
Capacité Ta3 Ta4 Ta5 Tâches apériodiques
2
1
0
5 9 10 12 15 20
Exercice
➢ordonnancement conjoint
apériodiques
acceptation dans les temps creux (2)
●exemple
➢Tp1 (r0=0, C=3, D=7, P=20), Tp2 (r0=0, C=2, D=4, P=5),
Tp3 (r0=0, C=1, D=8, P=10)
➢Ta (r=4, C=2, d=10), Ta (r=10, C=1, d=18),
4 5
Ta6 (r=11, C=2, d=16)
Tp1
0 2 5 7 20
Tp2
2 4 5 6 8 9 10 12 14 15 17 19 20
Tp3
0 5 6 8 10 12 13 18 20
Temps creux
0 8 10 13 15 17 20
Tâches apériodiques
0 4 8 10 11 13 15 16 17 18
Ta4 Ta5 Ta6
acceptation dans les temps creux (3)
●exemple
➢Tp1 (r0=0, C=3, D=7, P=20), Tp2 (r0=0, C=2, D=4, P=5),
Tp3 (r0=0, C=1, D=8, P=10)
➢Ta (r=4, C=2, d=10), Ta (r=10, C=2, d=18),
4 5
Ta6 (r=11, C=2, d=16)
Tp1
0 2 5 7 20
Tp2
2 4 5 6 8 9 10 12 14 15 17 19 20
Tp3
0 5 6 8 10 12 13 18 20
Temps creux
0 8 10 13 15 17 20
Tâches apériodiques
0 4 8 10 11 13 15 16 17 18
Ta4 Ta5 X Ta6
ordonnancement conjoint (1)
➢sinon rejet
ordonnancement conjoint (2)
●exemple
➢Tp1 (r0=0, C=3, D=7, P=20), Tp2 (r0=0, C=2, D=4, P=5),
➢Tp (r =0, C=1, D=8, P=10)
3 0
➢Ta (r=4, C=2, d=10), Ta (r=10, C=1, d=18),
4 5
Tp1
Tp2 0 2 5 7 20
2 4 5 6 8 9 10 12 15 17 19 20
Tp3
0 5 6 8 10 12 13 14 15 18 20
Tâches apériodiques
0 4 8 10 11 13 14 18
Ta5
Ta4
ordonnancement conjoint (3)
●exemple
➢Tp1 (r0=0, C=3, D=7, P=20), Tp2 (r0=0, C=2, D=4, P=5),
➢Tp (r =0, C=1, D=8, P=10)
3 0
➢Ta (r=4, C=2, d=10), Ta (r=10, C=1, d=18),
4 5
Ta6 (r=11, C=2, d=16)
Tp1
Tp2 0 2 5 7 20
2 4 5 6 8 9 10 12 15 17 19 20
Tp3
0 5 6 8 10 12 13 14 15 18 20
Tâches apériodiques
0 4 8 10 11 12 13 14 18
Ta5
Ta4 Ta6
ordonnancement conjoint (3)
●exemple
➢Tp1 (r0=0, C=3, D=7, P=20), Tp2 (r0=0, C=2, D=4, P=5),
➢Tp (r =0, C=1, D=8, P=10)
3 0
➢Ta (r=4, C=2, d=10), Ta (r=10, C=2, d=18),
4 5
Ta6 (r=11, C=2, d=16)
Tp1
Tp2 0 2 5 7 20
2 4 5 6 8 9 10 12 15 17 19 20
Tp3
0 5 6 8 10 12 13 14 15 18 20
Tâches apériodiques
0 4 8 10 11 12 13 14 18
Ta5
Ta4 Ta6
Ordonnancement
de tâches
dépendantes
60
Plan
62
Contraintes de précédence (1)
●Contraintes de précédence
➢sur l'ordre d'exécution des tâches les unes par rapport aux
autres
➢généralement décrites par un graphe orienté G
T2 T3
T4 T5
Contraintes de précédence (1)
●Contraintes de précédence
➢sur l'ordre d'exécution des tâches les unes par rapport aux
autres
➢généralement décrites par un graphe orienté G
T1 < T2
T2 T3
T1 T2
T1 < T4
T4 T5 T1 T4
Contraintes de précédence (3)
caméra système
stéréoscopique objets défilants acq1
d'acquisition acq2
sur un tapis roulant et de traitement
image1 image2
●2 traitements image
●analyse de forme
●reconnaissance finale
reconn
Partage de ressources (1)
Demande Libère
T2
Exécution normale
Section critique
T3
Demande Libère
T2
Section critique
●exemple
➢9 tâches de priorités décroissantes
(Prio(Ji) > Prio(Jj)) ⇔ i > j
➢contraintes de précédence et temps d'exécution :
J9 (9)
J1 (3)
J8 (4)
J2 (2)
J7 (4)
J3 (2)
J6 (4)
J4 (2) J5 (4)
Quelques « anomalies » d'ordonnancement
➢ ordonnancement optimal sur un système àJ (3)3 processeurs
J (9)
1
9
J8 (4)
J2 (2)
J7 (4)
J3 (2)
J6 (4)
P1 J1 J9 J4 (2) J5 (4)
P2 J2 J4 J5 J7
P3 J3 J6 J8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
P1 J1 J8
P2 J2 J5 J9
P3 J3 J6
P4 J4 J7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Quelques « anomalies » d'ordonnancement
J9 (9)
➢ordonnancement optimal sur un système à J1 (3)
J8 (4)
3 processeurs J2 (2)
J7 (4)
J3 (2)
J6 (4)
J1 J9
P1 J4 (2) J5 (4)
J2 J4 J5 J7
P2
J3 J6 J8
P3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
J9 (8)
➢ en réduisant d'une unité le temps de calcul Jdes
(2)
tâches 1
P1 J1 J5 J8 J2 (1)
J8 (3)
J7 (4)
P2 J J J6 J9 J3 (1)
2 4
J6 (3)
P3 J J7
3 J4 (1) J5 (3)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Quelques « anomalies » d'ordonnancement
➢ordonnancement optimal sur un système J1 (3) J9 (9)
à 3 processeurs J2 (2)
J8 (4)
J7 (4)
J3 (2)
J6 (4)
J1 J9
P1 J4 (2) J5 (4)
J2 J4 J5 J7
P2
J3 J6 J8
P3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
J9 (9)
J1 (3)
J8 (4)
➢en supprimant quelques relations de J2 (2)
J7 (4)
précédence J3 (2)
J6 (4)
J1 J8 J9 J4 (2) J5 (4)
P1
J2 J4 J5
P2
J3 J7 J6
P3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Quelques « anomalies » d'ordonnancement
P1 J1 J2
P2 J3 J4 J5
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Algorithmes d'ordonnancement
Contraintes de précédence
●ici,seulement précédence simple
➢si Ti est périodique de période Pi, alors T l'est aussi et P = P
j j i
●principe de l'établissement de l'ordonnancement :
➢transformer l'ensemble des tâches dépendantes en un
✔on commence les calculs par les tâches qui n'ont pas de
prédécesseurs pour le calcul des r et par les tâches qui n'ont pas
de successeur pour le calcul des d
Contraintes de précédence
●exemple
T3
T1
T5
T4
T2
Tâche ri Ci di
T1 0 1 5
T2 5 2 7
T3 0 2 5
T4 0 1 10
T5 0 3 12
Contraintes de précédence
●exemple
T3
T1
T5
T4
T2
●exemple
T1 n'a pas de prédécesseur
T3
T1 r*1 = 0
T5
T4
T2
●exemple
T2 n'a pas de prédécesseur
T3
T1 r*2 = 5
T5
T4
T2
●exemple
T3 a T1 pour prédécesseur
T3
T1 r*3 = Max(r3, r*1+C1) = 1
T5
T4
T2
●exemple
T4 a T1 et T2 pour prédécesseurs
T3
T1 r*4 = Max(r4, Max(r*1+C1,r*2+C2))
T5 =7
T4
T2
●exemple
T5 a T3 et T4 pour prédécesseurs
T3
T1 r*5 = Max(r5, Max(r*3+C3,r*4+C4))
T5 =8
T4
T2
●exemple
T5 n'a pas de successeur
T3
T1 d*5 = 12
T5
T4
T2
●exemple
T4 a T5 pour successeur
T3
T1 d*4 = Min(d4,Min(d*5-C5))
T5 =9
T4
T2
●exemple
T3 a T5 pour successeur
T3
T1 d*3 = Min(d3,Min(d*5-C5))
T5 =5
T4
T2
●exemple
T2 a T4 pour successeur
T3
T1 d*2 = Min(d2,Min(d*4-C4))
T5 =5
T4
T2
●exemple
T1 a T3 et T4 pour successeurs
T3
T1 d*2 = Min(d2,Min(d*3-C3, d*4-C4))
T5 =3
T4
T2
T3 0 1 2 3 4 5 6 7 8 9 10 11 12
T1 T3
T5 0 1 2 3 4 5 6 7 8 9 10 11 12
T4
T4 0 1 2 3 4 5 6 7 8 9 10 11 12
T2 T5
0 1 2 3 4 5 6 7 8 9 10 11 12
T3 0 1 2 3 4 5 6 7 8 9 10 11 12
T1 T3
T5 0 1 2 3 4 5 6 7 8 9 10 11 12
T4
T4 0 1 2 3 4 5 6 7 8 9 10 11 12
T2 T5
0 1 2 3 4 5 6 7 8 9 10 11 12
T3 0 1 2 3 4 5 6 7 8 9 10 11 12
T1 T3
T5 0 1 2 3 4 5 6 7 8 9 10 11 12
T4
T4 0 1 2 3 4 5 6 7 8 9 10 11 12
T2 T5
0 1 2 3 4 5 6 7 8 9 10 11 12
ressource critique
➢sans problème dans le cas d'un ordonnancement non
●inversion de priorité
➢phénomène dû à la présence simultanée de priorités fixes et
T3
T4
Partage de ressources critiques
●inversion de priorité
➢phénomène dû à la présence simultanée de priorités fixes et
T3
R1 R1
T4
T1
T2 R1
T3
Héritage de priorité
●exemple
➢ sans héritage de priorité
R1
Blocage
T1
direct
T2 R1
T3
Blocage
R1 indirect
T✔1 avec héritage de priorité
T2
R1
T3
p3
P1
P3
Héritage de priorité
●problèmes rémanents
➢blocages en chaîne
Ra Rb
T1
Rb
T2
Ra
T3
plus grande parmi tous les sémaphores déjà acquis par des
tâches autres que Ti
➢pour entrer dans une section critique gardée par un
●exemple
➢3 tâches T0, T1, T2 de priorités décroissantes P0 > P1 > P2
✔T accède séquentiellement à 2 sections critiques
0
gardées par les sémaphores S0 et S1
✔T accède à une section critique gardée par S
1 2
✔T accède à la section critique gardée par S et aussi, de
2 2
manière imbriquée, à S1
➢les priorités plafond sont :
✔C(S ) = P
0 0
✔C(S ) = P
1 0
✔C(S ) = P
2 1
Priorité plafonnée
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R0 R1
T0 S0 S1 C(S0) = P0
R2 C(S1) = P0
T1 S2 C(S2) = P1
R2 R1 R1
T2 S2 S2 S1 S1 S2
p2
P0
P1
P2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
121
Plan
➢métrique
●schémas d'ordonnancement
➢classes d'algorithmes
➢tâches périodiques
➢tâches quelconques
Notion de surcharge
●effet
"domino" dû à l'arrivée d'une tâche supplémentaire
dans un ordonnancement EDF
C=4
C=4
C=1,5
C=1,5
Notion de surcharge
●effet
"domino" dû à l'arrivée d'une tâche supplémentaire
dans un ordonnancement EDF
C=2
C=4
C=4
C=1,5
C=1,5
Notion de surcharge
●cas général
➢basée sur le fait que pour une tâche unique de capacité C
i
et de délai critique Di , la charge dans l'intervalle [ri, di] est ri
= Ci/Di (di = ri + Di)
➢calculée au réveil des tâches (date t = r )
i
dk ≤di ck t
ρi t =
di − t
ρ = max ρi t
Notion de surcharge
●exemple
J1 : (C1 = 2, r1 = 3, d1 = 6) dk ≤di ck t
ρi =
J2 : (C2 = 3, r2 = 1, d2 = 7) di − t
J3 : (C3 = 1, r3 = 2, d3 = 9)
àt=3
J1 r1(3) = 2/3
J2 r2(3) = 3/4
J3 r3(3) = 4/6
0 1 2 3 4 5 6 7 8 9
r(3) = 3/4
Notion de surcharge
fi fi
v(fi) v(fi)
ferme dur
fi fi
Notion de surcharge
n
ΓA = v fi
●eni=1
conditions de surcharge, la qualité d'un algorithme A se
mesure en comparant ΓA à Γmax
Gestion des situations de surcharge
➢tâches quelconques
Tâches périodiques
●principe :
➢chaque tâche a 2 versions
●2 politiques possibles :
➢politique de la Première Chance :
l'application
➢définition subjective (cahier des charges)
Tâches quelconques
➢⇒ ordonnancement à importance
➢avec garantie
➢robuste
Tâches quelconques
●meilleureffort
➢pas de prédiction en cas de surcharge
●avec garantie
➢un test d'acceptance est exécuté à l'arrivée de chaque
rejetée
Tâches quelconques
●robuste
➢séparation des contraintes temporelles et de l'importance
des tâches
➢2 politiques : une pour l'acceptation de nouvelles tâches,
d'acceptabilité
✔si le test passe, la tâche est mise dans la queue des tâches
prêtes
✔si le test ne passe pas, on exécute l'algorithme de rejet qui
●robuste
➢séparation des contraintes temporelles et de l'importance
des tâches
➢2 politiques : une pour l'acceptation de nouvelles tâches,
d'acceptabilité
politique
d'ordonnancement
LCi t = Di − Cj t , dj ≤ di Di = di − ri
j
LP t = Min LCi t
garanties
Stabilisation de l'importance (1)
●assurer que ce sont les tâches les plus importantes qui font
le moins de fautes temporelles
●amélioration du modèle des tâches :
➢mode de fonctionnement normal
●3 modes de survie :
➢ajournement
➢révocation
➢faute temporelle
Task T is
begin
Mode Normal
actions du mode normal(Cn,dn,propriétés,Impn)
Mode Ajournement
actions du mode ajournement(Caj,daj,exécution obligatoire)
Mode Révocation
actions du mode révocation(Crv,drv,exécution obligatoire)
Mode Faute Temporelle
actions si Faute Temporelle mode normal(Cnf)
actions si Faute Temporelle mode ajournement(Cajf)
actions si Faute Temporelle mode révocation(Crvf)
end
Stabilisation de l'importance (4)
●exemple
Task T1 is
begin
Mode_Normal(C=10,Ajournable, Revocable, Imp=5)
Acquerir(Capteur);
Lire(Capteur, Temp);
Restituer(Capteur);
-- calculs sur Temp
Temp := Calcul();
-- envoi de Temp à la tâche T2
Send(Temp, {T2});
Old_Temp := Temp;
Mode_Révocation (C=3, Obligatoire, Imp=5)
-- révocation de T1
Restituer(Capteur);
Ajourner(T2);
Mode_Ajournement (C=2, Obligatoire, Imp=5)
-- calcul d'une valeur depuis l'ancienne valeur
Temp := Old_Temp * facteur_correction
Send(Temp, {T2});
end ;
Stabilisation de l'importance (5)
●politiquede contrôle
➢par un contrôleur de charge en amont de l'ordonnanceur
Modes normaux
contrôleur de charge non supprimés ordonnanceur
● détection de surcharge Modes de survie Earliest Deadline First
● suppressions d'exécution en
● critère : urgence
fonction de l'importance
Stabilisation de l'importance (6)
mode actif
M = {Mxi (r, Cxi(r), dxi, Impxi} avec x = n, aj ou rv, i = 1, m
et dxi < dxj (i<j) l'ensemble des modes actifs à la date r triés
par échéance croissante
laxité du mode Mxi :
➢si toutes les laxités sont positives, pas de surcharge
E=0;
L0 = 0 ;
d0 = current_time() ;
J' = J ∪ {Jnew} ;
k = <position de Jnewdans l'ensemble J'> ;
if (E > 0) {
<selectionner un sous-ensemble J* de tâches à rejeter>;
<rejeter les tâches de J*> ;
}
Optimisation de la somme des importances
●2 tâches périodiques
➢Tp (r =0, C=1, D=7, P=10, Imp=3)
1 0
➢Tp (r =0, C=3, D=4, P=5, Imp=1)
2 0
●4 tâches apériodiques
➢Tap (r =4, C=0.2, d=5, Imp=4)
3 0
➢Tap (r =5.5, C=1, d=10, Imp=5)
4 0
➢Tap (r =6, C=1, d=8, Imp=2)
5 0
➢Tap (r =7, C=1.5, d=9.5, Imp=6)
6 0
●ordonnancées par EDF
●T(t) est la configuration des tâches actives à l'instant t
●d est la date de l'échéance
(ne pas confondre avec le délai critique D)
exemple
0 4 5 5.5 6 7 8 9 9.5 10
Tp1
C=1, D=7,
P=10, Imp=3
Tp2
C=3, D=4,
P=5, Imp=1
exemple
0 4 5 5.5 6 7 8 9 9.5 10
Tp1
C=1, D=7,
Tap3
P=10, Imp=3 r0= 4 C=0.2,
d=7, Imp=4
Tp2
C=3, D=4,
P=5, Imp=1
exemple
0 4 5 5.5 6 7 8 9 9.5 10
Tp1
C=1, D=7,
Tap3
P=10, Imp=3 r0= 4 C=0.2,
d=7, Imp=4
Tp2
C=3, D=4,
P=5, Imp=1
exemple
0 4 5 5.5 6 7 8 9 9.5 10
Tp1
C=1, D=7,
Tap3 Tap4
P=10, Imp=3 r0= 4 C=0.2, r0= 5,5 C=1,
d=7, Imp=4 d=10, Imp=5
Tp2
C=3, D=4,
P=5, Imp=1
exemple
0 4 5 5.5 6 7 8 9 9.5 10
Tp1
C=1, D=7,
Tap3 Tap4 Tap5
P=10, Imp=3 r0= 4 C=0.2, r0= 5,5 C=1, r0= 6 C=1,
d=7, Imp=4 d=10, Imp=5 d=8, Imp=2
Tp2
C=3, D=4,
P=5, Imp=1
exemple
●à t=7, Tap6 se réveille
➢T(7) = {Tp (C(7)=2, d=9), Tap (C(7)=1.5, d=9.5), Tap (C(7)=1, d=10)}
2 6 4
➢L(Tp ) = 9 – 7 - 2 = 0
2
➢L(Tap ) = 9.5 – 7 – 2 - 1.5 = -1
6
➢surcharge, Tap est fautive avec une surcharge de 1
6
➢suppression de tâches dont les échéances sont inférieures ou égales à celles
0 4 5 5.5 6 7 8 9 9.5 10
Tp1 Tap6
C=1, D=7,
Tap3 Tap4 Tap5
P=10, Imp=3 r0= 4 C=0.2, r0= 5,5 C=1, r0= 6 C=1, r0= 7 C=1.5,
d=7, Imp=4 d=10, Imp=5 d=8, Imp=2 d=9,5, Imp=6
Tp2
C=3, D=4,
P=5, Imp=1
exemple
0 4 5 5.5 6 7 8 9 9.5 10
➢outils de programmation
etc...)
✔outils de synchronisation (sémaphores, mutex, variables
conditionnelles, etc...)
RTOS