Proove QNX is realtime

Does anyone of you have a suggestion how I can proove that QNX nutrino is realtime?
Somehow I need to make an application that shows that there are “no delays” (or only small) in generating a reaction to an input (interrupt?)

Thanks in advance!

Well realtime is a very loose definition. What you should do is determine your requierement and see if the OS can fit the bill.

There are some benchmark made available by QSS (I think you have to register to get them)

Or best write a program yourself that test exaclty what you need.

Note that realtime is not only about small delays, but about consistency. Its fine to have a 1us interrupt delay but thats no good if one every hour it goes to 1ms ;-)

  • Mario

  • Mario

I concur.

I like to put it this way. Only applications are real-time. A real-time OS is so named, because it provides facilities that allow creating real-time applications. When you first install QNX on an x86 target you do not have a real-time system (well small parts might be real-time in - and of - themselves - i.e. drivers).

Once you apply it to an application that has deadlines, then you have a real-time system and QNX is certainly part of that real-time system.

Bottom line to OP: In order to prove (empirically) that QNX is a RTOS, start by defining an application with some deadlines and develop an implementation that achieves (or doesn’t) those deadlines. If the implementation is successful, then (for the deadlines you have imposed) QNX is a RTOS, if the implementation fails, then (assuming there are no errors in the application code) QNX is not a RTOS (for the deadlines imposed).

I can state, with some authority, that there are applications for which QNX is both a RTOS and applications for which it is not a RTOS. Fortunately, for most application constraints, QNX is quite capable of being part of a real-time system.

I really like this POV.

It’s also important to mention that for a system to be real-time, the hardware must also be well choosen. PC platform, is probably a worst case scenario…

Could you point me in the right direction where I can find this benchmark tool? Perhaps you know the name of this tool?

I have no specific requirement yet. I just want to find out what possible with QNX and what is not. And yes, I was talking about an x86 platform as a target.

It’s not a benchmark tool, it’s benchmark results.

qnx.com/account/authenticat … mid%3D8135

In my opinion for x86/Pc platform, I think QNX is probably the best at real-time.

Thanks for your help.

A very interesting thread so far. A few comments. It’s easy for an application to lose realtime-ness. Assuming that the application code is itself written to be real-time, there is always the possibility that a driver, or function of the OS will thwart this behavior. Obviously QNX has a commitment to not do this, but it is always possible that some hardware requires a driver that will not allow this. In that situation, it is the application developer to realize that they need different hardware. In the past I’ve seen finger pointing over just such an issue. In a real worst case that I ran into, a processor can be made un-real time. This was through a processor feature called supervisor mode. The processor was responsible for emulating certain hardware features. This feature was implemented above the control of the OS. So in the middle of no-where, the processor went off and handled something for an extented period of time. In the case I was handling, an interrupt would fire, and a FIFO would have to be emptied quickly to avoid overflow. But right in the middle of emptying the FIFO, supervisor mode would occaisionally kick in and ruin everything. We needed a logic analyser just to find out this was happening.

Exactly. This is why only applications are real-time.

A RTOS is only a small piece of “real-time”. The hardware, the firmware (as you point out) and the application software together (under the supervision of a real-time programmer) make up the real-time system. In the example you mention QNX (even QNX drivers designed to be real-time) were not behaving deterministically due to a combination of hardware and firmware over which the OS has no control.

Hello everybody!
Could you help me with programming in QNX.
I need to make a programm using C language, that will demonstrate QNX is realtime. That is for my term paper …
I am from Russia. We havn’t a lot of information about QNX in Internet :frowning:
May be you could give me a link with any sourse ?
Thank you!

Well if it’s for a term paper doesnt’ that mean what you should be the one doing it?

Have you check qnx.org.ru/