unix & real time -- is a rewritten UNIX still UNIX?

Geoff Kuenning geoff at desint.UUCP
Mon Nov 19 10:41:04 AEST 1984


In article <4630 at utzoo.UUCP> henry at utzoo.UUCP (Henry Spencer) writes:

>Furthermore, anyone who thinks that manufacturer X's Wonderful Realtime
>Operating System is going to do *exactly* what he wants is dreaming.
>Real-time applications vary too much; the user (or his programmer) is
>going to have to write some code no matter what he does.  Doing this
>for Unix is no harder than doing it on other systems.

Gee, Henry, I worked on a 5-person-year project running under RSX-11M, and
the only mods I had to make to the OS were the installation of drivers for
our optional hardware.  I know of many, many, many other cases where a
real-time application was written successfully under a manufacturer's OS
without making modifications.  The obvious example is VRTX, which comes in
ROM (though, to be fair, you have to add a lot of drivers).  But I have
seen this done on operating systems from DEC, IBM, Intel, and many others.

I might believe that UNIX/RTR for the 3B20S, or DMERT for the 3B20D, is a
reasonable real-time operating system.  (I haven't had a chance to read the
BSTJ on them yet.) As has been pointed out before, there is nothing in the
UNIX system call repertoire that requires non-real-time code in the kernel.
(Although there are *many* missing features, such as asynchronous I/O, that
real-time programmers would consider necessary).  But UNIX/RTR is available
only for the 3B20 as I understand it, and ordinary UNIX is a long way from
being usable for real time.  Bill Shannon's excellent discussion of
interrupt latency covers one of the biggest, though not the only, reasons.

If the "real-time" task that you want to perform involves replacing your wall
thermostat with your computer, a PC running UNIX with a load average of 80 is
probably sufficient.  The response-time requirements just aren't that large.
In fact, you can come up with hypothetical control applications (lighting
control for a greenhouse, perhaps?) slow enough to run on a batch machine.
The things that make a real-time operating system real-time are twofold:
low and predictable overhead, and a complement of system services that
serves the needs of the real-time applications programmers (an excellent
summary of the latter can be found in the ISA standard for process control;
UNIX System V provides many but not all of the required functions).

Yes, all of these features can be added to UNIX with some effort.  That
means it can be turned into a real-time operating system, not that it
already is one.
-- 

	Geoff Kuenning
	First Systems Corporation
	...!ihnp4!trwrb!desint!geoff



More information about the Comp.unix.wizards mailing list