From e3dc8dfe9a010fd2417cf5d345e8c0886b436a26 Mon Sep 17 00:00:00 2001 From: trochas Date: Sun, 8 Dec 2024 13:40:51 +0100 Subject: [PATCH] =?UTF-8?q?rapport=20pour=20s=C3=A9maphore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rapport.txt | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/rapport.txt b/rapport.txt index 19fe5d7..0686f26 100644 --- a/rapport.txt +++ b/rapport.txt @@ -1,9 +1,9 @@ Nous avons la Class Au_Wok qui contient le main(), on y initialise les clients ainsi que le restaurant, puis on start tous les clients. -Le constructeur Restaurant initialise le Buffet, un tableau de 4 Compartiment -(poisson, viande, légume et nouille), le stand de cuisson, l'Employe_du_buffet -et le Cuisinier. Il star en suite start ces deux derniers. +Le constructeur Restaurant initialise le Buffet : un tableau de 4 Compartiment +(poisson, viande, légume et nouille), le Cusinier, le stand de cuisson, +l'Employe_du_buffet. Puis il star en suite start l'employer du buffet. Le run de Client va suivre ces étapes : (1) Entrer dans le restaurant en vérifiant bien que le restaurant est libre @@ -11,22 +11,20 @@ Le run de Client va suivre ces étapes : le verrou du compartiment est libre avant de lui-même le verrouiller, après c'être servi il déverrouille fait un notifyAll pour réveiller les clients ou l'employer du buffet qui pourrait attendre. - (3) Cuire au stand, en se mettant dans la queue (il notifyAll le stand pour - réveiller le cuisinier), quand son plat est cuit le cuisinier le sort de la - queue (le stand fait un notifyAll pour réveiller le client) + (3) Cuire au stand, on utilise un sémaphore. (4) Manger (5) Sort, en faisant un notifyAll sur le restaurant pour prévenir tout autre thread client attendant pour entrer -Le run du cuisinier, fait une boucle pour vérifier si un client est présent en -tête de la queue du stand de cuisson. Si oui, alors il fait cuire son plat. -Une fois fini, il sort le client le la queue et fait faire un notifyAll au stand -pour prévenir le client que son plat est fini. - L'employer du buffet fait le tour de chaque compartiment du buffet, s'il y a un un buffet à moins de 100g alors il vérifie qu'il est libre (se met en wait sinon) et le remplit. + Difficulté : -Nous avons pas vraiment rencontré de difficulté, on a juste eu parfois quelque -oublie (notifyAll manquant par exemple) \ No newline at end of file +Nous n'avons pas vraiment rencontré de difficulté, on a juste eu parfois quelque +oublie (notifyAll manquant par exemple). +On avait aussi commencé dans Stand_de_cuisson par faire une Queue, on a ensuite +remplacé par un sémaphore, qui est au final beaucoup plus simple, mais le verrou +n'est plus équitable, ce n'est plus le Client qui attend depuis le plus long temps +qui est prioritaire. \ No newline at end of file