un sémaphore est bloquant, que si son compteur interne est égal à 0.
Si la taille du tuyau est infini, on n'a pas besoin de compter les places libres, le producteur peut produire sans contrainte, donc le système à besoin que d'un sémaphore
J'ai oublié de parler de l'initialisation :
au début on initialise les sémaphores:
* le sémaphore, qui compte les places occupées, est initialisé à 0
** il n'y a pas eu, encore, de production
** les consommateurs seront bloqués en attente d'une production
* le sémaphore, qui compte les place libre, est initialisé à la taille du tuyau
** le producteur peut produire autant d'élément qu'il y a de la place dans le tuyau
Ce système fonctionne si la production et la consommation ont une vitesse moyenne équivalente, sinon le plus rapide attendra le plus lent.
[^] # Re: Verrous, sémaphore et mutex
Posté par jmax17 . En réponse à la dépêche Instantané sur le parallélisme et le code. Évalué à 2.
un sémaphore est bloquant, que si son compteur interne est égal à 0.
Si la taille du tuyau est infini, on n'a pas besoin de compter les places libres, le producteur peut produire sans contrainte, donc le système à besoin que d'un sémaphore
J'ai oublié de parler de l'initialisation :
au début on initialise les sémaphores:
* le sémaphore, qui compte les places occupées, est initialisé à 0
** il n'y a pas eu, encore, de production
** les consommateurs seront bloqués en attente d'une production
* le sémaphore, qui compte les place libre, est initialisé à la taille du tuyau
** le producteur peut produire autant d'élément qu'il y a de la place dans le tuyau
Ce système fonctionne si la production et la consommation ont une vitesse moyenne équivalente, sinon le plus rapide attendra le plus lent.