Please enable JavaScript.
Coggle requires JavaScript to display documents.
Escalonamento (Scheduling) da CPU, Lucas Codeco Mapa Mental 4SO 2023/1 -…
Escalonamento (Scheduling) da CPU
Critérios de Escalonamento
Maximizar
Utilização de CPU
Mantenha a CPU tão ocupada quanto possível
uso da CPU fica entre 40 e 90%
Throughput (vazão)
Número de processos que completam sua execução por unidade de tempo.
Minimizar
Tempo de Espera
Tempo em que um processo esteve esperando na fila de prontos
Tempo de Resposta
Tempo de quando uma solicitação foi submetida até a primeira reposta ser produzida
Tempo de Turnaround (tempo de retorno)
Quantidade de tempo para executar um processo em particular.
tempo transcorrido da submissão do processo até a sua conclusão
tempo total
Conceitos basicos
Não Preemptivo
processo libera a CPU por decisão do SO
Nas fases:
executando -> esperando
Termina
Ex.:
macOS antes da versão 10 Windows 3.1
Preemptivo
decisão de largar a CPU foi do processo
Nas fases:
executando -> pronto
esperando-> pronto
Ex.:
Unix e Linux
Windows 95 e posteriores
macOS
potencial problema
com acesso a dados compartilhados
Despachante
dá o 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
tempo para que o despachante termine um processo e inicie outro em execução
Algoritimos de Escalonamento
Por prioridade
Nmr de prioridade atribuido
(SJF é um escalonamento por prioridade onde a prioridade é o próximo tempo de burst de CPU previsto)
CPU alocada para o job com maior prioridade
Menor int = maior prioridade
Preemptivo
(COMO SJF)
Não Preemptivo
Stardavation (estagnação): – processos com baixa
prioridade podem nunca ser executados
Aging (Envelhecimento): à medida que o tempo
passa, aumenta a prioridade do processo
Round-Robin (RR)
Cada processo recebe uma pequena unidade de tempo de CPU (quantum de tempo)
Depois que esse tempo tiver passado, o processo é interrompido (“preemptado”) e acrescentado ao final da fila de prontos.
normalmente 10-100 milissegundos.
típico de sistemas operacionais de
tempo compartilhado.
Shortest Job First (SJF)
“Menor-Job-Primeiro”
Menores na frente
Associa a cada processo a extensão de seu próximo burst de CPU e escalona os processos pelo menor tempo.
Privilegiando processos pequenos o tempo
médio de espera diminui
dois esquemas:
não preemptivo
uma vez a CPU dada ao processo, ele não 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 execução, apropria.
ShortestRemaining Time First (SRTF).
Multilevel Queue (Fila Multinível)
Fila de pronto particionada em 2 filas separadas:
primeiro plano (interativo)
RR
segundo plano (batch)
FCFS
O escalonamento precisa ser feito entre as filas
Escalonamento com prioridade fixa
Serve tudo em primeiro plano, depois em segundo plano.
Possibilidade de estagnação
Fatia de tempo
cada fila recebe uma certa quantidade de tempo de CPU, que ela pode escalonar entre seus processos
isto é, 80% para primeiro plano no RR, 20% para segundo plano no FCFS
First Come, First Served (FCFS)
“Primeiro-a-Chegar, Primeiro-a-Ser-Atendido”
ordem de chegada
O processo executa até que:
Realiza uma chamada ao sistema
Termina a sua execução
baixa complexidade
não preemptivo
Favorece processos CPU-bound
Multilevel Feedback-Queue (Fila Multinível com
Feedback)
Um processo pode mover entre as diversas filas
o envelhecimento pode ser implementado dessa forma
Escalonador definido pelos seguintes parâmetros:
Número de filas
Algoritmos de escalonamento para cada fila
Método usado para determinar em qual fila um processo entrará quando esse processo precisar de serviço
Método usado para determinar quando fazer o upgrade de um processo
Método usado para determinar quando rebaixar um processo
Escalonamento para Multiprocessadores
Escalonamento de CPU mais complexa quando múltiplas CPUs estão
disponíveis.
multiprocessador pode se aplicar a:
Núcleos Multithread
Sistemas NUMA
Processadores Multicore
Multiprocessamento Heterogêneo
Cada processador pode ter sua própria fila de threads
Todas as threads podem estar em uma única fila de prontos (comum ao sistema)
Afinidade de Processador
Problema: inconsistencia de cache qunado umathread ou processo migra de CPU (exemplo)
Tipos:
Afinidade rígida:
permite que um processo especifique um subconjunto de processadores em que ele pode ser executado
Afinidade flexível/leve:
SO tenta manter o processo em um único processador, mas é possível que um processo migre entre processadores
Balanceamento de Carga
Objetivo: Tentar manter a carga de trabalho distribuída uniformemente entre todos os processadores num sistema SMP.
Necessária apenas quando cada processador tem sua própria fila de processos elegíveis.
Tipos:
Migração pull:
Processador ocioso puxa uma tarefa
esperando de um processador ocupado.
Migração push:
Uma tarefa específica verifica periodicamente a carga de cada processador e eventualmente redistribui a carga
Escalonamento de Thread
Apenas Threads de kernel são escalonadas
Threads nivel usuario são gerenciadas pelas bibliotecas e o kernel nao as conhece
Para executar numa CPU, as threads no nível de usuário precisam ser mapeadas a uma thread no nível do kernel, utilizando um LWP
Com múltiplas CPUs é possível fazer o compartilhamento de carga.
Multiprocessamento Simétrico
Um ou mais processadores tomam as decisões de escalonamento, processamento, decisões de E/S e distribuem as tarefas para os outros processadores que executam o codigo do usuário.
(Mestre - Escravo)
Multiprocessamento Assimétrico
Cada processador é auto-escalonado.
Existe um escalonador por processador (hierarquicamente equivalentes)
Arquitetura Heterogenea
Arquitetura Homogenea
como vários núcleos de CPU iguais, de mesma arquitetura/conjunto de instruções
Multiprocessamento Homogeneo
Multiprocessamento Heterogeneo
núcleos diferenciados visando maior eficiência energética (nucleos de eficiencia e desempenho).
Núcleos Identicos
Núcleos diferenciados, especializados em determinadas tarefas e que possuem, com isso, conjuntos de instruções diferenciadas
Lucas Codeco Mapa Mental 4SO 2023/1