Vous êtes sur la page 1sur 28

SISTEMAS OPERACIONAIS

DEADLOCKS(IMPASSES)

INTRODUO
Acontecem quando um conjunto de processos/threads disputam por um ou mais Recursos. Hardwares / Softwares. Exemplo de Recursos:

A. Um arquivo;
B. Uma impressora; C. Um pedao da memria; D. Vrios arquivos.

Exemplo das contas bancrias

Problemas
Se no existe o controle de acessos ao recurso comum, danos irreparveis podem ocorrer tais como: 1. Arquivos corrompidos; 2. Perda de documentos na fila da impressora; 3. Erros lgicos em programas de usurio (chave

primria incremental em BD, por exemplo).

Recursos Preemptveis e No Preemptveis


Preemptvel: Memria Ram;

CPU.
No Preemptvel: Se um processo comeou a gravar um CD, fornecer o acesso a gravadora, a outro processo, gera um CD com erros; DeadLocks envolvem recursos no preemptveis.

Eventos Necessrios de Recursos No Preemptveis


Requisitar o recurso; Usar o recurso; Liberar o recurso; Algoritmo 1 Recurso.

Algoritmo 2 Recursos.

Caracterizando DeadLocks
Quatro condies fundamentais so necessrias para que os impasses possam ocorrer.

C1 Excluso mtua
C2 Posse e espera C3 No-preempo C4 Espera circular

Grafos de alocao de recursos


possvel representar graficamente a alocao de recursos entre as tarefas de um sistema concorrente.

Grafo de alocao de recursos com impasse

Alguns recursos lgicos ou fsicos de um sistema computacional podem ter mltiplas instncias:

Grafo de alocao com mltiplas instncias de recursos.

Tratamento de DeadLocks
As principais tcnicas usadas para tratar impasses em um sistema concorrente so:

prevenir impasses atravs, de regras rgidas para a programao dos sistemas;


Impedir impasses, por meio do acompanhamento contnuo da alocao dos recursos s tarefas;

Detectar e resolver impasses.

Preveno de DeadLocks
As tcnicas de preveno de impasses buscam garantir que impasses nunca possam ocorrer no sistema.

Excluso mtua : se no houver excluso mtua no acesso a recursos, no podero ocorrer impasses.
Posse e espera : caso as tarefas usem apenas um recurso de cada vez, solicitando-o e liberando-o logo aps o uso, impasses no podero ocorrer. No-preempo : normalmente uma tarefa obtm e libera os recursos de que necessita de acordo com sua lgica interna. Espera circular : um impasse uma cadeia de dependncias entre tarefas e recursos que forma um ciclo.

Impedimento de DeadLocks
Negar acessos de recursos que possam levar a impasses. Estado seguro: possvel concluir as tarefas pendentes. Estado inseguro: somente leve a impasses. A tcnica de impedimento de impasses mais conhecida o algoritmo do banqueiro. As tcnicas de impedimento de impasses necessitam de algum conhecimento prvio sobre o comportamento das tarefas para poderem operar.

Deteco DeadLocks
As tarefas executam normalmente suas atividades, alocando e liberando recursos conforme suas necessidades.

O sistema o detecta, determina quais as tarefas e recursos envolvidos e toma medidas para desfaz-lo.
Inspeo do grafo de alocao de recursos.

Problemas
O custo de manuteno contnua do grafo de alocao. O custo de sua anlise.

Resoluo de DeadLocks
Uma vez detectado um impasse e identificadas as tarefas e recursos envolvidos, o sistema deve proceder sua resoluo, que pode ser feita de duas formas. Eliminar tarefas : uma ou mais tarefas envolvidas no impasse so eliminadas, liberando seus recursos para que as demais tarefas possam prosseguir. Retroceder tarefas : uma ou mais tarefas envolvidas no impasse tm sua execuo parcialmente desfeita, de forma a fazer o sistema retornar a um estado seguro anterior ao impasse.

Algoritmo do Avestruz

Algoritmo do Avestruz

Algoritmo do Avestruz
Reaes diversas: Matemticos consideram totalmente inaceitvel e dizem que impasses devem ser evitados a qualquer custo. Engenheiros perguntam sobre a frequncia esperada do problema, das quedas de sistema por outras razes e sobre a gravidade do impasse. Impasse ocorressem em mdia um a cada 50 anos e; Quedas do sistema devida a falha de hardware, erros e bugs ocorressem uma vez por ms

Supor a situao no UNIX


Tem 100 entradas de processos; 10 programas esto executando, cada um dos quais necessita criar 12 processos. Depois que cada um cria 9 processos, esgota-se as entradas na tabela; Cada um dos 10 processos fica num lao de criao e falha (IMPASSE). Deveramos abandonar processos e a chamada FORK para eliminar o problema????

Em suma
O sistema UNIX possui uma abordagem simplesmente de ignorar o problema na suposio de que a maioria dos usurios preferiria um impasse ocasional do que uma regra que restringisse todos os usurios a um processo ou a um arquivo aberto. Entra numa negociao desagradvel entre convenincia e correo.

Jantar dos Filsofos


Formulado e resolvido por Dijkstra. Comer e pensar. Pensando, faminto ou comendo.

Algoritmo

Situao de DeadLock

Algoritmo do Banqueiro
Criado por Dijkstra. Alocao de recursos. Usado em situaes em que um processo necessita de diversos tipos de recursos

Starvation
O processo nunca executado. Ao contrrio do deadlock. Exemplos: Dois processos enviando repetitivamente mensagens um para o outro e um terceiro bloqueado, esperando por uma mensagem de um deles.

Alocao de uma impressora. Considerando que o sistema utilize algum algoritmo que garanta que a alocao da impressora no vai levar a situaes de deadlock, e considerando tambm que diversos processos desejam utiliz-la ao mesmo tempo, deve-se definir qual dos processos tem o direito de us-la.

LiveLock
Similar a um bloqueio. Pooling ( espera ocupada ). Isto pode ser evitado assegurando que apenas um processo (escolhidos aleatoriamente ou por prioridade) toma medidas.

Vous aimerez peut-être aussi