Sémaphore vs Mutex

Auteur: Laura McKinney
Date De Création: 4 Avril 2021
Date De Mise À Jour: 10 Peut 2024
Anonim
Sémaphore vs Mutex - Autre
Sémaphore vs Mutex - Autre

Contenu

La différence entre sémaphore et mutex est que sémaphore est un mécanisme de signalisation alors que mutex est le mécanisme de verrouillage.


Le système d'exploitation est le concept le plus important en informatique. Dans le système d'exploitation, deux concepts principaux sont sémaphore et mutex. Il y a beaucoup de différence entre un sémaphore et un mutex. Si nous parlons de la différence principale, la différence principale entre sémaphore et mutex est que sémaphore est un mécanisme de signalisation, tandis que mutex est le mécanisme de verrouillage.

La différence entre sémaphore et mutex vient des processus; Le sémaphore effectue les opérations wait () et signal (). Cette fonction est chargée de savoir s’ils ont acquis ou ont libéré la ressource. D'autre part, si nous parlons de mutex, le mutex est le mécanisme de verrouillage.

Le sémaphore est une variable entière S; Le sémaphore est un mécanisme de signalisation. Dans un système d'exploitation, un outil de synchronisation est nécessaire et cet outil dans le système d'exploitation est appelé sémaphore. Il y a deux fonctions principales du sémaphore qui attendent (), signal (). La valeur du sémaphore est modifiée avec deux fonctions waiting () et signal (). Lorsqu'un processus utilise une ressource, le sémaphore est sur wait (), et lorsque le processus utilise la ressource et que cette ressource est libre, le sémaphore donne alors le signal (). Ces fonctions wait () et signal () sont utilisées car un seul processus peut utiliser la ressource à la fois. Une ressource ne peut pas être donnée à deux processus. Il existe deux types de sémaphore dans le système d'exploitation: sémaphore binaire et sémaphore de comptage. Dans le comptage de sémaphore, la valeur initialisée est le nombre de ressources disponibles. Lorsqu'un processus utilise une ressource, il fait face à wait () et doit attendre cette ressource. La valeur du sémaphore de comptage est décrémentée une par une. Lorsqu'un processus utilise une ressource, il libère cette ressource et publie signal () de sorte qu'il doit être libre pour un autre processus. Lorsque le nombre de ressources est égal à 0, cela signifie qu'aucune ressource n'est disponible pour le processus à venir. Il existe deux valeurs dans le sémaphore binaire qui sont 0 et 1. Lorsque le processus utilise une valeur de ressource du sémaphore binaire est comprise entre 1 et 0 et lorsqu'une ressource a utilisé la ressource, la valeur du sémaphore binaire passe de 1 à 0.


Le mutex est également appelé objet d'exclusion mutuelle. Nous savons qu'un seul processus peut utiliser une ressource à la fois. C'est la raison pour laquelle il existe un système de verrouillage, et ce système de verrouillage est appelé un mutex. Un verrou mutex est attribué à un processus lorsque celui-ci utilise une ressource. L'objet Mutex a un nom et un identifiant uniques. Dans un programme, chaque fois que le verrouillage mutex est nécessaire, ce dernier est appelé par son nom et son ID. Si nous voyons le code de mutex, nous aurons une compréhension claire de la mise en œuvre et de l’utilisation du verrou mutex.

Contenu: Différence entre le sémaphore et le mutex

  • Tableau de comparaison
  • Sémaphore
  • Mutex
  • Conclusion
  • Vidéo explicative

Tableau de comparaison

BaseSémaphoreMutex
SensLe sémaphore est un mécanisme de signalisationLe mutex est un mécanisme de verrouillage.
ValeurLe sémaphore est un entier.Un mutex est un objet.
OpérationOpérations sur les sémaphores wait () et signal ().Les opérations de mutex sont verrouillées et déverrouillées
Les typesDeux types de sémaphore comptent les sémaphores et les sémaphores binaires.Il n'y a pas de types de verrou mutex.

Sémaphore

Le sémaphore est une variable entière S; Le sémaphore est un mécanisme de signalisation. Dans un système d'exploitation, un outil de synchronisation est nécessaire et cet outil dans le système d'exploitation est appelé sémaphore. Il y a deux fonctions principales du sémaphore qui attendent (), signal (). La valeur du sémaphore est modifiée avec deux fonctions waiting () et signal (). Lorsqu'un processus utilise une ressource, le sémaphore est sur wait (), et lorsque le processus utilise la ressource et que cette ressource est libre, le sémaphore donne alors le signal (). Ces fonctions (wait () et signal ()) sont utilisées car un seul processus peut utiliser la ressource à la fois.


Une ressource ne peut pas être donnée à deux processus. Il existe deux types de sémaphore dans le système d'exploitation: sémaphore binaire et sémaphore de comptage. Dans le comptage de sémaphore, la valeur initialisée est le nombre de ressources disponibles. Lorsqu'un processus utilise une ressource, il fait face à wait () et doit attendre cette ressource. La valeur du sémaphore de comptage est décrémentée une par une. Lorsqu'un processus utilise une ressource, il libère cette ressource et publie signal () de sorte qu'il doit être libre pour un autre processus. Lorsque le nombre de ressources est égal à 0, cela signifie qu'aucune ressource n'est disponible pour le processus à venir. Il existe deux valeurs dans le sémaphore binaire qui sont 0 et 1. Lorsque le processus utilise une valeur de ressource du sémaphore binaire est comprise entre 1 et 0 et lorsqu'une ressource a utilisé la ressource, la valeur du sémaphore binaire passe de 1 à 0.

Mutex

Le mutex est également appelé objet d'exclusion mutuelle. Nous savons qu'un seul processus peut utiliser une ressource à la fois. C'est la raison pour laquelle il existe un système de verrouillage, et ce système de verrouillage est appelé un mutex. Un verrou mutex est attribué à un processus lorsque celui-ci utilise une ressource. L'objet Mutex a un nom et un identifiant uniques. Dans un programme, chaque fois que le verrouillage mutex est nécessaire, ce dernier est appelé par son nom et son ID. Si nous voyons le code de mutex, nous aurons une compréhension claire de la mise en œuvre et de l’utilisation du verrou mutex.

Différence clé

  1. Le sémaphore est un mécanisme de signalisation alors que Mutex est le verrouillage
  2. Sémaphore est un entier alors que Mutex est un objet.
  3. Les opérations de sémaphore wait () et signal () alors que les opérations de mutex sont verrouillées et déverrouillées.
  4. Deux types de sémaphore comptent le sémaphore et le sémaphore binaire, alors qu’il n’existe aucun type de mutex

Conclusion

Dans cet article, nous voyons clairement la différence entre sémaphore et mutex avec leur mise en œuvre appropriée.

Vidéo explicative