I recently found an ancient copy of QNX, which seems to
be a light unix like
OS.
Looking on the WEB, I found that current versions are still around, but
marketed as a "Real Time" OS. The 80's documentation I have says nothing
about real time.
My dumb question: What is a real time operating system?
It's not a dumb question! It is, in some respects, a very controversial
question.
In very general terms, a real time operating system is what is used when
a response from the computer to an external event is required in a
"timely" fashion. For example, if it's a fly-by-wire jet,
and the pilot pulls the control stick back, you don't want the
computer to delay in making the control surfaces move because the co-pilot
is doing some lengthy navigational or fuel consumption calculations at
the same time.
For a multi-tasking operating system, this generally means two things:
1. When an external stimulus comes in, there has to be some way of
making sure it will interrupt tasks of lower priority.
2. After the higher-priority task is started, it has to finish in a
fairly predictable amount of time.
Depending on the nature of the real-time task and/or the person defining
"real-time", you also often find some further requirements. There are
also folks who split the definition into "soft real-time", where it's
OK if you're occasionally late with an answer or occasionally take too
long to respond, and into "hard real-time", where the computer is never
ever allowed to be late in responding or answering.
Traditional Unices are not, by any measure, real-time operating systems.
There are Unix-like OS's that are called "real-time operating systems", but
many of the "hard real-timers" will disagree with this.
A more modern approach to "real-timeliness" considers not only the
main CPU, but also subsidiary CPU's and systems. For example, if
a response to a stimulus requires doing any disk reads or writes, you
may need to thoroughly know the worst-case response time of the disk
drive. Modern disk drives (or even many disk drives from a decade ago)
have microprocessors in them and for a truly safety-critical application
it may be necessary to thoroughly review and qualify the firmware that's
in the disk drive to be sure that it will always respond in a certain
minimum amount of time.
Some real-time operating systems can be pressed into service as
general-purpose multi-user OS's. For example, RSX-11M. Others
make quite nice single-user development platforms - for example RT-11.
Modern network-in-the-kernel OS's are very difficult to turn into
"real-time"
systems with much functionality. You ever have a NFS server go down
and tie up a campus full of workstations for minutes at a time?
--
Tim Shoppa Email: shoppa(a)trailing-edge.com
Trailing Edge Technology WWW:
http://www.trailing-edge.com/
7328 Bradley Blvd Voice: 301-767-5917
Bethesda, MD, USA 20817 Fax: 301-767-5927