SlideShare uma empresa Scribd logo
2
Mais lidos
3
Mais lidos
4
Mais lidos
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

PDF
Sistemas Operacionais - Aula 07 (Thread e Processos)
PPTX
Algoritmos e Técnicas de Programação - Aula 01
PDF
Manual de preenchimento do Currículo Lattes
PPTX
Modelo de Prototipação
PDF
Análise e Projeto de Sistemas
PDF
Apostila UML
PPTX
Algoritmos e Estrutura de Dados - Aula 01
PPTX
Processos e threads
Sistemas Operacionais - Aula 07 (Thread e Processos)
Algoritmos e Técnicas de Programação - Aula 01
Manual de preenchimento do Currículo Lattes
Modelo de Prototipação
Análise e Projeto de Sistemas
Apostila UML
Algoritmos e Estrutura de Dados - Aula 01
Processos e threads

Mais procurados (20)

DOC
Atividades práticas word
PPTX
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
PDF
Java orientação a objetos (associacao, composicao, agregacao)
PDF
Orientação a Objetos em Python
PPTX
Fundamentos de Engenharia de Requisitos
PPTX
Lógica de programação { para iniciantes }
PDF
Curso de HTML5 - Aula 01
PPTX
Introdução a Informática Básica
PDF
Curso de Java: Introdução a lambda e Streams
PPTX
Sistemas Operacionais Windows e Linux
PDF
Lógica de Programação - Unimep/Pronatec - Aula08
PDF
Exemplo de documento de requisitos
PDF
Aula 3 sistema computacional (hardware e software)
PDF
UML - Diagrama de Pacotes
PPTX
Introdução a Algoritmos: Conceitos Básicos
PPT
PPTX
Levantamento Ágil de Requisitos
PPTX
Java: Excecoes e Tratamento de Erros
PDF
Programação Orientada á Objeto - Paradigmas e Implementação
Atividades práticas word
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Java orientação a objetos (associacao, composicao, agregacao)
Orientação a Objetos em Python
Fundamentos de Engenharia de Requisitos
Lógica de programação { para iniciantes }
Curso de HTML5 - Aula 01
Introdução a Informática Básica
Curso de Java: Introdução a lambda e Streams
Sistemas Operacionais Windows e Linux
Lógica de Programação - Unimep/Pronatec - Aula08
Exemplo de documento de requisitos
Aula 3 sistema computacional (hardware e software)
UML - Diagrama de Pacotes
Introdução a Algoritmos: Conceitos Básicos
Levantamento Ágil de Requisitos
Java: Excecoes e Tratamento de Erros
Programação Orientada á Objeto - Paradigmas e Implementação
Anúncio

Destaque (20)

PPT
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
PPTX
Condições de corrida e regiões críticas
PDF
Aula 02-processos-e-threads-tanenbaum-parte-2
PPT
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
PPTX
Aula 10 - Exclusão Mútua e Região Crítica
DOC
Regiões críticas dos Sistemas Operacionais
PPTX
Mutex and monitores
PDF
Resumo de S.O.
PDF
Aula 02-processos-e-threads-tanenbaum-parte-1
PPT
Gerências de Processos: Escalonamento de CPU
ODP
Sistemas Operacionais 10 comunicação entre processos
PDF
Deadlocks (Resumo)
PDF
MySQL no Windows: implementação eficiente de novas aplicações
PPT
Gerências de Processos: Sincronização
PDF
Mutex
PPTX
Bluetooth
PDF
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
PDF
MongoDB Introdução
PDF
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
ODP
Redes I - 3.Camada de Enlace de Dados LLC
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
Condições de corrida e regiões críticas
Aula 02-processos-e-threads-tanenbaum-parte-2
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Aula 10 - Exclusão Mútua e Região Crítica
Regiões críticas dos Sistemas Operacionais
Mutex and monitores
Resumo de S.O.
Aula 02-processos-e-threads-tanenbaum-parte-1
Gerências de Processos: Escalonamento de CPU
Sistemas Operacionais 10 comunicação entre processos
Deadlocks (Resumo)
MySQL no Windows: implementação eficiente de novas aplicações
Gerências de Processos: Sincronização
Mutex
Bluetooth
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
MongoDB Introdução
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Redes I - 3.Camada de Enlace de Dados LLC
Anúncio

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

PPT
DB2 Express-C
PDF
LabMM3 - Aula teórica 08
PDF
Teste de Integração - Unidade III
ODP
Java 13 Excecoes
DOC
Apostila supervisorio indusoft ind371
PDF
Interrupts and the timer
DOC
Estudo sistemas operacionais p2
PPT
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
PPTX
Informática para Internet - Informática Aplicada - Aula 07
PPT
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
PPTX
Power mock
KEY
Máquinas Multiníveis - Nível da Microarquitetura
PDF
Gerenciamento-de-Processos-Uma-Visao-Geral.pdf
PPT
18.ago esmeralda 15.00_321_cpfl paulista
PDF
Definição de processos
PDF
(A10) LabMM3 - JavaScript - Subalgoritmos
PDF
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
PPT
Struts2 remote codeexecution
DB2 Express-C
LabMM3 - Aula teórica 08
Teste de Integração - Unidade III
Java 13 Excecoes
Apostila supervisorio indusoft ind371
Interrupts and the timer
Estudo sistemas operacionais p2
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
Informática para Internet - Informática Aplicada - Aula 07
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Power mock
Máquinas Multiníveis - Nível da Microarquitetura
Gerenciamento-de-Processos-Uma-Visao-Geral.pdf
18.ago esmeralda 15.00_321_cpfl paulista
Definição de processos
(A10) LabMM3 - JavaScript - Subalgoritmos
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
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