----- Original Message -----
From: "Mansur, Warren" <[EMAIL PROTECTED]>
To: "Cole Tuininga" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Tuesday, July 31, 2001 1:32 PM
Subject: RE: C Question
[snip]
> If you want an application to do something EXACTLY at 30 second
> intervals, then your application must be run on what is known as a
> real-time operating system. Common versions of Linux are not real time,
> as well as windows, and pretty much every other common OS. There
> probably is some versions of real time Linux out there .
Yes, happily, there are TWO real-time Linux-based OSes out there:
http://www.rtlinux.org/ and
http://www.aero.polimi.it/projects/rtai/
The first, "Real-time Linux," was the original, and is more
stability-oriented, at the risk of being slow to implement new features. The
second, "Real Time Application Interface," is more concerned with
implementing features that make it "more like commercial RTOSes." (I hope I
haven't slandered either organization with this synopsis :o) )
> In short, real
> time operating systems guarantee that events are done within an exact
> amount of time.
...and the sad truth is that _all_ standard Unices, Linuces, and _all_
versions of Windows, are NOT real-time. (How can they play music and movies,
you ask? Well, if you throw enough hardware at something, and give its task
a high enough priority, and don't do too much else with the system while
it's running, you can get something that _seems_ like real-time performance,
even though it's not.)
How does it work?
The API is an extension to the standard operating system that consists of a
real-time (RT) kernel in solid control of one or more system interrupts.
This kernel has limited functionality, but can run real-time tasks that make
use of the interrupts and gather, process and store data in buffers called
FIFOs.
The Linux kernel that we all know and love is running in the background, and
does not have control over these interrupts, even though it thinks it does.
When it tries to disable interrupts (which is why it is not real-time in the
first place) it is not really disabling the ones that are under the RT
kernel's control. The RT kernel actually suspends the standard kernel and
takes control of the system when these critical interrupts occur. The real
time tasks do their thing, and post their data in the FIFOs. Then the RT
kernel passes control back to Linux. At this point, the background tasks in
the system usually run and retrieve the data from the FIFOs, massage it,
print it, save it, display it, or whatever.
There; that is just about everything I know about real-time extensions for
Linux.....hope it was enlightening to some of you.
(......and NO! I don't know enough to give a talk on the subject at a future
MELBA meeting!)
[snip]
Rich Cloutier
SYSTEM SUPPORT SERVICES
www.sysupport.com
**********************************************************
To unsubscribe from this list, send mail to
[EMAIL PROTECTED] with the following text in the
*body* (*not* the subject line) of the letter:
unsubscribe gnhlug
**********************************************************