Sistemas operacionais - aula12

307 visualizações

Publicada em

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
307
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Sistemas operacionais - aula12

  1. 1. SistemasOperacionais©2011MarcellusCysne Exclusão Mútua • Dormir e Acordar – Bloqueio no lugar de espera ociosa – Primitivas de IPC • sleep: quem chama, dorme • wakeup: acorda processo suspenso 1
  2. 2. SistemasOperacionais©2011MarcellusCysne Exclusão Mútua • Produtor – Consumidor – Processos compartilham buffer – Buffer tem tamanho limitado e fixo – Problemas: • Produtor encontra buffer cheio: dorme • Consumidor encontra buffer vazio: dorme 2
  3. 3. SistemasOperacionais©2011MarcellusCysne Exclusão Mútua • Produtor – Consumidor – Há uma condição de disputa • cont: variável tamanho buffer • Produtor verifica se cont = N : dorme / adiciona item • Consumidor verifica se cont = 0 : dorme / consome – Cada processo testa se o outro está acordado • Se o outro dorme: wakeup 3
  4. 4. SistemasOperacionais©2011MarcellusCysne Produtor - Consumidor 4
  5. 5. SistemasOperacionais©2011MarcellusCysne Produtor - Consumidor 5
  6. 6. SistemasOperacionais©2011MarcellusCysne Exclusão Mútua • Condição de Disputa – Buffer está vazio – Consumidor lê cont (== 0) – Escalonador alterna para produtor – Produtor adiciona item (cont == 1) – Produtor chama wakeup (consumidor) – Primitiva perdida (consumidor acordado) – Consumidor retorna (cont lido == 0 : dorme) – Produtor preencherá buffer e dormirá também 6
  7. 7. SistemasOperacionais©2011MarcellusCysne Sobre Exclusão Mútua • Assinale a alternativa correta a) Desabilitar interrupções é a solução mais simples para exclusão mútua. Assim, a CPU poderá alternar os processos sempre que entrarem em suas regiões críticas. b) Com a ideia de variáveis de impedimento (lock variables) conseguimos contornar a condição de disputa evitando que dois processos entrem em suas RCs ao mesmo tempo c) Testar continuamente uma variável até que algum valor apareça é chamado de spin lock d) No problema da inversão de prioridade, um processo de alta prioridade permanece em espera ociosa enquanto aguarda um processo de baixa prioridade sair de sua região crítica 7
  8. 8. SistemasOperacionais©2011MarcellusCysne Semáforos • Novo tipo de variável • Armazena sinais de wakeup (up) • Operação down – Verifica se semáforo > 0 • Decresce; prossegue ou • Dorme; down pendente 8 Atômico
  9. 9. SistemasOperacionais©2011MarcellusCysne Semáforos • Operação up – Verifica processos dormindo no semáforo • Acorda processo • Permissão para conclusão do “down” ou • Incrementa valor semáforo – Ação atômica 9
  10. 10. SistemasOperacionais©2011MarcellusCysne Mutex • Versão simplificada de semáforo • Mutual Exclusion • Thread (ou processo) precisa acessar RC – mutex_lock – Se mutex impedido, thread bloqueia – Thread sai RC, chama mutex_unlock 10
  11. 11. SistemasOperacionais©2011MarcellusCysne Em sala • Responda em equipes de até 5 pessoas • Na entrega: 0,1pt na AP1 • Para resposta correta: 0,2pt 11

×