Re: running real time application behind glade



On Tue, 02 Nov 2004 00:35:33 PST, Aaron Yang said:

>   I'm using glade 2, running on redhat 9. For realtime, it's rtlinux-3.2-pre2
> running with linux kernel-2.4.20-rtl.

You almost certainly don't need rtlinux here because...

> 2. entry box has a real-time counter counting from 0 onwards in 1 second interval
>     e.g. 0...1...2...3...

If your update gets the in 1.001 seconds rather than 1.000 or 0.999 seconds,
nothing *breaks*.  You need rtlinux or similar stuff when *stuff breaks* if you
don't make the scheduling deadline.  I mean, *literally* breaks, as in
you have to throw stuff in the trash bin. For instance:

If you're burning a CD at 24x and don't have Burn-Free enabled, you *have*
to have the next several blocks to write into the FIFO in time, or what you
get is a coaster, not a CD.

If you're doing high-end audio work, you *have* to feed the audio card the
required number of 96khz samples every second, or you get an over-run or
a drop-out.  Clicks and pops when you're trying to do professional quality
audio are *not* considered acceptable.

If you're doing robotic control or something similar, you *have* to measure,
compute, and adjust the settings on servo motors every N milliseconds, or risk
dangerous oscillations.

http://www.moog.com/noq/_capabilities__c478/

Yes, it's tossing 15 tons around on those pistons, because you build stuff
like this on it:

http://www.mfs.com.au/MFS_Motion_Platforms.htm

See those 6 pistons? You *have* to send orders to all 6, *in order*, several
hundred times a second - and each time you usually need to read the status of
all 6 actuators, do some involved matrix computations (you can't change the
length of just one piston, or you *will* break something), and output the
new commands.  And if you get it wrong, a piston able to move 15 tons
will try to put itself through the floor of your airplane cockpit simulation....

*Those* are examples of actual "real time" programming....

You may have an easier time of it if you *get rid* of rtlinux if you don't
*need* it - the flip side of "hard real time" is that it can be *very*
wasteful of resources, and even cause total starvation of other processes -
hard real time means that if one process has announced that it *has* to
run every 50 milliseconds, the kernel may very well decide "Well, it's only
9ms till it will want to run again, and there's no realtime processes
waiting to run, so we're going to just *not* run those non-realtime
processes just in case one of them will make a system call that takes 11ms
to return - and we *cant* allow that because somebody else *has* to run
9ms from now".

And yes, when you're doing hard real-time, the kernel *is* allowed to
drop your GUI dead in its tracks if it feels the need, because the
X server isn't a real-time process.




Attachment: pgpvF3k4NaYtw.pgp
Description: PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]