Vous êtes sur la page 1sur 2

Higher Institute of science

3 ème année licence en informatiqueModule :


Systèmes d'exploitation 2

Série de TD
N° 4
(Synchronisation par sémaphores / moniteurs)
Exercice 1:

Un fichier doit être partagé entre plusieurs processus, chacun ayant un numéro d'accès unique. Le
fichier peut être utilisé par plusieurs processus simultanément mais tout en respectant la contrainte
Suivante: la somme des numéros d'accès de tous les processus utilisant le fichier à un moment donné
doit être inférieure à un seuil N.

Question : Écrivez un moniteur pour coordonner l'accès à ce fichier.

Exercice 2:

Dans une usine, nous avons quatre machines qui partagent un même espace de travail. Deux
machines produisent des pièces, le prodA produit les pièces A et le prodB produit les pièces B. Les
deux autres machines consomment les pièces produites, le consA pour les pièces A et le consB pour
les pièces B.
Il ne peut y avoir que des pièces d'un seul type (A ou B) dans l'espace commun à la fois. Un seul des
producteurs peut y placer des pièces. Il peut cependant en placer autant qu'il veut (nombre illimité).
Apres la production et le dépot (qui forme une seule et même opération), les producteurs doivent
signaler aux consommateurs la présence de pièces. Inversement, les consommateurs doivent aviser que
les pièces ont été consommées et retirer de l'espace commun. Si l'espace est entièrement libre,
n'importe lequel des deux producteurs peut y déposer une pièce. Les consommateurs peuvent accéder à
l'espace en même temps que les producteurs, mais ne peuvent travailler sur la même pièce en même
temps. Le producteur doit donc, au moins, devancer le consommateur du temps de production d'une
pièce.

A) Ecrivez un moniteur et complétez les processus producteurs et consommateurs afin


d'assurer la synchronisation de leurs activités.

Exercice 03:
Dans une ville tranquille, un coiffeur possède un petit salon ayant une porte d’entrée, une porte de
sortie, un fauteuil de coiffure et quelques chaises. Les clients arrivent par la porte d’entrée et sortent
par la porte de sortie après avoir eu leur coupe de cheveux. Comme le salon est petit, uniquement le
client sur le fauteuil de coiffure peut être servi à un moment donné par le coiffeur. Le coiffeur passe
sa vie entre dormir et servir ses clients. Quand il n’a aucun client, le coiffeur dort dans le fauteuil.
Quand un client arrive et trouve le coiffeur endormi, il le réveille, s’assoit dans le fauteuil et s’endort
pendant que le coiffeur lui coupe les cheveux. Si un client arrive et le coiffeur est occupé, le client
s’endort dans une chaise libre. Après avoir fini une coupe, le coiffeur ouvre la porte de sortie et
attend que le le client coiffé quitte le salon. Ensuite, s’il y a des clients en attente, le coiffeur réveille
un et attend qu’il occupe le fauteuil de coiffure. S’il n’y a aucun client, le coiffeur s’endort.

1/2
Q1 : Modéliser ce problème en utilisant les sémaphores pour la synchronisation entre lecoiffeur
et ses clients
Q2 : donner une solution avec moniteur au problème .

Exercice 04:
Le problème du Producteur et du Consommateur met en relation deux classes de processus qui
communiquent par l'intermédiaire d'un tampon. La communication leur permet de coopérer. Pour
illustrer le fonctionnement, supposons qu'il y ait 1 Producteur et 1 Consommateur, séparés par une
table. Le Producteur produit des objets et les dépose à mesure sur la table, s'il y a de la place. Le
Consommateur prend les objets sur la table, s'il y en a, et les consomme. Lorsque la table est pleine, le
Producteur doit attendre, pour déposer, qu'une place soit libérée. Lorsque la table est vide, le
Consommateur doit attendre, pour prélever, qu'un objet y soit déposé.

 Un producteur doit arrêter de produire quand il n’a plus de place pour stocker ce qu’il
produit.
 Un consommateur doit arrêter de consommer des choses quand le tampon est vide.

Q : donner une solution avec moniteur pour le problème de producteur/consommateur .

Exercice 5:
Des pierres sont disposées dans le cours d'une rivière pour permettre sa traversée par une ou des
personnes venant d'une seule direction à la fois. Désignons par A et B les deux rives dela rivière. Assignons
à chaque personne sur la rive A un processus P_A, et à chaque personne sur la rive B un processus P_B.

process P_A
TRAVERSEE
DE A VERS B
end P_A

process P_B
TRAVERSEE
DE B VERS A
end P_B

Question : Ecrivez un moniteur et complétez les processus pour assurer la coordination de latraversée entre
les personnes venant de rive opposée. La solution doit permettre la traversée simultanée de plusieurs
personnes venant d'une même rive, et doit également assurer qu'il n'y aura pas d'interblocage ?

2/2

Vous aimerez peut-être aussi