TD1 TempsReel Corr
TD1 TempsReel Corr
TD1 TempsReel Corr
CORRIGE
1! INTRODUCTION : RM, EDF, LLF............................................................................................................................... 2!
1.1! QUESTION 1............................................................................................................................................................... 2!
2! THEOREME DE LA ZONE CRITIQUE ...................................................................................................................... 5!
1.1 Question 1
Calcul de U
10
11
12
Commentaire :
Bien que la condition suffisante ne soit pas satisfaite, on constate sur le schma que lensemble des
trois tches est ordonnanable par RMS.
Il reste un crneau libre en 11 : aucune tche na t ractive, la prochaine date dactivation est 12
pour toutes les tches.
EDF, comme RMS, ne prend pas en compte le coefficient C pour calculer les priorits.
Date
T1
T2
T3
10
11
12
Commentaires :
Au temps 3, deux tches ont leur chance pour la date 6 :
- T1, qui a besoin dune unit de temps pour sa deuxime priode,
- T3, qui a besoin dune seconde unit de temps pour sa premire priode.
On peut choisir :
- T1, parce quelle est la premire dans lordre de la numrotation (sa priode est plus courte),
- T3, pour viter de faire un changement de contexte,
Ici, on choisit T1.
Rappel :
La tche qui sera ordonnance est celle dont la laxit , ou marge, est la plus petite, sachant que :
marge = chance temps de calcul restant date courante.
Le calcul dordonnancement peut tre fait chaque incrment dhorloge (uniquement pour les tches
actives), ou bien chaque activation de tche. Dans le premier cas il y a plus de changements de
contexte.
Date 0
T1
2
T2
T3
3
2
6
2
2
2
9
2
10
11
Pour chaque date, on visualise les calculs pour toutes les tches actives :
T3 est rordonnance en 5 pour sa seconde unit de temps.
Au temps 9, deux tches ont leur chance pour la date 12 :
- T2, qui a besoin dune unit de temps pour sa deuxime priode,
- T3, qui a besoin dune seconde unit de temps pour sa deuxime priode.
Comme prcdemment, on peut choisir :
- T2, parce quelle est la premire dans lordre de la numrotation (sa priode est plus courte),
- T3, pour viter de faire un changement de contexte,
Ici, on choisit T2.
T1 sinsre alors, puis T3 consomme sa seconde unit de temps.
Il reste un crneau libre en 11 : aucune tche na t ractive, la prochaine date dactivation est 12
pour toutes les tches.
10
11
12
Tche 1
Tche 2
Tche 3
marge
marge
marge
date
chance
chance
chance
C restant
C restant
C restant
Ce qui donne :
Dat
e
T1
T2
T3
2 3 1
2 6 1
3 4 1 2 4 1
3 8 1 2 8
4 6 2 3 6 2 2 6 2 2 6 1 1 6 1
6
2 9
1
4 12 2
En 3, on peut choisir T1 ou T3, on choisit T1 qui vient de se rveiller et qui est la plus prioritaire
choisir T3 entranerait moins de changements de contexte. On pourrait introduire la notion de critcit.
Dat 7
8
9
10
11
e
T1
2 12 1
T2
3 12 1
T3 3 12 2 3 12 1 2 12 1 1 12 1
En 8, on peut choisir T2 ou T3, on choisit T2 qui vient de se rveiller et qui est la plus prioritaire,
choisir T3 entranerait moins de changements de contexte.
De mme, on choisit T1 en 9. T3 est de plus en plus retarde
Il reste un crneau libre en 11 : aucune tche na t ractive, la prochaine date dactivation est 12
pour toutes les tches.
3.1 Question 1
3.1.1.1 Liste des tches
Liste des tches :
T1 : (C=10, T =40)
T2 : (C=20, T =60)
T3 : (C=20, T =80)
2.1 Calcul de U
Calcul de U :
U = 25/100 +50/200 + 100/300 = 0,25 + 0,25 + 0,33 = 0, 83.
U est donc > 0,78, on ne peut rien dire pour RMS.
Rappel de la formule :
Wi(t) = !(j=1) i Cj*!t/Tj"
- Wi(t) est alors la consommation de temps cpu demande la date t par les i premiers processus,
ceux-ci tant numrot par ordre de priorit croissante : priorit(Pn) > priorit(Pn+1)
- !t/Tj" donne le nombre dactivations de la tche j, de priode Tj, dans la fentre de temps de
taille t,
- !t/Tj" *Cj, est donc le temps cpu consomm par Tj dans cette fentre,
- !(j=1) (i-1) Cj*!t/Tj" est le retard impos la tche Ti par les tches dindices infrieurs,donc plus
prioritaires.
Notions corrles : priode dactivit
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
3.2 Question 2
Tche nettoyage T4 : (C =10, T=60)
Calcul pour i = 2 :
W2(0) = 25 + 50 = 75
W2(75) = 25 !75/100" + 50 !75/200" = 75 # OK
Calcul pour i = 3 :
W3(0) = 25 + 50 + 100 = 175
W3(175) = 25 !175/100" + 50!175/200"+ 100 !175/300" = 25*2 = 50 *1 + 100 *1 = 200
W3(200) = 25 !200/100"+ 50 !200/200"+ 100 !200/300" = 25*2 = 50 *1 + 100 *1 = 200 # OK
La prise en compte de larrosage dans ces conditions est possible avec EDF.
Elle nest pas possible avec RMS, en effet les seuls crneaux libres en RMS sont :
[11,12], [15,16] et [19,20].
3.3 Question 3
Dbut en 90, il faut donc finir avant 150, ce nest pas possible : un seul crneau libre avant 150, cest
le 120 pendant 10 units de temps.
Dbut en 90, il faut donc finir avant 190, cest possible parce quen 120 et 160 il y a des crneaux de
10.
initialisation
4.1 Rappels
Calcul itratif
Charge due aux tches de priorit suprieure la tche Ti :
Wi (t)= Ci + !(j> prio(i)) !t /Pj"*Cj
Le calcul se fait par recherche itrative du point fixe : Wi(t) = t
Dans le cas de tches communiquant par messages (cf. hypothses sur les missions et les rceptions),
on ajoute la gigue qui, a priori, nest pas connue :
Wi (t)= Ci + !(j> prio(i)) !(t + Jj ) /Pj"*Cj
Le pire temps de rponse pour une tche Ti est donn par :
Ri = Ji + Wi (t) avec Wi (t) = t
$j avec j% i : rj
4.2 Exemple
Caractristiques des tches:
Tche
T1
T2
T3
T4
T5
Priode
100
60
100
60
90
Capacit
4
5
3
2
3
Priorit
1
2
2
1
3
Processeur
A
A
B
B
A
Dlai de comm.
6
1
3. aller 2
Calcul du temps de rponse
CalculTempsRep(i, k)
Tche
Message
4.2.1 Initialisations
T3 dpend de T1 par M1
T2 dpend de T4 par M2
courant
Ji = 0
Wi = Ci + !(j> prio(i)) !( Jj + ")/Pj"*Cj = Ci + !(j> prio(i)) Cj
Riancien = 0
Si tche : Ricourant = Ji +Wi = Ci + !(j> prio(i)) Cj
7
Si message : Ricourant = Mi
T1(A)
Gigue Jj, 0
Wi
4
Coeff. Ri 4
T2(A)
T3(B)
0
0
5+4=9 3+2 = 5
5+4=9 3+2 = 5
T4(B)
T5(A)
0
2
2
0
3+5+4=12
3+5+4=12
M
1
0
6
6
M2
0
1
1
4.2.2 Itration 1
M1 prcde T3
M2 prcde T2
Gigue : Temps de rponse du message attendu (JT3 = RM1 et JT2 = RM2 )
T1 et T4 sont les plus prioritaires sur leurs sites respectifs et ne dpendent de personne, donc pas de
changement.
Nouveaux calculs pour les tches T2, qui dpend de T4, et T3, qui dpend de T1 :
J2 =maxj prec i( Rjcourant) = RM2 = 1 (M2 prcde T2)
J3 =maxj prec i( Rjcourant) = RM1 = 6 (M1 prcde T3)
J5 = 0
Pour les messages M1 et M2 :
Ji = max ( maxj prec i( Rjcourant) ) donc, ici : JM1 = max(4, RT1 ) = max(4, 4 ) et JM2 = max(2, RT4 ) =
max(2, 2 ) ,
W2 = C2 + !(J1 + W2) / P1"*C1 = 5 + !(0 + 5) / 100"*4 = 5 + 4 = 9
W 3 = C3 + !(J4 + W3) / P4"*C4 = 3 + !(0 + 3) / 100"*2 = 3 + 2 = 5
T5 ne dpend de personne et les tches plus prioritaires quelle ont de coefficients fixes.
W 5 = C5 + !(J1 + W5) / P1"*C1 + !(J2 + W5) / P2"*C2
= 3 + !(0 + 12) / 100"*4 + !(1 + 12) / 60"*5
= 3 + 4 +5 = 12
J1 ne variera plus, seul J2 peut changer.
Temps de rponse : Ri = Jj, + Wj
Temps de rponse pour les messages M1 et M2 : Ri = Ji + Mi
T1(A)
0
4
4
T2(A)
1
9 (fixe)
10
T3(B)
6
5(fixe)
6+5=11
T4(B)
0
2
2
Les Wi de T2 et T3 ne varient plus (les gigues des tches plus prioritaires sont fixes), leurs Ri ne
dpendant que de leur propre gigue :
W2 = C2 + !(J1 + W2) / P1"*C1 = 5 + !(0 + 9) / 100"*4 = 5 + 4 = 9
W 3 = C3 + !(J4 + W3) / P4"*C4 = 3 + !(0 + 5) / 100"*2 = 3 + 2 = 5
Pour T5 :
W 5 = C5 + !(J1 + W5) / P1"*C1 + !(J2 + W5) / P2"*C2
= 3 + !(0 + 12) / 100"*4 + !(3 + 12) / 60"*5 = 12
Temps de rponse : Ri = Jj, + Wj , donc R2 et R3 changent puisque JM1 et JM2 ont t modifies.
Jj,
Wi
Ri
T5(A)
0
3+5+4=12
12
M1
4
6
6+4=10
M2
2
1
1+2=3
4.2.3 Itration 2
On arrive avec :
W2 = 9
W3 = 5
W 5 = 12
Jj,
Wi
Ri
T1(A)
0
4
4
T2(A)
3
9
3+9=10
T3(B)
10
5
10+5=15
T4(B)
0
2
2
T5(A)
0
12
3+5+4=12
M1
4
6
6+4=10
M2
2
1
1+2=3
4.2.4 Itration 3
On arrive avec :
W2 = 9
W3 = 5
W 5 = 12
Nouveaux calculs pour les tches T2, qui dpend de T4, et T3, qui dpend de T1 :
J2 =maxj prec i( Rjcourant) = RM2 = 3 (M2 prcde T2)
J3 =maxj prec i( Rjcourant) = RM1 = 10 (M1 prcde T3)
Les gigues calcules pendant cette itration sont gales celles de la prcdente, arrt des calculs.
W2 = C2 + !(J1 + W2) / P1"*C1 = 5 + !(0 + 9) / 100"*4 = 5 + 4 = 9
W 3 = C3 + !(J4 + W3) / P4"*C4 = 3 + !(0 + 5) / 100"*2 = 3 + 2 = 5
Temps de rponse : Ri = Jj, + Wj
Jj,
Wi
Ri
T1(A)
0
4
4
T2(A)
3
9
3+9=12
T3(B)
10
5
10+5=15
T4(B)
0
2
2
T5(A)
0
12
12
M1
4
6
6+4=10
M2
2
1
1+2=3
4.2.5 Rsultat
Nouveaux calculs pour les tches T2, qui dpend de T4, et T3, qui dpend de T1 :
9
T1
T2
T5
gigue
gigue
gigue
10
11
12
4.3.2 Initialisations
Ji = 0
Wi = Ci + !(j> prio(i)) Cj
Si tche : Ri = Ji +Wi = Ci + !(j> prio(i)) Cj
Si message : Ri = Mi
11
12
M1 M2 M3
Jj, 0
0
0
Wi
Ri 10 10 2
Bus :
1
M2
M1
gigue
gigue
gigue
gigue
gigue
gigue
10
11
Priode
20
35
25
50
60
Priode
Priorit
1
2
2
3
3
Sens
T1 vers T4
T3 vers T5
T4 vers T5
T5(B)
0
15
15
Calculs :
Ji = max (Ji , maxj prec i( Rj) )
Ri pour les messages : Ri = Ji + Mi
Ri pour les tches :
W2 = C2 = 10
R2 = J2 + 10= 10
W 3 = C3 + !(J1 + W3) / P1"*C1 = 10 + !(0 + 15) / 20"*5 = 10 + 5 = 15
R3 = J3 + W3 = 0 + 15 = 15
W 4 = C4 + !(J2 + W4) / P2"*C2 = 5 + !(0 + 15) / 35"*10 = 15
R4 = J4 + 15 = 10 + 15 = 25
W 5 = C5 = 15
R5 = J5 + W5 = J5 + 15 = 10 + 15 = 25
Processeur
A
C
A
C
B
Dlai de comm.
10
10
2
M1 M2 M3
Jj, 5
15 15
Wi
Ri 15 25 17
4.3.4 Itration 2
Bits de donnes
0
Lmax
55
Ou dlai, en s, pour
un dbit de 1 Mbits/s
Efficacit (%)
0
T4(C)
0
5+10=15
15
M1 dpend de T1
M2 dpend de T3
M3 dpend de T4
T4 dpend de M1
T5 dpend de M2 et M3
Les gigues de T1, T2 et T3 resteront 0.
De plus T1 est la plus prioritaire sur A, donc aucun coefficient ne changera pour elle.
T3(A)
0
10+5=15
15
4.3.3 Itration 1
T2(C)
0
10
10
12
4.3 Exemple 2
Tche
T1
T2
T3
T4
T5
T1(A)
0
5
5
8
65
16
75
24
85
32
95
40
105
48
115
56
125
64
135
12
21
28
34
38
42
45
47
Donc 8 octets en 135s, Si la base de temps (tic) est de 1ms, pendant un tic on peut transmettre
10-3 / (135*10-6 ) = 103/135 = 7 paquets de 8 octets
11
T1(A)
0
5
5
T2(C)
0
10
10
T3(A)
0
10+5=15
15
T4(C)
10
15
25
T5(B)
10
15
25
M1 dpend de T1
M2 dpend de T3
M3 dpend de T4
T4 dpend de M1
T5 dpend de M2 et M3
Les gigues de T1, T2 et T3 resteront 0.
De plus T1 est la plus prioritaire sur A, donc aucun coefficient ne changera pour elle.
Calculs :
Ji = max (Ji , maxj prec i( Rj) )
Ri pour les messages : Ri = Ji + Mi
Ri pour les tches :
12
W2 =
R2 =
W3 =
R3 =
W4 =
R4 =
W5 =
R5 =
C2 = 10
J2 + W2 = 0 + 10 = 10
C3 + !(J1 + W3) / P1"*C1 = 10 + !(0 + 15) / 20"*5 = 10 + 5 = 15
J3 + W3 = 0 + 15 = 15
C4 + !(J2 + W4) / P2"*C2 = 5 + !15)/ 35"*10 = 5 + 10 = 15
J4 + 15 = 15 + 15 = 30
C5 = 15
J5 + W5 = J5 + 15 = 25 + 15 = 40
M1 M2 M3
Jj, 5
15 25
Wi
Ri 15 25 27
T1(A)
0
5
5
T2(C)
0
10
10
T3(A)
0
10+5=15
15
T4(C)
15
15
30
T5(B)
25
15
40
M1 M2 M3
Jj, 5
15 30
Wi
Ri 15 25 32
4.3.5 Itration 3
M1 dpend de T1
M2 dpend de T3
M3 dpend de T4
T4 dpend de M1
T5 dpend de M2 et M3
Les gigues de T1, T2 et T3 resteront 0.
De plus T1 est la plus prioritaire sur A, donc aucun coefficient ne changera pour elle.
Calculs :
Ji = max (Ji , maxj prec i( Rj) )
Ri pour les messages : Ri = Ji + Mi
Ri pour les tches :
W2 = C2 = 10
R2 = J2 + W2 = 0 + 10 = 10
W 3 = C3 + !(J1 + W3) / P1"*C1 = 10 + !(0 + 15) / 20"*5 = 10 + 5 = 15
R3 = J3 + W3 = 0 + 15 = 15
W 4 = C4 + !(J2 + W4) / P2"*C2 = 5 + !15/ 35"*10 = 5 + 10 = 15
R4 = J4 + 15 = 15 + 15 = 30
W 5 = C5 = 15
R5 = J5 + W5 = J5 + 15 = 25 + 15 = 40
Jj,
Wi
Ri
M1 M2 M3 T1(A) T2(C)
5
15 30 0
0
5
10
15 25 32 5
10
Calculs :
Ji = max (Ji , maxj prec i( Rj) )
Ri pour les messages : Ri = Ji + Mi
Ri pour les tches :
W2 = C2 + !(J4 + W2) / P4"*C4 = 10 + !(15 + 15) / 50"*5 = 10 + 5 = 15
R2 = J2 + W2 = 0 + 15 = 15
W 3 = C3 + !(J1 + W3) / P1"*C1 = 10 + !(0 + 15) / 20"*5 = 10 + 5 = 15
R3 = J3 + W3 = 0 + 15 = 15
W 4 = C4 + !(J2 + W4) / P2"*C2 = 15
R4 = J4 + 15 = 15 + 15 = 30
W 5 = C5 = 15
R5 = J5 + W5 = J5 + 15 = 32 + 15 = 47
T3(A)
0
10+5=15
15
T4(C)
15
15
30
T5(B)
27
15
42
T1(A)
0
5
5
T2(C)
0
10
10
T3(A)
0
10+5=15
15
T4(C)
15
15
30
T5(B)
32
15
47
4.3.7 Itration 5
Les gigues de T1, T2 et T3 resteront 0.
De plus T1 est la plus prioritaire sur A, donc aucun coefficient ne changera pour elle.
Calculs :
Ji = max (Ji , maxj prec i( Rj) )
Ri pour les messages : Ri = Ji + Mi
Ri pour les tches :
W2 = C2 + !(J4 + W2) / P4"*C4 = 10 + !(15 + 15) / 50"*5 = 10 + 5 = 15
R2 = J2 + W2 = 0 + 15 = 15
W 3 = C3 + !(J1 + W3) / P1"*C1 = 10 + !(0 + 15) / 20"*5 = 10 + 5 = 15
R3 = J3 + W3 = 0 + 15 = 15
W 4 = C4 + !(J2 + W4) / P2"*C2 = 15
R4 = J4 + 15 = 15 + 15 = 30
W 5 = C5 = 15
R5 = J5 + W5 = J5 + 15 = 32 + 15 = 47
M1 M2 M3 T1(A) T2(C) T3(A) T4(C) T5(B)
Jj, 5
15 30 0
0
0
15
32
Wi
Ri
Les gigues sont gals celles de litration prcdente, arrt des calculs.
4.3.6 Itration 4
M1 dpend de T1
M2 dpend de T3
M3 dpend de T4
T4 dpend de M1
T5 dpend de M2 et M3
Les gigues de T1, T2 et T3 resteront 0.
De plus T1 est la plus prioritaire sur A, donc aucun coefficient ne changera pour elle.
13
4.3.8 Rsultat
Processeur A (T1, prioritaire, envoie M1 vers T4, T3 envoie M1 vers T5) :
1
2
3
4
5
6
7
8
9
10
15
T1
T3
T4
T3
gigue
gigue
gigue
gigue
gigue
30
Bus :
1
M1
M2
M3
15
gigue
gigue
gigue
gigue
gigue
gigue
gigue
gigue
gigue
gigue
gigue
gigue
25
gigue
gigue
30
31
32
gigue
gigue
6 Serveur de scrutation
gigue
Rappel :
Sporadique : les rveils sont priodiques, de priode >= T,
Apriodique : activation alatoire.
5 Serveur diffr
5.1 Question 1
Rappel :
Sporadique : les rveils sont priodiques, de priode >= T,
Apriodique : activation alatoire.
Le serveur de scrutation :
Tscrut : (C=5, T =25)
Rappel :
Un serveur scrutation est activ chacune de ses priodes et vrifie sil existe une, ou plusieurs,
tche apriodique prte tre excute. Il la (les) traite dans la limite de sa capacit. Cette capacit
(ou budget) est rinitialise chacune de ces activations, si le serveur na rien faire, il perd la main,
sa capacit est perdue et sera rinitialise lactivation (priode) suivante.
Le serveur diffr, lui, conserve sa capacit, mme sil navait rien faire et pourra tre activ ds
quune tche apriodique est prte entre deux de ses priodes. (Gestion encore plus fine de la capacit
par le serveur sporadique).
1
X
X
5
X
X
Temps 8
- T2 manque sa deuxime chance,
Remarque :
On se trouve ici dans un cas qui illustre le travers du serveur diffr : les allocations peuvent se faire
de faon contigue et perturber lordonnancement RMS.
Linstant t est critique pour Ti si :
- t est une date de rveil pour Ti,
- des tches de priorit suprieure Ti sont ractives en t
- le reste du budget de SD est C en t
- la prochaine date de ralimentation du budget est t+C
(on met cte cte deux budgets et on les dmarre un dbut de priode)
6
X
X
7
X
X
8
X
X
10
11
12
Rponse------Temps 1,
- lordonnanceur ne trouve rien dans la file dattente des tches apriodiques,
- T2 est active et consomme une unit de temps.
Temps 3 :
- T1 a conserv son budget, mais na toujours rien faire.
Temps 4, lordonnanceur trouve A dans la file dattente des tches apriodiques :
- T1 est rveill et consomme ses deux units de temps,
- T2 nest pas active, parce que moins prioritaire.
Temps 6 :
- Le budget de T1 est rinitialis deux,
- T1 excute A jusqu la fin du temps 8,
15
6.1 Question 1
Calcul de U pour lensemble T1, T2 et T3 :
U = 5/30 + 10/50 +25/75 = 1/6 + 1/5 + 1/3 = 0,16 + 0,25 + 0,33 = 0,74
Donc ordonnanable par RMS (infrieur 0,78).
Si on ajoute la tche de scrutation :
U = 0,74 + 5/25 = 0,74 + 1/5 = 0,9
Donc on ne peut rien dire pour RMS.
Pour T1, T2 et T3 : PPCM = 150
Pour T1, T2 et T3 et Tscrut : PPCM = 150
Diagramme dordonnancement RMS pour le scnario suivant :
Liste des tches apriodiques :
TA1 : (C=8, rveil en 0)
TA2 : (C=4, rveil en 20)
TA3 : (C=13, rveil en 45)
TA4 : (C=10, rveil en 90)
16
Date 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145
Ts
T1
T2
T3
6.2 Question 2
Diagramme dordonnancement dans le cas o le serveur doit traiter les deux tches apriodiques:
TA1 : (C=8, rveil en 6)
TA2 : (C=15, rveil en 20)
Les tches T1 T3 sont toujours prsentes :
T1
: (C=5, T =30)
T2
: (C=10, T =50)
T3
: (C=25, T =75)
Date 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145
Ts
T1
T2
T3
Commentaires :
Au temps 0, le serveur de scrutation na rien faire, donc il rend la main, son budget est perdu.
Au temps 25, il consomme 5 units de temps pour TA1.
Au temps 50, il consomme 3 units de temps pour TA1 et 2 units de temps pour TA2.
Au temps 75, il consomme 5 units de temps pour TA2.
Au temps 100, il consomme 5 units de temps pour TA2.
Au temps 125, il consomme 2 units de temps pour TA2.
17