aula 02-processos-e-threads-tanenbaum-parte-2
TRANSCRIPT
![Page 1: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/1.jpg)
Cristiano Pires Martins
Parte 2
terça-feira, 13 de março de 12
![Page 2: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/2.jpg)
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
![Page 3: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/3.jpg)
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
![Page 4: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/4.jpg)
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
![Page 5: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/5.jpg)
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
![Page 6: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/6.jpg)
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
![Page 7: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/7.jpg)
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
![Page 8: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/8.jpg)
Solução de Peterson
Solução de Peterson para implementar exclusão mútua35
terça-feira, 13 de março de 12
![Page 9: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/9.jpg)
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
![Page 10: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/10.jpg)
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
![Page 11: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/11.jpg)
Dormir e Acordar
Problema do produtor-consumidor com uma condição de disputa fatal38
terça-feira, 13 de março de 12
![Page 12: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/12.jpg)
Semáforos
O problema do produtor-consumidor usando semáforos39
terça-feira, 13 de março de 12
![Page 13: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/13.jpg)
40
Mutexes
Implementação de mutex_lock e mutex_unlock
Instrução TSL
terça-feira, 13 de março de 12
![Page 14: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/14.jpg)
41
Monitores (1)
Exemplo de um monitor
terça-feira, 13 de março de 12
![Page 15: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/15.jpg)
42
Troca de Mensagens
O problema do produtor-consumidor com N mensagens
terça-feira, 13 de março de 12
![Page 16: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/16.jpg)
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
![Page 17: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/17.jpg)
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
![Page 18: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/18.jpg)
Introdução ao Escalonamento (2)
Objetivos do algoritmo de escalonamento45
terça-feira, 13 de março de 12
![Page 19: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/19.jpg)
Escalonamento em Sistemas em Lote (1)
Um exemplo de escalonamento job mais curto primeiro
46
terça-feira, 13 de março de 12
![Page 20: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/20.jpg)
Escalonamento emSistemas em Lote (2)
Escalonamento em três níveis
47
terça-feira, 13 de março de 12
![Page 21: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/21.jpg)
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
![Page 22: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/22.jpg)
Escalonamento emSistemas Interativos (2)
Um algoritmo de escalonamento com quatro classes de prioridade
49
terça-feira, 13 de março de 12
![Page 23: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/23.jpg)
Próximo Processo Mais Curto
23
terça-feira, 13 de março de 12
![Page 24: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/24.jpg)
Escalonamento GaranHdo
24
terça-feira, 13 de março de 12
![Page 25: Aula 02-processos-e-threads-tanenbaum-parte-2](https://reader034.vdocuments.mx/reader034/viewer/2022042700/555ad572d8b42a024a8b4b13/html5/thumbnails/25.jpg)
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