Cristiano Pires Martins
Parte 2
terça-feira, 13 de março de 12
Exclusão Mútua com Espera Ociosa� Desabilitando Interrupções;� Variáveis de Impedimento;� Alternância Obrigatória;� Solução de Peterson;� A instrução TSL;
terça-feira, 13 de março de 12
Desabilitando Interrupções� É a solução mais simples: cada processo desabilita todas as interrupções logo depois de entrar na região crítica e reabilita-‐se imediatamente antes de sair dela;
� Não é interessante porque não é prudente dar aos processos dos usuários o poder de desligar interrupções;
� É uma técnica bastante útil dentro do próprio SO, mas inadequada como um mecanismo geral de exclusão mútua para processos de usuário.
terça-feira, 13 de março de 12
Variáveis de Impedimento� Solução de Software;� Há uma única variável compartilhada entre os dois processos (lock), contendo o valor 0;
� Se lock for 0, o processo altera essa variável para 1 e entra na região;
� Se lock já estiver com o valor 1, o processo simplesmente aguardará até que ela se torne 0;
� Só que essa técnica apresenta uma falha como diretório de spool.
terça-feira, 13 de março de 12
Alternância Obrigatória� Contém uma variável inteira, inicialmente com 0, serve para controlar a vez de quem entra na região crítica e verifica ou atualiza a memória compartilhada;
� Testar continuamente um variável até que um valor apareça é chamado de espera ociosa. Isso deveria ser evitado (gasta tempo de CPU);
� A variável de impedimento que usa espera ociosa é chamada de spin lock.
terça-feira, 13 de março de 12
Alternância Obrigatória
Solução proposta para o problema da região crítica(a) Processo 0. (b) Processo 1.
33
terça-feira, 13 de março de 12
Alternância Obrigatória� Alternar a vez não é uma boa idéia quando um dos processos for muito mais lento que o outro;
� Essa situação viola a condição 3: o processo 0 está sendo bloqueado por um processo que não está na sua região crítica.
terça-feira, 13 de março de 12
Solução de Peterson
Solução de Peterson para implementar exclusão mútua35
terça-feira, 13 de março de 12
Instrução TSL� Requer um pequeno auxílio do hardware;� TSL (Test and Set Lock): teste e atualize variável de impedimento;
� As operações de leitura e armazenamento de uma palavra são seguramente indivisíveis;
� A CPU impede o acesso ao barramento de memória.
terça-feira, 13 de março de 12
Instrução TSL
Entrando e saindo de uma região crítica usando a instrução TSL
37
terça-feira, 13 de março de 12
Dormir e Acordar
Problema do produtor-consumidor com uma condição de disputa fatal38
terça-feira, 13 de março de 12
Semáforos
O problema do produtor-consumidor usando semáforos39
terça-feira, 13 de março de 12
40
Mutexes
Implementação de mutex_lock e mutex_unlock
Instrução TSL
terça-feira, 13 de março de 12
41
Monitores (1)
Exemplo de um monitor
terça-feira, 13 de março de 12
42
Troca de Mensagens
O problema do produtor-consumidor com N mensagens
terça-feira, 13 de março de 12
43
Barreiras
� Uso de uma barreiraa) processos se aproximando de uma barreirab) todos os processos, exceto um, bloqueados
pela barreirac) último processo chega, todos passam
terça-feira, 13 de março de 12
EscalonamentoIntrodução ao Escalonamento (1)
� Surtos de uso da CPU alternam-se com períodos de espera por E/Sa) um processo orientado à CPUb) um processo orientado à E/S
44
terça-feira, 13 de março de 12
Introdução ao Escalonamento (2)
Objetivos do algoritmo de escalonamento45
terça-feira, 13 de março de 12
Escalonamento em Sistemas em Lote (1)
Um exemplo de escalonamento job mais curto primeiro
46
terça-feira, 13 de março de 12
Escalonamento emSistemas em Lote (2)
Escalonamento em três níveis
47
terça-feira, 13 de março de 12
Escalonamento emSistemas Interativos (1)
� Escalonamento por alternância circular (round-robin)a) lista de processos executáveisb) lista de processos executáveis depois que B usou todo
o seu quantum48
terça-feira, 13 de março de 12
Escalonamento emSistemas Interativos (2)
Um algoritmo de escalonamento com quatro classes de prioridade
49
terça-feira, 13 de março de 12
Próximo Processo Mais Curto
23
terça-feira, 13 de março de 12
Escalonamento GaranHdo
24
terça-feira, 13 de março de 12
25
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 33
Escalonamento em Sistemas de Tempo-Real
Sistema de tempo-real escalonável • Dados
– m eventos periódicos – evento i ocorre dentro do período Pi e
requer Ci segundos • Então a carga poderá ser tratada
somente se
11
mi
i i
CP=
≤∑
terça-feira, 13 de março de 12