1. Sistemas Operacionais
-Deadlocks
Ernesto Massa
(slides fornecidos pela Prentice Hall
e adaptados para esta disciplina)
1
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
2. Deadlock
Suponha a seguinte situação:
Um processo detenha o recurso A e
solicite o recurso B. Ao mesmo tempo
um outro processo detém B e solicita A.
Ambos são bloqueados
permanentemente!
Esta situação é chamada de
DEADLOCK.
Pearson Education
2
Sistemas Operacionais Modernos – 2ª Edição
3. Condições Necessárias ao
Deadlock
Exclusão Mútua
Todo recurso está associado a apenas um processo,
ou se encontra disponível.
Posse e Espera
Processos retêm alguns recursos, aguardando por
outros recursos necessários.
Não Preempção
Os recursos utilizados por um processo não podem
ser retirados dele sem o seu concentimento.
Espera Circular
Formação de uma cadeia circular com 2 ou mais
processos. Cada processo está à espera de ao
menos um recurso retido pelo membro seguinte
dessa cadeia.
Pearson Education
3
Sistemas Operacionais Modernos – 2ª Edição
4. Recursos
Alguns exemplos de recursos em
um sistema computacional:
impressoras
unidades de disco
arquivos
Processos precisam de acesso aos
recursos em uma ordem lógica
particular durante o seu
processamento.
Pearson Education
4
Sistemas Operacionais Modernos – 2ª Edição
5. Recursos
Recursos preemptíveis
Podem ser retirados de um processo
sem provocar quaisquer efeitos
prejudiciais.
Recursos não preemptíveis
Induzem o processo a falhar se forem
retirados.
Pearson Education
5
Sistemas Operacionais Modernos – 2ª Edição
6. Modelagem de Deadlocks
Modelagem com grafos dirigidos
O recurso R está alocado ao processo A
O processo B está solicitando/esperando pelo
recurso S
Os processos C e D estão em deadlock sobre
recursos T e U
Pearson Education
6
Sistemas Operacionais Modernos – 2ª Edição
7. Modelagem de Deadlocks
Estratégias para o tratamento de
Deadlocks:
Ignorar por completo o problema
Algoritmo da Avestruz
Detectar e recuperar
Evitar dinâmicamente
Alocação cuidadosa de recursos
Prevenir
Remover uma das quatro condições
necessárias
Pearson Education
7
Sistemas Operacionais Modernos – 2ª Edição
8. Modelagem de Deadlock
Como ocorre
um deadlock
Pode-se identificar as
quatro condições?
Pearson Education
8
Sistemas Operacionais Modernos – 2ª Edição
9. Algoritmo do Avestruz
Finge que o problema não existe
Razoável quando:
Deadlocks ocorrem muito raramente
O custo da prevenção for muito alto
É uma ponderação entre a
conveniência e a correção.
perfil exato x perfil operacional
Pearson Education
9
Sistemas Operacionais Modernos – 2ª Edição
10. Detecção com um Recurso
de Cada Tipo
Observe a posse e solicitações de
recursos
Um ciclo pode ser encontrado dentro do
grafo, denotando deadlock
Pearson Education
10
Sistemas Operacionais Modernos – 2ª Edição
11. Detecção com vários Recursos
de Cada Tipo
Estruturas de dados necessárias ao
algoritmo de detecção de deadlock
Pearson Education
11
Sistemas Operacionais Modernos – 2ª Edição
12. Detecção com Múltiplos Recursos
de Cada Tipo
Um exemplo
de algoritmo:
Garantia de
recursos
suficientes
para atender
recursiva-
mente a todos
os processos.
Pearson Education
12
Sistemas Operacionais Modernos – 2ª Edição
13. Recuperação de Deadlock
Preempção de Recurso
Retiradade um recurso de algum
processo.
Dependente da natureza do recurso.
Reversão de Estado
Gravação do estado dos processos
periodicamente.
Se for encontrado um deadlock, retorna
a execução ao último estado seguro.
Pearson Education
13
Sistemas Operacionais Modernos – 2ª Edição
14. Recuperação de Deadlock
Recuperação através da eliminação
de processos
Elimina um dos processos no ciclo de
deadlock.
A forma mais grosseira porém mais
simples de se quebrar um deadlock.
Os outros processos conseguem seus
recursos recursivamente.
Deve ser escolhido um processo de
baixo impacto e que pode ser
reexecutado desde seu início.
Pearson Education
14
Sistemas Operacionais Modernos – 2ª Edição
15. Evitando Deadlocks
Trajetórias de Recursos
Trajetórias de recursos de dois processos
Pearson Education
15
Sistemas Operacionais Modernos – 2ª Edição
16. Estados Seguros e Inseguros
O estado em (a) é um estado
seguro
Pearson Education
16
Sistemas Operacionais Modernos – 2ª Edição
17. Estados Seguros e Inseguros
Demonstração de que o estado em
(b) é inseguro
Pearson Education
17
Sistemas Operacionais Modernos – 2ª Edição
18. O Algoritmo do Banqueiro
para um Único Recurso
Três estados de alocação de
recursos
seguro seguro inseguro
Pearson Education
18
Sistemas Operacionais Modernos – 2ª Edição
19. O Algoritmo do Banqueiro
para Múltiplos Recursos
Exemplo do
algoritmo do
banqueiro com
múltiplos
recursos
EXIST.
ALOC.
DISP.
Pearson Education
19
Sistemas Operacionais Modernos – 2ª Edição
20. Prevenção de Deadlock
Exclusão Mútua
Alguns dispositivos (como uma
impressora) podem fazer uso de spool
o daemon de impressão é o único que usa o
recurso impressora.
desta forma deadlock envolvendo a impressora
é eliminado.
Nem todos os dispositivos podem fazer
uso de spool.
Princípio:
Evitar alocar um recurso quando ele não for
absolutamente necessário.
Assegurar que o menor número possível de
processos possa de fato requisitar o recurso.
Pearson Education
20
Sistemas Operacionais Modernos – 2ª Edição
21. Prevenção de Deadlock
Posse e Espera
Exigir que todos os processos requisitem os
recursos antes de iniciarem
um processo nunca tem que esperar por aquilo que
precisa
Problemas
Os processos podem não saber quantos e quais
recursos vão precisar no início da execução
Retenção de recursos por mais tempo que o
necessário,.
Variação:
Cada processo deve desistir de todos os recursos,
para então requisitar todos os que são
imediatamente necessários.
Pearson Education
21
Sistemas Operacionais Modernos – 2ª Edição
22. Prevenção de Deadlock
Não Preempção
Inviável
Considere um processo de posse de
uma impressora
Nomeio da impressão
Tomada a impressora a força!!??
Pearson Education
22
Sistemas Operacionais Modernos – 2ª Edição
23. Prevenção de Deadlock
Espera Circular
Recursos ordenados numericamente
Pearson Education
23
Sistemas Operacionais Modernos – 2ª Edição
24. Prevenção de Deadlock
Resumo das abordagens para
prevenir deadlock
Pearson Education
24
Sistemas Operacionais Modernos – 2ª Edição