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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

3 / 33

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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)

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

11 / 33

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

le taux dutilisation du processeur

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


n+

lim

n 2n 1

= ln(2) 0, 6931

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

14 / 33

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 ordonnanable la limite thorique dutilisation du 1 processeur est de 2(2 2 1) soit moins de 83%

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

18 / 33

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 / 33

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

La longueur des sections critiques aecte le temps de rponse du systme.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

25 / 33

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 / 33

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

28 / 33

Rendez-vous en threads Posix

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

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

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

Cest beaucoup plus simple lorsque le langage prvoit la synchronisation directement.

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

32 / 33

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 les de messages entre les direntes tches

Samuel Tardieu (ENST)

Systmes temps-rel embarqus

33 / 33

Vous aimerez peut-être aussi