1
Sistemas Operacionais:
Escalonamento de
processos
Escalonamento
• Critérios de escalonamento
• Algoritmos de escalonamento
• Escalonamento em multiprocessadores
• Escalonamento tempo real
2
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
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)
3
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)
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
4
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 300
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
P1P3P2
63 300
5
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)
•
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
73 160
P4
8 12
6
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 P3P2
42 110
P4
5 7
P2 P1
16
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
:Define4.
10,3.
burstCPUnexttheforvaluepredicted2.
burstCPUoflengthactual1.
≤≤
=
=
+
αα
τ 1n
th
n nt
( ) .11 nnn t ταατ −+==
7
Predição do tempo de execução
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
8
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
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
9
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
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
7P4
1P3
3P2
6P1
TempoProcesso
10
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
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
11
Escalonamento com múltiplas filas
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
12
Escalonamento no Linux
• 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

Aula3 escalonamento

  • 1.
    1 Sistemas Operacionais: Escalonamento de processos Escalonamento •Critérios de escalonamento • Algoritmos de escalonamento • Escalonamento em multiprocessadores • Escalonamento tempo real
  • 2.
    2 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 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)
  • 3.
    3 Critérios para oescalonamento • 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) 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
  • 4.
    4 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 300 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 P1P3P2 63 300
  • 5.
    5 SJF (Shortest JobFirst) • 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) • 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 73 160 P4 8 12
  • 6.
    6 SJF preemptivo Process ArrivalTime 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 P3P2 42 110 P4 5 7 P2 P1 16 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 :Define4. 10,3. burstCPUnexttheforvaluepredicted2. burstCPUoflengthactual1. ≤≤ = = + αα τ 1n th n nt ( ) .11 nnn t ταατ −+==
  • 7.
    7 Predição do tempode execução 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
  • 8.
    8 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 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
  • 9.
    9 Simulação do escalonamentoRR 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 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 7P4 1P3 3P2 6P1 TempoProcesso
  • 10.
    10 Escalonamento com múltiplasfilas • 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 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
  • 11.
    11 Escalonamento com múltiplasfilas 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
  • 12.
    12 Escalonamento no Linux •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