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

25
Cristiano Pires Martins Parte 2 terça-feira, 13 de março de 12

Upload: cristiano-pires-martins

Post on 19-May-2015

3.174 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Aula 02-processos-e-threads-tanenbaum-parte-2

Cristiano  Pires  Martins

Parte 2

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

Page 2: Aula 02-processos-e-threads-tanenbaum-parte-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

Page 3: Aula 02-processos-e-threads-tanenbaum-parte-2

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

Page 4: Aula 02-processos-e-threads-tanenbaum-parte-2

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

Page 5: Aula 02-processos-e-threads-tanenbaum-parte-2

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

Page 6: Aula 02-processos-e-threads-tanenbaum-parte-2

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

Page 7: Aula 02-processos-e-threads-tanenbaum-parte-2

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

Page 8: Aula 02-processos-e-threads-tanenbaum-parte-2

Solução de Peterson

Solução de Peterson para implementar exclusão mútua35

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

Page 9: Aula 02-processos-e-threads-tanenbaum-parte-2

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

Page 10: Aula 02-processos-e-threads-tanenbaum-parte-2

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

Page 11: Aula 02-processos-e-threads-tanenbaum-parte-2

Dormir e Acordar

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

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

Page 12: Aula 02-processos-e-threads-tanenbaum-parte-2

Semáforos

O problema do produtor-consumidor usando semáforos39

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

Page 13: Aula 02-processos-e-threads-tanenbaum-parte-2

40

Mutexes

Implementação de mutex_lock e mutex_unlock

Instrução TSL

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

Page 14: Aula 02-processos-e-threads-tanenbaum-parte-2

41

Monitores (1)

Exemplo de um monitor

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

Page 15: Aula 02-processos-e-threads-tanenbaum-parte-2

42

Troca de Mensagens

O problema do produtor-consumidor com N mensagens

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

Page 16: Aula 02-processos-e-threads-tanenbaum-parte-2

43

Barreiras

� Uso de uma barreiraa) processos se aproximando de uma barreirab) todos os processos, exceto um, bloqueados

pela barreirac) último processo chega, todos passam

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

Page 17: Aula 02-processos-e-threads-tanenbaum-parte-2

EscalonamentoIntrodução ao Escalonamento (1)

� Surtos de uso da CPU alternam-se com períodos de espera por E/Sa) um processo orientado à CPUb) um processo orientado à E/S

44

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

Page 18: Aula 02-processos-e-threads-tanenbaum-parte-2

Introdução ao Escalonamento (2)

Objetivos do algoritmo de escalonamento45

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

Page 19: Aula 02-processos-e-threads-tanenbaum-parte-2

Escalonamento em Sistemas em Lote (1)

Um exemplo de escalonamento job mais curto primeiro

46

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

Page 20: Aula 02-processos-e-threads-tanenbaum-parte-2

Escalonamento emSistemas em Lote (2)

Escalonamento em três níveis

47

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

Page 21: Aula 02-processos-e-threads-tanenbaum-parte-2

Escalonamento emSistemas Interativos (1)

� Escalonamento por alternância circular (round-robin)a) lista de processos executáveisb) lista de processos executáveis depois que B usou todo

o seu quantum48

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

Page 22: Aula 02-processos-e-threads-tanenbaum-parte-2

Escalonamento emSistemas Interativos (2)

Um algoritmo de escalonamento com quatro classes de prioridade

49

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

Page 23: Aula 02-processos-e-threads-tanenbaum-parte-2

Próximo  Processo  Mais  Curto

23

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

Page 24: Aula 02-processos-e-threads-tanenbaum-parte-2

Escalonamento  GaranHdo

24

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

Page 25: Aula 02-processos-e-threads-tanenbaum-parte-2

25

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

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

11

mi

i i

CP=

≤∑

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