Faculdade de Tecnologia Professor José Camargo • Fatec Jales
Sequência evolutiva dos algoritmos de escalonamento clássicos
Como gerenciar o fluxo de jobs entre Disco, Memória RAM e CPU sem sobrecarregar o hardware.
Justiça democrática nos sistemas interativos: preempção periódica e o dilema do Quantum.
Nem todo processo é igual: prioridades estáticas, dinâmicas (regra 1/f) e a prevenção da inanição.
A solução do CTSS: classes de prioridade com quanta progressivos que reduzem trocas caras de disco.
Resumo do cenário: de onde viemos e por que a CPU precisa dessas estratégias
Em sistemas em lote (como FCFS e SJF), não há usuários interativos impacientes; destacam-se três métricas: vazão, tempo de retorno e utilização da CPU.
Com múltiplos usuários no teclado e processos com janelas na tela, o foco muda para o tempo de resposta. Nenhum processo pode monopolizar a CPU.
Por que não carregar todos os jobs diretamente na memória RAM?
Monitora a fila de entrada no disco. Decide quais jobs entram no sistema, dosando processos de cálculo e de E/S.
Controla quantos processos residem na RAM. Os excedentes vão para a área de troca (swap) no disco, evitando esgotar a memória.
Escolhe qual dos processos prontos na memória principal executará a seguir, sendo acionado nos eventos de escalonamento.
A cada processo é concedido um intervalo contínuo de tempo chamado quantum
Acompanhe a contagem regressiva do quantum e a preempção visual na CPU
O timer de interrupção dispara a cada 20 ms, forçando a devolução do controle ao SO sem depender de cooperação do processo.
Nenhum processo sofre inanição. Na fila de N processos, cada um espera no máximo (N - 1) × Quantum (desconsiderando o custo das trocas).
Neste exemplo, considera-se uma troca de contexto de 1 ms, incluindo o salvamento dos registradores, a troca do mapa de memória e a recarga da cache.
O processo executável com maior prioridade sempre receberá a CPU
Nesta estratégia, a prioridade é calculada por 1/f, sendo f a fração do último quantum utilizada pelo processo:
f = 1/50) ➔ Prioridade sobe para 50! Ele roda rápido e já libera a CPU para acionar o disco.
f = 1) ➔ Prioridade cai para 1, impedindo que tarefas longas monopolizem a máquina.
Prioridades com conclusão/bloqueio e o risco de inanição nas classes inferiores
Se houver fluxo constante de processos de alta prioridade, os de baixa prioridade morrerão de fome. Solução clássica descrita por Tanenbaum: reduzir a prioridade do processo em execução a cada tique de relógio e reajustar periodicamente as classes de prioridade, garantindo que todos os processos recebam a CPU.
A solução do CTSS: união de prioridades com quanta exponenciais
O computador IBM 7094 só comportava um processo na memória RAM por vez. Toda alternância exigia salvar o processo atual no disco e carregar o próximo do disco (operação mecânica lenta).
Ao esgotar seu quantum, o processo desce de nível e o tamanho do quantum dobra:
Um processo de 100 quanta precisa de apenas 7 trocas de disco (incluindo a carga inicial) em vez das 100 trocas de um algoritmo puramente circular!
O CTSS movia o processo para a classe de prioridade mais alta sempre que era digitado um <Entra> no terminal. Certo dia, um usuário com um processo pesadamente orientado à CPU descobriu que digitar <Entra> de maneira aleatória a intervalos de poucos segundos melhorava muito seu tempo de resposta — e contou isso para todos os seus amigos! "Conseguir acertar na prática é muito mais difícil que acertar na teoria."
Descida de classe com expansão do quantum · Representação esquemática; comprimentos e durações não estão em escala
Como os 4 mecanismos articulam a gestão moderna de processos
Mecanismo: Admissão (Disco) ➔ Memória (Swap) ➔ CPU.
Vantagem: Protege a memória RAM contra sobrecarga.
Mecanismo: Fila FIFO circular com quantum fixo (20–50 ms).
Vantagem: Distribuição justa e resposta rápida ao usuário.
Mecanismo: Classes com regra dinâmica 1/f e preempção.
Vantagem: Favorece periféricos (E/S) e processos críticos.
Mecanismo: Filas descendentes com quanta que dobram.
Vantagem: Quanta maiores para CPU pesada, menos trocas de disco.
TANENBAUM, Andrew S.
Sistemas Operacionais Modernos. 2. ed. Pearson Prentice Hall.
Capítulo 2, Seção 2.5: Escalonamento de Processos (pp. 97–108).
No escalonamento por filas múltiplas, qual é a justificativa técnica para atribuir fatias de tempo (quantum) curtas nas filas de alta prioridade e fatias progressivamente maiores nas filas inferiores?
Dúvidas ou considerações?