Real-time computing

Real-time computing

In computer science, real-time computing (RTC) is the study of hardware and software systems that are subject to a "real-time constraint"—i.e., operational deadlines from event to system response. By contrast, a "non-real-time system" is one for which there is no deadline, even if fast response or high performance is desired or even preferred.The needs of real-time software are often addressed in the context of real-time operating systems, and synchronous programming languages, which provide frameworks on which to build real-time application software.

A real time system may be one where its application can be considered (within context) to be mission critical. The anti-lock brakes on a car are a simple example of a real-time computing system — the real-time constraint in this system is the short time in which the brakes must be released to prevent the wheel from locking. Real-time computations can be said to have "failed" if they are not completed before their deadline, where their deadline is relative to an event. A real-time deadline must be met, regardless of system load.


The term real-time derives from its use in early simulation. While current usage implies that a computation that is 'fast enough' is real-time, originally it referred to a simulation that proceeded at a rate that matched that of the real process it was simulating. Analog computers, especially, were often capable of simulating much "faster" than real-time, a situation that could be just as dangerous as a slow simulation if it were not also recognized and accounted for.

Hard and soft real-time systems

A system is said to be real-time if the total correctness of an operation depends not only upon its logical correctness, but also upon the time in which it is performed. The classical conception is that in a hard or immediate real-time system, the completion of an operation after its deadline is considered useless - ultimately, this may lead to a critical failure of the complete system. A soft real-time system on the other hand will tolerate such lateness, and may respond with decreased service quality (e.g., dropping frames while displaying a video).

Hard real-time systems are used when it is imperative that an event is reacted to within a strict deadline. Such strong guarantees are required of systems for which not reacting in a certain window of time would cause great loss in some manner, especially physically damaging the surroundings or threatening human lives (although the strict definition is simply that missing the deadline constitutes failure of the system). For example, a car engine control system is a hard real-time system because a delayed signal may cause engine failure or damage. Other examples of hard real-time embedded systems include medical systems such as heart pacemakers and industrial process controllers. Hard real-time systems are typically found interacting at a low level with physical hardware, in embedded systems.

In the context of multitasking systems the scheduling policy is normally priority driven (pre-emptive schedulers). Other scheduling algorithms include Earliest Deadline First, which, ignoring the overhead of context switching, is sufficient for system loads of less than 100% [C. Liu and J. Layland. Scheduling Algorithms for Multiprogramming in a Hard Real-time Environment. Journal of the ACM, 20(1):46--61, Jan. 1973.] . New overlay scheduling systems, such as an Adaptive Partition Scheduler assist in managing large systems with a mixture of hard real-time and non real-time applications.

Soft real-time systems are typically used where there is some issue of concurrent access and the need to keep a number of connected systems up to date with changing situations; for example software that maintains and updates the flight plans for commercial airliners. The flight plans must be kept reasonably current but can operate to a latency of seconds. Live audio-video systems are also usually soft real-time; violation of constraints results in degraded quality, but the system can continue to operate.

Real-time and high-performance

Real-time computing is sometimes misunderstood to be high-performance computing, but this is not always the case. For example, a massive supercomputer executing a scientific simulation may offer impressive performance, yet it is not executing a real-time computation. Conversely, once the hardware and software for an anti-lock braking system has been designed to meet its required deadlines, no further performance gains are necessary. Furthermore, if a network server is highly loaded with network traffic, its response time may be slower but will (in most cases) still succeed. Hence, such a network server would not be considered a real-time system: temporal failures (delays, time-outs, etc.) are typically small and compartmentalized (limited in effect) but are not catastrophic failures. In a real-time system, a slow-down beyond limits would often be considered catastrophic in its application context. Therefore, the most important requirement of a realtime system is predictability and not performance.

Some kinds of software, such as many chess-playing programs, can fall into either category. For instance, a chess program designed to play in a tournament with a clock will need to decide on a move before a certain deadline or lose the game, and is therefore a real-time computation, but a chess program that is allowed to run indefinitely before moving is not. In both of these cases, however, high performance is desirable: the more work a tournament chess program can do in the allotted time, the better its moves will be, and the faster an unconstrained chess program runs, the sooner it will be able to move. This example also illustrates the essential difference between real-time computations and other computations: if the tournament chess program does not make a decision about its next move in its allotted time it loses the game—i.e., it fails as a real-time computation—while in the other scenario, meeting the deadline is assumed not to be necessary.

Design methods

Several methods exist to aid the design of real-time systems, an example of which is MASCOT, an old but very successful method which represents the concurrent structure of the system. Other examples are HOOD, Real-Time UML, AADL the Ravenscar profile and Real-Time Java.

Key people

* Alan Burns
* Costas Courcourbetis
* David Dill
* Nicolas Halbwachs
* Arthur Pollen

ee also

*Synchronous programming language
*Ptolemy Project
*Worst-case execution time


External links

Technical committees

* [ IEEE Technical Committee on Real-Time Systems]
* [ Euromicro Technical Committee on Real-time Systems]

Scientific conferences

* [ ECRTS - Euromicro Conference on Real-time Systems]
* [ IEEE Real-time Systems Symposium]
* [ IEEE Real-time Technology and Applications Symposium]
* [ International Symposium on Object-oriented Real-time distributed Computing]
* [ IEEE International Conference on Embedded and Real-Time Computing Systems and Applications]


* [ International Journal of Critical Computer-Based Systems]

Research groups

* [ Real-Time & Embedded Computing Laboratory (USMAN SHARIF BCS-SP03-37)]
* [ Mälardalen Real-Time research Centre]
* [ Real-time, Embedded, and Specialized Systems Platform Task Force]
* [ Real-Time Computing Laboratory]
* [ Real-Time Systems Laboratory]
* [ RTSE Laboratory]
* [ Institute for Systems Engineering - Real Time systems Group]
* [ Real-Time & Embedded Computing Conference]
* [ Vienna University of Technology - Institute for Computer Engineering - Real-Time Systems Group]
* [ Real-Time Systems Research Group at the University of York, UK]
* [ Chalmers University of Technology - Dependable Real-Time Systems research group]
* [ ARTES: a national Swedish strategic research initiative in Real-Time Systems supported by the Swedish Foundation for Strategic Research (SSF), SE]

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Real-time (disambiguation) — Real time, real time, or realtime may refer to:* Real time systems, which respond to events or signals as fast as possible, or as they happen. These include: ** Real time computing, the study of computer systems which are subject to a real time… …   Wikipedia

  • real time — noun 1. the actual time that it takes a process to occur information is updated in real time • Hypernyms: ↑time period, ↑period of time, ↑period 2. (computer science) the time it takes for a process under computer control to occur • Topics …   Useful english dictionary

  • Real time database — A real time database is a processing system designed to handle workloads whose state is constantly changing (Buchmann). This differs from traditional databases containing persistent data, mostly unaffected by time. For example, a stock market… …   Wikipedia

  • Real-time clock — A real time clock (RTC) is a computer clock (most often in the form of an integrated circuit) that keeps track of the current time. Although the term often refers to the devices in personal computers, servers and embedded systems, RTCs are… …   Wikipedia

  • Real Time Analyzer — A Real Time Analyzer (RTA) is a professional audio device that measures and displays the frequency spectrum of an audio signal; a spectrum analyzer that works in real time. An RTA can range from a small PDA sized device to a rackmounted hardware… …   Wikipedia

  • Real time location system — Real Time Locating Systems (RTLS), incorrectly named Real Time Location Systems, according to international standards [ [ ISO/IEC 19762 5] ] , are used to track and identify the location of objects in real time using simple,… …   Wikipedia

  • real-time authorization — UK US noun [uncountable] computing a system that can check whether a customer’s credit card is acceptable in a few seconds, so that an Internet shop can process an order immediately Thesaurus: general words relating to bankinghyponym …   Useful english dictionary

  • Real-time locating standards — Articleissues copyedit=May 2008According to ISO/IEC FDIS 19762 5 [ [] (ISO Subcommittee SC31)] an RTLS (real time locating system) is a combination of hardware and software that is used to continuously determine …   Wikipedia

  • Real-time locating — Articleissues confusing=July 2008 refimprove=May 2008 essay=May 2008: This page specifically concerns operational aspects of RTLS. For methodology issues see locating engine. For technology issues see wireless. According to ISO/IEC JTC1 SC31 and… …   Wikipedia

  • Real-time tactics — Part of a series on …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”