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

  • 2,875 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,875
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
167
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Cristiano  Pires  Martins Parte 2terç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. 33terç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 35terç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 37terça-feira, 13 de março de 12
  • 11. Dormir e Acordar Problema do produtor-consumidor com uma condição de disputa fatal 38terça-feira, 13 de março de 12
  • 12. Semáforos O problema do produtor-consumidor usando semáforos 39terça-feira, 13 de março de 12
  • 13. Mutexes Implementação de mutex_lock e mutex_unlockInstrução TSL 40terça-feira, 13 de março de 12
  • 14. Monitores (1) Exemplo de um monitor 41terça-feira, 13 de março de 12
  • 15. Troca de Mensagens O problema do produtor-consumidor com N mensagens 42terç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 43terç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 44terça-feira, 13 de março de 12
  • 18. Introdução ao Escalonamento (2) Objetivos do algoritmo de escalonamento 45terça-feira, 13 de março de 12
  • 19. Escalonamento em Sistemas em Lote (1) Um exemplo de escalonamento job mais curto primeiro 46terça-feira, 13 de março de 12
  • 20. Escalonamento em Sistemas em Lote (2) Escalonamento em três níveis 47terça-feira, 13 de março de 12
  • 21. Escalonamento emSistemas 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 48terça-feira, 13 de março de 12
  • 22. Escalonamento emSistemas Interativos (2) Um algoritmo de escalonamento com quatro classes de prioridade 49terça-feira, 13 de março de 12
  • 23. Próximo  Processo  Mais  Curto 23terça-feira, 13 de março de 12
  • 24. Escalonamento  GaranHdo 24terç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 25terça-feira, 13 de março de 12