Deadlocks
Modelo do Sistema Caracterização de Deadlock Métodos para Tratamento de Deadlocks Prevenção de Deadlock Evitando Deadlock Detecção de Deadlock Recuperação de Deadlock Abordagem Combinada para Tratamento de Deadlock
INE5355 – Sistemas Operacionais I
3.1
Recursos
Tipos de Recursos R1, R2, . . ., Rm ciclos de UCP, espaço de memória, dispositivos de E/S
Processos precisam acessar recursos ordenadamente Supor que um processo mantém um recurso A
− No mesmo tempo outro processo mantém B e requisita A − Os dois são bloqueados e permanecem assim
INE5355 – Sistemas Operacionais I
3.2
Recursos (1)
Deadlocks ocorrem quando …
− Processos tem garantido acesso exclusivo aos dispositivos − Estes dispositivos são referidos como recursos
Recursos preemptáveis
− Podem ser retirados de um processo sem efeitos negativos
Recursos não-preemptáveis
− Causa falha do processo se forem retirados do mesmo
INE5355 – Sistemas Operacionais I
3.3
Recursos (2)
Cada processo utiliza um recurso como segue:
− requisita − usa − Libera
Deve esperar se requisição é rejeitada
− Processo requisitante pode ser bloqueado − Pode falhar com código de erro
INE5355 – Sistemas Operacionais I
3.4
O Problema Deadlock
Definição formal: Um conjunto de processos esta em deadlock se cada processo do conjunto está esperando por um evento que somente outro processo no conjunto pode causar. Usualmente o evento é a liberação de um recurso Nenhum dos processos pode:
− executar − Liberar recurso − Ser acordado
INE5355 – Sistemas Operacionais I
3.5
Caracterização de Deadlock
Deadlock pode existir se 4 condições acontecem simultaneamente. Exclusão Mútua:
− Cada recurso alocado a apenas um processo por vez ou
livre
Manter e esperar:
− processos mantendo recurso podem requisitar recursos
adicionais.
Sem preempção:
− um recurso previamente garantido não pode ser retirado do
processo
Espera Circular:
− Deve