Qual é a diferença entre RTOS e sistema operacional?

Os sistemas operacionais e os sistemas operacionais em tempo real utilizam um agendador para decidir qual programa executar quando, mas os sistemas operacionais em tempo real são projetados para fornecer um padrão de execução previsível. Os sistemas operacionais em tempo real também possuem requisitos de tempo especificando que uma resposta seja concluída dentro de um tempo definido.

Um sistema operacional, ou SO, dá a aparência de permitir que vários programas sejam executados ao mesmo tempo. No entanto, um núcleo do processador só pode executar um único thread de execução por vez. O agendador utilizado por SO e RTOS, ou sistemas operacionais em tempo real, alterna rapidamente entre programas e dá a ilusão de execução síncrona. No entanto, o planejador em RTOS fornece um padrão de execução previsível ou determinístico. Os requisitos de tempo real especificam que um sistema embarcado responde a um evento dentro de um tempo ou prazo definido. Na maioria das vezes, os usuários atribuem uma prioridade a cada thread de execução para atingir o determinismo usando agendadores em tempo real.

Conforme um aplicativo cresce em complexidade ou tamanho, há certos benefícios em usar um RTOS em oposição a um sistema operacional. Esses benefícios incluem modularidade, interfaces mais limpas, facilidade de manutenção, reutilização de código e tempo ocioso. Outros benefícios incluem maior eficiência, controle mais fácil sobre periféricos e manuseio flexível de interrupções.