Sistemas Operacionais
Mutex e Monitores
Daniel Paulo de Assis
3°BCC -FEMA
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
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.
“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.
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
Implementação
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)
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 !!!
Monitores
• originalmente implementado na linguagem
Concurrent Pascal
• O monitor é um conjunto de procedimentos,
variáveis e inicialização definidos dentro de
um módulo.
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
Exemplo de Código Monitor
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
Exemplo Monitor em Java
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.
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

Mais conteúdo relacionado

PDF
Mutex
PPTX
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
ODP
Mutexes, Monitores e Semáforos
ODP
Sistemas Operacionais 10 comunicação entre processos
DOC
Regiões críticas dos Sistemas Operacionais
PDF
Visão geral sobre Assertivas e Exceções no Java7
PPTX
Aula 10 - Exclusão Mútua e Região Crítica
ODP
6 excecoes
Mutex
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Mutexes, Monitores e Semáforos
Sistemas Operacionais 10 comunicação entre processos
Regiões críticas dos Sistemas Operacionais
Visão geral sobre Assertivas e Exceções no Java7
Aula 10 - Exclusão Mútua e Região Crítica
6 excecoes

Mais procurados (20)

DOCX
Sincronização e comunicação entre processos
PPTX
Condições de corrida e regiões críticas
PPTX
Tratamento de exceções em Java
PDF
ODP
Java 13 Excecoes
PPTX
Testes: Existe vida antes do TDD, por Diana Arnos
PPTX
Slide curso metasploit
PDF
Tratamento de exceções em Java
PDF
Semana dois
PPTX
Slide Palestra "Metasploit Framework"
PPT
Tratamento de exceções java
PDF
Apostila metasploit
PDF
Introdução ao tratamento de exceções(Try-Catch)
PPTX
JAVA - Tratamento de Erros
ODT
[Tutorial] metasploit
PDF
POO - 22 - Tratamento de Exceções em Java
PPT
Excepções JAVA
PDF
Erros, exceções e asserções
PDF
Robótica avançada II
PDF
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...
Sincronização e comunicação entre processos
Condições de corrida e regiões críticas
Tratamento de exceções em Java
Java 13 Excecoes
Testes: Existe vida antes do TDD, por Diana Arnos
Slide curso metasploit
Tratamento de exceções em Java
Semana dois
Slide Palestra "Metasploit Framework"
Tratamento de exceções java
Apostila metasploit
Introdução ao tratamento de exceções(Try-Catch)
JAVA - Tratamento de Erros
[Tutorial] metasploit
POO - 22 - Tratamento de Exceções em Java
Excepções JAVA
Erros, exceções e asserções
Robótica avançada II
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...
Anúncio

Semelhante a Mutex and monitores (20)

PPT
Gerências de Processos: Sincronização
PDF
(ACH2044) Sistemas Operacionais - Aula 10
PDF
Gerenciamento-de-Processos-Uma-Visao-Geral.pdf
PPT
Apostila 5 processos e threads
PDF
Processos e threads cap 02 (i unidade)
DOC
Estudo sistemas operacionais p2
PDF
Testes de Unidade com Junit
PPT
Apostila 3 concorrência
PDF
Criando Aplicações Resilientes
PPTX
Escalonamento de Processos
PDF
gabarito.pdf
PDF
GOTEST-Aula3-Automacao-Processo-Testes.pdf
PPTX
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
PPTX
Apresentação lições aprendidas
PPTX
Apresentação lições aprendidas
PDF
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
PDF
Impasses S.O
PPT
Teste de software
PPTX
Tratamento de erros
Gerências de Processos: Sincronização
(ACH2044) Sistemas Operacionais - Aula 10
Gerenciamento-de-Processos-Uma-Visao-Geral.pdf
Apostila 5 processos e threads
Processos e threads cap 02 (i unidade)
Estudo sistemas operacionais p2
Testes de Unidade com Junit
Apostila 3 concorrência
Criando Aplicações Resilientes
Escalonamento de Processos
gabarito.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
Apresentação lições aprendidas
Apresentação lições aprendidas
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
Impasses S.O
Teste de software
Tratamento de erros
Anúncio

Mais de Daniel Paulo de Assis (6)

PPTX
PPTX
Transmissão serial e paralela
PPTX
Teste de software
PPTX
Ferramentas case
PPTX
Casos de uso
PPTX
Diagrama de classes
Transmissão serial e paralela
Teste de software
Ferramentas case
Casos de uso
Diagrama de classes

Último (19)

PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPT
Aula de Engenharia de Software principais caracteristicas
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PDF
Banco de Dados 2atualização de Banco de d
PDF
Jira Software projetos completos com scrum
PDF
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
PDF
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PPTX
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
PPTX
ccursoammaiacursoammaiacursoammaia123456
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Processamento da remessa no SAP ERP, SCM610 Col15
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Analise Estatica de Compiladores para criar uma nova LP
Processos no SAP Extended Warehouse Management, EWM100 Col26
Aula de Engenharia de Software principais caracteristicas
Tipos de servidor em redes de computador.pptx
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Banco de Dados 2atualização de Banco de d
Jira Software projetos completos com scrum
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Conceitos básicos de Redes Neurais Artificiais
SEMINÁRIO DE IHC - A interface Homem-Máquina
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
ccursoammaiacursoammaiacursoammaia123456
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26

Mutex and monitores

  • 1. Sistemas Operacionais Mutex e Monitores Daniel Paulo de Assis 3°BCC -FEMA
  • 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. 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. “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. 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
  • 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. 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. 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. 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
  • 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
  • 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. 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