All Topics  
Real-time computing

 

   Email Print
   Bookmark   Link






 

Real-time computing



 
 
In computer science
Computer science

Computer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems....
, real-time computing (RTC) is the study of hardware
Computer hardware

A personal computer is made up of computer hardware, multiple physical components onto which can be loaded into a multitude of software that perform the functions of the computer....
 and software
Computer software

Computer software, or just software is a general term used to describe a collection of computer programs, Algorithm and Software documentation that perform some tasks on a computer system....
 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 preferred. The needs of real-time software are often addressed in the context of real-time operating system
Real-time operating system

A Real-Time Operating System is a Computer multitasking operating system intended for real-time computing applications. Such applications include embedded systems , industrial robots, spacecraft, industrial control , and scientific research equipment....
s, and synchronous programming language
Synchronous programming language

A synchronous programming language is a computer computer programming programming language optimized for programming reactive systems, systems that are often interrupted and must respond quickly....
s, 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
Mission Critical

The term mission critical refers to any factor which is crucial to the successful completion of an entire project. It may also refer to a project the success of which is vital to the mission of the organization which attempts it....
.






Discussion
Ask a question about 'Real-time computing'
Start a new discussion about 'Real-time computing'
Answer questions from other users
Full Discussion Forum



Encyclopedia


In computer science
Computer science

Computer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems....
, real-time computing (RTC) is the study of hardware
Computer hardware

A personal computer is made up of computer hardware, multiple physical components onto which can be loaded into a multitude of software that perform the functions of the computer....
 and software
Computer software

Computer software, or just software is a general term used to describe a collection of computer programs, Algorithm and Software documentation that perform some tasks on a computer system....
 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 preferred. The needs of real-time software are often addressed in the context of real-time operating system
Real-time operating system

A Real-Time Operating System is a Computer multitasking operating system intended for real-time computing applications. Such applications include embedded systems , industrial robots, spacecraft, industrial control , and scientific research equipment....
s, and synchronous programming language
Synchronous programming language

A synchronous programming language is a computer computer programming programming language optimized for programming reactive systems, systems that are often interrupted and must respond quickly....
s, 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
Mission Critical

The term mission critical refers to any factor which is crucial to the successful completion of an entire project. It may also refer to a project the success of which is vital to the mission of the organization which attempts it....
. 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
Load (computing)

In UNIX computing, the system load is a measure of the amount of work that a computer system is doing. The load average is the average system load over a period of time....
.

History

The term real-time derives from its use in early simulation
Simulation

Simulation is the imitation of some real thing, state of affairs, or process. The act of simulating something generally entails representing certain key characteristics or behaviors of a selected physical or abstract system....
. 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 real-time 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
Automobile

An automobile or motor car is a wheeled motor vehicle for transportation passengers, which also carries its own car engine or motor. Most definitions of the term specify that automobiles are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels, and to be constructed principally f...
 engine
Engine

An engine is a mechanical device that produces some form of output from a given input.An engine whose purpose is to produce kinetic energy output from a fuel is called a Wiktionary:prime mover; alternatively, a motor is a device which produces kinetic energy from a preprocessed "fuel" ....
 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 pacemaker
Artificial pacemaker

A pacemaker is a medical device which uses electrical impulses, delivered by electrodes contacting the heart muscles, to regulate the beating of the heart....
s and industrial process controllers. Hard real-time systems are typically found interacting at a low level with physical hardware, in embedded system
Embedded system

An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints....
s.

In the context of multitasking
Computer multitasking

In computing, multitasking is a method by which multiple tasks, also known as Computer process, share common processing resources such as a Central processing unit....
 systems the scheduling policy is normally priority driven (pre-emptive schedulers). Other scheduling algorithms include Earliest Deadline First
Earliest deadline first scheduling

Earliest Deadline First or is a dynamic scheduling algorithm used in real-time operating systems. It places processes in a priority queue. Whenever a scheduling event occurs the queue will be searched for the process closest to its deadline....
, which, ignoring the overhead of context switch
Context switch

A context switch is the computing process of storing and restoring the State of a Central processing unit such that multiple Process es can share a single CPU resource....
ing, is sufficient for system loads of less than 100% . New overlay scheduling systems, such as an Adaptive Partition Scheduler
Adaptive Partition Scheduler

Adaptive Partition Schedulers are a relatively new type of partition scheduler, pioneered with the most recent version of the QNX operating system....
 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 airline
Airline

File:Fedex-md11-N525FE-051109-21-16.jpgFile:Ryanair.b737-800.aftertakeoff.arp.jpgAn airline provides civil aviation for passengers or freight, generally with a recognized operating certificate or license....
rs. 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
High-performance computing

High-performance computing uses supercomputers and computer clusters to solve advanced computation problems. Today, computer systems approaching the teraflops-region are counted as HPC-computers....
, but this is not always the case. For example, a massive supercomputer
Supercomputer

A supercomputer is a computer that is at the frontline of current processing capacity, particularly speed of calculation. Supercomputers introduced in the 1960s were designed primarily by Seymour Cray at Control Data Corporation , and led the market into the 1970s until Cray left to form his own company, Cray Research....
 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
Network traffic

Network traffic is data in a network. In computer networks, the data is encapsulated in Packet s.*Network traffic control*Network traffic measurement...
, 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, such as the FTSE 100 Index
FTSE 100 Index

The FTSE 100 Index is a share index of the 100 most highly market capitalisation UK company listed on the London Stock Exchange. The index began on 3 January 1984 with a base level of 1000; the highest value reached to date is 6950.6, on 30 December 1999....
, 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
Computer chess

Computer chess is computer architecture encompassing computer hardware and computer software capable of playing chess Autonomy without human guidance....
, 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
Modular Approach to Software Construction Operation and Test

The Modular Approach to Software Construction Operation and Test is a software development process developed under the auspices of the Ministry of Defence starting in the early 1970s at the Royal Radar Establishment and continuing its evolution over the next twenty years....
, an old but very successful method which represents the concurrent
Concurrency (computer science)

In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other....
 structure of the system. Other examples are HOOD
HOOD method

HOOD is a detailed software design method. It is based on hierarchical decomposition of a software problem.It comprises textual and graphical representations of the design....
, Real-Time UML, AADL the Ravenscar profile
Ravenscar profile

The Ravenscar profile is a subset of the Ada programming language tasking features designed for safety-critical hard real-time systems....
 and Real-Time Java
Real time Java

Real time Java is a catch-all term for a combination of technologies that allows programmers to write Computer programs that meet the demands of Real time systems in the Java ....
.

Key people

  • Alan Burns
    Alan Burns

    Professor Alan Burns is a professor in the Computer Science Department at the University of York. He has been at the University of York since 1990, and held the post of Head of Department from 1999 until 30 June 2006, when he was succeeded by John McDermid....
  • Costas Courcourbetis
  • David Dill
  • Nicolas Halbwachs
  • Arthur Pollen
    Arthur Pollen

    Arthur Joseph Hungerford Pollen was a writer on naval affairs in the early 1900s who recognised the need for a computer based fire-control system....
  • Bruce Douglass


See also

  • Synchronous programming language
    Synchronous programming language

    A synchronous programming language is a computer computer programming programming language optimized for programming reactive systems, systems that are often interrupted and must respond quickly....
  • Ptolemy Project
  • DSOS
    DSOS

    DSOS was a real-time operating system developed by Texas Instruments' Geophysical Service Incorporated in the mid-1970's....
  • Worst-case execution time


External links


Technical committees



Scientific conferences



Journals



Research groups