Pela primeira vez, gostaria de mencionar que sou iniciante em programação de sistemas em tempo real. É por isso que não tenho certeza se minhas perguntas estão corretas. Desculpe por isso, mas preciso de ajuda
Pergunta resumida: Como implementar software rígido em tempo real para garantir que ele atenda a prazos rígidos? É necessário usar alguns recursos do QNX? Ou basta escrever para linux, porta para QNX e, por padrão, será em tempo real?
Pergunta completa: Implementamos algum software multiprocesso multiplataforma complexo com comunicação entre processos para Linux, Windows, Android e QNX. A linguagem de programação é C ++, usamos Boost e planty de outras bibliotecas. Nosso software faz seu trabalho bem e rapidamente, mas ainda é um protótipo. Para fins de produção, precisamos fazer isso em tempo real Alguns de nossos recursos precisam ser em tempo real e muito robustos, porque são muito importantes e a segurança das pessoas que usam nosso software depende delas. Eles trabalham muito rapidamente - até centenas de milissegundos. Mas não tenho certeza de que nosso sistema seja realmente em tempo real devido a esse fato (estou certo?).
Portanto, há uma pergunta principal: como modificar nosso software para ser em tempo real? Pesquisei bastante no Google, mas ainda não faço ideia de como fazê-lo.
Algumas informações adicionais sobre nossas plataformas: Linux e Windows atualmente usamos apenas para fins de teste. Android - ainda não decidimos se precisamos. QNX - é o nosso sistema operacional de destino para produção. Acho que a resposta para minha próxima pergunta é "NÃO" :) Mas é possível implantar software em tempo real de plataforma cruzada (para sistemas operacionais em tempo real (RTOS) e sistemas operacionais para fins gerais (GPOS))?
Possivelmente, precisamos nos esforçar para implementar todos os recursos em tempo real apenas para o QNX? Mas ainda não entendo como fazê-lo. Alguém poderia esclarecer essa questão?