Barrière de synchronisation
Un article de Wikipédia, l'encyclopédie libre.
Cet article est une ébauche concernant l’informatique.
Vous pouvez partager vos connaissances en l’améliorant. (Comment ?).
|
Une barrière de synchronisation permet de garantir qu'un certain nombre de tâches ait passé un point spécifique. Ainsi, chaque tâche qui arrivera sur cette barrière devra attendre jusqu'à ce que le nombre spécifié de tâches soient arrivées à cette barrière.
[modifier] Algorithme
Pour réaliser une barrière de synchronisation, il faut disposer de deux sémaphores et d'une variable :
- Un sémaphore MUTEX (initialisé à 1) protégeant la variable.
- Un sémaphore ATTENTE (initialisé à 0) permettant de mettre en attente les tâches.
- Une variable Nb_Att (initialisée à 0) permettant de compter le nombre de tâches déjà arrivées à la barrière de synchronisation.
Il faut encore définir la constante N qui indique le nombre de tâches devant arriver à la barrière avant de l'ouvrir.
Barriere : P(MUTEX) Nb_Att++ SI Nb_Att==N ALORS POUR I DE 1 à N-1 FAIRE V(ATTENTE) FIN POUR Nb_Att=0 V(MUTEX) SINON V(MUTEX) P(ATTENTE) FIN SI
[modifier] Exemple d'utilisation
Les barrières de synchronisation peuvent être utilisées pour
- Garantir qu'une ou plusieurs tâches ont effectués une opération particulière.
- Attendre la fin d'un ensemble de tâches
[modifier] Voir aussi
- L'article sur les sémaphores
|
|
|
|