Mutex and monitores

362 visualizações

Publicada em

Publicada em: Tecnologia
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
362
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Mutex and monitores

  1. 1. Sistemas Operacionais Mutex e Monitores Daniel Paulo de Assis 3°BCC -FEMA
  2. 2. Mutex • mutual exclusion, o termo em inglês • é uma técnica usada em programação concorrente para evitar que dois processos ou threads tenham acesso simultaneamente a um recurso compartilhado (Região Crítica) N processos competindo para utilizar os mesmos dados compartilhados
  3. 3. Mutex • Um meio simples para exclusão mútua é a utilização de um semáforo binário • Apenas 1 ou 0, onde 0 = impedido e 1 = Desimpedido • O travamento por semáforo deve ser feito antes de utilizar o recurso • Enquanto o recurso estiver em uso, qualquer outro processo que o utilize deve esperar a liberação.
  4. 4. “Efeitos Colaterais” Mutex • Deadlocks dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados. • Inanição quando o processo nunca dispõe de recursos suficientes para executar plenamente.
  5. 5. Implementação • Manipulação com: – Mutex_lock(): • Testa o mutex e o coloca em impedido se estiver desimpedido, bloqueia o processo caso contrário – Mutex_unlock(): • Coloca o mutex em desimpedido
  6. 6. Implementação
  7. 7. Monitores • uma técnica para sincronizar duas ou mais tarefas que compartilham um recurso em comum, geralmente um dispositivo de hardware ou uma região da memória. • Grande diferencial o trabalho com linguagem de alto nível(mais transparente)
  8. 8. Monitores • Desenvolvimento é mais fácil • Existem linguagens que não possuem monitores. Os monitores são um conceito de linguagem de programação. Java sempre suportou monitores !!!
  9. 9. Monitores • originalmente implementado na linguagem Concurrent Pascal • O monitor é um conjunto de procedimentos, variáveis e inicialização definidos dentro de um módulo.
  10. 10. Exemplo de Código Monitor monitor monitor-name { declaração de variáveis compartilhadas procedure P1 (…) { ... } procedure P2 (…) { ... } procedure Pn (…) { ... } { } } característica mais importante do monitor é a exclusão mútua automática entre os seus procedimentos código de inicialização
  11. 11. Exemplo de Código Monitor
  12. 12. Monitor Variáveis Variáveis de condição são tipos de dados especiais dos monitores duas instruções Wait e Signal • Wait(C): suspende a execução do processo, colocando-o em estado de espera associado a condição C • Signal(C): permite que um processo bloqueado por wait(C) continue a sua execução. Se existir mais de um processo bloqueado, apenas um é liberado Se não existir nenhum processo bloqueado, não faz nada
  13. 13. Exemplo Monitor em Java
  14. 14. Referências Bibliográficas Exclusão Mútua Disponível em : <http://pt.wikipedia.org/wiki/Exclus%C3%A3o_m% C3%BAtua>. Acesso em : setembro de 2011. Sistemas Operacionais Disponível em : <http://www.inf.ufrgs.br/~asc/livro/transparencias/ cap3.pdf>. Acesso em : setembro de 2011.
  15. 15. Monitor (concorrência) Disponível em : <http://pt.wikipedia.org/wiki/Monitor_%28concorr %C3%AAncia%29>. Acesso em : setembro de 2011. TANEMBAUM ANDREW, S. WOODHULL ALBERTT, S: Sistemas Operacionais: Projeto e Implementação. 2ed. Porto Alegre: Bookman, 2000

×