Discussion:Barrière de synchronisation

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
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 le code]

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]