Académique Documents
Professionnel Documents
Culture Documents
d’exploitation
TD N°3 : Gestion des processus
s_ouatik@yahoo.com
hliwaghizlane@gmail.com
hadi@uit.ac.ma
Exercice 3: (TD 3)
Producteur Consommateur
Producteur( ) Consommateur( )
{ {
Message m ; Message m ;
Tant que Vrai faire Tant que Vrai faire
{m = creermessage() ; {
down(Mutex) ; dwn(Mutex) ;
EcritureTampon(m); m = LectureTampon();
Up(Mutex) ; up(Mutex) ;
} }
} }
Question : Cette solution permet-elle d’assurer l’exclusion mutuelle ? Quelle
est sa limitation ?
Exercice 3: (TD 3)
Oui. Cette solution permet assurer l’exclusion mutuelle par le biais du sémaphore utilisée
(Mutex)
Producteur Consommateur
Producteur( ) Consommateur( )
{ {
Message m ; Message m ;
Tant que Vrai faire Tant que Vrai faire
{m = creermessage() ; {
down(Mutex) ; dwn(Mutex) ;
EcritureTampon(m); m = LectureTampon();
Up(Mutex) ; up(Mutex) ;
} }
} }
Exercice 3: (TD 3)
Initialisation :
1) Adapter cette Semaphore Mutex = 1;
Semaphore Empty = N;
solution pour que Semaphore Full = 0;
l'échange des Message tampon[];
messages soit Producteur Consommateur
synchronisé
(consommateur Producteur( ) Consommateur( )
bloqué si le tampon { {
est vide, et Message m ; Message m ;
producteur bloqué si Tant que Vrai faire Tant que Vrai faire
{m = creermessage() ; {
le tampon e st plein). down(Empty); down(Full);
down(Mutex) ; dwn(Mutex) ;
EcritureTampon(m); m = LectureTampon();
Up(Mutex) ; up(Mutex) ;
Up(Full); Up(Empty);
} }
} }
Exercice 3: (TD 3)
2) Cette solution est-elle correcte dans le cas de plusieurs producteurs et
plusieurs consommateurs ? Justifier.
Exercice 3: (TD 3)
2) Cette solution est-elle correcte dans le cas de plusieurs producteurs et
plusieurs consommateurs ? Justifier.
Oui. Cette solution est correcte dans le cas de plusieurs producteurs et plusieurs
consommateurs.
- L’exclusion mutuelle est assurée par l’usage du sémaphore Mutex.
- La synchronisation est assurée par l’usage des deux sémaphores empty et full.
Les 3 sémaphores seront utilisés et partagés par l’ensemble des processus.
L’avantage est que toutes les opérations down et up sur les sémaphores sont
indivisibles.