Suporte ao multiprocessamento simétrico (SMP) - FreeRTOS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Suporte ao multiprocessamento simétrico (SMP)

O suporte ao SMP no kernel do FreeRTOS permite que uma instância kernel do FreeRTOS agende tarefas em vários núcleos de processador idênticos. As arquiteturas principais devem ser idênticas e compartilhar a mesma memória.

A API do FreeRTOS permanece substancialmente a mesma entre as versões de núcleo único e de SMP, exceto essas APIs adicionais. Portanto, uma aplicação escrita para a versão single-core do FreeRTOS deve ser compilado com a versão SMP com o mínimo ou nenhum esforço. No entanto, pode haver alguns problemas funcionais, porque algumas suposições que eram verdadeiras para aplicações de núcleo único podem não ser mais verdadeiras para aplicações de vários núcleos.

Uma suposição comum é que uma tarefa de menor prioridade não pode ser executada enquanto uma tarefa de maior prioridade está em execução. Embora isso fosse verdade em um sistema de núcleo único, não é mais verdade para sistemas de vários núcleos porque várias tarefas podem ser executadas simultaneamente. Se a aplicação se basear em prioridades de tarefas relativas para fornecer exclusão mútua, ela poderá observar resultados inesperados em um ambiente com vários núcleos.

Outra suposição comum é que os ISRs não podem ser executados simultaneamente entre si ou com outras tarefas. Isto não é mais verdade em um ambiente com vários núcleos. O criador da aplicação precisa garantir a exclusão mútua adequada ao acessar dados compartilhados entre tarefas e ISRs.