Différence entre le mutex et le sémaphore

Mutex vs Semaphore

Les mutex sont utilisés pour fournir un accès sérialisé à une partie d'un code ré-entrant qui ne peut pas être exécuté en parallèle par plus d'un thread. Un mutex garantit qu'un seul code peut accéder à la section contrôlée à la fois. Pour y accéder, les autres codes sont mis en attente jusqu'à la fin du premier code. Vous pouvez considérer cela comme une clé de pièce. La personne ayant accès à cette clé commence en premier. Jusqu'à ce que la personne revienne, personne d'autre ne peut accéder à cette pièce..

Semaphore donne accès à une ressource partagée à plusieurs utilisateurs simultanément. À mesure que le nombre d'utilisateurs accédant à la ressource augmente, le nombre de sémaphores diminue. Une fois que les utilisateurs commencent à libérer la ressource, le nombre de sémaphores recommence à augmenter. Il est utilisé par les applications nécessitant une synchronisation. Le nombre d'utilisateurs simultanés est limité en fonction de la limite de sémaphores. Un sémaphore peut être considéré comme un groupe de clés similaires à des serrures similaires à une seule pièce, mais le nombre de ces clés est limité. Les personnes qui ont ces clés peuvent partager la chambre.

Différences entre mutex et sémaphore:

1. Mutex est utilisé pour l'exclusion mutuelle alors que le sémaphore trouve son utilité dans les deux cas

notification et exclusions mutuelles.

2. Mutex fournit un accès série à des ressources communes alors que sémaphore impose une limite à

le nombre d'accès simultanés.

3. Un mutex fonctionne avec un thread à la fois tandis que le sémaphore gère plusieurs threads

ensemble.

4. Mutex a la notion de propriétaire où le processus qui verrouille le mutex ne peut que

rouvrez-le. Aucun des autres processus ne peut le faire. Mais dans le cas de sémaphore, une telle

les restrictions n'existent pas.

5. Un mutex est un mécanisme de verrouillage alors qu'un sémaphore est un mécanisme de signalisation avec

en ce qui concerne la synchronisation de l'accès à une ressource.

Résumé:

1. Sémantiquement et théoriquement, mutex et sémaphore sont identiques. On peut être

mis en œuvre en utilisant l'autre, mais pratiquement les deux sont différents.

2. Un mutex n'est rien d'autre qu'un sémaphore avec une valeur de comptage égale à un.

3. Un mutex est un sémaphore avec des fonctionnalités supplémentaires telles que la propriété et l'inversion de priorité

protection.

4. Un sémaphore est un type de données abstrait contrôlant l’accès à une ressource commune par

plusieurs processus dans un environnement de programmation parallèle.

5. Semaphore trouve son utilisation dans de nombreux systèmes d'exploitation en tant que primitive de synchronisation.

6. Le mutex et le sémaphore sont des ressources du noyau utilisées aux fins de

synchronisation.