Escolar Documentos
Profissional Documentos
Cultura Documentos
Escalonamento da CPU
Conceitos Bsicos Escalonamento de Processador Critrios de Escalonamento Escalonamento No Preemptivo Escalonamento Preemptivo Mecanismos de Interrupo em Intervalos de Tempo Prioridades Algoritmos de Escalonamento Escalonamento para Vrios Processadores Escalonamento em Tempo Real Estudo de Casos: Escalonamento no Unix, Windows XP,
Linux e de Threads
Escalonamento de CPU
em um processador
Toda vez que um processo tiver que esperar (evento ou E/S)
Escalonador
Escalonamento de CPU
Escalonamento de CPU
Conhecido como Escalonador de Processsos Determina/Escolhe, dentre os processos que esto em memria,
qual processo ser associado a uma CPU, quando esta estiver disponvel
Age sobre os processos prontos para executar (processos do
estado de pronto)
Segue uma poltica de escolha
Executado vrias vezes por segundo
Reside permanentemente na memria
Escalonamento de CPU
tarefas, isto , provoca uma interrupo forada de um processo para que outro, com a preempo, possa usar a CPU.
Escalonamento de CPU
Escalonamento de CPU
Determina quais os processos que podero competir pela CPU Responsvel pela suspenso e ativao de processos, o que
Escalonamento de CPU
processos
Escalonamento de CPU
seu reincio Latncia de Despacho tempo que leva para o dispatcher parar
10
Escalonamento de CPU
100%) Throughput: nmero de processos completados por unidade de tempo Turnaround: intervalo de tempo entre a submisso de um processo e sua nalizao (soma dos intervalos esperando para ser carregado na memria, la de pronto, em execuo e em espera) Tempo de espera: tempo que cada processo ca na la de pronto Tempo de resposta: tempo que o processo demora para produzir alguma resposta uma requisio (importante para processos interativos)
desejvel maximizar os 2 primeiros e minimizar os 3 ltimos Para sistemas interativos, importante minimizar a varincia do
11
Escalonamento de CPU
12
Escalonamento de CPU
conseguido
Tempo de resposta mais previsvel
mais justo?
Processos curtos precisam esperar pelos longos
Permite monopolizao da CPU
13
Escalonamento de CPU
entregue a outro
Garante que os processos possam progredir uniformemente
No permite a monopolizao da CPU
Usado para:
atendimento rpido de processos mais importantes
tratamento de interrupes em sistemas de tempo real
atender os usurios em sistemas de tempo compartilhado
14
Escalonamento de CPU
quantum ou time-slice
o tempo limite para uso da CPU, aps o qual ocorre a
interrupo por tempo Um processo do usurio, uma vez interrompido por trmino do
seu quantum, volta la de pronto para executar e permite o escalonamento de outro processo
Um processo em execuo mantm controle sobre a CPU at:
voluntariamente liber-la
quantum time expirado
outra interrupo exija ateno da CPU para que seja tratada
erro de execuo
Eduardo Nicola F. Zagari
15
Escalonamento de CPU
modicveis (dinmicas)
Podem ser associadas externamente ou de maneira automtica
Podem ser calculadas e associadas de forma racional ou
arbitrria
16
Escalonamento de CPU
Come First-Served))
SJF (Shortest Job First)
Round-Robin
SRT (Shortest Remaining Time)
Prioridade
Mltiplas Filas
Mltiplas Filas com Realimentao
Escalonamento para Vrios Processadores
Escalonamento de Tempo Real
Earliest Deadline
17
Escalonamento de CPU
trmino)
O processo que chegar primeiro (rst-in) o primeiro a ser
18
Escalonamento de CPU
19
Escalonamento de CPU
20
Escalonamento de CPU
escolhido
quando a informao sobre o tempo de execuo no se encontra
disponvel
mais do que isto: SJF timo, pois d o tempo de espera mnimo para um dado conjunto de processos espera
21
Escalonamento de CPU
Turnaround mdio FIFO: (6+14+21+24)/4 = 16,25 u.t. Tempo de espera mdio: (0 + 6 + 14 + 21)/4 = 10,25 u.t.
23
Escalonamento de CPU
slice (usualmente de 10 a 100ms) que corresponde ao tempo limite para uso da CPU por cada processo
Aps este tempo ter sido passado, o processo sofre preempo
uma interrupo e o SO faz o chaveamento de contexto
Projetado para sistemas de tempo compartilhado
Se houver n processos na la de pronto e o tempo do quantum for
q, ento cada processo obtm 1/n do tempo da CPU e fatias de no mximo q unidades de tempo por vez. Nenhum processo espera por mais que (n-1)q unidades de tempo.
24
Escalonamento de CPU
Claramente preemptivo
O tempo mdio de espera alto
O desempenho depende do tamanho do quantum
se for muito grande (innito)
tende a
FIFO
25
Escalonamento de CPU
Quantum = 1 u.t.
Turnaround mdio RR: (16 + 8 + 9) /3 = 11 u.t. Tipicamente, o turnaround mdio maior que o do SJF, mas o
26
Escalonamento de CPU
a contra-partida preemptiva do SJF O processo com menor tempo para ser completado escolhido Um processo em execuo interrompido se um novo processo,
menor
27
Escalonamento de CPU
Turnaround mdio SRT: ((17-0)+(5-1)+(26-2)+(10-3))/4 = 13 u.t.
E qual o turnaround mdio se fosse escalonado segundo SJF?
Resp.: 14,25 u.t.
Escalonamento de CPU
28
0-7 ou 0-255), mas no existe uma conveno de qual nmero (o maior ou o menor) o de maior prioridade
Pode ser preemptivo ou no
SJF um Escalonamento por Prioridade onde a prioridade
29
Escalonamento de CPU
30
Escalonamento de CPU
Prioridade denida:
internamente: usa alguma quantidade mensurvel para computar a
prioridade.
(dinmica)
(esttica)
car indenidamente no estado de pronto (IBM 7094 no MIT processo rodando por 6 anos)
Soluo: aumentar progressivamente a prioridade dos
31
Escalonamento de CPU
adequado
Interativo RR
Batch FIFO
Alta prioridade
Possibilidade de starvation
Baixa prioridade
do processamento
O SO faz um ajuste dinmico (mecanismo adaptativo) para ajustar os processos em funo do comportamento do sistema
Os processos no so previamente associados s las, mas direcionados pelo sistema entre as diversas las com base no seu comportamento
Parmetros:
nmero de las,
algoritmo de escalonamento para cada la,
mtodo para mudar (promover ou rebaixar) o processo de la,
mtodo para determinar em que la um processo entra
33
Escalonamento de CPU
Processos novos entram no m da primeira la Nas las, os processos so escalonados segundo Round Robin O quantum varia de uma la para outra (aumenta em direo s
no pode ser escolhido, a menos que, as las anteriores estejam vazias)
Um processo em execuo interrompido, caso aparea um processo em uma das las anteriores sua
Sempre que um processo esgotar seu quantum , ele suspenso na la
34
Escalonamento de CPU
Alta prioridade
Fila 1
Menor quantum
Fila 2
Fila 3
...
Baixa prioridade Fila N Maior quantum
35
Escalonamento de CPU
sendo escolhidos para rodar com menos freqncia; no entanto, eles recebem quanta maiores, necessitando receber a CPU por um nmero menor de vezes, o que reduz a quantidade trocas de contexto
Processos interativos (I/O-bound), normalmente pequenos, so
em las de prioridade mais alta Problema: pressionar <ENTER> em terminais processando longos
36
Escalonamento de CPU
Abordagens:
Processamento simtrico
Cada processador faz seu prprio escalonamento (excluso
mtua!)
Mestre-Escravo: processamento assimtrico
um algoritmo, executado em um processador reservado para
37
Escalonamento de CPU
crtica seja completada dentro de um tempo garantido
Ex.: trfego areo, armas, sistemas mdicos, controle industrial, etc
Soft real-time: requisitos temporais exveis requer que um processo crtico receba prioridade sobre outros menos importantes
Ex.: multimdia, realidade virtual, etc
Sistemas de TR rgidos: processadores dedicados
Sistemas de TR exveis:
Implementados com outros esquemas
Processos crticos devem ter prioridade sobre outros
Implica na degradao do servio dos outros usurios
38
Escalonamento de CPU
Escalonamento baseado em prioridades dinmicas A idia bsica atribuir sempre a maior prioridade ao processo que
39
Escalonamento de CPU
40
Escalonamento de CPU
realimentao
Processos executando em modo kernel: prioridade negativa (que so as
tempo: incremento do contador de utilizao da CPU (que aumentar o valor da prioridade do processo)
Round-Robin dentro de cada la
A cada segundo as prioridades so recalculadas:
Contadores de uso da CPU divididos por 2
Nova prioridade = base + nice + contador de uso da CPU
42
Escalonamento de CPU
prximo a ser escalonado
Crdito subtrado quando ocorre uma interrupo por tempo
Quando crdito = 0, outro processo escolhido
Quando todos os processos tm crdito = 0, ocorre
43
Escalonamento de CPU
44
Escalonamento de CPU
#include <pthread.h> #include <stdio.h> #define NUM THREADS 5 int main(int argc, char *argv[]) { int i; pthread t tid[NUM THREADS]; pthread attr t attr; /* get the default attributes */ pthread attr init(&attr); /* set the scheduling algorithm to PROCESS or SYSTEM */ pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM); /* set the scheduling policy - FIFO, RT, or OTHER */ pthread attr setschedpolicy(&attr, SCHED OTHER); /* create the threads */ for (i = 0; i < NUM THREADS; i++) pthread create(&tid[i],&attr,runner,NULL);
Eduardo Nicola F. Zagari
45
Escalonamento de CPU
/* now join on each thread */ for (i = 0; i < NUM THREADS; i++) } /* Each thread will begin control in this function */ void *runner(void *param) { printf("I am a thread\n"); pthread exit(0); } pthread join(tid[i], NULL);
46
Escalonamento de CPU
prioridades e preemptivo
Uma la FIFO usada se houver mltiplas threads com a
mesma prioridade
JVM escalona uma thread para executar quando:
1. A thread em execuo sai do estado de executvel
2. Uma thread de maior prioridade entra no estado executvel
47
Escalonamento de CPU
Uma vez que a JVM no assegura Time-Slicing, o mtodo yield() pode ser usado: while (true) { } // perform CPU-intensive task . . . Thread.yield();
48
Escalonamento de CPU
Prioridade
Comentrio Prioridade Mnima de Thread Prioridade Mxima de Thread Prioridade Default de Thread
49
Escalonamento de CPU