rdoyle@zaphod.axion.bt.co.uk (Richard Doyle) (10/16/89)
I am currently involved in some work on real-time systems and real-time design methods, and I am looking for references to help me with the following questions: 1. What characteristics of a system make it "real-time"? 2. How many different classes of real-time systems are there, based on an assessment by characteristics? Any help that people can provide in this area will be greatly appreciated. (Please reply by e-mail). Richard Doyle ============================================================================== E-Mail: rdoyle@axion.bt.co.uk Organisation: British Telecom Research Labs (RT3123) Address: BTRL, Rm G23 SSTF, Martlesham Heath, Ipswich, Suffolk, UK. Phone: + 44 473 646654 "I am the new Number Two" ==============================================================================
es@sinix.UUCP (Dr. Sanio) (10/17/89)
In article <2925@zaphod.axion.bt.co.uk> rdoyle@zaphod.axion.bt.co.uk writes: >I am currently involved in some work on real-time [..] > 1. What characteristics of a system make it "real-time"? > 2. How many different classes of real-time systems are there, > based on an assessment by characteristics? >(Please reply by e-mail). > Richard Doyle Some time ago, I recognized that ideas about "What is a correct rt implemen- tation" widely vary among developers, suppliers etc . So there might be some discussion. If so, either Richard should send a moderated summary or people should post as well. regards, es
rad@aragorn.cm.deakin.oz.au (Robert Alan Dew) (10/18/89)
In article <618@athen.sinix.UUCP> es@athen.UUCP (Dr. Sanio) writes: #In article <2925@zaphod.axion.bt.co.uk> rdoyle@zaphod.axion.bt.co.uk writes: #>I am currently involved in some work on real-time [..] #> 1. What characteristics of a system make it "real-time"? #> 2. How many different classes of real-time systems are there, #> based on an assessment by characteristics? # #>(Please reply by e-mail). #> Richard Doyle #Some time ago, I recognized that ideas about "What is a correct rt implemen- #tation" widely vary among developers, suppliers etc . So there might be some #discussion. #If so, either Richard should send a moderated summary or people should post #as well. #regards, es I would also appreciate the answers posted for the above 2 questions. Robert Dew rad@aragorn.cm.deakin.oz.au
vestal@SRC.Honeywell.COM (Steve Vestal) (10/20/89)
> 1. What characteristics of a system make it "real-time"? > 2. How many different classes of real-time systems are there, Here are some proposed definitions that have been kicked around here: real-time: System requirements include quantitative specifications of performance. hard real-time: Quantitative performance requirements are given as inviolable, fixed deadlines (e.g., a periodically scheduled task, once dispatched, must absolutely positively complete prior to the next time it is dispatched.) soft real-time: Quantitative performance requirements are given as statistical measures (e.g., under a postulated missile arrival rate, the system must complete the "processing" of an incoming missile within time T with probability P after that missile is detected). "If it's late it's wrong" succinctly captures the second definition. However, it might also be useful to adjust it just a bit to say "if it's late it's a fault." The reason is that in some systems the very occasional missing of a deadline can be patched over to provide a degree of fault-tolerance. For example, in some control systems, if a task reaches a deadline without completing then it may be acceptable to output an approximate value every great once in awhile.
rlk@telesoft.com (Bob Kitzberger @sation) (10/20/89)
In article Richard Doyle writes: > > 1. What characteristics of a system make it "real-time"? > I'll throw in an anecdotal description of real-time systems... Here's my favorite quotation on the subject, which appears in DeMarco's foreword to _Strategies For Real-Time System Specification_ by Hatley & Pirbhai : "Most systems people use the term ``real-time'' rather loosely," the young manager said. [...] "They say they've got a real-time constraint when they're worried about impatient insurance brokers or bankers sitting in front of their terminals. A real-time system, in their minds, is just one that needs to be `quick as a bunny'. If they fail to meet that constraint, their users might be inconvenienced or even annoyed. When we use the term, it means something rather different." Her coworkers began to smile, knowing what was coming. "We build systems that reside in a small telemetry computer, equipped with all kinds of sensors to measure electromagnetic fields and changes in temperature, sound, and physical disturbance. We analyze these signals and transmit the results back to a remote computer over a wide-band channel. Our computer is at one end of a one-meter long bar and at the other end is a nuclear device. We drop them together down a big hole in the ground and when the device detonates, our computer collects data on the leading edge of the blast. The first two-and-a-quarter milliseconds after detonation are the most interesting. Of course, long before millisecond three, things have gone down hill badly for our little computer. We think of *that* as a real-time constraint." .Bob. -- Bob Kitzberger Internet : telesoft!rlk@ucsd TeleSoft uucp : ...!ucsd.ucsd.edu!telesoft!rlk 5959 Cornerstone Ct. West at&t : (619) 457-2700 x163 San Diego, CA 92121-9891 "It's a damn poor mind that can only think of one way to spell a word." -- Andrew Jackson ------------------------------------------------------------------------------
eberard@ajpo.sei.cmu.edu (Edward Berard) (10/20/89)
I realize that most of the people who were involved in programming during the 1960s and 1970s "have all gone on now to a much happier place" (;-)). However, there are some terms which originated in those times which are still used today, e.g.: - "wall time": The origin of this term had to do with "a clock on the wall." It was meant to refer to the actual amount of time which passed while a piece of code was executing. - "CPU time": This term referred to the amount of time which the computer (i.e., the CPU) devoted specifically, and exclusively, to a piece of executing code. It was not uncommon to hear people say things like: "The wall time on that sucker was 15 minutes, but, you know, the CPU time was only 7 seconds." Obviously, "wall time" and "CPU time" helped to determine the "real" capabilities of a computer system once computers began to handle two or more "jobs" at once. (Although most folks these days think of Apple and NeXT when they hear the word "jobs," there was a time when "job" referred to a complete unit of work which was submitted to the computer, or, more accurately, to an operator. 8-}) Somewhere in the distant past (probably the 1960s), someone got the idea that a computer program, given the proper "peripherals," could interact with things outside the computer, _while_ _the_ _program_ _was_ _executing_. Thus we were introduced to a "new kind of time": - "real time": A real time program is a program which is aware of, and/or synchronized with, events which take place in the "real world" (i.e., "outside" of the computer) while the program is executing. Said another way, the program is aware of the passage of "real time" during its execution. There are some interesting consequences of this definition: 1. We notice a fundamental characteristic of "real time" applications, i.e., they _must_ be connected to the outside world (directly or indirectly). If a piece of code is very small, and executes very quickly, but is not connected to the outside world, it is not a real time program. 2. All interactive programs (usually taken to mean programs which interact with human users during execution) are "real time programs." 3. Programs which must very closely simulate real life conditions, especially situations where reaction time is critical, and are interactive, also fall into the category of real time software. Aircraft flight simulation software, even though it executes on "minicomputers" is an example of this type of software. 4. Of course, much of the software in embedded systems is real time software. (An embedded computer is a computer which is part of some larger piece of hardware, e.g., the computers embedded in aircraft, automobiles, wristwatches, microwave ovens, pacemakers, and, yes, even larger computers.) It is most often in the case of embedded applications that we hear of severe memory and time constraints. However, these alone do not qualify an application as real time. There must be some direct, or indirect, connection with the outside world. [One of the recreational activities which real time programmers often participate in is a "real time rank out," a game characterized by much blustering and posturing on the part of the participants. (The testosterone and estrogen of the players often reach elevated levels.) The central idea is to impress your opponent with the fact that _your_ software had to accomplish an ungodly amount of processing, with only a minuscule amount of resources. The only rule is that there are no winners. ;-)] There are characteristics commonly found in real time systems, e.g.: - infinite loops: While infinite loops are discouraged in non-real-time systems, they are very common in real time systems. Consider, for example, the fuel gauge in an automobile. The software associated with the fuel gauge continually tests the level of fuel in the tank, and continually reports this to the fuel gauge. - concurrency: The "real world" is concurrent, therefore, many real time applications reflect this. An example would be the software which is used in modern aircraft autopilots. Based on such things as the desired course, the current altitude, the current level of thrust, and the current heading, autopilots help guide the aircraft. Many sensors scattered throughout the aircraft may all be reporting simultaneously to the autopilot. However, neither of these characteristics _alone_ makes a system real time. -- Ed Berard (301) 353-9652
stein@dhw68k.cts.com (Rick Stein) (10/21/89)
In article <2925@zaphod.axion.bt.co.uk> rdoyle@zaphod.axion.bt.co.uk writes: > 1. What characteristics of a system make it "real-time"? I define a real-time system as any simulation requiring that a finite amount of work be accomplished in some specified, predetermined interval of time. > 2. How many different classes of real-time systems are there, > based on an assessment by characteristics? Classification by taxonomy is useful, but only for discussion. Imbedded or non-imbedded; those are the only ones that I know of. I think about real-time systems as consisting of some combination of synchronous and asynchronous processes. Each may rely on interrupts, polling, or message passing to operate. While I'm on the subject, does anyone know of any references to real-time multicomputer systems using transputers? I'm working on a book entitled "Real-time Multicomputer Software Systems" and I'm curious to know if any one may have a requirement for such a beastie. > > Richard Doyle -- Richard M. Stein (aka, Rick 'Transputer' Stein) Sole proprietor of Rick's Software Toxic Waste Dump and Kitty Litter Co. "You build 'em, we bury 'em." uucp: ...{spsd, zardoz, felix}!dhw68k!stein
korenek@ficc.uu.net (Gary Korenek) (11/17/89)
In article <7861@charlie.OZ>, rad@aragorn.cm.deakin.oz.au (Robert Alan Dew) writes: > In article <618@athen.sinix.UUCP> es@athen.UUCP (Dr. Sanio) writes: > #In article <2925@zaphod.axion.bt.co.uk> rdoyle@zaphod.axion.bt.co.uk writes: > #>I am currently involved in some work on real-time [..] > #> 1. What characteristics of a system make it "real-time"? > #> 2. How many different classes of real-time systems are there, > #> based on an assessment by characteristics? > ... Here's my interpretation of "real time" and "real-time computer system": Real-time: Exactly that. What's going on "as it occurs". Broadcasters announce football games (for example) in real-time. What the play-by-play announcers say has particular value because the game is happening *now*. Real-time computer system: A computer system that measures each event in a process as the events occur (in "real-time"). Possible processes where real-time measurement is desirable are: pipe line, refinery, oilfield, combustion engine, aircraft, building enviroment (air conditioning/heating), electrical power generation (and distribution), manufacturing. In general, the computer system acquires data from the process via instrumentation connected to certain physical parts of the process (these are called "points"... it's a point that a measurement is taken). Two possible categories of real-time computer systems are open-loop and closed-loop. An example of an open-loop system: the system obtains measurements from points in the process, converts the data from digital "instrument" format to "human usable" format, and communicates the data values to whoever is interested in seeing it (typically people who are responsible for the "quality" or "results" of the process). These people can then take the data and either ignore it, or do something with it (go manually open or close a valve, as an example). If the open-loop system includes a means to *control* (make chages to) the process, the responsible people may enter commands for the system to send out to the process (the system can open or close a valve, as an example). The main points to the open-loop system are: The system obtains data from the process, reports the data to responsible people, who then can elect to either to take action (alter the process and the result of the process) or do nothing. People are "in control" of (and are responsible for) the process. The goal is to have the process produce the desired result. An example of an closed-loop system: the system obtains measurements from points in the process. Based on this data, the *system itself* decides if the process should be altered or left alone (the system itself is responsible for the desired result of the process). If the system decides the process should be altered, it sends commands out to the process. The system obtains more measurements from the process (which is now changing because of the commands previously sent out), again decides if the process should be altered, etc. The main points to the closed-loop system are: The system obtains data from the process, and based on this data decides either to take action or do nothing. The system itself is "in control" of (and is responsible for) the process. Again, the goal is to have the process produce the desired result. Note: Some real-time systems are combinations of open-loop and closed- loop systems. There may be one or more closed-loop systems that control an individual part of a process. The closed-loop controller(s) are connected to the open-loop system in such a way that when a responsible person enters a command into the open-loop system (to alter the process), the open-loop system sends the command to the closed- loop controller, which then commands that part of the process to change. In this case, people *and* equipment share responsibility for the process to produce the desired result. In summary, these are real-time systems because they deal with events that occur within a process *as the events occur* (in real-time!). -- Gary Korenek (korenek@ficc.uu.net) | This space Ferranti International Controls Corp. | intentionally Sugar Land, Texas (713)274-5357 | left blank