You are on page 1of 16

CHAPITRE 1

SYSTEMES TEMPS REELS

1. INI`RODUCTION-STRUCTURE FONCTIONNELLE DES AUTOMATISMES

Un systme automatis peut se dcomposer en 2 parties qui cooprent :


l. la partie oprative appele galement processus
2. la p a r tie commande ou automatisme
La communication avec un oprateur fait partie intgrante de cette structure. Par exemple,
dans un robot mobile autonome, la partie oprative est le robot et la partie commande est le
calculateur embarqu sur ce robot. Autre exemple, dans un tour commande numrique, la
partie oprative est le tour, et la partie commande est le calculateur (figure 1).
L'automatisme peut se dcomposer en un ensemble de fonctions raliser appeles tches
et une partie contrle ralisant le squencement et l'enchanement des tches en fonctions
d'vnements internes ou externes (figure 2).
L'analyse fonctionnelle d'un systme comprendra une description de la partie commande
sous forme de graphique que (diagrammes de flux de donnes, diagrammes S.A.D.T,
rseaux de Ptri, GRAFCET) et devra mettre en vidence les informations traites par les
tches.
2. CONTRAINTES DE TEMPS DANS UN SYSTEMES DIT TEMPS REEL

Chaque tche de l'automatisme de la figure 2 est excute en rponse des sollicitations


externes ou internes avec des contraintes de temps fixes par l'volution du processus, par
les dialogues avec l'oprateur ou par l'coulement du temps.
Pour chaque vnement Ei, le systme de commande calcule un ensemble de fonctions Fj
dpendant de l'tat Q de la partie commande. La dure t de calcul est fonction des
algorithmes et de la puissance du processeur.
Le processus fixe une chance de temps Te pour chaque calcul. C'est--dire que la
commande qui rsulte de la prise en compte de l'vnement doit tre disponible avant
l'coulement de la dure Te. La prsence de cette chance caractrise les STR.
Suivant la nature des contraintes de temps et la complexit des traitements, diverses
solutions peuvent tre retenues.
On distingue :
1. Les contraintes de temps faible (t trs infrieur Te),
2. Les contraintes de temps faible avec quelques vnements contraignants,
3. Les fortes contraintes de temps (t voisin de Te).
2.1. Contraintes de temps faibles

Ce type de contrainte autorise une programmation en made boucl appele galement


gestiondes Entres Sorties par scrutations. Le programme doit pouvoir scruter en
permanence les entres avec un temps ty < Te (figure 1.3).
Ce mode de programmation est simple mettre en uvre, mais difficile maintenir. Lors
de modifications ou d'ajouts de fonctions, les contraintes de temps peuvent ne plus tre
respectes. Pour viter la rcriture complte du logiciel la seule solution consiste remplacer le
calculateur par un autre plus puissant.

2.2. Contraintes de temps faibles avec quelques vnements contraignants

Si le temps de cycle ne permet pas de satisfaire quelques contraintes, on associe les fonctions
concernes des interruptions. Chaque interruption est lie une ou plusieurs vnements. Le
calculateur sera ainsi synchronis sur ces vnements et excutera les traitements fis aux
interruptions en suspendant le programme en excution (figure 4).

Le traitement d'une interruption allonge le temps de cycle du programme interrompu. L'analyse


des contraintes temporelles doit tre effectue avec soin.

Si Te 0 ,Te 1 , et Te 2 , dsignent les contraintes de temps lies aux dures ty 0 , tyl et Ty2 .
Si le programme n'a qu'une seule interruption (IT 1), de frquence f1 , prendre en compte,
alors pour satisfaire les contraintes de temps, il faut que :
tyl < Te l
ty0 + fl tyl < Te0
Si le programme doit prendre en compte deux interruptions non embotes ITl et IT2 de frquence fl
et f2 , alors les contraintes de temps deviennent :
Ty 0 + f l tyl+ f 2 ty 2 < Te 0
ty 1 < Te 1 p o ur le s v ne me nt s d e l' I T l
ty 2 < Te 2 p o ur le s v ne me nt s d e l' I T 2
Si le mme programme comporte deux interruptions embotes prioritaires ITl et IT2 les
contraintes de temps deviennent pour IT2 plus prioritaire que IT l :
Ty 0 + f l x ty 1 + f 2 x ty 2 < Te 0
S i fl < f2 => ty l + ty 2 f 2 < Te l
s i fl > f2 => ty l + ty 2 ( f l - f 2 ) < Te l
ty 2 < Te 2

2.3. Fortes contraintes de temps

Dans un systme monoprocesseur, les tches sont excutes squentiellement. Si les


contraintes de temps sont fortes, il est possible qu'elles ne puissent pas tre satisfaites par un
seul processeur.
La figure 5 schmatise un pareil cas. Les contraintes de temps des trais tches Tl, T2 et
T3 ne peuvent tre satisfaites. Le problme peut tre rsolu en attribuant un processeur aux
tches T1 et T2 et un autre T3 .

2.4 . DEFINTION D'UN SYSTEMS TEMPS REEL

II n'existe pas de dfinition prcise pour dsigner un systme temps rel Le temps rel est li
la nation de pilotage dan systme soumis des contraintes de temps. On ne peut pas
dsigner de STR un calculateur utilis pour des applications de gestion ou des applications
scientifiques. Les contraintes de temps auxquels sont soumis ces systmes sont gnralement
lies la productivit souhaite.
Un systme ne peut tre class de temps rel que si les contraintes de temps sont d'origines
matrielles (cad technologiques) et non humaine (de type confort dutilisation). Ces
contraintes peuvent tre trs svres lorsquelles sont infrieures la milliseconde, ou trs
larges lorsqu'elles sont de plusieurs minutes voire de plusieurs heures (processus chimiques).
Pour ce dernier, les contraintes de temps sont lies non pas au processus principal, mais aux
dispositifs auxiliaires tels que les systmes de mesures, les scurits, ...

Un systme temps rel remplit son rle lorsqu'il est en mesure de satisfaire toutes les
contraintes de temps auxquels il est soumis.
En conclusion, la dfinition suivante peut tre retenue :
Un systme temps rel pilote un processus comportant des contraintes de temps alatoires et
varies. Ce systmes doit tre dterministe puisqu'il doit savoir avec prcision linstant de
dbut et de fin dun traitement.
Un systme temps rel comporte en gnral des tches soumises de fortes contraintes de
temps, et des tches pouvant tre diffres, tout en tant excutes dans l'intervalle de temps
voulu.
Les tches soumises de fortes contraintes de temps sont lies des interruptions, et sont ''
appeles tches matrielles. Les tches diffres ou tches logicielles sont programmes soit dans
une boucle de scrutation, soit de faon indpendante. Elles sont alors excutes de Faon pseudo-
simultane.
Lorsque la programmation est effectue par une boucle de scrutation, on parle d'un STR
monotche, et dans le cas contraire, on parle d'un STR multitche. Dans tous les cas, art
programme temps rel doit grer l'occupation du processeur en fonction - des chances de temps
lies au processus.
- des ressources disponibles,
- des synchronisations,
- des changes de donnes.
L'aspect dterministe tant le critre le plus important dans art STR, il est important de savoir que
ce critre est rempli par une programmation monotche ou multitche. Cependant, ds que
l'application devient complexe, les STR sont programms suivant le mode multitche en raison
d'une plus grande facilit de conception. Par contre pour des applications simples ou trs forte
contrainte de temps, la programmation est gnralement de type monotche.

Pour ce qui est de la programmation multitche, elle est facilit par des outils logiciels appel:
- systmes d'exploitation temps rel (SETR),
- noyaux ou excutifs ou moniteurs multitches temps rel (NTR).

Les outils ne sont pas quivalents. Un SETR fournit un support logiciel complet, tandis qu'un
excutif temps rel est destin tre utilis soit sans systme d'exploitation, soit en complment
d'un systme d'exploitation. Les tches sont gnralement dans un SETR des programmes
complets et portent de non processus. Tandis que pour un NTR, les tches sont plutt des
procdures d'un mme programme.
On rencontre en gnral les SETR dans les calculateurs devant trier d'importants volumes de
donnes, et les NTR dans les calculateurs embarqus.
Un calculateur multitche temps rel doit comporter au minimum les lments matriels suivants
- un dispositif d'horlogerie lectronique appel horloge temps rel, - un systme d'interruption
priorits,
- des interfaces d'entres/ sorties adaptes aux processus contrler.

Les composants matriels sont grs par un SETR ou par un NTR.


Pour un SETR, les outils disponibles comportent des langages spcialiss (LTR, Ada) ou
gnraux (C, Pascal). Ces langages comprennent alors des instructions particulires permettant de
mettre en uvre les possibilits temps rel.
Pour un NTR, le logiciel peut tre fourni sous la forme d'une mmoire marte placer sur la carte
processeur, ou sous forme d'une bibliothque de fonctions au format utilis par la machine de
dveloppement. Si ces logiciels sont indpendants du matriel, un module configuration doit
tre partiellement par le dveloppeur.
L'utilisation de ces noyaux se fait l'aide de primitives appeles travers des interruptions
logicielles. Du ct de l'application, l'appel des primitives peut tre fait en langage
volu(gnralement le C ou Ada) ou en assembleur avec des performances sensiblement
quivalentes. Afin de minimiser les risques d'erreurs, les appels de primitives effectues en
assembleur sont cods l'aide de macro-instructions.

La figure 5 montre l'agencement d'une application ralise l'aide d'un noyau multitche.

3- Processeurs et calculateurs temps rel


Le processeur idal doit comporter un mcanisme dinterruption autorisant plusieurs niveaux
de proprits, un mcanisme de changement de contexte cbl, associ une unit de gestion
de la mmoire (UGM).
Parmi les p CISC (complex Instruction set computer) les plus rpondus on trouve les p
Intel 80286 (16 bits) 80386 (32 bits), 80486 (32 bits avec NDP niveau de privilges).
Mais aussi des p Motorola 68030 (32 bits) et 68040 (32 bits avec NDP).

Un calculateur temps rel doit tre ouvert de faon pouvoir tre quip des composants
matriels indispensables. La vitesse daccs la mmoire et bande passante des bus sont des
critres au moins aussi importants.
Suivant ces critres un micro ou un mini peut devenir un calculateur TR. Cependant ce type
de machine nest pas conu pour fonctionner dans un environnement et nest pas adapt pour
ce type dapplication.
Lindustrie utilise des versions durcies de ces calculateurs en raison des facilits de mise
en uvre et du membres doutils logiciels disponibles.
La situation est diffrente pour les systmes embarqus. Labsence de vritable standard
incontest fait quil existe une grande diversit de systmes et par consquent une offre
logicielle plus rduite. De plus, ces logiciels sont dune mise en uvre lourde et plus conteuse
les choix doivent tre effectus avec prcaution.
CHAPITRE 2

Introduction aux systmes multitches temps rels

1. Exemple
Prenons les cas dun processeurs de fabrication dans lequel il est indispensable de scruter
intervalles rguliers et rapprochs un grand nombre dentres numriques, si une alarme est
dtecte, un message dat dcrivant lalarme est imprim et le cas chant des premires
mesures sont prises.
Cette application prsente 3 aspects :
1/- les entres doivent tre scrutes intervalles rguliers.
2/- un message doit tre imprim.
3/- lheure et la date doivent tre mises jour.
Une dcomposition en tche donne :
- Une tche de maintien de lheure.
- Une tche de scrutation des entres alarme
- Une tche dimpression se chargerait dimprimer les donnes fournies par la tche de
scrutation.
Si la prcision de la datation de lalarme est la seconde, cette tache doit tre effectu tontes les
secondes.
- Lorsquune alarme est dtele, la tache doit communiquer le message correspondant et
la date dalarme une tache dimpression.
- Si plusieurs alarmes se dclenchent simultanment, il ne peut pas que les plus rcentes
effacent celles qui ne sont pas imprimes.
- Durant limpression, les autres tches doivent videmment tre arrives.
Cet exemple met en vidence les caractristiques les plus courantes dun STR
multitche :
- Plusieurs tches doivent tre excutes priodiquement intervalles diffrents.
- Une tche, ici limpression doit sexcuter avec une faible priorit de faon garantir
les contraintes de temps des autres tches.
- Une tche doit communiquer de linformation une autre tche.
Une excutif multitche temps rel doit offrir au moins les services suivants :
- Maintien de lheure (horloge temps rel).
- Lancement des tches des instants garantis.
- Communication inter-taches avec file de messages.
- Impression non bloquante.
2. Modle des tches dans un systme multitche monoprocesseur
Dfinition : une tche est un programme on une partie de programme en excution.
Conceptuellement chaque tche possde un processeur virtuel comprenant :
- Son pointeur dinstruction (IP).
- sa zone de donnes.
- Son pointeur de pile (SP) (figure 7).
En ralit, le processeur commute de tche en tche sous le contrle dun module particulier
du noyau du systme dexploitation multitche appel Ordonnanceur.
Le programme na plus la matrise de lattribution du processeur une tche cest
lordonnateur qui sen acquitte suivant des rgles fixes lors de la conception du programme.
Comme la programmation monotche toute temporisation base la notion de boucle doit tre
exclue.
Df. : Une tche est un agent actif responsable de lexcution par une machine dun
programme compos partir du rpertoire des instructions de cette machine. Une tche ne
peut prendre lexcution dune instruction de ce programme quaprs avoir termin
lexcution de linstruction prcdente. En ce sens elle est squentielle.
Une tche possde un nom et des attributs caractristiques :
- De la machine sur laquelle elle sexcute :

registres, mot dtat, segment mmoire.


- De la faon dont on la gre:

priorit, descripteur rfrenant toutes les informations ncessaires son excution


(code, contexte, pile, donne,.).
On appelle contexte dexcution dune tche, lensemble des informations strictement
ncessaires un processeur pour en assurer lexcution.
Sur la plupart des machines le contexte dexcution comprend : les registres, les bases adresse
mmoire, le mot dtat.
On appelle contexte mmoire dune tche la zone de mmoire propre cette tche dans
laquelle est rang le contexte dexcution de la tche, lorsquelle nest pas en cours
dexcution.
Tche immdiate :
- une tche immdiate est une tche programme assurant linterface entre lapplication
et son environnement. Exemple E/S, horloge externe
- une tche immdiate est active par un signal apparaissent linterface associe sur les
machines actuelles ce dmarrage est ralis par le mcanisme dinterruption (matriel ou
logiciel).

Tche diffre :

- une tche diffre est une tche dont lactivation est demande par une autre tche.
- Les tches diffres traitent les donnes dlivres soit par les tches immdiates soit
par dautre diffres.
3. Les tats dune tche :
La figure 8 prsente les tats dune tche dans un environnement multitche ainsi que les
principales transitions entre ces tats :
Etat non cre :
Une tche dans un tat non cr est une tche inconnue de lexcutif. Les tches ne sont pas
charges en mmoire et ne possdent pas de zone de code de donne ou de pile. Lunique
transition partir de cet tat et le passage ltat dormant
Etat dormant ou tat cre
Une tche ltat dormant est une tche connue de lexcutif. Un identificateur lui a t
attribu ainsi quune zone de pile.
Les seules transition possibles sont celles vers ltat prt on ltat non cre.
Etat prt :
Une tche ltat prt est candidate au processeur. Son Lancement ne dpend pas de sa
proprit par rapport aux tche en cours dexcution et aux autres tches ltat prt. Lorsque
celle-ci devient prioritaire lOrdonnanceur lui attribue le processeur.
A partir de cet tat une tche ne peut passer que vers ltat excution ou ltat dormant.
Etat en excution :
Une tche en excution est une tche en procession de processeur. Dans un systme
monoprocesseur plusieurs tches de mme priorit peuvent tre en excution mais une seule
tche est en possession du processeur. Une tche entre dans cet tat tant quelle est prioritaire
et quelle ne rencontr pas une condition de blocage.
Etat bloqu ou suspendu :
Une telle tche nest plus en possession du processeur. La tche sest interrompue avant sa fin
suite lapparition dune condition de blocage. Les causes de blocage dune tche sont
multiples : ressource non disponible, zone protge par smaphore..,etc.
Au moment des blocages, tout le contexte de la tche est sauvegard et diffrentes tables sont
mises jour.
Il est important de distinguer les deux tats PRET et BLOQUE.
Quand une tche passe ltat prt, il suffit de mettre jour une variable signalant le nouveau
tat de la tche et dinitialiser .les registres du processeur.
Pour reprendre une tche bloque, il faut recharger tout le contexte sauvegard lors du
blocage. La tche reprend alors exactement lendroit interrompu.
Une tche bloque passe en EXCUTION si les conditions de blocage disparaissent et la tche
la plus prioritaire de toute les tches en attente sexcute.
4. Transition entre les tats dune tche
Cest le moyen qui gre toute les transitions entre les tats dune tche.
Gestion dune tche :
La cration dune tche consiste la faire connatre du moniteur.
Activation dune tache :
Activation dune tache est dune demande dexcution activation peut tre immdiate diffre
ou cyclique.
Une activation immdiate consiste faire passer une tche de ltat doreront ltat prt. Elle
ne correspond pas au lancement effectif de la tche. Ensuite le lancement de la tche est
ralis par lordinateur.
Dans ces transitions DORMANT PRET EXCUTTION DORMANT, il y a 3 cycles :
- Une activation diffre consiste lancer une tche aprs un dlai prcis.
- Une activation cyclique qui consiste relancer une tche intervalles rguliers. Ces
dernires requtes ne sont pas toujours disponibles dans toutes les noyaux.
Attribution dun processeur virtuel la tche :
La tche est lance depuis son dbut. Son excution nest pas toujours immdiate. Si dautres
taches sont dj dans cet tat la tche attendre que chacune delle se voit attribues au moins
une fois le processeur physique. Cette tache nest pas gre par le programmeur mais par
lordonnanceur.
Blocage dune tche :
La tche abandonne le processeur physique si elle na pas les ressources ncessaires son
excution. (fichier spcial, terminal, imprimante)
Relance dune tche bloque :
Cette transition nest pas contrle par des programmes mais par le noyau. Lorsque toutes les
conditions sont runies pour continuer une tche (priorit maximale, disparition des
conditions de blocage) la tche est place dans une file dattente. Par la suite, le noyau lui
attribue le processeur rel.
Fin dune tche ou destruction dune tche :
Une tche termine ou dtruite est espace dans ltat dormant.
Surpression dune tche :
Pour optimiser lutilisation de la mmoire une requitte (supprime) remet.une tche ltat non
cre.
Attribution du processeur rel :
Cette transition a lieu de faon rgulire pour une tche ltat EXCUTION.
Attribution dun processeur virtuel :
Cette transition a lieu, chaque fois que la tche utilis le processeur rel durant un temps
suprieur t. Elle a galement lieu lorsque le processeur rel est encore attribu au moment
des lancements de la tche.
4.5 Systmes avec ou sans rquisition des processeurs :
Les noyaux temps rel se divisent en deux catgories appeles noyaux sans rquisition du
microporocesseur(no preemtive scheduling) et noyau avec rquisition du microprocesseur.
(preemtive scheduling).
Dans un noyau sans rquisition du p la tche est excute jusqu ce quelle fasse appel un
service du noyaux. Selon la situation alors prsente le noyau peut dcider si la tche doit ou
non se poursuivre.
Dans un noyau avec rquisition, la tche peut tout instant perdre le processeur au bnfice
dune tche de priorit suprieure.
Ce systme garantit lexcution dune tche logicielle prioritaire, le seul inconvnient :
augmentation du temps de cycle de la tche interrompue.
Dans un noyau sans rquisition ; une tche converse le p. jusqu ce qu elle fasse appel un
service du noyau. Celui-ci en profite pour savoir sil nexiste pas une autre tche plus
prioritaire que la tche actuelle.
6. Notion dordonnanceur :
On appelle ordonnanceur un module chang de grer lensemble des processeur de la machine
pour le compte dune famille de tche.
Cette gestion consiste :
Attribuer les processeurs (libres ou librs) aux tches :
- Prtes commencer leur excution.
- Prtes continuer leur excution.
Reprendre le processeur dune tche :
- A la demande explicite de celle-ci (attente dune condition).
- Inconditionnellement (par premption)
Suivant un algorithme de choix spcifique.
Exemple : de critre de choix : la priorit des tches, la proximit dchance temporelle.
Les machines sont actuellement gres par deux types dordonnanceurs :

Ordonnanceur des tches immdiates (dit ordonnanceur cbl)


Ordonnanceur des tches diffres (dit ordonnanceur programm)
Cet algorithme de choix (dit de polling) est de la forme.

Examiner squentiellement les priorits (p) allant de la priorit mise la priorit


courante.

Pour chacune de ces priorits (p), si le signal associ linterruption (p) est arriv
et si linterruption (p) nest pas masque alors :
- Sauvegarde le contexte de la tche immdiate ayant la priorit commande.
- Dmarrer la tche immdiate de priorit (p).
Cet algorithme peut tre excut par le p en tout point dinterruptible de la tche en cours.

La fin de lexcution dune tche immdiate relance la tche immdiate de priorit infrieure
prte tre excute.

Lordonnanceur des tches diffres gre les tches suivant un algorithme de choix qui est
impos par le type de lexcutif raliser :
- Prcuptif.
- Non prcuptif.
- A partage du temps.
Les conflits entre ces deux ordonnanceurs sont rgis par le mcanisme de premption des
processeurs (le plus souvent associ aux interruptions) et par les oprations dautorisation et
dinhibition de cette premption.
7. Notion dagence :
Lagence est lunit fonctionnelle de construction dun excutif T.R
On peut trouver par exemple des agences :
De gestion mmoire.

De gestion de fichiers.

De gestion dhorloge,..etc.
Une agence peut tre constitue par les lments suivants :

Des tches.
Des procdures et des fonctions.

Des donnes locales en globales, etc.


Une agence offre un ensemble de services au travers dune collection de procdures et de
type de donne (objets). La reprsentation interne de ces procdures et ces types dobjets nest
comme qu lintrieur de lagence.
Une agence peut utiliser les services offerts par une autre agence.
Exemple : lagence de gestion de fichier utilise les services de lagence dE/S.
8. Notion dexception :
On appelle exception une situation non attendre pouvant lorsquelle se produit conduire la
tche, pour laquelle cette situation est significative, abandonner le traitement quelle avait en
cours.
La situation dexception peut-tre dbute:
- Par le matriel comme par exemple :

La division par zro.

Lerreur dadressage.
Violation des protections, etc..
- Par le logiciel dans ce cas on distingue :

Les exceptions synchrones : Il sagit de situations dbutes dans une procdure et


qui doivent tre traites par la tche qui invoqu la procdure (exemple :
traitement derreurs)

Les exceptions asynchrones : ce type de situation est par une tche et le traitement
correspondant doit tre effectu par une autre tche (exemple : destruction dune
tche).
9. Squence immdiate :
On appelle squence immdiate le programme dont lexcution est dmarre par un
droulement provoqu par le matriel. Elle a pouvant de rpercuter loccurrence dune
exception lagent chang de son traitement(tche, agence,).
A chaque exception dtecte par le matriel peut tre associe une squence immdiate.
Une squence immdiate na pas dinteraction avec lordonnancement des tches immdiates
et diffres.
10. La synchronisation entre tches :
La synchronisation des actions entreprises par une famille de taches a pour rle laide
dexcution de ces actions.
Un mcanisme de synchronisation est un moyen par lequel une tche peut influes sur lordre
des actions entreprises par les tches avec lesquelles elle interagit.
Il est commande dexplicites un protocole de synchronisation en prcisant la condition qui
doit tre remplie pour quune tche puisse entreprendre une action soumise ce procd.
Dans le cas ou cette condition est satisfaite, laction est entreprise.
Dans le cas contraire, la tache doit attendre que cette condition soit satisfaite.
En gnral une condition attendue est value par un agent actif (tche ou environnement de
lapplication). Lorsque cette valuation donne un rsultat positif, cet agent signale la tche
en attente que la condition est satisfaite. Celle-ci peut alors entreprendre son action.
11. La signalisation :
Un mcanisme de signalisation est un moyen permettant une (ou plusieurs) tche(s)
dattendre quune condition associe ce mcanisme soit satisfaite et un agent actif valuant
cette condition de la signaler lorsquelle est satisfaite. La signalisation permet dexprimer des
protocoles de synchronisations.
12. Lexcution mutuelle :
Un mcanisme dexclusion mutuelle est un moyen dassurer que lexcution dune famille de
squences dinstruction manipulant un mme objet partag, soient disjointes dans le temps
quel soit lordre dans lequel ces squences sont excutes.
13. La communication entre les tches :
En pratique, les tches sont indpendances pour une bonne post de leur bon droulement,
mais elles doivent gnralement tre capables dinteragir en certains points de leur excution
pour des oprations :
- De communication.
- De synchronisations.
- Ou dexclusion mutuelle.
Ceci pose des problmes bien dlicats.
Le problme de lexclusion mutuelle se pose lorsque plusieurs tches se partagent une
ressource critique qui ne peut tre utilise que par une seule tche un moment donn.
Lorsque plusieurs tches sont en excution, il est gnralement ncessaire de mettre en uvre
des mcanismes de synchronisations par garantir quelles sont excutes dans lordre prvu
par le concepteur.
A partir du moment o les tches se synchronisent mutuellement et o des ressources sont
partages, les systmes peut valuer par suite dun manque de ressource une situation de
blocage o certaines tches ne peuvent plus continuer leur excution.
La Figure 9 montre une situation dinter blocage (ou blocage total) si lallocateur des
ressources attribue la ressource Q la tche B et la ressource P la tche A. Dans ce cas
aucune de deux tches ne peut disposer simultanment de deux ressources ncessaires leur
excution.
La prvention, la dtention et la prvision du blocage total posent des problmes trs srieux
lors de la conception des STR.
Le blocage total ne rsultat pas dune erreur, mais plutt dun dfaut de conception du logiciel
TR.
Cest pour cette raison, quil est prfrable de dfinir des mcanismes lmentaire pour traiter
de faon simple les oprations entre tches.
a- Mcanisme dexclusion mutuelle :
Lorsquune ressource est partage avec exclusion mutuelle, chaque tche concerne ne
peut aborder la squence critique de son programme qui exploite cette ressource que si
elle est assure que les autres tches ne sont pas elles-mmes dans la squence critique
de leur programme.
Une faon simple de garantir laccs la ressource critique consiste masquer les
interruptions pendant toute la dure de lexcution de la section critique.
Cette mthode de masquage nest pas acceptable si la direction critique est trs courte
car dans le cas contraire, on risque de retarder ou de perdre des interruptions qui nont
rien voir avec la ressource critique.
De plus cette mthode devient trs lourde ds quil y a un grand nombre de sections
critique protger.
Une autres solution consiste utiliser un verrou (valeur binaire) positionner 0 quand
la version est libre et 1 si non. Une tche qui rentre en section critique doit dabord
savoir que le verrou et 0 avant de le faire. Sil tre 0, elle le position 1 et excute de
section critique. A la fin, elle doit repositionner la version 0.
Avec cette mthode, la tche en attente boucle en permanence linstruction de test
des versions, ce qui conduit un gaspillage des temps processeur.
Pour remdier cet inconvnient, on peut mettre un mcanisme plus labor, le
SEMAPHORE.
Le smaphore est bas du lide trs simple quil est inutile dactiver une tche en
attente de la section critique tout que cette dernire est occupe, et que la libration de
la section critique peut tre mise profit pour veiller une des tches en attente.
Les interruptions ne sont inhibes que pendant lexcution des promotions PLS et
VLS c'est--dire pendant un temps court.
Il suffit dinitialiser S=1 pour tre sr quil n ya jamais plus dune tche en section
critique. Ce qui correspond en cas le plus rpandu dans lexclusion mutuelle simple.
b- Synchronisation entre tches :
Lorsque plusieurs tche sont inter dpendantes, elles doivent en gnral tre capable
dinteragir pour synchronise leur droulement.
Sous sa forme le plus simple une synchronisation entre 2 tches A par B appelle 2
sortes dactions :
- La tche A doit pouvoir de bloquer en attendant un signal B qui linforme de la
ralisation de lvnement attendre.
- La tche B doit pouvoir veiller A, en lui transmettant ventuellement de
linformation.
La synchronisation peut tre direct ou indirect.

La synchronisation direct : une tche agit directement sur une autre tche ce qui
implique la tche synchroniser soit comme de la tche qui le contrler.
Elle peut tre faite avec 2 primitives : BLOQUERL(A)
EVEILLERL(A)
qui agissent sur deux variables binaires EMT(A) et FANON(A)
On a suppos que les sections critiques taient telles quune tche pouvait y tre
prsente la fois. Dans certain cas, la ressource critique est conue de faon tre
affecter simultanment plusieurs tches avec un max de N tches. Les
smaphores permettent de traiter lexclusion mutuelle avec un accs simultane.
Df. Une smaphore est constitue par une structure de donnes (fig 10) qui
comporte une variable entire S et une file dattente FCS.
La structure doit tre initialise avec S positif.
Elle peut tre manipule par deux primits ATTENDRE SIGNALER.
Reprsenter respectivement par P(s) et V(s).
P(s) excute une opration de verrouillage avec la suite des oprations indivisibles
suivantes :
P(s) : DEBUT
S:=S1;
Si S <O Alors
Suspendre la tche appelante et mettre son descripteur dans la file FCS.
Fin
De faon similaire V(s) excute une opration de dverrouillage avec la suite des
oprations de dverrouillage.
V(s) : DEBUT
Si = S+1 ;
Si S < 0 Alors
Sortir une tche en sommeil de la file FCS et mettre son descripteur
dans la file des tches prtes.
Fin
0 tche A bloqu
Etat
1 tche A veille.

0 aucune signal daccueil na t envoy A


Fanion
1 un signal daccueil a t envoy A

La synchronisation indirecte :fonctionne par lintermdiaire dobjets qui peuvent


tre des variables booliennes vnement (Event) ou des smaphores et qui servent
dintermdiaires entre les tches.
La synchronisation tait indirecte, elle nutilise plus les noms des tches
commander.
Avec une variable vnement la ralisation de la condition de synchro se traduit
par le positionnement 1 de la variable, et la tche contrle se synchronise par
une instruction ATTENTE (vnement) qui la bloque si la variable est gale 0.
c- La communication entre tches :
- Bote aux lettres.
- Rendez-vous.
- Moniteur.

You might also like