Fatec Jales - Centro Paula Souza - Governo de São Paulo

Faculdade de Tecnologia Professor José Camargo • Fatec Jales

Sistemas Operacionais • Prof. Me. Cristiano Martins

Escalonamento de Processos

André Nishi Ednildo Ferreira Vinícius Hirata
Pressione ↓ ou Espaço para avançar

Tópicos

Sequência evolutiva dos algoritmos de escalonamento clássicos

Etapa 01

3 Níveis

Como gerenciar o fluxo de jobs entre Disco, Memória RAM e CPU sem sobrecarregar o hardware.

Nível de Memória
Etapa 02

Alternância Circular

Justiça democrática nos sistemas interativos: preempção periódica e o dilema do Quantum.

Revezamento Igualitário
Etapa 03

Prioridades

Nem todo processo é igual: prioridades estáticas, dinâmicas (regra 1/f) e a prevenção da inanição.

Importância Relativa
Etapa 04

Filas Múltiplas

A solução do CTSS: classes de prioridade com quanta progressivos que reduzem trocas caras de disco.

Solução Prática Híbrida

Introdução ao Problema

Resumo do cenário: de onde viemos e por que a CPU precisa dessas estratégias

O Ponto de Partida (Sistemas em Lote)

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.

O problema: Sem preempção, um único processo CPU-bound pode monopolizar o processador e fazer todos os outros esperarem até que ele termine ou bloqueie.

O Desafio dos Sistemas Interativos

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.

A necessidade: Exige preempção mandatória, revezamento periódico e formas de reconhecer processos prioritários.

Cadeia de Evolução dos Algoritmos:

1. 3 Níveis: Filtra do disco para a RAM antes de chegar à CPU.
2. Round-Robin: Divide a CPU em fatias iguais de tempo.
3. Prioridades: Define a preferência de seleção dos processos prontos.
4. Filas Múltiplas: Otimiza as trocas caras de contexto.

1. Escalonamento em três níveis

Por que não carregar todos os jobs diretamente na memória RAM?

1. Escalonador de Admissão

Monitora a fila de entrada no disco. Decide quais jobs entram no sistema, dosando processos de cálculo e de E/S.

2. Escalonador de Memória

Controla quantos processos residem na RAM. Os excedentes vão para a área de troca (swap) no disco, evitando esgotar a memória.

3. Escalonador de CPU

Escolhe qual dos processos prontos na memória principal executará a seguir, sendo acionado nos eventos de escalonamento.

2. Alternância circular (round-robin)

A cada processo é concedido um intervalo contínuo de tempo chamado quantum

Como a alternância opera

  • O SO mantém uma fila circular FIFO de processos em estado de pronto.
  • Ao expirar o quantum, o relógio de hardware interrompe a CPU e move o processo para o fim da fila.
  • Se o processo solicitar E/S antes do fim do quantum, ele libera a CPU voluntariamente na hora.

O Dilema do Tamanho do Quantum

Muito curto (4 ms c/ 1 ms de troca)20% da CPU perdida em administração
Razoável (20 a 50 ms)Faixa considerada bastante razoável
Longo (ex.: 100 ms ou > surto médio)Preempção rara e resposta interativa pode piorar

Simulação Interativa Round-Robin

Acompanhe a contagem regressiva do quantum e a preempção visual na CPU

CPU NÚCLEO ÚNICO · QUANTUM: 20 ms · Animação ilustrativa em câmera lenta; duração das etapas sem escala proporcional
Preempção de Hardware

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.

Justiça Democrática

Nenhum processo sofre inanição. Na fila de N processos, cada um espera no máximo (N - 1) × Quantum (desconsiderando o custo das trocas).

Overhead de Contexto

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.

3. Escalonamento por prioridades

O processo executável com maior prioridade sempre receberá a CPU

Prioridade Estática vs Dinâmica

Estática: Atribuída na criação e imutável. Exemplo: processos de tempo real ou usuários com garantia de serviço contratada possuem prioridade rígida superior.
Dinâmica: O SO recalcula periodicamente para equilibrar uso de CPU e manter periféricos (disco, placa de rede) ocupados.

A Regra Dinâmica 1/f

Nesta estratégia, a prioridade é calculada por 1/f, sendo f a fração do último quantum utilizada pelo processo:

Processo de E/S: Usou 1 ms de 50 ms (f = 1/50) ➔ Prioridade sobe para 50! Ele roda rápido e já libera a CPU para acionar o disco.
Processo de CPU: Usou todos os 50 ms (f = 1) ➔ Prioridade cai para 1, impedindo que tarefas longas monopolizem a máquina.
Efeito da Regra 1/f: Nesse algoritmo, processos que usam uma pequena fração do quantum antes de bloquear por E/S recebem prioridade mais alta, mantendo periféricos e discos trabalhando em paralelo com a CPU.

3. Prioridades: Simulação & Inanição

Prioridades com conclusão/bloqueio e o risco de inanição nas classes inferiores

O Risco Crítico da Inanição (Morrer de Fome):

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.

4. Filas múltiplas

A solução do CTSS: união de prioridades com quanta exponenciais

O Desafio Histórico do CTSS (1962)

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).

A Solução Genial: Processos pesados que gastam muito tempo de CPU recebem fatias de tempo cada vez maiores. Assim, precisam de muito menos trocas custosas com o disco!

A Regra dos Quanta que Dobram

Ao esgotar seu quantum, o processo desce de nível e o tamanho do quantum dobra:

1 ➔ 2 ➔ 4 ➔ 8 ➔ 16 ➔ 32 ➔ 64 quanta

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 Truque do <Entra> (Anedota Histórica de Tanenbaum):

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."

4. Filas Múltiplas: Simulação Visual

Descida de classe com expansão do quantum · Representação esquemática; comprimentos e durações não estão em escala

Síntese Operacional da Estrutura Híbrida (Exemplo de 100 Quanta): O mecanismo favorece processos interativos nas filas superiores com bom tempo de resposta, enquanto processos pesados de computação descem para as classes inferiores e recebem fatias cada vez maiores (1, 2, 4, 8, 16, 32 e 64 quanta) — reduzindo de 100 para apenas 7 trocas de disco (incluindo a carga inicial, 93% menos trocas).

Conclusão e Síntese Comparativa

Como os 4 mecanismos articulam a gestão moderna de processos

1. 3 Níveis Sistemas em Lote

Mecanismo: Admissão (Disco) ➔ Memória (Swap) ➔ CPU.

Vantagem: Protege a memória RAM contra sobrecarga.

Objetivo: Busca controlar o grau de multiprogramação e reduzir trocas excessivas entre memória e disco.
2. Round-Robin Interativos

Mecanismo: Fila FIFO circular com quantum fixo (20–50 ms).

Vantagem: Distribuição justa e resposta rápida ao usuário.

Mitigação: Elimina o monopólio da CPU por tarefas longas.
3. Prioridades E/S & Tempo Real

Mecanismo: Classes com regra dinâmica 1/f e preempção.

Vantagem: Favorece periféricos (E/S) e processos críticos.

Mitigação: Evita inanição via reajuste periódico de prioridades (ex.: a cada tique de relógio).
4. Filas Múltiplas Sistemas Híbridos

Mecanismo: Filas descendentes com quanta que dobram.

Vantagem: Quanta maiores para CPU pesada, menos trocas de disco.

Mitigação: Reduz custo de troca de contexto no disco.
Conclusão Final: Não existe uma solução única para todos os cenários. Enquanto o escalonamento em três níveis protege a memória em sistemas em lote, o Round-Robin garante tempo de resposta ágil e as prioridades favorecem processos de E/S. O modelo de filas múltiplas consolida esses conceitos ao aplicar fatias curtas para processos interativos e fatias longas para tarefas de computação pesada, minimizando o custo das trocas de contexto.

Referência Bibliográfica

TANENBAUM, Andrew S.

Sistemas Operacionais Modernos. 2. ed. Pearson Prentice Hall.

Capítulo 2, Seção 2.5: Escalonamento de Processos (pp. 97–108).

Pergunta

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?

Obrigado!

Dúvidas ou considerações?

André Nishi Ednildo Ferreira Vinícius Hirata
Fatec Jales • Análise e Desenvolvimento de Sistemas • Sistemas Operacionais • Prof. Me. Cristiano Martins