Per prima cosa vorrei menzionare che sono un principiante nella programmazione di sistemi in tempo reale Ecco perché non sono sicuro che le mie domande siano corrette. Scusa per quella cosa Ma ho bisogno di aiuto
Domanda in breve: Come implementare un software in tempo reale per assicurarsi che soddisfi scadenze rigide? È necessario utilizzare alcune funzionalità QNX? O è sufficiente scriverlo per linux, port per QNX e sarà in tempo reale per impostazione predefinita?
Domanda completa: Abbiamo implementato alcuni complessi software multiprocesso multipiattaforma con comunicazione inter-process per Linux, Windows, Android e QNX. Il linguaggio di programmazione è C ++, usiamo Boost e planty di altre librerie. Il nostro software fa bene e rapidamente il suo lavoro ma è ancora un prototipo. Per scopi di produzione, dobbiamo farlo in tempo reale Alcune delle nostre funzionalità devono essere in tempo reale e molto robuste perché sono molto importanti e la sicurezza delle persone che utilizzano il nostro software può dipendere da esse. Funzionano abbastanza rapidamente, fino a centinaia di millisecondi. Ma non sono sicuro che il nostro sistema sia realmente in tempo reale a causa di questo fatto (ho ragione?).
Quindi c'è una domanda principale: come modificare il nostro software in tempo reale? Ho cercato su Google molto ma non ho ancora idea di come farlo.
Alcune informazioni aggiuntive sulle nostre piattaforme: Linux e Windows attualmente vengono utilizzati solo a scopo di test. Android: non abbiamo ancora deciso se ne abbiamo bisogno. QNX - è il nostro OS di destinazione per la produzione. Immagino che la risposta alla mia prossima domanda sia "NO" :) Ma è possibile impiantare software multipiattaforma in tempo reale (per sistemi operativi in tempo reale (RTOS) e per sistemi operativi generici (GPOS))?
Forse dovremmo fare i nostri sforzi per implementare tutte le funzionalità in tempo reale solo per QNX? Ma ancora non capisco come farlo. Qualcuno potrebbe far luce su questa domanda?