Sempahore

Fermé
lafa73 - 15 oct. 2008 à 18:20
spoophy Messages postés 354 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 19 août 2009 - 31 déc. 2008 à 01:27
Bonjour,
lorsque une fille entre dans la douche , une autre fille peut y rentrer mais pas un garcon et la meme chose pour les garcons, une glissiere indique vide, occupe par les fille, occuper par les garcons
ecrire un algorithme avec des sempahores faire des code des fonctions suivants fille-veut-entrer, garcon-veut-entrer, fille-sort, garcon-sort ensuite en utilisant ces 4 fonctions faire le code filles et garcons

voici ma reponse que j ai faite

fille-veut-entrer ()
p(mutex)
p(fille)
repeter
entrer-fille()
finrepeter
V(mutex)
v(fille)

9 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
15 oct. 2008 à 18:40
Salut,
Les sémaphores doivent être binaires ou pas forcément dans ton exercice ?
Cdt
1
Yuku Messages postés 199 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 22 mars 2012 4
15 oct. 2008 à 18:43
Ah oui avec un truc genre

Bool Semaphore
Si Semaphore := 0
Semaphore_Allume;
Sinon Si Semaphore := 1
Semaphore_Eteint;
Fin Si
Fin Si



?
1
lafa73 Messages postés 39 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 27 octobre 2008 1
27 oct. 2008 à 09:27
rebonjour tout lemonde
voici une proposition y as t il quelqu un qui pourrait m aider

entrer_fille()
debut
p(entrer_fille)
compt = compt +1
si compt = 1 alors
p(glissiere)
glissiere = "occupe"
fsi
v(glissiere)
v(entrer_fille)
fin
j attend vos remarque a plus
0
Bonjour,

J'ai exactement le même exercice et je bloque complètement. Est ce que tu as réussi à avoir une solution depuis? Si oui, je serai intéressée.

Merci d'avance.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
spoophy Messages postés 354 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 19 août 2009 41
31 déc. 2008 à 01:27
et bien de nos jours on donne des exo sur les semaphores de plus en plus interessant si sa revené a moi je le ferer faux exprès
0
Yuku Messages postés 199 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 22 mars 2012 4
15 oct. 2008 à 18:25
Si j'ai bien compris il faut créer 4 fonctions et les assigner à la fonction principale ?
-1
Yuku Messages postés 199 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 22 mars 2012 4
15 oct. 2008 à 18:37
Perso je ferais ça ...

Algorithme Douche(personne, personne2)

Début

Tant que personne != 'F' OU personne != 'G' faire

Ecrire("Qui est dans la douche? (F : fille, G : garçon)");
Lire(Personne);

Fin Tant que

Tant que personne2 != 'F' OU personne2 != 'G' faire

Ecrire("Qui d'autre veut rentrer? (F : fille, G : garçon)");
Lire(Personne2);

Fin Tant que

Si (personne := 'F') alors
Ecrire("Occupé par les filles");
Si (personne2 := 'F') alors
Ecrire("L'autre fille peut rentrer");
Fin Si

Sinon Si (personne2 := 'G') alors
Ecrire("Le garçon ne peut pas rentrer");
Fin Si
Fin Si

Si (personne := 'G') alors
Ecrire("Occupé par les garçons");
Si (personne2 := 'G') alors
Ecrire("L'autre garçon peut rentrer");
Fin Si

Sinon Si (personne2 := 'F') alors
Ecrire("La fille ne peut pas rentrer");
Fin Si
Fin Si


Fin Douche
-1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
15 oct. 2008 à 18:38
Oui, sauf qu'il veut avec des sémaphores ^^.
-1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
15 oct. 2008 à 18:47
C'est déjà mieux.
En fait c'est juste avec des P() et des V() comme dans son exemple.
Mais, je me demande s'il doit utiliser des sémaphores binaires ou pas forcément.
-1
lafa73 Messages postés 39 Date d'inscription vendredi 7 mars 2008 Statut Membre Dernière intervention 27 octobre 2008 1
15 oct. 2008 à 19:36
non pas necessairement des semaphore binaire , juste les p() et v() je vous remercie
-1