CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
                     CAMPUS TIMÓTEO




               MUTEX
Sistemas Operacionais
Prof. Maurílio Alves



                                   Paula Peçanha Gonçalves
Características
● Opção simplificada de Semáforo:
  ○ Não precisa de contar;


● Somente 1 bit é necessário para representar
  a variável mutex:
  ○ Impedido;
  ○ Desimpedido.
Vantagens
● Adequados apenas para gerenciar a
  exclusão mútua de algum recurso ou parte
  de código compartilhada;
● Fáceis de implementar;
● Eficientes;
● Úteis em pacotes de threads implementados
  totalmente no espaço do usuário.
Como funciona?
● Quando um thread ou processo precisa ter
  acesso a uma região crítica, ele chama
  mutex_lock.
● Se o mutex estiver desimpedido, o acesso à
  região crítica é liberado.
● Porém, se o mutex estiver impedido, a thread
  permanecerá bloqueada até que a região crítica
  seja liberada com um mutex_unlock.
Como funciona?
● Se múltiplos threads estiverem bloqueados
  sobre o mutex, um deles será escolhido
  aleatoriamente e liberado para adquirir a
  trava.
● O código do mutex_lock é similar ao código
  do enter_region.
Região Crítica
● A diferença se dá quando o enter_region falha
  ao entrar na região crítica, ele continua
  testando repetidamente a variável de trava
  (espera ociosa).

● Ao final, o tempo de CPU
  se esgota e algum outro
  processo é escalonado
  para executar.
Thread_yield
● Já o mutex_lock, quando falha em verificar a
  variável de trava chama o thread_yield para que
  abra mão da CPU em favor de outro processo, ou
  seja, não há espera ocupada.

● O thread_yield é apenas uma chamada do
  escalonador de threads no espaço do usuário.

● Como consequência, nem o mutex_lock nem
  mutex_unlock requerem qualquer chamada ao
  núcleo.
Implementação
Referências
● TANENBAUM,      Andrew     S.     Sistemas
  Operacionais Modernos. 3ª Edição.

Mutex

  • 1.
    CENTRO FEDERAL DEEDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CAMPUS TIMÓTEO MUTEX Sistemas Operacionais Prof. Maurílio Alves Paula Peçanha Gonçalves
  • 2.
    Características ● Opção simplificadade Semáforo: ○ Não precisa de contar; ● Somente 1 bit é necessário para representar a variável mutex: ○ Impedido; ○ Desimpedido.
  • 3.
    Vantagens ● Adequados apenaspara gerenciar a exclusão mútua de algum recurso ou parte de código compartilhada; ● Fáceis de implementar; ● Eficientes; ● Úteis em pacotes de threads implementados totalmente no espaço do usuário.
  • 4.
    Como funciona? ● Quandoum thread ou processo precisa ter acesso a uma região crítica, ele chama mutex_lock. ● Se o mutex estiver desimpedido, o acesso à região crítica é liberado. ● Porém, se o mutex estiver impedido, a thread permanecerá bloqueada até que a região crítica seja liberada com um mutex_unlock.
  • 5.
    Como funciona? ● Semúltiplos threads estiverem bloqueados sobre o mutex, um deles será escolhido aleatoriamente e liberado para adquirir a trava. ● O código do mutex_lock é similar ao código do enter_region.
  • 6.
    Região Crítica ● Adiferença se dá quando o enter_region falha ao entrar na região crítica, ele continua testando repetidamente a variável de trava (espera ociosa). ● Ao final, o tempo de CPU se esgota e algum outro processo é escalonado para executar.
  • 7.
    Thread_yield ● Já omutex_lock, quando falha em verificar a variável de trava chama o thread_yield para que abra mão da CPU em favor de outro processo, ou seja, não há espera ocupada. ● O thread_yield é apenas uma chamada do escalonador de threads no espaço do usuário. ● Como consequência, nem o mutex_lock nem mutex_unlock requerem qualquer chamada ao núcleo.
  • 8.
  • 9.
    Referências ● TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª Edição.