Chapitre 04 (Moniteur)
Chapitre 04 (Moniteur)
Chapitre 04 (Moniteur)
SABBA-CHEHBOUR.F
1
UMM/Département Informatique/ LI (S5)/ Module SEII/
SABBA-CHEHBOUR.F
2 Dénition
Les moniteurs sont dénis par :
• Un ensemble de variables dites de synchronisation
• Des primitives qui manipulent ces variables.
Nom_Moniteur : Moniteur;
début
déclaration des variables locales (ressources partagées)
déclaration des coprs des procédures du moniteur
initialisation des variables locales.
n
Exemple1:
2
UMM/Département Informatique/ LI (S5)/ Module SEII/
SABBA-CHEHBOUR.F
Avantages:
1. Au lieu d'être dipersées dans les diérents processus, les sections critiques
sont transformés en fonctions ou procédures d'un moniteur.
2. La gestion des S.C n'est plus à la charge de l'utilisateur. Elle est réalisée
par l'implantation du moniteur qui garanti qu'au plus un processus à la
fois peut accéder à cette structure. En fait c'est le moniteur tout entier qui
est implanté comme une S.C. ainsi, lorsqu'un processus souhaite éxecuter
une opération concérnant une variable partagée, il appelle simplement une
procedure particulière d'un moniteur qui est exécutée si le moniteur est
diponible. Si au contraire, le moniteur est occupé, le processus est bloqué
dans une le associée au moniteur. Dès que celui-ci est libéré, un choisi
dans la le et la procédure invoquée est exécutée.
3
UMM/Département Informatique/ LI (S5)/ Module SEII/
SABBA-CHEHBOUR.F
X: condition
La variable X désigne alors une le de processus en attente qui peut être
manipulée uniquement à l'interieur du moniteur par les primitives wait , signal
et empty.
Remarques
Exemple 2
4
UMM/Département Informatique/ LI (S5)/ Module SEII/
SABBA-CHEHBOUR.F
libre: condition;
procédure acquisition
dédut
si occupe alors libre.wait fsi;
occupé := vrai;
n;
procédure libération
début
occupe := faux;
libre.signal;
n;
%initialisation%
debut
occupe := faux;
n;
Exemple 3