sémaphore

Une définition du Jargon Français.
Aller à : Navigation, rechercher

nom masculin et adjectif.

1.  [système]  [exécution]. Variable (ou type de variable) servant à des processus ou threads à partager une ressource. Par extension cela désigne également les logiques correspondantes.

Il offre moyen de garantir qu'à tout moment une ressource n'est pas employée par trop de processus (ou threads), parce qu'elle le tolère mal ou parce que cela pourrait mener à des incohérences.

C'est de l'« exclusion mutuelle ».

Les fonctions de gestion du sémaphore assurent d'ordinaire cela en modifiant de façon atomique un entier révélant ce qui est encore disponible donc abritant le nombre d'autorisation d'accès simultanés restant à accorder.

Chaque autorisation d'accès accordable est parfois appelée slot.

Le cas le plus simple est celui d'un slot unique, donc d'une ressource ne tolérant qu'un seul utilisateur actif. Le compteur est un booléen donc le sémaphore perçu comme un drapeau. Pour accorder un accès on dira qu'on le « baisse » ou « abaisse », pour enregistrer que la ressource est de nouveau disponible on le « lève » ou « relève ».

D'ordinaire c'est géré par un ensemble de fonctions auxquelles un thread (ou processus) doit s'adresser pour demander accès à quelque chose (par exemple un périphérique):

  1. il appelle l'une d'elles (réservée à cet effet) pour réclamer accès
  2. la fonction appelée détermine l'état du sémaphore et le baisse s'il est levé. Cette détermination et l'éventuel abaissement sont des opérations atomiques). S'il n'est pas levé elle mettra l'appelant en sommeil en le bloquant (sens 3) avant de périodiquement de nouveau déterminer l'état du sémaphore (et l'abaisser si elle y parvient, en ce cas elle passe à l'étape suivante)
  3. la fonction appelée retourne, laissant le sémaphore abaissé. L'appelant (processus ou thread) vient d'obtenir autorisation d'accès exclusif, aucune autre demande ne pourra immédiatement aboutir tant qu'il n'aura pas signifié qu'il ne l'utilise plus
  4. l'appelant emploie la ressource puis exprime qu'il n'en a plus besoin (donc renonce à son autorisation d'accès) en appelant une fonction qui relève le sémaphore

Un sémaphore de ce genre (à tout moment au plus une seule entité dispose de la ressource) est appelé mutex.


2.  [réseau]. Un « réseau sémaphore » est un réseau supplémentaire adjoint à un réseau principal, afin de réduire l'utilisation de ce dernier. Dans le téléphone, par exemple, un réseau sémaphore peut être utilisé pour transmettre le TOOT ! TOOT ! TOOT ! de la sonnerie occupée.