Discussion:Barrière de synchronisation

Dernier commentaire : il y a 17 ans par 80.11.237.172
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Version simplifiée pour 2 processus modifier

Il existe une version simplifiée lorsqu'un a uniquement 2 processus. L'inconvénient c'est que les deux programmes doivent être différents.

Nécessite 2 sémaphores A et B initialisés à 0.

Programme1:
   V(A)
   P(B)
Programme2:
   V(B)
   P(A)

Ça nécessite certes que les deux processus aient un code différent, donc utilisable lorsqu'il ne s'agit pas de deux instances d'un même programme. Mais c'est algorithmiquement beaucoup plus simple que la version pour N processus. (Peut-on faire plus simple ?) Si on veut donner un peu de sens, on peut dire que chaque programme Vend son sémaphore afin d'indiquer à l'autre qu'il est arrivé au point de rendez-vous, puis il Prend l'autre sémaphore afin d'attendre l'autre processus si il n'est pas encore arrivé. On pourait généraliser à N processus avec chaque processus qui Vend N fois son sémaphore, puis Prend tous les autres, mais au delà de 3 processus ce n'est plus rentable au niveau de la taille du code ni au niveau du nombre de sémaphore.

my 2 cents 80.11.237.172 12 mai 2007 à 17:40 (CEST)Répondre

Revenir à la page « Barrière de synchronisation ».