Escolar Documentos
Profissional Documentos
Cultura Documentos
IESTI
Overview
1. Introdução
4. Prevenção
1
Introdução
Deadlock
3
Recursos no contexto de Deadlock
} Preemptivos
◦ Podem ser retirados dos processos sem prejuízos
◦ Exemplo: memória
} Não-preemptivos
◦ Não pode ser retirado do processo sem causar falhas no
processamento
5
Deadlock em Sistemas Distribuídos
Deadlocks em Sistemas Distribuídos
7
Deadlocks em Sistemas Distribuídos
Deadlock de comunicação:
Ocorre quando, por exemplo, um processo A está tentando
enviar uma mensagem para um processo B que, por sua vez,
está tentando enviar uma mensagem para um processo C, que
está tentando enviar uma mensagem para o processo A. Neste
caso, poderia ocorrer deadlock se não houvesse buffers
disponíveis
8
Deadlocks em Sistemas Distribuídos
Deadlock de recurso:
Ocorre quando processos estão disputando acessos exclusivos
à dispositivos de I/O, arquivos, etc.
9
Deadlocks em Sistemas Distribuídos
Algoritmo do Avestruz
} Estratégia que decide por não tratar os deadlocks.
} Muitos defendem que a frequência de ocorrência deste tipo
de evento é baixa demais para que seja necessário
sobrecarregar a CPU com códigos extras de tratamento
} Muito utilizado em sistemas gerais, tais como automação
de escritórios, controle de processos, etc.
} Partes individuais das aplicações podem implementar seus
próprios mecanismos de tratamento de deadlock, tais
como banco de dados distribuídos
10
Deadlocks em Sistemas Distribuídos
Detecção e Recuperação
A detecção e recuperação também são abordagens bastante
utilizadas, principalmente porque prevenir e evitar são
abordagens mais complexas
Prevenção
A prevenção também é possível, embora mais complexa do
que as formas de prevenção utilizadas em sistemas com um
único processador
Impedimento
As abordagens de impedimento, em geral, não são utilizadas
em sist. distribuídos, principalmente porque é muito difícil
saber quais recursos que cada processo irá eventualmente
precisar (algoritmo do banqueiro).
11
Detecção de Deadlocks em Sistemas
Distribuídos
Detecção
13
Detecção
14
Detecção Centralizada
15
Detecção Centralizada
16
Possibilidades para Detecção Centralizada
17
Detecção Centralizada
Exemplo:
} Sistema com os processos A e B executando na máquina 0 e
o processo C executando na máquina 1
} Três recursos: R, S e T
18
Detecção Centralizada
Inicialmente:
} O processo A mantém o recurso S e deseja R;
} O processo B mantém o recurso R;
} O processo C detém o recurso T e deseja o recurso S
19
Detecção Centralizada
Nesta situação:
20
Detecção Centralizada
No entanto, se:
} Após um tempo, B libera R e requisita T, uma operação
perfeitamente segura
} A máquina 0 envia uma mensagem para o coordenador
anunciando a liberação de R e a máquina 1 envia uma
mensagem para o coordenador anunciando que agora B
está esperando por T
} Infelizmente, se a mensagem da máquina 1 chega primeiro,
leva o coordenador a construir o grafo seguinte, levando a
um falso deadlock
21
Detecção Centralizada
22
Detecção Centralizada
23
Detecção Distribuída
24
Detecção Distribuída
} Cada arco passa por um recurso, mas este foi omitido para
simplificar
} O processo 3 está esperando por 2 recursos, um em posse
do processo 4 e outro em posse do processo 5
} Alguns processos estão aguardando por recursos locais
(processo 1, máquina 0), enquanto outros estão
aguardando por recursos alocados em outras máquinas
(processo 2, máquina 0)
} Abaixo, um grafo de alocação de recursos modificado,
somente os processos são apresentados
25
Detecção Distribuída
26
Detecção Distribuída
27
Detecção Distribuída
28
Detecção Distribuída
29
Prevenção
Prevenção
31
Prevenção
32
Prevenção
33
Prevenção
34
DÚVIDAS?