Vous êtes sur la page 1sur 31

Systmes temps-rel embarqus

Brique ROSE
Samuel Tardieu
sam@rfc1149.net
cole Nationale Suprieure des Tlcommunications

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

1 / 31

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

3 / 31

Les types de temps-rel

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.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

4 / 31

Types de contraintes

Prcision : effectuer certaines oprations un moment prcis


(horloge dont laiguille avance toutes les secondes)
Temps de rponse : effectuer certaines oprations en un temps
maximum (systme de freinage ABS) ou avec un temps moyen fix
(distributeur de billets)
Rendement : nombre de requtes traites par unit de temps (robot
de production dans une usine)

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

5 / 31

Architecture mono-tche

Un systme temps-rel une seule tche est simple dfinir. Il suffit


de rpeter indfiniment la suite de tches :
Attendre un stimulus
Agir en fonction du stimulus

Le dimensionnement du processeur dpend du temps de rponse


souhait.
Exemples :
Un distributeur automatique
Une carte puce

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

6 / 31

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.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

7 / 31

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

8 / 31

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 effort)

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

11 / 31

Rate monotonic Analysis (RMA)

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Si U n 2 n 1 alors le systme est ordonnanable. On peut noter que




lim n 2 n 1 = log 2 0, 6931

n+

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

13 / 31

Zone critique

Thorme de la zone critique


Si lensemble des tches respectent leur premire chance, alors toutes les
tches respecteront leurs chances futures.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Si T1 = 50ms, C1 = 25ms, T2 = 75ms, C2 = 30ms :


U1 = 50%
U2 = 40%
U = U1 + U2 = 90%
Systme non ncessairement ordonnanable la limite thorique
1
dutilisation du processeur est de 2(2 2 1) soit moins de 83%

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

15 / 31

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%.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

16 / 31

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

17 / 31

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

18 / 31

Smaphore et verrou

Un smaphore S est compos de :


Un compteur Sn , initialis lors de la cration du smaphore
Une liste de tches en attente sur ce smaphore St , initialement vide

Les oprations sont :


P(S) : prise du smaphore (demande dune ressource)
V (S) : relchement du smaphore (libration dune ressource)

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

19 / 31

Oprations sur un smaphore

Lorsquune tche T opre sur un smaphore,


P(S)
Dans tous les cas, dcrmenter Sn
Si Sn < 0, ajouter T en queue de St et bloquer la tche T
P(S) est une opration potentiellement bloquante, cest un cas de
contention (plus de candidats que de ressources)

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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 |)

Un verrou est un smaphore initialis avec Sn = 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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

21 / 31

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 modifier librement la ressource
ne doit pas attendre une autre ressource

La longueur des sections critiques affecte le temps de rponse du


systme.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

22 / 31

Rservation de ressource

Les sections critiques ne suffisent 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.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

23 / 31

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 T1 la priorit de
la tche T2 pour quelle libre plus vite la ressource R

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

24 / 31

Plafonnement de priorit

Il est possible dviter les inversions de priorit en affectant 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).

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

25 / 31

Synchronisation des tches

Les tches communiquent


par rendez-vous (Ada)
par bote lettres (Erlang, Marvin, Esterel)
par des mcanismes bancales (C/C++ et threads posix, Java)

Le rendez-vous est construit grce une variable conditionnelle, un


compteur et un verrou
La bote lettres peut tre protge par un verrou

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

26 / 31

Variable conditionnelle

Prenons une variable conditionnelle C et un verrou S


Oprations :
wait (C , S) (S doit tre pris auparavant) bloque la tche courante sur
la variable conditionnelle C tout en relchant S de manire atomique.
Quand la tche sera dbloque, elle aura de nouveau acquis S.
signal (C ) dbloque une tche en attente sur la variable conditionnelle
C
broadcast (C ) dbloque toutes les tches en attente sur la variable
conditionnelle C (une par une, cause du smaphore S qui doit tre
racquis)

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

27 / 31

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

28 / 31

Rendez-vous en threads Posix

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);
}

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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);

Cest beaucoup plus simple lorsque le langage prvoit la


synchronisation directement.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

30 / 31

Le temps-rel dans Linux

Le noyau Linux nest pas temps-rel


Les extensions temps-rel
utilisent les services du noyau pour les portions non critiques
(chargement dun module sur le disque)
nutilisent pas les services du noyau pour les portions critiques
considrent le noyau comme une tche de plus basse priorit
utilisent des files de messages entre les diffrentes tches

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

31 / 31

Vous aimerez peut-être aussi