Mutex

1,216 views
1,027 views

Published on

Apresentação em resumo a técnica de exclusão mútua (mutex).

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,216
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mutex

  1. 1. CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CAMPUS TIMÓTEO MUTEXSistemas OperacionaisProf. Maurílio Alves Paula Peçanha Gonçalves
  2. 2. 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.
  3. 3. 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.
  4. 4. 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.
  5. 5. 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.
  6. 6. 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.
  7. 7. 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.
  8. 8. Implementação
  9. 9. Referências● TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3ª Edição.

×