24
1 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Sistemas Operacionais -Deadlocks Ernesto Massa (slides fornecidos pela Prentice Hall e adaptados para esta disciplina)

2009 1 - sistemas operacionais - aula 7 - deadlocks

Embed Size (px)

Citation preview

Page 1: 2009 1 - sistemas operacionais - aula 7 - deadlocks

1Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Sistemas Operacionais-Deadlocks

Ernesto Massa

(slides fornecidos pela Prentice Hall e adaptados para esta disciplina)

Page 2: 2009 1 - sistemas operacionais - aula 7 - deadlocks

2Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Deadlock

Suponha a seguinte situação: Um processo detenha o recurso A e

solicite o recurso B. Ao mesmo tempo um outro processo detém B e solicita A.

Ambos são bloqueados permanentemente!

Esta situação é chamada de DEADLOCK.

Page 3: 2009 1 - sistemas operacionais - aula 7 - deadlocks

3Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Condições Necessárias ao Deadlock

Exclusão Mútua Todo recurso está associado a apenas um processo,

ou se encontra disponível. Posse e Espera

Processos retêm alguns recursos, aguardando por outros recursos necessários.

Não Preempção Os recursos utilizados por um processo não podem

ser retirados dele sem o seu concentimento. Espera Circular

Formação de uma cadeia circular com 2 ou mais processos. Cada processo está à espera de ao menos um recurso retido pelo membro seguinte dessa cadeia.

Page 4: 2009 1 - sistemas operacionais - aula 7 - deadlocks

4Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Recursos

Alguns exemplos de recursos em um sistema computacional: impressoras unidades de disco arquivos

Processos precisam de acesso aos recursos em uma ordem lógica particular durante o seu processamento.

Page 5: 2009 1 - sistemas operacionais - aula 7 - deadlocks

5Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Recursos

Recursos preemptíveis Podem ser retirados de um processo

sem provocar quaisquer efeitos prejudiciais.

Recursos não preemptíveis Induzem o processo a falhar se forem

retirados.

Page 6: 2009 1 - sistemas operacionais - aula 7 - deadlocks

6Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Modelagem de Deadlocks

Modelagem com grafos dirigidos O recurso R está alocado ao processo A O processo B está solicitando/esperando pelo

recurso S Os processos C e D estão em deadlock sobre

recursos T e U

Page 7: 2009 1 - sistemas operacionais - aula 7 - deadlocks

7Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Modelagem de Deadlocks

Estratégias para o tratamento de Deadlocks: Ignorar por completo o problema

Algoritmo da Avestruz Detectar e recuperar Evitar dinâmicamente

Alocação cuidadosa de recursos Prevenir

Remover uma das quatro condições necessárias

Page 8: 2009 1 - sistemas operacionais - aula 7 - deadlocks

8Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Modelagem de Deadlock

Como ocorre um deadlock

Pode-se identificar as quatro condições?

Page 9: 2009 1 - sistemas operacionais - aula 7 - deadlocks

9Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Algoritmo do Avestruz

Finge que o problema não existe Razoável quando:

Deadlocks ocorrem muito raramente O custo da prevenção for muito alto

É uma ponderação entre a conveniência e a correção.

perfil exato x perfil operacional

Page 10: 2009 1 - sistemas operacionais - aula 7 - deadlocks

10Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Detecção com um Recursode Cada Tipo

Observe a posse e solicitações de recursos

Um ciclo pode ser encontrado dentro do grafo, denotando deadlock

Page 11: 2009 1 - sistemas operacionais - aula 7 - deadlocks

11Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Detecção com vários Recursosde Cada Tipo

Estruturas de dados necessárias ao algoritmo de detecção de deadlock

Page 12: 2009 1 - sistemas operacionais - aula 7 - deadlocks

12Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Detecção com Múltiplos Recursosde Cada Tipo

Um exemplo de algoritmo: Garantia de

recursos suficientes para atender recursiva-mente a todos os processos.

Page 13: 2009 1 - sistemas operacionais - aula 7 - deadlocks

13Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Recuperação de Deadlock

Preempção de Recurso Retirada de um recurso de algum

processo. Dependente da natureza do recurso.

Reversão de Estado Gravação do estado dos processos

periodicamente. Se for encontrado um deadlock, retorna

a execução ao último estado seguro.

Page 14: 2009 1 - sistemas operacionais - aula 7 - deadlocks

14Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Recuperação de Deadlock

Recuperação através da eliminação de processos Elimina um dos processos no ciclo de

deadlock. A forma mais grosseira porém mais

simples de se quebrar um deadlock. Os outros processos conseguem seus

recursos recursivamente. Deve ser escolhido um processo de

baixo impacto e que pode ser reexecutado desde seu início.

Page 15: 2009 1 - sistemas operacionais - aula 7 - deadlocks

15Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Evitando DeadlocksTrajetórias de Recursos

Trajetórias de recursos de dois processos

Page 16: 2009 1 - sistemas operacionais - aula 7 - deadlocks

16Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Estados Seguros e Inseguros

O estado em (a) é um estado seguro

Page 17: 2009 1 - sistemas operacionais - aula 7 - deadlocks

17Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Estados Seguros e Inseguros

Demonstração de que o estado em (b) é inseguro

Page 18: 2009 1 - sistemas operacionais - aula 7 - deadlocks

18Pearson Education Sistemas Operacionais Modernos – 2ª Edição

O Algoritmo do Banqueiro para um Único Recurso

Três estados de alocação de recursosseguro seguro inseguro

Page 19: 2009 1 - sistemas operacionais - aula 7 - deadlocks

19Pearson Education Sistemas Operacionais Modernos – 2ª Edição

O Algoritmo do Banqueiropara Múltiplos Recursos

Exemplo do algoritmo do banqueiro com múltiplos recursos

EXIST.ALOC.DISP.

Page 20: 2009 1 - sistemas operacionais - aula 7 - deadlocks

20Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Prevenção de Deadlock Exclusão Mútua

Alguns dispositivos (como uma impressora) podem fazer uso de spool o daemon de impressão é o único que usa o

recurso impressora. desta forma deadlock envolvendo a impressora

é eliminado. Nem todos os dispositivos podem fazer

uso de spool. Princípio:

Evitar alocar um recurso quando ele não for absolutamente necessário.

Assegurar que o menor número possível de processos possa de fato requisitar o recurso.

Page 21: 2009 1 - sistemas operacionais - aula 7 - deadlocks

21Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Prevenção de Deadlock 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 Os processos podem não saber quantos e quais

recursos vão precisar no início da execução Retenção de recursos por mais tempo que o

necessário,.

Variação: Cada processo deve desistir de todos os recursos,

para então requisitar todos os que são imediatamente necessários.

Page 22: 2009 1 - sistemas operacionais - aula 7 - deadlocks

22Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Prevenção de Deadlock Não Preempção

Inviável Considere um processo de posse de

uma impressora No meio da impressão Tomada a impressora a força!!??

Page 23: 2009 1 - sistemas operacionais - aula 7 - deadlocks

23Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Prevenção de Deadlock Espera Circular

Recursos ordenados numericamente

Page 24: 2009 1 - sistemas operacionais - aula 7 - deadlocks

24Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Prevenção de Deadlock

Resumo das abordagens para prevenir deadlock