Vous êtes sur la page 1sur 2

TD n°3

Communication et synchronisation entre


processus

Exercice 1
Soient trois processus concurrents P1, P2 et P3 qui partagent les variables in et out. Pour
contrôler l’accès à ces variables partagées, on propose les codes suivants :

mutex1, mutex2 : sémaphore


mutex1.val  1, mutex2.val  1

Processus P1 Processus P2 Processus P3


P(mutex1) P(mutex2) P(mutex1)
P(mutex2) out out -1 in in + 1
out out + 1 V(mutex2) V(mutex1)
in  in -1
V(mutex1)
V(mutex2)

1. Cette proposition est-elle correcte ? Sinon, indiquer parmi les 4 conditions requises pour
réaliser une exclusion mutuelle correcte, celles qui ne sont pas satisfaites ?
2. Proposer une solution correcte.
Exercice 2
Considérons une ligne de chemin de fer, à double voies, reliant deux villes A et B. Sur
cette ligne il existe un tunnel à voie unique, il ne peut y avoir deux trains roulant en sens
Inverse.

Proposer une solution de synchronisation utilisant les sémaphores en supposant qu’il ne peut y
avoir qu’un seul train à la fois dans le tunnel.

Exercice 3
Soient les 3 processus suivants :

Processus P1 Processus P2 Processus P3


Début Début Début
Cycle Cycle Cycle
A1 A2 A3
Fin Cycle Fin Cycle Fin Cycle
Fin Fin Fin
Proposer un schéma de synchronisation de ces trois processus en utilisant des sémaphores
dans chacun des cas suivants :

1. Les actions Ai (i={1,2,3}) ne doivent jamais être simultanées.


2. Les actions Ai ne doivent jamais être simultanées et doivent se dérouler toujours dans
l’ordre A1 A2 A3 A1 A2 A3…
3. Les actions Ai ne doivent jamais être simultanées et doivent se dérouler toujours dans
l’ordre A1 (A2 ou A3) A1 (A2 ou A3)…
NB : Déclarer et initialiser les sémaphores utilisés.

Exercice 4
Un stade d'athlétisme peut recevoir les athlètes de trois clubs A, B et C qui viennent s'y
entraîner. Pour organiser les entraînements, on impose la règle suivante :

À un instant donné, le stade peut recevoir un nombre quelconque d'athlètes mais de deux
clubs au maximum. Par exemple, 5 athlètes du club B et 3 athlètes du Club C peuvent
s'entraîner en même temps, mais si un athlète du club A veut accéder au stade, il doit attendre
jusqu'à ce que tous les athlètes aient quitté le stade, soit du club B soit du club C.

1. Proposer un schéma de synchronisation des processus : Processus A, Processus


B et Processus C correspondant respectivement à des athlètes des clubs A, B et
C et ce en utilisant des sémaphores. Déclarer clairement vos variables et
préciser leurs initialisations.
2. La solution proposée dans (1) présente-t-elle un risque de famine? justifier la
réponse.
Exercice 5
Un pont supporte une charge maximale de 15 tonnes. Ce pont est traversé par des camions
dont le poids est de 15 tonnes ainsi que par des voitures dont le poids est de 5 tonnes. On
souhaite gérer l'accès au pont de sorte que la charge maximale du pont soit respectée.
Proposer un schéma de synchronisation des processus camion et voiture en utilisant les
sémaphores.

Vous aimerez peut-être aussi