Académique Documents
Professionnel Documents
Culture Documents
Ordonnancement
Prédictibilité temporelle des STR
Tâches apériodiques
Déclanchées par un événement extérieur. Caractéristiques
partiellement non-connues.
Ti est caractérisée par:
- ci – temps de calcul au pire cas (WCET)
- di – échéance relative à l’arrivée
- (éventuellement) ai – temps d’arrivée / contraintes
Tâches sporadiques
tâches apériodiques avec temps minimum entre arrivées connu.
Exemple : Séparation des étages dans un lanceur (Ariane-5)
IUT Blagnac Introduction aux systèmes temps réel 4
Un modèle basique
Tâche Pt Ct
A 25 10 10 10
B 25 8 8 8
C 50 4 4
D 50 6 6
25 50
IUT Blagnac Introduction aux systèmes temps réel 6
Implémentation
⇒ interruption horloge: période = cycle mineur
while(true) {
A(); B(); C();
attendre interruption;
A(); B(); D();
attendre interruption;
}
Ordonnancement préemptif
la transition préempt est permise;
une tâche peut être interrompue et reprise plus tard
la préemption a lieu quand une tâche de plus grande priorité
arrive
permet une meilleure occupation du processeur
…donc permet de rendre ordonnançable des systèmes qui ne le
sont pas autrement
mais : implique une surcharge pour le changement de contexte
T1 > T2
Tâche Pt Ct
T1 4 1
T2 1 0.02 !! !!
1 2 3 4
(*) thanks to D.C. Locke for this example
T2 > T1
Tâche Pt Ct
T1 4 1
T2 1 0.02
1 2 3 4
(*) thanks to D.C. Locke for this example
Conclusion:
Tâche Pt Ct La priorité n’est pas basée sur
T1 4 1 l’importance, mais uniquement
sur les contraintes temporelles !
T2 1 0.02
Tâche Pt Ct
A 10 5 5 5 5 5 5
B 20 6 5 1 5 1 5
C 50 7 4 3
10 20 30 40 50
A>B>C
Tâche Pt Ct Occup.
CPU
5 5
A 10 5 0.5
5 5
B 15 5 0.33
!!
C 20 ε ε/20
10 20 30
A>B>C
Utilisation du processeur
n
ci
∑i =1 pi
≤ n(2 − 1)
1n
U(n)
Tâche Pt Ct
A 10 5 UA = CA / PA = 0.5
B 20 6 UB = CB / PB = 0.3
U = UA + UB = 0.8 <U(2)
⇒
l’ensemble est ordonnançable
Tâche Pt Ct
A 10 5 UA = CA / PA = 0.5
B 20 6 UB = CB / PB = 0.3
C 50 7 UC = CC / PC = 0.14
i
1n
nécessaire
Il existe un test précis:
Tâche Pt Ct
A 10 5 UA = CA / PA = 0.5
B 20 10 UB = CB / PB = 0.5
U = UA + U B = 1
5 5
OK!
5 5
pourtant :
10 20 30 40 50
Tâche Pt Ct
A 10 5 UA = CA / PA = 0.5
B 20 10 UB = CB / PB = 0.5
U = UA + U B = 1
A ok
B ok
Tâche Pt Ct
A 10 5 5 5 5 5
C ok
B 20 6 5 1 5 1
C 50 7 4 3
10 20 30 40 50
A>B>C
Ri = Ci + Ii
Tâche Pt Ct RA = 3
A 7 3 W0B = 3
B 12 3 3
W = 3 + 3 = 6
1
B
C 20 5 7
6
W2 = 3 + 3 = 6
B
7
RB = 6
5 5 11 11
W0C = 5 W1C = 5 + 3 + 3 = 11 W2C = 5 + 3 + 3 = 14
7 12 7 12
t Di
2 2 2 2 2 2
EDF
4 4 1 3 4
5 10 15 20 25
2 2
RMS
3 !!!
5 7 10 15 20 25
IUT Blagnac Introduction aux systèmes temps réel 39
Comparaison RMS - EDF
le pire cas:
cT 2 S
UT = +
pT pT
Remarques:
l’analyse du temps de réponse marche pour D < P
l’analyse du temps de réponse marche pour
n’importe quel ordre de priorités fixes
⇒ on peut vérifier off-line la faisabilité d’autres ordres
block R release R
C
B wait R block R
échéance
A ratée
block R release R
C
B wait R block R
C bloque A: B bloque A:
blocage nécessaire pour pas nécessaire
l’intégrité de R
C passe à
priorité 3
block R release R
C
B wait R block R
B wait R
0, sinon
Bi = ∑ util (k , i )C (k )
k∈K
ci −1 ci + Bi
∀i ∈ {1,..., n}. +
c1 c2
+ ... + + ≤ i (21/ i − 1)
p1 p2 pi −1 pi
Ri = Ci + Bi + I i
Ri
Ri = Ci + Bi + ∑ C j
j >i Pj
w 0
…
wi0 = Ci + Bi wi1 = Ci + Bi + ∑ i C j
j >i Pj
Tâche Pt Ct
A 75 9 peut utiliser k, C(k)=5
B 35 20
C 20 5 peut aussi utiliser k
caractéristiques de PIP:
une tâche peut être bloquée plusieurs fois
possibilité de blocage transitif
estimation pessimiste du temps de blocage
P(R) V(R)
legende:
P(Q) V(Q)
d(4)
exécution sans ressource
P(R) V(R)
c(3)
exécution avec R acquis
b(2)
P(Q) V(Q) exécution avec Q acquis
a(1)
exécution avec R et Q
acquis
tâche suspendue
(préemptée)
V(R)
P(R) P(Q) V(Q)
d(4)
exécution avec PIP : P(R) V(R)
c(3) 4
b(2)
P(Q) V(Q)
a(1) 4
V(R)
P(R) P(Q) V(Q)
d(4)
b(2)
P(Q) V(Q)
a(1) 3 4
Bi = MAX util (k , i )C (k )
k∈K
au lieu de
Bi = ∑ util (k , i )C (k )
k∈K
P(R) V(Q)
ordonnancement) : P(Q) V(R)
a(1)
P(R) P(Q)
en PIP : b(2)
P(R)
(ou sans protocole) P(Q)
a(1) 2
en PCP : b(2)
a(1) 2 2 2
b(2)
P(Q) V(Q)
a(1) 3 4
P(R) V(R)
P(Q) V(Q)
d(4)
ordonnancement cyclique
le système est programmé comme un ensemble de
procédures
les appels sont groupés dans des cycles mineurs
(déclanchés par le temps). Au bout de plusieurs cycles
mineurs, le schéma se répète (cycle majeur)
beaucoup d’inconvénients, résolus par des politiques
préemptives à base de priorités
techniques employées
programmation concurrente, synchronisation
(causes : environnement parallèle, système réparti)
programmation des aspects temporels (attente,
interruption par temporisation,…)
gestion des échéances par une politique
d’ordonnancement temps réel, prédiction du
comportement au pire cas