Vous êtes sur la page 1sur 2

Université de BBA 3ème année ISIL- 2021

Travail à faire
Partie I : Cette partie concerne toute la section
Afin de terminer le programme proposé dans le canevas de cette formation, il est demandé
aux étudiants de lire le document « Interblocage.pdf » et de trouver une solution pour
l’exercice suivant :
Exercice
Supposant qu’un système possédant 4 processus (Pi, i=0..4) qui partagent 6 types de
ressources (Ri, i=0..6). Le système possède une seule ressource de chaque type.
L’état courant du système est décrit par les matrices d’allocation (ALLOCATION) et de
besoin (NEED) suivantes, ainsi que le vecteur de disponibilité instantanée (AVAILABLE)=
[0 1 0 0 0 0]
ALLOCATION =
R1 R2 R3 R4 R5 R6
P1 1 0 1 0 0 0
P2 0 0 0 1 0 0
P3 0 0 0 0 1 0
P4 0 0 0 0 0 1

NEED =

R1 R2 R3 R4 R5 R6
P1 0 1 0 0 0 0
P2 0 1 1 0 0 0
P3 1 1 0 0 0 0
P4 0 1 1 1 0 0

1. L’état courant est-il sûr (sain) ? Justifier.


2. Si P3 demande une ressource R2 peut on lui accorder immédiatement sa requête ?
Justifier.
3. Si P1 demande une ressource R2 peut on lui accorder immédiatement sa requête ?
Justifier.

Partie II :
L’objectif de ce travail est de faire une expérience en programmation multi -threads en
utilisant des sémaphores pour l’exclusion mutuelle ainsi que pour la synchronisation.

Le travail demandé consiste alors à proposer une solution algorithmique pour l’exercice et de
faire un codage (en C ou en JAVA) pour cette solution.
Le rapport en retour de votre travail devrait contenir
1. La solution algorithmique
2. Le code source
3. Une image de l’exécution (capture d’écran)
Afin de faire l’évaluation correcte, le dernier jour pour recevoir vos rapport (version papier)
est le jour de l’examen.

Exercice (Groupe 1 et Groupe 2) :

On considère trois processus P1, P2 et P3. Le processus P1 produit des messages qu'il dépose
dans un tampon T1. P2 prélève les messages contenus dans T1, les traite puis dépose les
résultats dans un tampon T2. P3 prélève les messages contenus dans T2 et les consomme.
Ecrire les algorithmes de P1, P2 et P3 de façon à garantir le non-interblocage.
Exercice (Groupe 3 et Groupe 4) :
Un magasin peut accueillir un nombre limité de clients. Cette limite est représentée par le
nombre N de chariots disponibles à l’entrée du magasin. Un client qui arrive attend s’il n’y a
aucun chariot disponible. Lorsqu’un client acquiert un chariot il entre au magasin pour
effectuer ses achats. Dès qu’il termine, il libère son chariot en sortant du magasin. On peut
assimiler les clients à des processus parallèles et les chariots à des ressources partagées. On
considère maintenant qu’il y a deux catégories de clients : les « abonnés » et les « non
abonnés » . Il n’y a pas d’exclusion mutuelle entre abonnés et non abonnés, par contre les
abonnés ont la priorité pour l’acquisition des chariots.
Ecrire les algorithmes des processus « abonnés » et « non abonnés ».

Exercice (Groupe 5 et Groupe 6) :


Une piscine peut accueillir N nageurs au plus. Ce nombre N est le nombre de paniers
disponibles pour les habits des nageurs. A l’entrée comme à la sortie les nageurs entrent en
compétition pour l’acquisition d’une cabine d’habillage/déshabillage, il y a C cabines (1 <= C
<< N).
Chaque nageur effectue les opérations :
Proc Nageur
Début
<se déshabiller>
<nager>
<se rhabiller>
Fin
On peut assimiler ces nageurs à des processus concurrents ; les cabines et les paniers étant des
ressources partagées.

Vous aimerez peut-être aussi