Académique Documents
Professionnel Documents
Culture Documents
13 Tempsreel
13 Tempsreel
1 / 33
Problmatique
Certains problmes sont trs lis au temps : un distributeur de billets ne doit pas mettre 5 minutes dlivrer les billets une balance ne doit pas peser en 30 secondes un radar ne doit pas mettre 2 secondes ragir un systme de freinage ABS ne doit pas mettre plus de 150ms pour acqurir linformation et 1s pour ragir
2 / 33
Systme temps-rel
Caractristiques : exactitude logique (comme tout systme) : les sorties sont dtermines en fonction des entres et de ltat interne exactitude temporelle : les sorties sont positionnes au bon moment
3 / 33
Temps-rel mou : un retard dans lobtention du rsultat nest pas dramatique (distributeur de billets) Temps-rel dur : un retard dans lobtention du rsultat le rend inutile (dtection de missile) Temps-rel ferme : un retard, sil arrive trs peu souvent, peut tre tolr (tlphonie) La plupart des systmes temps-rel sont hybrides.
4 / 33
Types de contraintes
Prcision : eectuer certaines oprations un moment prcis (horloge dont laiguille avance toutes les secondes) Temps de rponse : eectuer certaines oprations en un temps maximum (systme de freinage ABS) ou avec un temps moyen x (distributeur de billets) Rendement : nombre de requtes traites par unit de temps (robot de production dans une usine)
5 / 33
Architecture mono-tche
Un systme temps-rel une seule tche est simple dnir. Il sut de rpeter indniment la suite de tches :
Attendre un stimulus Agir en fonction du stimulus
6 / 33
Architecture multi-tches
Plusieurs problmes se posent lorsque plusieurs tches sexcutent simultanment : accs au processeur accs concurrent la mmoire accs aux priphriques Il faut prvoir un ordonnancement permettant au systme de remplir son rle.
7 / 33
Priorits
Les priorits permettent dorganiser les tches Elles peuvent tre statiques ou dynamiques Dans un systme temps-rel, en gnral
une tche nest jamais bloque par une tche de moindre priorit (inversion de priorit) une tche ne cde la main une tche de mme priorit que volontairement (prix du changement de contexte)
Le systme Unix nest pas temps-rel la base Microsoft Windows nest pas temps-rel
8 / 33
Ordonnancement
On peut prvoir le comportement dun systme si on connat certaines caractristiques des tches : loi darrive temps de traitement Methodes : algorithmes statiques : table dexcution ou analyse rate monotonic algorithmes dynamiques (HPF, EDF, LLF, best eort)
9 / 33
Table dexcution
Avantages : lordre dexcution des tches est connu laccs aux ressources est centralis Inconvnients : les vnements entrants ne peuvent pas tre traits rapidement les caractristiques du systme doivent toutes tre connues lavance
10 / 33
Rate monotonic
Mthode : traitement de tches priodiques des priorits statiques sont aectes aux direntes tches (utilisation de HPF, Highest Priority First) ces priorits doivent garantir la possibilit dordonnancer le systme Inconvnients : le rythme darrive des tches et leur temps dexcution doivent tre bien dnis
11 / 33
les tches ayant les plus courtes priodes doivent tre les plus prioritaires si un ensemble de tches ne peut pas tre ordonnanc en utilisant lalgorithme RMA, aucun algorithme bas sur des priorits statiques ne permettra de satisfaire les contraintes
12 / 33
Utilisation du CPU
Soient : Ci le temps dexcution de la tche i Ti la priode de la tche i Di lchance (Di = Ti ) Ui = Ci /Ti le taux dutilisation du processeur pour la tche i U=
n i =1 Ui
1
lim
n 2n 1
= ln(2) 0, 6931
13 / 33
Zone critique
Thorme de la zone critique Si lensemble des tches respectent leur premire chance, alors toutes les tches respecteront leurs chances futures.
14 / 33
RMA : exemples
15 / 33
RMA : optimisation
Si, dans un systme de tches priodiques, chaque priode est un multiple entier des priodes de dure infrieure, il est possible dutiliser le processeur 100%.
16 / 33
EDF
Earliest Deadline First le travail dont le rsultat est ncessaire le plus rapidement est excut dabord Inconvnients : une chance manque provoque une avalanche de retards dchances
17 / 33
LLF
Least Laxity First le travail qui il reste le moins de marge sexcute dabord Inconvnients : il faut estimer le temps ncessaire pour chaque travail
18 / 33
Smaphore et verrou
19 / 33
V (S)
Dans tous les cas, incrmenter Sn Si St nest pas vide, dbloquer la premire tche de la liste et la retirer de la liste V (S) nest jamais une opration bloquante
20 / 33
Remarques
Sn a un double rle
lorsque Sn 0, il reprsente le nombre de ressources libres lorsque Sn < 0, il reprsente le nombre dentres dans la le dattente (Sn = |St |)
Un verrou est un smaphore initialis avec S n = 1 Le smaphore doit protger ses propres structures contre laccs concurrent : il utiliser une instruction test-and-set fournie par le processeur et gre par le matriel
21 / 33
Accs concurrent
Une ressource peut tre protge par une ou plusieurs sections critiques utilisant un mme verrou. Dans la section critique, une tche :
peut accder librement la ressource peut modier librement la ressource ne doit pas attendre une autre ressource
22 / 33
Rservation de ressource
Les sections critiques ne susent pas : une ressource peut tre bloque pendant longtemps (rseau) une tche de haute priorit peut avoir besoin dune ressource bloque Il y a des risques de blocage : une tche de haute priorit peut tre bloque par une tche de plus basse priorit.
23 / 33
Hritage de priorit
Pour viter les inversions de priorit, on peut utiliser lhritage de priorit : une tche T1 a pris une ressource R une tche T2 plus prioritaire souhaite prendre la ressource R on augmente temporairement la priorit de la tche T 1 la priorit de la tche T2 pour quelle libre plus vite la ressource R
24 / 33
Plafonnement de priorit
Il est possible dviter les inversions de priorit en aectant un plafond aux ressources. Une tche ne peut pas prendre une ressource dont le plafond (calcul a priori) est plus important que la priorit de la tche. Si une tche veut prendre une ressource R, elle doit attendre que le plafond de toutes les ressources bloques soient moins important que sa propre priorit (ou gal).
25 / 33
Le rendez-vous est construit grce une variable conditionnelle, un compteur et un verrou La bote lettres peut tre protge par un verrou
26 / 33
Variable conditionnelle
27 / 33
Le rendez-vous
On souhaite amener deux tches (au moins) un endroit donn On souhaite les laisser bloques jusqu ce que toutes soient arrives au rendez-vous On construit un compteur avec le nombre de tches, protg par un verrou. Chaque tche qui arrive :
prend le smaphore dcrmente le compteur broadcast la variable conditionnelle si le compteur est nul et relche le smaphore, ou se met en attente sur la variable conditionnelle sinon avant de relcher le smaphore, tout le monde rincrmente le compteur
28 / 33
int n = 2; /* Nombre de t^^e2ches */ pthread_cond_t *cond; pthread_mutex_t *verrou; void rendez_vous () { pthread_mutex_lock (verrou); n = n - 1; if (n == 0) pthread_cond_broadcast (cond); else pthread_cond_wait (cond, verrou); n = n + 1; pthread_mutex_unlock (verrou); }
30 / 33
Rendez-vous en Ada
Tche A
accept RendezVous (I : in out Integer) do I := I + 1; end RendezVous;
Tche B
A.RendezVous (V);
32 / 33
33 / 33