Choosing a real-time OS - SUMMARY and a Question

Choosing a real-time OS - SUMMARY and a Question

Post by S.A... » Wed, 01 Jun 1994 07:40:43

Choosing a real-time OS - SUMMARY and a Question

    Several weeks ago I have posted a message containing
questions about RT OS that suites my needs optimally.
The message were posted to the following newsgroups:

For Your convenience I've attached the original message
to the end of a message You read now.

Thanks to the following people who answered to my request:

Special thanks to:

       information about OS QNX.

       about OS-9 and OS-9000.

       exact OS-9 FAQ location.

       who provided me info about OS-9000.

20 people have mentioned one or more OS in their messages.
    12 of 20 have mentioned QNX;
     7 of 20 - OS-9/OS-9000, (1 of 7 told me
             that he is unhappy with OS-9000...)
     2 of 20 - VxWorks;
     1 of 20 - Chorus;
     1 of 20 - Venix;
     1 of 20 - pSOS;
     1 of 20 - RTMX;
Note that my original message contained question about
OS-9000 and none about any other operating systems.

Analysis of info obtained showed that QNX doubtless is the most
appropriate for the task.
(I am not acquainted with it personally though :-))

One question remains uncovered: whether is possible
to use one of "traditional" UNICes for the task,
especially SVR4.
Can anybody tell me is SVR4 (Unixware) suitable for the task?
What drawbacks may arise? Can anybody compare QNX vs Unixware?

Thanks in advance,
Stanislaw Kuzikowski,

The following is the original message.

Choosing a real-time OS for interesting prj - advice needed

    We design real-time visualization systems for aircraft
training.  I have to choose the appropriate real-time OS for the
purpose; so I need advice of people who use these systems
or design them. The following is my requirements/considerations.

    Our typical system, roughly, consist of a host computer and a
specialized hardware (rendering engine, no matter how much
complicated).  The upper renders the scene and do nothing else.
The former:  
    - controls the rendering engine;
    - performs demand preloading of part of scene in real time;
    - receives data blocks from other subsystems (via Ethernet)
      and processes them;
    - performs user interface;
    -    etc
    -       etc
All these processes run in parallel, in real time and intensively
communicate with each other.

    Our systems are relatively cheap and target platform for the
host is 386/486.

    What our realtime is? A frame rate is 50 frames per second so
frame is 20 milliseconds. During the period of frame some (10-30
...) interprocess communications performed, the rendering engine
is fed with data, possibly some (5 .. 10) disk/net operationS
completed/initiated, a user may press a key etc. No one can hold
a CPU for milliseconds, for there are high-priority processes
that must do their work EVERY frame (20 ms). They do some
intensive calculations and overall system performance determined
by CPU-time these processes dispose. So if someone (except the
high-priority processes) holds a CPU for 10 ms once in a hour -
the system is totally unusable, no matter the rest of a hour the
CPU is free.

    I suppose the guaranteed process switch time, event respond
latencies etc of order 100-150 microseconds are quite suitable
yet.  (May be I am mistaking). BTW what this parameter is for
traditional PC UNICes (SCO, Unixware, Linux etc)? I mean may be
they are enough "realtime"? May be any of them, not realtime in
general, could be configured to be so (with some restrictions)?

    The OS should be "open" enough. I should be able to implement
a device driver and integrate one into the system. A possibility
to have a user-written hardware interrupt handlers is also

    The OS should support memory locking, for if the
high-priority process when need to do one's job is happen to be
pulled to disk, there would be fatal situation.

    The OS should have net support (TCP/IP).

    The OS should be robust, should exploit memory-protection
facility of i386.

    Finally, we'd like the OS to be a "real UNIX". The point is
that there is not only real-time visualization system, but also a
scene development system etc. It is not convenient to have two
systems on different platforms. So OS should be user-friendly,
easy-to-use. X11R5 would be nice.

    We have got some info-sheet about OS-9000. The sheet is small
and a question of UNIX-compatibility is covered there especially
vaguely.  If anybody give me any info about OS-9000 I would be
glad. I suppose there is something like OS-9 FAQ, but it is not
on  Anybody know, where is it?

    So, If You have some info about an operating system that
You believe conforms to any (or all of) our requirements or if
You have suggestions, advices or solutions please e-mail direct
to me or via USENET. If You think I did not list a requirement
that is essential for the task I described - You may complete the
list. May be You know some references to FTP cites that contains
some documentation on the subject. Any help would be appreciated.

Thank You Very Much,
Stanislaw Kuzikowski,