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. Este 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. Apenas um segmento possui o mutex por vez, portanto, um mutex com um nome exclusivo é criado quando um programa é iniciado. Quando um encadeamento contém um recurso, ele deve bloquear o mutex de outros encadeamentos para evitar o acesso simultâneo do recurso. Ao liberar o recurso, o thread desbloqueia o mutex.
Definirtec explica exclusão mútua (Mutex)
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 thread tenta adquirir um mutex, ele obtém o mutex se estiver disponível, caso contrário, o thread é definido para a condição de suspensão. A exclusão mútua reduz a latência e as esperas de ocupação usando enfileiramento e mudanças de contexto. Mutex pode ser aplicado nos níveis de hardware e software.
Desativar interrupções para o menor número de instruções é a melhor maneira de impor mutex no nível do kernel e evitar a corrupção de estruturas de dados compartilhadas. Se vários processadores compartilham a mesma memória, um sinalizador é definido para ativar e desativar a aquisição de recursos com base na disponibilidade. O mecanismo de espera ocupada impõe mutex nas áreas de software. É fornecido com algoritmos como o algoritmo de Dekker, o algoritmo de confeitaria preto e branco, o algoritmo de Szymanski, o algoritmo de Peterson e o algoritmo de confeitaria de Lamport.
Leitores mutuamente exclusivos e códigos de classe de mutex de leitura / gravação podem ser definidos para uma implementação eficiente de mutex.