Académique Documents
Professionnel Documents
Culture Documents
Mr BENAISSA Mohamed
E-mail : benaissa_samir@yahoo.fr
1
Université Aboubekr BELKAID
كلية العلوم – تيجاني هدام
Faculté des Sciences – Tidjani HAddam
قسم اإلعالم اآللي
Département d’informatique
2
Introduction aux Concepts du moniteur
wait(x: condition)
signal(x: condition)
3
Les moniteurs
4
Structure d’un moniteur
Moniteur : nom-moniteur
//déclaration des varibles partagées
Schéma de moniteur
Procédure entrer P1()
Debut
Fin
Procédure entrer P2
Debut
Fin
Procédure entrer Pn
Debut
Fin
debut
Initialisation des variables
fin
5
Propriétés d’un moniteur
• les variables de type condition sont utilisés pour la synchronisation entre les
processus
6
Primitives d’un moniteur
• Une condition
- ne doit pas être initialisée
- ne peut être manipulée que par les primitives Wait() et Signal().
- est représentée par une file d'attente de processus bloqués .
Remarque
7
Primitives d’un moniteur
syntaxe
Wait( x: condition ) ;
Signal(x: condition);
Moniteur R-C
Var occupé : booléen
x : condition
Procédure entrer
Début
si occupé allors wait(x);
(sinon implicite)
occupé : = vrai;
Fin
Procédure sortie Processus Pi
Début Début
occupé := faux; Appel procédure d’un moniteur
signale(x); R-c.entrer;
Fin < section critique>
R-c.sortie;
Début
Occupé := faux; (initialisation) fin
Fin
9
problème de producteur consommateur par moniteur
Produire(m); Prod-cons.consommation(m);
Prod-cons.production(m); Consommer(m);
fin fin
11
problème de lecteur/rédacteur par moniteur
1- à la fin d’une écriture, le lecteur sont prioritaire par rapport aux rédacteurs.
12
Moniteur lecteur-rédacteur
Var
écriture: booléen;
Red, lect : condition;
nl : entier (compter le nombre de processus lecteur)
Début
Si ( (écriture) ou (not empty(red)) )alors wait(lect);
nl : = nl + 1;
Signale(lect);
fin
13
Procedure fin-lecture
Debut
nl:= nl – 1;
Si nl = 0 alors signale (red);
fin
Procedure fin-écriture
Procedure demande écriture
Debut
Debut Écriture := faux;
si (écriture) ou (nl >0) alors wait(red); Si not empty (lect) alors signale (lect)
Ecriture := vrai; else signale (red);
fin
fin
14
Fonctions Posix sur les moniteurs
Fonction Description
pthread_cond_signal(pthread_cond_t *cond)
Réveil potentiel d’un thread signale(condition)
15
Université Aboubekr BELKAID
كلية العلوم – تيجاني هدام
Faculté des Sciences – Tidjani HAddam
قسم اإلعالم اآللي
Département d’informatique
Mr BENAISSA Mohamed
E-mail : benaissa_samir@yahoo.fr
16