Mostrando postagens com marcador Recursos. Mostrar todas as postagens
Mostrando postagens com marcador Recursos. Mostrar todas as postagens

29 de agosto de 2024

Utilizar um RTOS ou Não?

Olá pessoal!

A escolha entre utilizar um Real-Time Operating System (RTOS) ou não depende das necessidades específicas do sistema embarcado em questão. Um RTOS é recomendado quando há requisitos estritos de tempo real, como em sistemas de controle industrial, dispositivos médicos ou automotivos. 

Para aplicações menos críticas em termos de tempo, um sistema operacional convencional pode ser mais adequado, oferecendo maior flexibilidade de desenvolvimento e menor overhead. A decisão deve considerar fatores como complexidade, recursos disponíveis, custo e prazos de desenvolvimento.

No mundo embarcado, a questão de utilizar um Sistema Operacional em Tempo Real (RTOS) ou não é uma grande dúvida entre os engenheiros. As respostas encontradas online geralmente são opiniões tendenciosas sem métricas ou suporte científico do argumento. 

Geralmente, elas afirmam as vantagens ou desvantagens sobre os sistemas clássicos de round-robin. A verdade é que os engenheiros preferem e gostam de evidências em vez de heurísticas. Vamos tentar responder a essa questão, assim como fiz para mim mesmo. Acredito que este pequeno guia ajudará a decidir se um RTOS vale o esforço ou não.

Não parece haver um parâmetro de engenharia específico que aponte se realmente precisamos de um RTOS ou não. Mas voltemos aos princípios de decisão. O que todos os sistemas tentam fazer? Compartilhar o recurso de tempo da CPU. Um RTOS é melhor em escalabilidade em relação aos outros sistemas não preemptivos? Na verdade, os sistemas em tempo real não se importam se são melhores ou mais rápidos. Eles se preocupam com respostas determinísticas.

Existe um princípio muito bom que nos ajuda de maneira geral com a escalabilidade. Isso é chamado de Abordagem Rate-Monotonic (RMA). Este método analisa um sistema para verificar se é possível agendar suas tarefas. 

Os inputs são vários parâmetros como período de eventos, eventos esporádicos, prazos, etc. que ajudam a derivar matematicamente se o sistema é escalável. Esta abordagem funciona com esquemas de prioridade fixa e com sistemas preemptivos ou não preemptivos. 

Assim, a metodologia seria estimar o pior tempo de execução de cada tarefa, reunir todos os prazos, preencher as matrizes e obter um resultado se o sistema específico é escalável. Analisando os sistemas de round-robin primeiro, você tem uma ideia se isso funcionará ou se estressará o sistema.

A questão de colocar um RTOS ou não pode ser respondida principalmente dependendo da escalabilidade. Se o sistema puder ser agendado sem um RTOS com segurança, então você não precisa de um RTOS. Caso contrário, o RTOS é o caminho a seguir. Claro, pode haver outras razões para a decisão, como expansão futura, pilhas prontas para uso, etc., mas isso vai além dos princípios básicos de decisão. Você pode usar o método RMA para fornecer os critérios para sua decisão.

Obrigado pela leitura!


Desafios e Oportunidades do 5G para o IoT

O 5G traz promessas de um futuro mais conectado e inteligente para o IoT, mas sua implementação não é isenta de desafios. Embora a velocidad...