Dans mes études j'ai eu du mal a comprendre et appliquer le principe du modèle producteur/consommateur et puis un jour la révélation :
* le producteur compte le nombre de place libre dans le tuyau et il bloque quand il n'y a plus de place libre
* le consommateur compte le nombre de place "occupé" ou le nombre d'élément dans le tuyau et bloque si il n'y a plus rien
* donc il nous faut
** un semaphore qui compte les places libre
** un semaphore qui compte les places occupée
Le producteur
* décrémente les places libres (sem_wait(place_libre) )
** bloque si place libre égale 0
* produit
* incrémente place occupée (sem_post(place_occupé) )
Le consommateur
* décrémente les places occupées (sem_wait(place_occupé) )
** bloque si place occupée égale 0
* consomme
* incrémente place libre (sem_post(place_libre) )
Mais j'ai oublié la signification de V() et de P()
[^] # 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.
Dans mes études j'ai eu du mal a comprendre et appliquer le principe du modèle producteur/consommateur et puis un jour la révélation :
* le producteur compte le nombre de place libre dans le tuyau et il bloque quand il n'y a plus de place libre
* le consommateur compte le nombre de place "occupé" ou le nombre d'élément dans le tuyau et bloque si il n'y a plus rien
* donc il nous faut
** un semaphore qui compte les places libre
** un semaphore qui compte les places occupée
Le producteur
* décrémente les places libres (sem_wait(place_libre) )
** bloque si place libre égale 0
* produit
* incrémente place occupée (sem_post(place_occupé) )
Le consommateur
* décrémente les places occupées (sem_wait(place_occupé) )
** bloque si place occupée égale 0
* consomme
* incrémente place libre (sem_post(place_libre) )
Mais j'ai oublié la signification de V() et de P()