Exclusão mútua

Exclusão mútua (também conhecida pelo acrônimo mutex para mutual exclusion, o termo em inglês) é uma técnica usada em programação concorrente para evitar que dois processos ou threads tenham acesso simultaneamente a um recurso compartilhado, acesso esse denominado por seção crítica.

Um meio simples para exclusão mútua é a utilização de um semáforo binário, isto é, que só pode assumir dois valores distintos, 0 e 1. O travamento por semáforo deve ser feito antes de utilizar o recurso, e após o uso o recurso deve ser liberado. Enquanto o recurso estiver em uso, qualquer outro processo que o utilize deve esperar a liberação.

Porém, essa técnica pode causar vários efeitos colaterais, como deadlocks, em que dois processos obtêm o mesmo semáforo e ficam esperando indefinidamente um outro processo liberar o semáforo; e inanição, que é quando o processo nunca dispõe de recursos suficientes para executar plenamente.

Computação distribuída[editar | editar código-fonte]

Em sistemas distribuídos existem alternativas para se obter exclusões mútuas, que também apresentam garantias de justiça, ausência de deadlock e ausência de livelock (situação na qual uma unidade concorrente não consegue terminar a execução ou entrar em uma seção crítica por excesso de trabalho ou falta de velocidade; difere de deadlock por estar ativa e não bloqueada ou aguardando algo). Exemplos incluem o algoritmo centralizado e o algoritmo em anel.

Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.