Você está na página 1de 7

SOA Deadlocks - Impasses

1. Recurso 2. Introduo aos deadlocks 3. Algoritmo do avestruz 4. Deteco e recuperao de deadlocks 5. Evitando deadlocks 6. Preveno de deadlocks 7. Outras questes
1

Recursos
Exemplos de recursos de computador
impressoras unidades de fita tabelas

Processos precisam de acesso aos recursos numa ordem racional Suponha que um processo detenha o recurso A e solicite o recurso B
ao mesmo tempo um outro processo detm B e solicita A ambos so bloqueados e assim permanecem
2

Recursos (1)
Deadlocks ocorrem quando
garante-se aos processos acesso exclusivo aos dispositivos esses dispositivos so normalmente chamados de recursos

Recursos (2)
Seqncia de eventos necessrios ao uso de um recurso
solicitar o recurso usar o recurso liberar o recurso

Recursos preemptveis
podem ser retirados de um processo sem quaisquer efeitos prejudiciais

Deve esperar se solicitao negada


processo solicitante pode ser bloqueado pode falhar resultando em um cdigo de erro

Recursos no preemptveis
vo induzir o processo a falhar se forem retirados
3

Introduo aos Deadlocks


Definio formal: Um conjunto de processos est em situao de deadlock:
se todo processo pertencente ao conjunto estiver esperando por um evento que somente um outro processo desse mesmo conjunto poder fazer acontecer.

Deadlock
Bloqueio permanente de dois ou mais processos que compartilham recursos; Os recursos compartilhados podem ser dispositivos de I/O, reas de memria, estruturas de dados, processador, etc.
5

Normalmente o evento a liberao de um recurso atualmente retido; Nenhum dos processos pode... executar liberar recursos ser acordado

Quatro Condies para Deadlock


1. Condio de excluso mtua
todo recurso est ou associado a um processo ou disponvel processos que retm recursos podem solicitar novos recursos recursos concedidos previamente no podem ser forosamente tomados deve ser uma cadeia circular de 2 ou mais processos cada um est espera de recurso retido pelo membro seguinte dessa cadeia
7

Modelagem de Deadlock (2)


Modelado com grafos dirigidos

2. Condio de posse e espera

3. Condio de no preempo

4. Condio de espera circular


recurso R alocado ao processo A processo B est solicitando/esperando pelo recurso S processos C e D esto em deadlock sobre recursos T e U
8

Modelagem de Deadlock (3)


Estratgias para tratar Deadlocks:
1. ignorar por completo o problema 2. deteco e recuperao 3. evitar dinamicamente
alocao cuidadosa de recursos

Modelagem de Deadlock (4)

4. preveno
negao de uma das quatro condies necessrias

Como ocorre um deadlock


9 10

Modelagem de Deadlock (5)

Algoritmo do Avestruz
Finge que o problema no existe; Razovel se:
deadlocks ocorrerem muito raramente custo da preveno for computacionalmente elevado

UNIX e Windows seguem esta abordagem; uma ponderao entre:


convenincia correo

Como pode ser evitado um deadlock


11 12

Deteco com um Recurso de Cada Tipo (1)

Deteco com um Recurso de Cada Tipo (2)

Observe a posse e solicitaes de recursos Um ciclo pode ser encontrado dentro do grafo, denotando deadlock
13

Estruturas de dados necessrias ao algoritmo de deteco de deadlock


14

Deteco com um Recurso de Cada Tipo (3)

Recuperao de Deadlock (1)


Recuperao atravs de preempo
retirar um recurso de algum outro processo depende da natureza do recurso

Recuperao atravs de reverso de estado:


verifica um processo periodicamente usa este estado salvo reinicia o processo se este encontrado em estado de deadlock
15 16

Um exemplo para o algoritmo de deteco de deadlocks

Recuperao de Deadlock (2)


Recuperao atravs da eliminao de processos:
forma mais grosseira mas tambm mais simples de quebrar um deadlock elimina um dos processos no ciclo de deadlock os outros processos conseguem seus recursos escolhe processo que pode ser re-executado desde seu incio
17

Evitar Deadlock
Para cada acesso a recurso dever ser tomado uma deciso que garanta que o sistema no venha a entrar em deadlock; Requer conhecimento de necessidades futuras de cada processo.

Estratgias para evitar um Deadlock No iniciar um processo cujas solicitaes possam levar a uma situao de deadlock; Alocao de recursos segura.

Evitando Deadlocks
Trajetrias de Recursos

Trajetrias de recursos de dois processos


20

Alocao de recursos segura.


Algoritmo do banqueiro; Estado de um sistema a alocao corrente de recursos; Estado seguro aquele onde existe pelo menos uma seqncia de alocao de recursos que no leve a deadlock; Estado inseguro o estado no seguro.

Estados Seguros e Inseguros (1)

Demonstrao de que o estado em (a) seguro


22

Estados Seguros e Inseguros (2)

O Algoritmo do Banqueiro para um nico Recurso

Trs estados de alocao de recursos Demonstrao de que o estado em (b) inseguro


a) seguro b) seguro c) inseguro
23 24

O Algoritmo do Banqueiro para Mltiplos Recursos

Restries do algoritmo
Conhecer as necessidades mximas de recursos de todos os processos. Processos devem ser independentes. Sem requisitos de sincronizao. Nmero fixo de recursos disponveis. Nenhum processo poder terminar mantendo recursos.

Exemplo do algoritmo do banqueiro com mltiplos recursos


25

Preveno de Deadlock
Atacando a Condio de Excluso Mtua Alguns dispositivos (como uma impressora) podem fazer uso de spool
o daemon de impresso o nico que usa o recurso impressora desta forma deadlock envolvendo a impressora eliminado

Preveno de Deadlock
Atacando a Condio de Posse e Espera
Exigir que todos os processos requisitem os recursos antes de iniciarem um processo nunca tem que esperar por aquilo que precisa Problemas podem no saber quantos e quais recursos vo precisar no incio da execuo e tambm retm recursos que outros processos poderiam estar usando Variao: processo deve desistir de todos os recursos para ento requisitar todos os que so imediatamente necessrios
27 28

Nem todos os dispositivos podem fazer uso de spool Princpio:


evitar alocar um recurso quando ele no for absolutamente necessrio necessrio tentar assegurar que o menor nmero possvel de processos possa de fato requisitar o recurso

Preveno de Deadlock
Atacando a Condio de No Preempo

Preveno de Deadlock
Atacando a Condio de Espera Circular (1)

Esta uma opo invivel Considere um processo de posse de uma impressora


no meio da impresso retoma a impressora a fora !!??

a) Recursos ordenados numericamente b) Um grafo de recursos


29 30

Preveno de Deadlock
Atacando a Condio de Espera Circular (2)
Fase um

Outras Questes
Bloqueio em Duas Fases
processo tenta bloquear todos os registros de que precisa, um de cada vez Se registro necessrio j estiver bloqueado, reinicia novamente (nenhum trabalho real feito na fase um)

Se a fase um for bem sucedida, comea a fase dois,


execuo de atualizaes liberao de bloqueios

Resumo das abordagens para prevenir deadlock

Observe a similaridade com a requisio de todos os recursos de uma s vez Algoritmo funciona onde o programador tiver organizado tudo cuidadosamente para que
o programa possa ser parado, reiniciado
31 32

Deadlocks que no Envolvem Recursos


possvel que dois processos entrem em situao de deadlock
cada um espera que o outro faa algo

Condio de Inanio - Starvation


Algoritmo para alocar um recurso
pode ser ceder para o job mais curto primeiro

Funciona bem para mltiplos jobs curtos em um sistema Jobs longos podem ser preteridos indefinidamente
mesmo no estando bloqueados

Pode ocorrer com semforos


cada processo executa um down() sobre dois semforos (mutex e outro qualquer) se executados na ordem errada, resulta em deadlock
33

soluo:
poltica do primeiro a chegar, primeiro a ser servido
34

Testes de fixao

[TJRO 2008] Em um sistema operacional sendo executado em um determinado computador, o processo A obteve acesso exclusivo ao recurso X e o processo B obteve acesso exclusivo ao recurso Y. Momentos depois, A est aguardando a liberao de Y antes de ele prprio liberar X, enquanto B est aguardando a liberao de X antes de ele prprio liberar Y. Esta situao recebe o nome de: (A) loopback. (B) deadend. (C) thread-safe. (D) reflection. (E) deadlock

[PRODAM 2002] Quando um deadlock ocorre: A. O servidor matar o processo que tem menos tempo de cpu. B. O sistema aplicativo deve matar o processo que tem mais locks. C. O sistema aplicativo deve matar o processo que tem menos tempo de cpu. D. O servidor matar o processo que tem mais locks.

[2006 ARCE] A ocorrncia de um deadlock durante o uso de um banco de dados indica que houve um: a) conflito por chave inexistente. b) conflito por chave duplicada. c) impasse na utilizao de recursos. d) impasse na identificao do usurio. e) travamento por inatividade.

Analise as seguintes afirmaes relativas gerncia de processos em sistemas operacionais. 1) Um processo que esteja rodando fora da sua regio crtica pode conduzir a uma condio de corrida (racing condition). 2) Semforos so variveis que permitem a sincronizao entre processos, de modo a evitar condies de corridas, cujas operaes so atmicas (indivisveis). 3) Thread, assim como processos, no compartilham recursos de memria. 4) Um thread possui os mesmos estados que um processo, ou seja, BLOQUEADO, RODANDO e PRONTO. Esto corretas apenas: A) 1 e 2 B) 2 e 3 C) 3 e 4 D) 1 e 3 E) 2 e 4

[POSCOMP 2008] Analise as seguintes afirmativas. I. Condies de corrida podem ocorrer se mltiplas threads fazem leituras de um dado compartilhado, mesmo que nenhuma realize escritas. II. O uso de mutex para a excluso mtua em sees crticas garante que no haja condio de corrida, porm pode ocasionar deadlocks se no for corretamente empregado. III. Monitores so baseados em um tipo abstrato de dados e um controle de acesso aos dados. Apenas funes do monitor acessam os dados e apenas uma thread ou processo pode executar funes de um monitor por vez. IV. Semforos tm duas operaes, P( ) e V( ), sendo que apenas a operao P( ) pode bloquear um processo ou thread. A anlise permite concluir que: A) apenas as afirmativas I, II e III so verdadeiras. B) apenas as afirmativas I, III e IV so verdadeiras. C) apenas as afirmativas II e IV so verdadeiras. D) apenas as afirmativas II, III e IV so verdadeiras. E) nenhuma das afirmativas verdadeira.

[BNDS 2005] Considere as seguintes afirmaes sobre sincronizao e deadlock em sistemas computacionais multiprocessados e multiprogramados: i) a eliminao apenas da espera cclica suficiente para impedir a ocorrncia de deadlocks; ii) apenas a liberao de recursos de forma preemptiva suficiente para eliminar a possibilidade de ocorrncia de deadlocks; iii) a eliminao apenas do uso de recursos exclusivos suficiente para impedir a ocorrncia de deadlocks; iv) a possibilidade de ocorrncia de deadlocks somente eliminada quando no existe espera ocupada e cclica A quantidade de afirmativas corretas : (A) 0; (B) 1; (C) 2; (D) 3; (E) 4.

Você também pode gostar