Você está na página 1de 17

UESB

Sistemas de Informao
Sistemas Operacionais
Impasses ou Deadlocks

Prof. VANILDO MEIRA
Prof. Vanildo Meira
Introduo





Os sistemas computacionais (S.C.) possuem
inmeros recursos adequados ao uso de apenas um
processo de cada vez.
P.E. se dois processos acessam uma impressora
simultaneamente e sem controle do SO, o mais
provvel que acontea que se misturem as duas
impresses, ficando o resultado final, imprestvel
aos dois processos.
O S.O. dever garantir o acesso exclusivo.
Prof. Vanildo Meira
Recursos





So os componentes de um S.C. acessados:
Dispositivos fsicos (hardware): memria, discos,
impressoras, fitas magnticas, etc.
Dados: Variveis compartilhadas, registros de
banco de dados, tabelas, etc.
Observaes:
Podem existir diversas cpias um recurso.
Processos podem requisitar vrios recursos.
Os Processos precisam acessar os recursos em uma
ordem definida (organizada pelo SO).
Prof. Vanildo Meira
Impasse (ou deadlock)





Prof. Vanildo Meira
Impasse (ou deadlock)





Prof. Vanildo Meira
Impasse (ou deadlock)





Prof. Vanildo Meira
Preempo





Recurso preemptvel pode se retirado do
processo proprietrio sem prejuzo. Ex. memria.
Recurso no preemptvel retirada do recurso
gera falhas na computao. Ex. Gravador de
CD/DVD..
Em geral, impasses envolvem recursos no
preemptveis. Para garantir que recursos no
compartilhveis e no preemptveis possam ser
adquiridos normalmente so usados semforos.
Prof. Vanildo Meira
Eventos





Prof. Vanildo Meira
Condies para impasses





Condio de excluso mtua em um
dado instante cada recurso est em uma de
duas situaes: associado a um nico
processo ou disponvel.
Condio de posse e espera processos
podem reter recursos anteriormente
concedidos e requisitar novos recursos.
Prof. Vanildo Meira
Condies para impasses





Condio de no preempo recursos
concedidos previamente a um processo no
podem ser tomados a fora deste processo.
Condio de espera circular deve existir
um encadeamento circular de 2 ou mais
processos, cada um esperando por um recurso
que est associado ao membro seguinte desta
cadeia.

Prof. Vanildo Meira
Como ocorre um impasse





Prof. Vanildo Meira
Como tratar impasses





Prof. Vanildo Meira
1. Algoritmo do avestruz





A ocorrncia de deadlock ignorada. Soluo
adotada pela maioria dos sistemas
operacionais, como Unix e Windows.
Soluo razovel se: Deadlocks so raros, e
muitos deadlocks no geram danos ao sistema.
O custo da preveno de deadlocks alto.


Prof. Vanildo Meira

2. a) Deteco de deadlocks





Construir um grafo do sistema.
Existe um recurso de cada tipo Um
deadlock identificado por ciclos no grafo
direcionado do sistema.
Utilizar algoritmos de busca que procuram
ciclos em grafos direcionados. Busca em
profundidade; e Busca em amplitude.
Prof. Vanildo Meira

2. b) Recuperao





Preempo depende da natureza do recurso;
Reverso de estado: a) Verificao peridica
(checkpoint), armazenando o estado de cada processo
em um arquivo (checkpoint file). b) Retorna os
processos em deadlock para um estado anterior
ocorrncia do deadlock. O trabalho executado
perdido.
Eliminao de processos presentes no ciclo pode ser
escolhido o processo com maior nmero de recursos
bloqueados. Outros processos sero eliminados at o
deadlock ser desfeito.


Prof. Vanildo Meira

3. Evitar impasses





S alocar recursos quando for seguro.
Estado seguro no existe deadlock, e existe
uma ordem de escalonamento na qual todos os
processos podem executar at a sua concluso.
Grfico representando o escalonamento de cada
processo, sua execuo, e situaes com risco
de deadlock.
Algoritmo do banqueiro (Dijkstra 1965).



Prof. Vanildo Meira
Resumo - Evitando impasses