Deadlocks
Modelo do Sistema
Caracterização do Deadlock
Métodos para Tratamento de Deadlocks
Prevenção de Deadlock
Evitando Deadlock
Detecção de Deadlock
Recuperação de Deadlock
Estado Seguro
Única Instância de Cada Tipo de Recurso
Múltiplas Instâncias de um Tipo de Recurso
Terminando o processo
Preempção de Recursos
Introdução
O Problema do Deadlock
Condições Necessárias
Exclusão mútua
Manter e esperar
Não preempção
Espera circular
Grafo de Alocação de Recursos
Deadlock = “Impasse”
Processo espera não consegue mudar de estado
Recursos reservados para outros processos
Sistema = Conjunto finito de recursos
Cada processo utiliza um recurso
Requisição/Solicitação
Uso
Liberação
Se o grafo não contém ciclos
Sem deadlock
Se o grafo contém um ciclo
Apenas uma instância por tipo de recurso
Várias instâncias
Deadlock
Possibilidade de deadlock.
Garantir que o sistema nunca entrará em deadlock
Uma das condições necessárias não seja satisfeita
Entre em um estado de deadlock e se recupere
Ignorar o problema
Uma das condições necessárias não seja satisfeita
Fatos básicos
Garantir que sistema nao entrara estado inseguro
Manter gráfico de espera
Algoritmos usando matrizes
Aborte todos os processos em deadlock
Aborte um processo de cada vez
Seleção uma vítima
Reversão (Rollback)
Starvation
Ex: CPU de 2 núcleos = 2 instâncias