-
-
-
-
CENAPAD-MGCO
A seguir: Buffer com exclusão mútua
Acima: Regiões Críticas
Anterior: O Par Produtor-Consumidor: Buffer
- 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 permite
que outros 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
-
Postscript -
Comentários?