You are on page 1of 5

Deteco de Deadlocks em Sistemas Distribudos

Rodrigo Mac Niven, Victor Gerhardt e Eloir Troyack 31 de Maio de 2010

Contedo
1 Deadlock 1.1 1.2 1.3 1.4 2 3 4 5 6 7 Denio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ocorrncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Condies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recursos que podem levar a Deadlock . . . . . . . . . . . . . . . . . 3 3 3 3 3 4 4 4 5 5 5

Tratamento de deadlock Deadlock em Sistemas Distribudos Deteco de deadlocks em Sistemas Distribudos Deteco Centralizada Deteco Distribuda Refrencia Bibliogrca

1
1.1

Deadlock
Denio
Em relao a Sistemas Operacionais, deadlock se trata da ocorrncia de um empe-

cilho entre processos. Os processos cam bloqueados, tendo suas execues interrompidas.

1.2

Ocorrncia
Ocorre um deadlock quando processos concomitantes e recursos onde no ocorrem

mudanas de processamento entre aplicaes, esto aguardando a liberao de um recurso que est em uso por algum outro processo que tambm aguarda a liberao de um recurso que, por sua vez, est alocado ao primeiro processo. Os processos em deadlock iro esperar indenidamente at que um processo externo resolva o problema, geralmente escolhendo um dos processos e terminando-o, permitindo assim que o outro processo possa ser concludo. Depois que esse processo concluir, o outro pode voltar atividade e tambm ser concludo. Isso tambm pode ocorrer com um nico processo, caso esse utilize threads. A quantidade de recursos em um sistema no inuencia a ocorrncia de um deadlock.

1.3

Condies
Para a ocorrncia de um deadlock, as seguintes situaes devem, simultaneamente,

ocorrer: 1)Excluso Mtua Quando um recurso s pode ser usado por um processo de cada vez. 2)Segura Espera Quando dois ou mais processos necessitam de um recurso que se enquadra na primeira condio e nenhum deles abre mo deste recurso para outro processo. 3)No-preempo Quando o recurso s pode ser liberado de forma voluntria pelo processo que est usando-o. 4)Espera Circular Quando dois ou mais processos cam em espera por recursos utilizados por outro processo, este na mesma condio.

1.4

Recursos que podem levar a Deadlock


Abaixo, alguns exemplos de recursos que podem acarretar em deadlock: 1)Bloqueios - Espera para adquirir bloqueios em recursos. Ocorre quando, por

exemplo, uma transao tem um bloqueio compartilhado em r1 e aguarda um bloqueio exclusivo em r2, e outra transao tem em r2 um bloqueio compartilhado e aguarda

um exclusivo em r1, gerando assim um ciclo em que as duas transaes aguardam a liberao dos recursos bloqueados da outra. 2) Threads de trabalho Ocorre quando uma tarefa est em la aguardando um thread de trabalho e essa tarefa possui recursos que esto bloqueando todos os threads de trabalho. 3)Memria Ocorre quando solicitaes feitas simultaneamente aguardam por concesses de memria que no podem ser executadas com a memria disponvel. Por exemplo, c1 e c2 so executadas como funes denidas pelo usurio que apresentam 10MB e 20MB de memria, respectivamente. Se cada consulta precisar de 30MB, e o total de memria disponvel for de 20MB, c1 e c2 devero esperar uma pela outra para liberar memria.

Tratamento de deadlock
Um deadlock pode ser tratado, em geral, das seguintes formas: 1)Preveno O SO evita a ocorrncia de deadlock por meio de uma alocao

cuidadosa dos recursos, decidindo se a liberao de um recurso ou no segura. 2)Ignorncia Utilizao do Algoritmo do Avestruz, que consiste em simplesmente ignorar o problema por este ser extremamente raro de ocorrer. 3)Deteco Consiste basicamente na implementao pelo sistema de uma estrutura de dados para armazenar informaes a respeito dos processos e dos recursos alocados a eles, informaes estas que devero ser atualizadas de forma dinmica para sempre representar o atual estado dos processos e recursos alocados.

Deadlock em Sistemas Distribudos


Deadlock em Sistemas Distribudos so semelhantes aos de sistemas monoproces-

sados, porm so bem mais complicados de serem prevenidos ou detectados. Das formas de tratar deadlock, o Algoritmo do Avestruz tambm muito utilizado em sistemas distribudos, e as tcnicas para deteco so tambm muito populares devido grande diculdade de prevenir e evitar os deadlocks nesse tipo de sistema.

Deteco de deadlocks em Sistemas Distribudos


Esse mtodo no procura evitar nem prevenir os deadlocks, simplesmente deixa

que eles ocorram e depois os detecta para que possam ser corrigidos. Abaixo esto os algoritmos de deteco mais usados.

Deteco Centralizada
Nesse tipo de deteco, so mantidas informaes sobre os processos e os recursos

alocados a eles, formando um grafo de recursos alocados. Toda mquina possui um grafo desses, porm deve-se manter um grafo nico, com a unio de todos outros grafos do sistema. Nesses grafos ocorre a procura de ciclos. Quando encontrado, um processo terminado, acabando com o deadlock.

Deteco Distribuda
Deteco Distribuda (Algoritmo do Banqueiro de Chandy-Misra-Haas) Nesse al-

goritmo permitido ao processo acessar vrios recursos de uma s vez, tornando a fase de crescimento do algoritmo mais acelerada. Por consequncia, um processo pode ter que esperar dois ou mais recursos simultaneamente. Funciona da seguinte forma: iniciado, naturalmente, quando um processo tem que aguardar m ou mais recursos alocados em outro processo. O processo envia uma mensagem para o processo que est utilizando o recurso, essa mensagem contm trs informaes: os nmeros dos processos que mandaram e receberam a mensagem e dos que esto bloqueados. Quando um processo recebe uma mensagem, este verica se est aguardando algum recurso, se a resposta for positiva a mensagem atualizada e enviada para o processo que est utilizando o recurso. Assim, se a mensagem voltar ao processo que iniciou a mensagem, existe um ciclo e, por consequncia, um deadlock.

Refrencia Bibliogrca

Referncias
[1] Andrews S. Sistemas operacionais modernos. So Paulo:, Prentice-Hall 2005. [2] JM. Deitel, P. J. Deitel e D. R. Choffnes Sistemas operacionais.. [3] Silberrschatz, Peter Galvin, Greg Gagne. Sistemas operacionais (conceitos e aplicaes)..

You might also like