-
-
-
-
CENAPAD-MGCO
A seguir: Resumo e Conclusões
Acima: Chaves e Camas
Anterior: Camas
- Em um multiprocessador com memória compartilhada a
inibição de interrupções não é suficiente para obter a
exclusão
mútua no acesso ao núcleo;
- Este mecanismo é implementado por instruções especiais (
[Dinning, 1989] descreve este e inúmeros outros mecanismos;
[Dubois et al., 1988] também parece ser interessante)
como
boolean testAndSet(boolean lockState, boolean newLockState)
- Instruções testAndSet tem a atomicidade relativa a
outras testAndSet
garantida pelo hardware;
- boolean testAndSet(boolean lockState, boolean newLockState) faz
lockState = newLockState e retorna o valor antigo deste parâmetro
- Código para travamento do núcleo:
while (testAndSet(lockState, true)){}
- Código para destravamento do núcleo:
testAndSet(lockState, false)
(reparem no uso de espera ocupada)
Osvaldo Carvalho
-
Postscript -
Comentários?