Vous êtes sur la page 1sur 9

TD temps rel 1

CORRIGE
1! INTRODUCTION : RM, EDF, LLF............................................................................................................................... 2!
1.1! QUESTION 1............................................................................................................................................................... 2!
2! THEOREME DE LA ZONE CRITIQUE ...................................................................................................................... 5!

1 Introduction : RM, EDF, LLF


Trois tches, prtes t = 0 :
T1 : (C=1, D=P=3)
T2 : (C=1, D=P=4)
T3 : (C=2, D=P=6)

1.1 Question 1

2.1! CALCUL DE U............................................................................................................................................................ 5!


2.2! THEOREME DE LA ZONE CRITIQUE......................................................................................................................... 5!

Calcul de U

3! RATE MONOTONIC OU EARLIEST DEADLINE .................................................................................................... 6!


3.1! QUESTION 1............................................................................................................................................................... 6!
3.2! QUESTION 2............................................................................................................................................................... 6!
3.3! QUESTION 3............................................................................................................................................................... 6!
4! TEMPS DE REPONSE DE BOUT EN BOUT............................................................................................................... 7!
4.1! RAPPELS .................................................................................................................................................................... 7!
4.2! EXEMPLE ................................................................................................................................................................... 8!
4.2.1! Initialisations ...................................................................................................................................................... 8!
4.2.2! Itration 1 ........................................................................................................................................................... 9!
4.2.3! Itration 2 ........................................................................................................................................................... 9!
4.2.4! Itration 3 ......................................................................................................................................................... 10!
4.2.5! Rsultat ............................................................................................................................................................. 10!
4.3! EXEMPLE 2 .............................................................................................................................................................. 11!
4.3.1! Bus CAN ........................................................................................................................................................... 11!
4.3.2! Initialisations .................................................................................................................................................... 12!
4.3.3! Itration 1 ......................................................................................................................................................... 12!
4.3.4! Itration 2 ......................................................................................................................................................... 12!
4.3.5! Itration 3 ......................................................................................................................................................... 13!
4.3.6! Itration 4 ......................................................................................................................................................... 13!
4.3.7! Itration 5 ......................................................................................................................................................... 14!
4.3.8! Rsultat ............................................................................................................................................................. 14!
5! SERVEUR DIFFERE .....................................................................................................................................................15!
5.1! QUESTION 1............................................................................................................................................................. 15!
6! SERVEUR DE SCRUTATION .....................................................................................................................................16!
6.1! QUESTION 1............................................................................................................................................................. 16!
6.2! QUESTION 2............................................................................................................................................................. 17!

U = 1/3 +1/4 + 2/6 = 0,33 + 0,25 + 0,33 = 0, 91.


Le coefficient U est infrieur 1: lensemble des tches est ordonnanable par EDF.
Il est suprieur 0,78 : on ne peut rien dire pour RMS : en effet U infrieur ou gal N(21/N-1) est une
condition suffisante pour RMS.
Remarques :
- RMS : priorit fixe,
- EDF : priorit dynamique, moins de temps morts que RMS, mais moins bon comportement
en cas de surcharge. Plus coteux implmenter.
- LLF prend en compte le coefficient C, ce qui nest fait ni par RMS, ni par EDF. Encore plus
coteux implanter que EDF.
Rappel : dans tous les cas le calcul dordonnancement nest fait que pour les tches qui ont t actives
ou ractives
Schmas dordonnancement

On rappelle la valeur du PPCM des priodes : 12.

1.1.1.1 Ordonnancement RMS


La dcision dordonnancement est prise chaque activation de tche.
Schma dordonnancement en appliquant RMS :
Date
T1
T2
T3

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.

TD Temps rel (1) Corrig

EDF, comme RMS, ne prend pas en compte le coefficient C pour calculer les priorits.

1.1.1.2 Ordonnancement EDF (1)

1.1.1.4 Ordonnancement LLF

La dcision dordonnancement est prise chaque activation de tche.


Schma dordonnancement en appliquant EDF :

On donne maintenant un schma dordonnancement en appliquant lalgorithme LLF (Least Laxity


First), algorithme qui prend en compte la capacit C demande par une tche chacune de ses
activations.

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.

1.1.1.3 Ordonnancement EDF (2)


Reprenons le scnario, en choisissant maintenant de toujours rduire le nombre de changements de
contexte :
Date
T1
T2
T3

10

11

12

Au temps 4, on choisit T3.


Au temps 7, on peut choisir T1 ou T3, on choisit T1
Au temps 9, on peut choisir T2 ou T3, on choisit T3 qui est dj active, pour viter le changement de
contexte.
Il reste un crneau libre en 11 : aucune tche na t ractive, la prochaine date dactivation est 12
pour toutes les tches.
Remarque :
3

TD Temps rel (1) Corrig

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.

TD Temps rel (1) Corrig

2 Thorme de la zone critique

3 Rate monotonic ou Earliest deadline

Trois tches, prtes t = 0 :


T1 : (C=25, D=P=100)
T2 : (C=50, D=P=200)
T3 : (C=100, D=P=300)

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.

U = 1/4 + 2/6 + 2/8 = 0,25 + 0,33 + 0,25 = 0, 83


U est donc suprieur 0, 78 : on ne peut rien dire pour RM, lordonnancement EDF est possible.
PPCM = 240

2.2 Thorme de la zone critique

3.1.1.2 Diagramme 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

Diagramme dordonnancement obtenu en appliquant RMS (par 10 units de temps) :


Date 1
T1
T2
T3

On initialise avec Wi(0) = !(j=1) i Cj , cest dire t0 = "


Calcul pour i = 1 :
W1(0) = 25
W1(25) = 25!25/100" = 25 # OK

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

3.1.1.3 Diagramme EDF


Diagramme dordonnancement obtenu en appliquant EDF :
Date 1
T1
T2
T3

On va chercher si on peut trouver Wi(t) = t

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 de la nouvelle valeur de U, en prenant en compte T4:


U = (1/4 + 2/6 + 2/8) + 1/6 = 0,83 + 0,16 = 0,99

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.

TD Temps rel (1) Corrig

TD Temps rel (1) Corrig

initialisation

4 Temps de rponse de bout en bout

Pour tous messages et tches : Jj = 0, Ri = 0


Pour tous messages et tches : calcul du temps de rponse ri.

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

Tant que : (#i : ri != ri ) {


$i :
Jj = max(Jj, $j tel que j% i : rj)
ri = ri
CalculTempsRep(ri)
}
( rj pour tous les j tel que Tj prcde Ti )

4.2 Exemple
Caractristiques des tches:

Arrt : Ri(k) = Ri(k-1)


Principe de lanalyse holistique : itrer jusquau point fixe W(Ri) = Ri
1. initialiser les gigues et les temps de rponse :
o Ji = 0
o Wi = Ci + !(j> prio(i)) !( Jj + ")/Pj"*Cj = Ci + !(j> prio(i)) Cj
o Ricourant
! pour les tches : Ricourant = Ji +Wi = Ci + !(j> prio(i)) Cj
! pour les messages : Ricourant = Ji + Mi
o Riancien = 0
2. itrations, tant quil existe un Riancien diffrent de Ricourant :
o pour i de 1 n : on va mettre jour le gigues en utilisant les temps de rponse. On dit
que Tj prcde la Ti, si j est la prcdente de i dans le graphe de communication :
! Ji = max (Ji , maxj prec i( Rjcourant) )
o pour tous les i : calculer les temps de rponses par tche, par site et par rseau,
! Riancien = Ricourant
! Ricourant = CalculTempsRep( i )

Tche
T1
T2
T3
T4
T5

Priode
100
60
100
60
90

Capacit
4
5
3
2
3

Caractristiques des messages :


Message
Sens
M1
De T1 vers T3
M2
De T4 vers T2

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

Ri = Ji + Wi avec : Wi = Ci + !(j> prio(i)) !(Jj + Wi) / Pj"*Cj


On prend en compte les tches qui ont une priorit
suprieure la tche courante
Ri = Ji + Mi
Mi est le dlai de transmission du message
entre la tche mettrice et la tche destinataire.

4.2.1 Initialisations
T3 dpend de T1 par M1
T2 dpend de T4 par M2

courant

Ji = max (Ji , maxj prec i( Rj


))
Wi = Ci + !(j> prio(i)) !(Jj + Wi) / Pj"*Cj
Si tche : Ri = Ji+Wi
Si message : Ri = Ji + Mi

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

TD Temps rel (1) Corrig

TD Temps rel (1) Corrig

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 )

Pour les messages M1 et M2 :


Les de M1 et M2 dpendent de R1 et R4 qui sont fixes.

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.

Ji = max ( maxj prec i( Rjcourant) )


Wi = Ci + !(j> prio(i)) !(Jj + Wi) / Pj"*Cj
Si tche : Ri = Ji + Wi
Si message : Ri = Ji + Mi

Jj,
Wi
Ri

J2 =maxj prec i( Rjcourant) = RM2 = 3 (M2 prcde T2)


J3 =maxj prec i( Rjcourant) = RM1 = 10 (M1 prcde T3)
Pour les messages M1 et M2 :
Ji = max ( maxj prec i( Rjcourant) ) donc, pas de changement puisque aucun coeff. na t modifi depuis
litration prcdente ni T1 qui met M1 ni pour T4 qui met M2.

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

TD Temps rel (1) Corrig

Processeur A (T1 envoie M1 vers T3, T2 active par T4 via M2 ) :


10

TD Temps rel (1) Corrig

T1
T2
T5

gigue

gigue

gigue

10

11

Processeur B (T4 envoie M1 vers T2, T3 active par T1 via M1) :


1
2
3
4
5
6
7
8
9
10
T4
T3 gigue gigue gigue gigue gigue gigue gigue gigue gigue gigue

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

4.3.1 Bus CAN

M1 M2 M3
Jj, 5
15 15
Wi
Ri 15 25 17

Pour n bits, la taille maximale de la trame est :


Lmax = 47 + (8*n) + &( ( 34 + (8*n) -1)/ 4 )' bits

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.

Caractristiques des messages :


Message
M1
M2
M3

T3(A)
0
10+5=15
15

4.3.3 Itration 1

Caractristiques des tches:


Capacit
5
10
10
5
15

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

TD Temps rel (1) Corrig

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

TD Temps rel (1) Corrig

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

TD Temps rel (1) Corrig

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

Processeur B (T5 activ par T3 via M2 et par T4 via M3 ) :


1
2

32 47
14

TD Temps rel (1) Corrig

T4
T3

gigue

gigue

gigue

gigue

gigue

Processeur C (T3 envoie M3 vers T5, T2 est prioritaire) :


1
10
15
T2

T4 gigue 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.

Aucune entre d'index n'a t trouve.

5 Serveur diffr

Liste des tches :


T1 : (C=5, T =30)
T2 : (C=10, T =50)
T3 : (C=25, T =75)

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)

Soient les tches :


T1: (C=2, D=P=3)
T2: (C=1, D=P=4)
La tche T1 est un serveur diffr.
On introduit galement A, une tche apriodique caractrise ainsi :
A : rveil en 4, C=4

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).

Scnario de lexcution de ces tches :


Date
T1
T2

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

TD Temps rel (1) Corrig

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

TD Temps rel (1) Corrig

Tscrut : (C=5, T =25), il va consommer TOUT SON BUDGET chaque activation


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

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

TD Temps rel (1) Corrig