Vous êtes sur la page 1sur 10

Processos e

Threads
Sistemas Operacionais (SOP-
BCC)
De: Andrew S. Tanenbaum
Tradução: Ronaldo A.L. Gonçalves
Luís A. Consulado

Responsável pela disciplina:


Prof. Dr. Maurício Aronne Pillon
Curso de Ciência da Computação

1
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição
Exclusão Mútua com 
Espera Ociosa 

42
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição
Desabilitando as interrupções

– Inibe a interrupção de relógio


– Muito poder ao usuário (desligar
interrupções)
• Esquecimento de habilitar as interrupções
– Não funciona para multiprocessadores
(mais de um processador)
• Técnica útil dentro do próprio SO.

43
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição
Variáveis de Impedimento (lock)

• Se lock 0 entrada região crítica


permitida;
– Ao entrar alterar lock para 1;
• Mesma falha do exemplo de
diretório de spool.

44
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição
Alternância obrigatória 

– Uso de turn (inspeciona o valor da variável


turn, processo 0 encontra o valor 0 e entra
em sua região crítica)
– Espera ociosa: gasto de tempo de CPU. Ex.:
Spin lock
– Não funciona quando um dos processos é
muito mais lento do que o outro;
– Viola condição 3;

45
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição
Alternância Obrigatória

Solução proposta para o problema da região crítica
(a) Processo 0.        (b) Processo 1.

46
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição
Solução de Peterson

• Combina a idéia de (a) alternância


obrigatória e (b) variáveis de impedimento;
• Funcionamento:
– Antes de usar as variáveis compartilhadas, cada
processo chama um enter_region com o seu
número como parâmetro;
– Depois que terminou de usar as variáveis
compartilhadas, o processo chama um
leave_region;

47
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição
Solução de Peterson

Solução de Peterson para implementar exclusão mútua
48
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição
A instrução TSL

– Auxílio de hardware (test and set lock)


– Armazenamento de uma palavra é
indivisível;
– A CPU impede o acesso ao barramento
de memória para proibir o uso por
outras CPUs;

49
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição
Instrução TSL

Entrando e saindo de uma região crítica 
usando a instrução TSL
50
Pearson Education                                                                         Sistemas Operacionais Modernos – 2ª Edição