SlideShare uma empresa Scribd logo
Introdução a Sistemas
     Operacionais


 Mutexes, Monitores e Semáforos
Mutexes
Mutexes são mecanismos utilizados para implementar
 exclusão mútua em threads.
Um algoritmo de exclusão mútua serve para garantir que
 regiões críticas de código não sejam executadas
 simultaneamente, protegendo estruturas de dados
 compartilhadas de modificações simultâneas.

               pthread_mutex_t lock;
               pthread_mutex_init(&lock, NULL);
               pthread_mutex_lock(&lock);
                /* Executa região crítica */
               pthread_mutex_unlock(&lock);
Monitores
Um monitor é um conjunto de procedimentos, variáveis e estruturas de
  dados, todas agrupadas em um módulo especial. Somente um
  processo pode estar ativo dentro do monitor em um instante.

             monitor example
              integer i
              condition c

              procedure producer ( )
               /* Executa região crítica */
              end;

              procedure consumer ( )
               /* Executa região crítica */
              end;

             end monitor;
Semáforos
Um semáforo é uma estrutura de dados que consiste em um número
   inteiro e em uma fila que armazena descritores de tarefas.
A estrutura de dados é uma fila, funcionando em regime de FIFO.
Deadlock ocorre quando um processo altera o valor do semáforo e entra
   na região crítica, mas ocorre uma falha na saída da região.

                        #include <semaphore.h>
          sem_t teste; //Criar o semáforo chamado de teste
          sem_init(&teste, 0, 0); //Inicialização do semáforo
      sem_wait(&teste); //Função para (decrementar/aguardar)
        sem_post(&teste); //Função para (incrementar/liberar)
sem_destroy(&teste); // função para apagar o semáforo após a utilização
Mutexes, Monitores e
    Semáforos


    Marcel Luis Nishihara
   Thiago Henrique Poiani

Mais conteúdo relacionado

Mais procurados

POO - Aula 1
POO - Aula 1POO - Aula 1
POO - Aula 1
Diego Armando
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
Elaine Cecília Gatto
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
Abadia Cardoso
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
Jorge Ávila Miranda
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
Faculdade Mater Christi
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
Professor Samuel Ribeiro
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
vini_campos
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
Bruno Catão
 
Exercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de ProgramaçãoExercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de Programação
Bruno Quaresma
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
Leinylson Fontinele
 
Arquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruçõesArquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruções
Alex Camargo
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
angelicamenegassi
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
Marcia Abrahim
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
Alvaro Oliveira
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
Vinícius de Paula
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
Elaine Cecília Gatto
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos
Computação Depressão
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
Leinylson Fontinele
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
Aislan Rafael
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
Elaine Cecília Gatto
 

Mais procurados (20)

POO - Aula 1
POO - Aula 1POO - Aula 1
POO - Aula 1
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)Introdução aos sistemas operacionais cap 01 (i unidade)
Introdução aos sistemas operacionais cap 01 (i unidade)
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Exercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de ProgramaçãoExercicios de estruturas condicionais - Lógica de Programação
Exercicios de estruturas condicionais - Lógica de Programação
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Arquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruçõesArquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruções
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 

Destaque

2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
Computação Depressão
 
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
Beatriz Rodrigues
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Wellington Oliveira
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Crítica
camila_seixas
 
Mutex and monitores
Mutex and monitoresMutex and monitores
Mutex and monitores
Daniel Paulo de Assis
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
dannas_06
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
Cristiano Pires Martins
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
Alexandre Duarte
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processos
Mauro Duarte
 
Deadlocks (Resumo)
Deadlocks (Resumo)Deadlocks (Resumo)
Deadlocks (Resumo)
Ronildo Oliveira
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicações
MySQL Brasil
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
Alexandre Duarte
 
Mutex
MutexMutex
Mutex
Paula P.
 
Bluetooth
BluetoothBluetooth
Bluetooth
Thiago Poiani
 
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Thiago Poiani
 
MongoDB Introdução
MongoDB IntroduçãoMongoDB Introdução
MongoDB Introdução
Thiago Poiani
 
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Leinylson Fontinele
 
Redes I - 3.Camada de Enlace de Dados LLC
Redes I - 3.Camada de Enlace de Dados LLCRedes I - 3.Camada de Enlace de Dados LLC
Redes I - 3.Camada de Enlace de Dados LLC
Mauro Tapajós
 
Acesso direto à memória
Acesso direto à memóriaAcesso direto à memória
Acesso direto à memória
Thiago Poiani
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
rafaelov
 

Destaque (20)

2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
 
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
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Crítica
 
Mutex and monitores
Mutex and monitoresMutex and monitores
Mutex and monitores
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processos
 
Deadlocks (Resumo)
Deadlocks (Resumo)Deadlocks (Resumo)
Deadlocks (Resumo)
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicações
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Mutex
MutexMutex
Mutex
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
 
MongoDB Introdução
MongoDB IntroduçãoMongoDB Introdução
MongoDB Introdução
 
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
 
Redes I - 3.Camada de Enlace de Dados LLC
Redes I - 3.Camada de Enlace de Dados LLCRedes I - 3.Camada de Enlace de Dados LLC
Redes I - 3.Camada de Enlace de Dados LLC
 
Acesso direto à memória
Acesso direto à memóriaAcesso direto à memória
Acesso direto à memória
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
 

Semelhante a Mutexes, Monitores e Semáforos

02 so
02 so02 so
DB2 Express-C
DB2 Express-CDB2 Express-C
DB2 Express-C
Bruno Dadalt Zambiazi
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08
Carlos Santos
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
João Lourenço
 
Java 13 Excecoes
Java 13 ExcecoesJava 13 Excecoes
Java 13 Excecoes
Regis Magalhães
 
Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371
Sandra Rocha
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timer
Mayara Mônica
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
Gustavo Souza
 
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
Curso de J2ME - Parte 03 - Desenvolvimento de aplicaçõesCurso de J2ME - Parte 03 - Desenvolvimento de aplicações
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
Leonardo Melo Santos
 
Informática para Internet - Informática Aplicada - Aula 07
Informática para Internet - Informática Aplicada - Aula 07Informática para Internet - Informática Aplicada - Aula 07
Informática para Internet - Informática Aplicada - Aula 07
Anderson Andrade
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Sofia Trindade
 
Power mock
Power mockPower mock
Power mock
Eder Nogueira
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
Lincoln Lamas
 
ava facul uva unijorge (146).pdf
ava facul uva unijorge (146).pdfava facul uva unijorge (146).pdf
18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista
itgfiles
 
Definição de processos
Definição de processosDefinição de processos
Definição de processos
Rodrigo Almeida
 
Pro model
Pro modelPro model
Pro model
Paulo Sideres
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
Carlos Santos
 
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Tchelinux
 
Struts2 remote codeexecution
Struts2 remote codeexecutionStruts2 remote codeexecution
Struts2 remote codeexecution
Tiago Natel de Moura
 

Semelhante a Mutexes, Monitores e Semáforos (20)

02 so
02 so02 so
02 so
 
DB2 Express-C
DB2 Express-CDB2 Express-C
DB2 Express-C
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
 
Java 13 Excecoes
Java 13 ExcecoesJava 13 Excecoes
Java 13 Excecoes
 
Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371Apostila supervisorio indusoft ind371
Apostila supervisorio indusoft ind371
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timer
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
Curso de J2ME - Parte 03 - Desenvolvimento de aplicaçõesCurso de J2ME - Parte 03 - Desenvolvimento de aplicações
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
 
Informática para Internet - Informática Aplicada - Aula 07
Informática para Internet - Informática Aplicada - Aula 07Informática para Internet - Informática Aplicada - Aula 07
Informática para Internet - Informática Aplicada - Aula 07
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
 
Power mock
Power mockPower mock
Power mock
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 
ava facul uva unijorge (146).pdf
ava facul uva unijorge (146).pdfava facul uva unijorge (146).pdf
ava facul uva unijorge (146).pdf
 
18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista18.ago esmeralda 15.00_321_cpfl paulista
18.ago esmeralda 15.00_321_cpfl paulista
 
Definição de processos
Definição de processosDefinição de processos
Definição de processos
 
Pro model
Pro modelPro model
Pro model
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
 
Struts2 remote codeexecution
Struts2 remote codeexecutionStruts2 remote codeexecution
Struts2 remote codeexecution
 

Mutexes, Monitores e Semáforos

  • 1. Introdução a Sistemas Operacionais Mutexes, Monitores e Semáforos
  • 2. Mutexes Mutexes são mecanismos utilizados para implementar exclusão mútua em threads. Um algoritmo de exclusão mútua serve para garantir que regiões críticas de código não sejam executadas simultaneamente, protegendo estruturas de dados compartilhadas de modificações simultâneas. pthread_mutex_t lock; pthread_mutex_init(&lock, NULL); pthread_mutex_lock(&lock); /* Executa região crítica */ pthread_mutex_unlock(&lock);
  • 3. Monitores Um monitor é um conjunto de procedimentos, variáveis e estruturas de dados, todas agrupadas em um módulo especial. Somente um processo pode estar ativo dentro do monitor em um instante. monitor example integer i condition c procedure producer ( ) /* Executa região crítica */ end; procedure consumer ( ) /* Executa região crítica */ end; end monitor;
  • 4. Semáforos Um semáforo é uma estrutura de dados que consiste em um número inteiro e em uma fila que armazena descritores de tarefas. A estrutura de dados é uma fila, funcionando em regime de FIFO. Deadlock ocorre quando um processo altera o valor do semáforo e entra na região crítica, mas ocorre uma falha na saída da região. #include <semaphore.h> sem_t teste; //Criar o semáforo chamado de teste sem_init(&teste, 0, 0); //Inicialização do semáforo sem_wait(&teste); //Função para (decrementar/aguardar) sem_post(&teste); //Função para (incrementar/liberar) sem_destroy(&teste); // função para apagar o semáforo após a utilização
  • 5. Mutexes, Monitores e Semáforos Marcel Luis Nishihara Thiago Henrique Poiani