mutex: semaphore d'EM init a 1
empty: semaphore de comptage initialisé a N
full: semaphore de blocage initialisé a 0
je pense que tu n'a pas de probléme avec mutex.
bien dans ce probléme, les consommateurs ne peuvent commencer a consommer que si il y a quelque chose dans le buffer, dans ce cas les producteur sont prioritaires, alors tu remarquera un wait(full) avant uun signal(full).
tu trouvera la meme "astuce" dans le sema rendez vous, ou la bariere ne peux se lever que si on a N pss, qui font signal...je sais pas si j'ai eté assé clair !!
Empty c'est le contraire! quand le buffer est plein empty passe a 0, et chaque fois qu'un consomateur lit du buffer il vide une case et donc redonne l'acces a un producteur, le but n'est pas de proteger les variables, car mutex s'en charge mais de s'assurer que pour ecrire il faut y a voir un vide
empty: semaphore de comptage initialisé a N
full: semaphore de blocage initialisé a 0
je pense que tu n'a pas de probléme avec mutex.
bien dans ce probléme, les consommateurs ne peuvent commencer a consommer que si il y a quelque chose dans le buffer, dans ce cas les producteur sont prioritaires, alors tu remarquera un wait(full) avant uun signal(full).
tu trouvera la meme "astuce" dans le sema rendez vous, ou la bariere ne peux se lever que si on a N pss, qui font signal...je sais pas si j'ai eté assé clair !!
Empty c'est le contraire! quand le buffer est plein empty passe a 0, et chaque fois qu'un consomateur lit du buffer il vide une case et donc redonne l'acces a un producteur, le but n'est pas de proteger les variables, car mutex s'en charge mais de s'assurer que pour ecrire il faut y a voir un vide
Commentaire