Please enable JavaScript.
Coggle requires JavaScript to display documents.
Deadlocks - Coggle Diagram
Deadlocks
Métodos para Tratamento de
Deadlocks
Quebrar qualquer umas das 4 condições
Ignorar o problema caso seja raro de acontecer
Permitir o Deadlock e recuperar o sistema
Necessário identificar o deadlock
Caracterização do Deadlock
Condições Necessárias
Exclusão mútua
um processo de cada vez pode usar um recurso
Manter e esperar
Espera de recursos de um outro processo
Não preempção
recurso liberado voluntariamente pelo processo que o mantém
Espera circular
Grafo de Alocação de Recursos
Processo:(Bolinha)
Tipo de recurso(Quadrado)
Pi solicita instância de Rj (Pi ->RI)
Pi está mantendo uma instância de Rj (Pi<-Ri)
Se o grafo não contém ciclos → sem deadlock
Se o grafo contém um ciclo →
uma instância por tipo de recurso, então deadlock.
várias instâncias por tipo de recurso, possibilidade de deadlock
Evitando Deadlock
Estado seguro
Não há Deadlock
SO verifica se pode liberar todos os recursos para terminar o processo
Se houver os recursos ele libera para o processo
Se não houver ele não libera para não entrar em estado inseguro
Estado Inseguro
Há possibilidade de Deadlock
Detecção de Deadlock
Única Instância de Cada Tipo
de Recurso
Manter gráfico de espera
Chamar um algoritmo para verificar se há um ciclo no gráfico
Se houver ciclo, então há Deadlock
Múltiplas Instâncias de um
Tipo de Recurso
Chamar algoritmos para essa situação, usando matrizes
Recuperação de Deadlock
Deixar o Sistema resolver
Terminando processos
Possibilidades
Aborte todos os processos em deadlock
Aborte um processo até que o ciclo de deadlock seja eliminado
Ordem para abortar processo
Prioridade do processo
Por quanto tempo o processo foi executado, e quanto falta terminar
Recursos que o processo utilizou
Recursos que o processo precisa para completar
Quantos processos terão que ser terminados
O processo é interativo ou batch
Preempção de Recursos
Seleção uma vítima
Ordem = minimização dos custos
Quais recursos/processos devem ser preemptados?
Reversão (Rollback)
Retornar a algum estado seguro, reiniciar processo
para esse estado.
Starvation
Incluir número de rollbacks no fator de custo.
Algum processo pode ser apanhado como vítima
Deixar o usuário resolver
Prevenção de Deadlock
Quebrar uma das 4 condições de existência do Deadlock