Académique Documents
Professionnel Documents
Culture Documents
PIM-INF4 et IN4R21
Présentation des problématiques temps réel par l’exemple.
Ordonnancement Temps Réel
partie ordonnancement : 7h de cours (ce document)
partie Java et Java Temps Réel : 6h de cours
Damien MASSON je vais essayer de mélanger les deux
http://esiee.fr/~massond/Teaching/IN4R21
évaluation : compte-rendu de TP et examen
http://esiee.fr/~massond/Teaching/PIM-INF4
Ce document est un guide, il ne contient pas de façon exhaustive
tout ce que je vais vous raconter (et que vous devez savoir) ! !
Dernière modification: 27 septembre 2011
2/62
Références Concurrence
Depuis pas mal de temps les OS sont multi tâches, même sur des
architectures mono processeur. Comment est-ce possible ? Grâce
Hard real-time computing systems : predictable scheduling aux processus !
algorithms and applications, Giorgio C. Buttazzo, Springer,
2005 - 425 pages
(http://books.google.com/books/about/Hard_real_
time_computing_systems.html?id=fpJAZM6FK2sC)
Cours de Serge Midonnet :
http://igm.univ-mlv.fr/~midonnet/Polyamid/
JavaTempsReel/Cours/CoursJTR.pdf
Cours de Nicolas Pernet :
http://esiee.fr/~massond/Teaching/PIM-INF4/np.pdf
Ma thèse, partie I :
http://esiee.fr/~massond/Research/thesis/
Internet
3/62 4/62
Temps réel Ordonnancement
Temps réel : différent de rapide, plutôt synonyme de prévisible, ou
”garantissable”.
algorithme d’ordonnancement : c’est l’algorithme utilisé pour
décider quelle tâche doit s’exécuter
Plusieurs niveaux de contraintes :
STR à contraintes strictes (temps réel dur) : le non respect ordonnancement : c’est le résultat de l’algorithme
des contraintes temporelles peut conduire à des catastrophes d’ordonnancement
(avionique) ordonnanceur : c’est la tâche chargée d’appliquer l’algorithme
STR à contraintes relatives (temps réel souple) : le non d’ordonnancement
respect de contraintes temporelles est toléré, sans
conséquence catastrophique (multimédia) Deux familles : préemptif, non préemptif
STR à contraintes mixtes Deux méthodes : hors ligne ou en ligne
Exemple
Le standard DO-178B développé aux USA pour l’avionique définit On s’intéresse dans ce cours aux algorithmes préemptifs en ligne.
5 niveaux de conséquence en cas de faute répartis entre
Safety Critical : l’échec conduit à des pertes humaines
5/62 6/62
Mission Critical : Systèmes de navigation, Système d’affichage
Temps réel : garantie des contraintes. Quelles contraintes ? Coût Ci Période Ti Échéance Di
τ1 3 6 6
Le modèle le plus étudié (vient du contrôle) : les systèmes de
tâches périodiques. τ2 3 12 6
τ3 3 12 12
Une tâche périodique τi est définit par :
date de première activation (release) : ri Round Robin Priorités fixes
pire temps d’exécution (WCET) : Ci
période : Ti τ1 1 2 3 1 2 3 τ1 1 2 3 1 2 3
échéance relative : Di
échéance absolue de l’instance k : di,k τ2 1 2 3 τ2 1 2 3
convention : majuscules pour les durées, minuscules pour les
dates 1 2 3 1 2 3
τ3 τ3
... (Modèle extensible)
0 5 10 0 5 10
7/62 8/62
Ordonnancement temps-réel en ligne préemptif Les principaux algorithmes
(Mono Processeur)
Rate Monotonic (RM) : priorité à la plus petite période
Les instances des tâches (job) sont classées par priorité. À chaque Deadline Monotonic (DM) : priorité à la plus petite échéance
instant, l’ordonnanceur attribue le processeur à la tâche la plus relative
prioritaire. EDF : priorité à l’échéance absolue la plus proche
LLF : priorité à la laxité la plus petite
priorités fixes : les priorités des tâches sont fonction d’une
constante (période, échéance, importance...) ;
Laxité
priorités dynamiques : les priorités sont fonction d’une variable
(prochaine échéance, laxité, ...).
Li (t) = Di (t) − Ci∗ (t)
Exercice RM
11/62 12/62
DM EDF
τ1 0000
1111 00
11 00 11 000
111 11
00 τ1 0000
1111 00
11 000
111 000
111 111
000
τ2 111
000 111 0000
000 1111 111
000 111
000 τ2 111
000 111
000 111 000
000 111 111
000
00
11 1010 10 10 000
111 00
11 00
11 10 11 00
τ3 00
11 1010 10 10 000
111 τ3 00
11 00
11 10 1100
0 5 10 15 20 25 30 0 5 10 15 20 25 30
13/62 14/62
LLF Ordonnançabilité
6= Faisabilité
τ1 0000
1111 00
11 00
11 111
0100 01 00
11 Ordonnançabilité : Soit un jeu de tâches et un algorithme
d’ordonnancement, l’ordonnançement produit respecte-t-il
111
000 111 0000
000 1111 111
000 111
000
toutes les contraintes ?
τ2
00
11 00
11 10 00
11 Plusieurs approches selon la criticité du système étudié et les
τ3 00
11 00
11 10 00
11 moyens disponibles :
0 5 10 15 20 25 30 condition suffisante mais pas nécessaire pour un contrôle
d’admission en ligne,
détection de fautes ou de surcharge,
vérification exacte à l’aide de la théorie de l’analyse de
faisabilité/ordonnançabilité.
15/62 16/62
Étude de la charge Étude de l’ordonnançabilité d’un système à échéances sur
requêtes
n (priorités fixes)
X Ci
Charge processeur : U =
Ti 1
i=1
on l’a vu, U ≤ n(2 n − 1) est une condition suffisante
d’ordonnançabilité, et U > 1 est une condition suffisante
l’étude de la charge peut permettre de conclure sur la faisabilité (évidente ?) de non ordonnançabilité
et/ou l’ordonnançabilité dans certains cas : 1
cas 1 > U > n(2 n − 1) ?
1
U ≤ n(2 − 1) est une condition suffisante d’ordonnançabilité
n étude de la demande : on cherche un instant inférieur à
pour un système à échéances sur requêtes ordonnancé en l’échéance où la demande cumulée est plus faible que le temps
priorités fixes. Attention, ce n’est pas une condition nécessaire. écoulé
étude du pire temps de réponse : le pire temps de réponse
U ≤ 1 est une condition nécessaire et suffisante pour un est-il plus petit que l’échéance ?
système à échéances sur requêtes ordonnancé en EDF. temps de réponse d’une instance Rij : temps entre la requête
et la fin du traitement
Malheureusement, lorsque Di ≤ Ti , ou pire lorsqu’on autorise pire temps de réponse d’une tâche (WCRTi ) : maximum des
temps de réponse de chaque instance
Di > Ti (tâches dites ré-entrantes), les choses se compliquent !
17/62 18/62
Étude de la demande DM
Un système où les tâches réentrantes sont interdites (∀i, Di ≤ Ti )
est ordonnançable en priorités fixes ssi il existe un instant t dans
l’intervalle ]0, Di] tel que t = wi (t)
avec wi (t) =
X t
Ck
τ1 0000
1111 00
11 00 11 000
111 11
00
Tk
k≤i
algorithme récursif : calcul de t1 = wi (0), puis t2 = wi (t1 ), ...,
τ2 111
000 111 0000
000 1111 111
000 111
000
00
11 1010 10 10 000
111
tn = wi (tn−1 )
on s’arrête si l’on dépasse l’échéance ou si l’on trouve t tel
τ3 00
11 1010 10 10 000
111
0 5 10 15 20 25 30
que t = wi (t).
t 8 13 15
Exercice w3 (t) 13 15 18
étudiez la demande au niveau 2 de l’exemple RM précédant
étudiez la demande au niveau 2 de l’exemple DM précédant
étudiez la demande au niveau 3 de l’exemple RM précédant
la demande au niveau 3 avec DM est-elle différente ? 19/62 20/62
Limites Calcul de temps de réponse
calculez la busy period de niveau 2 (bp2 ) de l’exemple on se limite aux activations de la busy period (je vous épargne
précédant la formule pour la calculer !)
calculez Qi le nombre d’activations de τ2 durant bp2
calculez les Qi premiers temps de réponse de τ2
conclure 23/62 24/62
Quelques métriques et remarques sur DM vs EDF Autres modèles de tâches
25/62 26/62
29/62 30/62
une tâche s’exécute alors qu’une tâche plus prioritaire est bloquée D D R R
une première tâche attend un verrou possédé par une autre tâche
qui attend un verrou possedé par la première τ2
τ1
Blocage
33/62 34/62
D D R R
τ1
Blocage
35/62 36/62
Priority Ceiling Emulation (PCE) Priority Ceiling Protocol (PCP)
D R D R
37/62 38/62
D D R R DJ DJ DB DR RB RR DB RB RJ RJ
τ1 τ1
τ2 τ2
τ3 τ3
Execution en section critique, ressource bleue Execution en section critique, ressource rouge Blocage
39/62 40/62
Chaı̂ne de blocage (Pas de) Chaı̂ne de blocage
PIP PCE
DB DJ DB RB RB DJ RJ RJ DB RB DJ RJ DB RB DJ RJ
τ1 τ1
τ2 τ2
τ3 τ3
Execution en section critique, ressource bleue Blocage Execution en section critique, ressource bleue Blocage
Execution en section critique, ressource jaune Execution normale Execution en section critique, ressource jaune Execution normale
41/62 42/62
DB DJ RB DB RJ RB DJ RJ
DJ DB DJ DB
τ1
τ1
τ2
τ2
τ3
Execution en section critique, ressource bleue Blocage
43/62 44/62
(Pas d’)Interblocage (Pas d’)Interblocage
PCE PCP
DJ DB RB RJ DB DJ RJ RB DJ DB DB RB RJ DJ RJ RB
τ1 τ1
τ2 τ2
Execution en section critique, ressource bleue Blocage Execution en section critique, ressource bleue Blocage
Execution en section critique, ressource jaune Execution normale Execution en section critique, ressource jaune Execution normale
45/62 46/62
DB DJ DB DJ RB RB RJ RJ
Ordonnancement mixte périodique / apériodique
τ1 1 garantir le respect des échéances des tâches composant le
trafic périodique
2 minimiser le temps de réponse des tâches composant le trafic
τ2 apériodique
47/62 48/62
Traitement en tâche de fond (BS) BS
0110 00
11
00 11
00
00 11
reserver une plage de priorité faible pour les apériodiques
00 1010 0110 11
00
τ1 11 11 00
11 00
11
très simple à mettre en œuvre
000
111 11
00 00
11 101011
00
garantie qu’elles ne gênent jamais les périodiques τ2 000
111 00
11 00
11 00
11
BS 11000
00111 00000
11111 000
111
ne répond qu’à 1) ! rien pour les temps de réponse des 0 5 10 15 20 25 30
apériodiques
49/62 50/62
Ou serveur à scrutation
Serveurs de tâches
ressources reservées Il s’agit d’une tâche périodique et il s’analyse comme telle.
influence maximale sur les autres tâches identifiée PS = {(rs , Cs , Ts )}
éventuellement : PS = {(rs , Cs , Ts , Ps )}
Délégation du traitement des apériodiques à une tâche particulière
qui dispose : les apériodiques sont ajoutées dans une file d’attente lors de
leur activation,
d’un budget
lorsque le serveur obtient le processeur, il exécute les tâches
d’une politique de renouvellement de ce budget
de la file dans la limite de sa capacité,
la capacité revient au maximum périodiquement,
si la file est vide alors que le serveur a la main, la capacité
De nombreux algorithmes possibles : PS, DS, SS, PE, EPE...
tombe à zéro.
51/62 52/62
Polling Server (PS) Deferrable Server (DS)
53/62 54/62
1
0000
111 0
1
00
11 0
1 0
1
0
1 0
1 0
1 0
1
4ut 6ut
1
0 0 11
1 00 0 11
1 00 01 11
00
τ1 0
1
000
111
000
111
0 11
1 00
00
11
00
11
0 11
1
000
111
000
111
00
1011
10 11
00
1011
00
00
0111
1
DS000 11
00
0 1
1 0000
11100
11
0
1
0
1 0
1 0
1 0
1
τ2
DS 1111 000
0000 111 111
000 0011
00
11
0
1 0
10
1000
111 0
1 00
110
1
Time
00
11
0 1
1 01
0111
000 1
0 11001
0
overflow
0 5 10 15 20 25 30
τ1
55/62 56/62
DS : Analyse d’ordonnançabilité Vol de temps creux
57/62 58/62
Définitions
Si (t) : travail supplémentaire possible aux niveaux ≥ i jusqu’à
la prochaine échéance de τi Calcul des Si (t)
St = min Si (t) complexité en temps polynomiale
3ut principe : calculer la durée de la prochaine période d’inactivité
3ut
puis celle de la prochaine période d’activité etc. jusqu’à la
000
111 prochaine échéance
τ1
1 2
τ1
111
000 τ2 111
000
0 2 4
3ut
6 8 10 12 14 16 18 20 0 2 4 6 8 10 12 14 16 18 20 non implantable
solution : utiliser une approximation pessimiste
0110 0110 1
0 000
111
SS
0
1 111
000
τ1 1010 1010 0
1
0
1
1010 1010 0
1 111
000
τ2 0
1
59/62 60/62
Principe Pour aller plus loin
X
Si (t) ≥ di (t) − t − Iji (t, di (t))
j≤i
0
O(n) Ordonnancement temps réel multiprocesseur,
Modèle d’arrivée des tâche plus complexes : gigues
Si (t) n’augmente que si τi termine une instance d’activation...
entre deux instants, Si diminue du temps passé à exécuter des Modèle de contraintes plus complexes : modèle (m,k)firm ...
tâches moins prioritaires Tolérance aux fautes temporelles, détection de surcharges, ...
61/62 62/62