Mutex

PaulaGonalves4 1,694 views 9 slides Feb 02, 2013
Slide 1
Slide 1 of 9
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9

About This Presentation

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


Slide Content

MUTEX
Sistemas Operacionais
Prof. Maurílio Alves
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
CAMPUS TIMÓTEO

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.