16
2012-2 Sistemas Operacionais Sistemas Operacionais Aula 15 Carlos Eduardo de Carvalho Dantas ([email protected] ) http://carloseduardoxp.wordpress.com “Se você deixa o machado perder o corte e não o afia, terá de trabalhar muito mais.É mais inteligente planejar antes de agir.” eclesiastes 10/10

Aula 15 - carloseduardoxp.files.wordpress.com · 2012-2 Sistemas Operacionais Algoritmos de escalonamento Escalonador é a parte do SO que escolhe qual thread terá sua execução

Embed Size (px)

Citation preview

2012-2 Sistemas Operacionais

Sistemas Operacionais

Aula 15

Carlos Eduardo de Carvalho Dantas

([email protected])

http://carloseduardoxp.wordpress.com

“Se você deixa o machado perder o corte e não o afia, terá de trabalhar muito mais.É mais inteligente planejar

antes de agir.” eclesiastes 10/10

2012-2 Sistemas Operacionais

Algoritmos de escalonamento

Escalonador é a parte do SO que escolhe qual thread

terá sua execução na CPU, pelo tempo que este

desejar;

Cenários como servidores e estações de trabalho com

alto desempenho na rede são as que mais necessitam

de um escalonador;

Processos podem ser limitados pela CPU (CPU-bound)

ou limitados por E/S (IO-bound), possuindo pequenos

”surtos” de uso da CPU, e esperas frequentes por E/S

2012-2 Sistemas Operacionais

Algoritmos de escalonamento

2012-2 Sistemas Operacionais

Algoritmos de escalonamento

Quando escalonar:

Criação de um processo;

Término de um processo;

Quando um processo bloqueia por E/S ou semáforo;

Por interrupção de E/S, tomando uma decisão de

escalonamento

2012-2 Sistemas Operacionais

Algoritmos de escalonamento

Algoritmos não preemptivos – escolhe um processo

para executar e o deixa até ser bloqueado ou que

voluntariamente libere a CPU;

Algoritmos preemptivos – escolhe um processo e o

deixa em execução por um tempo máximo fixado

(quantum)

2012-2 Sistemas Operacionais

Algoritmos de escalonamento

2012-2 Sistemas Operacionais

Escalonamento de sistemas em

lote

1) Primeiro a chegar, primeiro a ser servido – fila única

de processos prontos. Novas tarefas são colocadas

no fim da fila

Vantagens – fácil de programar

Desvantagens – não contribui para a vazão de jobs

2012-2 Sistemas Operacionais

Algoritmos de escalonamento

2) Tarefa mais curta primeiro

2012-2 Sistemas Operacionais

Escalonamento de sistemas em

lote

3) Próximo de menor tempo restante

2012-2 Sistemas Operacionais

Escalonamento de sistemas

interativos 1) Round robin ou chave circular

2012-2 Sistemas Operacionais

Escalonamento de sistemas

interativos 2) Prioridades – a cada processo será atribuído uma

prioridade, e quem possuir prioridade mais alta

executa primeiro.

Mesmo PCs com um único usuário, processos como

daemons possuem prioridade mais baixa

2012-2 Sistemas Operacionais

Escalonamento de sistemas

interativos 3) Filas múltiplas – é exatamente o mesmo

escalonamento por prioridades, contudo a cada vez

que o escalonador invocasse esta thread, esta

perdesse prioridade.

Desta forma, não existe prioridades fixas, quando se

aperta <ENTER>, este vai diretamente para a

prioridade mais alta

2012-2 Sistemas Operacionais

Escalonamento de sistemas

interativos 4) Escalonamento por loteria – cada thread recebe

bilhetes. Processos mais importantes recebem

bilhetes extras para aumentar a probabilidade de

vitória.

Quando um processo bloqueia, pode enviar seus

bilhetes ao processo que o desbloqueará.

2012-2 Sistemas Operacionais

Exercícios

2012-2 Sistemas Operacionais

Exercícios

2012-2 Sistemas Operacionais

Referências

Sistemas Operacionais modernos – cap 2