question about unix & real time

Doug Gwyn <gwyn> gwyn at brl-tgr.ARPA
Thu Nov 8 03:05:18 AEST 1984


> ...  I've heard that Unix is not a good operating system 
> for real-time applications, but I have a couple of questions:
> 
> 	-Just what is it about Unix that makes it ill-suited for
> 		real-time applications?

This is an old myth based partly on fact.

	- Except under UNIX System V, there is no good support
	  for real-time IPC (if the task needs it; not all do).
	  Signals and pipes are inadequate.

	- Older UNIXes had no way to keep a process from being
	  swapped out, so there could be a significant delay in
	  responding to real-time events.

	- The file system (block I/O) involves a fair amount of
	  overhead.  This can be avoided by use of "raw disk".

	- Except under 7th Edition UNIX, device control involves
	  system call overhead.  This can be avoided if your
	  device-control module is implemented as a kernel
	  process (e.g., a "smart" device driver).

	- The UNIX scheduler does not support the concept of
	  strict priorities, so a high-priority process may not
	  be able to gain exclusive use of system resources
	  when it needs them.

All these drawbacks can be overcome by a competent UNIX system
programmer.  At my previous employer, we successfully implemented
a system based on 6th Edition UNIX on an LSI-23 that acquired
large amounts of data onto a Winchester disk at around 100KHz,
with a very small amount of hardware buffering.  At slightly
slower rates, concurrent multi-process background number-crunching
and interactive graphic display was supported.  As I said, "a myth".



More information about the Comp.unix.wizards mailing list