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.
- 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;
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 rtfm.mit.edu. 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,