Buscar

Modulo 05 - Deadlocks

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Silberschatz ,Galvin, and Gagne19998.1Applied Operating System Concepts
Módulo 8: Deadlocks ou Impasse
• Modelo do Sistema
• Caracterização de Deadlock 
• Métodos para manuseio de Deadlocks
• Prevenção de Deadlock (Prevention)
• Evitar Deadlock (Avoidance)
• Detecção de Deadlock (Detection) 
• Recuperação de Deadlock 
• Método combinado para Manuseio de Deadlock
Silberschatz ,Galvin, and Gagne19998.2
Mutex
Mutex são mecanismos de sincronização que permitem gerir o 
acesso concorrente à “Região Crítica” em modo de exclusividade
(1 utilizador).
Semáforo
Os semáforos são o mecanismo de sincronização mais complexos, 
já que permitem, simultaneamente, gerir o acesso concorrente quer 
em modo de exclusividade (1 utilizador), quer em modo de 
cooperação (N utilizadores).
Revisão
Silberschatz ,Galvin, and Gagne19998.3
Deadlock (ou impasse)
•Definição
“Um conjunto de processos bloqueados cada um 
de posse de um recurso, esperando por um outro 
recurso que já está alocado por outro processo do 
mesmo conjunto”
Silberschatz ,Galvin, and Gagne19998.4Applied Operating System Concepts
O Problema de Deadlock ou Impasse 
• Um conjunto de processos bloqueados, cada um retendo um recurso, e esperando pela aquisição de um recurso retido por um outro processo do conjunto
• Exemplo 
– Sistema possui 2 unidades de fitas;
– P1 e P2 cada um retendo uma unidade de fita e cada um precisando da outra unidade.
• Exemplo 
– semáforos A e B, inicializados com 1
P0 P1
wait (A); wait(B)
wait (B); wait(A)
Silberschatz ,Galvin, and Gagne19998.5Applied Operating System Concepts
Exemplo de Travessia de Ponte
• Tráfego somente em uma direção.
• Cada seção da ponte pode ser vista como um recurso.
• Se um deadlock ocorre, ele pode ser resolvido se um carro voltar (para trás) - preemptar recurso e continuar.
• Vários carros podem ter que voltar no caso de ocorrência de um deadlock.
• É possível ocorrer inanição (Starvation).
Silberschatz ,Galvin, and Gagne19998.6Applied Operating System Concepts
Exemplo de deadlock ou bloqueio perpétuo
• Sejam dois Processos P1 e P2 que necessitam utilizar de 
modo exclusivo os recursos R1 (impressora) e R2 (fita), 
que não são preemptáveis;
• Situações Possíveis: 
– P1 requer uso de R1 e é atendido;
– P2 requer uso de R2 e é atendido;
– P1 requer uso de R2: P1 fica bloqueado aguardando 
por R2;
– P2 requer uso de R1: P2 fica bloqueado aguardando 
por R1;
– P1 e P2 permanecem bloqueados indefinidamente, 
sem chance de modificação na situação. 
2
Silberschatz ,Galvin, and Gagne19998.7Applied Operating System Concepts
Modelo do Sistema
•Tipos de Recursos R1, R2, . . ., Rm
• Ex.: Ciclos de CPU, espaço de memória, dispositivos de E/S
•Cada tipo de recurso Ri possui Wi instâncias.•Cada processo utiliza um recurso como se segue:
– requisita 
– usa 
– libera
Silberschatz ,Galvin, and Gagne19998.8Applied Operating System Concepts
Ciclo de utilização de um recurso
Requisita
Aguarda
Usa Libera
O processo fica bloqueado. Outras 
tentativas para reter o recurso podem ser 
realizadas. 
Em alguns SO, os processos são 
automaticamente bloqueados e acordam 
quando o recurso se torna disponível. 
Silberschatz ,Galvin, and Gagne19998.9
DeadLock
Processo
A
Processo
B
B1 – Aloca TL
B2 – Aloca CDRW
A1 – Aloca CDRW
A2 – Aloca TL
Processos A e B tentam alocar os mesmos recursos ao mesmo tempo
Silberschatz ,Galvin, and Gagne19998.10Applied Operating System Concepts
Caracterização de Deadlock
1) Exclusão Mútua: somente um 
processo, por vez, pode usar um recurso.
2) Posse e Espera: um processo retendo 
pelo menos um recurso está esperando 
por um recurso adicional, que está retido 
por outro processo.
Deadlock pode surgir se as quatro condições ocorrerem simultaneamente.
Silberschatz ,Galvin, and Gagne19998.11Applied Operating System Concepts
Caracterização de Deadlock (cont.)
3) Sem Preempção: um recurso somente pode 
ser liberado voluntariamente pelo processo 
que o retém, após sua utilização.
4) Espera Circular: existe um conjunto de 
processos em espera {P0, P1, …, Pn} tal que:
– P0 é o processo que está esperando por um recurso retido por P1 ; 
– P1 esperando por um recurso retido por P2, …,
– Pn–1 esperando por um recurso retido por Pn, e Pn esperando por um recurso retido por P0.
Silberschatz ,Galvin, and Gagne19998.12
Espera circular
3
Silberschatz ,Galvin, and Gagne19998.13Applied Operating System Concepts
Gráfico de Alocação de Recursos
• V é dividido em dois tipos de nós:
– P = {P1, P2, …, Pn}, o conjunto consistindo de todos os processos ativos no sistema.
– R = {R1, R2, …, Rm}, o conjunto consistindo de todos os recursos no sistema.
• Aresta de pedido – aresta direcionada P1  Rj• Aresta de atribuição – aresta direcionada Rj  Pi
Um conjunto de vértices de V e arestas E.
Silberschatz ,Galvin, and Gagne19998.14Applied Operating System Concepts
Grafo de Alocação de Recursos (Cont.)
• Processo
• Tipo de recurso com 4 instâncias
• Pi requisita instância de Rj
Pi retém uma instância de Rj Pi
Pi
Rj
Rj
Silberschatz ,Galvin, and Gagne19998.15Applied Operating System Concepts
grafo de alocação de recursos
– Ciclos no grafo pode indicar a existência de situação de deadlocks
– A presença de deadlocks pode ser monitorada com a atualização 
do grafo a cada nova requisição de recursos; 
– Ex.: P1, P2, R1, R3 estão em deadlock
recurso processo recurso processo
P fica bloqueado, aguardando por RP tem a posse de R
R1 P1
P2
P3
R2
R3
Silberschatz ,Galvin, and Gagne19998.16Applied Operating System Concepts
Grafo de Alocação de Recursos (Cont.)
• Se um grafo não contiver ciclos, nenhum processo do sistema 
estará em deadlock;
• Se um grafo contiver um ciclo, poderá haver deadlock:
• Se cada tipo de recurso tiver exatamente uma instância, um ciclo 
implicará na ocorrência de um deadlock;
– Nesse caso, cada processo envolvido no ciclo está em um 
deadlock;
– Nesse caso, um ciclo é uma condição necessária e suficiente 
para existência de um deadlock.
• Se cada tipo de recurso tiver várias instâncias, então um ciclo 
NÃO implicará necessariamente na ocorrência de um deadlock;
– Nesse caso, um ciclo é uma condição necessária MAS NÃO 
suficiente para existência de um deadlock.
Silberschatz ,Galvin, and Gagne19998.17Applied Operating System Concepts
Exemplo: Grafo de alocação de recursos
Silberschatz ,Galvin, and Gagne19998.18Applied Operating System Concepts
Grafo com Deadlock de P1, P2 e P3
•Existem dois ciclos mínimos:
P1R1  P2  R3 P3  R2  P1 e
P2  R3  P3  R2  P2
4
Silberschatz ,Galvin, and Gagne19998.19Applied Operating System Concepts
Grafo de aloc. de recursos com ciclo, mas sem Deadlock
Se P4 liberar o recurso 
R2, o ciclo é quebrado.
Silberschatz ,Galvin, and Gagne19998.20Applied Operating System Concepts
Fatos Básicos
•Se o grafo não possui ciclo  não há 
deadlock.
•Se o grafo contém um ciclo 
– Se somente uma instância por tipo de 
recurso, então deadlock ocorre.
– Se várias instâncias por tipo de recurso, 
então existe a possibilidade de deadlock. 
Silberschatz ,Galvin, and Gagne19998.21Applied Operating System Concepts
Métodos para tratamento de Deadlocks
1. Garantir que o sistema nunca entrará em estado 
de deadlock (prevenção).
2. Permitir que sistema entre em estado de 
deadlock e então recupera-lo (impedimento).
3. Ignorar o problema e assumir que deadlocks 
nunca acontecem no sistema. 
– Utilizado por muitos sistemas operacionais, 
inclusive no UNIX.
Silberschatz ,Galvin, and Gagne19998.22Applied Operating System Concepts
1 - Prevenção de Deadlock (Prevention)
Restringir o modo como as requisições podem ser 
realizadas, garantindo a não existência de pelo 
menos uma das quatro condições de ocorrência 
de deadlock:
•Exclusão Mútua – quando possível, ser válida 
para recursos compartilháveis (read-only files); 
necessária para recursos não compartilháveis 
(impressoras).
Silberschatz ,Galvin, and Gagne19998.23Applied Operating System Concepts
Prevenção de Deadlock(Prevention)
•Posse e Espera – Para que não aconteça, deve 
se garantir que quando um processo requisitar um 
recurso, ele não pode estar retendo nenhum outro 
recurso. 
– Requer que processos requisitem todos os 
recursos antes de começar sua execução, ou
– Permitir que processos somente requisitem 
recursos, quando não possuir nenhum alocado.
– Baixa utilização de recursos; possibilidade de 
starvation (ou inanição).
Silberschatz ,Galvin, and Gagne19998.24Applied Operating System Concepts
Prevenção de Deadlock (Cont.)
• Sem Preempção – Para garantir não haja preempção dos 
recursos alocados, devemos usar o seguinte protocolo:
– Um processo que retém algum recurso requisita outro 
recurso que não pode lhe ser alocado imediatamente, 
então ele deve liberar (preemptar) todos os recursos 
retidos até então.
– Recursos disponibilizados (preemptados) são 
adicionados novamente na lista de recursos que o 
processo está requisitando.
– Processo será reiniciado somente quando ele ganhar 
novamente os “velhos” recursos, bem como os novos 
que está requisitando.
5
Silberschatz ,Galvin, and Gagne19998.25Applied Operating System Concepts
Prevenção de Deadlock (Cont.)
•Espera Circular – para não acontecer pode-se 
impor uma ordem total em todos os tipos de 
recursos, e exigir que cada processo requisite-os 
em ordem crescente de acordo com sua 
ordenação. 
Silberschatz ,Galvin, and Gagne19998.26Applied Operating System Concepts
Exemplo para quebrar a espera circular
• Seja F: R  N (função de ordem);
• Se o processo requisitou recurso Ri somente poderá requisitar o recurso Rj , se F(Rj) > F(Ri );• Exemplo:
F(drive de fita) = 1
F(drive de disco) = 5
F(impressora) = 12
Para usar a unidade de fita e impressora, primeiramente o processo precisa requisitar o driver de fita, e então requisitar a impressora.
• Espera circular {P0, P1, ..., Pn} não pode existir pois:– F(Ri) < F(Ri+i) i e ;– uma vez que Pn espera por recurso retido por P0, F(R0) < F(R1)< ... < F(R0) e portanto F(R0) < F(R0) que é contradição.
Silberschatz ,Galvin, and Gagne19998.27Applied Operating System Concepts
2 - Evitar Deadlock (Avoidance)
Requer que o sistema possua alguma informação adicional sobre os recursos disponibilizados, a priori; 
• Modelo simples e mais usual requer que cada processo declare o número máximo de recursos de cada tipo que irá precisar;
• O algoritmo para evitar-deadlock dinamicamente examina o estado de alocação de recursos para garantir a não existência da condição de espera circular;
• O estado de alocação de recurso é definido pelo número de recursos disponíveis e alocados, e o máximo requerido por cada processo. 
Silberschatz ,Galvin, and Gagne19998.28Applied Operating System Concepts
Estado Seguro
•Quando um processo requisita um recurso 
disponível, o sistema deve decidir se esta 
alocação imediata o colocará em estado 
seguro.
•O sistema estará em estado seguro, se 
existe uma seqüência segura de todos os 
processos (todos livres de deadlock)
Silberschatz ,Galvin, and Gagne19998.29Applied Operating System Concepts
Estado Seguro
• A seqüência <P1, P2, …, Pn> é segura se: para cada processo Pi, os recursos que Pi pode ainda requisitar podem ser satisfeitos pelos recursos correntemente 
disponíveis + recursos retidos por todos os outros 
processos Pj, com j<i.
– Se os recursos que Pi necessita não estiverem disponíveis imediatamente, então Pi pode esperar até que todos os processos Pj tenham terminados.
– Quando Pj terminar, Pi pode obter recursos necessitados, executar, retornar recursos alocados e 
finalizar. 
– Quando Pi termina, Pi+1 pode obter os recursos de que necessita e, assim sucessivamente. 
Silberschatz ,Galvin, and Gagne19998.30Applied Operating System Concepts
Fatos Básicos
•Se um sistema está em estado seguro  não há 
deadlocks.
•Se um sistema está em estado inseguro 
possibilidade de deadlock.
•Evitar  garantir que o sistema nunca estará em 
estado inseguro. 
6
Silberschatz ,Galvin, and Gagne19998.31Applied Operating System Concepts
Espaço de Estado Seguro, Inseguro e Deadlock
Seguro
Inseguro
Silberschatz ,Galvin, and Gagne19998.32Applied Operating System Concepts
Algoritmo para o Grafo de Alocação de Recursos
•Solicita vértice Pi  Rj , indica que o processo Pjpode se apoderar do recurso Rj; representado por linhas pontilhadas
•Solicitação de um vértice, transforma-se em vértice requisitado, quando um processo requisita o recurso. 
•Quando um recurso é liberado por um processo, o vértice lhe atribuído converte-se em pedido de vértice. 
•Recursos devem ser requisitados, a priori, no sistema. 
Silberschatz ,Galvin, and Gagne19998.33Applied Operating System Concepts
Grafo de alocação de recursos para evitar Deadlock
Pedido Emitido, Em EsperaRecurso atribuído a P1
Solicita Recurso apenasSolicita Recurso apenas 
Silberschatz ,Galvin, and Gagne19998.34Applied Operating System Concepts
Estado Não Seguro no Grafo de Alocação de Recursos
Para não ocorrer deadlock,
P1 deve liberar R1
Silberschatz ,Galvin, and Gagne19998.35Applied Operating System Concepts
Algoritmo do Banqueiro (Banker’s Algorithm)
•Múltiplas instâncias de um mesmo processo.
•Cada processo deve, a priori, declarar a 
quantidade máxima de recursos que necessita.
•Quando um processo requisita um recurso, ele 
pode ter que esperar. 
•Quando um processo consegue todos os seus 
recursos, ele deve retorna-los em um intervalo 
finito de tempo.
Silberschatz ,Galvin, and Gagne19998.36Applied Operating System Concepts
Estrutura de Dados para o Alg. do Banqueiro 
• Seja n= número de processos e m=número de recursos
• Available: Vetor de tamanho m. Se available [j] = k, existek instâncias disponíveis do recurso Rj .• Max: matriz n x m . Se Max [i,j] = k, então processo Pipode requisitar no máximo k instâncias do recurso Rj.• Allocation: Matriz n x m. Se Allocation[i,j] = k então Piestá correntemente com k instâncias alocadas do recurso Rj.• Need: Matriz n x m . Se Need[i,j] = k, então Pi pode necessitar de mais k instâncias do recurso Rj para completar sua tarefa.Need [i,j] = Max[i,j] – Allocation [i,j].
7
Silberschatz ,Galvin, and Gagne19998.37Applied Operating System Concepts
Algoritmo de Segurança
1.Seja Work e Finish vetores de tamanho m e n, respectivamente. Inicialização:
Work := Available
Finish [i ] = false para i - 1,3, …, n.
2.Encontre um i tal que ambos: 
(a) Finish [i ] = false
(b) Needi  WorkSe nenhum i existe, vá para passo 4.
3.Work := Work + Allocation iFinish[i ] := trueVá para passo 2.
4.Se Finish [i ] = true para todo i, então o sistema está em estado seguro.
Silberschatz ,Galvin, and Gagne19998.38Applied Operating System Concepts
Alg. de Req. de Recurso para Processo Pi
Requesti = Vetor de requisição para Pi. Se Requesti [j ] = k então o processo Pi deseja k instâncias do recurso Rj.
1. Se Requesti  Needi go to 2. Caso contrário, erro de condição pois processos excedeu seu pedido máximo.
2. Se Requesti  Available, go to 3. Caso Contrário Pi tem que esperar pois recursos não estão disponíveis.
3. Assume que vai alocar os recursos requisitados por Pimodificando o estadoa como se segue:
Available := Available - Requesti ;
Allocationi := Allocationi + Requesti ;
Needi := Needi – Requesti ;• Se seguro  os recursos são alocados a Pi. • Se inseguro  Pi deve esperar, e o estado antigo de alocação de recurso e restaurado.
Silberschatz ,Galvin, and Gagne19998.39Applied Operating System Concepts
Exemplo - Algoritmo do Banqueiro
• 5 processos P0 a P4; 3 recursos: A (10 instâncias), B (5 instâncias, e C (7 instâncias).
• Situação no tempo T0:
Allocation Max Available
A B C A B C A B C
P0 0 1 0 7 5 3 3 3 2
P1 2 0 0 3 2 2 
P2 3 0 2 9 0 2
P3 2 1 1 2 2 2
P4 0 0 2 4 3 3 
Silberschatz ,Galvin, and Gagne19998.40Applied Operating System Concepts
Exemplo (Cont.)
• O valor da matriz Need é definido por: need = max –allocation.
Need
A B C
P0 7 4 3 
P1 1 2 2 
P2 6 0 0 
P3 0 1 1
P4 4 3 1 • O sistema está em estado seguro poisa seqüência < P1, P3, P4, P2, P0> satisfaz o critério de segurança. 
Silberschatz ,Galvin, and Gagne19998.41Applied Operating System Concepts
Exemplo (Cont.) : P1 requisita (1,0,2)
• Verifica se Request  Available (isto é, (1,0,2)  (3,3,2))  true.
Allocation Need Available
A B C A B C A B C 
P0 0 1 0 7 4 3 2 3 0
P1 3 0 2 0 2 0 
P2 3 0 1 6 0 0 
P3 2 1 1 0 1 1
P4 0 0 2 4 3 1 • Executando o algoritmo de segurança ele mostra que a seqüência <P1, P3, P4, P0, P2> satisfaz o critério de segurança. • Pode o pedido de (3,3,0) por P4 ser honrado?• Pode o pedido de (0,2,0) por P0 ser honrado?
Silberschatz ,Galvin, and Gagne19998.42Applied Operating System Concepts
3 - Detecção de Deadlock 
•Permite o sistema entrar em estado de 
deadlock; 
•Aplica-se um algoritmo de detecção de 
deadlock;
•Aplica-se um esquema de recuperação. 
8
Silberschatz ,Galvin, and Gagne19998.43Applied Operating System Concepts
Instância Única de Cada Recurso
•Manter um grafo de espera (espera um processo que detém a posse de um recurso finalizar sua execução) 
– Os Nodos são processos.
– Pi  Pj se Pi está esperando por Pj.•Periodicamente chamar um algoritmo para pesquisar por um ciclo no grafo.
•Um algoritmo para detectar um ciclo em um grafo, requer complexidade da ordem de n2 operações, onde n é o número de vértices do grafo.
Silberschatz ,Galvin, and Gagne19998.44Applied Operating System Concepts
Grafos de Alocação-Recursos e Espera
Grafo de Alocação-Recurso Correspondente grafo de Espera
Silberschatz ,Galvin, and Gagne19998.45Applied Operating System Concepts
Várias Instâncias de um Recurso
•Available: vetor de tamanho m indicando o número de recursos disponíveis. 
•Allocation: matriz n x m define o número de recursos correntemente alocado a cada processo.
•Request: matriz n x m indica a requisição corrente de cada processo. 
– Se Request [i j ] = k, então processo Pi está requisitando mais k instâncias do recurso Rj.
Silberschatz ,Galvin, and Gagne19998.46Applied Operating System Concepts
Algoritmo de Detecção
1.Seja Work e Finish vetores de tamanho m e n, respectivamente Initialize:
(a) Work :=Available
(b) For i = 1,2, …, n, if Allocationi  0, então Finish[ i ] := false; caso contrário, Finish[ i ] := true.
2. Encontre um índice i tal que ambos:
(a) Finish[ i ] = false
(b) Requesti  WorkSe tal i não existir, vá para passo 4. 
Silberschatz ,Galvin, and Gagne19998.47Applied Operating System Concepts
Algoritmo de Detecção (Cont.)
3. Work := Work + AllocationiFinish[ i ] := truevá para passo 2.
4. Se Finish[ i ] = false, para algum i, 1  i  n, então o sistemas está em estado de dedlock. Mais ainda, se Finish[ i ] = false, então Pi está bloqueado.
Algoritmo requer ordem de m x n2 operações 
para detectar se o sistema está em estado de 
deaklock. 
Silberschatz ,Galvin, and Gagne19998.48Applied Operating System Concepts
Exemplo 
• Cinco processos P0 a P4 ; três recursos: A (7 instâncias), B (2 instâncias), e C (6 instâncias).
• Situação np tempo T0:
Allocation Request Available
A B C A B C A B C
P0 0 1 0 0 0 0 0 0 0
P1 2 0 0 2 0 2
P2 3 0 3 0 0 0 
P3 2 1 1 1 0 0 
P4 0 0 2 0 0 2• Seqüência <P0, P2, P3, P1, P4> resultará em Finish[ i ] = true para todo i. 
9
Silberschatz ,Galvin, and Gagne19998.49Applied Operating System Concepts
Exemplo (Cont.)
• P2 requisita uma instância adicional do recurso do tipo C.
Request
A B C
P0 0 0 0
P1 2 0 1
P2 0 0 1
P3 1 0 0 
P4 0 0 2• Estado do sistema?
– Pode reclamar recurso retido pelo processo P0, mas haverá recursos insuficientes para atender requisição de outros processos.
– Há deadlock nos processos P1, P2, P3, e P4.
Silberschatz ,Galvin, and Gagne19998.50Applied Operating System Concepts
Uso do algoritmo de Detecção
•Quando e quão freqüente algoritmo deve ser chamado, depende de:
– Quão freqüente é a provável ocorrência de deadlock?
– Quantos processos precisarão ser voltados atrás (recompostos)?
• Um para cada ciclo disjunto
•Se o algoritmo de detecção for chamado arbitrariamente, pode ocorrer muitos ciclos no grafo de recursos e, neste caso, poderemos não ser capaz de dizer quais dos muitos processos em deadlock causaram o deadlock. 
Silberschatz ,Galvin, and Gagne19998.51Applied Operating System Concepts
Recuperação de Deadlock: Terminação de Processo
• Abortar todos os processos em deadlock;
• Abortar um processo por vez até que o ciclo de deadlock 
seja eliminado;
• Em que ordem devemos abortar os processos?
– Prioridade de processos;
– Quando tempo o processo está em execução e quanto 
tempo falta para seu término;
– Recursos que o processo já utilizou;
– Recursos que o processo precisa para finalizar;
– Quantos processos são necessários ser finalizados;
– O processo é um processo interativo ou batch?
Silberschatz ,Galvin, and Gagne19998.52Applied Operating System Concepts
Recuperação de Deadlock: Preempção de Recurso
•Selecionar a vítima – minimizar custo.
•Retornar (Rollback) – retornar para algum estado 
seguro e reiniciar processo a partir deste estado.
•Starvation (inanição) – um mesmo processo pode 
sempre ser escolhido como vítima! Incluir número 
de retornos no fator de custo.
Silberschatz ,Galvin, and Gagne19998.53Applied Operating System Concepts
Recuperação usando preempção
• Recursos podem ser retirados do corrente 
processo proprietário (em execução) e 
alocado a um outro processo;
• A escolha do recurso depende de quão 
facilmente ele pode ser requisitado;
• Freqüentemente a recuperação é 
impossível;
• Freqüentemente requer intervenção 
manual.
Silberschatz ,Galvin, and Gagne19998.54Applied Operating System Concepts
Recuperação por rollback
• Os Processos sofrem checkpoint periodicamente. Um checkpoint é uma imagem da memória + estado dos recursos correntemente alocados ao processo;
• Após a detecção de um deadlock, os recursos necessários são identificados. 
• Cada processo com posse de algum recurso sofre um roll-back para um instante de tempo anterior. 
• Isso provoca a liberação dos recursos, que agora são alocados aos processos de modo a solucionar o deadlock;
• O trabalho desenvolvido após o checkpoint é perdido.
– Relacionamento entre a freqüência de deadlock e periodicidade de checkpoint.
10
Silberschatz ,Galvin, and Gagne19998.55Applied Operating System Concepts
Recuperação através da eliminação de processos• Processos pertencentes ao ciclo de deadlock são finalizados um de cada vez até o desaparecimento do deadlock;
• Processos não pertencente ao ciclo de deadlock, mas mantendo recursos necessários aos processos em deadlock, são finalizados (kill).
• Candidatos:
– P re-inicializável sem efeitos colaterais (ex: compiladores);
– P pertencente a mais de um ciclo de deadlocks;
– P de pouca importância.
Silberschatz ,Galvin, and Gagne19998.56Applied Operating System Concepts
Método Combinado no tratamento de Deadlock
•Combinar os três métodos básicos
– Prevenção (prevention);
– Evitar (avoidance);
– Detecção.
permitindo o uso da metodologia ótima para cada classe de recursos no sistema. 
•Particionar recursos em classes ordenadas hierarquicamente.
•Utilizar a técnica mais apropriada para tratamento de deadlock dentro de cada classe.

Outros materiais