Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de...

24
Sistemas Operacionais: Escalonamento de processos

Transcript of Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de...

Page 1: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Sistemas Operacionais:

Escalonamento de

processos

Page 2: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Escalonamento

• Critérios de escalonamento

• Algoritmos de escalonamento

• Escalonamento em multiprocessadores

• Escalonamento tempo real

Page 3: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Características de processos

• Multiprogramação possibilita a máxima

utilização da CPU

• Processo:utilização da CPU e E/S

• Distribuição da utilização da CPU

Page 4: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Algoritmo de escalonamento

• Seleciona entre os processos prontos e na memória, qual irá ganhar a CPU

• O escalonamento pode ocorrer: 1. Um processo passa do estado executando para o estado espera (p.

exemplo, o processo solicita uma operação de E/S)

2. Um processo passa do estado executando para o estado pronto

3. Um processo passo do estado espera para pronto

4. Um processo é finalizado

• Escalonamento nas alternativas 1 e 4 é denominado não-preemptivo (nonpreemptive)

• As outras opções são denominadas preemptivo (preemptive)

Page 5: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Critérios para o escalonamento

• Utilização da CPU – utilizar o máximo da CPU

• Throughput – número de processos finalizados em

um dado intervalo de tempo

• Tempo de execução – tempo para finalizar a

execução de um determinado processo no sistema

• Tempo de espera – quantidade de tempo que o

processo ficou na fila de prontos

• Tempo de resposta – tempo entre a requisição e a

saída do primeiro resultado (sistemas interativos)

Page 6: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Otimizações

• Utilização máxima da CPU

• Throughput máximo

• Tempo de execução mínimo

• Tempo de espera mínimo

• Tempo de resposta mínimo

Page 7: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

FCFS (First-come, first-served)

• Primeiro a chegar, primeiro a ser servido (sistemas não preeemptivos)

Process Burst Time

P1 24

P2 3

P3 3

• A ordem de chegada dos processos é P1, P2, P3. O gráfico de

Gantt para esse algoritmo é:

• Tempo de espera P1 = 0; P2 = 24; P3 = 27

• Tempo médio de espera: (0 + 24 + 27)/3 = 17

P1 P2 P3

24 27 30 0

Page 8: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

FCFS(2)

• Considerando a ordem de chegada P2, P3, P1

• O gráfico de Gantt

• Tempo de espera P1 = 6; P2 = 0; P3 = 3

• Tempo médio de espera: (6 + 0 + 3)/3 = 3

• Melhor desempenho que o caso anterior

• “Efeito comboio”: todos os processos menores ficam esperando pelo processo maior utilizar a CPU

P1 P3 P2

6 3 30 0

Page 9: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

SJF (Shortest Job First)

• Menor tarefa primeiro

• Cada processo é associado com o tempo de utilização da CPU (normalmente derivado das execuções anteriores)

• Dois esquemas:

– Não preeemptivo– quando um processo ganha a CPU ele é executado até o fim do período de utilização da CPU

– Preemptivo– se um processo chega com o tempo de duração da CPU menor que o tempo restante que do processo em execução, o escalomanento é realizado. Shortest-Remaining-Time-First (SRTF)

• SJF– fornece o menor tempo médio de espera para um dado conjunto de processos (solução ótima)

Page 10: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

SJF não preemptivo

Process Arrival Time Burst Time

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

• Tempo médio de espera = (0 + 6 + 3 + 7)/4 = 4

P1 P3 P2

7 3 16 0

P4

8 12

Page 11: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

SJF preemptivo

Process Arrival Time Burst Time

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

• Tempo médio de espera= (9 + 1 + 0 +2)/4 = 3

P1 P3 P2

4 2 11 0

P4

5 7

P2 P1

16

Page 12: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Determinando o tempo de uso da

CPU de um processo • Estimativas

• Normalmente baseadas nos ciclos de execução anteriores, utilizando a média exponencial

• = controla o peso da última execução sobre as execuções passadas

:Define 4.

10 , 3.

burst CPU next the for value predicted 2.

burst CPU of length actual 1.

1n

thn nt

.1 1 nnn t

Page 13: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Predição do tempo de execução

Page 14: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Utilizando a média exponencial

• =0

– n+1 = n

– A história recente não é considerada

• =1

– n+1 = tn

– Somente a última execução é considerada

• Expandindo a formula: n+1 = tn+(1 - ) tn -1 + …

+(1 - )j tn -j + …

+(1 - )n +1 0

• Desde que E (1 - ) são menores que 1, cada item um peso menor que o seu predecessor

Page 15: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Escalonamento por prioridades

• Cada processo tem uma prioridade associada (valor inteiro)

• Ganha a CPU o processo com maior prioridade (normalmente,

menor valor = maior prioridade)

– Preemptivo

– Não preemptivo

• SJF é um algoritmo baseado em prioridades, onde a prioridade

do processo é a estimativa do tempo de uso da CPU

• Problema Starvation (abandono de processos)–processos de

baixa prioridade podem não ganhar a CPU

• Solução Aging (envelhecimento)– durante a execução do

sistema, processos vão ganhando maior prioridade

Page 16: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Round Robin (RR)

• Alocação circular

• Cada processo ganha um pequeno tempo de CPU (na ordem de milissegundos) denominado quantum

• Cada processo ganha uma quantidade q de utilização da CPU

– q grande: FCFS (todos os processos executam até o FIM)

– q pequeno: haverá desperdício devido ao tempo necessário para a troca de contexto

Page 17: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Simulação do escalonamento RR

Process Burst Time

P1 53

P2 17

P3 68

P4 24

• Gráfico de Gantt:

• Normalmente, o throughput é menor, porém com um melhor tempo de resposta

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

Page 18: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Exercício

• Calcular o tempo médio de processamento

para os seguintes processos utilizando a

política de alocação circular (RR), para q =1,

2, 3, 4, 5, 6

Processo Tempo

P1 6

P2 3

P3 1

P4 7

Page 19: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Escalonamento com múltiplas filas

• A fila de prontos é separada em várias filas:

– fila para processos interativos

– fila para processos em lote

• Cada fila tem sua política de escalonamento

– RR para processos interativos

– FCFS para processos em lote

• Deve haver um escalonamento entre as filas

– Prioridade: primeiro a fila de processos interativos

(possibilidade de abandono de processos (starvation)

– Fatia de tempo para cada fila

Page 20: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Múltiplas filas e transferência entre

filas • Processos podem ser transferidos de fila

• Envelhecimento (aging): processo vai ganhando prioridade com o tempo

• Escalonador com múltiplas filas pode ser definido através dos seguintes parâmetros:

– Número de filas

– Algoritmos de escalonamento para cada fila

– Método utilizado para aumentar a prioridade do processo

– Método utilizado para diminuir a prioridade do processo

– Método utilizado para determinar qual fila o processo ficará quanto o mesmo solicita um serviço

Page 21: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Escalonamento com múltiplas filas

Page 22: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Escalonamento em

multiprocesadores • Escolher qual processo pronto vai executar em

qual CPU

• Simétrico

– Todas as estruturas de dados são acessadas por

todos os processadores

• Assimétrico

– Somente um processador tem acesso a estrutura de

dados do núcleo

Page 23: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Escalonamento no Linux (até 2.6)

• Dois algoritmos: tempo compartilhado e tempo real

• Tempo compartilhado

– Baseado em prioridades(“créditos”) – o processo com mais crédito é escalonado

– O crédito é subtraído quando um interrupção ocorre

– Quando crédito= 0, outro processo é escolhido

– Quando todos os processos tem crédito= 0, um novo cálculo dos créditos é realizado

• Baseado em fatores como prioridade e histórico

• Tempo real

– Soft real-time

– Duas classes de algoritmos

• FCFS e RR

• O processo de mais alta prioridade sempre executa

Page 24: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Algoritmo de escalonamento •Seleciona entre os processos prontos e na memória, qual irá ganhar

Escalonamento no Linux (a partir

2.6) • CFS: Completely Fair Scheduler

– Modela uma CPU ideal (todos os processos

ganham a quantidade de tempo que precisam para

executar)

– Wait_runtime: tempo em que o processo esperou

para ganhar a CPU. Idealmente 0

– Os processos são organizados em uma árvore

rubro-negra

• Ordenados pela tempo que elas devem ganhar a CPU

• Resolução em nanosegundos