Sémaphore
En informatique, un sémaphore est une variable qui contrôle l’accès à une ou plusieurs ressources. Il s’agit d’un outil que les développeurs utilisent pour s’assurer que les fonctions accèdent uniquement à des données valides et s’exécutent au bon moment. Un sémaphore peut empêcher un blocage mutuel ou une condition de concurrence en interdisant l’accès à une ressource lorsqu’elle n’est pas disponible.
Il existe deux principaux types de sémaphores en programmation informatique : les sémaphores binaires et les sémaphores compteurs.
Sémaphores binaires
Un sémaphore binaire est une variable booléenne qui ne peut avoir que deux valeurs possibles (0 ou 1). Il est souvent utilisé comme verrou pour limiter l’accès à une fonction ou à une ressource. Par exemple, le sémaphore A contrôle la fonction getData(). Si A = 0, getData() ne s’exécutera pas. Si A = 1, getData() s’exécutera. Un sémaphore binaire est également considéré comme un indicateur ou un interrupteur qui est soit activé, soit désactivé.
Sémaphores compteurs
Un sémaphore compteur peut être n’importe quel entier non négatif, également appelé nombre entier. Sa valeur peut augmenter ou diminuer en fonction des résultats d’une ou plusieurs fonctions. Par exemple, un sémaphore compteur peut suivre le nombre de ressources disponibles dans un pool de ressources. Si le sémaphore est décrémenté plus souvent qu’il n’est incrémenté, il finira par atteindre 0. Une valeur nulle indique qu’il ne reste plus aucune ressource.
NOTE: Dans le monde réel, un « sémaphore » est un drapeau ou un autre objet utilisé pour envoyer un signal à distance. Par exemple, une personne peut lever une perche depuis un quai pour signaler au capitaine d’un ferry qu’elle souhaite monter à bord.
Testez vos connaissances