Click here to load reader
Upload
paula-goncalves
View
819
Download
1
Embed Size (px)
DESCRIPTION
Apresentação em resumo a técnica de exclusão mútua (mutex).
Citation preview
MUTEXSistemas OperacionaisProf. Maurílio Alves
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAISCAMPUS 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.