O que é um Escalonador (Scheduler)?

O Escalonador (Scheduler) é o algoritmo interno de gerenciamento de um sistema operacional (ou RTOS) encarregado de alocar e distribuir o tempo de uso da CPU entre as diversas tarefas do sistema em execução de forma organizada.

O Escalonador no FreeRTOS do ESP32

Microcontroladores comuns executam códigos sequenciais rígidos. Para criar robôs que lêem sensores de distância, atualizam a tela e controlam motores em paralelo, sistemas avançados baseados no Módulo ESP32 NodeMCU usam o escalonador do FreeRTOS para:

  • Multitarefa Cooperativa e Preemptiva: O escalonador interrompe tarefas de baixa prioridade em andamento para processar comandos de alta prioridade imediatamente.
  • Time Slicing (Divisão de Tempo): Divide frações de milissegundos de clock para cada tarefa rodar, criando a ilusão de execução paralela simultânea de tarefas.
  • Bloqueio de Tarefa: Se uma tarefa está aguardando leituras de sensores (ex: vTaskDelay), o escalonador a suspende e roda outras atividades úteis, economizando tempo de processamento.

A correta definição de níveis de prioridade de tarefas evita problemas de concorrência e o travamento do microcontrolador por inanição (starvation).

Perguntas Frequentes (FAQ)

Qual a diferença funcional entre escalonamento cooperativo e preemptivo?
No cooperativo, a tarefa ativa deve ceder o processamento de forma voluntária. No preemptivo, o escalonador de hardware interrompe a tarefa de forma forçada a cada estouro de clock de gerenciamento.
Como o escalonador lida com tarefas de prioridades idênticas?
O escalonador distribui o tempo de CPU de forma alternada e equilibrada em fatias idênticas entre as tarefas do mesmo nível (modo Round-Robin).
Voltar para o blog