Questions et réponses sur les sémaphores du système d'exploitation # 1

Question: Expliquez les sémaphores et écrivez une courte note dessus.

Answer:Dijkestra a proposé une technique significative pour gérer les processus concurrents pour des problèmes complexes d'exclusion mutuelle. Il a introduit un nouvel outil de synchronisation appelé Semaphore.

Les sémaphores sont de deux types -

  1. Sémaphore binaire

  2. Compter le sémaphore

Le sémaphore binaire ne peut prendre que les valeurs 0 & 1. Le comptage du sémaphore peut prendre des valeurs entières non négatives.

Deux opérations standard, attente et signal sont définies sur le sémaphore. L'entrée dans la section critique est contrôlée par l'opération d'attente et la sortie d'une région critique est assurée par une opération de signal. Les opérations d'attente et de signal sont également appelées opérations P et V. La manipulation du sémaphore (S) se déroule comme suit:

  1. La commande d'attente P (S) décrémente la valeur du sémaphore de 1. Si la valeur résultante devient négative, la commande P est retardée jusqu'à ce que la condition soit satisfaite.

  2. L'opération V (S) ie signaux incrémente la valeur du sémaphore de 1.

L'exclusion mutuelle sur le sémaphore est appliquée dans P (S) et V (S). Si un certain nombre de processus tentent P (S) simultanément, un seul processus sera autorisé à se poursuivre et les autres processus seront en attente. Ces opérations sont définies comme sous -

P(S) or wait(S): 
If S > 0 then
   Set S to S-1
Else
   Block the calling process (i.e. Wait on S)

V(S) or signal(S): 
If any processes are waiting on S
   Start one of these processes
Else
   Set S to S+1

Les opérations de sémaphore sont implémentées en tant que services du système d'exploitation et donc wait et signal sont de nature atomique, c'est-à-dire qu'une fois lancées, l'exécution de ces opérations ne peut pas être interrompue.

Ainsi, le sémaphore est un mécanisme simple mais puissant pour assurer l'exclusion mutuelle entre les processus concurrents.