Real-time computing

real-timereal timereal-time systemsrealtimehard real-timenear real-timereal-time systemreal-time processingReal-time softwaretime-critical
In computer science, real-time computing (RTC), or reactive computing describes hardware and software systems subject to a "real-time constraint", for example from event to system response.wikipedia
693 Related Articles

Real-time operating system

real-timeRTOSreal time
Real-time software may use one or more of the following: synchronous programming languages, real-time operating systems, and real-time networks, each of which provide essential frameworks on which to build a real-time software application.
A real-time operating system (RTOS) is any operating system (OS) intended to serve real-time applications that process data as it comes in, typically without buffer delays.

Synchronous programming language

synchronouslogical timesynchronous languages
Real-time software may use one or more of the following: synchronous programming languages, real-time operating systems, and real-time networks, each of which provide essential frameworks on which to build a real-time software application.
For this reason they are often also called real-time systems, and are found often in embedded systems.

Embedded system

embedded systemsembeddedembedded device
Minicomputers, particularly in the 1970s onwards, when built into dedicated embedded systems such as DOG scanners, increased the need for low-latency priority-driven responses to important interactions with incoming data and so operating systems such as Data General's RDOS (Real-Time Disk Operatings System) and RTOS with background and foreground scheduling as well as Digital Equipment Corporation's RT-11 date from this era.
An embedded system is a controller programmed and controlled by a real-time operating system (RTOS) with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints.

RT-11

Minicomputers, particularly in the 1970s onwards, when built into dedicated embedded systems such as DOG scanners, increased the need for low-latency priority-driven responses to important interactions with incoming data and so operating systems such as Data General's RDOS (Real-Time Disk Operatings System) and RTOS with background and foreground scheduling as well as Digital Equipment Corporation's RT-11 date from this era.
RT-11 was first implemented in 1970 and was widely used for real-time systems, process control, and data acquisition across the full line of PDP-11 computers.

Real time Java

Java Real TimeRTSJ
However, several coding libraries exist which offer real time capabilities in a high level language on a variety of operating systems, for example Java Real Time. Other examples are HOOD, Real-Time UML, AADL, the Ravenscar profile, and Real-Time Java.
Real time Java is a catch-all term for a combination of technologies that enables programmers to write programs that meet the demands of real-time systems in the Java programming language.

Scheduling (computing)

schedulingschedulerscheduling algorithm
Compared to these the programmable interrupt controller of the Intel CPUs (8086..80586) generates a very large latency and the Windows operating system is neither a real-time operating system nor does it allow a program to take over the CPU completely and use its own scheduler, without using native machine language and thus surpassing all interrupting Windows code. In the context of multitasking systems the scheduling policy is normally priority driven (pre-emptive schedulers).
In real-time environments, such as embedded systems for automatic control in industry (for example robotics), the scheduler also must ensure that processes can meet deadlines; this is crucial for keeping the system stable.

Interrupt latency

interrupt circuit latencylatency
The possibility to deactivate other interrupts allowed for hard-coded loops with defined timing, and the low interrupt latency allowed the implementation of a real-time operating system, giving the user interface and the disk drives lower priority than the real-time thread.
They can also affect the jitter in the interrupt latency, which can drastically affect the real-time schedulability of the system.

Mission critical

mission-criticalcriticalsafety-critical
Systems used for many mission critical applications must be real-time, such as for control of fly-by-wire aircraft, or anti-lock brakes on a vehicle, which must produce maximum deceleration but intermittently stop braking to prevent skidding.
Real time and Mission critical are often confused by many people but they are not the same concept.

Computer multitasking

multitaskingmulti-taskingmultitask
In the context of multitasking systems the scheduling policy is normally priority driven (pre-emptive schedulers).
Real-time systems such as those designed to control industrial robots, require timely processing; a single processor might be shared between calculations of machine movement, communications, and user interface.

Analog computer

analogue computeranaloganalog computers
Analog computers, most often, were capable of simulating at a much faster pace than real-time, a situation that could be just as dangerous as a slow simulation if it were not also recognized and accounted for.
The use of electrical properties in analog computers means that calculations are normally performed in real time (or faster), at a speed determined mostly by the frequency response of the operational amplifiers and other computing elements.

FTSE 100 Index

FTSE 100FTSEFTSE 100 Component
In a real-time system, such as the FTSE 100 Index, a slow-down beyond limits would often be considered catastrophic in its application context.
It is calculated in real time and published every second when the market is open.

Earliest deadline first scheduling

earliest deadline firstdeadline interchangeEarliest Deadline First (EDF)
Other scheduling algorithms include earliest deadline first, which, ignoring the overhead of context switching, is sufficient for system loads of less than 100%.
There is a significant body of research dealing with EDF scheduling in real-time computing; it is possible to calculate worst case response times of processes in EDF, to deal with other types of processes than periodic processes and to use servers to regulate overloads.

Autonomous peripheral operation

autonomous peripheralSleepWalking
Autonomous peripheral operation
In computing, autonomous peripheral operation is a hardware feature found in some modern microcontroller architectures to off-load certain tasks into embedded autonomous peripherals in order to minimize latencies and improve throughput in hard real-time applications as well as to save energy in ultra-low-power designs.

Real-time computer graphics

real-timereal-time renderingreal time
Real-time computer graphics
Real-time computer graphics or real-time rendering is the sub-field of computer graphics focused on producing and analyzing images in real time.

Ptolemy Project

PtolemyPtolemy IIPtolemy system
Ptolemy Project
The Ptolemy Project is an ongoing project aimed at modeling, simulating, and designing concurrent, real-time, embedded systems.

Scheduling analysis real-time systems

schedulability analysis
Scheduling analysis real-time systems
The term scheduling analysis in real-time computing includes the analysis and testing of the scheduler system and the algorithms used in real-time applications.

Time-utility function

Time-utility function
Time-utility functions (TUFs, also called time-value functions) are needed for real-time computing when a deadline occurs.

Worst-case execution time

WCETworst case timing latencyworst-case
Worst-case execution time
Worst case execution time is typically used in reliable real-time systems, where understanding the worst case timing behaviour of software is important for reliability or correct functional behaviour.

Real-time testing

Real-time testing
Real-time testing is the process of testing real-time computer systems.

Digital signal processing

DSPsignal processingdigital signal processing (DSP)
In a real-time digital signal processing (DSP) process, the analyzed (input) and generated (output) samples can be processed (or generated) continuously in the time it takes to input and output the same set of samples independent of the processing delay.
For systems that do not a have real-time computing requirement and the signal data (either input or output) exists in data files, processing may be done economically with a general-purpose computer.

Adaptive partition scheduler

adaptive partition scheduling
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.
This is very useful for the non real-time subsystems that experience variable load, since these subsystems can make use of spare budget from hard real-time partitions in order to make more forward progress than they would in a fixed partition scheduler such as ARINC-653, but without impacting the hard real-time subsystems' deadlines.

Ravenscar profile

Other examples are HOOD, Real-Time UML, AADL, the Ravenscar profile, and Real-Time Java.
The Ravenscar profile is a subset of the Ada tasking features designed for safety-critical hard real-time computing.

Synthesizer

synthesizerssynthsynths
Consider an audio DSP example; if a process requires 2.01 seconds to analyze, synthesize, or process 2.00 seconds of sound, it is not real-time.
In contrast with MIDI, OSC allows thousands of synthesizers or computers to share music performance data over the Internet in realtime.

DSOS

DSOS
As a consequence, real-time systems were classic examples of "spaghetti code" - complex masses of assembly language software using all sorts of machine-dependent tricks to achieve maximum performance.

Architecture Analysis & Design Language

AADLArchitecture analysis
Other examples are HOOD, Real-Time UML, AADL, the Ravenscar profile, and Real-Time Java.
AADL is used to model the software and hardware architecture of an embedded, real-time system.