Please enable JavaScript.
Coggle requires JavaScript to display documents.
ESCALONAMENTO DA CPU - Coggle Diagram
ESCALONAMENTO DA CPU
Conceitos Básicos
Sempre algum processo em execução
Ciclo de Picos CPU-E/S
Execução de um processo =
ciclo de execução + espera por
E/S
Escalonador de CPU
Decisões de escalonamento de CPU
2. Passa do estado executando para pronto
3. Passa de esperando para pronto
1. Passa do estado executando para esperando
4. Termina
Escalonamento preemptivo
potencial problema com acesso a dados compartilhados
Despachante
Controle da CPU ao processo selecionado pelo
escalonamento de curto prazo
troca para o modo usuário
salto para o local apropriado no programa do
usuário para reiniciar esse programa
troca de contexto
Latência de despacho
Critérios de Escalonamento
Tempo de Turnaround (tempo de retorno)
Minimizar
Tempo de Espera
Throughput (vazão)
Tempo de Resposta
Utilização de CPU
Maximizar
Algoritmos de Escalonamento
First Come, First Served (FCFS)
“Primeiro-a-Chegar, Primeiro-a-Ser-Atendido”
Algoritmo de baixa complexidade
Exemplo de abordagem não-preemptiva
O processo executa até que
Realiza uma chamada ao sistema
Termina a sua execução
Shortest Job First
“Menor-Job-Primeiro”
Dois esquemas
Preemptivo
Shortest Remaining Time First (SRTF)
Não preemptivo
Dificuldade principal
Saber a extensão da
próxima requisição de CPU
Escalonamento por Prioridade
Um número de prioridade (inteiro) é associado a cada processo
prioridade é o próximo tempo de burst de CPU previsto
Problema = Estagnação (starvation)
processos com baixa
prioridade podem nunca ser executados
Solução = Envelhecimento (aging)
à medida que o tempo
passa, aumenta a prioridade do processo
Round Robin (RR)
Algoritmo típico de sistemas operacionais de
tempo compartilhado
Cada processo recebe uma pequena unidade
de tempo de CPU
Depois que esse tempo tiver passado, o
processo é interrompido
acrescentado ao final da fila de prontos
Multilevel Queue (Fila Multinível)
Fila de pronto está particionada em duas filas separadas
Cada fila tem seu próprio algoritmo de escalonamento
O escalonamento precisa ser feito entre as filas
Fila Multinível com Feedback
Um processo pode mover entre as diversas filas
o envelhecimento pode ser implementado dessa forma
Escalonador de fila de feedback multinível definido pelos
Número de filas
Algoritmos de escalonamento para cada fila
Método usado para determinar quando fazer o upgrade de um processo
Método usado para determinar quando rebaixar um processo
Método usado para determinar em qual fila um processo entrará quando esse processo precisar de serviço
Escalonamento para
Multiprocessadores
Escalonamento de CPU mais complexa quando múltiplas CPUs estão
disponíveis
Com múltiplas CPUs é possível fazer o compartilhamento de carga
Abordagens
Multiprocessamento Assimétrico
Decisões são tratadas por um
processador único – o servidor mestre
Multiprocessamento Simétrico (SMP)
cada processador é auto-escalonado
Todas as threads podem estar em uma única fila de prontos
Cada processador pode ter sua própria fila de threads
Processadores Multicore
vários núcleos de processamento num
único chip
Balanceamento de carga
Tentar manter a carga de trabalho distribuída
uniformemente entre todos os processadores num sistema SMP
Migração pull
mutuamente exclusivos
Migração push
Afinidade de processador
Afinidade flexível/leve
sistema operacional tenta manter o
processo em um único processador
Afinidade rígida
permite que um processo especifique um
subconjunto de processadores em que ele pode ser executado
Escalonamento de thread
Threads em nível de kernel é que são
escalonadas pelo SO e não os processos
threads em nível de usuário são
gerenciadas pela biblioteca de threads
kernel não as conhece
precisam ser mapeadas a uma
thread no nível do kernel