|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Étudiant Inscription : juin 2012 Messages : 2 ![]() |
Bonjour à tous, j'ai vraiment du mal avec les sémaphores un peu d'aide serai le bien venu, j'ai cherché partout mais j'ai pas réussi à trouvé
Voilà l'énoncé du programme : Un processus P crée des bonbons et un processus C en prend. Ils ont une vitrine en commun où sont placés les bonbons. Les 2 processus tournent indéfiniment. La vitrine ne peut pas être touché par plus d'une personne à la fois. Si la vitrine est pleine, le processus P arrête de créer des bonbons. Si la vitrine est vide, le processus C arrête de prendre des bonbons. Soit M le nombre max de bonbons que la vitrine peut contenir. La structure du projet est la suivante : PC-ini.c : crée les sémaphores P.c : le producteur qui rajoute un bonbon quand la vitrine n'est pas pleine C.c : le consommateur qui prend un bonbon quand la vitrine n'est pas vide J'ai fait PC-ini.c Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() |
J'ai du mal à voir pourquoi tu as besoin d'un troisième sémaphore pour l'exclusion mutuelle, quand tu n'as qu'un seul producteur et un seul consommateur.
Pour faire que le producteur ne fasse rien quand la vitrine est pleine, c'est simple: Tu le fais attendre sur le sémaphore "places libres". PS: pourquoi déclarer arg comme variable globale?
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com