Índice:
Definição - O que significa Exclusão Mútua (Mutex)?
Uma exclusão mútua (mutex) é um objeto de programa que impede o acesso simultâneo a um recurso compartilhado. Esse conceito é usado na programação simultânea com uma seção crítica, um pedaço de código no qual processos ou threads acessam um recurso compartilhado. Somente um encadeamento possui o mutex por vez, portanto, um mutex com um nome exclusivo é criado quando um programa é iniciado. Quando um encadeamento retém um recurso, ele deve bloquear o mutex de outros encadeamentos para impedir o acesso simultâneo do recurso. Ao liberar o recurso, o thread desbloqueia o mutex.
Techopedia explica Exclusão Mútua (Mutex)
O Mutex entra em cena quando dois threads trabalham nos mesmos dados ao mesmo tempo. Ele atua como um bloqueio e é a ferramenta de sincronização mais básica. Quando um encadeamento tenta adquirir um mutex, ele ganha o mutex, se disponível, caso contrário, o encadeamento é definido como condição de suspensão. A exclusão mútua reduz a latência e espera ocupada usando as filas e as alternâncias de contexto. O Mutex pode ser aplicado nos níveis de hardware e software.
Desabilitar interrupções para o menor número de instruções é a melhor maneira de impor o mutex no nível do kernel e impedir a corrupção de estruturas de dados compartilhadas. Se vários processadores compartilharem a mesma memória, um sinalizador será definido para ativar e desativar a aquisição de recursos com base na disponibilidade. O mecanismo de espera ocupada aplica mutex nas áreas de software. Isso é fornecido com algoritmos como o algoritmo de Dekker, o algoritmo de padaria preto-branco, o algoritmo de Szymanski, o algoritmo de Peterson e o algoritmo de padaria de Lamport.
Leitores mutuamente exclusivos e códigos de classe de leitura / gravação mutex podem ser definidos para uma implementação eficiente do mutex.