Main Page | See live article | Alphabetical index

Real-time computing

Real-time computing is the subject of hardware and software systems which are subject to constraints in time. Some kinds of software, such as many chess-playing programss, are allowed as much time as needed to perform a computation such as the next chess move. Web servers are an example of software that people work hard to optimize for performance, yet performance problems rarely incur any serious penalty.

A distinction can be made between those systems which will suffer a critical failure if time constraints are violated (hard or immediate real-time), and those which will not (soft real-time).

Hard real-time systems are typically found interacting at a low level with physical hardware, in embedded systems. For example, a car's engine management 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 pacemakerss and industrial process controllers.

Soft real-time systems are typically those used where there is some issue of concurrent access and the need to keep a number of connected systems up to date with a changing situation on the ground. An example would be the software that maintains and updates the flight plans for commercial airliners. These can operate to a latency of seconds. It would not be possible to offer modern commercial air travel if these computations could not reliably be performed in real time. Live audio-video systems are also typically soft real-time; violation of constraints results in degraded quality, but the system can continue to operate.

The needs of real-time software are often addressed with the use of real-time operating systems, which provide a framework upon which to build real-time application software.

See also