| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | Real-time |
In a message on 09-16-94, Louis Rizzuto said to Peter Hansen:
LR>If I understand you correctly ... loop would be "sampling" [at]
LR> .5 millisecs/iteration, right?
Yes, although I would never use the term "sampling" when I am talking
about sampling *and* processing that single sample *and* outputting a
new value based on a control algorithm. Closed loop control requires
that the entire loop be processed right away -- you can't just sample
and store, sample and store, _then_ process. It is different than
simple data acquisition (which simply requires regularity and speed) and
also things like serial communications (which require high throughput
but not much in the way of regularity).
LR> ...a 486/33MHz has a MIP rate of about 20 MIPS or about
LR>10,000 instructions per .5 ms.
LR>Is this what you mean? That you could not process what you need to
LR>process in about 10,000 instructions on this size machine?
No, the machines are more than capable of handling the processing
requirements. Even an AT works well. The problem is that the
processing must be completed *before* the next "sample" occurs and that
it must proceed as soon as possible after the "sample" is taken. Even
more importantly, the spacing of the "samples" must be quite regular. I
can't just look at a span of one second and say "Does my machine have
enough power to process 2000 samples in this time?" I must look at
*each* individual 500 microsecond period and ensure that (a) there is
never a missed interrupt and (b) the interrupt handlers don't respond
too long after the interrupt was actually triggered to give accurate
results. This relates to jitter...see below.
LR>I am not sure what you mean by "jitter". Could you please explain.
LR>I would like to understand.
Interrupt (|) spacing with no "jitter":
0ms.......1ms.......2ms.......3ms.......4ms.......5ms.......6ms.....
| | | | | | | | | | | |
Interrupt (|) spacing with "jitter":
0ms.......1ms.......2ms.......3ms.......4ms.......5ms.......6ms.....
| | | | | | | || | | |
In the second case, the average spacing is identical but the actual
spacing varies wildly. Note that you never get an interrupt _before_
you want it, only after... obvious after a moment's thought.
Since the mathematical model and algorithms are based on the expectation
of "even" spacing as in the "no jitter" example, the
second example
produces poor test results, roughly equivalent to a situation with no
jitter but a much lower sampling rate.
The problem with OS/2 as it stands would appear to be that the high
interrupt latency would lead to jitter of as much as a couple of hundred
microseconds, or around 50% of the interrupt period. Pretty shoddy.
PH>I have a little real-time kernel for DOS that manages to run under
PH> OS/2's DOS emulation without crashing ....
LR>That is interesting. It seems to leave open the possibility of doing
LR>some RT emulation under OS/2. What (OS/2) priority did you run your
LR>RT under?
Actually, the kernel is written to work on the lowest common denominator
8086 machine so it uses no special instructions or routines that OS/2
doesn't handle or emulate. It's just a DOS program, so there is no
special consideration given to priorties and such, from the viewpoint of
OS/2. You are right that it is useful to run it under OS/2 from a
debugging/simulation point of view, but that's about all.
LR>I will try to send you a Netmail msg (on jobs) today. Let me know if
LR>you get it, OK?
Okay. Please don't expect a fast and detailed reply. I'm in the middle
of something that will take me another week or two to get on top of.
Cheers,
Peter Hansen *** Engenuity Corporation *** Guelph, Ontario, Canada
Internet: peter.hansen{at}canrem.com RelayNet:->CRS FIDO:(1:229/15)
___
* MR/2 * *** Learn Esperanto, the international language. ***
--- QScan v1.12b / 01-0348
* Origin: FidoNet: CRS Online, Toronto, Ontario (1:229/15)SEEN-BY: 12/2442 54/54 620/243 624/50 632/348 640/820 690/660 711/409 410 413 SEEN-BY: 711/430 807 808 809 934 942 712/353 623 713/888 800/1 @PATH: 229/15 3615/50 229/2 12/2442 711/409 54/54 711/808 809 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.