Pular para o conteúdo
Notícias e tutoriais sobre Linux
Kernel Linux

Linux se despede de otimizações específicas para sistemas com apenas um núcleo de CPU

Kernel Linux adota agendador único para todos os sistemas!

Arte conceitual sobre o scheduler SMP no desenvolvimento do Linux

O renomado desenvolvedor Ingo Molnar propôs uma ampla reformulação no agendador do kernel Linux. A mudança histórica elimina boa parte das diferenciações entre kernels configurados para um único núcleo de CPU (UP – Uniprocessor) e aqueles com suporte a múltiplos núcleos (SMP – Symmetric Multi-Processing), padronizando o uso do agendador SMP mesmo para sistemas UP. O resultado: uma base de código significativamente mais simples, robusta e moderna.

Fim de uma era: o agendador SMP será o padrão para todos

Durante décadas, o kernel Linux manteve caminhos de código separados para sistemas UP e SMP, utilizando inúmeros blocos condicionais #ifdef CONFIG_SMP. Segundo o próprio Molnar, eram mais de 175 blocos só no agendador, gerando complexidade, erros de compilação e dificuldade de manutenção.

Com a nova proposta, todos os sistemas, mesmo os com um único núcleo, passarão a utilizar o código do agendador SMP. Essa unificação reduz significativamente o número de blocos condicionais para apenas 28.

“Esses blocos de código tornam o agendador mais difícil de revisar e entender”, explica Molnar. “Quase todas as plataformas modernas já utilizam SMP — mesmo em dispositivos embarcados.”

Para Iniciantes: O que é o agendador (scheduler) do Linux?

Pense no agendador como o “gerente de tarefas” do seu processador. Ele decide qual programa (ou “processo”) vai usar a CPU a cada milissegundo. Antigamente, havia dois tipos: um específico para sistemas com um núcleo (UP) e outro para sistemas com múltiplos núcleos (SMP). Agora, o Linux adotará apenas o modelo SMP, mesmo para máquinas com um único núcleo. Isso torna o kernel mais simples e moderno, sem impactar negativamente os usuários comuns.

Redução massiva de código e simplificação do desenvolvimento

A mudança resulta em uma grande limpeza no código-fonte do kernel:

  • Antes: 175 blocos #ifdef CONFIG_SMP
  • Depois: apenas 28
MétricaAntesDepoisDiferença
.text28.816.07028.904.324+0,3%
.data7.720.1747.735.982+0,2%
.bss1.837.3281.817.876-0,1%

A métrica de impacto é impressionante:

  • 33 arquivos modificados
  • 237 inserções
  • 999 deleções

Após ajustes adicionais, os números foram ainda mais impactantes:

  • 24 arquivos modificados
  • 26 inserções
  • 789 deleções

Ou seja, o código do agendador se tornou consideravelmente mais enxuto e mais fácil de manter — algo essencial para a saúde do projeto a longo prazo.

Impactos nos sistemas UP: mínimo, mas presente

Embora a padronização torne o kernel mais robusto, ela traz um leve impacto de desempenho e tamanho para sistemas com apenas um núcleo:

  • Benchmark perf bench sched pipe:
    • Antes: 2.55022 ± 0.00308 segundos
    • Depois: 2.68700 ± 0.01600 segundos
  • Tamanho do kernel (vmlinux):
    • Antes: 38.373.572 bytes
    • Depois: 38.458.182 bytes
    • Aumento: +0.3% no segmento de texto e +0.2% nos dados

Molnar justifica: “Prefiro inflar um pouco o kernel para sistemas UP do que quebrar algo. E quem quiser otimizações adicionais pode propor melhorias pontuais com base na nova estrutura.”

Mais robustez e menos dívida técnica

A reformulação do agendador é um marco importante na evolução do kernel Linux. Além de simplificar a base de código, a mudança reduz riscos de regressões, facilita revisões futuras e elimina complexidades desnecessárias que só persistiam por legado.

O repositório com os patches pode ser conferido neste link.

QUEM ESCREVE
Emanuel Negromonte

Sobre o autor

Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.