Beruflich Dokumente
Kultur Dokumente
O deadlock ocorre com um conjunto de processos e recursos nopreemptveis, onde um ou mais processos desse conjunto est aguardando a
liberao de um recurso por um outro processo que, por sua vez, aguarda a
liberao de outro recurso alocado ou dependente do primeiro processo.
comum em sites de noticias, onde a atualizao constante e, caso no se
tenha uma boa estrutura de cdigo, um processo pode acabar matando outro,
deixando o site lento no momento do carregamento.
Normalmente, esse problema no pode ser resolvido pelo sistema
operacional e requer interveno externa por parte do operador ou dos
usurios, forando a tomar atitudes drsticas, como provocar manualmente o
trmino do programa. Um exemplo onde erros de deadlock ocorrem no banco
de dados. Suponha que uma empresa tenha vrios vendedores e vrios
pontos de venda/caixas. O vendedor "A" vendeu 1 relgio e 1 pulseira. O
sistema ento solicita o travamento do registro da tabela estoque que contm o
total de relgios em estoque e em seguida solicita o travamento do registro que
contm o total de pulseiras em estoque. De posse da exclusividade de acesso
aos dois registros, ele l a quantidade de relgios, subtrai 1 e escreve de novo
no registro, o mesmo com o registro de pulseiras. Observe, no entanto que
existem diversos caixas operando simultaneamente de forma que se algum
outro caixa naquele exato instante estiver vendendo uma pulseira, ele ficar
aguardando a liberao do registro das pulseiras para depois alter-lo. Note
que ele s altera os registro depois que for dada exclusividade para ele de
todos os recursos que ele precisa, ou seja, de todos os registro. Suponha
agora que em outro caixa foram vendidos 1 relgio e 1 pulseira e que o outro
caixa solicitou o travamento do registro com a quantidade de pulseiras e agora
quer o acesso ao de relgios, no entanto o de relgios est travado para o
primeiro caixa. Nenhum deles devolve o recurso (registro) sobre o qual tem
exclusividade e tambm no consegue acesso ao outro registro que falta para
terminar a operao. Isto um deadlock.
Outro exemplo bastante prtico acerca do conceito de Dead lock
famoso congestionamento de carros (Figura 1), j que esse impasse, gerado
quando vrios processos esto em disputa por recursos e acabaram gerando
uma dependncia circular. Na imagem os processos so representados pelos
carros.
(figura 1)
Resumidamente, Deadlocks ocorrem quando processos obtm acesso
exclusivo a recursos, tanto de hardware (ex: HD) quanto software (entrada em
base de dados), com isso, pdemos dizer que existem dois tipos de recursos: