Overview

Real-time computing is a branch of computer science and engineering concerned with systems that must produce correct results within strict timing constraints. Unlike general-purpose computing, where throughput or average response time are often the primary goals, a real-time system is judged by its ability to meet deadlines reliably. The topic spans hardware, operating systems, middleware, and application design; for a general introduction see the field of computer science overview.

Key properties and terminology

Important concepts include deadlines (the time by which a result must be available), latency (delay between an event and a response), determinism (predictable behavior under specified conditions) and jitter (variation in response time). Designers aim to bound worst-case execution time and to ensure bounded interrupt and scheduling latencies so that responses remain predictable. Typical engineering measures include preemptive scheduling, priority assignment, watchdog timers, and hardware support for low-latency interrupts.

Types of real-time systems

  • Hard real-time: Missing a deadline is unacceptable and may be catastrophic. Examples include embedded controllers in safety-critical equipment such as an automotive airbag deployment mechanism or an aircraft flight-control loop. For further illustration, see the airbag system example here.
  • Soft real-time: Deadlines are important but occasional misses are tolerable; quality of service degrades rather than causing outright failure. Media streaming and interactive video conferencing are common soft real-time applications. A related automotive example is anti-lock braking systems (ABS) where timely responses are critical, but the system can sometimes tolerate transient delays ABS details.

History and development

Real-time computing grew out of mid-20th-century control and avionics work, where computers were needed to respond to external events in bounded time. Over decades the field has matured with the development of specialized real-time operating systems (RTOS), formal analysis techniques for scheduling and timing, and standards for safety-critical development. Academic research contributed scheduling theory (for example, rate-monotonic and earliest-deadline-first strategies) and industrial practice produced commercial RTOS products and certification processes.

Design methods and scheduling

Real-time software is commonly structured to isolate time-sensitive tasks, assign priorities, and verify timing behavior. Deterministic scheduling algorithms such as rate-monotonic scheduling (for periodic tasks) and earliest-deadline-first are widely taught and used. Engineers also address practical problems like priority inversion, often mitigated by priority inheritance protocols, and they perform worst-case execution time analysis to demonstrate that deadlines can be met under anticipated conditions. Performance is often judged by both average case behavior and worst-case guarantees performance guidance.

Applications and notable considerations

Real-time systems appear in industrial automation, robotics, telecommunications, medical devices, automotive and aerospace systems, audio/video processing, and control systems. In safety-critical domains, certification and rigorous testing are as important as timing correctness. Key challenges include handling resource contention, ensuring predictable performance on modern multicore processors, and balancing timeliness with functional complexity.

Distinctions and final notes

Real-time does not simply mean "fast." The central requirement is predictability and bounded response, not raw throughput. Some systems combine hard and soft requirements; others rely on graceful degradation when timing constraints cannot be met. Designers choose techniques and tools appropriate to the mix of timing guarantees, safety needs, and system complexity.