SlideShare une entreprise Scribd logo
2ème Partie
Ordonnancement
IUT Blagnac Introduction aux systèmes temps réel 2
Prédictibilité temporelle des STR
Prédictibilité = assurer a priori que
toutes les tâches respectent leurs échéances
Les 2 piliers sont:
 l'analyse de pire temps d'execution
(WCET – Worst Case Execution Time)
 problèmes:
 liés au programme (structure dynamique – boucles,
branches…; appels externes – OS, MW…)
 liés au matériel (cache, pipeline, exécution prédictive…)
 méthodes: analyse statique de programmes,
interprétation abstraite, analyse dynamique, hybride…
 l'ordonnancement des tâches
IUT Blagnac Introduction aux systèmes temps réel 3
Ordonnancement (rappel)
Politique d’ordonnancement :
politique d’allocation des tranches de temps processeur
( i.e., les moments où une tâche est livrée au processeur
/ suspendue )
Objectif de l’ordonnancement : assurer le
respect des échéances de manière prouvable
Une méthode d’ordonnancement est caractérisée par:
 la méthode effective de construction de l’emploi du
temps (schedule) du processeur (online ou offline)
 le critère de test d’ordonnançabilité (offline) –
prédiction du comportement « au pire cas »
IUT Blagnac Introduction aux systèmes temps réel 4
Types de tâches
 Tâches périodiques
 Déclanchées par le temps. Caractéristiques connues à l’avance.
 Ti est caractérisée par:
- pi – période d’arrivée
- ci – temps de calcul au pire cas (WCET)
- di – échéance relative à l’arrivée
 Exemple : Guidage-Navigation-Contrôle (GNC) dans un AOCS (ex.
Ariane-5)
 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 5
Un modèle basique
 Le système consiste d’un ensemble fixé de
tâches
 Toutes les tâches sont périodiques
 les tâches sont indépendantes
(pas de communication/synchronisation)
 on suppose un temps de changement de
contexte zéro
IUT Blagnac Introduction aux systèmes temps réel 6
Ordonnancement cyclique
 Conception concurrente, mais implantation séquentielle
cyclique
 Les tâches sont mappées sur un ensemble de
procédures
Exemple:
6
50
D
4
50
C
8
25
B
10
25
A
Ct
Pt
Tâche
10
8
4
25
10
8
6
50
cycle mineur
cycle majeur
IUT Blagnac Introduction aux systèmes temps réel 7
Implémentation
⇒ interruption horloge: période = cycle mineur
while(true) {
A(); B(); C();
attendre interruption;
A(); B(); D();
attendre interruption;
}
IUT Blagnac Introduction aux systèmes temps réel 8
Discussion
pour:
 pas de processus à l’exécution
 espace mémoire partagé
 pas besoin de protection de régions critiques –
accès concurrent impossible
 exécution complètement déterministe
contre:
 impossible d’introduire des activités sporadiques
 cycles « longs » difficiles à gérer
 nécessité de découper des calculs longs sur
plusieurs cycles mineurs ⇒ erreurs
 emploi de temps difficile à obtenir (NP-hard)
IUT Blagnac Introduction aux systèmes temps réel 9
Ordonnancement préemptif ou non
 Ordonnancement non-préemptif
 quand une tâche commence, elle va jusqu’au bout
 … mais des fois c’est impossible de tenir les délais:
 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
2
1000
Dt
1
10
B
25
1000
A
Ct
Pt
Tâche Chaque fois que A
exécute, B va rater 2
fois son échéance
IUT Blagnac Introduction aux systèmes temps réel 10
Ordonnancement préemptif à priorité fixe
(FPPS)
 l’approche la plus utilisée dans les systèmes
réels
 chaque tâche a une priorité fixe, statique,
calculée off-line.
(Toutes les instances de la tâche ont la même priorité.)
 à tout moment, la tâche la plus prioritaire a le
CPU
 changements de contexte:
- préemption : quand une tâche arrive, si elle est
plus prioritaire que la tâche en cours
- quand la tâche en cours se termine (→ idle)
IUT Blagnac Introduction aux systèmes temps réel 11
Comment affecter les priorités
Exemple : la centrale nucléaire la moins chère au
monde(*)
- tâche 1 : barres de contrôle (cœur du réacteur)
- tâche 2 : vanne du lave-vaisselle (cafeteria)
(*) thanks to D.C. Locke for this example
0.02
1
T2
1
4
T1
Ct
Pt
Tâche
T1  T2
1
!!
2 3 4
!!
IUT Blagnac Introduction aux systèmes temps réel 12
Comment affecter les priorités
Exemple : la centrale nucléaire la moins chère au
monde(*)
- tâche 1 : barres de contrôle (cœur du réacteur)
- tâche 2 : vanne du lave-vaisselle (cafeteria)
(*) thanks to D.C. Locke for this example
0.02
1
T2
1
4
T1
Ct
Pt
Tâche
T2  T1
1 2 3 4
IUT Blagnac Introduction aux systèmes temps réel 13
Comment affecter les priorités
Exemple : la centrale nucléaire la moins chère au
monde(*)
- tâche 1 : barres de contrôle (cœur du réacteur)
- tâche 2 : vanne du lave-vaisselle (cafeteria)
(*) thanks to D.C. Locke for this example
0.02
1
T2
1
4
T1
Ct
Pt
Tâche
Conclusion:
La priorité n’est pas basée sur
l’importance, mais uniquement
sur les contraintes temporelles !
IUT Blagnac Introduction aux systèmes temps réel 14
Notion d’ordonnanceur optimal
Définition: Un algorithme d’ordonnancement est
appelé optimal (pour une classe de problèmes*)
quand il produit un emploi du temps processeur
faisable chaque fois qu’un autre algorithme
d’ordonnancement peut le faire.
* classe de problèmes: par exemple, ensemble
de tâches cycliques sans interactions, avec FPPS
IUT Blagnac Introduction aux systèmes temps réel 15
Ordonnancement « Rate Monotonic » (RMS)
Résultat : Il existe une politique optimale avec
priorités statiques, c’est RMS :
 affecter les priorités aux tâches dans l’ordre de leur
périodes: les tâches avec des périodes plus courtes
sont plus prioritaires.
IUT Blagnac Introduction aux systèmes temps réel 16
Exemple
7
50
C
6
20
B
5
10
A
Ct
Pt
Tâche
A  B  C
5
5
10
5
20 30 40 50
1
4
5
5
5
1
3
5
5
IUT Blagnac Introduction aux systèmes temps réel 17
Ordonnançabilité ?
ε
5
5
Ct
ε/20
0.33
0.5
Occup.
CPU
20
C
15
B
10
A
Pt
Tâche
A  B  C
5
5
10
5
20 30
Exemple : ensemble de tâches qui n'est pas ordonnanceable
avec occupation du processeur  100% (~ 83.4%)
5
!!
IUT Blagnac Introduction aux systèmes temps réel 18
Critère statique d’ordonnançabilité RMS
Théorème : Un ensemble de n tâches
périodiques indépendantes est ordonnançable par
RMS indifféremment de l’ordre d’arrivée si :
)
1
2
( 1
1
−
≤
∑
=
n
n
i i
i
n
p
c
Utilisation du processeur
IUT Blagnac Introduction aux systèmes temps réel 19
Critère statique d’ordonnançabilité RMS
)
1
2
( 1
1
−
≤
∑
=
n
n
i i
i
n
p
c
 la condition est restrictive:
U(1) = 1 U(2) ≈ 0.828 U(3) ≈ 0.779
U(4) ≈ 0.756 U(5) ≈ 0.743 U(6) ≈ 0.734
pour n → ∞ , U → ln 2 ≈ 69%
U(n)
IUT Blagnac Introduction aux systèmes temps réel 20
Application du critère
6
20
B
5
10
A
Ct
Pt
Tâche
UA = CA / PA = 0.5
UB = CB / PB = 0.3
U = UA + UB = 0.8 U(2)
l’ensemble est ordonnançable
⇒
IUT Blagnac Introduction aux systèmes temps réel 21
Application du critère
7
50
C
6
20
B
5
10
A
Ct
Pt
Tâche
UA = CA / PA = 0.5
UB = CB / PB = 0.3
UC = CC / PC = 0.14
U = UA + UB + UC = 0.94  U(3) ≈ 0.779
IUT Blagnac Introduction aux systèmes temps réel 22
Améliorer le critère
 La condition est suffisante, mais pas
nécessaire
 Il existe un test précis:
Théorème: Si un ensemble de n tâches
indépendantes avec priorités fixes affectées
par RMS respecte la 1ère échéance de chaque
tâche quand toutes les tâches sont démarrées
en même temps (à T0), alors l’ensemble est
toujours ordonnançable.
)
1
2
( 1
1
−
≤
∑
=
n
n
i i
i
n
p
c
IUT Blagnac Introduction aux systèmes temps réel 23
Un cas particulier
10
20
B
5
10
A
Ct
Pt
Tâche
UA = CA / PA = 0.5
UB = CB / PB = 0.5
U = UA + UB = 1
pourtant :
5
5
10
5
20 30 40 50
5
OK!
IUT Blagnac Introduction aux systèmes temps réel 24
Un cas particulier
De manière générale : un ensemble de tâches périodiques
harmoniques est ordonnançable si l’utilisation du
processeur est ≤ 100%
Tâches harmoniques : {T1, T2,…, Tn } avec
P1≤ P2≤… ≤ Pn et ∀i,j, ij → Pi | Pj
10
20
B
5
10
A
Ct
Pt
Tâche
UA = CA / PA = 0.5
UB = CB / PB = 0.5
U = UA + UB = 1
IUT Blagnac Introduction aux systèmes temps réel 25
Application à l’exemple
7
50
C
6
20
B
5
10
A
Ct
Pt
Tâche
A  B  C
5
5
10
5
20 30 40 50
1
4
5
5
5
1
3
A ok
B ok
C ok
IUT Blagnac Introduction aux systèmes temps réel 26
Rendre le critère algorithmique
Pour chaque tâche i nous allons calculer le temps
de réponse Ri et le comparer a l’échéance Di
(cela fonctionne aussi pour Di≠Pi)
Ri = Ci + Ii
où Ii est le temps pendant lequel la tâche i est
suspendue par des tâches plus prioritaires.
IUT Blagnac Introduction aux systèmes temps réel 27
Calcul de Ri
Durant Ri, une tâche j  i est activée
fois
Chaque activation prend Cj temps
⇒ l’interférence par la tâche j est :
⇒ l’interférence totale Ii est








j
i
P
R
j
j
i
C
P
R








∑
 







=
i
j
j
j
i
i C
P
R
I
IUT Blagnac Introduction aux systèmes temps réel 28
Calcul de Ri
L’équation qui caractérise Ri est donc:
⇒ Ri est le plus petit point fixe de la fonction
monotone
∑
 







+
=
i
j
j
j
i
i
i C
P
R
C
R
∑
 







+
=
i
j
j
j
i C
P
X
C
X
F )
(
IUT Blagnac Introduction aux systèmes temps réel 29
Calcul de Ri
On peut le calculer par itération:
W0=Ci
W1=F(W0)
W2=F(W1)
…
Wk+1=F(Wk)
on arrête quand Wk=Wk+1
Ri=Wk
IUT Blagnac Introduction aux systèmes temps réel 30
L’algorithme
w = 0;
next_w = Ci;
while(w != next_w  next_w = Di) {
w = next_w;
next_w = F(w);
}
if(next_w = Di)
« La tâche Ti est ordonnançable »
else
« La tâche Ti n’est pas est ordonnançable »
IUT Blagnac Introduction aux systèmes temps réel 31
Analyse du temps de réponse: exemple
5
20
C
3
12
B
3
7
A
Ct
Pt
Tâche
6
3
7
3
3
1 =






+
=
B
W
3
=
A
R
3
0 =
B
W
6
3
7
6
3
2 =






+
=
B
W
6
=
B
R
5
0 =
C
W 11
3
12
5
3
7
5
5
1 =






+






+
=
C
W 14
3
12
11
3
7
11
5
2 =






+






+
=
C
W
17
3
12
14
3
7
14
5
3 =






+






+
=
C
W C
C
W
W 5
4 20
3
12
17
3
7
17
5 =
=






+






+
= 20
=
C
R
IUT Blagnac Introduction aux systèmes temps réel 32
Exercice
5
20
C
20
35
B
9
75
A
Ct
Pt
Tâche  est-ce ordonnançable par RMS ?
 quel temps de réponse pour
chaque tâche ?
 si A avait besoin de plus de
temps CPU, jusque où peut-elle
s’étendre en FPPS ?
 jusque où A peut-elle s’étendre
en EDF ?
IUT Blagnac Introduction aux systèmes temps réel 33
DMS : généralisation de RMS
[cas où di ≤ pi]
Les tâches avec des échéances (relatives) plus courtes
sont plus prioritaires
Critère basé sur l’utilisation CPU :
)
1
2
( 1
1
−
≤
∑
=
n
n
i i
i
n
d
c
 suffisant mais pas nécessaire: il existe des ensembles
ordonnançables avec !!
 critère nécessaire et suffisant: analyse du temps de
réponse (la même qu’en RMS)
 algorithme optimal en priorités statiques
1
1

∑
=
n
i i
i
d
c
IUT Blagnac Introduction aux systèmes temps réel 34
RMS  DMS : résumé
 algorithmes optimaux pour affecter les
priorités statique en FPPS
 critère suffisant basé sur le taux d’occupation
du processeur
 critère nécessaire et suffisant basé sur
l’analyse du temps de réponse
IUT Blagnac Introduction aux systèmes temps réel 35
Exercice
50
12
50
B
5
10
20
Ct
15
25
D
12
35
C
100
100
A
Dt
Pt
Tâche  quelle politique utiliser?
 quel ordre de priorité ?
 est-ce ordonnanceable?
Soit le système comportant 4 tâches avec le
caractéristiques suivantes :
IUT Blagnac Introduction aux systèmes temps réel 36
Earliest Deadline First (EDF)
Objectif : obtenir une meilleure occupation du
processeur.
Politique EDF (définition) : à tout moment, la
tâche qui a l’échéance la plus proche occupe le
CPU.
Remarques:
 toutes les instances d’une tâche n’ont pas la même priorité
-- priorité dynamique
 la priorité d’une tâche reste fixe par rapport aux priorités
des tâches qui sont déjà admises à exécution quand elle
arrive
 préemption : quand une tâche arrive, si elle a l’échéance
plus proche que la tâche en cours
IUT Blagnac Introduction aux systèmes temps réel 37
Une variante de EDF : LLF
 variante : LLF (Least Laxity First)
 Laxité d’une tâche Ti = Di – (t + ci’)
où: Di – deadline absolut
t – temps courant
ci’ – temps de calcul restant
t Di
ci
ci’ laxité
 EDF  LLF sont des algorithmes optimaux
d’affectation on-line de priorités pour FPPS
IUT Blagnac Introduction aux systèmes temps réel 38
Critères d’ordonnançabilité EDF
[si di = pi]
Condition nécessaire et suffisante: un ensemble de n
tâches est ordonnanceable par EDF ou LLF si l’utilisation
du processeur est inférieure à 100%
1
1
≤
∑
=
n
i i
i
p
c
 difficile de faire mieux ! (sans déborder)
[si di  pi]
Condition suffisante mais pas nécessaire:
 analyse du temps de réponse plus difficile qu’en RMS
1
1
≤
∑
=
n
i i
i
d
c
IUT Blagnac Introduction aux systèmes temps réel 39
2
Comparaison RMS - EDF
4
7
B
2
5
A
Ct
Pt
Tâche
EDF
2
5
4
2
4
2
1
2
10 15 20
3
2
4
2
25
RMS
5 10 15 20 25
2
3
7
!!!
Ordonnançable avec EDF,
pas avec RMS !
IUT Blagnac Introduction aux systèmes temps réel 40
Comparaison RMS - EDF
 RMS/DMS sont des algorithmes optimaux avec
priorités statiques
 EDF/LLF sont des algorithmes optimaux avec
priorités dynamiques
 RMS : des nombreux résultats existent et sont
largement utilisés en pratique.
 EDF offre des utilisations de processeur
supérieures, donc une meilleure
ordonnançabilité, mais il est plus difficile à
implémenter et instable en cas de surcharge
IUT Blagnac Introduction aux systèmes temps réel 41
Exercice
5
20
C
20
35
B
9
75
A
Ct
Pt
Tâche  est-ce ordonnançable par RMS ?
 quel temps de réponse pour
chaque tâche ?
 si A avait besoin de plus de
temps CPU, jusque où peut-elle
s’étendre en FPPS ?
 jusque où A peut-elle s’étendre
en EDF ?
IUT Blagnac Introduction aux systèmes temps réel 42
Retour au modèle basique
 on suppose un temps de changement de
contexte zéro
 Toutes les tâches sont périodiques
 les tâches sont indépendantes
(pas de communication/synchronisation)
IUT Blagnac Introduction aux systèmes temps réel 43
Compter le temps de changement de
contexte
le pire cas:
Si S est le temps de changement de contexte,
il faut compter l’utilisation du CPU par T ainsi:
T
T
T
T
p
S
p
c
U
2
+
=
IUT Blagnac Introduction aux systèmes temps réel 44
Retour au modèle basique
 on suppose un temps de changement de
contexte zéro
 Toutes les tâches sont périodiques
 les tâches sont indépendantes
(pas de communication/synchronisation)
IUT Blagnac Introduction aux systèmes temps réel 45
Tâches sporadiques
 respectent un temps minimum entre arrivées P
 ont en général une échéance D  P
⇒ on peut les intégrer par exemple en utilisant DMS
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
IUT Blagnac Introduction aux systèmes temps réel 46
Tâches apériodiques
 pas de temps minimum entre arrivées
Solution 1: priorité minimale
 on ordonne les tâches périodiques selon DMS
 on affecte aux tâches apériodiques une priorité plus
petite que celle de toutes les tâches périodiques
⇒ schéma sûr pour les tâches périodiques – n’affecte pas
leur ordonnançabilité
Mais : ne garantit rien pour les échéances des tâches
apériodiques
IUT Blagnac Introduction aux systèmes temps réel 47
Tâches apériodiques
Solution 2: tâches serveur
 on alloue une tâche serveur avec:
 une période Ps
 une capacité de calcul Cs
 une priorité π - en général la plus haute
 Ps et Cs sont choisies de façon à ce que les tâches
périodiques restent ordonnançables
( ⇒ analyse de temps de réponse )
 à l’arrivée d’une tâche asynchrone:
 s’exécute immédiatement ou selon π, si la capacité restante est
suffisante
 le temps d’exécution est déduit de la capacité
(ne doit pas dépasser la capacité)
 la capacité se régénère à chaque période Ps
IUT Blagnac Introduction aux systèmes temps réel 48
Serveurs : discussion
 le CPU est disponible immédiatement pour les
tâches asynchrones – si capacité suffisante
 en absence de tâches asynchrones
 le CPU est dédié aux tâches périodiques
 la capacité reste disponible le plus possible
 les serveurs protègent aussi contre l’arrivée
trop fréquente des tâches sporadiques
IUT Blagnac Introduction aux systèmes temps réel 49
Retour au modèle basique
 on suppose un temps de changement de
contexte zéro
 Toutes les tâches sont périodiques
 les tâches sont indépendantes
(pas de communication/synchronisation)
IUT Blagnac Introduction aux systèmes temps réel 50
Interactions et blocage
 on considère les interactions par ressources
protégées (e.g., moniteurs, protection par
sémaphores, etc.)
⇒ une tâche peut être suspendue en attente d’une
action par une autre tâche
 anomalie : si A  B et A est bloqué par une
ressource détenue par B. B s’exécute pendant
que A attend. (inversion de priorité)
IUT Blagnac Introduction aux systèmes temps réel 51
Exemple
A  B  C, ressource partagée R
A
B
C
block R
wait R
release R
block R
échéance
ratée
IUT Blagnac Introduction aux systèmes temps réel 52
Un exemple réel
La mission Mars Pathfinder, 4 Juillet 1997
 système ordonnancé par RMS, sur VxWorks
 inversion selon le modèle précédent entre:
 T1 tâche du bus
 T2 tâche de communication sol
 T3 tâche de recueil d’information météorologiques
 R = le bus (mutex)
 corrigé à distance en activant PCP
IUT Blagnac Introduction aux systèmes temps réel 53
Discussion
A
B
C
block R
wait R
release R
block R
C bloque A:
blocage nécessaire pour
l’intégrité de R
B bloque A:
pas nécessaire
⇒ nécessité de politiques pour minimiser le
temps de blocage et le rendre déterministe
IUT Blagnac Introduction aux systèmes temps réel 54
Priority inheritance protocol
Quand une tâche TH est bloquée en attente d’une ressource
utilisée par une tâche TL , alors TL hérite temporairement la
priorité de TH.
Quand TL libère la ressource, elle reprend sa priorité normale.
A
B
C
block R
wait R
release R
block R
C passe à
priorité 3
L’héritage doit être transitif: si C devient bloqué par D pendant
qu’il bloque A, D hérite la priorité de A !
IUT Blagnac Introduction aux systèmes temps réel 55
Calcul du temps de blocage
 avec PIP, une tâche peut subir un blocage alors qu’elle
n’utilise pas de ressource partagée :
A
B
C
block R
wait R
release R
B est bloqué alors qu’un processus
de moindre priorité s’exécute (C)
 Soit :
util(k,i) =
si la ressource k peut être utilisée
1, par une tâche i
et par une tâche ≥ i
0, sinon
IUT Blagnac Introduction aux systèmes temps réel 56
Calcul du temps de blocage
On suppose que pour toute ressource k, le temps
de calcul entre acquisition et libération est C(k)
(quelque soit la tâche qui)
 e.g., k est une opération de moniteur et C(k) est
son WCET
Le temps de blocage maximum pour une tâche
de priorité i est:
∑
∈
=
K
k
i k
C
i
k
util
B )
(
)
,
(
IUT Blagnac Introduction aux systèmes temps réel 57
Critère basé sur l’utilisation
On peut adapter le critère suffisant basé sur
l’utilisation du CPU pour prendre en compte le
temps de blocage Bi, en augmentant l’occupation
du processeur de Bi/pi
Théorème: Soit T1  T2 … Tn un ensemble de tâches
avec priorités affectées en RMS. L'ensemble est
ordonnançable si
{ } )
1
2
(
...
.
,...,
1 /
1
1
1
2
2
1
1
−
≤
+
+
+
+
+
∈
∀
−
− i
i
i
i
i
i
i
p
B
c
p
c
p
c
p
c
n
i
IUT Blagnac Introduction aux systèmes temps réel 58
Analyse du temps de réponse
i
i
i
i I
B
C
R +
+
=
∑
 







+
+
=
i
j
j
j
i
i
i
i C
P
R
B
C
R
i
i
i B
C
w +
=
0
∑
 







+
+
=
i
j
j
j
i
i
i
i C
P
w
B
C
w
0
1 …
IUT Blagnac Introduction aux systèmes temps réel 59
Exercice
5
20
C
20
35
B
9
75
A
Ct
Pt
Tâche
peut utiliser k, C(k)=5
peut aussi utiliser k
 calculer le temps de réponse au pire cas
de chaque tâche
 le système est-il ordonnançable?
IUT Blagnac Introduction aux systèmes temps réel 60
Priority ceiling protocols
 caractéristiques de PIP:
 une tâche peut être bloquée plusieurs fois
 possibilité de blocage transitif
 estimation pessimiste du temps de blocage
⇒ protocoles améliorés (priority ceiling)
assurant que:
 une tâche peut être bloquée une seule fois
 le blocage transitif est évité
 les deadlocks sont évités et l’exclusion mutuelle est
assurée par le protocole même
IUT Blagnac Introduction aux systèmes temps réel 61
Priority ceiling classique
 basé sur le protocole d’héritage de classique (PIP) :
une tâche hérite la priorité d’une tâche plus haute
qu’elle bloque
 PCP rajoute une condition pour l’acquisition des
ressources:
 chaque ressource a un plafond (ceiling) = la priorité de la
plus haute tâche qui peut l’utiliser (calcul statique!)
 une tâche peut acquérir une ressource R ssi:
 R n’est pas déjà détenue par une autre tâche
 la priorité dynamique de la tâche est supérieure au
plafond des toutes les ressources déjà bloquées par
d’autres tâches
IUT Blagnac Introduction aux systèmes temps réel 62
Un exemple
l’ensemble de tâches (sans ordonnancement)
 P(R) = acquisition de R, V(R) = libération de R
P(Q) V(Q)
P(R) V(R)
P(R)
V(Q)
P(Q)
V(R)
d(4)
c(3)
b(2)
a(1)
legende:
exécution sans ressource
exécution avec R acquis
exécution avec Q acquis
exécution avec R et Q
acquis
tâche suspendue
(préemptée)
IUT Blagnac Introduction aux systèmes temps réel 63
Un exemple
P(Q)
P(R) V(R)
P(R) V(Q)
P(Q)
V(R)
4
4
V(Q)
exécution avec PIP :
d(4)
c(3)
b(2)
a(1)
P(Q)
P(R) V(R)
P(R) V(Q)
P(Q)
V(R)
V(Q)
exécution avec PCP :
d(4)
c(3)
b(2)
a(1) 3 4
temps de
réponse de d
en PCP
temps de
réponse de d
en PIP
IUT Blagnac Introduction aux systèmes temps réel 64
Temps de blocage
au lieu de
)
(
)
,
( k
C
i
k
util
MAX
B
K
k
i
∈
=
∑
∈
=
K
k
i k
C
i
k
util
B )
(
)
,
(
 un seul blocage par exécution d’une tâche
IUT Blagnac Introduction aux systèmes temps réel 65
Éviter les deadlocks
tâches (sans
ordonnancement) : P(Q) V(Q)
V(R)
b(2)
a(1)
P(R) P(Q) V(Q) V(R)
P(R)
en PIP :
(ou sans protocole) P(Q)
2
b(2)
a(1)
P(R) P(Q)
P(R)
P(R)
en PCP :
P(Q)
b(2)
a(1)
P(R) P(Q)
2 2
2
V(Q)
V(R)
V(Q) V(R)
IUT Blagnac Introduction aux systèmes temps réel 66
Une variante: PCP immédiat
Définition : chaque fois qu’une tâche acquière
une ressource, la priorité de la tâche est levée au
niveau plafond de la ressource.
 l’acquisition de R se fait comme d’habitude, sans condition
supplémentaire sur la priorité de la tâche
IUT Blagnac Introduction aux systèmes temps réel 67
Exemple
P(Q)
P(R) V(R)
P(R) V(Q)
P(Q)
V(R)
V(Q)
exécution avec PCP :
d(4)
c(3)
b(2)
a(1) 3 4
P(Q)
P(R) V(R)
P(R)
V(Q)
4
P(Q)
V(R)
4
V(Q)
exécution avec
PCP immédiat :
d(4)
c(3)
b(2)
a(1)
IUT Blagnac Introduction aux systèmes temps réel 68
PCP classique vs. PCP immédiat
 même temps de blocage au pire cas:
 PCP immédiat plus facile à implémenter
(pas d’héritage de priorité, pas de test de priorité au
moment de l’acquisition)
 le blocage survient toujours 1 fois, au début de
l’exécution de la tâche
⇒ moins de changements de contexte
 plus de changements de priorité dans PCP immédiat
que dans PCP classique
(à chaque acquisition de ressource, pas uniquement en cas
de blocage)
 PCP immédiat implémenté en POSIX, RT Java, …
)
(
)
,
( k
C
i
k
util
MAX
B
K
k
i
∈
=
IUT Blagnac Introduction aux systèmes temps réel 69
Ordonnancement : résumé
 une politique d’ordonnancement est caractérisée par
 un algorithme pour allouer la ressource partagée (p.e.
CPU)
 une technique pour prédire le comportement au pire cas
de la politique
 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
IUT Blagnac Introduction aux systèmes temps réel 70
Ordonnancement : resume
 politiques à base de priorités fixes
 affectation optimale des priorités : RMS, DMS
 critère suffisant d’ordonnançabilité simple
 analyse de temps de réponse (critère nécessaire et
suffisant) flexible, peut prendre en calcul
 processus sporadiques
 temps de blocage causé par la synchronisation
 temps de changement de contexte
 etc.
 implémentées en POSIX, Ada, RT Java, …
 politiques à base de priorités dynamiques
 politiques optimales en mono-processeur: EDF, LLF
 meilleure occupation du processeur
 critère nécessaire et suffisant simple quand D ≤ P
 implémentation plus complexe, instabilité en cas de
surcharge,…
IUT Blagnac Introduction aux systèmes temps réel 71
Aller plus loin
 en priorités fixes, l’analyse de temps de réponse peut
être étendue pour couvrir:
 imprécision du moment d’arrivée des tâches (jitter)
 échéances arbitraires, en particulier D  P
 déphasage des tâches périodiques
 …
 ordonnancement avec plusieurs niveaux de criticité
 ordonnancement en milieu multi-processur
 EDF, RMS ne sont plus optimaux
 anomalie du multiprocesseur : une tâche qui finit plus
vite que prévu peut faire déborder une autre !!
IUT Blagnac Introduction aux systèmes temps réel 72
STR : conclusions
 systèmes dont la correction est définie par les résultats
et aussi par les moments où ces résultats doivent être
disponibles (échéances)
 haute criticité ⇒ besoins stricts de correction, sûreté
de fonctionnement, prédictibilité
 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
IUT Blagnac Introduction aux systèmes temps réel 73
STR : aller plus loin
Techniques employées (pas couvertes dans le cours)
 architectures matérielles prédictibles;
estimation du pire temps d’exécution (WCET)
 méthodes et langages d’analyse
 formalisation des besoins et des propriétés du système
 méthodes et langages de conception
 langages dédiés: langages à base de flots de données,
langages à base d’automates ou commandes gardées,
langages synchrones / asynchrones,…
 techniques de validation et certification
 vérification formelle
 sélection de cas de test
 génération automatique de tests
 …

Contenu connexe

Tendances

47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnesTRIKI BILEL
 
2 signaux et systèmes slideshare
2 signaux et systèmes slideshare2 signaux et systèmes slideshare
2 signaux et systèmes slideshareKheddioui
 
21.la gestion de la production
21.la gestion de la production21.la gestion de la production
21.la gestion de la productionOULAAJEB YOUSSEF
 
Lafarge. cimenterie
Lafarge. cimenterieLafarge. cimenterie
Lafarge. cimenterieSami Sahli
 
Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires sarah Benmerzouk
 
Compte rendu tp automatique 1
Compte rendu tp automatique 1Compte rendu tp automatique 1
Compte rendu tp automatique 1hamdinho
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: MatriceInforMatica34
 
Rapport se stage LEONI BSK
Rapport se stage LEONI BSKRapport se stage LEONI BSK
Rapport se stage LEONI BSKChàimaà Mhjr
 
Chap9 : Systèmes non linéaires
Chap9 : Systèmes non linéairesChap9 : Systèmes non linéaires
Chap9 : Systèmes non linéairesMohammed TAMALI
 
Correction devoirdecontrolen3transmissiondemouvement2at2012
Correction devoirdecontrolen3transmissiondemouvement2at2012Correction devoirdecontrolen3transmissiondemouvement2at2012
Correction devoirdecontrolen3transmissiondemouvement2at2012Majda El Aouni
 
Gestion de la maintenance
Gestion de la maintenanceGestion de la maintenance
Gestion de la maintenanceKhadija Kannoun
 
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...Ayoub Minen
 
Cours gestion de la production Pr Falloul
Cours gestion de la production Pr FalloulCours gestion de la production Pr Falloul
Cours gestion de la production Pr FalloulProfesseur Falloul
 
cours mainteanance et fiabilité (CHAP. 1).pdf
cours mainteanance et fiabilité (CHAP. 1).pdfcours mainteanance et fiabilité (CHAP. 1).pdf
cours mainteanance et fiabilité (CHAP. 1).pdfAyoubHadjou
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011sunprass
 
Gestion De Production Implantation
Gestion De Production ImplantationGestion De Production Implantation
Gestion De Production Implantationcharkaoui abdelkabir
 
Cours de recherche operationnelle I s6
Cours de recherche operationnelle I s6Cours de recherche operationnelle I s6
Cours de recherche operationnelle I s6Jamal Yasser
 
Chp iii technologies des capteurs
Chp iii technologies des capteursChp iii technologies des capteurs
Chp iii technologies des capteursMedGuer
 
Etude critique et amélioration de la gestion de la performance du service mai...
Etude critique et amélioration de la gestion de la performance du service mai...Etude critique et amélioration de la gestion de la performance du service mai...
Etude critique et amélioration de la gestion de la performance du service mai...darckdaxter
 

Tendances (20)

47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes
 
2 signaux et systèmes slideshare
2 signaux et systèmes slideshare2 signaux et systèmes slideshare
2 signaux et systèmes slideshare
 
21.la gestion de la production
21.la gestion de la production21.la gestion de la production
21.la gestion de la production
 
Lafarge. cimenterie
Lafarge. cimenterieLafarge. cimenterie
Lafarge. cimenterie
 
Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires Chapitre 1 Représentation d'état des systèmes linéaires
Chapitre 1 Représentation d'état des systèmes linéaires
 
Compte rendu tp automatique 1
Compte rendu tp automatique 1Compte rendu tp automatique 1
Compte rendu tp automatique 1
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: Matrice
 
Rapport se stage LEONI BSK
Rapport se stage LEONI BSKRapport se stage LEONI BSK
Rapport se stage LEONI BSK
 
Chap9 : Systèmes non linéaires
Chap9 : Systèmes non linéairesChap9 : Systèmes non linéaires
Chap9 : Systèmes non linéaires
 
Correction devoirdecontrolen3transmissiondemouvement2at2012
Correction devoirdecontrolen3transmissiondemouvement2at2012Correction devoirdecontrolen3transmissiondemouvement2at2012
Correction devoirdecontrolen3transmissiondemouvement2at2012
 
Gestion de la maintenance
Gestion de la maintenanceGestion de la maintenance
Gestion de la maintenance
 
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
 
Cours gestion de la production Pr Falloul
Cours gestion de la production Pr FalloulCours gestion de la production Pr Falloul
Cours gestion de la production Pr Falloul
 
cours mainteanance et fiabilité (CHAP. 1).pdf
cours mainteanance et fiabilité (CHAP. 1).pdfcours mainteanance et fiabilité (CHAP. 1).pdf
cours mainteanance et fiabilité (CHAP. 1).pdf
 
124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011124776153 td-automatique-1 a-jmd-2011
124776153 td-automatique-1 a-jmd-2011
 
Gestion De Production Implantation
Gestion De Production ImplantationGestion De Production Implantation
Gestion De Production Implantation
 
Cours de recherche operationnelle I s6
Cours de recherche operationnelle I s6Cours de recherche operationnelle I s6
Cours de recherche operationnelle I s6
 
Automatisme cours-1
Automatisme cours-1Automatisme cours-1
Automatisme cours-1
 
Chp iii technologies des capteurs
Chp iii technologies des capteursChp iii technologies des capteurs
Chp iii technologies des capteurs
 
Etude critique et amélioration de la gestion de la performance du service mai...
Etude critique et amélioration de la gestion de la performance du service mai...Etude critique et amélioration de la gestion de la performance du service mai...
Etude critique et amélioration de la gestion de la performance du service mai...
 

Similaire à STR-2.pdf

Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURIMansouri Khalifa
 
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variableMayssa Rjaibia
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreelyoussef essakhi
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfMbarkiIsraa
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processusSelman Dridi
 
Planification et_ordonnancement-2
 Planification et_ordonnancement-2 Planification et_ordonnancement-2
Planification et_ordonnancement-2mahdi hajji
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Christian Charreyre
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdfMbarkiIsraa
 
Chapitre 1 -Echantillonnage d’un signal.pdf
Chapitre 1 -Echantillonnage d’un signal.pdfChapitre 1 -Echantillonnage d’un signal.pdf
Chapitre 1 -Echantillonnage d’un signal.pdfNourouzeri
 
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSProgrammation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSECAM Brussels Engineering School
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfSoumayaMabrouk2
 
1 introduction générale à l'automatique slideshare
1 introduction générale à l'automatique slideshare1 introduction générale à l'automatique slideshare
1 introduction générale à l'automatique slideshareKheddioui
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationAlexandru Radovici
 

Similaire à STR-2.pdf (20)

Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
 
Chap06 1
Chap06 1Chap06 1
Chap06 1
 
Gpao 6 - Ordonnancement
Gpao 6 - OrdonnancementGpao 6 - Ordonnancement
Gpao 6 - Ordonnancement
 
Ordonnancement
OrdonnancementOrdonnancement
Ordonnancement
 
ex6_solution.pdf
ex6_solution.pdfex6_solution.pdf
ex6_solution.pdf
 
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
17281795 commande-d-une-machine-a-courant-continu-a-vitesse-variable
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreel
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
 
Msr05 Control
Msr05 ControlMsr05 Control
Msr05 Control
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processus
 
Planification et_ordonnancement-2
 Planification et_ordonnancement-2 Planification et_ordonnancement-2
Planification et_ordonnancement-2
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdf
 
Chapitre 1 -Echantillonnage d’un signal.pdf
Chapitre 1 -Echantillonnage d’un signal.pdfChapitre 1 -Echantillonnage d’un signal.pdf
Chapitre 1 -Echantillonnage d’un signal.pdf
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSSProgrammation de systèmes embarqués : Systèmes temps réel et PRUSS
Programmation de systèmes embarqués : Systèmes temps réel et PRUSS
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
 
1 introduction générale à l'automatique slideshare
1 introduction générale à l'automatique slideshare1 introduction générale à l'automatique slideshare
1 introduction générale à l'automatique slideshare
 
Feuilletage(2).pdf
Feuilletage(2).pdfFeuilletage(2).pdf
Feuilletage(2).pdf
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
 

STR-2.pdf

  • 2. IUT Blagnac Introduction aux systèmes temps réel 2 Prédictibilité temporelle des STR Prédictibilité = assurer a priori que toutes les tâches respectent leurs échéances Les 2 piliers sont: l'analyse de pire temps d'execution (WCET – Worst Case Execution Time) problèmes: liés au programme (structure dynamique – boucles, branches…; appels externes – OS, MW…) liés au matériel (cache, pipeline, exécution prédictive…) méthodes: analyse statique de programmes, interprétation abstraite, analyse dynamique, hybride… l'ordonnancement des tâches
  • 3. IUT Blagnac Introduction aux systèmes temps réel 3 Ordonnancement (rappel) Politique d’ordonnancement : politique d’allocation des tranches de temps processeur ( i.e., les moments où une tâche est livrée au processeur / suspendue ) Objectif de l’ordonnancement : assurer le respect des échéances de manière prouvable Une méthode d’ordonnancement est caractérisée par: la méthode effective de construction de l’emploi du temps (schedule) du processeur (online ou offline) le critère de test d’ordonnançabilité (offline) – prédiction du comportement « au pire cas »
  • 4. IUT Blagnac Introduction aux systèmes temps réel 4 Types de tâches Tâches périodiques Déclanchées par le temps. Caractéristiques connues à l’avance. Ti est caractérisée par: - pi – période d’arrivée - ci – temps de calcul au pire cas (WCET) - di – échéance relative à l’arrivée Exemple : Guidage-Navigation-Contrôle (GNC) dans un AOCS (ex. Ariane-5) 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)
  • 5. IUT Blagnac Introduction aux systèmes temps réel 5 Un modèle basique Le système consiste d’un ensemble fixé de tâches Toutes les tâches sont périodiques les tâches sont indépendantes (pas de communication/synchronisation) on suppose un temps de changement de contexte zéro
  • 6. IUT Blagnac Introduction aux systèmes temps réel 6 Ordonnancement cyclique Conception concurrente, mais implantation séquentielle cyclique Les tâches sont mappées sur un ensemble de procédures Exemple: 6 50 D 4 50 C 8 25 B 10 25 A Ct Pt Tâche 10 8 4 25 10 8 6 50 cycle mineur cycle majeur
  • 7. IUT Blagnac Introduction aux systèmes temps réel 7 Implémentation ⇒ interruption horloge: période = cycle mineur while(true) { A(); B(); C(); attendre interruption; A(); B(); D(); attendre interruption; }
  • 8. IUT Blagnac Introduction aux systèmes temps réel 8 Discussion pour: pas de processus à l’exécution espace mémoire partagé pas besoin de protection de régions critiques – accès concurrent impossible exécution complètement déterministe contre: impossible d’introduire des activités sporadiques cycles « longs » difficiles à gérer nécessité de découper des calculs longs sur plusieurs cycles mineurs ⇒ erreurs emploi de temps difficile à obtenir (NP-hard)
  • 9. IUT Blagnac Introduction aux systèmes temps réel 9 Ordonnancement préemptif ou non Ordonnancement non-préemptif quand une tâche commence, elle va jusqu’au bout … mais des fois c’est impossible de tenir les délais: 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 2 1000 Dt 1 10 B 25 1000 A Ct Pt Tâche Chaque fois que A exécute, B va rater 2 fois son échéance
  • 10. IUT Blagnac Introduction aux systèmes temps réel 10 Ordonnancement préemptif à priorité fixe (FPPS) l’approche la plus utilisée dans les systèmes réels chaque tâche a une priorité fixe, statique, calculée off-line. (Toutes les instances de la tâche ont la même priorité.) à tout moment, la tâche la plus prioritaire a le CPU changements de contexte: - préemption : quand une tâche arrive, si elle est plus prioritaire que la tâche en cours - quand la tâche en cours se termine (→ idle)
  • 11. IUT Blagnac Introduction aux systèmes temps réel 11 Comment affecter les priorités Exemple : la centrale nucléaire la moins chère au monde(*) - tâche 1 : barres de contrôle (cœur du réacteur) - tâche 2 : vanne du lave-vaisselle (cafeteria) (*) thanks to D.C. Locke for this example 0.02 1 T2 1 4 T1 Ct Pt Tâche T1 T2 1 !! 2 3 4 !!
  • 12. IUT Blagnac Introduction aux systèmes temps réel 12 Comment affecter les priorités Exemple : la centrale nucléaire la moins chère au monde(*) - tâche 1 : barres de contrôle (cœur du réacteur) - tâche 2 : vanne du lave-vaisselle (cafeteria) (*) thanks to D.C. Locke for this example 0.02 1 T2 1 4 T1 Ct Pt Tâche T2 T1 1 2 3 4
  • 13. IUT Blagnac Introduction aux systèmes temps réel 13 Comment affecter les priorités Exemple : la centrale nucléaire la moins chère au monde(*) - tâche 1 : barres de contrôle (cœur du réacteur) - tâche 2 : vanne du lave-vaisselle (cafeteria) (*) thanks to D.C. Locke for this example 0.02 1 T2 1 4 T1 Ct Pt Tâche Conclusion: La priorité n’est pas basée sur l’importance, mais uniquement sur les contraintes temporelles !
  • 14. IUT Blagnac Introduction aux systèmes temps réel 14 Notion d’ordonnanceur optimal Définition: Un algorithme d’ordonnancement est appelé optimal (pour une classe de problèmes*) quand il produit un emploi du temps processeur faisable chaque fois qu’un autre algorithme d’ordonnancement peut le faire. * classe de problèmes: par exemple, ensemble de tâches cycliques sans interactions, avec FPPS
  • 15. IUT Blagnac Introduction aux systèmes temps réel 15 Ordonnancement « Rate Monotonic » (RMS) Résultat : Il existe une politique optimale avec priorités statiques, c’est RMS : affecter les priorités aux tâches dans l’ordre de leur périodes: les tâches avec des périodes plus courtes sont plus prioritaires.
  • 16. IUT Blagnac Introduction aux systèmes temps réel 16 Exemple 7 50 C 6 20 B 5 10 A Ct Pt Tâche A B C 5 5 10 5 20 30 40 50 1 4 5 5 5 1 3 5 5
  • 17. IUT Blagnac Introduction aux systèmes temps réel 17 Ordonnançabilité ? ε 5 5 Ct ε/20 0.33 0.5 Occup. CPU 20 C 15 B 10 A Pt Tâche A B C 5 5 10 5 20 30 Exemple : ensemble de tâches qui n'est pas ordonnanceable avec occupation du processeur 100% (~ 83.4%) 5 !!
  • 18. IUT Blagnac Introduction aux systèmes temps réel 18 Critère statique d’ordonnançabilité RMS Théorème : Un ensemble de n tâches périodiques indépendantes est ordonnançable par RMS indifféremment de l’ordre d’arrivée si : ) 1 2 ( 1 1 − ≤ ∑ = n n i i i n p c Utilisation du processeur
  • 19. IUT Blagnac Introduction aux systèmes temps réel 19 Critère statique d’ordonnançabilité RMS ) 1 2 ( 1 1 − ≤ ∑ = n n i i i n p c la condition est restrictive: U(1) = 1 U(2) ≈ 0.828 U(3) ≈ 0.779 U(4) ≈ 0.756 U(5) ≈ 0.743 U(6) ≈ 0.734 pour n → ∞ , U → ln 2 ≈ 69% U(n)
  • 20. IUT Blagnac Introduction aux systèmes temps réel 20 Application du critère 6 20 B 5 10 A Ct Pt Tâche UA = CA / PA = 0.5 UB = CB / PB = 0.3 U = UA + UB = 0.8 U(2) l’ensemble est ordonnançable ⇒
  • 21. IUT Blagnac Introduction aux systèmes temps réel 21 Application du critère 7 50 C 6 20 B 5 10 A Ct Pt Tâche UA = CA / PA = 0.5 UB = CB / PB = 0.3 UC = CC / PC = 0.14 U = UA + UB + UC = 0.94 U(3) ≈ 0.779
  • 22. IUT Blagnac Introduction aux systèmes temps réel 22 Améliorer le critère La condition est suffisante, mais pas nécessaire Il existe un test précis: Théorème: Si un ensemble de n tâches indépendantes avec priorités fixes affectées par RMS respecte la 1ère échéance de chaque tâche quand toutes les tâches sont démarrées en même temps (à T0), alors l’ensemble est toujours ordonnançable. ) 1 2 ( 1 1 − ≤ ∑ = n n i i i n p c
  • 23. IUT Blagnac Introduction aux systèmes temps réel 23 Un cas particulier 10 20 B 5 10 A Ct Pt Tâche UA = CA / PA = 0.5 UB = CB / PB = 0.5 U = UA + UB = 1 pourtant : 5 5 10 5 20 30 40 50 5 OK!
  • 24. IUT Blagnac Introduction aux systèmes temps réel 24 Un cas particulier De manière générale : un ensemble de tâches périodiques harmoniques est ordonnançable si l’utilisation du processeur est ≤ 100% Tâches harmoniques : {T1, T2,…, Tn } avec P1≤ P2≤… ≤ Pn et ∀i,j, ij → Pi | Pj 10 20 B 5 10 A Ct Pt Tâche UA = CA / PA = 0.5 UB = CB / PB = 0.5 U = UA + UB = 1
  • 25. IUT Blagnac Introduction aux systèmes temps réel 25 Application à l’exemple 7 50 C 6 20 B 5 10 A Ct Pt Tâche A B C 5 5 10 5 20 30 40 50 1 4 5 5 5 1 3 A ok B ok C ok
  • 26. IUT Blagnac Introduction aux systèmes temps réel 26 Rendre le critère algorithmique Pour chaque tâche i nous allons calculer le temps de réponse Ri et le comparer a l’échéance Di (cela fonctionne aussi pour Di≠Pi) Ri = Ci + Ii où Ii est le temps pendant lequel la tâche i est suspendue par des tâches plus prioritaires.
  • 27. IUT Blagnac Introduction aux systèmes temps réel 27 Calcul de Ri Durant Ri, une tâche j i est activée fois Chaque activation prend Cj temps ⇒ l’interférence par la tâche j est : ⇒ l’interférence totale Ii est         j i P R j j i C P R         ∑         = i j j j i i C P R I
  • 28. IUT Blagnac Introduction aux systèmes temps réel 28 Calcul de Ri L’équation qui caractérise Ri est donc: ⇒ Ri est le plus petit point fixe de la fonction monotone ∑         + = i j j j i i i C P R C R ∑         + = i j j j i C P X C X F ) (
  • 29. IUT Blagnac Introduction aux systèmes temps réel 29 Calcul de Ri On peut le calculer par itération: W0=Ci W1=F(W0) W2=F(W1) … Wk+1=F(Wk) on arrête quand Wk=Wk+1 Ri=Wk
  • 30. IUT Blagnac Introduction aux systèmes temps réel 30 L’algorithme w = 0; next_w = Ci; while(w != next_w next_w = Di) { w = next_w; next_w = F(w); } if(next_w = Di) « La tâche Ti est ordonnançable » else « La tâche Ti n’est pas est ordonnançable »
  • 31. IUT Blagnac Introduction aux systèmes temps réel 31 Analyse du temps de réponse: exemple 5 20 C 3 12 B 3 7 A Ct Pt Tâche 6 3 7 3 3 1 =       + = B W 3 = A R 3 0 = B W 6 3 7 6 3 2 =       + = B W 6 = B R 5 0 = C W 11 3 12 5 3 7 5 5 1 =       +       + = C W 14 3 12 11 3 7 11 5 2 =       +       + = C W 17 3 12 14 3 7 14 5 3 =       +       + = C W C C W W 5 4 20 3 12 17 3 7 17 5 = =       +       + = 20 = C R
  • 32. IUT Blagnac Introduction aux systèmes temps réel 32 Exercice 5 20 C 20 35 B 9 75 A Ct Pt Tâche est-ce ordonnançable par RMS ? quel temps de réponse pour chaque tâche ? si A avait besoin de plus de temps CPU, jusque où peut-elle s’étendre en FPPS ? jusque où A peut-elle s’étendre en EDF ?
  • 33. IUT Blagnac Introduction aux systèmes temps réel 33 DMS : généralisation de RMS [cas où di ≤ pi] Les tâches avec des échéances (relatives) plus courtes sont plus prioritaires Critère basé sur l’utilisation CPU : ) 1 2 ( 1 1 − ≤ ∑ = n n i i i n d c suffisant mais pas nécessaire: il existe des ensembles ordonnançables avec !! critère nécessaire et suffisant: analyse du temps de réponse (la même qu’en RMS) algorithme optimal en priorités statiques 1 1 ∑ = n i i i d c
  • 34. IUT Blagnac Introduction aux systèmes temps réel 34 RMS DMS : résumé algorithmes optimaux pour affecter les priorités statique en FPPS critère suffisant basé sur le taux d’occupation du processeur critère nécessaire et suffisant basé sur l’analyse du temps de réponse
  • 35. IUT Blagnac Introduction aux systèmes temps réel 35 Exercice 50 12 50 B 5 10 20 Ct 15 25 D 12 35 C 100 100 A Dt Pt Tâche quelle politique utiliser? quel ordre de priorité ? est-ce ordonnanceable? Soit le système comportant 4 tâches avec le caractéristiques suivantes :
  • 36. IUT Blagnac Introduction aux systèmes temps réel 36 Earliest Deadline First (EDF) Objectif : obtenir une meilleure occupation du processeur. Politique EDF (définition) : à tout moment, la tâche qui a l’échéance la plus proche occupe le CPU. Remarques: toutes les instances d’une tâche n’ont pas la même priorité -- priorité dynamique la priorité d’une tâche reste fixe par rapport aux priorités des tâches qui sont déjà admises à exécution quand elle arrive préemption : quand une tâche arrive, si elle a l’échéance plus proche que la tâche en cours
  • 37. IUT Blagnac Introduction aux systèmes temps réel 37 Une variante de EDF : LLF variante : LLF (Least Laxity First) Laxité d’une tâche Ti = Di – (t + ci’) où: Di – deadline absolut t – temps courant ci’ – temps de calcul restant t Di ci ci’ laxité EDF LLF sont des algorithmes optimaux d’affectation on-line de priorités pour FPPS
  • 38. IUT Blagnac Introduction aux systèmes temps réel 38 Critères d’ordonnançabilité EDF [si di = pi] Condition nécessaire et suffisante: un ensemble de n tâches est ordonnanceable par EDF ou LLF si l’utilisation du processeur est inférieure à 100% 1 1 ≤ ∑ = n i i i p c difficile de faire mieux ! (sans déborder) [si di pi] Condition suffisante mais pas nécessaire: analyse du temps de réponse plus difficile qu’en RMS 1 1 ≤ ∑ = n i i i d c
  • 39. IUT Blagnac Introduction aux systèmes temps réel 39 2 Comparaison RMS - EDF 4 7 B 2 5 A Ct Pt Tâche EDF 2 5 4 2 4 2 1 2 10 15 20 3 2 4 2 25 RMS 5 10 15 20 25 2 3 7 !!! Ordonnançable avec EDF, pas avec RMS !
  • 40. IUT Blagnac Introduction aux systèmes temps réel 40 Comparaison RMS - EDF RMS/DMS sont des algorithmes optimaux avec priorités statiques EDF/LLF sont des algorithmes optimaux avec priorités dynamiques RMS : des nombreux résultats existent et sont largement utilisés en pratique. EDF offre des utilisations de processeur supérieures, donc une meilleure ordonnançabilité, mais il est plus difficile à implémenter et instable en cas de surcharge
  • 41. IUT Blagnac Introduction aux systèmes temps réel 41 Exercice 5 20 C 20 35 B 9 75 A Ct Pt Tâche est-ce ordonnançable par RMS ? quel temps de réponse pour chaque tâche ? si A avait besoin de plus de temps CPU, jusque où peut-elle s’étendre en FPPS ? jusque où A peut-elle s’étendre en EDF ?
  • 42. IUT Blagnac Introduction aux systèmes temps réel 42 Retour au modèle basique on suppose un temps de changement de contexte zéro Toutes les tâches sont périodiques les tâches sont indépendantes (pas de communication/synchronisation)
  • 43. IUT Blagnac Introduction aux systèmes temps réel 43 Compter le temps de changement de contexte le pire cas: Si S est le temps de changement de contexte, il faut compter l’utilisation du CPU par T ainsi: T T T T p S p c U 2 + =
  • 44. IUT Blagnac Introduction aux systèmes temps réel 44 Retour au modèle basique on suppose un temps de changement de contexte zéro Toutes les tâches sont périodiques les tâches sont indépendantes (pas de communication/synchronisation)
  • 45. IUT Blagnac Introduction aux systèmes temps réel 45 Tâches sporadiques respectent un temps minimum entre arrivées P ont en général une échéance D P ⇒ on peut les intégrer par exemple en utilisant DMS 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
  • 46. IUT Blagnac Introduction aux systèmes temps réel 46 Tâches apériodiques pas de temps minimum entre arrivées Solution 1: priorité minimale on ordonne les tâches périodiques selon DMS on affecte aux tâches apériodiques une priorité plus petite que celle de toutes les tâches périodiques ⇒ schéma sûr pour les tâches périodiques – n’affecte pas leur ordonnançabilité Mais : ne garantit rien pour les échéances des tâches apériodiques
  • 47. IUT Blagnac Introduction aux systèmes temps réel 47 Tâches apériodiques Solution 2: tâches serveur on alloue une tâche serveur avec: une période Ps une capacité de calcul Cs une priorité π - en général la plus haute Ps et Cs sont choisies de façon à ce que les tâches périodiques restent ordonnançables ( ⇒ analyse de temps de réponse ) à l’arrivée d’une tâche asynchrone: s’exécute immédiatement ou selon π, si la capacité restante est suffisante le temps d’exécution est déduit de la capacité (ne doit pas dépasser la capacité) la capacité se régénère à chaque période Ps
  • 48. IUT Blagnac Introduction aux systèmes temps réel 48 Serveurs : discussion le CPU est disponible immédiatement pour les tâches asynchrones – si capacité suffisante en absence de tâches asynchrones le CPU est dédié aux tâches périodiques la capacité reste disponible le plus possible les serveurs protègent aussi contre l’arrivée trop fréquente des tâches sporadiques
  • 49. IUT Blagnac Introduction aux systèmes temps réel 49 Retour au modèle basique on suppose un temps de changement de contexte zéro Toutes les tâches sont périodiques les tâches sont indépendantes (pas de communication/synchronisation)
  • 50. IUT Blagnac Introduction aux systèmes temps réel 50 Interactions et blocage on considère les interactions par ressources protégées (e.g., moniteurs, protection par sémaphores, etc.) ⇒ une tâche peut être suspendue en attente d’une action par une autre tâche anomalie : si A B et A est bloqué par une ressource détenue par B. B s’exécute pendant que A attend. (inversion de priorité)
  • 51. IUT Blagnac Introduction aux systèmes temps réel 51 Exemple A B C, ressource partagée R A B C block R wait R release R block R échéance ratée
  • 52. IUT Blagnac Introduction aux systèmes temps réel 52 Un exemple réel La mission Mars Pathfinder, 4 Juillet 1997 système ordonnancé par RMS, sur VxWorks inversion selon le modèle précédent entre: T1 tâche du bus T2 tâche de communication sol T3 tâche de recueil d’information météorologiques R = le bus (mutex) corrigé à distance en activant PCP
  • 53. IUT Blagnac Introduction aux systèmes temps réel 53 Discussion A B C block R wait R release R block R C bloque A: blocage nécessaire pour l’intégrité de R B bloque A: pas nécessaire ⇒ nécessité de politiques pour minimiser le temps de blocage et le rendre déterministe
  • 54. IUT Blagnac Introduction aux systèmes temps réel 54 Priority inheritance protocol Quand une tâche TH est bloquée en attente d’une ressource utilisée par une tâche TL , alors TL hérite temporairement la priorité de TH. Quand TL libère la ressource, elle reprend sa priorité normale. A B C block R wait R release R block R C passe à priorité 3 L’héritage doit être transitif: si C devient bloqué par D pendant qu’il bloque A, D hérite la priorité de A !
  • 55. IUT Blagnac Introduction aux systèmes temps réel 55 Calcul du temps de blocage avec PIP, une tâche peut subir un blocage alors qu’elle n’utilise pas de ressource partagée : A B C block R wait R release R B est bloqué alors qu’un processus de moindre priorité s’exécute (C) Soit : util(k,i) = si la ressource k peut être utilisée 1, par une tâche i et par une tâche ≥ i 0, sinon
  • 56. IUT Blagnac Introduction aux systèmes temps réel 56 Calcul du temps de blocage On suppose que pour toute ressource k, le temps de calcul entre acquisition et libération est C(k) (quelque soit la tâche qui) e.g., k est une opération de moniteur et C(k) est son WCET Le temps de blocage maximum pour une tâche de priorité i est: ∑ ∈ = K k i k C i k util B ) ( ) , (
  • 57. IUT Blagnac Introduction aux systèmes temps réel 57 Critère basé sur l’utilisation On peut adapter le critère suffisant basé sur l’utilisation du CPU pour prendre en compte le temps de blocage Bi, en augmentant l’occupation du processeur de Bi/pi Théorème: Soit T1 T2 … Tn un ensemble de tâches avec priorités affectées en RMS. L'ensemble est ordonnançable si { } ) 1 2 ( ... . ,..., 1 / 1 1 1 2 2 1 1 − ≤ + + + + + ∈ ∀ − − i i i i i i i p B c p c p c p c n i
  • 58. IUT Blagnac Introduction aux systèmes temps réel 58 Analyse du temps de réponse i i i i I B C R + + = ∑         + + = i j j j i i i i C P R B C R i i i B C w + = 0 ∑         + + = i j j j i i i i C P w B C w 0 1 …
  • 59. IUT Blagnac Introduction aux systèmes temps réel 59 Exercice 5 20 C 20 35 B 9 75 A Ct Pt Tâche peut utiliser k, C(k)=5 peut aussi utiliser k calculer le temps de réponse au pire cas de chaque tâche le système est-il ordonnançable?
  • 60. IUT Blagnac Introduction aux systèmes temps réel 60 Priority ceiling protocols caractéristiques de PIP: une tâche peut être bloquée plusieurs fois possibilité de blocage transitif estimation pessimiste du temps de blocage ⇒ protocoles améliorés (priority ceiling) assurant que: une tâche peut être bloquée une seule fois le blocage transitif est évité les deadlocks sont évités et l’exclusion mutuelle est assurée par le protocole même
  • 61. IUT Blagnac Introduction aux systèmes temps réel 61 Priority ceiling classique basé sur le protocole d’héritage de classique (PIP) : une tâche hérite la priorité d’une tâche plus haute qu’elle bloque PCP rajoute une condition pour l’acquisition des ressources: chaque ressource a un plafond (ceiling) = la priorité de la plus haute tâche qui peut l’utiliser (calcul statique!) une tâche peut acquérir une ressource R ssi: R n’est pas déjà détenue par une autre tâche la priorité dynamique de la tâche est supérieure au plafond des toutes les ressources déjà bloquées par d’autres tâches
  • 62. IUT Blagnac Introduction aux systèmes temps réel 62 Un exemple l’ensemble de tâches (sans ordonnancement) P(R) = acquisition de R, V(R) = libération de R P(Q) V(Q) P(R) V(R) P(R) V(Q) P(Q) V(R) d(4) c(3) b(2) a(1) legende: exécution sans ressource exécution avec R acquis exécution avec Q acquis exécution avec R et Q acquis tâche suspendue (préemptée)
  • 63. IUT Blagnac Introduction aux systèmes temps réel 63 Un exemple P(Q) P(R) V(R) P(R) V(Q) P(Q) V(R) 4 4 V(Q) exécution avec PIP : d(4) c(3) b(2) a(1) P(Q) P(R) V(R) P(R) V(Q) P(Q) V(R) V(Q) exécution avec PCP : d(4) c(3) b(2) a(1) 3 4 temps de réponse de d en PCP temps de réponse de d en PIP
  • 64. IUT Blagnac Introduction aux systèmes temps réel 64 Temps de blocage au lieu de ) ( ) , ( k C i k util MAX B K k i ∈ = ∑ ∈ = K k i k C i k util B ) ( ) , ( un seul blocage par exécution d’une tâche
  • 65. IUT Blagnac Introduction aux systèmes temps réel 65 Éviter les deadlocks tâches (sans ordonnancement) : P(Q) V(Q) V(R) b(2) a(1) P(R) P(Q) V(Q) V(R) P(R) en PIP : (ou sans protocole) P(Q) 2 b(2) a(1) P(R) P(Q) P(R) P(R) en PCP : P(Q) b(2) a(1) P(R) P(Q) 2 2 2 V(Q) V(R) V(Q) V(R)
  • 66. IUT Blagnac Introduction aux systèmes temps réel 66 Une variante: PCP immédiat Définition : chaque fois qu’une tâche acquière une ressource, la priorité de la tâche est levée au niveau plafond de la ressource. l’acquisition de R se fait comme d’habitude, sans condition supplémentaire sur la priorité de la tâche
  • 67. IUT Blagnac Introduction aux systèmes temps réel 67 Exemple P(Q) P(R) V(R) P(R) V(Q) P(Q) V(R) V(Q) exécution avec PCP : d(4) c(3) b(2) a(1) 3 4 P(Q) P(R) V(R) P(R) V(Q) 4 P(Q) V(R) 4 V(Q) exécution avec PCP immédiat : d(4) c(3) b(2) a(1)
  • 68. IUT Blagnac Introduction aux systèmes temps réel 68 PCP classique vs. PCP immédiat même temps de blocage au pire cas: PCP immédiat plus facile à implémenter (pas d’héritage de priorité, pas de test de priorité au moment de l’acquisition) le blocage survient toujours 1 fois, au début de l’exécution de la tâche ⇒ moins de changements de contexte plus de changements de priorité dans PCP immédiat que dans PCP classique (à chaque acquisition de ressource, pas uniquement en cas de blocage) PCP immédiat implémenté en POSIX, RT Java, … ) ( ) , ( k C i k util MAX B K k i ∈ =
  • 69. IUT Blagnac Introduction aux systèmes temps réel 69 Ordonnancement : résumé une politique d’ordonnancement est caractérisée par un algorithme pour allouer la ressource partagée (p.e. CPU) une technique pour prédire le comportement au pire cas de la politique 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
  • 70. IUT Blagnac Introduction aux systèmes temps réel 70 Ordonnancement : resume politiques à base de priorités fixes affectation optimale des priorités : RMS, DMS critère suffisant d’ordonnançabilité simple analyse de temps de réponse (critère nécessaire et suffisant) flexible, peut prendre en calcul processus sporadiques temps de blocage causé par la synchronisation temps de changement de contexte etc. implémentées en POSIX, Ada, RT Java, … politiques à base de priorités dynamiques politiques optimales en mono-processeur: EDF, LLF meilleure occupation du processeur critère nécessaire et suffisant simple quand D ≤ P implémentation plus complexe, instabilité en cas de surcharge,…
  • 71. IUT Blagnac Introduction aux systèmes temps réel 71 Aller plus loin en priorités fixes, l’analyse de temps de réponse peut être étendue pour couvrir: imprécision du moment d’arrivée des tâches (jitter) échéances arbitraires, en particulier D P déphasage des tâches périodiques … ordonnancement avec plusieurs niveaux de criticité ordonnancement en milieu multi-processur EDF, RMS ne sont plus optimaux anomalie du multiprocesseur : une tâche qui finit plus vite que prévu peut faire déborder une autre !!
  • 72. IUT Blagnac Introduction aux systèmes temps réel 72 STR : conclusions systèmes dont la correction est définie par les résultats et aussi par les moments où ces résultats doivent être disponibles (échéances) haute criticité ⇒ besoins stricts de correction, sûreté de fonctionnement, prédictibilité 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
  • 73. IUT Blagnac Introduction aux systèmes temps réel 73 STR : aller plus loin Techniques employées (pas couvertes dans le cours) architectures matérielles prédictibles; estimation du pire temps d’exécution (WCET) méthodes et langages d’analyse formalisation des besoins et des propriétés du système méthodes et langages de conception langages dédiés: langages à base de flots de données, langages à base d’automates ou commandes gardées, langages synchrones / asynchrones,… techniques de validation et certification vérification formelle sélection de cas de test génération automatique de tests …