Apresentação em resumo a técnica de exclusão mútua (mutex).
Size: 255.92 KB
Language: pt
Added: Feb 02, 2013
Slides: 9 pages
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.