Você está na página 1de 36

CCAE

Gerncia de Processos: Captulo 5 Escalonamento de Processos

Centro de Cincias Aplicadas e Educao

UFPB - Campus IV - Litoral Norte

SISTEMAS OPERACIONAIS

Contedo
Conceitos bsicos Critrios de escalonamento Algoritmos de escalonamento Escalonamento em mltiplos processadores Escalonamento em tempo real Exemplos de sistemas modernos Avaliao de algoritmos de escalonamento

Conceitos Bsicos
Utilizao mxima de CPU obtida com multiprogramao Ciclo de bursts de CPU-E/S

Execuo do processo consiste em um ciclo de execuo de CPU e espera de E/S

Distribuio de bursts de CPU

Sequncia de bursts alternados de CPU e de E/S

Histograma de tempos de burst de CPU

Escalonador de CPU
Seleciona dentre os processos na memria que estejam prontos para executar, e aloca a CPU a um deles Decises de escalonamento de CPU podem ocorrer quando um processo:

1. Passa do estado executando para esperando 2. Passa do estado executando para pronto 3. Passa de esperando para pronto 4. Termina

Escalonamento sob 1 e 4 no preemptivo Todo o restante preemptivo

Despachante
O mdulo despachante d o controle da CPU ao processo selecionado pelo escalonamento de curto prazo; Isso envolve:

troca de contexto troca para o modo usurio salto para o local apropriado no programa do usurio para reiniciar esse programa

Latncia de despacho tempo para que o despachante termine um processo e inicie outro em execuo

Critrios de Escalonamento
Utilizao de CPU: manter a CPU a mais ocupada possvel Throughput: # de processos que completam sua execuo por unidade de tempo Tempo de turnaround: quantidade de tempo para executar um processo em particular Tempo de espera: tempo em que um processo esteve esperando na fila de prontos Tempo de resposta: tempo desde quando uma solicitao foi submetida at a primeira reposta ser produzida, no a sada (para ambiente de tempo compartilhado)

Critrios de Otimizao
Utilizao mxima de CPU Throughput mximo Tempo de turnaround mximo Tempo de espera mnimo Tempo de resposta mnimo

Escalonamento First-Come, First-Served (FCFS)

Suponha que os processos cheguem nesta ordem: P1, P2, P3.


O Grfico de Gantt para o escalonamento FCFS seria:
P1 0 24 P2 27

Processo P1 P2 P3

Tempo de Burst 24 3 3

P3 30

Tempo de espera para P1 = 0; P2 = 24; P3 = 27 Tempo de espera mdio: (0 + 24 + 27)/3 = 17

10

Escalonamento First-Come, First-Served (FCFS) - Continuao


Suponha agora que os processos cheguem nesta ordem: P2, P3, P1. O Grfico de Gantt :

Processo P1 P2 P3 Tempo de Burst 24 3 3

P2 0

P3 3 6

P1 30

Tempo de espera para P1 = 6; P2 = 0; P3 = 3 Tempo de espera mdio: (6 + 0 + 3)/3 = 3


11

Muito melhor que no caso anterior!

Escalonamento Shortetst Job First (SJF)


Associe a cada processo a extenso de seu prximo burst de CPU. Use essas extenses para escalonar o processo com o menor tempo Dois esquemas:

no preemptivo: uma vez a CPU dada ao processo, ele no pode ser apropriado at que termine seu burst de CPU preemptivo: se um novo processo chega com tamanho de burst de CPU menor que o tempo restante do processo atualmente em execuo, apropria-se da CPU. Conhecido como Shortest-Remaining-Time-First (SRTF)
12

SJF o algoritmo timo: gera o menor tempo de espera mdio para determinado conjunto de processos

Exemplo Shortest Job First nopreemptivo


Processo P1 P2 P3 P4 Tempo de Chegada 0 2 4 5 Tempo de Burst 7 4 1 4

SJF no-preemptivo:
P1 0 3 7 P3 8 P2 12 P4 16
13

Tempo mdio de espera = (0 + 6 + 3 + 7)/4 = 4

Exemplo Shortest Job First preemptivo


Processo P1 P2 P3 P4 Tempo de Chegada 0 2 4 5 Tempo de Burst 7 4 1 4

SJF preemptivo:
P1 0 2 P2 4 P3 5 P2 7 P4 11 P1 16
14

Tempo mdio de espera = (9 + 1 + 0 +2)/4 = 3

Determinando a durao do prximo burst de CPU


possvel apenas estimar a durao Pode ser feito usando a durao dos bursts de CPU anteriores

15

Escalonamento por Prioridade

Um nmero de prioridade (inteiro) associado a cada processo A CPU alocada ao processo com a maior prioridade (menor inteiro maior prioridade) Preemptivo no preemptivo

SJF um escalonamento por prioridade onde a prioridade o prximo tempo de burst de CPU previsto Problema Estagnao processos com baixa prioridade podem nunca ser executados Soluo Envelhecimento medida que o tempo passa, a prioridade do processo aumenta
16

Escalonamento Round Robin (RR)

Cada processo recebe uma pequena unidade de tempo de CPU (quantum), normalmente 10-100 milissegundos. Depois que esse tempo tiver passado, o processo interrompido e inserido no final da fila de pronto. Se houver n processos na fila de pronto e o quantum de tempo for q, ento cada processo recebe 1/n do tempo de CPU em pedaos de no mximo q unidades de tempo de uma s vez. Nenhum processo espera mais do que (n 1)q unidades de tempo. Desempenho q grande FIFO q pequeno q deve ser grande em relao ao tempo de troca de contexto, ou ento o overhead muito alto

17

Exemplo: Round Robin com q = 20


Processo P1 P2 P3 P4 Tempo de Burst 53 17 68 24

O Grfico de Gantt :
P1 0 20 P2 37 P3 57 P4 P1 77 P3 97 117 P4 P1 P3 P3

121 134 154 162

Normalmente, maior turnaround mdio que SJF, porm com resposta melhor

18

Quantum de tempo e tempo de troca de contexto

19

Tempo de turnaround varia com quantum

20

Fila Multinvel

Fila de pronto est particionada em duas filas separadas: primeiro plano (interativo) e segundo plano (batch) Cada fila tem seu prprio algoritmo de escalonamento

primeiro plano RR segundo plano FCFS Escalonamento com prioridade fixa; (ou seja, serve tudo em primeiro plano, depois em segundo plano).

O escalonamento precisa ser feito entre as filas

Possibilidade de estagnao.
21

Fatia de tempo cada fila recebe uma certa quantidade de tempo de CPU, que ela pode escalonar entre seus processos

80% para primeiro plano no RR 20% para segundo plano no FCFS

Escalonamento de Fila Multinvel

22

Fila de Feedback Multinvel

Um processo pode mover entre as diversas filas

envelhecimento pode ser implementado dessa forma

Escalonador de fila de feedback multinvel definido pelos seguintes parmetros:


nmero de filas algoritmos de escalonamento para cada fila mtodo usado para determinar quando fazer o upgrade de um processo mtodo usado para determinar quando rebaixar um processo mtodo usado para determinar em qual fila um processo entrar quando esse processo precisar de servio

23

Exemplo de Fila de Feedback Multinvel

Trs filas:

Q0 RR com quantum de tempo de 8 milissegundos Q1 RR com quantum de tempo de 16 milissegundos Q2 FCFS Um novo job entra na fila Q0 que servida FCFS. Quando ganha a CPU, o job recebe 8 milissegundos. Se no terminar em 8 milissegundos, o job movido para a fila Q1. Em Q1 o job novamente servido FCFS e recebe 16 milissegundos adicionais. Se no completar, ele apropriado e movido para a fila Q2.

Escalonamento

24

Exemplo de Fila de Feedback Multinvel

25

Escalonamento com Mltiplos Processadores


Escalonamento de CPU mais complexa quando mltiplas CPUs esto disponveis Processadores homogneos dentro de um multiprocessador Compartilhamento de carga Multiprocessamento assimtrico quando somente um processador acessa as estruturas de dados do sistema, aliviando a necessidade de compartilhamento de dados

26

Escalonamento de Tempo Real


Sistemas de tempo real rgido exigidos para completar uma tarefa crtica dentro de um perodo de tempo garantido Computao em tempo real flexvel exige que processos crticos recebam prioridade em relao aos menos favorecidos

27

Escalonamento em Sistemas Modernos


Escalonamento do Solaris Escalonamento do Windows XP Escalonamento do Linux Escalonamento em Java

28

Escalonamento do Solaris

29

Tabela de despacho do Solaris

30

Prioridades do Windows XP

31

Escalonamento no Linux

Dois algoritmos: tempo compartilhado e tempo real Tempo compartilhado


Priorizado baseado em crdito processo com a maioria dos crditos escalonado em seguida Crdito subtrado quando houver interrupo de timer Quando crdito = 0, outro processo escolhido Quando todos os processos tiverem crdito = 0, ocorre novo crdito Baseado em fatores incluindo prioridade e histria

Tempo real
Tempo real flexvel Compatvel com Posix.1b duas classes

32

FCFS e RR

Processo com prioridade mais alta sempre roda primeiro

Escalonamento em Java
Poltica de escalonamento livremente definida. Um thread executa at:

Seu quantum de tempo expirar Ele for bloqueado para E/S Ele sair do seu mtodo run()

Alguns sistemas podem dar suporte preempo

33

Avaliao de Algoritmos de Escalonamento


Modelagem determinstica apanha carga de trabalho predeterminada em particular e define o desempenho de cada algoritmo para essa carga de trabalho Modelos de enfileiramento Implementao

34

Avaliao de Algoritmos de Escalonamento

35

Avaliao de Algoritmos de Escalonamento

36