Eu não fiz nenhum trabalho em tempo real, então leve isso com um pouco de sal ...
Disseram-me que há duas categorias de "tempo real": tempo real difícil e tempo real suave.
"Tempo real suave" informalmente significa "fazê-lo o mais rápido possível". Eu acho que o Linux em uma CPU moderna é bom para esse tipo de coisa.
"Tempo real difícil" informalmente significa "fazê-lo dentro de uma janela de tempo necessária". A janela pode ser bem pequena, milissegundos ou algo assim. Os sistemas de controle de vôo para mísseis de cruzeiro ou veículos lançadores de satélites parecem ser o exemplo canônico. Os sistemas de controle de processos industriais também podem precisar disso. O worm Stuxnet parece ter interferido nos sistemas que fazem esse tipo de controle.
Você usaria o RTOS na última situação. O RTOS geralmente garante a interrupção em menos de tantas instruções ou marcações de relógio ou o que for.
Outra consideração pode ser que um RTOS seja projetado, testado e / ou "comprovado" para não consumir espaço na pilha sem vincular. Ele pode viver dentro de uma certa quantidade mínima de memória e coisas como um "OOM Killer" não existem porque provavelmente nunca são necessárias. Alguns dos recursos mais engraçados do FORTRAN antigo vêm desse tipo de requisito. Ao compilar um programa FORTRAN II, você sabia exatamente quanta pilha e quantidade de pilha precisava, pois não era possível recursar e não podia alocar dinamicamente nada.
Realisticamente, a segunda consideração (consumo máximo garantido de memória) pode ser mais importante em algumas aplicações críticas de segurança do que "latência de interrupção garantida de 0,001 segundos".
Eu também imaginaria que, retirando o processo de seleção da folha de figueira da verborragia de suporte, você descobriria que os engenheiros escolhem um RTOS porque "os requisitos dizem".