Aula09a
1726 palavras
7 páginas
Sistemas OperacionaisProgramação Concorrente
Impasses
Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno
Sumário
Princípios de Deadlock
Técnicas de solução do problema
Prevenir a ocorrência de deadlock
Evitar a possibilidade de ocorrência de deadlock
Detecção a ocorrência de deadlock e recuperar
Deadlock
Um conjunto de processo está em deadlock se
Cada processo do conjunto está bloqueado
Se o bloqueio está ocorrendo pelo aguarde de um evento
Se este evento somente pode ser disparado por outro processo
Se este outro processo também está bloqueado
Tipicamente envolve processos competindo pelo mesmo recurso
Deadlock em potencial
Precisa dos quadrantes C eD Precisa dos quadrantes D eA Precisa dos quadrantes B eC Precisa dos quadrantes A eB Deadlock real
Trava até que
D esteja livre
Trava até que
A esteja livre
Trava até que
C esteja livre
Trava até que
B esteja livre
Deadlock real
Dados dois processos P e Q
Dados os process P e Q
Cada qual precisa acessar a um
recurso A e B por um tempo determinado Diagrama de deadlock
Lógica alternativa
Suponha que P
Não necessite de ambos recursos ao mesmo tempo
Assim, os processo podem ser construídos da seguinte forma...
Diagrama lógico alternativo
Exemplo
Situação
Há um espaço de 200Kbytes para ser alocado
A seguinte seqüência de eventos ocorre
P1
P2
...
...
Request 80 Kbytes;
Request 70 Kbytes;
Request 60 Kbytes;
Request 80 Kbytes;
...
...
Deadlock ocorre se ambos processos progredirem para sua
segunda requisição
Grafo de alocação de recurso
Grafo dirigido
Detalha um estado de um recurso ou processo
Alocação de recursos - Grafo de deadlock
Condições de um possível Deadlock
Exclusão mútua
Apenas um processo pode usar o recurso por vez
Segurar e esperar
Um processo pode conter recursos alocados enquanto aguarda a
atribuição de outros
Sem preempção
Nenhum recurso pode ser forçosamente removido de um
processo