SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
DEADLOCKS - IMPASSES
                                  Sistemas Operacionais
                                  Cristiano Pires Martins




sexta-feira, 27 de maio de 2011
DEADLOCKS - IMPASSES
      ¢            3.1. Recurso
      ¢            3.2. Introdução aos deadlocks
      ¢            3.3. Algoritmo do avestruz
      ¢            3.4. Detecção e recuperação de deadlocks
      ¢            3.5. Evitando deadlocks
      ¢            3.6. Prevenção de deadlocks
      ¢            3.7. Outras questões




sexta-feira, 27 de maio de 2011
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 detém B e solicita A
        —   ambos são bloqueados e assim permanecem

                                                 3

sexta-feira, 27 de maio de 2011
RECURSOS (1)


    ¢ Deadlocks                  ocorrem quando …
         —   garante-se aos processos acesso exclusivo aos dispositivos
         —   esses dispositivos são normalmente chamados de recursos
    ¢ Recurso
       — Recurso     é algo que pode ser usado somente por um único
              processo em um dado instante de tempo.
    ¢ Recursos preemptíveis
       — podem ser retirados de um           processo sem quaisquer efeitos
              prejudiciais
    ¢ Recursos não preemptíveis
       — vão induzir o processo a falhar        se forem retirados


                                                       4

sexta-feira, 27 de maio de 2011
RECURSOS (2)

     ž         Seqüência de eventos necessários ao uso de um
                recurso
                  1.    solicitar o recurso
                  2.    usar o recurso
                  3.    liberar o recurso
     ž         Deve esperar se solicitação é negada
           —      processo solicitante pode ser bloqueado
           —      pode falhar resultando em um código de erro




                                                    5

sexta-feira, 27 de maio de 2011
CÓDIGOS COM E SEM POSSIBILIDADE DE DEADLOCK




sexta-feira, 27 de maio de 2011
INTRODUÇÃO AOS DEADLOCKS
        ž Definição  formal:
            Um conjunto de processos está em situação de
            deadlock se todo processo pertencente ao
            conjunto estiver esperando por um evento que
            somente um outro processo desse mesmo
            conjunto poderá fazer acontecer
        ž Normalmente    o evento é a liberação de um
            recurso atualmente retido.
        ž Nenhum                 dos processos pode...
              —   executar
              —   liberar recursos
              —   ser acordado


                                                     7

sexta-feira, 27 de maio de 2011
QUATRO CONDIÇÕES PARA
           DEADLOCK
    1.         Condição de exclusão mútua
          —      todo recurso está ou associado a um processo ou
                  disponível
    2.         Condição de posse e espera
          —      processos que retêm recursos podem solicitar novos
                  recursos
    3.         Condição de não preempção
          —      recursos concedidos previamente não podem ser
                  forçosamente tomados
    4.         Condição de espera circular
          —      deve ser uma cadeia circular de 2 ou mais processos
          —      cada um está à espera de recurso retido pelo
                  membro seguinte dessa cadeia

          —      Obs.: Todas devem estar presentes para que ocorra um deadlock.

                                                       8

sexta-feira, 27 de maio de 2011
MODELAGEM DE DEADLOCK COM
           GRAFOS DIRIGIDOS
                        processo




                        recurso



              a)     recurso R alocado ao processo A
              b)     processo B está solicitando/esperando pelo
                     recurso S
              c)     processos C e D estão em deadlock sobre
                     recursos T e U

                                                 9

sexta-feira, 27 de maio de 2011
COMO OCORRE UM DEADLOCK




                                  10

sexta-feira, 27 de maio de 2011
COMO PODE SER EVITADO UM
          DEADLOCK




                                  11

sexta-feira, 27 de maio de 2011
ESTRATÉGIAS PARA TRATAR
           DEADLOCKS

                1. Ignorar por completo o problema;
                2. Detecção e recuperação;
                3. Evitação dinâmica:
                      ¢     alocação cuidadosa de recursos
                4.     Prevenção:
                      ¢     negação de uma das quatro condições
                             necessárias



                                                 12

sexta-feira, 27 de maio de 2011
ALGORITMO DO AVESTRUZ

         ¢ Finge que o problema não existe
         ¢ Razoável se
              — deadlocks ocorrem muito raramente
              — custo da prevenção é alto
         ¢ UNIX e Windows seguem esta abordagem
         ¢ É uma ponderação entre
              — conveniência
              — correção




                                                 13

sexta-feira, 27 de maio de 2011
DETECÇÃO COM UM RECURSO
DE CADA TIPO
       R




    ¢ Observe  a posse e solicitações de recursos
    ¢ Um ciclo pode ser encontrado dentro do grafo,
       denotando deadlock
                                    14

sexta-feira, 27 de maio de 2011
RECUPERAÇÃO DE DEADLOCK


         ¢ Existemvárias, mas não são interessantes.
         ¢ Recuperação através de preempção
              —   retirar um recurso de algum outro processo
              —   depende da natureza do recurso
         ¢ Recuperação           através de reversão de estado
              —   verifica um processo periodicamente
              —   usa este estado salvo
              —   reinicia o processo se este é encontrado em
                   estado de deadlock


                                                 15

sexta-feira, 27 de maio de 2011
RECUPERAÇÃO DE DEADLOCK
           (2)

      ¢   Recuperação através da eliminação de processos
           — forma mais grosseira mas também 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 reexecutado desde seu início




                                                16

sexta-feira, 27 de maio de 2011
EVITANDO DEADLOCKS
         TRAJETÓRIAS DE RECURSOS




                        Trajetórias de recursos de dois processos
                                                   17

sexta-feira, 27 de maio de 2011
PREVENÇÃO DE DEADLOCK
         ATACANDO A CONDIÇÃO DE EXCLUSÃO

       ž 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
            —   tentar assegurar que o menor número possível de
                 processos possa de fato requisitar o recurso


                                               18

sexta-feira, 27 de maio de 2011
PREVENÇÃO DE DEADLOCK
         ATACANDO A CONDIÇÃO 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 não saber quantos e quais recursos vão precisar no início da
          execução
       — e também retêm recursos que outros processos poderiam estar usando

 ž   Variação:
       — processo deve desistir de todos os recursos
       — para então requisitar todos os que são imediatamente necessários




                                                   19

sexta-feira, 27 de maio de 2011
PREVENÇÃO DE DEADLOCK
         ATACANDO A CONDIÇÃO DE NÃO PREEMPÇÃO



   ¢ Esta é uma opção inviável
   ¢ Considere um processo de posse de uma impressora
        — no meio da impressão
        — retoma a impressora a força
        — !!??




                                         20

sexta-feira, 27 de maio de 2011
PREVENÇÃO DE DEADLOCK
ATACANDO A CONDIÇÃO DE ESPERA CIRCULAR (1)




               a)       Recursos ordenados numericamente
               b)       Um grafo de recursos

                                             21

sexta-feira, 27 de maio de 2011
PREVENÇÃO DE DEADLOCK
  ATACANDO A CONDIÇÃO DE ESPERA CIRCULAR (2)




         Resumo das abordagens para prevenir deadlock


                                     22

sexta-feira, 27 de maio de 2011

Weitere ähnliche Inhalte

Was ist angesagt?

Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamentocamila_seixas
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativoTony Alexander Hild
 
Distributed Shared Memory Systems
Distributed Shared Memory SystemsDistributed Shared Memory Systems
Distributed Shared Memory SystemsArush Nagpal
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Redes de Computadores - Camada de Aplicação
Redes de Computadores - Camada de AplicaçãoRedes de Computadores - Camada de Aplicação
Redes de Computadores - Camada de AplicaçãoLuís Felipe de Andrade
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalFelipe J. R. Vieira
 
Memória Interna - Arquitetura e Organização de Computadores
Memória Interna - Arquitetura e Organização de ComputadoresMemória Interna - Arquitetura e Organização de Computadores
Memória Interna - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Aula 3 Introdução a Redes II
Aula 3   Introdução a Redes IIAula 3   Introdução a Redes II
Aula 3 Introdução a Redes IIwab030
 
Avarias mais comuns nos computadores
Avarias mais comuns nos computadoresAvarias mais comuns nos computadores
Avarias mais comuns nos computadoresedlander
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoAlexandre Duarte
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivosJoao Ferreira
 

Was ist angesagt? (20)

Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamento
 
Introdução ao paradigma imperativo
Introdução ao paradigma imperativoIntrodução ao paradigma imperativo
Introdução ao paradigma imperativo
 
Distributed Shared Memory Systems
Distributed Shared Memory SystemsDistributed Shared Memory Systems
Distributed Shared Memory Systems
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Pseudoparalelismo
PseudoparalelismoPseudoparalelismo
Pseudoparalelismo
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Barramentos
Barramentos Barramentos
Barramentos
 
Modulo 5 Redes
Modulo 5   RedesModulo 5   Redes
Modulo 5 Redes
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Redes de Computadores - Camada de Aplicação
Redes de Computadores - Camada de AplicaçãoRedes de Computadores - Camada de Aplicação
Redes de Computadores - Camada de Aplicação
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
 
The CAP Theorem
The CAP Theorem The CAP Theorem
The CAP Theorem
 
Memória Interna - Arquitetura e Organização de Computadores
Memória Interna - Arquitetura e Organização de ComputadoresMemória Interna - Arquitetura e Organização de Computadores
Memória Interna - Arquitetura e Organização de Computadores
 
Aula 3 Introdução a Redes II
Aula 3   Introdução a Redes IIAula 3   Introdução a Redes II
Aula 3 Introdução a Redes II
 
Avarias mais comuns nos computadores
Avarias mais comuns nos computadoresAvarias mais comuns nos computadores
Avarias mais comuns nos computadores
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivos
 
Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)
 
Redes -aula_1o
Redes  -aula_1oRedes  -aula_1o
Redes -aula_1o
 

Andere mochten auch

Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Cristiano Pires Martins
 
Aula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoAula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoCristiano Pires Martins
 

Andere mochten auch (20)

Aula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivoAula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivo
 
Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2
 
Aula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoriaAula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoria
 
Aula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoAula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacao
 
Aula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digitalAula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digital
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 
Aula 14 - Deadlocks
Aula 14 - DeadlocksAula 14 - Deadlocks
Aula 14 - Deadlocks
 
Aula 01-introducao-ao-so
Aula 01-introducao-ao-soAula 01-introducao-ao-so
Aula 01-introducao-ao-so
 
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programasAula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
 
Aula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oacAula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oac
 
Aula 05-entrada e-saida
Aula 05-entrada e-saidaAula 05-entrada e-saida
Aula 05-entrada e-saida
 
Aula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-riscAula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-risc
 
Aula 06 textos na web
Aula 06   textos na webAula 06   textos na web
Aula 06 textos na web
 
Aula 07 - lista linear
Aula 07 - lista linearAula 07 - lista linear
Aula 07 - lista linear
 
Aula 07 acessibilidade
Aula 07  acessibilidadeAula 07  acessibilidade
Aula 07 acessibilidade
 
Java script aula 07 - eventos
Java script   aula 07 - eventosJava script   aula 07 - eventos
Java script aula 07 - eventos
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
Java script aula 05 - funções
Java script   aula 05 - funçõesJava script   aula 05 - funções
Java script aula 05 - funções
 

Ähnlich wie Deadlocks em SO: Detecção, Recuperação e Prevenção

Ähnlich wie Deadlocks em SO: Detecção, Recuperação e Prevenção (7)

Deadlocks (Resumo)
Deadlocks (Resumo)Deadlocks (Resumo)
Deadlocks (Resumo)
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
Ad d lock
Ad d lockAd d lock
Ad d lock
 
Parte1f
Parte1fParte1f
Parte1f
 
2009 1 - sistemas operacionais - aula 7 - deadlocks
2009 1 - sistemas operacionais - aula 7 - deadlocks2009 1 - sistemas operacionais - aula 7 - deadlocks
2009 1 - sistemas operacionais - aula 7 - deadlocks
 
S.o aula 1718
S.o aula 1718S.o aula 1718
S.o aula 1718
 
Mutex and monitores
Mutex and monitoresMutex and monitores
Mutex and monitores
 

Mehr von Cristiano Pires Martins (15)

Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Java script aula 08 - formulários
Java script   aula 08 - formuláriosJava script   aula 08 - formulários
Java script aula 08 - formulários
 
Aula 05 layout e composição do site
Aula 05   layout e composição do siteAula 05   layout e composição do site
Aula 05 layout e composição do site
 
Aula 04 layout e composição do site
Aula 04   layout e composição do siteAula 04   layout e composição do site
Aula 04 layout e composição do site
 
Aula 02 semiótica e cores
Aula 02   semiótica e coresAula 02   semiótica e cores
Aula 02 semiótica e cores
 
Aula 01 introdução
Aula 01   introduçãoAula 01   introdução
Aula 01 introdução
 
Aula 03 esquema de cores
Aula 03   esquema de coresAula 03   esquema de cores
Aula 03 esquema de cores
 
Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
WDI - aula 07 - css com html
WDI - aula 07 - css com htmlWDI - aula 07 - css com html
WDI - aula 07 - css com html
 
Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
OAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e SaídaOAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e Saída
 
Aula 07-oac-processadores
Aula 07-oac-processadoresAula 07-oac-processadores
Aula 07-oac-processadores
 
Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1
 

Deadlocks em SO: Detecção, Recuperação e Prevenção

  • 1. DEADLOCKS - IMPASSES Sistemas Operacionais Cristiano Pires Martins sexta-feira, 27 de maio de 2011
  • 2. DEADLOCKS - IMPASSES ¢ 3.1. Recurso ¢ 3.2. Introdução aos deadlocks ¢ 3.3. Algoritmo do avestruz ¢ 3.4. Detecção e recuperação de deadlocks ¢ 3.5. Evitando deadlocks ¢ 3.6. Prevenção de deadlocks ¢ 3.7. Outras questões sexta-feira, 27 de maio de 2011
  • 3. 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 detém B e solicita A — ambos são bloqueados e assim permanecem 3 sexta-feira, 27 de maio de 2011
  • 4. RECURSOS (1) ¢ Deadlocks ocorrem quando … — garante-se aos processos acesso exclusivo aos dispositivos — esses dispositivos são normalmente chamados de recursos ¢ Recurso — Recurso é algo que pode ser usado somente por um único processo em um dado instante de tempo. ¢ Recursos preemptíveis — podem ser retirados de um processo sem quaisquer efeitos prejudiciais ¢ Recursos não preemptíveis — vão induzir o processo a falhar se forem retirados 4 sexta-feira, 27 de maio de 2011
  • 5. RECURSOS (2) ž Seqüência de eventos necessários ao uso de um recurso 1. solicitar o recurso 2. usar o recurso 3. liberar o recurso ž Deve esperar se solicitação é negada — processo solicitante pode ser bloqueado — pode falhar resultando em um código de erro 5 sexta-feira, 27 de maio de 2011
  • 6. CÓDIGOS COM E SEM POSSIBILIDADE DE DEADLOCK sexta-feira, 27 de maio de 2011
  • 7. INTRODUÇÃO AOS DEADLOCKS ž Definição formal: Um conjunto de processos está em situação de deadlock se todo processo pertencente ao conjunto estiver esperando por um evento que somente um outro processo desse mesmo conjunto poderá fazer acontecer ž Normalmente o evento é a liberação de um recurso atualmente retido. ž Nenhum dos processos pode... — executar — liberar recursos — ser acordado 7 sexta-feira, 27 de maio de 2011
  • 8. QUATRO CONDIÇÕES PARA DEADLOCK 1. Condição de exclusão mútua — todo recurso está ou associado a um processo ou disponível 2. Condição de posse e espera — processos que retêm recursos podem solicitar novos recursos 3. Condição de não preempção — recursos concedidos previamente não podem ser forçosamente tomados 4. Condição de espera circular — deve ser uma cadeia circular de 2 ou mais processos — cada um está à espera de recurso retido pelo membro seguinte dessa cadeia — Obs.: Todas devem estar presentes para que ocorra um deadlock. 8 sexta-feira, 27 de maio de 2011
  • 9. MODELAGEM DE DEADLOCK COM GRAFOS DIRIGIDOS processo recurso a) recurso R alocado ao processo A b) processo B está solicitando/esperando pelo recurso S c) processos C e D estão em deadlock sobre recursos T e U 9 sexta-feira, 27 de maio de 2011
  • 10. COMO OCORRE UM DEADLOCK 10 sexta-feira, 27 de maio de 2011
  • 11. COMO PODE SER EVITADO UM DEADLOCK 11 sexta-feira, 27 de maio de 2011
  • 12. ESTRATÉGIAS PARA TRATAR DEADLOCKS 1. Ignorar por completo o problema; 2. Detecção e recuperação; 3. Evitação dinâmica: ¢ alocação cuidadosa de recursos 4. Prevenção: ¢ negação de uma das quatro condições necessárias 12 sexta-feira, 27 de maio de 2011
  • 13. ALGORITMO DO AVESTRUZ ¢ Finge que o problema não existe ¢ Razoável se — deadlocks ocorrem muito raramente — custo da prevenção é alto ¢ UNIX e Windows seguem esta abordagem ¢ É uma ponderação entre — conveniência — correção 13 sexta-feira, 27 de maio de 2011
  • 14. DETECÇÃO COM UM RECURSO DE CADA TIPO R ¢ Observe a posse e solicitações de recursos ¢ Um ciclo pode ser encontrado dentro do grafo, denotando deadlock 14 sexta-feira, 27 de maio de 2011
  • 15. RECUPERAÇÃO DE DEADLOCK ¢ Existemvárias, mas não são interessantes. ¢ Recuperação através de preempção — retirar um recurso de algum outro processo — depende da natureza do recurso ¢ Recuperação através de reversão de estado — verifica um processo periodicamente — usa este estado salvo — reinicia o processo se este é encontrado em estado de deadlock 15 sexta-feira, 27 de maio de 2011
  • 16. RECUPERAÇÃO DE DEADLOCK (2) ¢ Recuperação através da eliminação de processos — forma mais grosseira mas também 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 reexecutado desde seu início 16 sexta-feira, 27 de maio de 2011
  • 17. EVITANDO DEADLOCKS TRAJETÓRIAS DE RECURSOS Trajetórias de recursos de dois processos 17 sexta-feira, 27 de maio de 2011
  • 18. PREVENÇÃO DE DEADLOCK ATACANDO A CONDIÇÃO DE EXCLUSÃO ž 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 — tentar assegurar que o menor número possível de processos possa de fato requisitar o recurso 18 sexta-feira, 27 de maio de 2011
  • 19. PREVENÇÃO DE DEADLOCK ATACANDO A CONDIÇÃO 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 não saber quantos e quais recursos vão precisar no início da execução — e também retêm recursos que outros processos poderiam estar usando ž Variação: — processo deve desistir de todos os recursos — para então requisitar todos os que são imediatamente necessários 19 sexta-feira, 27 de maio de 2011
  • 20. PREVENÇÃO DE DEADLOCK ATACANDO A CONDIÇÃO DE NÃO PREEMPÇÃO ¢ Esta é uma opção inviável ¢ Considere um processo de posse de uma impressora — no meio da impressão — retoma a impressora a força — !!?? 20 sexta-feira, 27 de maio de 2011
  • 21. PREVENÇÃO DE DEADLOCK ATACANDO A CONDIÇÃO DE ESPERA CIRCULAR (1) a) Recursos ordenados numericamente b) Um grafo de recursos 21 sexta-feira, 27 de maio de 2011
  • 22. PREVENÇÃO DE DEADLOCK ATACANDO A CONDIÇÃO DE ESPERA CIRCULAR (2) Resumo das abordagens para prevenir deadlock 22 sexta-feira, 27 de maio de 2011