Top Banner
Sistemas Operacionais: Escalonamento de processos
24

Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

Sep 26, 2018

Download

Documents

vuongtram
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

Sistemas Operacionais:

Escalonamento de

processos

Page 2: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

Escalonamento

• Critérios de escalonamento

• Algoritmos de escalonamento

• Escalonamento em multiprocessadores

• Escalonamento tempo real

Page 3: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

Predição do tempo de execução

Page 14: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

Escalonamento com múltiplas filas

Page 22: Sistemas Operacionais: Escalonamento de processosmarcio/SO/Aula3Escalonamento.pdf · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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 · Gantt para esse algoritmo ... Round Robin (RR) •Alocação circular •Cada processo ganha um

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