Real-time computing

The term "real-time computing" (RTC) is used in the field of computer science to refer to hardware and software systems that are bound by a "real-time constraint," such as the amount of time between an event and the system's reaction. Real-time programming requires a response assurance to be made within certain time limits, which are often referred to as "deadlines."

Response times in real time are often thought to be on the range of milliseconds, and sometimes microseconds. Although average or predicted response times may be provided, in most cases a system that is not described as working in real time is unable to guarantee that it will respond within any certain amount of time. Processing in real time is considered unsuccessful if it is not finished within a predetermined time limit in relation to an event. Deadlines must always be reached, regardless of the amount of work being done by the system.

One definition of a real-time system is that it "controls an environment by receiving data, processing them, and providing the results in sufficient quickness to alter the environment at that moment." In the context of simulation, the phrase "real-time" may also indicate that the clock in the simulation operates at the same speed as a real clock. Meanwhile, in the context of process control and enterprise systems, the term "real-time" might mean "without considerable delay."

Real-time software may make use of one or more of the following: synchronous programming languages, real-time operating systems (RTOSes), and real-time networks. These are all essential frameworks on which to build a real-time software application, and real-time software may make use of one or more of these as well.

Real-time processing is required for many safety-critical applications, such as the control of fly-by-wire aeroplanes or anti-lock brakes, both of which need quick and precise mechanical reaction. This necessitates the usage of systems that operate in the present moment.