Mutexes, Monitores e Semáforos

Embed Size (px)

Citation preview

  • 1. Introduo a Sistemas Operacionais Mutexes, Monitores e Semforos

2. MutexesMutexes so mecanismos utilizados para implementar excluso mtua em threads.Um algoritmo de excluso mtua serve para garantir que regies crticas de cdigo no sejam executadas simultaneamente, protegendo estruturas de dados compartilhadas de modificaes simultneas. pthread_mutex_t lock; pthread_mutex_init(&lock, NULL); pthread_mutex_lock(&lock);/* Executa regio crtica */ pthread_mutex_unlock(&lock); 3. MonitoresUm monitor um conjunto de procedimentos, variveis e estruturas dedados, todas agrupadas em um mdulo especial. Somente umprocesso pode estar ativo dentro do monitor em um instante. monitor exampleinteger icondition cprocedure producer ( ) /* Executa regio crtica */end;procedure consumer ( ) /* Executa regio crtica */end; end monitor; 4. SemforosUm semforo uma estrutura de dados que consiste em um nmero 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 semforo e entra na regio crtica, mas ocorre uma falha na sada da regio.#include sem_t teste; //Criar o semforo chamado de testesem_init(&teste, 0, 0); //Inicializao do semforosem_wait(&teste); //Funo para (decrementar/aguardar)sem_post(&teste); //Funo para (incrementar/liberar)sem_destroy(&teste); // funo para apagar o semforo aps a utilizao 5. Mutexes, Monitores eSemforosMarcel Luis Nishihara Thiago Henrique Poiani