Real-time Systems

TOPIC AREA

What Are Real-time Systems?

Real-time systems are computing systems in which correctness depends on both the logical result and the time at which that result is produced. A result delivered too late, even if logically correct, constitutes a system failure. The field encompasses hardware platforms, operating system kernels, programming languages, scheduling algorithms, and verification techniques all shaped by the discipline of meeting timing requirements reliably and predictably. Real-time systems appear in aircraft flight control, automotive braking and engine management, medical devices, industrial process control, telecommunications infrastructure, and consumer multimedia.

The defining characteristic of a real-time system is the presence of timing constraints, expressed as deadlines that tasks must meet. The system architecture, from interrupt latency in the processor to scheduling policy in the kernel, must be designed and analyzed to guarantee or probabilistically bound deadline satisfaction. This requirement distinguishes real-time systems from high-performance computing, where the goal is maximum average throughput rather than worst-case latency.

Hard and Soft Real-time Systems

Real-time systems are classified by the consequences of missing a deadline. In a hard real-time system, missing any deadline is categorically unacceptable: the failure could result in loss of life, property damage, or safety-critical malfunction. Automotive airbag deployment, fly-by-wire flight control, and implantable defibrillators are canonical examples. Hard real-time systems require formal worst-case execution time (WCET) analysis and schedulability proofs to demonstrate that all deadlines will be met under the worst-case combination of task arrivals and execution times.

In a soft real-time system, occasional deadline misses degrade performance but do not cause catastrophic failure. Streaming video players, voice-over-IP clients, and online gaming engines tolerate bounded latency variation (jitter) while maintaining acceptable user experience. The boundary between hard and soft is not always sharp: multimedia systems often impose hard deadlines on interrupt handlers and soft deadlines on rendering, using priority assignment to protect the critical path.

Real-time Operating Systems

A real-time operating system (RTOS) provides the primitives that application tasks need to meet their deadlines: preemptive priority scheduling, bounded interrupt latency, high-resolution timers, and predictable inter-task communication. Widely used RTOSes include VxWorks, QNX, FreeRTOS, and real-time Linux variants such as PREEMPT_RT. Unlike a general-purpose OS, an RTOS minimizes non-determinism by disabling or bounding sources of variable latency such as dynamic memory allocation, page faults, and priority inversion. The OSEK/VDX standard, developed for automotive embedded systems, specifies an RTOS API and conformance classes that remain influential in vehicle software stacks.

Certification of safety-critical real-time software requires adherence to standards such as DO-178C for avionics and IEC 61508 for industrial safety, both of which impose requirements on software development processes and evidence of timing correctness.

Scheduling in Real-time Systems

Scheduling theory provides the analytical foundation for deciding which task runs on which processor at each moment. Rate-monotonic scheduling (RMS) assigns fixed priorities based on task periods: shorter-period tasks receive higher priority. Liu and Layland's 1973 result established the utilization bound below which RMS guarantees all deadlines on a single processor. Earliest-deadline-first (EDF) scheduling assigns priority dynamically to the task with the nearest deadline and achieves higher utilization at the cost of greater implementation complexity. Research surveyed in IEEE Transactions on Computers extends these classical results to multiprocessor systems, mixed-criticality workloads, and tasks with variable execution times.

WebRTC and Network Real-time Communication

WebRTC is an open standard that enables real-time audio, video, and data communication directly between browsers and applications without plugins. It bundles adaptive jitter buffers, forward error correction, and congestion control algorithms tuned for sub-second latency. The WebRTC specification maintained by the W3C and IETF defines the JavaScript APIs and network protocols that underpin video conferencing, live streaming, and collaborative applications across the web.

Applications

  • Flight control computers in commercial and military aircraft requiring sub-millisecond response
  • Automotive powertrain and chassis control modules certified to ISO 26262
  • Industrial programmable logic controllers for factory automation and process control
  • Network packet forwarding and traffic shaping in telecommunications switches
  • Medical patient monitors requiring guaranteed alarm response times
  • Live video production and broadcast playout systems with frame-accurate synchronization

Topics in this Area