Question

Dans mon manuel, Systèmes d'exploitation:Principes internes et principes de conception (9e édition) par William Stallings au chapitre 5, il explique le fonctionnement des sémaphores :

Le principe fondamental est le suivant :Deux processus ou plus peuvent coopérer au moyen de signaux simples, de sorte qu'un processus peut être obligé de s'arrêter à un endroit spécifié jusqu'à ce qu'il ait reçu un signal spécifique.Toute exigence de coordination complexe peut être satisfaite par la structure appropriée des signaux.Pour la signalisation, des variables spéciales appelées sémaphores sont utilisées.Pour transmettre un signal via le sémaphore s , un processus exécute la primitivesemSignal (s) .Pour recevoir un signal via Semaphore S, un processus exécute le primitif semWait (s) ;Si le signal correspondant n'a pas encore été transmis, le processus est suspendu jusqu'à ce que la transmission ait lieu.

Je ne trouve pas de description dans le chapitre 5 du moment où un sémaphore émettrait un semSignal par rapport à un semWait (qui sont aussi parfois appelés signal et attente).Quelqu'un peut-il décrire les conditions dans lesquelles semSignal serait émis par rapport à semWait ?

Était-ce utile?

La solution

Le sémaphore ne les délivre pas.Un sémaphore est un objet qui peut être utilisé par des processus pour se coordonner entre eux.Ainsi, un processus appellera semSignal ou semWait sur un sémaphore partagé.Nous ne pouvons pas décrire les conditions dans lesquelles il fera cela en général, car c'est à chaque processus de décider comment il souhaite utiliser les sémaphores.Les sémaphores sont une primitive qui peut être utilisée de plusieurs manières.Vous devriez pouvoir trouver de nombreux exemples en ligne ou dans votre manuel d'utilisation de sémaphores pour la coordination ;cela vous donnera quelques exemples de processus spécifiques et quand ces processus particuliers invoqueront ces opérations sur un sémaphore.

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top