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?

Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmosAdilio Tavares
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresGilvan Latreille
 
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
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de ProgramaçãoAndré Agostinho
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoAlexandre Duarte
 

Was ist angesagt? (20)

Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmos
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
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)
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
Matrizes em c#
Matrizes em c#Matrizes em c#
Matrizes em c#
 
Linguagem Assembly
Linguagem AssemblyLinguagem Assembly
Linguagem Assembly
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Aula 1 lpa
Aula 1   lpaAula 1   lpa
Aula 1 lpa
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 

Andere mochten auch

Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
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
 

Andere mochten auch (20)

Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
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
 

Ähnlich wie Aula 02-processos-e-threads-tanenbaum-parte-2

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
 
(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05Norton Trevisan Roman
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threadsIsraelCunha
 
(ACH2044) Sistemas Operacionais - Aula 09
(ACH2044) Sistemas Operacionais - Aula 09(ACH2044) Sistemas Operacionais - Aula 09
(ACH2044) Sistemas Operacionais - Aula 09Norton Trevisan Roman
 
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 - deadlocksComputação Depressão
 

Ähnlich wie Aula 02-processos-e-threads-tanenbaum-parte-2 (7)

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
 
(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
 

Aula 02-processos-e-threads-tanenbaum-parte-2

  • 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