/ˈrɪəl taɪm ˈsɪstəmz/
noun — "systems where being late is the same as being wrong."
Real-Time Systems are computing systems in which the correctness of operation depends not only on logical results but also on the time at which those results are produced. A computation that produces the right answer too late is considered a failure. This timing requirement distinguishes real-time systems from conventional computing systems, where performance delays are typically undesirable but not incorrect.
The defining characteristic of real-time systems is determinism. System behavior must be predictable under all specified conditions, including peak load, hardware interrupts, and concurrent task execution. Tasks are designed with explicit deadlines, and the system must guarantee that these deadlines are met consistently. Timing guarantees are therefore part of the system’s functional specification, not an optimization goal.
Real-time systems are commonly classified into hard, firm, and soft categories based on the consequences of missing deadlines. In hard real-time systems, a missed deadline constitutes a system failure with potentially catastrophic outcomes. Examples include flight control computers, medical devices, and industrial safety controllers. In firm real-time systems, occasional missed deadlines may be tolerated but still degrade correctness or usefulness. In soft real-time systems, missed deadlines reduce quality but do not cause total failure, as seen in multimedia playback or interactive applications.
Scheduling is central to the operation of real-time systems. Tasks are assigned priorities or execution windows based on their deadlines and execution characteristics. Scheduling algorithms such as rate-monotonic scheduling and earliest-deadline-first scheduling are designed to provide mathematical guarantees about task completion under known constraints. These guarantees rely on precise knowledge of worst-case execution time, interrupt latency, and context-switch overhead.
Hardware and software are tightly coupled in real-time systems. Interrupt controllers, hardware timers, and predictable memory access patterns are essential for maintaining timing guarantees. Caches, pipelines, and speculative execution can complicate predictability, so real-time platforms often trade raw performance for bounded behavior. Memory allocation is frequently static to avoid unbounded delays caused by dynamic allocation or garbage collection.
Many real-time systems are implemented using a Real-Time Operating System, which provides deterministic task scheduling, interrupt handling, and inter-task communication. Unlike general-purpose operating systems, these systems are designed to minimize jitter and provide strict upper bounds on response times. In simpler deployments, real-time behavior may be achieved without an operating system by using carefully structured control loops and interrupt service routines.
A typical operational example is an automotive braking controller. Sensors continuously measure wheel speed, a control algorithm evaluates slip conditions, and actuators adjust braking force. Each cycle must complete within a fixed time window to maintain vehicle stability. Even a brief delay can invalidate the control decision, regardless of its logical correctness.
The execution pattern of a simple real-time task can be represented as:
<loop every 5 milliseconds> < read_inputs();> < compute_control();> < update_outputs();> <end loop> Increasingly, real-time systems operate within distributed and networked environments. Coordinating timing across multiple nodes introduces challenges such as clock synchronization, network latency, and fault tolerance. Protocols and architectures are designed to ensure that end-to-end timing constraints are met even when computation spans multiple devices.
Conceptually, a real-time system is defined by obligation rather than speed. It is not about running as fast as possible, but about running exactly fast enough, every time, under all permitted conditions.
See Embedded Systems, Deterministic Systems, Real-Time Operating System.