Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 17
Deadlock
o Definição forma:
• Processos estão em deadlocks se cada processo estiver esperando por um evento que somente
outro processo no conjunto pode causar
o Muitas vezes, um processo espera por um recurso que outro processo nesse conjunto
detém
o Condições
• Exclusão Mútua
▪ Um recurso só pode estar alocado para um processo em um determinado momento
• Uso e espera (hold and wait)
▪ Processos que já possuem algum recurso podem requerer outros
• Não preempção
▪ Recursos já alocados não podem ser retirados, só o próprio processo pode liberá-los.
• Espera Circular
▪ Um processo espera por recursos alocados a outro processo, em uma cadeia circular.
3
Detecção e recuperação
o Algoritmos:
• Detecção com um recurso de cada tipo.
• Detecção com vários recursos de cada tipo.
• Recuperação por meio de preempção
• Recuperação por meio de rollback (voltar ao passado)
• Recuperação por meio de eliminação de processos
4
Detecção com um único recurso
o Detecção e recuperação
• Definição
• Detecção
• Recuperação
5
Detecção com Vários Recursos
6
Detecção com Vários Recursos
o Duas Matrizes:
• C: matriz de alocação corrente
▪ Cij: número de recursos j mantidos pelo processo i
• R: matriz de requisições
▪ Rij: número de recursos j que o processo i deseja para concluir sua requisição
7
Detecção com Vários Recursos
o Três processos:
• P1 usa uma impressora
• P2 usa duas unidades de fita e uma de CD-ROM
• P3 usa um plotter e duas impressoras
• Cada processo pode precisar de outros recursos
8
Detecção com Vários recursos
o Desafios
• Precisa saber de antemão que recursos serão requisitados
• Quando procurar pelos deadlocks:
▪ Toda vez que um requerimento é feito
▪ A cada K minutos
▪ Quando o uso da CPU caiu abaixo de um valor
9
Recuperação de Deadlocks
o Após a detecção, pode ser iniciada uma ação para se recuperar dele
o Possibilidades:
• Por meio da preempção
▪ Retirar temporariamente um recurso de um processo e entrega-lo a outro
▪ Depende muito da natureza do recurso
▪ Frequentemente difícil ou impossível
10
Recuperação por Rollback
o Novas checagens armazenadas aos novos arquivos à medida que o processo executa
o Criação de um histórico
o O trabalho realizado até esse ponto é perdido, pois o rollback retorna ao ponto em que
não possuía o recurso.
11
Recuperação por eliminação do Processo
12
Evitar Dinamicamente
o Algoritmos:
• Banqueiro para um único tipo de recurso
• Banqueiro para vários tipos de recursos
13
Evitar Dinamicamente
o Estados seguros
• não provocam deadlocks
• Há uma maneira de atender a todas as requisições
• A partir de um estado seguro, existe a garantia de que os processos terminarão
o Estados inseguros:
• podem provocar deadlocks
• Mas não necessariamente provocam
• A partir de um estado inseguro, não é possível garantir que os processos terminarão
corretamente.
14
Evitar Dinamicamente
o Estado seguro:
• Se houver alguma ordem na qual todo processo irá terminar
• Ainda que todos peçam seu número máximo de recursos imediatamente
15
Estado Seguro
A 3 9
B 2 4
C 2 7
Livre: 3
16
Estado Seguro
A 3 9 A 3 9 A 3 9 A 3 9 A 3 9
B 2 4 B 4 4 B 0 - B 0 - B 0 -
C 2 7 C 2 7 C 2 7 C 7 7 C 0 -
Livre: 3 Livre: 1 Livre: 5 Livre: 0 Livre: 7
17
Estado Seguro
A 3 9 A 4 9 A 4 9 A 4 9
B 2 4 B 2 4 B 4 4 B - -
C 2 7 C 2 7 C 2 7 C 2 7
Livre: 3 Livre: 2 Livre: 0 Livre: 4
o Suponha agora:
• A recebe um novo recurso
• B roda até o fim
• Ficamos presos: precisamos de 5 para A ou C, mas só temos 4 livres
o Não há sequencia capaz de garantir que terminem
o A decisão que moveu do primeiro para o segundo passo levou de um estado seguro a um
inseguro
o Decisão deve ser tomada em tempo de execução
18
Estado Seguro
19
Algoritmo do Banqueiro
20
Algoritmo do Banqueiro
o O banqueiro sabe que não precisarão de todo o crédito disponível, por isso reservou 10
dos 22 para distribuir
A 0 6 A 1 6
B 0 5 B 1 5
C 0 4 C 2 4
D 0 7 D 4 7
Livre: 10 Livre: 2 21
Algoritmo do Banqueiro
A 0 6 A 1 6 A 1 6
B 0 5 B 1 5 B 2 5
C 0 4 C 2 4 C 2 4
D 0 7 D 4 7 D 4 7
Livre: 10 Livre: 2 Livre: 1
Seguro Seguro Inseguro
22
Algoritmo do Banqueiro – Múltiplos Recursos
Impressoras
Impressoras
Unidade de
Unidade de
Processos
Processos
Unidades
Unidades
CDROM
CDROM
Plotters
Plotters
de Fita
de Fita
A 3 0 1 1 Alocados → P = (5 3 3 2) A 1 1 0 0
B 0 1 1 0 Disponíveis → A = (1 0 1 0) B 0 1 0 2
C 1 1 1 0 C 3 1 0 0
D 1 1 0 1 D 0 0 1 0
E 0 0 0 0 E 2 1 1 0
C = Recursos Alocados R = Recursos ainda
necessários
23
Algoritmo do Banqueiro
o Desvantagens:
• Pouco utilizado, pois é difícil saber quais recursos serão necessário
• Escalonamento cuidado é caro para o sistemas
• O número de processos é dinâmico e pode variar constantemente, tornado o algoritmo custoso
24
Prevenção de Deadlocks
o Exclusão Mútua: Alocar recursos usandos pooling (só o printer daemon tem acesso direto
à impressora)
o Não preempção: Retirar recursos dos processos – praticamente não implementável, pois
traz prejuízos
25
Exercícios
o Com base no exercício 1 da aula anterior, faça o tratamento do seu Deadlock usando a
recuperação:
• por Rollback
• Por eliminação do Processo
• Evitar Dinamicamente
26