ALI

vendredi 31 janvier 2014

Quel est un mutex?

Un objet d'exclusion mutuelle ou mutex est un objet créé pour une utilisation dans des programmes informatiques. La fonction essentielle de mutex est de permettre à un thread de programme multiple de faire usage d'une ressource unique. En général, la fonctionnalité des objets d'exclusion mutuelle est de permettre cette utilisation d'une ressource unique en créant un environnement où l'accès à la ressource est continuellement transmis dans les deux sens entre les divers aspects de ce programme.

Le processus d'activation et la création d'un mutex a lieu lorsque le programme d'ordinateur demande est ouverte. Essentiellement, le programme va créer le mutex et de le rapporter à une ressource spécifique qui est nécessaire pour la fonction efficace du programme ouvert. Comme les ressources est appelé de suite, le système d'exploitation attribue un nom unique pour le mutex et l'utiliser pour identifier le processus aussi longtemps que le programme reste ouvert.

Une fois le mutex est activé et le nom de la session, un autre thread du programme qui nécessite cette ressource peut avoir accès, même si la ressource est déjà en utilisation active par un autre thread. En indiquant un besoin de la ressource, la fonction de MUTEX commencera à alterner l'accès de la ressource dans les deux sens entre les fils. Pour l'utilisateur final, ce processus est transparent. Pour toutes fins utiles, il semble que deux utilisateurs ou deux fils sont nous font de la même ressource en même temps.


Alors que la vitesse du transfert de l'accès est si rapide qu'il n'est même pas perceptible pour l'utilisateur final, il convient de noter que chaque fois que la ressource est en cours d'utilisation, il est effectivement verrouillé sur le fil une dans la séquence. Un autre sujet nécessitant l'utilisation de la ressource émettra une demande qui ira dans une file d'attente et d'y rester jusqu'à ce que le premier thread a fini avec l'utilisation active. À ce moment, la ressource est déverrouillée et la fonction de MUTEX permet le prochain thread dans la file d'attente d'accès actif. Si un troisième fil est active et les besoins en ressources, MUTEX également aligner ce fil dans la file d'attente et accorder l'accès sur une base rotative.