Mutexes, Monitores e Semáforos

13.899 visualizações

Publicada em

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
13.899
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
151
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Mutexes, Monitores e Semáforos

  1. 1. Introdução a Sistemas Operacionais Mutexes, Monitores e Semáforos
  2. 2. MutexesMutexes 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. 3. MonitoresUm 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. 4. SemáforosUm 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. 5. Mutexes, Monitores e Semáforos Marcel Luis Nishihara Thiago Henrique Poiani

×