For the first I would like to mention that I'm newbie in real-time systems programming That's why I'm not sure if my questions are correct. Sorry for that But I need some help
Question in short: How to implement hard real-time software to be sure it meets hard deadlines? It is necessary to use some QNX features? Or it is just enough to write it for linux, port to QNX and it will be real-time by default?
Full question: We have implemented some complex cross-platform multiprocess software with inter-process communcation for Linux, Windows, Android and QNX. Programming language is C++, we use Boost and planty of other libs. Our software does it's job well and quickly but it is still prototype. For production purposes we need to do it real-time Some of our features have to be real-time and very robust because they are very important and safety of people that use our software may depend on them. They work pretty quickly - up to hundreds of milliseconds. But I'm not sure that our system is really real-time because of this fact (am I right?).
So there is a main question: how to modify our software to be real-time? I've googled a lot but I still have no idea how to do it.
Some additional information about our platforms: Linux and Windows we currently use only for testing purposes. Android - we still haven't decided whether we need it. QNX - is our target OS for production. I guess that answer for my next question is "NO" :) But is it possible at all to implenet cross-platform real-time software (for real-time OSes (RTOS) as well as for general purpose OSes (GPOS) )?
Possibly we need to make our efforts to implement all real-time features only for QNX? But I still don't understand how to do it. Could somebody shed a light on this question?