Академический Документы
Профессиональный Документы
Культура Документы
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
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
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
Processo P1 P2 P3
Tempo de Burst 24 3 3
P3 30
10
P2 0
P3 3 6
P1 30
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
SJF no-preemptivo:
P1 0 3 7 P3 8 P2 12 P4 16
13
SJF preemptivo:
P1 0 2 P2 4 P3 5 P2 7 P4 11 P1 16
14
15
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
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
O Grfico de Gantt :
P1 0 20 P2 37 P3 57 P4 P1 77 P3 97 117 P4 P1 P3 P3
Normalmente, maior turnaround mdio que SJF, porm com resposta melhor
18
19
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).
Possibilidade de estagnao.
21
Fatia de tempo cada fila recebe uma certa quantidade de tempo de CPU, que ela pode escalonar entre seus processos
22
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
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
25
26
27
28
Escalonamento do Solaris
29
30
Prioridades do Windows XP
31
Escalonamento no Linux
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
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()
33
34
35
36