Escalonamento da CPU

É a base dos SO's multiprogramados

Scheduling é uma função fundamental do SO

Execução de um processo

Ciclo de execução + espera po E/S

O SO precisa manter a CPU ocupada ao máximo

Escalonador de CPU

Decisões quando o processo

Executando -> esperando

Executando -> pronto

Esperando -> pronto

Termina

Escalonamento não preemptivo (cooperativo)

Aloca a CPU a um processo pronto

Escalonamento preemptivo

Despachante

Da o controle da CPU ao processo selecionado

Troca de contexto

Troca para o modo usuário

Salto para o local apropriado no programa do usuário

Latência de despacho

Critérios do escalonamento

Utilização de CPU

Throughput

Turnaround time

Tempo de espera

Tempo de resposta

Maximizar

Minimizar

Algoritmos de escalonamento

First come, First served (FCFS)

Baixa complexidade

Abordagem não preemptiva

Termina sua execução -> Chamada de sistema

Favorece processos CPU-bound

Shortest Job First (SJF)

Privilegia processos pequenos

Dois esquemas

Não preemptivo

Preemptivo

Shortest Remaining Time First (SRTF)

Previsão é baseada em histórico

Escalonamento por prioridade

Cada processo tem um número de prioridade

CPU alocada ao processo com maior prioridade

Preemptivo

Não preemptivo

SJF é um escalonamento por prioridade

Estagnação

Envelhecimento

Round Robin (RR)

Algoritmo típico de SO's de tempo compartilhado

Processo preemptado

q grande, q pequeno

Multilevel Queue (Fila multinível)

Primeiro plano

Segundo plano (batch)

Algoritmo RR

Algoritmo FCFS

Escalonamento entre filas

Fila multinível com Feedback

Um processo pode mover entre diversas filas

Número de filas

Algoritmos para cada fila

Três filas -> Q0, Q1, Q2

RR, FCFS

Compartilhamento de carga

Multiprocessador

Processadores multicore

Núcleos multithread

Sistemas NUMA

Multiprocessamento heterogêneo

Processadores ARM

Processadores Ryzen e Core

Multiprocessamento Assimétrico

Multiprocessamento Simétrico (SMP)

Balanceamento de carga

Afinidade de processador

Push

Pull

Windows

Escalonamento de thread

Escalonamento baseado em prioridade

Esquema de prioridade: 32 níveis

Classe variável

Classe de tempo real

Prioridade 0: Gerenciador de memória

Mapa Mental 5

Aluna: Isabella Sampaio

Matrícula: 20211BSI0208

Matéria: SO 2022/2