• Aucun résultat trouvé

Th´eorie et pratique de la concurrence – Master 1 Informatique TP 7 : S´emaphores en Java (suite)

N/A
N/A
Protected

Academic year: 2022

Partager "Th´eorie et pratique de la concurrence – Master 1 Informatique TP 7 : S´emaphores en Java (suite)"

Copied!
1
0
0

Texte intégral

(1)

Th´eorie et pratique de la concurrence – Master 1 Informatique TP 7 : S´emaphores en Java (suite)

Exercice1: Salle de bain unisexe

Supposez qu’on dispose d’une seule salle de bain qui peut ˆetre utilis´ee par des hommes ou des femmes mais pas au mˆeme moment.

1. Programmez en utilisant les s´emaphores une solution `a ce probl`eme. Il faut permettre un nombre quelconque d’hommes OU de femmes qui peuvent ˆetre dans la salle de bain au mˆeme moment. La solution doit assurer l’exclusion mutuelle demand´ee et l’absence d’interblocage.

2. Modifiez votre solution pour permettre au plus 4 personnes (du mˆeme sexe) en mˆeme temps.

3. On souhaite maintenant garantir qu’il y aura une alternance entre hommes et femmes (s’il y a r´eguli`erement des hommes et des femmes qui font la queue). Pour cela, d´eveloppez une solution qui laisse entrer au plus 4 femmes [respectivement 4 hommes] dans la salle de bains, si un homme [resp. une femme] est en train d’attendre.

Exercice2: La travers´ee des babouins

Il y a un canyon quelque part dans le parc national Kruger, Afrique du Sud, et une seule corde qui traverse le canyon. Les babouins peuvent traverser le canyon sur la corde, mais si deux babouins allant dans des directions oppos´ees se rencontrent au milieu, ils vont se battre et tomber.

En outre, la corde est assez forte pour tenir seulement cinq babouins. Programmez une solution `a ce probl`eme telle que :

— une fois qu’un babouin a commenc´e `a traverser, il est garanti d’arriver de l’autre cˆot´e sans croiser un babouin dans l’autre sens.

— il n’y a jamais plus de 5 babouins sur la corde.

— un flux continu de babouins allant dans un sens ne devrait pas empˆecher des babouins de faire la travers´ee dans l’autre sens ind´efiniment (pas de famine).

Références

Documents relatifs

Modifier le code d´ ej` a ´ ecrit pour les classes Reader, Writer et Main pour qu’elles utilise la classe RWexclusive ` a la place de RWbasic.. Observer le comportement de

Dans ce Tp on impl´ ementera quelques algorithmes d’exclusion mutuelle sans utiliser les prim- itives de haut niveau comme les m´ ethodes synchronized ou les variables de

Le serveur stocke alors cette chaˆıne de caract` eres dans un objet de type ConcurrentBuffer Un client consommateur attend que le serveur lui envoie des chaˆınes de caract` eres qui

Le premier argument est l’adresse d’un descripteur de thread, le deuxi`eme argument (que nous mettrons toujours ` a NULL dans ces TP) est un attribut de thread de type pthread_attr_t

Dans cet exercice on souhaite mod´eliser ce probl`eme du dˆıner des philosophes par un programme en C dans leque chaque baguette sera repr´esent´ee par un verrou et chaque

L`a aussi il est recommand´ e d’appeler cette fonction au sein d’une section critique prot´eg´ee par le mutex utilis´e par le thread en attente (dans l’exemple pr´ec´edent

La premi`ere n’autorisera pas un consommateur ` a lire une nouvelle donn´ee tant que la derni`ere donn´ee lue n’aura pas ´et´e vue par tous les consommateurs (le dernier

Les paniers et les cabines seront repr´esent´es par deux s´emaphores semCabine et semPanier qui seront des champs de la classe Client (ces s´emaphores seront partag´es par tous