F. Touchard
Ordonnancement
Introduction
Tches temps rel soumises des contraintes de temps, plus ou moins strictes
le but de l'ordonnancement est de permettre le respect de ces contraintes, lorsque l'excution se produit dans un mode courant il doit permettre de borner les effets d'incidents ou de surcharges
F. Touchard
Ordonnancement
P : priode (si tche priodique) d = r+D : chance (si tche contraintes strictes) tche priodique : rk = r0 + k*P
r0
F. Touchard
d0
r1
d1
Ordonnancement
r2
3
paramtres statiques
U = C/P : facteur d'utilisation du processeur CH = C/D : facteur de charge du processeur s : date du dbut de l'excution e : date de la fin de l'excution D(t) = d-t : dlai critique rsiduel la date t (0 D(t) D) C(t) : dure d'excution rsiduelle la date t (0 C(t) C) L = D-C : laxit nominale de la tche
paramtres dynamiques
retard maximum pour son dbut d'excution s (si elle est seule) retard maximum pour reprendre l'excution
F. Touchard
ordre partiel prdtermin ou induit partage de ressources ordonnancement hors ligne dtermin la conception variation entre la requte et le dbut de l'excution
priorit externe
F. Touchard
Ordonnancement
Bloque
Prte
f
Inexistante
f
Passive
F. Touchard
Ordonnancement
Dfinitions
Ci Pi
facteur de charge C H=
i=1
Ci Di
intervalle d'tude : intervalle de temps minimum pour prouver l'ordonnanabilit d'une configuration
laxit du processeur LP(t) = intervalle de temps pendant lequel le processeur peut rester inactif tout en respectant les chances
(somme sur les tches dclenches la date t et qui sont devant i du point de vue de l'ordonnancement)
F. Touchard
Ordonnancement
Buts de l'ordonnancement
en fonctionnement nominal : respect des contraintes temporelles en fonctionnement anormal (par exemple pannes matrielles) : attnuer les effets des surcharges et maintenir un tat cohrent et scuritaire
ordonnancer = planifier l'excution des requtes de faon respecter les contraintes de temps
de toutes les requtes en fonctionnement nominal d'au moins les requtes les plus importantes (c'est--dire celles ncessaires la scurit du procd) en fonctionnement anormal
F. Touchard
Ordonnancement
choix dynamique ou prdfini la conception une tche peut perdre le processeur (au profit d'une tche plus prioritaire) ou non algorithme premptif toutes les tches premptibles en TR mou, meilleur effort = faire au mieux avec les processeurs disponibles en TR dur, obligation des respecter les contraintes temporelles : inclmence aux fautes temporelles
centralis ou rparti
F. Touchard
Ordonnancement
Plan du cours
ordonnancement des tches indpendantes ordonnancement des tches dpendantes
F. Touchard
Ordonnancement
10
11
Introduction
tches indpendantes :
pas de partage de ressources pas de contraintes de prcdence dynamique sur la base d'une priorit dfinie
priorit constante ou variable avec le temps priorit identique, on vite la premption test d'acceptabilit hors ligne si tous les paramtres sont connus sinon test de garantie au rveil des tches
F. Touchard
Ordonnancement
12
tches priodiques
F. Touchard
Ordonnancement
13
quand n est trs grand : n(21/n 1) ~ ln 2 = 0,69 dans la pratique, on peut rencontrer des ordonnancements valides qui vont jusqu' 88%
F. Touchard
Ordonnancement
14
exemple
le b
T3
10
12
14
20
0
F. Touchard
9 10
12
14 15
17
Ordonnancement
20
15
quivalent RMA dans le cas des tches chance sur requte, meilleur dans les autres cas
F. Touchard
Ordonnancement
16
exemple
ut Ci f= = 3/7+2/ 4+2/9 a 1,14 D i
Prio2 > Prio1 > Prio3
T1(r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5), . r. . T3 (r0 = 0, C=2, D=9, P=10) oi v
n 2 1 = 0,77
1 /n
T1 0 T2 0 T3 0 7 9 10 12 14 19 20 2 4 5 7 9 10 12 14 15 17 19 20 2 5 7 20
F. Touchard
Ordonnancement
17
chaque instant (i.e chaque rveil de tche), la priorit maximale est donne la tche dont l'chance est la plus proche condition ncessaire condition suffisante
Ci P 1 i=1 i Ci D 1 i=1 i
n n
test d'acceptabilit
F. Touchard
Ordonnancement
18
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)
20
9 10
12
14 15
17
19 20
10
12
14
18
Ordonnancement
20
19
la priorit maximale est donne la tche qui a la plus petite laxit rsiduelle L(t) = D(t) C(t)
quivalent EDF si on ne calcule la laxit qu'au rveil des tches optimum trouver entre la granularit du calcul et le nombre de changements de contexte provoqus
F. Touchard
Ordonnancement
20
4 5
9 10
11 12 13 14 15 16 17 18 19 20
4 5
9 10
11 12 13 14 15 16 17 18 19 20
F. Touchard
F. Touchard
Ordonnancement
22
Introduction
tches prises en compte dans une configuration comprenant dj des tches priodiques a priori, on ne connat pas l'instant d'arrive de la requte de rveil de la tche apriodique contraintes temporelles strictes ou relatives buts atteindre :
si contraintes relatives : minimiser le temps de rponse si contraintes strictes : maximiser le nombre de tches acceptes en respectant leurs contraintes traitement en arrire-plan traitement par serveurs
F. Touchard
Ordonnancement
23
F. Touchard
Ordonnancement
24
ordonnancement relatif des tches apriodiques en mode FIFO traitement le plus simple, mais le moins performant
F. Touchard
Ordonnancement
25
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 Tp2
0
20
Tempscreux
10
12
14
20
Tchesapriodiques
3
10
14 15
17
20
10 11
14 15
17
19
Ta3
F. Touchard Polytech Marseille IRM4 SICA 2012-13
Ta4
Introduction aux systmes Temps Rels
Ta5
Ordonnancement 26
sa priode son temps d'excution : capacit du serveur serveur gnralement ordonnanc suivant le mme algorithme que les autres tches priodiques une fois actif, le serveur sert les tches apriodiques dans la limite de sa capacit. l'ordre de traitement des tches apriodiques ne dpend pas de l'algorithme gnral
F. Touchard
Ordonnancement
27
chaque activation, traitement des tches en suspens jusqu' puisement de la capacit ou jusqu' ce qu'il n'y ait plus de tches en attente si aucune tche n'est en attente ( l'activation ou parce que la dernire tche a t traite) , le serveur se suspend immdiatement et perd sa capacit qui peut tre rutilise par les tches priodiques
F. Touchard
Ordonnancement
28
2 tches priodiques : Tp1 (r0=0, C=3, P=20) Tp2 (r0=0, C=2, P=10) serveur : Tps (r0=0, C=2, P=5)
10
12
14
20
10 11
12
15
17
20
F. Touchard
Ordonnancement
29
2 tches priodiques : Tp1 (r0=0, C=3, P=20) Tp2 (r0=0, C=2, P=10) serveur : Tps (r0=0, C=2, P=5) tches apriodiques : Ta3 (r=4, C=2), Ta4 (r=10, C=1), Ta5 (r=11, C=2)
10
12
14
20
10 11
12
Capacit
2 1 0
Ta3
Ta4
Ta5
15 17 20 Tches apriodiques
F. Touchard
Ordonnancement
30
perte de la capacit si aucune tche apriodique en attente si occurrence d'une tche apriodique alors que le serveur est suspendu, il faut attendre la requte suivante
F. Touchard
Ordonnancement
31
Serveur sporadique
amliore le temps de rponse des tches apriodiques sans diminuer le taux d'utilisation du processeur pour les tches priodiques comme le serveur ajournable mais ne retrouve pas sa capacit priode fixe le serveur sporadique peut tre considr comme une tche priodique normale du point de vue des critres d'ordonnancement
F. Touchard
Ordonnancement
32
le serveur est dit actif quand la priorit de la tche courante Pexe est suprieure ou gale celle du serveur Ps le serveur est dit inactif si Pexe < Ps RT : date de la rcupration
calcule ds que le serveur devient actif (tA) gale tA + Ts calcule l'instant tI o le serveur devient inactif ou que la capacit est puise gal la capacit consomme pendant l'intervalle [tA, tI]
F. Touchard
Ordonnancement
33
2 tches priodiques : Tp1 (r0=0, C=3, P=20), Tp2 (r0=0, C=2, P=10) serveur : Tps (r0=0, C=2, P=5) tches apriodiques : Ta3 (r=4, C=2), Ta4 (r=10, C=1), Ta5 (r=11, C=2)
Tp1 Tp2
0 2 4 6 7 20
Tps
10
12
14
20
10
11 12
15
16
Capacit
2 1 0
Ta3
Ta4
Ta5
Tches apriodiques
5
F. Touchard Polytech Marseille IRM4 SICA 2012-13
10
12
15
Ordonnancement
20
34
F. Touchard
Ordonnancement
35
Principe de l'ordonnancement
ordonnancer les tches en EDF A chaque nouvelle tche apriodique, faire tourner une "routine de garantie" pour vrifier que toutes les contraintes temporelles seront respectes
si oui, accepter la tche. si non, refuser la tche. acceptation dans les temps creux ordonnancement conjoint
F. Touchard
Ordonnancement
36
teste l'existence d'un temps creux suffisant entre le rveil et l'chance de la tche apriodique) vrifie que l'acceptation de la nouvelle tche ne remet pas en cause le respect des contraintes temporelles des autres tches apriodiques dj acceptes et non encore termines si OK, la tche est ajoute la liste des tches apriodiques
F. Touchard
Ordonnancement
37
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) Ta4 (r=4, C=2, d=10), Ta5 (r=10, C=1, d=18), Ta6 (r=11, C=2, d=16)
2 2 4 5 5 5 6 6 8 7 8 9 10 10 1 2 12 13 14 1 5 17 19 18 20 20 20
8 8 10 Ta5
10 11
13 13 Ta6
15 15 16
17 17 18
20
F. Touchard
Ordonnancement
38
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) Ta4 (r=4, C=2, d=10), Ta5 (r=10, C=2, d=18), Ta6 (r=11, C=2, d=16)
2 2 4 5 5 5 6 6 8 7 8 9 10 10 1 2 12 13 14 1 5 17 19 18 20 20 20
8 8 Ta5 10
10 11
13 13 Ta6
15 15
17 16 17 18
20
F. Touchard
Ordonnancement
39
F. Touchard
Ordonnancement
40
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) Ta4 (r=4, C=2, d=10), Ta5 (r=10, C=1, d=18),
2 2 4
5 5 6
7 8 8 9 10 10 12 15 17 18
20 19 20 20
5 6
12 13 14 15
8 Ta5
10 11
13 14
18
Ordonnancement
41
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) Ta4 (r=4, C=2, d=10), Ta5 (r=10, C=1, d=18), Ta6 (r=11, C=2, d=16)
0 2 2 0 4 5 5 6 7 8 8 9 10 10 12 15 17 18 20 19 20 20
5 6
12 13 14 15
8 10 11 12 13 14 Ta5 Ta6
Introduction aux systmes Temps Rels
18
Ordonnancement
42
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) Ta4 (r=4, C=2, d=10), Ta5 (r=10, C=2, d=18), Ta6 (r=11, C=2, d=16)
0 2 2 0 4 5 5 6 7 8 8 9 10 10 12 15 17 18 20 19 20 20
5 6
12 13 14 15
8 10 11 12 13 14 Ta5 Ta6
Introduction aux systmes Temps Rels
18
Ordonnancement
43
44
Plan
prsentation et illustration des contraintes algorithmes pour les ordonnancer tude de cas : la mission Pathfinder sur Mars (TD)
F. Touchard
Ordonnancement
45
46
Contraintes de prcdence
sur l'ordre d'excution des tches les unes par rapport aux autres gnralement dcrites par un graphe orient G
Ja < Jb indique que la tche Ja est un prdcesseur de Jb Ja Jb indique que la tche Ja est un prdcesseur immdiat de Jb
J1 J2 J3
J4
J5
F. Touchard
Ordonnancement
47
Contraintes de prcdence
sur l'ordre d'excution des tches les unes par rapport aux autres gnralement dcrites par un graphe orient G
Ja < Jb indique que la tche Ja est un prdcesseur de Jb Ja Jb indique que la tche Ja est un prdcesseur immdiat de Jb
J1 J2 J3
J1 < J2 J1 J2 J1 < J4 J1 J4
Ordonnancement 48
J4
J5
F. Touchard
camra stroscopique
acq2
image2
8 tches 2 acquisitions 2 traitements image analyse de forme analyse des diffrences calcul de hauteur reconnaissance finale
diff
forme
hauteur
reconn
F. Touchard
Ordonnancement
49
ressource : toute structure logicielle qui peut tre utilise par une tche pour son excution prive si ddie la tche partage si elle peut tre utilise par plusieurs tche exclusive si une seule tche la fois peut l'utiliser l'accs squentiel par plusieurs tches une ressource exclusive ncessite un mcanisme de synchronisation les codes implmentant les oprations en exclusion mutuelle sont des sections critiques
F. Touchard
Ordonnancement
50
J1
Demande
Libre
F. Touchard
Libre
J1
J3
Demande Libre
J2
F. Touchard
Thorme de Graham : si un ensemble de tches est ordonnanc de faon optimale sur un systme multiprocesseur avec des priorits assignes, des temps d'excution fixes et des contraintes de prcdence, alors le fait d'augmenter le nombre de processeurs, de rduire les temps d'excution ou de relaxer les contraintes de prcdence peut conduire dtriorer la dure d'excution de l'algorithme
F. Touchard
Ordonnancement
53
exemple
9 tches de priorits dcroissantes (Prio(Ji) > Prio(Jj)) i > j contraintes de prcdence et temps d'excution :
J9 (9) J8 (4)
J4 (2)
F. Touchard
Ordonnancement
54
P1 P2 P3
J4 (2)
0 1
10 11 12 13 14 15 16 17 18
P1 P2 P3 P4
J8 J9
0 1
F. Touchard
P1 P2 P3
0 1
10 11 12 13 14 15 16 17 18
P1 P2 P3 J3
J1 J2 J4
J5 J6 J7 2 3 4 5 6
J8 J9
0 1
F. Touchard
10 11 12 13 14 15 16 17 18
Ordonnancement 56
P1 P2 P3
0 1
10 11 12 13 14 15 16 17 18
J1 (3) J2 (2) J3 (2) J9 (9) J8 (4) J7 (4) J6 (4) J5 (4)
P1 P2 P3
J4 (2)
0 1
F. Touchard
10 11 12 13 14 15 16 17 18
Ordonnancement 57
P1 P2 0 1
J1 J3 2 3 4 5 6 J4 7 8 9
J2 J5 10 11 12 13 14 15 16 17 18 19 20 21 22
P1 P2 0 1
F. Touchard
10 11 12 13 14 15 16 17 18 19 20 21 22
Ordonnancement 58
Algorithmes d'ordonnancement
Contraintes de prcdence
si Ti est priodique de priode Pi, alors Tj l'est aussi et Pj = Pi transformer l'ensemble des tches dpendantes en un ensemble de tches indpendantes que l'on ordonnancera par un algorithme classique par des modifications des paramtres des tches
si Ti T
validation de l'ordonnanabilit selon des critres utiliss pour des tches indpendantes
F. Touchard
Ordonnancement
60
Contraintes de prcdence
la transformation s'opre hors ligne sur la date de rveil et sur les dlais critiques
r*i = Max{ri, r*j} pour tous les j tels que Tj Ti si Ti Tj alors Prioi > Prioj dans le respect de la rgle d'affectation des priorits par RMA
F. Touchard
Ordonnancement
61
Contraintes de prcdence
la transformation s'opre hors ligne sur la date de rveil et sur les dlais critiques
r*i = Max{ri, r*j} pour tous les j tels que Tj Ti D*i = Max{Di, D*j} pour tous les j tels que Tj Ti si Ti Tj alors Prioi > Prioj dans le respect de la rgle d'affectation des priorits par DMA
F. Touchard
Ordonnancement
62
Contraintes de prcdence
modification des chances de faon ce qu'une tche ait toujours un di infrieur celui de ses successeurs (algorithme de Chetto et al.) une tche ne doit tre activable que si tous ses prdcesseurs ont termin leur excution modification de la date de rveil et de l'chance
r*i = Max{ri, Max{r*j + Cj}} pour tous les j tels que Tj Ti d*i = Min{di, Min{d*j - Cj}} pour tous les j tels que Ti Tj on itre sur les prdcesseurs et successeurs immdiats on commence les calculs par les tches qui n'ont pas de prdcesseurs pour le calcul des r et par les tches qui n'ont pas de successeur pour le calcul des d
F. Touchard
Ordonnancement
63
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Earliest Deadline r* i d* i
Ordonnancement
65
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Earliest Deadline r* i d* i 0
Ordonnancement
66
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Ordonnancement
67
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Ordonnancement
68
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Ordonnancement
69
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Earliest Deadline r* i d* i 0 5 1 7 8
Ordonnancement 70
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Earliest Deadline r* i d* i 0 5 1 7 8 12
Ordonnancement 71
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Earliest Deadline r* i d* i 0 5 1 7 9 8 12
Ordonnancement 72
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Earliest Deadline r* i d* i 0 5 1 5 7 9 8 12
Ordonnancement 73
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Contraintes de prcdence
exemple
T1 T3 T5 T4
T2
Contraintes de prcdence
exemple
T1 T3 T5 T4
T1 T2 T3 T4 T5
0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 10 11 12 12 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 11 10 11 10 11 12 12 12
T2
Earliest Deadline r* i d* i 0 3 5 7 1 5 7 9 8 12
Ordonnancement 76
Contraintes de prcdence
exemple
T1 T3 T5 T4
T1 T2 T3 T4 T5
0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 10 11 12 12 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 11 10 11 10 11 12 12 12
T2
Earliest Deadline r* i d* i 0 3 5 7 1 5 7 9 8 12
Ordonnancement 77
Contraintes de prcdence
exemple
T1 T3 T5 T4
T1 T2 T3 T4 T5
0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 10 11 12 12 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 11 10 11 10 11 12 12 12
T2
Earliest Deadline r* i d* i 0 3 5 7 1 5 7 9 8 12
Ordonnancement 78
tre utilise simultanment par plusieurs tches tre rquisitionne par une autre tche squence d'instructions pendant lesquelles on utilise une ressource critique sans problme dans le cas d'un ordonnancement non premptif, mais c'est rarement le cas dans un environnement temps rel valuation du temps de rponse trs difficile, sinon impossible
abondante littrature !
F. Touchard
Ordonnancement
79
inversion de priorit
phnomne d la prsence simultane de priorits fixes et de ressources accs exclusif dans un environnement premptif
exemple de 4 tches de priorits dcroissantes prio(T1) > prio(T2) > prio(T3) > prio(T4) si pas de partage de ressource commune :
T1 T2 T3 T4
F. Touchard
Ordonnancement
80
inversion de priorit
phnomne d la prsence simultane de priorits fixes et de ressources accs exclusif dans un environnement premptif
exemple de 4 tches de priorits dcroissantes prio(T1) > prio(T2) > prio(T3) > prio(T4) si partage d'une ressource commune
T1 T2 T3 T4 R1 R1 R1
F. Touchard
Ordonnancement
81
Hritage de priorit
principe : attribuer la tche qui possde la ressource la priorit de la tche de plus haute priorit qui attend la ressource hypothses de travail
n tches priodiques T1, T2, ... , Tn (priode Pi, capacit Ci) chance sur requte partageant m ressources R1, R2, ... , Rm chaque ressource Rj est garde par un smaphore binaire Sj limitant une section critique zi,j (pour Ti) Pi : priorit nominale, pi : priorit active P1 > P2 > ... > Pn zi,j zi,k ou zi,k zi,j ou zi,j zi,k = zi,j et zi,k
F. Touchard
Ordonnancement
82
Hritage de priorit
les tches sont ordonnances suivant leur priorit active quand une tche Ti cherche entrer dans une section critique zi,j et que la ressource Rj est dj possde par une tche Tk, de priorit plus faible, alors Ti se bloque (sinon Ti entre dans zi,j) la tche Ti, bloque, transmet sa priorit Tk qui peut alors redmarrer et terminer l'excution de la section critique zk,j quand Tk sort de la section critique, il relche le smaphore Sj et la tche de plus haute priorit est rveille. Si aucune tche n'est encore bloque par Tk, alors pk est ramene Pk, sinon on donne pk la plus haute des priorits des tches en attente
F. Touchard
Ordonnancement
83
Hritage de priorit
exemple
T1 T2 T3
R1
F. Touchard
Ordonnancement
84
Hritage de priorit
exemple
T1 T2 T3
R1
T1 T2 T3 p3 P1 P3
F. Touchard Polytech Marseille IRM4 SICA 2012-13 Introduction aux systmes Temps Rels Ordonnancement
R1
85
Hritage de priorit
le temps de blocage B d'une tche de haute priorit par une tche de plus basse priorit nominale est born mais le calcul de ce temps de blocage maximum peut tre trs complexe condition ncessaire d'ordonnanabilit par un algorithme Rate Monotonic :
i, 1 in,
k=1
Ck Tk
Bi Ti
i2 1
1 /i
F. Touchard
Ordonnancement
86
Hritage de priorit
problmes rmanents
blocages en chane
Ra Rb
T1
Rb
T2
Ra
T3
treinte fatale (deadlock), si 2 tches utilisent 2 ressources imbriques, mais dans l'ordre inverse
Ra Rb Ra
T1
Rb
T2
F. Touchard Polytech Marseille IRM4 SICA 2012-13 Introduction aux systmes Temps Rels
Priorit plafonne
introduit la fin des annes 80 pour rsoudre le problme d'inversion de priorit tout en prvenant l'occurence de deadlocks et de blocages en chane amlioration du protocole d'hritage de priorit : une tche ne peut pas entrer dans une section critique s'il y a un smaphore acquis qui pourrait la bloquer principe : on attribue chaque smaphore une priorit plafond gale la plus haute priorit des tches qui pourraient l'acqurir. Une tche ne pourra entrer dans la section critique que si elle possde une priorit suprieure toutes celles des priorits plafond des smaphores acquis par les autres tches
F. Touchard
Ordonnancement
88
Priorit plafonne
dfinition du protocole
on attribue chaque smaphore Sk une priorit plafond C(Sk) gale la plus haute priorit des tches susceptibles de l'acqurir soit Ti la tche prte de plus haute priorit : l'accs au processeur est donn Ti soit S* le smaphore dont la priorit plafond C(S*) est la plus grande parmi tous les smaphores dj acquis par des tches autres que Ti pour entrer dans une section critique garde par un smaphore Sk, Ti doit avoir une priorit suprieure C(S*). Si Pi C(S*), l'accs Sk est dni et on dit que Ti est bloque sur S* par la tche qui possde S*
F. Touchard
Ordonnancement
89
Priorit plafonne
exemple
T0 accde squentiellement 2 sections critiques gardes par les smaphores S0 et S1 T1 accde une section critique garde par S2 T2 accde la section critique garde par S2 et aussi, de manire imbrique, S1 C(S0) = P0 C(S1) = P0 C(S2) = P1
F. Touchard
Ordonnancement
90
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0
R2 R2 S2 S2 R1 S1 S1
R1
t1 t2
t3
t4
t5
t6
t7
t8 t9
t10
t0, T2 est active et dmarre. Le smaphore S2 est demand et obtenu (il n'y a pas d'autre ressource en cours d'utilisation)
F. Touchard
Ordonnancement
91
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R2 R2 S2 S2 R1 S1 S1
R1
F. Touchard
Ordonnancement
92
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R2 R2 S2 S2 R1 S1 S1
R1
t2, T1 demande S2 et est bloque par le protocole car la priorit de T1 n'est pas suprieure la priorit plafond C(S2)=P1 (S2 est le seul smaphore acquis t2) T2 hrite de la priorit de T1 et redmarre
Introduction aux systmes Temps Rels Ordonnancement 93
F. Touchard
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R2 R2 S2 S2 R1 S1 S1
R1
t3, T2 demande et obtient le smaphore S1 , car aucune autre tche ne dtient de ressource
F. Touchard
Ordonnancement
94
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R2 R2 S2 S2 R1 S1 S1
R1
F. Touchard
Ordonnancement
95
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0
R2 R2 S2 S2 R1 S1 S1
R1
t1 t2
t3
t4
t5
t6
t7
t8 t9
t10
t5, T0 demande le smaphore S0 qui n'est dtenu par aucune autre tche. Le protocole bloque nanmoins T0 parce que sa priorit n'est pas suprieure la plus grande priorit plafond des smaphores dj dtenus (S2 et S1) : P0 T2 hrite de la priorit de T0 et peut redmarrer
Introduction aux systmes Temps Rels Ordonnancement 96
F. Touchard
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0
R2 R2 S2 S2 R1 S1 S1
R1
t1 t2
t3
t4
t5
t6
t7
t8 t9
t10
t6, T2 relche S1. Sa priorit p2 est ramene P1, plus haute priorit des tches bloques par T2 T0 peut alors prempter T2 et acqurir S0
F. Touchard
Ordonnancement
97
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0
R2 R2 S2 S2 R1 S1 S1
R1
t1 t2
t3
t4
t5
t6
t7
t8 t9
t10
t7 quand T0 demande S1, le seul smaphore encore tenu est S2 avec une priorit plafond P1 T0 (priorit P0 > P1) obtient S1
F. Touchard
Ordonnancement
98
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R2 R2 S2 S2 R1 S1 S1
R1
t8, T0 se termine. T2 peut reprendre son excution, toujours avec la mme priorit P1
F. Touchard
Ordonnancement
99
Priorit plafonne
R0
T0 T1 T2 p2 P0 P1 P2 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
R2 R2 S2 S2 R1 S1 S1
R1
t9, T2 relche S2. Sa priorit est ramene sa valeur nominale P2. T1 peut alors prempter T2 et redmarrer t10, T1 se termine, T2 peut redmarrer et se terminer
F. Touchard
Ordonnancement
100
Priorit plafonne
on a le mme critre d'ordonnanabilit par RMA que dans le cas du protocole d'hritage de priorit
Ck Bi 1/ i i, 1in, i2 1 k =1 T Ti k
i
mais le calcul du temps de blocage maximum de chaque tche est plus simple :
on peut dmontrer que le temps de bloquage maximum B i d'une tche Ti est la dure de la plus longue des sections critiques parmi celles appartenant des tches de priorit infrieure Pi et gardes par des smaphores dont la priorit plafond est suprieure ou gale Pi
Bi = max j ,k {D j ,k P jPi , CSk Pi }
F. Touchard
Ordonnancement
101
102
Plan
schmas d'ordonnancement
F. Touchard
Ordonnancement
103
Notion de surcharge
quand la charge du processeur est telle qu'il est impossible de respecter toutes les chances origines possibles multiples
matriel, par exemple une transmission dfectueuse qui fait qu'un signal arrive en retard (rseau surcharg) contention sur une ressource critique rveil de tches apriodiques suite des alarmes
les algorithmes priorits classiques (du type EDF ou RMA) offrent des performances souvent mdiocre en cas de surcharge
F. Touchard
Ordonnancement
104
Notion de surcharge
F. Touchard
Ordonnancement
105
Notion de surcharge
m ou B
! um Bo
m! ou B
um Bo
F. Touchard
Ordonnancement
106
Notion de surcharge
dans un contexte temps rel premptible de n tches priodiques indpendantes chance sur requte, la charge est quivalente au facteur d'utilisation U :
Ci U= i=1 T i
n
cas gnral
base sur le fait que pour une tche unique de capacit Ci et de dlai critique Di , la charge dans l'intervalle [ri, di] est = Ci/Di (di = ri + Di) calcule au rveil des tches (date t = ri)
i t =
dk di
c k t
dit
Introduction aux systmes Temps Rels Ordonnancement 107
= max i t
F. Touchard
Notion de surcharge
i=
dkdi
c t
k
dit
t=3 1(3)=2/3
J2
2(3)=3/4 3(3)=4/6
0 1 2 3 4 5 6 7 8 9
J3
(3)=3/4
F. Touchard Polytech Marseille IRM4 SICA 2012-13 Introduction aux systmes Temps Rels Ordonnancement 108
Notion de surcharge
en l'absence de possibilit de surcharge, l'optimalit d'un algorithme est facile dfinir et l'importance relative des tches n'a pas d'intrt en prsence d'un systme o l'arrive dynamique de tches est autorise, il n'y a pas d'algorithme qui puisse garantir la bonne excution de l'ensemble des tches l'importance de l'excution d'une tche ne peut pas se dfinir seulement l'aide de son chance
il est srement plus important de faire la mesure d'un capteur toutes les 10s que de mettre jour l'heure sur l'cran de contrle toute les secondes
F. Touchard
Ordonnancement
109
Notion de surcharge
ncessit de dfinir une valeur associe la tche qui reflte son importance relative par rapport aux autres tches
dans les tches temps rel, l'chance fait partie aussi de la dfinition de la valeur de la tche intrt de dfinir une "fonction d'utilit" qui dcrit l'importance de la tche en fonction du temps
v(fi) non temps rel fi v(fi) ferme fi v(fi) dur fi
Ordonnancement 110
v(fi) mou fi
F. Touchard
Notion de surcharge
valuation de la performance d'un algorithme par A = v(f i) i=1 o v(fi) est l'utilit de la tche sa terminaison remarque : si une tche temps rel dur dpasse son chance, alors A vaut -
il faut rserver les ressources (entre autres la CPU) pour garantir les tches "dures" pour un ensemble de n tches Ji (Ci, Di, Vi), o Vi est l'utilit de la tche quand elle se termine avant son chance, la valeur maximale de A est
A = v(f i)
i=1
F. Touchard
F. Touchard
Ordonnancement
112
Tches priodiques
pas d'arrive dynamique de nouvelles tches dures d'excutions variables, non forcment bornables 2 politiques prsentes :
F. Touchard
Ordonnancement
113
principe :
version primaire assurant une bonne qualit de service mais dans un temps indtermin version secondaire fournissant un rsultat suffisamment acceptable au bout d'un temps connu
l'algorithme de tolrance aux fautes doit assurer le respect de toutes les chances, soit par le primaire soit par le secondaire
si les 2 marchent, on garde le primaire si le primaire ne russit pas, le secondaire doit russir ordonnancement = juxtaposition d'une squence des primaires et d'une des secondaires + rgle de dcision pour commuter de l'une l'autre
F. Touchard
Ordonnancement
114
2 politiques possibles :
Prio (Secondaires) > Prio (Primaires) les primaires sont excuts dans les temps creux du processeur aprs leur secondaire primaires excuts avant les secondaires secondaires excuts plus tard si le primaire russit, le secondaire n'est pas excut
pour obtenir un minimum de qualit de service, il faut un certain pourcentage de russite des primaires et donc garder suffisamment de temps de processeur pour cela
F. Touchard
Ordonnancement
115
mandataire, fournissant un rsultat approch et devant s'excuter dans le respect de son chance optionnelle, affinant le rsultat et excute seulement s'il reste assez de temps
vite les surcots ds la coordination entre plusieurs versions d'une mme tche mme remarque que prcdemment propos de la qualit de service minimale
F. Touchard
Ordonnancement
116
Tches quelconques
urgence dlai critique importance, codant le caractre primordial de la tche dans l'application dfinition subjective (cahier des charges)
F. Touchard
Ordonnancement
117
Tches quelconques
possible de les rejeter par une routine de garantie, ventuellement vers un autre processeur moins charg dans un environnement rparti
ordonnancement importance
3 classes de politiques pour dcider l'acceptation (ou le rejet) des nouvelles tches :
F. Touchard
Ordonnancement
118
Tches quelconques
meilleur effort
pas de prdiction en cas de surcharge les nouvelles tches sont toujours acceptes seul moyen d'action : les niveaux relatifs des priorits
tche toujours accepte Queue des tches prtes en cours
F. Touchard
Ordonnancement
119
Tches quelconques
avec garantie
un test d'acceptance est excut l'arrive de chaque nouvelle tche, garantissant la bonne excution de toutes les tches et bas sur les pires hypothses si le test d'acceptance n'est pas positif, la tche est rejete
ventuellement, recyclage des tches rejetes pour profiter d'une excution plus rapide que prvue d'une tche accepte
tche rejete
en cours
F. Touchard
Ordonnancement
120
Tches quelconques
robuste
sparation des contraintes temporelles et de l'importance des tches 2 politiques : une pour l'acceptation de nouvelles tches, une pour le rejet de tches quand une nouvelle tche arrive, on excute un test d'acceptabilit
si le test passe, la tche est mise dans la queue des tches prtes si le test ne passe pas, on excute l'algorithme de rejet qui permet d'liminer une ou plusieurs tches de moindre importance ventuellement, recyclage des tches rejetes pour profiter d'une excution plus rapide que prvue d'une tche accepte
F. Touchard
Ordonnancement
121
Tches quelconques
robuste
sparation des contraintes temporelles et de l'importance des tches 2 politiques : une pour l'acceptation de nouvelles tches, une pour le rejet de tches quand une nouvelle tche arrive, on excute un test d'acceptabilit
politique d'ordonnancement tche Planning Queue des tches rejetes Queue des tches prtes politique de rjection en cours
politique de recyclage
F. Touchard
Ordonnancement
122
Test de garantie
vrifie si la nouvelle tche peut tre excute sans provoquer de faute temporelle bas sur l'valuation de la laxit tches actives t, classes par ordre dcroissant d'chance Di=di r i
L Pt=MinLCi t
F. Touchard
Ordonnancement
123
stabilisation de l'importance des tches ordonnances maximisation de la somme des importances des tches garanties
F. Touchard
Ordonnancement
124
mode de fonctionnement normal modes de fonctionnement de survie, invoqus quand le mode de fonctionnement normal doit tre arrt proprits d'excution du mode normal
ajournabilit, quand l'excution de la tche peut tre supprime avant qu'elle n'ait commenc rvocabilit, quand l'excution de la tche peut tre supprime alors qu'elle est dj commence les 4 combinaisons sont possibles
F. Touchard
Ordonnancement
125
3 modes de survie :
les modes d'ajournement et de rvocation contiennent les oprations excuter dans chaque cas
communication de rsultats d'autres tches, excution d'un travail paliatif, suppression de tches lies par une prcdence, etc...
le mode de faute temporelle est excut quand la tche commet la faute, et doit tre dfini pour chacun des modes normal, ajournement et rvocation
F. Touchard
Ordonnancement
126
F. Touchard
Ordonnancement
127
exemple
TaskT1is begin Mode_Normal(C=10,Ajournable,Revocable,Imp=5) Acquerir(Capteur); Lire(Capteur,Temp); Restituer(Capteur); calculssurTemp Temp:=Calcul(); envoideTemplatcheT2 Send(Temp,{T2}); Old_Temp:=Temp; Mode_Rvocation(C=3,Obligatoire,Imp=5) ajournementdeT1 Restituer(Capteur); Ajourner(T2); Mode_Ajournement(C=2,Obligatoire,Imp=5) calculd'unevaleurdepuisl'anciennevaleur Temp:=Old_Temp*facteur_correction Send(Temp,{T2}); end;
F. Touchard
Ordonnancement
128
politique de contrle
contrleur de charge
dtection de surcharge suppressions d'excution en fonction de l'importance
ordonnanceur
Earliest Deadline First critre : urgence
F. Touchard
Ordonnancement
129
chaque rveil, calcul de la laxit courante de chaque 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 tris par chance croissante laxit du mode Mxi : si toutes les laxits sont positives, pas de surcharge ordonnancement de la tche par EDF M n'est pas ordonnanable s'il existe un mode Mxf pour lequel la laxit Lxf(r) est ngative. Le mode Mxf est fautif et la surcharge est |Lxf(r)|
F. Touchard
Ordonnancement
130
M' = {Mni(r, Cni(r), dni, Impni), i=1,p, M' M l'ensemble des modes normaux ajournables ou rvocables dont l'chance dni est infrieure ou gale dnf le contrleur supprime les modes normaux un par un par ordre croissant d'importance. A chaque suppression, le mode de survie correspondant est activ (rvocation ou ajournement suivant que la tche est dmarre ou non) la surcharge est rsorbe quand la somme des temps d'excution des modes de survie activs est suprieure ou gale la valeur de la surcharge s'il n' y a pas assez de modes normaux dans M', alors des fautes temporelles subsisteront et il faudra excuter les modes de survie faute temporelle
F. Touchard
Ordonnancement
131
gestion des tches apriodiques dans un environnement temps rel ferme introduit la notion de tolrance sur l'chance, c'est--dire le retard aprs l'chance pendant lequel le rsultat est encore acceptable tches caractrises par
le temps d'excution dans le pire des cas Ci l'chance normale Di (chance "primaire") la tolrance sur l'chance Mi (chance "secondaire") la valeur Vi
les tches sont acceptes sur leur chance secondaire et ordonnances sur leur chance primaire
F. Touchard
Ordonnancement
132
on peut dfinir
le temps de dpassement : Ei = max (0, -(Li + Mi)) le temps de dpassement maximal : Emax = max(Ei) faisable ssi Li 0 pour toutes les tches tolrant ssi il existe des Li < 0 mais que Emax = 0
un ordonnancement sera
F. Touchard
Ordonnancement
133
F. Touchard
Ordonnancement
134
la plus simple : rejet d'une tche, en choisissant la tche de plus petite importance dont le temps d'excution rsiduel est plus grand que la surcharge
les tches rejetes sont mises dans une file d'attente, classes par ordre dcroissant de valeur quand une tche termine son excution avant sa pire chance, l'algorithme essaie de rinjecter les tches de plus grande valeur et de laxit positive. Les tches de laxit ngative sont dfinitivement limines
F. Touchard
Ordonnancement
135
exemple
2 tches priodiques
Tp1 (r0=0, C=1, D=7, P=10, Imp=3) Tp2 (r0=0, C=3, D=4, P=5, Imp=1) Tap3 (r0=4, C=0.2, d=5, Imp=4) Tap4 (r0=5.5, C=1, d=10, Imp=5) Tap5 (r0=6, C=1, d=8, Imp=2) Tap6 (r0=7, C=1.5, d=9.5, Imp=6)
4 tches apriodiques
ordonnances par EDF T(t) est la configuration des tches actives l'instant t d est la date de l'chance
F. Touchard
Ordonnancement
136
exemple
T(0)={Tp2(C(0)=3, d=4), Tp1(C(0)=1, d=7)} L(Tp2) = 4 - 0 - 3 = 1 L(Tp1) = 7 0 3 = 4 pas de surcharge, Tp2 est lue, puis Tp1 est lue t=3
5.5 6
9.5 10
Tp1
Tp2
exemple
T(4) = {Tap3(C(4)=0.2, d=5)} L(Tap3) = 5 4 0.2 = 0.8 pas de surcharge, Tap3 est lue
5.5 6
9.5 10
Tp1
Tap3
Tp2
exemple
5.5 6
9.5 10
Tp1
Tap3
Tp2
exemple
T(5.5) = {Tp2(C(5.5)=2.5, d=9), Tap4(C(5.5)=1, d=10)} L(Tp2) = 9 5.5 2.5 = 1 L(Tap4) = 10 5.5 1 2.5 = 1 pas de surcharge, Tp2 garde la CPU
5.5 6
9.5 10
Tp1
Tap3
r0=5,5C=1, d=10,Imp=5
Tap4
Tp2
exemple
T(6) = {Tap5(C(6)=1, d=8), Tp2(C(6)=2, d=9) Tap4(C(6)=1, d=10)} L(Tap5) = 8 6 1 = 1 L(Tp2) = 9 6 1 2 =0 L(Tap4) = 10 6 1 2 1 = 0 pas de surcharge, Tap5 prempte Tp2
5.5 6
9.5 10
Tp1
Tap3
r0=5,5C=1, d=10,Imp=5
Tap4
r0=6C=1, d=8,Imp=2
Tap5
Tp2
exemple
T(7) = {Tp2(C(7)=2, d=9), Tap6(C(7)=1.5, d=9.5), Tap4(C(7)=1, d=10)} L(Tp2) = 9 7 - 2 = 0 L(Tap6) = 9.5 7 2 - 1.5 = -1 surcharge, Tap6 est fautive avec une surcharge de 1 suppression de tches dont les chances sont infrieures ou gales celles de Tap6 par ordre croissant des importances suppression de Tp2
F. Touchard
Ordonnancement
142
exemple
T(7) = {Tap6(C(7)=1.5, d=9.5), Tap4(C(7)=1, d=10)} L(Tap6) = 9.5 7 1.5 = 1 L(Tap4) = 10 7 1 1.5 = 0.5
5.5 6
9.5 10
Tp1
Tap3
r0=5,5C=1, d=10,Imp=5
Tap4
r0=6C=1, d=8,Imp=2
Tap5
Tap6
r0=7C=1.5, d=9,5,Imp=6
Tp2
exemple
0 Tp1
C=1, D=7, P=10, Imp=3
5 Tap3
5.5 6
8 Tap5
9.5 10
Tp2
C=3, D=4, P=5, Imp=1
Tap4
Tap6
r0=7, C=1.5, d=9.5, Imp=6
temps creux [4,5] = 1: Tap3 accepte temps creux [5.5, 10] = 2 : Tap4 accepte temps creux [6, 8] = 0 : Tap5 refuse temps creux [7, 9.5] = 1.5, mais Tap4 doit rester garantie : Tap6 refuse
Introduction aux systmes Temps Rels Ordonnancement 144
F. Touchard
Conclusion
on a vu comment ordonnancer "thoriquement" des tches ayant des contraintes temporelles de faon respecter ces contraintes ou minimiser les effets du non-respect, tout en ayant ventuellement des contraintes de prcdence et/ou de partage de ressources on va voir tudier maintenant les outils qui vont nous aider satisfaire ces contraintes
gestion des tches (cration, destruction, priorits, etc...) gestion du temps (alarmes, chronomtres, etc...) outils de communication (files de messages, mmoire partage, etc...) outils de synchronisation (smaphores, mutex, variables conditionnelles, etc...)
F. Touchard
Ordonnancement
145
TD
146