Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceitos Bsicos Critrio de Escalonamento Algoritmos de Escalonamento Escalonamento em Mltiplos-Processadores Escalonamento em Tempo Real Avaliao de Algoritmos
Sistemas Operacionais Silberschatz, Galvin, and Gagne
Sistemas Operacionais
Escalonamento de CPU
Os computadores faziam uma coisa por vez. H uma grande diferena entre a velocidade do
processador e a velocidade do mundo externo.
O escalonador de CPU define a seqncia de aes que determinam o interleave (intercalao) das threads. Programas utilizam sincronizao a fim de prevenir aes nocivas. entretanto as escolhas do escalonamento aparentam (para o programa) ser nodeterminsticas. As aes do escalonador so ditadas por uma poltica de escalonamento.
Acordou ou Pronto para executar Fila de jobs prontos Seleciona prximo a ser executado() Chaveia processo()
Sistemas Operacionais
Objetivos do Escalonador
Tempo de resposta ou latncia Quanto tempo o programa demorar para fazer o que eu quero? Throughput Quantas operaes so completadas por unidade de tempo ? Utilizao: que porcentagem de tempo a CPU (e cada dispositivo) consome fazendo algo til ? Justia O que significa ? Dividir a torta em partes iguais ? Garantir baixa variao nos tempos de resposta ? Livre de starvation (ou inanio) ? Cumprir com os tempos e garantir repetibilidade de tasks peridicas
Sistemas Operacionais Silberschatz, Galvin, and Gagne
Escalonadores de Processos
Processo Parcialmente Executado que sofreu Swap
Fila Prontos
CPU
I/O
Fila de I/O
Filho Executa
Interrupo Ocorre
Sistemas Operacionais
SO
Ponteiro
Estado do Processo
typedef struct _control_block { struct control_block *next_pcb; enum state_type state; int pid; address PC; int reg_file[NumRegs]; int priority; address page_table; ... } control_block;
Nmero do Processo Program Counter Registradores Inf. Escalonamento Limites de Memria Inf. Estado de I/O Informaes Contbeis
Sistemas Operacionais
Sistemas Operacionais
Prioridade
Alguns objetivos podem ser atingidos incorporando a noo de prioridade numa metodologia de escalonamento bsica. Cada job da fila de processos prontos tem associado um valor de prioridade, que o favorece em relao aos processos de menor prioridade.
Prioridade Interna
Prioridade Interna : o sistema ajusta os valores de prioridade internamente por meio de uma tcnica de implementao incorporada ao escalonador. Melhora a igualdade, utilizao de recursos, diminui o perigo de starvation (ou inanio); Abaixa a prioridade de jobs consumindo mais que eles compartilham; Aumenta a prioridade de jobs que esto prendendo recursos que esto em falta: Ex.: primitiva do interna Unix sleep Incentiva jobs que estiveram em starvation num passado recente; Proporcionam um reajuste contnuo e dinmico em resposta s condies e eventos observados:
Sistemas Operacionais
Valores de prioridade externos : Impostos ao sistema pelo usurio, administrador, ou projetista; Refletem as preferncias externas para um particular usurio ou tasks: Todos os jobs so iguais, mas alguns jobs so mais iguais que outros. Exemplo: System Call nice do Unix, para diminuir a prioridade de uma task. Exemplo: Tasks urgentes de um sistema de controle em tempo real. Sistemas Operacionais
Pode ser visvel e controlvel por outras partes do sistema Gagne Silberschatz, Galvin, and
Preempo
As polticas do Scheduler podem ser preemptivas ou nopreemptivas. Preemptiva: o scheduler pode unilateralmente forar uma task a liberar o processador antes que a task bloqueie, suspenda, ou finalize. Timeslicing impede os jobs de monopolizarem a CPU Escalonador escolhe um job e o processa por um quantum do tempo de CPU. Um job executando por mais tempo que seu quantum forado a interromper seu processamento por meio de cdigo de tratamento de interrupo de relgio no scheduler. Utiliza-se preempo para honrar a prioridade Preempta um job se um outro de maior prioridade passar ao estado pronto
Silberschatz, Galvin, and Gagne
Escalonamento No-Preemptivo
Processo tem o controle da CPU ate que ele abandone-a voluntariamente Fila Prontos CPU
I/O
Fila de I/O
Filho Executa
Interrupo Ocorre
Sistemas Operacionais
Sistemas Operacionais
SO
Escalonamento Preemptivo
Processos podem ser forados a abandonar a CPU. Fila Prontos CPU
Conceitos Bsicos
Utilizao mxima da CPU obtida com multiprogramao; CPUI/O Burst Cycle Execuo do processo consiste de
um ciclo de: execuo de CPU e espera de E/S;
I/O
Fila de I/O
Solicitao de I/O
(Picos de CPU);
Interrupo Ocorre
Sistemas Operacionais
Novo
criao
interrupo
fim
Encerrado
Executando
A distribuio de surtos de CPU (CPU burst) exponencial. Tem-se uma enorme quantidade de surtos curtos e uns
Sistemas Operacionais
Sistemas Operacionais
SO
Escalonamento de CPU
Dispatcher - Despachador
Critrio de Otimizao
Minimizar turnaround time Minimizar Tempo de espera Minimizar Tempo de resposta Ou seja: A otimizao atingida com o
equilbrio dessas prioridades.
Sistemas Operacionais Silberschatz, Galvin, and Gagne
Sistemas Operacionais
Ex.: Processo P2
Gantt Chart Ferramenta de escalonamento visual ; Trata-se de um mtodo grfico ( um tipo de grfico de barras horizontal) baseado numa escala de tempo, mostrando o escalonamento ao longo do tempo das vrias atividades que compem uma tarefa; Mostra as dependncias entre atividades, pessoas e outros recursos na sua alocao; Possibilita o traceamento at a finalizao.
Silberschatz, Galvin, and Gagne
Tempo de Resposta
P1 0 24 P2 27 P3 30
Instante de submisso
Tempo De espera
Tempo de Turnaround
SO
Algoritmos de Escalonamento
Exemplo:
Processo P1 P2 P3
Burst Time 24 3 3
P1 24
P2 27
P3 30
P3 = 27
Tempo de espera para P1 = 6; P2 = 0 ; P3 = 3 Tempo de espera mdio: (6 + 0 + 3)/3 = 3 Muito melhor que o caso anterior. Efeito de conjunto: processo pequeno (em tempo de execuo)
aps um processo longo.
Silberschatz, Galvin, and Gagne Sistemas Operacionais Silberschatz, Galvin, and Gagne
Exemplo FCFS
Quando um processo entra na fila de processos prontos, seu PCB ligado ao final da fila; Quando a CPU liberada, ela alocada ao processo cujo PCB encontra-se no incio da fila;
Exemplo 2
Processo (Ordem) Burst Time Instante cheg. P3 3 0 P2 3 1 P1 20 2 P3 P2 0 3 6 P1 26
SO
P1 P2 P3 P4
6 8 7 3
Dois esquemas:
No-preemptivo uma vez que a CPU foi dada a um processo, ela no pode lhe ser tomada at que complete seu tempo de CPU. Preemptivo Se um novo processo chega e possui menor tempo de CPU que o restante de tempo do processo corrente, a CPU lhe tomada. Este esquema conhecido como Shortest-Remaining-Time-First (SRTF).
Processo P1 P2 P3 P4
Burst Time 7 4 1 4
SJF (no-preemptivo)
P1 0 3 7 P3 8 P2 12 P4 16
SJF (preemptivo) P1 0 2 P2 4 P3 5 P2 7 P4 11 P1 16
Sistemas Operacionais
SJF
P4 0 3
P1 9
P3 16
P2 24
SO
Exemplo de SRT
Processo (Ordem) Burst Time P1 8 0 P2 4 1 P3 9 2 P4 5 3
SJF
Ordem chegada
Utilizados em ambientes interativos Pode-se somente estimar o prximo tempo de CPU Pode ser feito usando o tempo anterior de CPU e
usando mdia exponencial atravs da estimativa: tn = tempo de CPU no n-simo ciclo de CPU
ordem P2 P3 P4 P1 0 8 P2 P4 12 17 P3 26
n+1 = valor estimado para o prximo ciclo de CPU , constante tal que 0 < Define-se: n+1 = tn + (1 - ) n
Sistemas Operacionais Silberschatz, Galvin, and Gagne
SRT ou Shortest-Remaining-Time-First
ordem P2 P3 P4 P1 P2 P4 P1 P3 0 5 10 17 26 P1 P2 P3 P4 Tempo mdio de espera = ((0+(101)) + (11) + (172) + (53)) / 4 = 6.5
Sistemas Operacionais Silberschatz, Galvin, and Gagne
<
Exemplo
=0
n+1 = n histrias recentes no contam (transitrias)
Para
Tempos ti surto
seguintes estimativas:
0 6 1 4 8 2 6 6 3 4 6 4 13 5 5 13 9 6 13 11 12 7 ...... ...... ......
=1
n+1 = tn S o ltimo CPU burst conta ( histrico irrelevante)
i 10 previso ti i
tempo efetivo de gasto de CPU no i-simo tempo tempo estimado de CPU no i-simo tempo
Silberschatz, Galvin, and Gagne
Sistemas Operacionais
Uma
prioridade (valor inteiro) associado a cada processo prioridade (menor inteiro prioridade maior). Preemptivo No-preemptivo prioridade definida pelo tempo de CPU
Prioridade
3 1 4 5 2 P3
16
10 1 2 1 5 P5
6
SJF um escalonamento por prioridade, onde a Problema Starvation (inanio) processos de baixa
prioridade podem nunca executar
P1
P4
18 19
SO
P1 . . . Pn
Entrada
Fila de Bloqueados
Sistemas Operacionais
time slice = 4
Processo (Ordem Proc.) Burst Time Instante P1 24 0 P2 3 0 P3 3 0
Exemplos RR
P1 P2 P3 P1 P1 P1 P1 P1 0 4 7 10 14 18 22 26 30 Tempo de espera mdio= (4 + 7 + (104)) / 3 = 5.66
Exemplo 2
P3 3 0
P2 3 0
P1 24 0
Sistemas Operacionais
SO
Outro Exemplo RR (q = 1)
Outro Exemplo RR e (q = 4)
P2 20 37
P3 57
P4 77
P1
P3 97 117
P4
P1
P3
P3
Sistemas Operacionais
Sistemas Operacionais
SO
RR - Turnaround x Quantum
Para q = 6, o turnaround mdio : (6 + 9 + 10 + 17) = 42/4 = 10.5 Para q=1, o turnaround mdio ser: (seja 1, 2, 3, 4 os processos P1, P2, P3 e P4, ento a seqncia de execuo ser) 1............................................................... 17 1 2 3 4 1 2 4 1 2 4 1 4 1 4 1 4 4 P3
Sistemas Operacionais
tempo
P2
P1
P4 (finalizao)
Silberschatz, Galvin, and Gagne
(3+9+15+17)/4 = 44/4 = 11
Trs Filas:
Q0 quantum de tempo de 8 milissegundos Q1 quantum de tempo de 16 milissegundos Q2 FCFS
Escalonamento:
Um novo job entra na fila Q0 que servida por FCFS. Quando este ganha a CPU, recebe 8 milissegundos. Se o job no terminar em 8 milissegundos, transferido para a fila Q1. Em Q1 o trabalho atendido novamente por FCFS e recebe 16 milissegundos adicionais. Se ele ainda no se completar, preemptado (perde a CPU) e transferido para a fila Q2.
Sistemas Operacionais Silberschatz, Galvin, and Gagne Sistemas Operacionais Silberschatz, Galvin, and Gagne
10
SO
Escalonamento em Tempo Real Sistemas de Tempo Real Forado exige que se complete uma
tarefa crtica em um intervalo de tempo garantido. Software especfico em hardware dedicado
Multiprocessamento assimtrico
A cada processador atribuda uma tarefa especfica; o processador principal (Mestre) escalona e aloca trabalho para processadores escravos. Muito comum em sistemas extremamente grandes.
Sistemas Operacionais Silberschatz, Galvin, and Gagne
Latncia do Dispatch
Considerando:
m eventos peridicos Cada evento i ocorre dentro de um perodo Pi e requer Ci segundos
P
i
Sistemas Operacionais Silberschatz, Galvin, and Gagne Sistemas Operacionais
Ci
1
Silberschatz, Galvin, and Gagne
11
SO
Escalonamento no UNIX
As Prioridades so recalculadas a cada segundo, ou seja os processos que no finalizaram ou foram bloqueados dentro desse tempo so preemptados; 160 nveis de prioridade divididos em 3 classes de prioridade. Um fator de ajuste utilizado para manter o processo dentro de sua classe; O kernel tradicional no preemptivo
Classe de Prioridade Valor Global 159 Real-time Seqncia de escalonamento primeiro
Escalonamento de Processos no Linux 2 algoritmos independentes de escalonamento de processos: time-sharing: baseado em prioridade Soft-real time: FCFS e RR somente processos no modo usurio podem ser pre-emptados.
. . . . . . . . . .
Kernel
100 99 60 59
Time-shared
Sistemas Operacionais
ltimo
Sistemas Operacionais
Escalonamento no Windows Escalonamento pre-emptivo baseado em Prioridade Uma thread ser processada at que seja pre-emptada por outra de
maior prioridade termina, tem seu quantum de tempo expirado, ou chama um system call que cause bloqueio.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Prioridade no Windows NT
Prioridade base
Prioridade do Processo
Sistemas Operacionais
Escalonamento de Threads
Programao do Solaris 2
Thread de usurio
Escalonamento Local Escalonamento via biblioteca de threads, que decide qual thread ir ser processado por um LWP disponvel. Escalonamento local aplicao. No existe mudana de contexto entre alternncia entre os threads de usurios. Alternncia tarefa da programao.
Thread de Kernel
Escalonamento Global O sistema decide qual thread ser o prximo a ganhar controle da CPU. Neste caso tarefa real do SO e existe uma mudana de contexto a ser realizada.
Sistemas Operacionais Silberschatz, Galvin, and Gagne Sistemas Operacionais Silberschatz, Galvin, and Gagne
12
SO
Sistemas Operacionais
Prioridades de Thread:
Prioridade Thread.MIN_PRIORITY Thread.MAX_PRIORITY Thread.NORM_PRIORITY Comentrio Prioridade mnima Prioridade mxima Prioridade padro
Avaliao (cont.)
Modelos de filas
- considera o sistema como um rede de servidores (CPU, Discos, impressoras, etc). Cada servidor possui uma fila associada. Conhecendo a razo de chegada e razo de atendimento, podemos computar a utilizao, tamanho mdio de fila, tempo de espera mdio, etc. de um servidor. n=xW
Frmula de Litle
onde n = tamanho mdio da fila (excluindo processo sendo servido = razo mdia de chegada na fila (i.e. 3 processos/segundo) W= tempo mdio de espera na fila
13
SO
Avaliao (cont.)
Simulao:
Representar as estruturas mais importantes do sistema, representar o relgio por uma varivel. Variao do relgio (varivel) faz o simulador modificar os estados do sistema para refletir as atividades dos dispositivos.
Silberschatz, Galvin, and Gagne Sistemas Operacionais Silberschatz, Galvin, and Gagne
Sistemas Operacionais
14