Académique Documents
Professionnel Documents
Culture Documents
Exercice 2
mutex : sémaphore
mutex.val1
Processus A Processus B
Rouler_G_D Rouler_D_G
P(mutex) P(mutex)
Rouler-tunnel Rouler-tunnel
V(mutex) V(mutex)
Rouler_G_D Rouler_D_G
Exercice 3
1. C’est un problème d’exclusion mutuelle. Donc, il faut utiliser le même sémaphore pour les
trois processus.
mutex : sémaphore
mutex.val1
3.
S1, S23: sémaphore
S1.val1 //pour que P1 puisse commencer le premier.
S23.val0 //pour bloquer P2 et P3 au début.
Exercice 4
1. La section critique est Jouer ( ).Ainsi, la solution est :
stade, mutexA, mutexB, mutexC: sémaphore
nb_A, nb_B, nb_C : entier
stade.val2, mutexA.val1, mutexB.val1, mutexC.val1
nb_A0, nb_B0, nb_C0
Processus A Processus B Processus C
Début Début Début
P(mutexA) P(mutexB) P(mutexC)
nb_A nb_A+1 nb_B nb_B+1 nb_C nb_C+1
Si (nb_A = 1) Si (nb_B = 1) Si (nb_C = 1)
alors P(stade) alors P(stade) alors P(stade)
Finsi Finsi Finsi
V(mutexA) V(mutexB) V(mutexC)
Jouer ( ) Jouer ( ) Jouer ( )
P(mutexA) P(mutexB) P(mutexC)
nb_Anb_A - 1 nb_Bnb_B - 1 nb_Cnb_C - 1
Si (nb_A = 0) Si (nb_B = 0) Si (nb_C = 0)
alors V(stade) alors V(stade) alors V(stade)
Finsi Finsi Finsi
V(mutexA) V(mutexB) V(mutexC)
Fin Fin Fin
2.Oui, il y a un risque de famine :
- si le club A et B occupent le stade alors si des athlètes du club C arrivent, ils doivent
attendre c’est correcte
- Mais, si des athlètes des clubs A et B viennent d’une façon continue, les athlètes du
club C vont indéfiniment attendre pour entrer au stadefamine !
Exercice 5
C’est un problème Lecteur/Rédacteur : Voiture/Camion avec accès autorisé pour 3 voitures au
maximum. Alors la solution est :
pont, mutex, voit : sémaphore
nb_voiture : entier
pont.val1
mutex.val1
voit.val3
nb_voiture0
Processus Camion Processus Voiture
P(mutex)
nb_voiturenb_voiture + 1
P(pont) Si (nb_voiture=1)
Camion_roule alors P(pont)
V(pont) Finsi
V(mutex)
P(voit)
Voiture_roule
V(voit)
P(mutex)
nb_voiturenb_voiture -1
Si (nb_voiture=0)
alors V(pont)
Finsi
V(mutex)