Sie sind auf Seite 1von 32

Deadlocks

Modelo
Caracterizao do Deadlock
Mtodos para tratamento de Deadlocks
Preveno de Deadlocks
Evitar Deadlock
Detectar Deadlock
Recuperao do Deadlock
Tcnica combinada para tratamento de Deadlocks

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

O Problema do Deadlock
Um conjunto de processos bloqueados, cada um
retendo um recurso e esperando para adquirir um
recurso retido de outro processo no conjunto
Exemplo
O sistema possui 2 unidades de fita
P1 e P2 mantm, cada um, uma unidade de fita, e
cada uma delas precisa de outra unidade
Exemplo
Os semforos A e B, inicializados como 1

P0
down(A);
down(B);

P1
down(B)
down(A)

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Exemplo do Cruzamento da Ponte

Trfego em um nico sentido


Cada seo de uma ponte pode ser vista como um
recurso
Se ocorrer um deadlock, ele pode ser resolvido se
um dos carros recuar (preemptar recursos e
reverter)
Vrios carros podem ter de recuar se um deadlock
ocorrer
possvel haver Starvation.

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Modelo do Sistema

Tipos de recursos R1, R2, . . ., Rm

Ciclos de CPU, espao de memria,


dispositivos de E/S
Cada tipo de recurso Ri possui Wi instncias

Cada processo usa um recurso desta forma:


requisitar
usar
liberar

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Caracterizao do Deadlock

Pode haver deadlock se quatro condies


ocorrerem simultaneamente
Excluso mtua: Somente um processo de
cada vez pode usar um recurso
Manter e esperar: Um processo retendo pelo
menos um recurso est esperando para
adquirir recursos adicionais mantidos por
outros processos

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Caracterizao do Deadlock
Sem preempo: Um recurso pode ser

liberado apenas voluntariamente pelo


processo que o mantm, aps esse processo
ter completado sua tarefa
Espera circular: Existe um conjunto {P0, P1,
, P0} de processos esperando de modo que
P0 est esperando um recurso que mantido
por P1, P1 est esperando um recurso que
mantido por P2, , Pn1 est esperando um
recurso que mantido por Pn, e P0 est
esperando um recurso que mantido por P0

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Grafo de Alocao de Recursos


.

Um conjunto de vrtices V e um conjunto de


arestas E
V particionado em dois tipos:
P = {P1, P2, , Pn}, o conjunto consistindo
em todos os processos ativos no sistema
R = {R1, R2, , Rm}, o conjunto

consistindo em todos os tipos de recursos


no sistema
aresta de requisio aresta direcionada P1
Rj
aresta de atribuio aresta direcionada Rj
Pi

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Grafo de Alocao de Recursos

Processo

Tipo de recurso com 4 instncias

Pi requisita instncia de Rj

Pi est mantendo
uma instncia de Rj

Pi
Rj

Pi
Rj

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Exemplo de um Grafo de Alocao


de Recursos

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Grafo de Alocao de Recursos com


um Deadlock

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Grafo de Alocao de Recursos


com um Ciclo mas sem Deadlock

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Fatos Bsicos

Se o grfico no contm ciclos nenhum


deadlock.

Se o grfico contm um ciclo


se apenas uma instncia por tipo de recurso,
ocorre deadlock
se vrias instncias por tipo de recurso, h
possibilidade de deadlock

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Mtodos para Tratamento de


Deadlocks

Assegura que o sistema nunca entre em um


estado de deadlock

Permite que o sistema entre em um estado de


deadlock e depois se recupere

Ignora o problema e finge que o deadlock nunca


ocorre no sistema; usado pela maioria dos
sistemas operacionais, inclusive o UNIX

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Preveno de Deadlock

Restringir as formas como a requisio pode ser


feita

Excluso mtua no necessrio para recursos


compartilhveis; precisa ser mantida para
recursos no compartilhveis

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Preveno de Deadlock

Manter e esperar precisa garantir que sempre


que um processo requisitar um recurso, ele no
manter quaisquer outros recursos
Exige que cada processo requisite e receba a
alocao de todos os seus recursos antes de
iniciar sua execuo, ou permite que um
processo requisite recursos apenas quando
no tiver nenhum outro
Baixa utilizao de recursos; possibilidade de
starvation

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Preveno de Deadlock

Sem preempo
Se um processo que estiver mantendo alguns
recursos requisitar outro recurso que no possa
ser alocado imediatamente para ele, ento todos
os recursos atualmente mantidos so liberados
Os recursos preemptados so acrescentados
lista de recursos pelos quais o processo est
esperando
O processo ser reiniciado somente quando puder
reaver seus recursos antigos, assim como os
novos que ele est requisitando

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Preveno de Deadlock

Espera circular impe uma ordenao total de


todos os tipos de recursos e exige que cada
processo requisite recursos em uma ordem
crescente de enumerao

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Evitar Deadlock

Exige que o sistema tenha algumas informaes


a priori adicionais disponveis
O modelo mais simples e til exige que cada
processo declare o nmero mximo de
recursos de cada tipo que possa ser
necessrio
O algoritmo para evitar deadlock examina
dinamicamente o estado de alocao de
recursos para garantir que a condio de
espera circular nunca possa existir
O estado de alocao de recursos definido
pelo nmero de recursos disponveis e
alocados e pelas demandas mximas dos
processos

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Estado Seguro
Quando um processo requisita um recurso
disponvel, o sistema precisa decidir se a
alocao imediata deixar o sistema em um
estado seguro
O sistema est em um estado seguro apenas se
houver uma seqncia segura de todos os
processos

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Estado Seguro

Uma seqncia <P1, P2, , Pn> segura se, para


cada Pi, o recurso requisitar que Pi ainda possa ser
satisfeito pelos recursos atualmente disponveis mais
os recursos mantidos por todo o Pj, com j<i.
Se os recursos que Pi precisar no estiverem
imediatamente disponveis, ento Pi poder
esperar at que todo o Pj tenha terminado
Quando Pj tiver terminado, Pi poder obter os
recursos necessrios, executar, retornar os
recursos alocados e terminar
Quando Pi terminar, Pi+1 poder obter seus
recursos necessrios e assim por diante

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Fatos Bsicos

Se um sistema est no estado seguro nenhum


deadlock.

Se um sistema est no estado inseguro


possibilidade de deadlock.

Evitar assegura que um sistema nunca entrar


em um estado inseguro

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Estados Seguro, Inseguro


e com Deadlock

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Algoritmo do Grafo de Alocao de


Recursos
Aresta de reivindicao Pi Rj indica que o processo
Pi pode requisitar o recurso Rj; representada por uma
linha tracejada
Aresta de reivindicao convertida em uma aresta
de requisio quando um processo requisitar um
recurso
Quando um recurso liberado por um processo, a
aresta de atribuio convertida novamente em uma
aresta de reivindicao
Os recursos precisam ser reivindicados a priori no
sistema

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Grafo de Alocao de Recursos


para Evitar Deadlock

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Estado Inseguro em um Grafo


de Alocao de Recursos

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Algoritmo do Banqueiro
Mltiplas instncias
Cada processo precisa reivindicar o uso mximo
a priori
Quando um processo requisita um recurso, ele
pode ter de esperar
Quando um processo obtm todos os seus
recursos, ele precisa devolv-los em um perodo
de tempo finito

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Detectar Deadlock

Permite ao sistema entrar no estado de Deadlock

Algoritmo de deteco

Esquema de recuperao

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Instncia nica de Cada Tipo de


Recurso

Mantm o grafo wait-for


Ns so processos
Pi Pj se Pi estiver esperando Pj.

Invoca periodicamente um algoritmo que procura um


ciclo no grafo
Um algoritmo para detectar um ciclo em um grafo
exige uma ordem de n2 operaes, onde n a
quantidade de vrtices no grafo

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Grafo de Alocao de Recursos


e o Grafo Wait-for

Grafo de alocao de recursos

Grafo wait-for correspondente

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Recuperao do Deadlock:
Trmino do Processo

Abortar todos os processos em deadlock


Abortar um processo de cada vez at que o ciclo de
deadlock seja eliminado
Em que ordem devemos escolher abortar?
Prioridade do processo
Por quanto tempo o processo esteve em execuo
e quanto tempo mais levar para ser concludo
Recursos que o processo usou
Recursos de que o processo precisa para ser
concludo
Quantos processos precisaro ser terminados
Se o processo interativo ou em batch

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Recuperao do Deadlock:
Preempo de Recursos
Seleo de uma vtima minimiza o custo.
Rollback retorna a algum estado seguro,
reinicia o processo nesse estado
Starvation o mesmo processo pode ser sempre
escolhido como vtima; incluir o nmero de
rollback no fator de custo

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011

Tcnica Combinada
para Tratamento de Deadlock
Combina os trs mtodos bsicos
Prevenir
Impedir
Detectar
Permitindo o uso de um enfoque timo para cada
recurso no sistema
Particiona recursos em classes hierarquicamente
ordenadas
Usa a tcnica mais apropriada para tratar de
deadlocks dentro de cada classe

Sistemas Operacionais Adaptado de Silberschatz, Galvin


domingo, 15 de maio de 2011