Vous êtes sur la page 1sur 2

3ème année LMD Informatique Systèmes d’exploitation II 22/23

TD N°2 du Systèmes d’exploitation


Synchronisation des processus : les Sémaphores

Exercice 01 : Restaurant Universitaire


Un restaurant universitaire peut servir un nombre limité de couverts. Le nombre de couverts servis à un instant
donné ne peut pas dépasser le nombre de places disponibles dans le restaurent. Soit nbp ce nombre de places.

On suppose que toute personne se lave les mains avant de manger et après avoir mangé. Le restaurant dispose de nbl
lavabos (nbl inférieur à nbp).

Les nbp places et nbl lavabos constituent les ressources à partager entre les étudiants. Les processus représentent la
progression des étudiants à l’intérieur du restaurant. Le schéma général (protocole) d’un processus est alors :

- Entrer au restaurant
- <Manger>
- Sortir du restaurant
1. Définir les points de synchronisation
2. Définir les conditions de franchissement de ces points de synchronisation
3. Ecrire le programme d’un processusi en utilisant les sémaphores.

Exercice 02 : La piscine
Un utilisateur d’une piscine (nageur) doit tout d’abord trouver une cabine et un panier libres, ranger ses vêtements
dans le panier, libérer la cabine et enfin déposer le panier à la consigne. Lorsqu’il a fini de se baigner, il va rechercher
son panier et attend une cabine libre pour se changer. Il y a nbp paniers et nbc cabines (nbc << nbp).

1. Définir les points et les conditions de synchronisation


2. Ecrire le programme d’un nageuri, en utilisant les sémaphores et les variables d’état suivantes :
- npd : nombre des demandes de paniers non satisfaites,
- npo : nombre de paniers occupés,
- ncdo : nombre de cabines occupées ou demandées

Exercice 03 : Allocateur de ressources


Considérons une ressource banalisée ; le nombre d’exemplaires étant limité à nmax unités. Des processus ont
besoin pour s’exécuter de x exemplaires de la ressources (0 < x < nmax). Lorsqu’un processus demande x unités
et que ce nombre x est supérieur au nombre de ressources disponibles, aucune allocation n’a lieu et le processus est
mis en attente (bloqué). Il devra être réveillé lorsqu’au moins x unités de la ressource seront devenues disponibles à la
suite d’une restitution des ressources.

On désire satisfaire le plus possible de processus bloqués dans le cas ou la file d’attente des processus bloqués est gérée
en FIFO et qu’il y a n processus dans le système.

Ecrire les programmes des procédures allouer (paramètres) et libérer (paramètres).

Exercice 04 : Problème du producteur-consommateur


Considérons deux processus coopérants P et C, appelés respectivement producteur et consommateur. Le
producteur lit un fichier F, message par message, et transmet chacun des messages au consommateur. Le rôle d’un
consommateur est d’imprimer ces messages. Le producteur s’arrête dès qu’il rencontre un message dont le contenu est
égal au mot « fin ». La communication entre ces deux processus est réalisée à travers un tampon de n éléments (un
élément = un message).

Ces deux processus doivent respecter les contraintes suivantes :

1
3ème année LMD Informatique Systèmes d’exploitation II 22/23

 Le consommateur ne peut pas retirer un message que le producteur est en train de le déposer.
 Le producteur ne doit pas déposer un message dans le tampon lorsque celui-ci est plein : il doit attendre.
 Le consommateur doit retirer les messages une fois et une seule.
 Si le producteur (respectivement le consommateur) et en attente parce que le tampon est plein (respectivement
vide) il doit être réveillé dès que cette condition cesse d’être vraie.
1. Définir les points de synchronisation
2. Définir les conditions de franchissement de ces points de synchronisation
3. Ecrire le programme de chacun des processus (P et C) en utilisant les sémaphores.
4. Généraliser la solution précédente au cas de plusieurs producteurs et plusieurs consommateurs.

Exercice 05 : Producteurs-consommateur
Un enseignant communique avec ces N étudiants via un tampon de M cases. L’enseignant dépose des exercices
dans ce tampon (un exercice par case) et les étudiants les retirent. Chaque exercice déposé par l’enseignant doit être
retiré par tous les étudiants. En plus, chaque étudiant doit retirer les exercices dans l’ordre dans lequel ils ont été
déposés. Une case du tampon n’est libérée que lorsque tous les N étudiants ont retiré l’exercice qu’elle contient.
Chaque étudiant travaille selon son propre rythme.

En utilisant les sémaphores, écrire le programme de l’enseignant et le programme d’un étudianti.

Exercice 06 : Le modèle des lecteurs/rédacteurs


Considérons deux classes de processus appelés Lecteurs et Rédacteurs. Ces processus partagent un fichier. Les
lecteurs peuvent seulement consulter le fichier et les rédacteurs peuvent seulement écrire sur le fichier.

Les processus de ces deux classes doivent respecter les contraintes suivantes :

 Plusieurs lecteurs peuvent lire simultanément le fichier


 Un seul rédacteur à la fois peut écrire sur le fichier.
 Un lecteur et un rédacteur ne peuvent pas utiliser en même temps le fichier.
1. Définir les points de synchronisation
2. Définir les conditions de franchissement de ces points de synchronisation
3. Ecrire les programmes de chacune des classes de processus (Lecteurs et Rédacteurs), en utilisant les sémaphores,
dans les cas suivants :
a. Priorité aux lecteurs,
b. Selon l’ordre d’arrivée des processus (FIFO),
c. Priorité aux rédacteurs.

Exercice 07 : Soutenance
Un jury de soutenance est composé d’un président, de trois membres et de l’encadreur. La soutenance ne peut
commencer que si le président, l’étudiant, l’encadreur et au moins deux des trois membres du jury sont présent.

En utilisant au plus six sémaphores, écrire les programmes du président, de l’encadreur, des trois membres de jury et de
l’étudiant.

Exercice 08 : Réunion
Un conseil de direction d’une entreprise est constitué d’un président(Pr) et de 4 autres membres (M1, M2, M3, M4).

En utilisant les sémaphores, écrire les programmes du président et des 4 autres membres du conseil de direction dans
les cas suivants :

1. La réunion du conseil de la direction ne peut commencer que si 2 membres quelconques, au moins, sont présents.
2. La réunion du conseil de la direction ne peut commencer que si le président et 2 autres membres, au moins, sont
présents.

Vous aimerez peut-être aussi