UNIVERSIDADE FEDERAL DO CEARÁ
Curso de Engenharia de Computação / Ciência da Computação
Disciplina: Sistemas de Tempo Real (STR)
FreeRTOS
Um Sistema Operacional de Tempo Real para Sistemas
Embarcados e IoT
Equipe:
Mateus Andrade Maia
Prof. Edilson Filho
Fortaleza – CE
Julho de 2026
Sumário
1 Introdução 1
2 Fundamentos de Sistemas de Tempo Real 1
2.1 Tempo real hard e soft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2 Determinismo, latência e jitter . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 WCET e análise de escalonabilidade . . . . . . . . . . . . . . . . . . . . . . 2
3 Visão Geral do FreeRTOS 2
3.1 Características principais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 Versionamento e suporte de longo prazo (LTS) . . . . . . . . . . . . . . . . 3
4 Arquitetura e Componentes do Núcleo 3
4.1 Tarefas e o bloco de controle de tarefa (TCB) . . . . . . . . . . . . . . . . 3
4.2 Estados de uma tarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5 Escalonamento de Tarefas 4
5.1 Prioridade e preempção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.2 Fatiamento de tempo e o tick . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.3 Troca de contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6 Comunicação e Sincronização entre Tarefas 5
6.1 Filas (queues) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6.2 Semáforos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.3 Mutexes e inversão de prioridade . . . . . . . . . . . . . . . . . . . . . . . 6
7 Gerência de Memória 6
8 Multiprocessamento Simétrico (SMP) e Portabilidade 7
9 Aplicações no Mercado e Estudo de Caso 7
9.1 Setores de aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
9.2 Estudo de caso: ESP32 e o ecossistema IoT . . . . . . . . . . . . . . . . . 8
10 Exemplo Prático de Código 8
11 Conclusão 10
FreeRTOS Sistemas de Tempo Real
1 Introdução
Sistemas embarcados estão presentes em praticamente todos os aspectos da vida
moderna: automóveis, eletrodomésticos, dispositivos médicos, equipamentos industriais
e a crescente rede de dispositivos da Internet of Things (IoT). Muitos desses sistemas
precisam responder a eventos do mundo físico dentro de prazos temporais rígidos, ou seja,
não basta produzir um resultado logicamente correto: esse resultado deve estar disponível
no tempo certo. Essa é a definição essencial de um Sistema de Tempo Real (STR): um
sistema cujo comportamento correto depende não apenas do valor lógico da computação,
mas também do instante em que esse valor é produzido [1].
Para atender a esses requisitos temporais em hardware com recursos limitados (memória
de poucos kilobytes, processadores de baixo consumo e, muitas vezes, ausência de unidade
de gerenciamento de memória), utiliza-se um Sistema Operacional de Tempo Real
(RTOS, do inglês Real-Time Operating System). Diferente de um sistema operacional de
propósito geral, como Linux ou Windows, cujo objetivo principal é maximizar o throughput
médio, um RTOS prioriza a previsibilidade e o determinismo: a garantia de que uma
tarefa crítica será executada dentro de seu prazo, independentemente da carga do sistema.
Este trabalho tem como objetivo apresentar, de forma aprofundada, o FreeRTOS,
atualmente o RTOS de código aberto mais amplamente adotado no mercado de micro-
controladores [2, 16]. Serão abordados seus fundamentos conceituais, sua arquitetura
interna, o algoritmo de escalonamento, os mecanismos de comunicação e sincronização
entre tarefas, a gerência de memória, o suporte a multiprocessamento simétrico (SMP) e,
por fim, aplicações reais no mercado, incluindo um exemplo prático de código. A escolha
do FreeRTOS justifica-se por sua relevância industrial, seu licenciamento aberto (MIT),
sua manutenção pela Amazon Web Services e por ser citado nas orientações da disciplina
como exemplo de RTOS de mercado.
2 Fundamentos de Sistemas de Tempo Real
Antes de estudar o FreeRTOS em si, é necessário revisar os conceitos que sustentam
qualquer RTOS. Esses conceitos, discutidos em profundidade por Kopetz [1], definem os
requisitos que o sistema operacional precisa satisfazer.
2.1 Tempo real hard e soft
A distinção mais fundamental refere-se à severidade da consequência de se perder um
prazo (deadline):
• Tempo real crítico (hard real-time): a perda de um prazo constitui uma falha
total do sistema, podendo ter consequências catastróficas. Exemplos incluem o
1
FreeRTOS Sistemas de Tempo Real
sistema de acionamento de airbag, o controle de voo de uma aeronave e o freio ABS
de um veículo. Nesses casos, o determinismo é inegociável.
• Tempo real brando (soft real-time): a perda ocasional de um prazo degrada a
qualidade do serviço, mas não causa falha catastrófica. Exemplos incluem streaming
de vídeo e atualização de uma interface gráfica, onde um atraso é indesejável, porém
tolerável.
2.2 Determinismo, latência e jitter
O determinismo é a propriedade de o sistema produzir sempre a mesma resposta
temporal para o mesmo estímulo. Três métricas quantificam essa característica: a latência
de interrupção, que é o tempo entre a ocorrência de um evento (interrupção) e o início
do seu tratamento; a latência de escalonamento, tempo entre uma tarefa tornar-se apta
e efetivamente começar a executar; e o jitter, que é a variação (desvio) desses tempos
entre execuções sucessivas. Um bom RTOS busca minimizar essas latências e, sobretudo,
mantê-las limitadas (bounded), pois em tempo real a previsibilidade do pior caso importa
mais do que o desempenho médio.
2.3 WCET e análise de escalonabilidade
Um conceito central é o WCET (Worst-Case Execution Time), ou tempo de execução
de pior caso de uma tarefa. Conhecer o WCET de cada tarefa permite realizar uma
análise de escalonabilidade, que verifica matematicamente se um conjunto de tarefas
periódicas conseguirá cumprir todos os seus prazos. Algoritmos clássicos de atribuição de
prioridade, como o Rate Monotonic (prioridade proporcional à frequência da tarefa) e o
Earliest Deadline First (prioridade para a tarefa de prazo mais próximo), fornecem a base
teórica que o escalonador de um RTOS implementa na prática.
3 Visão Geral do FreeRTOS
O FreeRTOS é um núcleo (kernel) de sistema operacional de tempo real projetado
para microcontroladores e microprocessadores de pequeno porte. Foi criado em 2003 por
Richard Barry e, ao longo de duas décadas, tornou-se um padrão de fato no mercado
embarcado. Em 2017, a Amazon Web Services (AWS) assumiu a administração do projeto,
mantendo-o como software livre sob a permissiva licença MIT e passando a oferecer
versões com suporte de longo prazo [3, 17].
3.1 Características principais
O FreeRTOS destaca-se pelos seguintes atributos:
2
FreeRTOS Sistemas de Tempo Real
• Núcleo minimalista e portável: o cerne do escalonador é escrito em linguagem C,
com pequenas porções em Assembly específicas de cada arquitetura. O código-fonte
principal resume-se a poucos arquivos (tasks.c, queue.c, list.c), o que resulta
em uma pegada de memória (footprint) de apenas alguns kilobytes de ROM.
• Ampla portabilidade: há ports oficiais para mais de 40 arquiteturas de microcon-
troladores, incluindo ARM Cortex-M, RISC-V, Xtensa (ESP32), AVR e PIC.
• Código aberto e gratuito: a licença MIT permite uso comercial sem royalties e
sem obrigatoriedade de abertura do código do produto final.
• Ecossistema robusto: bibliotecas para conectividade (TCP/IP, MQTT, TLS)
integradas ao ecossistema de IoT da AWS, além de variantes com certificação de
segurança, como o SafeRTOS.
3.2 Versionamento e suporte de longo prazo (LTS)
A partir da administração pela AWS, o FreeRTOS passou a adotar um esquema de
versionamento por data e a oferecer versões LTS (Long Term Support), que garantem
correções de segurança e de erros críticos por dois anos. A versão FreeRTOS 202604
LTS, lançada em abril de 2026, incorpora o FreeRTOS Kernel v11, com suporte a
multiprocessamento simétrico (SMP), fortalecimento de segurança, ampliação do suporte
à Memory Protection Unit (MPU) e suporte ao protocolo MQTT v5.0 [4, 5]. Esse
compromisso com estabilidade e segurança de longo prazo é decisivo para fabricantes de
dispositivos IoT que precisam manter produtos em campo por muitos anos.
4 Arquitetura e Componentes do Núcleo
A arquitetura do FreeRTOS organiza-se em torno de três abstrações fundamentais: a
tarefa (task), o escalonador (scheduler) e os objetos de comunicação (filas, semáforos
e mutexes). Todo o comportamento do sistema pode ser configurado por meio de um
único arquivo de cabeçalho, o FreeRTOSConfig.h.
4.1 Tarefas e o bloco de controle de tarefa (TCB)
No FreeRTOS, a unidade básica de execução é a tarefa, implementada como uma
função C que, tipicamente, executa dentro de um laço infinito. Cada tarefa é independente,
possui sua própria pilha (stack) e um nível de prioridade. Internamente, o núcleo representa
cada tarefa por meio de uma estrutura chamada TCB (Task Control Block), que armazena
o ponteiro para o topo da pilha, a prioridade, o estado atual e os nós de lista usados para
3
FreeRTOS Sistemas de Tempo Real
inserir a tarefa nas listas do escalonador. O ponteiro global pxCurrentTCB sempre aponta
para a tarefa em execução [10, 9].
4.2 Estados de uma tarefa
Uma tarefa pode assumir quatro estados, ilustrados na Figura 1:
• Em execução (Running): a tarefa está efetivamente usando o processador. Em
um núcleo único, apenas uma tarefa ocupa esse estado por vez.
• Apta (Ready): a tarefa está pronta para executar, mas aguarda porque outra de
prioridade igual ou superior está em execução.
• Bloqueada (Blocked): a tarefa aguarda um evento temporal (um delay) ou de
sincronização (a chegada de dados em uma fila, a liberação de um semáforo). Uma
tarefa bloqueada não consome tempo de CPU.
• Suspensa (Suspended): a tarefa foi removida explicitamente do escalonamento
por chamadas vTaskSuspend() e só retorna com vTaskResume().
Apta
(Ready)
preemptada escalonada
evento ocorre
evento/delay
Em execução Bloqueada
vTaskResume()
(Running) (Blocked)
vTaskSuspend()
Suspensa
(Suspended)
Figura 1: Diagrama de estados de uma tarefa no FreeRTOS.
5 Escalonamento de Tarefas
O escalonador é o coração de qualquer RTOS. No FreeRTOS, a política padrão é
o escalonamento preemptivo baseado em prioridade fixa com fatiamento de
tempo (fixed-priority preemptive scheduling with time slicing) [6, 11].
4
FreeRTOS Sistemas de Tempo Real
5.1 Prioridade e preempção
A cada tarefa atribui-se um número inteiro de prioridade (de 0, a mais baixa, até
configMAX_PRIORITIES-1). A regra de ouro do escalonador é simples e determinística:
o processador é sempre entregue à tarefa apta de maior prioridade. Se uma tarefa de
alta prioridade estava bloqueada e o evento que aguardava ocorre, ela imediatamente
preempta (interrompe) qualquer tarefa de prioridade inferior que estivesse em execução.
Esse comportamento garante que eventos críticos sejam atendidos com baixa latência,
atendendo aos requisitos de tempo real.
5.2 Fatiamento de tempo e o tick
Quando duas ou mais tarefas compartilham a mesma prioridade, o FreeRTOS aplica
um fatiamento de tempo (time slicing) do tipo round-robin, alternando a execução
entre elas. A base temporal do sistema é o tick, uma interrupção periódica gerada por um
temporizador de hardware, cuja frequência é definida pela constante configTICK_RATE_HZ
(por exemplo, 1000 Hz para um tick de 1 ms). A cada tick, o núcleo atualiza os tempo-
rizadores das tarefas bloqueadas por delay, verifica se alguma deve ser desbloqueada e,
se houver tarefas de mesma prioridade aptas, realiza a troca de contexto. A escolha da
frequência do tick envolve um compromisso: valores altos aumentam a resolução temporal,
mas também a sobrecarga (overhead) do escalonador.
5.3 Troca de contexto
A troca de contexto (context switch) é o mecanismo pelo qual o processador deixa de
executar uma tarefa e passa a executar outra. Consiste em salvar o contexto (registradores,
ponteiro de pilha) da tarefa que sai e restaurar o contexto da que entra. Essa rotina
é escrita em Assembly, otimizada para cada arquitetura, justamente para minimizar a
latência e o jitter do sistema.
6 Comunicação e Sincronização entre Tarefas
Como as tarefas são independentes, o FreeRTOS oferece objetos de núcleo para que
elas troquem dados e coordenem o acesso a recursos compartilhados de forma segura [12].
6.1 Filas (queues)
A fila é o mecanismo primário de comunicação. Trata-se de um buffer FIFO (First In,
First Out) por meio do qual uma tarefa pode enviar mensagens que outra tarefa lê. As
filas são seguras para acesso concorrente (thread-safe): o núcleo gerencia internamente
a exclusão mútua. Uma tarefa que tenta ler de uma fila vazia pode ser automaticamente
5
FreeRTOS Sistemas de Tempo Real
bloqueada até que um dado chegue, liberando a CPU nesse ínterim — comportamento
essencial para a eficiência energética de dispositivos IoT.
6.2 Semáforos
Os semáforos servem para sinalização e sincronização. O semáforo binário funciona
como um sinalizador de evento, muito usado para sincronizar uma tarefa com uma
interrupção (padrão deferred interrupt processing): a rotina de tratamento de interrupção
(ISR) libera o semáforo e uma tarefa dedicada, que estava bloqueada nele, acorda para
processar o evento fora do contexto da ISR. O semáforo contador generaliza essa ideia
para contabilizar múltiplos eventos ou gerenciar um conjunto de recursos idênticos.
6.3 Mutexes e inversão de prioridade
O mutex (mutual exclusion) é um tipo especial de semáforo binário usado para
proteger um recurso compartilhado (uma região crítica), garantindo que apenas uma tarefa
o acesse por vez. Sua principal diferença é a implementação de herança de prioridade
(priority inheritance), um mecanismo que mitiga o clássico problema da inversão de
prioridade. Esse problema ocorre quando uma tarefa de alta prioridade fica bloqueada
aguardando um recurso detido por uma tarefa de baixa prioridade que, por sua vez, é
preemptada por tarefas de prioridade média, adiando indefinidamente a tarefa crítica.
Com a herança de prioridade, a tarefa de baixa prioridade que detém o mutex tem sua
prioridade temporariamente elevada à da tarefa mais prioritária que a aguarda, garantindo
que libere o recurso rapidamente.
7 Gerência de Memória
Em sistemas embarcados, a alocação dinâmica de memória exige cuidado especial, pois
a fragmentação do heap e a imprevisibilidade do tempo de alocação podem comprometer
o determinismo. Por isso, o FreeRTOS oferece cinco esquemas de gerência de memória
(heap_1 a heap_5), permitindo ao desenvolvedor escolher aquele mais adequado à sua
aplicação:
• heap_1: o mais simples; apenas aloca, nunca libera. Ideal para sistemas que criam
todas as tarefas na inicialização e nunca as destroem. Totalmente determinístico.
• heap_2: permite liberar memória, mas não coalesce blocos adjacentes (sujeito a
fragmentação); hoje considerado obsoleto.
• heap_3: um invólucro (wrapper) thread-safe para as funções padrão malloc() e
free() da biblioteca C.
6
FreeRTOS Sistemas de Tempo Real
• heap_4: permite liberar memória e realiza a coalescência de blocos livres adjacentes,
reduzindo a fragmentação. É a opção mais usada em aplicações gerais.
• heap_5: como o heap_4, porém gerencia o heap espalhado por regiões de memória
não contíguas.
Alternativamente, o FreeRTOS permite a alocação estática de todos os objetos
do núcleo (tarefas, filas, semáforos), eliminando completamente o uso de heap. Essa
abordagem é frequentemente exigida em sistemas de segurança crítica, nos quais a alocação
dinâmica é proibida por norma.
8 Multiprocessamento Simétrico (SMP) e Portabili-
dade
Historicamente concebido para núcleos únicos, o FreeRTOS incorporou o suporte a
multiprocessamento simétrico (SMP) na linha principal a partir da versão 11.0.0
[7, 8]. Com o SMP, uma única instância do núcleo pode escalonar tarefas em vários
núcleos de processador idênticos, permitindo o paralelismo real: múltiplas tarefas
executam simultaneamente em núcleos diferentes. Isso é particularmente relevante para
microcontroladores modernos de múltiplos núcleos, como o ESP32 (dois núcleos) e o
Raspberry Pi Pico (RP2040). O suporte oficial a SMP consolidou capacidades que antes só
existiam em bifurcações (forks) específicas de fabricantes, como o ESP-IDF da Espressif.
A portabilidade é outro pilar do projeto: a separação entre o código genérico do
núcleo e a camada de abstração de hardware (os arquivos de port) permite migrar o mesmo
código de aplicação entre arquiteturas com esforço mínimo, protegendo o investimento em
software ao longo do ciclo de vida do produto.
9 Aplicações no Mercado e Estudo de Caso
O FreeRTOS permanece, em 2026, o RTOS mais implantado no mundo embarcado,
sustentado por um mercado global de RTOS avaliado em mais de US$ 7 bilhões [14]. Sua
combinação de gratuidade, transparência e suporte comunitário o torna a espinha dorsal
de dispositivos IoT baseados em microcontroladores [15].
9.1 Setores de aplicação
Entre os domínios em que o FreeRTOS é largamente empregado destacam-se: au-
tomação residencial, mantendo a interface responsiva apesar de requisições de rede
7
FreeRTOS Sistemas de Tempo Real
lentas; automação industrial, em nós de medição que exigem temporização determinís-
tica; dispositivos vestíveis e monitoramento de saúde, onde o baixo consumo é
essencial; e sistemas automotivos de conforto e conectividade.
9.2 Estudo de caso: ESP32 e o ecossistema IoT
Um exemplo emblemático é o microcontrolador ESP32, da Espressif, um dos chips
mais populares para IoT. Seu framework de desenvolvimento oficial, o ESP-IDF, já integra
uma versão do FreeRTOS como núcleo padrão [13]. Quando o desenvolvedor cria uma
tarefa no ESP32, é o FreeRTOS que gerencia automaticamente o escalonamento entre os
dois núcleos do processador. Isso permite, por exemplo, dedicar um núcleo à pilha de
comunicação Wi-Fi/Bluetooth enquanto o outro executa a lógica de aplicação (leitura de
sensores, controle de atuadores, atualização de display), sem que uma atividade bloqueie a
outra. Essa arquitetura assegura que a interface nunca congele por causa de uma requisição
de rede lenta e que as leituras de sensores não sejam atrasadas por retransmissões de Wi-Fi
— um requisito típico de tempo real brando.
10 Exemplo Prático de Código
Para ilustrar de forma concreta os conceitos apresentados, o Código 1 demonstra o
padrão produtor–consumidor usando uma fila. Uma tarefa produtora (alta prioridade)
lê periodicamente um sensor e envia o valor para uma fila; uma tarefa consumidora (baixa
prioridade) permanece bloqueada aguardando dados e os processa quando chegam. Note
que a tarefa consumidora não desperdiça ciclos de CPU em espera ativa (busy waiting):
ela é bloqueada pelo núcleo e só é acordada quando há trabalho a fazer.
1 # include " FreeRTOS . h "
2 # include " task . h "
3 # include " queue . h "
4
5 QueueHandle_t xFilaSensor ; // Fila compartilhada entre as
tarefas
6
7 // Tarefa PRODUTORA : le o sensor e envia o valor para a fila
8 void vTarefaProdutora ( void * pvParametros ) {
9 int valorSensor ;
10 for (;;) {
11 valorSensor = lerSensor () ; // funcao do
usuario
12 xQueueSend ( xFilaSensor , & valorSensor , portMAX_DELAY ) ;
8
FreeRTOS Sistemas de Tempo Real
13 vTaskDelay ( pdMS_TO_TICKS (100) ) ; // periodo de
100 ms
14 }
15 }
16
17 // Tarefa CONSUMIDORA : bloqueia ate receber um dado e o processa
18 void vT ar ef aC on su mid or a ( void * pvParametros ) {
19 int valorRecebido ;
20 for (;;) {
21 // Bloqueia ( sem gastar CPU ) ate chegar um dado na fila
22 if ( xQueueReceive ( xFilaSensor , & valorRecebido ,
portMAX_DELAY ) == pdPASS ) {
23 processarDado ( valorRecebido ) ; // funcao do
usuario
24 }
25 }
26 }
27
28 int main ( void ) {
29 // Cria uma fila capaz de armazenar 10 inteiros
30 xFilaSensor = xQueueCreate (10 , sizeof ( int ) ) ;
31
32 // Cria as tarefas com prioridades distintas
33 xTaskCreate ( vTarefaProdutora , " Produtora " , 1000 , NULL , 2 ,
NULL ) ;
34 xTaskCreate ( vTarefaConsumidora , " Consumidora " ,1000 , NULL , 1 ,
NULL ) ;
35
36 vTas k S ta r t Sc h e du l e r () ; // Inicia o escalonador do FreeRTOS
37 for (;;) ; // Nunca deve chegar aqui
38 }
Código 1: Padrão produtor–consumidor com fila no FreeRTOS.
Esse exemplo sintetiza vários conceitos discutidos ao longo do trabalho: a criação
de tarefas com prioridades diferentes (xTaskCreate), o uso de filas para comunicação
segura entre tarefas (xQueueSend/xQueueReceive), o bloqueio eficiente sem espera ativa
(portMAX_DELAY) e a temporização periódica por meio de vTaskDelay. É exatamente essa
combinação de simplicidade de API e comportamento determinístico que explica a ampla
adoção do FreeRTOS no mercado.
9
FreeRTOS Sistemas de Tempo Real
11 Conclusão
Ao longo deste trabalho, examinou-se o FreeRTOS como um representante maduro
e amplamente adotado da categoria de sistemas operacionais de tempo real voltados a
sistemas embarcados. Partindo dos fundamentos teóricos — a distinção entre tempo real
crítico e brando, os conceitos de determinismo, latência, jitter e WCET —, demonstrou-se
como o FreeRTOS materializa esses princípios por meio de um escalonador preemptivo
baseado em prioridade, de mecanismos de comunicação e sincronização (filas, semáforos e
mutexes com herança de prioridade) e de esquemas flexíveis de gerência de memória.
Verificou-se que a relevância do FreeRTOS no mercado atual não é acidental: ela
resulta da conjunção de um núcleo minimalista e determinístico, ampla portabilidade,
licenciamento aberto e permissivo (MIT), manutenção profissional pela AWS com versões
de suporte de longo prazo, e um ecossistema robusto voltado à IoT. O suporte a multipro-
cessamento simétrico incorporado às versões mais recentes e o estudo de caso do ESP32
evidenciam que o projeto continua evoluindo para acompanhar as tendências de hardware.
Conclui-se, portanto, que o FreeRTOS constitui um excelente objeto de estudo para a
disciplina de Sistemas de Tempo Real, por unir, em uma base de código acessível e real,
praticamente todos os conceitos que definem a área.
Referências
[1] KOPETZ, H. Real-Time Systems: Design Principles for Distributed Embedded Applications.
2. ed. Springer, 2011.
[2] FREERTOS. FreeRTOS – Market leading RTOS. Disponível em: [Link]
org/. Acesso em: jul. 2026.
[3] AWS. FreeRTOS versions. Disponível em: [Link]
latest/userguide/[Link]. Acesso em: jul. 2026.
[4] AWS. FreeRTOS 202604 LTS now available with enhanced security and MQTT
v5.0. 2026. Disponível em: [Link]
freertos-lts/. Acesso em: jul. 2026.
[5] AWS. FreeRTOS releases new Long Term Support version. 2024.
Disponível em: [Link]
freertos-long-term-support-version/. Acesso em: jul. 2026.
[6] FREERTOS. FreeRTOS scheduling (single-core, AMP and SMP). Disponível em:
[Link]
01-Tasks-and-co-routines/04-Task-scheduling. Acesso em: jul. 2026.
10
FreeRTOS Sistemas de Tempo Real
[7] FREERTOS. Symmetric Multiprocessing (SMP) with FreeRTOS. Disponível em: https://
[Link]/[Link]. Acesso em: jul. 2026.
[8] AWS. Symmetric multiprocessing (SMP) support. Disponível em: [Link]
[Link]/freertos/latest/userguide/[Link]. Acesso em: jul. 2026.
[9] FREERTOS. Mastering the FreeRTOS Real Time Kernel (FreeRTOS-Kernel-Book).
Disponível em: [Link] Acesso em: jul.
2026.
[10] DEEPWIKI. Task Management – FreeRTOS-Kernel-Book. Disponível em: https:
//[Link]/FreeRTOS/FreeRTOS-Kernel-Book/2.1-task-management. Acesso em:
jul. 2026.
[11] MICROCONTROLLERS LAB. FreeRTOS Scheduler: Learn to Configure
Scheduling Algorithm. Disponível em: [Link]
freertos-scheduler-learn-to-configure-scheduling-algorithm/. Acesso em:
jul. 2026.
[12] LÓPEZ, J. Demystifying FreeRTOS: A Practical Guide to Semaphores, Queues,
and Mutexes. Medium, 2024. Disponível em: [Link]
demystifying-freertos-a-practical-guide-to-semaphores-queues-and-mutexes-4113b9bb338c
Acesso em: jul. 2026.
[13] CONTROLLERS TECH. FreeRTOS ESP32 Tutorial: Tasks, Sched-
uler & xTaskCreate. Disponível em: [Link]
freertos-esp32-esp-idf-task-management/. Acesso em: jul. 2026.
[14] PROMWAD. Real-Time OS Trends in 2025. Disponível em: [Link]
rtos-trends-2025-oems-guide. Acesso em: jul. 2026.
[15] PROMWAD. Best RTOS 2026: Updated Ranking. Disponível em: [Link]
news/best-rtos-2026. Acesso em: jul. 2026.
[16] PBX SCIENCE. FreeRTOS: The Quiet Giant That Conquered
the Chip Industry. Disponível em: [Link]
freertos-the-quiet-giant-that-conquered-the-chip-industry/. Acesso em:
jul. 2026.
[17] GROKIPEDIA. FreeRTOS. Disponível em: [Link]
Acesso em: jul. 2026.
11