From: bloom-picayune.mit.edu!mintaka.lcs.mit.edu!spdcc!merk!alliant!russ@bloom- beacon.mit.edu (Russell McFatter)
Subject: Re: What is "real-time"?
Date: 19 Oct 92 20:17:34 GMT [thread overview]
Message-ID: <1992Oct19.201734.29991@alliant.com> (raw)
In article <1992Oct17.012952.13340@afit.af.mil> mawhelan@afit.af.mil (Michael A
. Whelan) writes:
>Real-time software does not have to be fully deterministic. It has to
>meet the deadlines of the application domain for a response. The key is
[...]
> The reason is the responses were
>deterministic. Even to the guy shooting. Again, the key is meeting a
>response time requirement for the application domain, not a fully
>deterministic system.
>
[...]
>
>Mike Whelan
>
No! When I said "deterministic", of course, I meant time-domain
determinism, not that the code produces the same output (responses) to
different input (stimuli)!
The other suggestions being bantered around ("must produce a result or act
on the data before the required deadline") are also weak, at best.
Put your own personal definitions of "real-time" through the following
quiz:
1: Is a system "real-time" if it completes processing input data
substantially faster than it did the same input on a previous "run",
EVEN THOUGH both attempts met the required "deadline"?
Answer: NO. As a real-time developer, you would be as concerned of
results coming back too early as you would of them coming back too
"late". Why? Because, theoretically, if the system completed the
processing "quickly" on the faster pass, something unrelated to
the system itself-- a total unknown-- delayed the "slow" pass. You
would be correct to worry that this unknown might cause you to
miss the deadline at some point in the future. (Obviously, conditions
known to the developer-- such as the presence or absence of higher-
priority tasks, can affect time-to-solution even though they are not
"unknowns").
2: Does a real-time system ALWAYS process input in the same
(deterministic) time?
Answer: NO. Many applications' performance depends on the kind or amount
of data being processed. The key is that the timing is, at least,
*predictable*. That way the designer knows that the system will meet
the specifications under all of the specified conditions.
3: Does real-time code always meet its deadlines?
Answer: NO. The deadlines are only guaranteed to be met when the work
meets the criteria that the real-time system is certified for. The
specifications may or may not say what is to be done if the deadlines
cannot be met. Your phone system, for example, is a real-time system
to a great extent-- at certain times. On "older" switches, for
example, your line was polled about ten times per second when your
phone was on the hook, to see if you had picked it up or not. After
picking up the phone, the system had to provide a dial tone within a
certain amount of time, at which point the line is scanned about
100 times per second for dial pulses/DTMF.
What if every phone on the switch is picked up at once? Well, that's
outside the specifications for "real-time" behavior, so the switch is
free to fall into some kind of backup strategy (resulting in very long
wait for dial tone, error tone or other message, or perhaps, if this
situation was not anticipated in the specs, a complete collapse of the
domestic dial network).
A real-time application might detect this kind of situation by
prequalifying the input ("Hmmm... I count 8 radar targets... I know
I can't handle that many in the time requirements, so take the first
6 and put up a warning to the operator"), or by an OS-supplied
scheduler feature. For example, a frame scheduler might provide two
different behaviors on frame overruns-- one preempts the process whose
frame has ended, thus preventing it from interfering with possibly
"more critical" processes in adjacent frames; or it might allow the
process to continue, but send it an "overrun" signal or interrupt
that it can use to somehow change its behavior ("I haven't been
counting radar targets, but I'm not meeting my deadline. I'll start
ignoring targets beyond a certain distance and will warn the
operator.")
4: Parts of a "real-time" system can be nondeterministic, but the results
can still be considered "real-time".
Answer: TRUE. Example: You have a fairly slow PC running a
bulletin-board system. Your *only* specification: The BBS must allow
1024-character typeahead at rates of up to 2400 baud, under all
circumstances. You collect a username and password, and then access
a floppy-disk to look up the user information. This might take
anywhere from 3 to 30 seconds, and is entirely nondeterministic;
meanwhile the user might be blasting away at a full 2400 baud.
HOWEVER: You implemented the serial connection using an interrupt
handler at a higher priority than the floppy drive; thus no characters
are lost (even though the floppy access might slow to a crawl). Your
BBS meets your own "real-time" criteria despite the fact that the
non-critical components are nondeterministic. Of course, if some other
interrupt is possible at a higher priority (say a mouse or other
external device), the system no longer meets the "real-time"
requirements. If you were requiring *unlimited* typeahead, the specs
would be a bit harder to meet.
If you're asking: How can this setup be considered "real-time" at
all? Suppose for the moment that the PC is receiving data once an hour
from a real-time system that has a deterministic time in which to
connect to the PC, transmit a username/password and some sort of data,
then disconnect (regardless of response from the PC) and get on with
its other work.
Simple "real-time" requirements can almost always be faked in hardware
(by passing off the task to some dedicated device that has nothing
"better" to do). Example: A terminal multiplexor. It has its own
buffer, does its own character echoing, and generally won't lose input
even if the main CPU takes a "long" time to get around to reading
from it. You can even bring the entire machine to a stop and the
multiplexor keeps on handling user input-- to a point...
ip00> mti: duart overrun (059004, -1):
5: A system is either clearly "real-time" or not, regardless of its
purpose.
Answer: FALSE. You might consider that there is a *scale* to real-time
events; a range of "legal" nondeterminism for a particular kind of
event to happen-- an allowable "plus or minus" that is still, for
"all practical purposes", deterministic. For example, no computer
system can be more time-deterministic than its own clock frequency allows
for. A credit-card authorization network might be documented to have
a deterministic response time of "8 seconds" for any successful
transaction, and "no more than 11 seconds" for any unsuccessful
one. It is reasonable to say that an "approved" response will never
happen in four seconds, or forty seconds, when the system is behaving
properly-- but, for the purposes intended (to not keep the customer
waiting), 8.1 seconds might be considered within the "deterministic"
window, and given the variable delay of the phone transmission itself,
the variation is unavoidable.
An additional note:
Be very careful when using the word "critical" to discuss real-time
systems and components, because the word has so many meanings. Example:
which of the following is more "critical"?
1: A task which controls firing of an automobile's spark plugs
2: A task which controls the Space Shuttle's brakes in response to
the pilot's controls
Well, in the first case, the misfiring of a spark plug probably won't
kill anyone. However, the *timing* is critical-- if off by even a tenth
of a second, the entire engine won't run (or could be irreversibly
damaged). On the shuttle, a delay of even two entire seconds in applying
the brakes would be unlikely to endanger the mission or anyone on it,
given the length of the runway. The real-time "scale" and the "failure
penalty" are entirely independent, even though the word "critical" is often
used to described both.
--- Russ McFatter [russ@alliant.com]
std. disclaimers apply.
next reply other threads:[~1992-10-19 20:17 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
1992-10-19 20:17 bloom-picayune.mit.edu!mintaka.lcs.mit.edu!spdcc!merk!alliant!russ [this message]
-- strict thread matches above, loose matches on Subject: below --
1992-10-22 15:38 What is "real-time"? dog.ee.lbl.gov!hellgate.utah.edu!cs.utexas.edu!csc.ti.com!tilde.csc.ti.co
1992-10-21 18:34 Al Mok
1992-10-21 3:58 munnari.oz.au!metro!seagoon.newcastle.edu.au!wombat.newcastle.edu.au!eepj
1992-10-20 15:41 Daniel Wengelin
1992-10-20 0:29 Ian Cunningham
1992-10-19 13:02 MILLS,JOHN M.
1992-10-18 20:31 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!cs.utexas.edu!wupost!spool.m
1992-10-18 14:28 cis.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!do
1992-10-17 21:35 Hossein Moiin
1992-10-17 20:10 Don Gillies
1992-10-17 20:02 dog.ee.lbl.gov!hellgate.utah.edu!caen!zaphod.mps.ohio-state.edu!cis.ohio-
1992-10-17 15:18 mcsun!uknet!yorkohm!minster!mjl-b
1992-10-17 12:25 Mike Palmer
1992-10-17 10:36 Sean Case
1992-10-17 1:29 Michael A. Whelan
1992-10-16 23:14 news.orst.edu!umn.edu!micro.cs.umn.edu!hansen
1992-10-16 21:38 Tim Chambers
1992-10-15 21:41 Bob Kitzberger
1992-10-15 16:36 uwm.edu!cs.utexas.edu!sun-barr!news2me.EBay.Sun.COM!exodus.Eng.Sun.COM!br
1992-10-15 15:35 Val Kartchner
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox