Vous êtes sur la page 1sur 30

Prpar par : Madiha Michraf

Oumnia Mektane
Imane Labdaoui
Encadr par Mme :Doha
El Malki
Plan:
Dfinition .
Un exemple simple des moniteurs.
Les instructions spciales des moniteurs.
Rendez vous entre N processus.
A lintrieur dun moniteur.
Problme des producteurs-consommateurs.
Problme des lecteurs-rdacteurs.
Conclusion.



Dfinition :
Quest-ce quun moniteur?
Un moniteur est un objet encapsulant des
fonctions membre ou des mthodes dont
une seule peut sexcuter un moment
donn. Cest une structure de
synchronisation modulaire, qui regroupe
des variables partages par plusieurs
processus, ainsi que les instructions qui les
manipulent.


La structure de moniteur permet dviter
certains phnomnes dinter blocages qui
peuvent apparatre avec les smaphores. Ces
inters blocages sont gnralement la
consquence derreurs de programmation
vicieuses et difficiles dtecter. Cest
pourquoi, on considre que lcriture de
smaphores est dlicate. La dclaration dun
moniteur est beaucoup plus facile et plus
lgante par contre.


Un inter blocage: est une situation ou deux
processus (ou plus) sont bloqus en attente
d'un vnement qui doit tre produit par
l'autre.

Exemple :
monitor MonMoniteur{
char tampon[100];
void crivain(char *chane) {}
char *lecteur() {}
}

Dans lexemple prcdent, en pseudo-C,
quel que soit le nombre de processus qui
sexcutent et qui font appel au moniteur,
seul un exemplaire de crivain ou de
lecteur pourra sexcuter un moment
donn.

















Les instructions spciales des
moniteurs:
c.attendre :bloque le processus appelant et
le place en queue de file dattente en librant
laccs exclusif au moniteur
c.signaler :retire un processus en tte de le
file dattente si elle est non vide et lactive
c.vide : vrai si aucun processus n'est en
attente de c, faux sinon

Rendez-vous entre N processus:
Soit N processus P1Pn
Un point de rendez-vous dans le programme
de chaque processus est:
Le point que le processus ne peut franchir
avant que tous les processus aient atteint
leur propre point de rendez-vous.
Un moniteur rdv a une entre: arriver
Utilisation dun moniteur par le processus Pi
<dbut de Pi>
rdv.arriver
<suite de Pi>
Le dernier arriv rveille un des processus
qui attendent
Celui-ci va rveiller le suivant
Etc.

Exemple : rendez-vous:
rdv : moniteur ;
var n : entier ;
tous-la : condition ;
entree arriver ;
debut
n := n+1 ;
si n < N alors
tous-la. attendre
fsi ;
tous-la. signaler
fin
debut initialisation
n := 0
fin
fin rdv



Lorsquun processus excute rendez_vous.arriver et quil nest
pas le dernier, il incrmente n et se bloque en attente de tous
la. Lorsque le dernier processus arrive au point de rendez-
vous, il excute tous la.signaler qui a pour effet de rveiller un
des processus bloqus. Ce dernier poursuit son excution
dans le moniteur, excute son tour tous la.signaler qui
rveille un second processus bloqu, et ainsi de suite jusqu
ce que tous les processus bloqus soit rveills. Le dernier
processus rveill excutera un tous la.signaler alors quaucun
processus nest en attente, ce qui naura aucun effet.

l'intrieur des moniteurs:
Chaque moniteur possde une file d'attente
globale.
Chaque variable condition rfrence une
file d'attente.
c.attendre: placer le processus dans la file
d'attente associe c.
c.signaler: sortir le processus suivant de la
file d'attente associe c.



c.vide: teste si la file d'attente associe c est
vide.
Problme : un seul processus actif la fois au
sein d'un moniteur, donc comment
implmenter la primitive signaler ?
Note 1 : un moniteur est en gnral
implment avec des ... smaphores !
Note 2 : c'est tout fait logique, un systme
est bti par niveaux d'abstraction successifs,
un niveau i tant implment par les
primitives du niveau i-1.


Problme des producteurs-
consommateurs:
Un ensemble de processus, divis en deux
catgories, partage une zone mmoire.
Les premiers (producteurs) remplissent la
mmoire partage, avec des lments
la mmoire ne peut contenir qu'un nombre
d'lments limit et connu l'avance
Les seconds (consommateurs) utilisent ces
lments et les retirent de la mmoire
Exemple : file d'impression

Problmes :
Un producteur doit se bloquer lorsque la
mmoire partage est pleine
Un consommateur doit se bloquer lorsque la
mmoire partage est vide
Solutions:
Utilisation de deux smaphores,
implmentant les deux critres de blocage
l'un reprsente le nombre de cases libres
l'autre reprsente le nombre de cases
occupes


Si les oprations sur la zone mmoire
partage ne sont pas atomiques, il faut les
protger par une section critique
troisime smaphore



Exemples :
-Le processus clavier produit des caractres
qui sont consomms par le processus
daffichage lcran.
-Le pilote de limprimante produit des lignes
de caractres, consommes par
limprimante.
-Un compilateur produit des lignes de code
consommes par lassembleur.




Problme des lecteurs-rdacteurs:
Un ensemble de processus, divis en deux
catgories, partage une zone mmoire
Certains processus (les lecteurs) font des
accs en lecture seule cette zone
D'autres processus (les rdacteurs)
modifient le contenu de cette zone
NB : on parle parfois d'crivains plutt que
de rdacteurs



Problmes :
Lorsqu'un rdacteur accde la mmoire
partage, aucun autre processus (qu'il soit
lecteur ou rdacteur) ne doit y avoir accs
problme d'exclusion mutuelle classique
En revanche, les lecteurs peuvent tre
plusieurs utiliser la zone en mme temps,
cela ne pose pas de problme


Solutions :
On protge la mmoire partage par une
exclusion mutuelle, mais...
les lecteurs n'ont besoin de cette exclusion
mutuelle que si aucun autre lecteur
n'utilise la mmoire .
pour le vrifier, ils utilisent un compteur
(nombre de lecteurs en train d'utiliser la
zone), lui aussi protg par une exclusion
mutuelle























conclusion:
Finalement un moniteur est un ensemble de
donnes et de procdures, qui sexcutent en
exclusion mutuelle. Autrement dit, un seul
processus peut sexcuter dans un moniteur
un instant donn.
Grace ses programmes et ses instructions
les moniteurs sont considr comme une
solution de problme de synchronisation de
haut niveau qui permet dexcuter tous les
processus sans avoir un inter blocage .


Bibliographie : Cour de Mme Doha Malki
Wikipdia.com
Encarta 2010.