Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal...

46
1 1 Processos e Threads Capítulo 2 2 Processos e threads 1. Processos 2. Threads 3. Comunicação inter processos (IPC) 4. Problemas clássicos de IPC 5. Escalonamento (Scheduling)

Transcript of Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal...

Page 1: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

1

1

Processos e Threads

Capítulo 2

2

Processos e threads

1. Processos2. Threads3. Comunicação inter processos (IPC)4. Problemas clássicos de IPC5. Escalonamento (Scheduling)

Page 2: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

2

3

Processos: O modelo de processos

Multiprogramação de 4 programasModelo conceitual de 4 processos sequenciaisindependentesapenas um programa ativo em um dado instante

4

Criação de Processos

Principais eventos que causam a criação de processos

1. Inicialização do sistemaExecução de um sistema de criação de processos

2. Solicitação do usuário para a criação de um processo

3. Início de um processamento em lote

Page 3: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

3

5

Término de processos

Condições que terminam um processo1. Normal (voluntária)2. Erro (voluntária)3. Erro Fatal (involuntária)4. Morto por outro processo (involuntária)

6

Hierarquias de ProcessosPai cria um processo filho, processos filhos podem criar seus próprios processosFormam uma hierarquia– UNIX denomina um “grupo de processos (process

group)Windows não tem o conceito de hierarquia de processos– todos os processos são criados iguais

Page 4: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

4

7

Estados de um processos

8

Sete Estados de um Processo

Page 5: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

5

9

Estados de um processos

Camada inferior de Sos estruturados à processos – administram interrupções e escalonamento

Acima desta camada estão os processos sequenciais

10

Administração de Processos e Recursos

Um SO mantém as seguints tabelas– Memoria– E/S – Arquivos– Processos

Page 6: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

6

11

Implementação de Processos

Campos de uma entrada em uma tabela de processos

12

Imagem do processo (constituentes do processo)

Programa do Usuário (texto) Dados do Usuários Pilha(s)

– para chamadas de procedimentos e passagem de parâmetros

PCB - Process Control Block (contexto de execução)– Dados requeridos (atributos dos processos) pelo SO para

controlar o processo:Informação de identificaçãoInformação de estadoInformação de Controle

Page 7: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

7

13

Implementação de Processos

Esquema do que a camada inferior do SO faz quando uma interrupção ocorre

14

Imagens de processos na memória virtual

Page 8: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

8

15

Threads: O modelo de Treads

(a) 3 processos cada um com uma thread(b) 1 processo com 3 threads

16

Threads: O modelo de Treads

Itens compartilhados por todas as threads em um processos Itens privados de cada thread

Page 9: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

9

17

Threads: O modelo de Treads

Cada thread tem sua própria pilha

18

Thread Usage (1)

Um processador de texto com 3 threads

Page 10: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

10

19

Uso de Thread

Um Web server multithreaded

20

Threads: O modelo de Treads

(a) thread Dispatcher(b) thread trabalhadora

Page 11: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

11

21

Threads: O modelo de Treads

Três formas de construir um servidor

22

Implementando Threads no espaço do usuário

Um pacote de threads no nível do usuário

Page 12: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

12

23

Implementando Threads no Kernel

Um pacote de threads administrada pelo kernel

24

Implementações Híbridas

Page 13: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

13

25

Ativações do Escalonador (Scheduler)

Objetivo – imitar a funcionalidade das threads do kernel– obter os ganhos de performance das threads do espaço do

usuárioEvita transições desnecessárias de user/kernelO Kernel atribui processadores virtuais para cada processo

– permite ao sistema de runtime alocar threads aos processadoresProblema:

Dependência fundamental no kernel (camada inferior) procedimentos “chamantes” no espaço do usuário (camadas

superiores)

26

Pop-Up Threads

Criação de uma nova thread quando uma mensagem chega

– (a) antes da chegada da mensagem– (b) depois da chegada da mensagem

Page 14: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

14

27

Transformando um código Single-Threaded em Multithreaded

Conflitos entre as threads em relação ao uso de uma variável global

28

Transformando um código Single-Threaded em Multithreaded

Threads podem ter variáveis globais privadas

Page 15: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

15

29

comunicação entre processos Condições de corrida

Dois processos querem ter acesso à memória compartilhada ao mesmos tempo

30

Regiões críticasQuatro condições para proporcionar exclusão mútua 1. Dois Processos NÃO podem estar simultaneamente

nas suas regiões críticas 2. Nenhuma suposição pode ser feita em relação à

velocidade e número de CPUs3. Nenhum processo fora de sua região crítica pode bloquear

outro processo4. Nenhum processo deve esperar para sempre para entra em

sua região crítica

Page 16: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

16

31

Regiões Críticas

Exclusão Mútua Usando Regiões Críticas

32

Esclusão Mútua com Espera Ocupada

Page 17: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

17

33

Esclusão Mútua com Espera Ocupada

Solução de Peterson

34

Esclusão Mútua com Espera Ocupada

Uso da instrução TSL

Page 18: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

18

35

Sleep and Wakeup

Produtor Consumidor com uma condição de Corrida Fatal

36

Semáforos

Produtor-Consumidor usando Semáforos

Page 19: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

19

37

Mutexes

Implementação de mutex_lock e mutex_unlock

38

Monitores

Page 20: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

20

39

MonitorProcessos em espera ficamna fila de entrada ou emuma fila de condiçãoUm processo se coloca emuma fila de condição pelachamada cwait(cn)csignal(cn) traz um processo da fila de condiçãocnConsequentementecsignal(cn) bloqueia o processo e o coloca na filaurgente (a menso quecsignal seja a últimaoperação do monitor)

40

Monitores

Produtor Consumidor com monitores– apenas um procedimento do monitor ativo por vez– buffer tem N entradas

Page 21: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

21

41

Monitores: Produtor-Consumidor usando Java

42 l Produtor-Consumidor usando Java

Page 22: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

22

43

Passagem de Messagens

Produtor Consumidor com N mensagens

44

Barreiras

Uso de uma barreira– processos se aproximando de uma barreira– todos os processos exceto um bloqueados em uma barreira– último processo chega, todos podem passar

Page 23: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

23

45

Filósofos Jantando

46

Filósofos Jantando: uma não solução

Page 24: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

24

47 Solução para o problema do jantar dos filósofos (parte 1)

48 Solução para o problema do jantar dos filósofos (parte 2)

Page 25: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

25

49 Uma solução para o problema dos leitores e escritores

50

O problema do Barbeiro Dorminhoco

Page 26: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

26

51 Solução para O problema do Barbeiro Dorminhoco

52

Escalonamento: Introdução

Rajadas de uso de CPU alternam-se com períodos de espera por entrada e saída

– um processo limitado por CPU– um processo limitado por E/S

Page 27: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

27

53Objetivos dos Algoritmos de Escalonamento

54

Escalonamento com 1 processador

Page 28: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

28

55

Escalonamento de CPU

Concentramos no problema de escalar o uso de um único processador entre todos os processos existentes no sistemaObjetivo é atingir:

– Alta utilização do processador– Alto throughput

número de processos completados por unidade de tempo– baixo tempo de resposta

tempo entre a submissão de uma solicitação e o início da resposta

56

Classificação das Atividades do Escalonador

Longo prazo: qual processo admitirMédio prazo: qual processo será swap in ou outCurto prazo: qual processo pronto será executado a seguir

Page 29: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

29

57

Diagrama de fila para escalonamento

58

Escalonamento a longo prazo

Determina quais programas são admitidos no sistema para processamentoControla o grau de multiprocessamentoSe mais processos são admitidos:

Menos provável que todos processos estejam bloqueados Melhor uso da COUCada processo tem uma fração menor da CPU

O escalonador de longo prazo pode tentar manter uma mistura de processos limitados por CPU e por E/S

Page 30: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

30

59

Escalonamento de médio prazo

Decisões de swap são baseadas na necessidade de administrar multiprogramaçãoFeita por software de administração de memória

60

Escalonamento de curto prazo

Determina qual processo será executado a seguir. (também chamada de escalonamento de CPU) É o assunto deste itemO escalonador de curto prazo é chamado de dispatcherÉ invocado quando ocorre um evento que pode levar àescolha de outro processo para execução :

– Interrupção do clock– Interrupção de I/O– Chamadas do sistema operacional e traps– Sinais (signal)

Page 31: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

31

61

Critérios de escalonamento a longo prazo

Orientados ao usuário – Tempo de resposta: Tempo entre a submissão de

uma solicitação ao início da resposta– Tempo de Turnaround: Tempo entre a submissão

de uma solicitação ao seu término Orientados ao sistema– Utilização do processador– Justiça– throughput

62

Prioridades

Implementadas por filas de “Pronto” múltiplas para representar cada nível de prioridade O Escalonador sempre escolhe um processo de maior prioridade sobre um de menor prioridadeProcessos de menor prioridade podem “passar fome”Permite que um processo mude sua prioridade baseado na sua idade ou história de execução

Page 32: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

32

63

Caracterização de políticas de escalonamento

A função de seleção: determina qual processo na fila de pronto será selecionado para a próxima execução O modo de decisão: especifica o instante no tempo no qual a função de seleção é utilizada – Não preemptivo

Uma vez que um processo esteja executando, ele continuaráaté que termine ou bloqueie (a si próprio) para IO

– PreemptivoProcesso em execução pode ser interrompido e movido para o estado Pronto pelo SO Permite melhor serviço pois nenhum processo pode monopolizar o processador por muito tempo

64

O ciclo CPU-I/O

Observamos que os processos requerem o uso do processador e I/O de uma maneira repetitiva Cada ciclo consiste de uma rajada de CPU (burst) (freqüentemente de 5 ms) seguido por uma rajada de I/O (normalmente mais longa) Um processo termina em uma rajada de CPUProcessos limitados por CPU têm rajadas de CPU mais longas que processos limitados por I/O

Page 33: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

33

65

Exemplos de execução para discutir políticas de escalonamento

ProcessArrivalTime

ServiceTime

1

2

3

4

5

0

2

4

6

8

3

6

4

5

2

•Tempo de Serviço = tempo total de processadorrequerido em um ciclo (CPU-I/O)

•Jobs com tempo de serviço longo são limitados por CPUe são ditos “tarefas longas” (“long jobs”)

66

Primeiro a chegar primeiro a ser servido (First Come First Served (FCFS))

Função de seleção: o processo que está esperando a mais tempo na fila de Pronto (daí, FCFS)Modo de decisão: não preemptivo

– um processo executa até que se bloqueie

Page 34: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

34

67

Desvantagens do FCFS

Um processo que não faça I/O irá monopolizar o processador Favorece processos limitados por CPU – processos limitado por I/O tem que esperar até que os

limitados por CPU terminem – Podem ter que esperar até mesmo quando o seu I/O foi

completado (mal uso de dispositivos) – pode-se manter os dispositivos de I/O mais ocupados

dando mais prioridade aos processos limitados por I/O

68

Função de seleção : o processo que está esperando a mais tempo na fila de ProntoModo de decisão preemptivo– um processo executa até que sua fatia de tempo expire

(quantum, tipicamente entre 10 e 100 ms)– então, uma interrupção de relógio (clock) ocorre e o processo

em execução é colocado na fila de pronto

Round-Robin

Page 35: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

35

69

Quantum de tempo para Round Robin

Deve ser substancialmente maior que o tempo requerido para administrar a interrupção de relógio e escalonamento deve ser maior que a interação típica (mas não muito maior para evitar penalizar processos limitados por I/O)

70

Round Robin: críticaFavorece processos limitados por CPU

– Um processo limitado por I/O usa a CPU por um tempo menor que seu quantum e então é bloqueado esperando por I/O

– Um processo limitado por CPU executa por todo seu quantum e é colocado de volta na fila de pronto (consequentemente fica na frente dos processos bloqueados)

Uma solução: Round Robin virtual– Quando um I/O é completado, o processo bloqueado é

colocado em uma fila auxiliar que tem preferência sobre a fila de Pronto principal

– Uma processo escalado a partir da fila auxiliar não roda mais que o quantum básico menos o tempo gasto rodando desde que foi selecionado da fila Pronto

Page 36: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

36

71

Fila para Round Robin Virtual

72

Menor Processo Próximo (Shortest Process Next (SPN) ou Shortest Job First)

Função de seleção: o processo com a menor rajada de CPU esperada Modo de Decisão: não preemptivoprocessos limitados por I/O serão selecionados primeiro Sempre produz tempo de resposta médio mínimo

Page 37: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

37

73

Menor Processo Próximo

– Turnaround: 8, 12, 16 e 20 Média: 14– Turnaround: 4, 8, 12 e 10 Média: 11

Geral: (4a+3b+2c+d)/4 (a,b,c,d término do proc)Seria bom se fosse usado para processos interativos tambémPrecisamos estimar o tempo de processamento requerido para cada processo (rajada de CPU)aT0 + (1-a)T1, a escolhido

A B DC8 4 4 4

B C AD4 4 4 8

74

Estimando a rajada de CPU requerida

Seja T[i] o tempo de execução para a i-ésima instância deste processo: a duração real da i-ésima rajada deste processo Seja S[i] o valor predito para a i-ésima rajada de CPU deste processo. A escolha mais simples é:

– S[n+1] = (1/n) Σ_{i=1 até n} T[i]Para evitar recalcular a soma inteira, podemos rescrever como:

– S[n+1] = (1/n) T[n] + ((n-1)/n) S[n]Porém, esta combinação dá peso igual a cada instânciaNo entanto, instâncias mais recentes são mais prováveis de refletir comportamento futuro

Page 38: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

38

75

Estimando a rajada de CPU requerida

Uma técnica comum para isto é usar média exponencial– S[n+1] = α T[n] + (1-α) S[n] ; 0 < α < 1– Mais peso é colocado em instâncias recentes sempre que α

> 1/nExpandindo esta equação vemos que os pesos de instâncias passadas decrescem exponencialmente

– S[n+1] = αT[n] + (1-α)αT[n-1] + ... (1-α){i}αT[n-i] + ... + (1-α){n} S[1]– o valor predito da primeira instância S[1] não é calculado;

normalmente é definido como 0 (zero) para dar prioridade a novos processos

76

Coeficientes Decrescentes Exponencialmente

Page 39: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

39

77

Coeficientes Decrescentes Exponencialmente

Aqui S[1] = 0 para dar alta prioridade a novos processosMédia exponencial acompanha mudanças no comportamento de processos muito mais rapidamente que médias simples

78

Menor Processo Próximo : crítica

Possibilidade de “fome” para processos mais longos caso haja um fluxo contínuo de processos curso Falta de preempção não é adequado em um ambiente de tempo compartilhado – Processos limitados por CPU obtém menor prioridade

(como deveriam) mas um processo realizando I/O ainda pode monopolizar a CPU se for o primeiro a entrar no sistema

– Implicitamente incorpora prioridades: processos mais curtos são prioritários

Page 40: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

40

79

Escalonamento com Filas Múltiplas (ou multi-nível) com feedback

Escalonamento Preemptivo com prioridades dinâmicasDiversas filas “Pronto” com prioridades decrescentes:

– P(RQ0) > P(RQ1) > ... > P(RQn)Novos processos são colocados em RQ0 Quando atingem o quantum de tempo são colocados em RQ1, se atingem novamente, são colocados em RQ2 ... Atéatingirem RQnProcessos limitados por I/O permanecem em filas de alta prioridade. Processos limitados por CPU irão cairO escalonador escolhe um processo em RQi apenas se RQi-1 até RQ0 estão vaziasConsequentemente, processos longos podem passar fome

80

Escalonamento em Filas Múltiplas com feedback

FCFS é usado em cada fila exceto na de menor prioridade onde Round Robin é usado

Page 41: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

41

81

Quantum para escalonamento com feedback

Com um quantum fixo, o tempo de turnaround para processos longos pode se estender de forma alarmante Para compensar, podemos aumentar o quantum de acordo com a profundidade da fila

– Ex: quantum de RQi = 2^{i-1}Processos mais longos ainda podem passar fome

– Solução possível: promover a prioridade do processo após certo tempo

82

Qual algoritmo é melhor?

Depende da situação!Carga do sistemaSuporte de hw para o dispatcherMétodo de avaliação

Page 42: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

42

83

84

Escalonamento em sistemas em lote

Um exemplo de um escalonamento shortest job first

Page 43: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

43

85

Escalonamento em sistemas em lote

Escalonamento em 3 Níveis

86

Escalonamento em sistemas Interativos

Round Robin– lista de processos prontos (runnable)– lista de processos prontos depois que B usa o seu quantum

Page 44: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

44

87

Escalonamento em sistemas Interativos

Um escalonamento com quatro classes de prioridades

88

Escalonamento em sistemas de tempo real

Sistema de tempo real escalonávelDados– m eventos periódicos – evento i ocorre dentro do período Pi e requer Ci

segundosEntão, a carga só pode ser administrada se

1

1m

i

i i

CP=

≤∑

Page 45: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

45

89

Política versus Mecanismo

Separa o que é permitido fazer de como éfeito– um processo saber quais de suas threads filhas

são importantes e precisam de prioridades

Algoritmo de escalonamento parametrizado – mecanismo no kernel

Parâmetros fornecidos por processos do usuários– política definida por processos dos usuários

90

Escalonamento de Threads

Possível escalonamento para threads no nível do usuário50-msec quantum de processo threads rodam em rajadas de 5 msec/CPU

Page 46: Capítulo 2 - Instituto de Informáticaeduardo/so/slides/cap-02-iproc+threads.pdf · Normal (voluntária) 2. Erro ... 51 Solução para O problema do Barbeiro Dorminhoco 52 ... zControla

46

91

Escalonamento de Threads

Possível escalonamento para threads de kernel50-msec quantum de processo threads rodam em rajadas de 5 msec/CPU