UFMG - Pós-graduação em Ciência da
Computação -
Programação Paralela
A seguir: Buffer com exclusão mútua
Acima: Exclusão Mútua
Anterior: Exclusão Mútua
- Regiões críticas são trechos de
código que tratam variáveis em conflito
- Exclusão mútua : solução mais simples
para se obter a
semântica não determinística
- Pode-se usar variáveis do tipo key, com as operações
lock e unlock
- Todas as regiões críticas devem ser colocadas entre
pares lock e
unlock:
key mutex;
...
lock(mutex);
regiao critica
unlock(mutex)
- Um processo que executa lock sobre uma chave destravada
trava a chave e continua sua progressão
- Um processo que executa lock sobre uma chave travada
tem a sua execução suspensa
- Um processo que executa unlock destrava a chave, e faz
com que todos os processos à espera desta chave tentem travá-la
- Nenhuma suposição deve ser feita sobre a política de escolha do vencedor
- Uma chave é travada por no máximo um processo de cada vez
Osvaldo Carvalho