Nigel Gamble wrote a really nice explanation of some of the kernel
design considerations which affect its responsiveness. At the risk of
starting holy wars, I'd like to suggest that all of the kernel
wizzardry in the world does not relieve us, as good applications
builders, of choosing and achieving appropriate process behaviors.
I have seen (helped design and build) decently running nuclear power
plant operator training simulators built on top of moderately
customized UNIX, e. g. SGI Irix and SunOS. It can be done because the
application is "near-real-time", i. e. it has a period which is long
compared to most kernel operations and nothing terrible happens if the
simulation runs over-time for a few seconds. (The perf-meter pegs
until caught up.) Because we understand the behavior of our
application and the behavior of the kernel, we are able to do so
successfully. The hardest thing we face is dealing with momentary
switches which can shut and open between I/O passes. We deal with this
by buying intelligent I/O controllers built on something like Wind
River's VX-Works which is designed for moderately stiff real-time. We
also have to be a little clever about the interface between the model
and the i/o.
Encore Computer once proted an F-4 flight simulator to its UNIX and Ada
preserving the look and feel of the original simulator. This was done
some years ago (1986) as a demonstration for the Navy. My information
on this activity is second hand. They did have to add device drivers
to the kernel to run the cockpit I/O pretty much inside the kernel to
keep the stick feel. The simulator was fixed base so they didn't have
to worry about moving the motion base smoothly.
This is a fascinating topic area which, from time to time, attracts academic
research and produces an occasional paper. I have seen some papers about scheduling policy experiments that try to guarantee or bound response time. There seems to be too little consensus for commercial operating system vendors to encorporate any of the experimental policies which I have seen in IEEE Computer Society articles. Perhaps, someone out there can tell us more about what is going on in real-time research.