Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Recursos no preemptveis
vo induzir o processo a falhar se forem retirados
3
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
3. Condio de no preempo
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
4. preveno
negao de uma das quatro condies necessrias
Algoritmo do Avestruz
Finge que o problema no existe; Razovel se:
deadlocks ocorrerem muito raramente custo da preveno for computacionalmente elevado
Observe a posse e solicitaes de recursos Um ciclo pode ser encontrado dentro do grafo, denotando deadlock
13
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
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.
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
Preveno de Deadlock
Atacando a Condio de No Preempo
Preveno de Deadlock
Atacando a Condio de Espera Circular (1)
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)
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
Funciona bem para mltiplos jobs curtos em um sistema Jobs longos podem ser preteridos indefinidamente
mesmo no estando bloqueados
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.