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 programs, 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 pacemakers 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.
It is important to note that hard versus soft real-time does not necessarily relate to the length of time available. A machine may overheat if a processor does not turn on cooling within 15 minutes (hard real-time). On the other hand, a network interface card may lose buffered data if it is not read within a fraction of a second — but the data can be resent over the network if needed, perhaps without a delay noticeable to the user.
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.
Key People
David Dill Rajeev Alur Costas Courcourbetis
See also
External links
- Real-time audio: http://grassomusic.de/english/buffers.htmde:Echtzeit-Verarbeitung