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