SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Cristiano	
  Pires	
  Martins




                                                      Parte 2

terça-feira, 13 de março de 12
Exclusão	
  Mútua	
  com	
  Espera	
  
     Ociosa
      — Desabilitando	
  Interrupções;
      — Variáveis	
  de	
  Impedimento;
      — Alternância	
  Obrigatória;
      — Solução	
  de	
  Peterson;
      — A	
  instrução	
  TSL;




terça-feira, 13 de março de 12
Desabilitando	
  Interrupções
      — É	
  a	
  solução	
  mais	
  simples:	
  cada	
  processo	
  desabilita	
  
         todas	
  as	
  interrupções	
  logo	
  depois	
  de	
  entrar	
  na	
  
         região	
  crítica	
  e	
  reabilita-­‐se	
  imediatamente	
  antes	
  
         de	
  sair	
  dela;
      — Não	
  é	
  interessante	
  porque	
  não	
  é	
  prudente	
  dar	
  aos	
  
         processos	
  dos	
  usuários	
  o	
  poder	
  de	
  desligar	
  
         interrupções;
      — É	
  uma	
  técnica	
  bastante	
  útil	
  dentro	
  do	
  próprio	
  SO,	
  
         mas	
  inadequada	
  como	
  um	
  mecanismo	
  geral	
  de	
  
         exclusão	
  mútua	
  para	
  processos	
  de	
  usuário.
terça-feira, 13 de março de 12
Variáveis	
  de	
  Impedimento
      — Solução	
  de	
  Software;
      — Há	
  uma	
  única	
  variável	
  compartilhada	
  entre	
  os	
  
         dois	
  processos	
  (lock),	
  contendo	
  o	
  valor	
  0;
      — Se	
  lock	
  for	
  0,	
  o	
  processo	
  altera	
  essa	
  variável	
  para	
  1	
  
         e	
  entra	
  na	
  região;
      — Se	
  lock	
  já	
  estiver	
  com	
  o	
  valor	
  1,	
  o	
  processo	
  
         simplesmente	
  aguardará	
  até	
  que	
  ela	
  se	
  torne	
  0;
      — Só	
  que	
  essa	
  técnica	
  apresenta	
  uma	
  falha	
  como	
  
         diretório	
  de	
  spool.

terça-feira, 13 de março de 12
Alternância	
  Obrigatória
      — Contém	
  uma	
  variável	
  inteira,	
  inicialmente	
  com	
  0,	
  
         serve	
  para	
  controlar	
  a	
  vez	
  de	
  quem	
  entra	
  na	
  região	
  
         crítica	
  e	
  verifica	
  ou	
  atualiza	
  a	
  memória	
  
         compartilhada;
      — Testar	
  continuamente	
  um	
  variável	
  até	
  que	
  um	
  
         valor	
  apareça	
  é	
  chamado	
  de	
  espera	
  ociosa.	
  Isso	
  
         deveria	
  ser	
  evitado	
  (gasta	
  tempo	
  de	
  CPU);
      — A	
  variável	
  de	
  impedimento	
  que	
  usa	
  espera	
  ociosa	
  
         é	
  chamada	
  de	
  spin	
  lock.

terça-feira, 13 de março de 12
Alternância Obrigatória




     Solução proposta para o problema da região crítica
                                 (a) Processo 0.   (b) Processo 1.

     33

terça-feira, 13 de março de 12
Alternância	
  Obrigatória
      — Alternar	
  a	
  vez	
  não	
  é	
  uma	
  boa	
  idéia	
  quando	
  um	
  dos	
  
         processos	
  for	
  	
  muito	
  mais	
  lento	
  que	
  o	
  outro;
      — Essa	
  situação	
  viola	
  a	
  condição	
  3:	
  o	
  processo	
  0	
  está	
  
         sendo	
  bloqueado	
  por	
  um	
  processo	
  que	
  não	
  está	
  na	
  sua	
  
         região	
  crítica.




terça-feira, 13 de março de 12
Solução de Peterson




   Solução de Peterson para implementar exclusão mútua
     35

terça-feira, 13 de março de 12
Instrução	
  TSL
      — Requer	
  um	
  pequeno	
  auxílio	
  do	
  hardware;
      — TSL	
  (Test	
  and	
  Set	
  Lock):	
  teste	
  e	
  atualize	
  variável	
  de	
  
         impedimento;
      — As	
  operações	
  de	
  leitura	
  e	
  armazenamento	
  de	
  uma	
  
         palavra	
  são	
  seguramente	
  indivisíveis;
      — A	
  CPU	
  impede	
  o	
  acesso	
  ao	
  barramento	
  de	
  memória.




terça-feira, 13 de março de 12
Instrução TSL




          Entrando e saindo de uma região crítica usando a
                            instrução TSL
     37

terça-feira, 13 de março de 12
Dormir e Acordar




  Problema do produtor-consumidor com uma condição de disputa fatal
     38

terça-feira, 13 de março de 12
Semáforos




 O problema do produtor-consumidor usando semáforos
     39

terça-feira, 13 de março de 12
Mutexes




               Implementação de mutex_lock e mutex_unlock

Instrução TSL




     40

terça-feira, 13 de março de 12
Monitores (1)




                                 Exemplo de um monitor
     41

terça-feira, 13 de março de 12
Troca de Mensagens




      O problema do produtor-consumidor com N mensagens
     42

terça-feira, 13 de março de 12
Barreiras




          —      Uso de uma barreira
                a) processos se aproximando de uma barreira
                b) todos os processos, exceto um, bloqueados
                   pela barreira
                c) último processo chega, todos passam

     43

terça-feira, 13 de março de 12
Escalonamento
          Introdução ao Escalonamento (1)




     —       Surtos de uso da CPU alternam-se com
              períodos de espera por E/S
            a) um processo orientado à CPU
            b) um processo orientado à E/S
     44

terça-feira, 13 de março de 12
Introdução ao Escalonamento (2)




                Objetivos do algoritmo de escalonamento
     45

terça-feira, 13 de março de 12
Escalonamento em
    Sistemas em Lote (1)




           Um exemplo de escalonamento job mais curto primeiro




     46

terça-feira, 13 de março de 12
Escalonamento em
   Sistemas em Lote (2)




                                 Escalonamento em três níveis
     47

terça-feira, 13 de março de 12
Escalonamento em
Sistemas Interativos (1)




  —       Escalonamento por alternância circular (round-
           robin)
          a) lista de processos executáveis
          b) lista de processos executáveis depois que B usou todo
             o seu quantum
     48

terça-feira, 13 de março de 12
Escalonamento em
Sistemas Interativos (2)




    Um algoritmo de escalonamento com quatro classes
                       de prioridade
     49

terça-feira, 13 de março de 12
Próximo	
  Processo	
  Mais	
  Curto




                                            23

terça-feira, 13 de março de 12
Escalonamento	
  GaranHdo




                                 24

terça-feira, 13 de março de 12
Escalonamento em
                                           Sistemas de Tempo-Real
                            Sistema de tempo-real escalonável
                            •  Dados
                                 –  m eventos periódicos
                                 –  evento i ocorre dentro do período Pi e
                                    requer Ci segundos
                            •  Então a carga poderá ser tratada
                               somente se m
                                                      Ci
                                                 ∑ P ≤1
                                                 i =1  i
                            Pearson Education              Sistemas Operacionais Modernos – 2ª Edição   33




                                                                                                             25

terça-feira, 13 de março de 12

Weitere ähnliche Inhalte

Was ist angesagt?

Especificação de Requisitos de Software ParentalBeta
Especificação de Requisitos de Software ParentalBetaEspecificação de Requisitos de Software ParentalBeta
Especificação de Requisitos de Software ParentalBetaDanilo Sousa
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Leinylson Fontinele
 
Capítulo 6 Sistemas Operacionais Modernos
Capítulo 6 Sistemas Operacionais ModernosCapítulo 6 Sistemas Operacionais Modernos
Capítulo 6 Sistemas Operacionais ModernosWellington Oliveira
 
Aula: Evolução da computação móvel
Aula: Evolução da computação móvelAula: Evolução da computação móvel
Aula: Evolução da computação móvelJanynne Gomes
 
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresArquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresWellington Oliveira
 
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Leinylson Fontinele
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: ProcessosAlexandre Duarte
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosThiago Poiani
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 

Was ist angesagt? (20)

Sistemas Operacionais e Mercado de Trabalho
Sistemas Operacionais e Mercado de TrabalhoSistemas Operacionais e Mercado de Trabalho
Sistemas Operacionais e Mercado de Trabalho
 
Especificação de Requisitos de Software ParentalBeta
Especificação de Requisitos de Software ParentalBetaEspecificação de Requisitos de Software ParentalBeta
Especificação de Requisitos de Software ParentalBeta
 
SI - Arquiteturas
SI - ArquiteturasSI - Arquiteturas
SI - Arquiteturas
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
 
Capítulo 6 Sistemas Operacionais Modernos
Capítulo 6 Sistemas Operacionais ModernosCapítulo 6 Sistemas Operacionais Modernos
Capítulo 6 Sistemas Operacionais Modernos
 
Aula: Evolução da computação móvel
Aula: Evolução da computação móvelAula: Evolução da computação móvel
Aula: Evolução da computação móvel
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresArquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
 
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 

Andere mochten auch

Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockWilliams Gomes da Silva
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processosMauro Duarte
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL Brasil
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Críticacamila_seixas
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicosComputação Depressão
 
Concorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoConcorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoAlexsandro Pereira
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03thomasdacosta
 
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
 
Programação Concorrente - Aula 01
Programação Concorrente - Aula 01Programação Concorrente - Aula 01
Programação Concorrente - Aula 01thomasdacosta
 

Andere mochten auch (20)

Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Aula 01-introducao-ao-so
Aula 01-introducao-ao-soAula 01-introducao-ao-so
Aula 01-introducao-ao-so
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processos
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicações
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Crítica
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
 
Concorrência na Linguagem de Programação
Concorrência na Linguagem de ProgramaçãoConcorrência na Linguagem de Programação
Concorrência na Linguagem de Programação
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 
Aula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oacAula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oac
 
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programasAula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
 
Aula 05-entrada e-saida
Aula 05-entrada e-saidaAula 05-entrada e-saida
Aula 05-entrada e-saida
 
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 03-deadlock
Aula 03-deadlockAula 03-deadlock
Aula 03-deadlock
 
Aula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoriaAula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoria
 
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
 
Programação Concorrente - Aula 01
Programação Concorrente - Aula 01Programação Concorrente - Aula 01
Programação Concorrente - Aula 01
 

Ähnlich wie Exclusão Mútua e Escalonamento

Ähnlich wie Exclusão Mútua e Escalonamento (6)

(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05
 
Parte1e
Parte1eParte1e
Parte1e
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threads
 
Ad d lock
Ad d lockAd d lock
Ad d lock
 
(ACH2044) Sistemas Operacionais - Aula 09
(ACH2044) Sistemas Operacionais - Aula 09(ACH2044) Sistemas Operacionais - Aula 09
(ACH2044) Sistemas Operacionais - Aula 09
 
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
 

Mehr von Cristiano Pires Martins

Mehr von Cristiano Pires Martins (20)

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 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 08 - formulários
Java script   aula 08 - formuláriosJava script   aula 08 - formulários
Java script aula 08 - formulários
 
Aula 07 acessibilidade
Aula 07  acessibilidadeAula 07  acessibilidade
Aula 07 acessibilidade
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
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 - lista linear
Aula 07 - lista linearAula 07 - lista linear
Aula 07 - lista linear
 
Aula 07-oac-processadores
Aula 07-oac-processadoresAula 07-oac-processadores
Aula 07-oac-processadores
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 

Exclusão Mútua e Escalonamento

  • 1. Cristiano  Pires  Martins Parte 2 terça-feira, 13 de março de 12
  • 2. Exclusão  Mútua  com  Espera   Ociosa — Desabilitando  Interrupções; — Variáveis  de  Impedimento; — Alternância  Obrigatória; — Solução  de  Peterson; — A  instrução  TSL; terça-feira, 13 de março de 12
  • 3. Desabilitando  Interrupções — É  a  solução  mais  simples:  cada  processo  desabilita   todas  as  interrupções  logo  depois  de  entrar  na   região  crítica  e  reabilita-­‐se  imediatamente  antes   de  sair  dela; — Não  é  interessante  porque  não  é  prudente  dar  aos   processos  dos  usuários  o  poder  de  desligar   interrupções; — É  uma  técnica  bastante  útil  dentro  do  próprio  SO,   mas  inadequada  como  um  mecanismo  geral  de   exclusão  mútua  para  processos  de  usuário. terça-feira, 13 de março de 12
  • 4. Variáveis  de  Impedimento — Solução  de  Software; — Há  uma  única  variável  compartilhada  entre  os   dois  processos  (lock),  contendo  o  valor  0; — Se  lock  for  0,  o  processo  altera  essa  variável  para  1   e  entra  na  região; — Se  lock  já  estiver  com  o  valor  1,  o  processo   simplesmente  aguardará  até  que  ela  se  torne  0; — Só  que  essa  técnica  apresenta  uma  falha  como   diretório  de  spool. terça-feira, 13 de março de 12
  • 5. Alternância  Obrigatória — Contém  uma  variável  inteira,  inicialmente  com  0,   serve  para  controlar  a  vez  de  quem  entra  na  região   crítica  e  verifica  ou  atualiza  a  memória   compartilhada; — Testar  continuamente  um  variável  até  que  um   valor  apareça  é  chamado  de  espera  ociosa.  Isso   deveria  ser  evitado  (gasta  tempo  de  CPU); — A  variável  de  impedimento  que  usa  espera  ociosa   é  chamada  de  spin  lock. terça-feira, 13 de março de 12
  • 6. Alternância Obrigatória Solução proposta para o problema da região crítica (a) Processo 0. (b) Processo 1. 33 terça-feira, 13 de março de 12
  • 7. Alternância  Obrigatória — Alternar  a  vez  não  é  uma  boa  idéia  quando  um  dos   processos  for    muito  mais  lento  que  o  outro; — Essa  situação  viola  a  condição  3:  o  processo  0  está   sendo  bloqueado  por  um  processo  que  não  está  na  sua   região  crítica. terça-feira, 13 de março de 12
  • 8. Solução de Peterson Solução de Peterson para implementar exclusão mútua 35 terça-feira, 13 de março de 12
  • 9. Instrução  TSL — Requer  um  pequeno  auxílio  do  hardware; — TSL  (Test  and  Set  Lock):  teste  e  atualize  variável  de   impedimento; — As  operações  de  leitura  e  armazenamento  de  uma   palavra  são  seguramente  indivisíveis; — A  CPU  impede  o  acesso  ao  barramento  de  memória. terça-feira, 13 de março de 12
  • 10. Instrução TSL Entrando e saindo de uma região crítica usando a instrução TSL 37 terça-feira, 13 de março de 12
  • 11. Dormir e Acordar Problema do produtor-consumidor com uma condição de disputa fatal 38 terça-feira, 13 de março de 12
  • 12. Semáforos O problema do produtor-consumidor usando semáforos 39 terça-feira, 13 de março de 12
  • 13. Mutexes Implementação de mutex_lock e mutex_unlock Instrução TSL 40 terça-feira, 13 de março de 12
  • 14. Monitores (1) Exemplo de um monitor 41 terça-feira, 13 de março de 12
  • 15. Troca de Mensagens O problema do produtor-consumidor com N mensagens 42 terça-feira, 13 de março de 12
  • 16. Barreiras — Uso de uma barreira a) processos se aproximando de uma barreira b) todos os processos, exceto um, bloqueados pela barreira c) último processo chega, todos passam 43 terça-feira, 13 de março de 12
  • 17. Escalonamento Introdução ao Escalonamento (1) — Surtos de uso da CPU alternam-se com períodos de espera por E/S a) um processo orientado à CPU b) um processo orientado à E/S 44 terça-feira, 13 de março de 12
  • 18. Introdução ao Escalonamento (2) Objetivos do algoritmo de escalonamento 45 terça-feira, 13 de março de 12
  • 19. Escalonamento em Sistemas em Lote (1) Um exemplo de escalonamento job mais curto primeiro 46 terça-feira, 13 de março de 12
  • 20. Escalonamento em Sistemas em Lote (2) Escalonamento em três níveis 47 terça-feira, 13 de março de 12
  • 21. Escalonamento em Sistemas Interativos (1) — Escalonamento por alternância circular (round- robin) a) lista de processos executáveis b) lista de processos executáveis depois que B usou todo o seu quantum 48 terça-feira, 13 de março de 12
  • 22. Escalonamento em Sistemas Interativos (2) Um algoritmo de escalonamento com quatro classes de prioridade 49 terça-feira, 13 de março de 12
  • 23. Próximo  Processo  Mais  Curto 23 terça-feira, 13 de março de 12
  • 24. Escalonamento  GaranHdo 24 terça-feira, 13 de março de 12
  • 25. Escalonamento em Sistemas de Tempo-Real Sistema de tempo-real escalonável •  Dados –  m eventos periódicos –  evento i ocorre dentro do período Pi e requer Ci segundos •  Então a carga poderá ser tratada somente se m Ci ∑ P ≤1 i =1 i Pearson Education Sistemas Operacionais Modernos – 2ª Edição 33 25 terça-feira, 13 de março de 12