SlideShare una empresa de Scribd logo
1 de 15
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

Más contenido relacionado

La actualidad más candente

Sincronização e comunicação entre processos
Sincronização e comunicação entre processosSincronização e comunicação entre processos
Sincronização e comunicação entre processosAmedy Caisse
 
Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticasBeatriz Rodrigues
 
Testes: Existe vida antes do TDD, por Diana Arnos
Testes: Existe vida antes do TDD, por Diana ArnosTestes: Existe vida antes do TDD, por Diana Arnos
Testes: Existe vida antes do TDD, por Diana ArnosiMasters
 
Slide curso metasploit
Slide curso metasploitSlide curso metasploit
Slide curso metasploitRoberto Soares
 
Tratamento de exceções em Java
Tratamento de exceções em JavaTratamento de exceções em Java
Tratamento de exceções em JavaWilson Júnior
 
Slide Palestra "Metasploit Framework"
Slide Palestra "Metasploit Framework"Slide Palestra "Metasploit Framework"
Slide Palestra "Metasploit Framework"Roberto Soares
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções javaAntonio Oliveira
 
Introdução ao tratamento de exceções(Try-Catch)
Introdução ao tratamento de exceções(Try-Catch)Introdução ao tratamento de exceções(Try-Catch)
Introdução ao tratamento de exceções(Try-Catch)André Felipe Santos Martins
 
Robótica avançada II
Robótica avançada IIRobótica avançada II
Robótica avançada IIsanduel
 
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...Laryssa Muniz
 

La actualidad más candente (20)

Sincronização e comunicação entre processos
Sincronização e comunicação entre processosSincronização e comunicação entre processos
Sincronização e comunicação entre processos
 
Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticas
 
Tratamento de exceções em Java
Tratamento de exceções em JavaTratamento de exceções em Java
Tratamento de exceções em Java
 
Aula java[1]
Aula java[1]Aula java[1]
Aula java[1]
 
Java 13 Excecoes
Java 13 ExcecoesJava 13 Excecoes
Java 13 Excecoes
 
Testes: Existe vida antes do TDD, por Diana Arnos
Testes: Existe vida antes do TDD, por Diana ArnosTestes: Existe vida antes do TDD, por Diana Arnos
Testes: Existe vida antes do TDD, por Diana Arnos
 
Slide curso metasploit
Slide curso metasploitSlide curso metasploit
Slide curso metasploit
 
Tratamento de exceções em Java
Tratamento de exceções em JavaTratamento de exceções em Java
Tratamento de exceções em Java
 
Semana dois
Semana doisSemana dois
Semana dois
 
Slide Palestra "Metasploit Framework"
Slide Palestra "Metasploit Framework"Slide Palestra "Metasploit Framework"
Slide Palestra "Metasploit Framework"
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções java
 
Apostila metasploit
Apostila metasploitApostila metasploit
Apostila metasploit
 
Introdução ao tratamento de exceções(Try-Catch)
Introdução ao tratamento de exceções(Try-Catch)Introdução ao tratamento de exceções(Try-Catch)
Introdução ao tratamento de exceções(Try-Catch)
 
JAVA - Tratamento de Erros
JAVA - Tratamento de ErrosJAVA - Tratamento de Erros
JAVA - Tratamento de Erros
 
[Tutorial] metasploit
[Tutorial] metasploit[Tutorial] metasploit
[Tutorial] metasploit
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
Excepções JAVA
Excepções JAVAExcepções JAVA
Excepções JAVA
 
Erros, exceções e asserções
Erros, exceções e asserçõesErros, exceções e asserções
Erros, exceções e asserções
 
Robótica avançada II
Robótica avançada IIRobótica avançada II
Robótica avançada II
 
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...
Lotus - TCG : Uma ferramenta para geração e seleção de casos de teste funcion...
 

Similar a Mutex e Monitores em Sistemas Operacionais

Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoAlexandre Duarte
 
(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10Norton Trevisan Roman
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2Gustavo Souza
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrênciaPaulo Fonseca
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de ProcessosFatec Jales
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfRodolphoCesar2
 
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...Ramon Mayor Martins
 
Apresentação lições aprendidas
Apresentação lições aprendidasApresentação lições aprendidas
Apresentação lições aprendidasricardojp
 
Apresentação lições aprendidas
Apresentação lições aprendidasApresentação lições aprendidas
Apresentação lições aprendidasricardojp
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSilvano Oliveira
 

Similar a Mutex e Monitores em Sistemas Operacionais (20)

Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10(ACH2044) Sistemas Operacionais - Aula 10
(ACH2044) Sistemas Operacionais - Aula 10
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
Criando Aplicações Resilientes
Criando Aplicações ResilientesCriando Aplicações Resilientes
Criando Aplicações Resilientes
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de Processos
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
 
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
IES GF - Ciência da Computação - Desenvolvimento de Sistemas Distribuídos - P...
 
Apresentação lições aprendidas
Apresentação lições aprendidasApresentação lições aprendidas
Apresentação lições aprendidas
 
Apresentação lições aprendidas
Apresentação lições aprendidasApresentação lições aprendidas
Apresentação lições aprendidas
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Tratamento de erros
Tratamento de errosTratamento de erros
Tratamento de erros
 
Processos
ProcessosProcessos
Processos
 

Más de Daniel Paulo de Assis (6)

Rede petri
Rede petriRede petri
Rede petri
 
Transmissão serial e paralela
Transmissão serial e paralelaTransmissão serial e paralela
Transmissão serial e paralela
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 

Mutex e Monitores em Sistemas Operacionais

  • 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