Académique Documents
Professionnel Documents
Culture Documents
13 Tempsreel PDF
13 Tempsreel PDF
Brique ROSE
Samuel Tardieu
sam@rfc1149.net
cole Nationale Suprieure des Tlcommunications
1 / 31
Problmatique
2 / 31
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 / 31
4 / 31
Types de contraintes
5 / 31
Architecture mono-tche
6 / 31
Architecture multi-tches
7 / 31
Priorits
8 / 31
Ordonnancement
9 / 31
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 / 31
Rate monotonic
Mthode :
traitement de tches priodiques
des priorits statiques sont affectes aux diffrentes 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 dfinis
11 / 31
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 / 31
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=
Pn
Ui le taux dutilisation du processeur
i=1
1
n+
13 / 31
Zone critique
14 / 31
RMA : exemples
On dispose dun systme deux tches
Si T1 = 50ms, C1 = 25ms, T2 = 100ms, C2 = 40ms :
U1 = 50%
U2 = 40%
U = U1 + U2 = 90%
Ordonnanable si la tche 1 est plus prioritaire que la tche 2
15 / 31
RMA : optimisation
16 / 31
EDF
17 / 31
LLF
18 / 31
Smaphore et verrou
19 / 31
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 / 31
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 file dattente
(Sn = |St |)
21 / 31
Accs concurrent
22 / 31
Rservation de ressource
23 / 31
Hritage de priorit
24 / 31
Plafonnement de priorit
25 / 31
26 / 31
Variable conditionnelle
27 / 31
Le rendez-vous
28 / 31
int n = 2;
/* Nombre de tches */
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);
}
29 / 31
Rendez-vous en Ada
Tche A
accept RendezVous (I : in out Integer) do
I := I + 1;
end RendezVous;
Tche B
A.RendezVous (V);
30 / 31
31 / 31