O que é um Escalonador (Scheduler)?
Share
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).