Introduction

Real time scheduling: technique to manage task execution for timely completion. Critical in systems with stringent timing constraints. Ensures predictability, reduces latency, and avoids deadline misses. Applied in embedded systems, robotics, aerospace, and industrial control.

"A real-time system is one in which the correctness depends not only on the logical result of the computation but also on the time at which the results are produced." -- Jane W. S. Liu

Real-Time Systems Overview

Definition

Systems requiring task completion within explicit time constraints. Failure leads to degradation or catastrophic results. Timing as critical as functional correctness.

Categories

Hard real-time: missed deadlines cause system failure. Soft real-time: occasional misses tolerable with performance degradation. Firm real-time: deadline misses degrade system but no failure.

Applications

Embedded control: automotive, avionics, medical devices. Multimedia: streaming, gaming. Industrial automation: robotics, process control.

Scheduling Goals

Timeliness

Complete all tasks before deadlines. Guarantee worst-case response time.

Determinism

Predictable task execution order and timing. Minimal jitter and latency.

Resource Utilization

Maximize CPU use without deadline misses. Balance load among tasks.

Fairness

Prioritize critical tasks without starving lower priority ones.

Task Characteristics

Periodicity

Periodic tasks: execute at regular intervals. Aperiodic tasks: irregular arrivals.

Execution Time

Worst-case execution time (WCET): maximum time task may consume.

Deadlines

Hard deadlines: strict time limit. Soft deadlines: preferred but flexible.

Dependencies

Task precedence constraints affect scheduling order.

Types of Real-Time Scheduling

Static Scheduling

Schedule computed offline. Fixed priorities and execution order. Suitable for predictable workloads.

Dynamic Scheduling

Decisions made at runtime. Adapt to variations in task arrival and execution.

Preemptive Scheduling

Higher priority task interrupts lower priority ones. Improves responsiveness.

Non-Preemptive Scheduling

Task runs to completion once started. Simpler but less flexible.

Priority Assignment

Fixed Priority

Priorities determined at design time. Common in Rate Monotonic Scheduling.

Dynamic Priority

Priorities change during execution. Example: Earliest Deadline First.

Priority Inversion

Lower priority task holds resource needed by higher priority task. Solutions: priority inheritance, priority ceiling protocols.

Common Scheduling Algorithms

Rate Monotonic Scheduling (RMS)

Assigns higher priority to tasks with shorter periods. Optimal fixed-priority algorithm for periodic tasks.

Earliest Deadline First (EDF)

Dynamic priority equals nearest deadline. Optimal for uniprocessor systems. Utilization bound up to 100%.

Least Laxity First (LLF)

Priority based on slack time (deadline - remaining execution time). Reduces deadline misses.

Deadline Monotonic Scheduling (DMS)

Fixed priority based on task deadlines rather than periods.

AlgorithmPriority TypeOptimalityUtilization Bound
Rate Monotonic Scheduling (RMS)FixedOptimal for fixed priority~69% (ln 2)
Earliest Deadline First (EDF)DynamicOptimal overall100%
Least Laxity First (LLF)DynamicOptimal for preemptive100%
Deadline Monotonic Scheduling (DMS)FixedOptimal for fixed priority with deadlinesVaries

Schedulability Analysis

Purpose

Verify if all tasks meet deadlines under given algorithm and system load.

Utilization-Based Tests

Sum of CPU utilization U = Σ (Ci / Ti) must be below threshold. Example: RMS bound U ≤ n(2^(1/n) -1).

Response Time Analysis

Calculate worst-case response time R_i iteratively: R_i = C_i + Σ (⌈R_i / T_j⌉ * C_j) for higher priority tasks j.

Example Formula

For task i:R_i^(k+1) = C_i + Σ (∀j ∈ hp(i)) ⌈R_i^k / T_j⌉ * C_jLoop until R_i^(k+1) = R_i^k or R_i^(k+1) > D_i (deadline)If R_i ≤ D_i, task schedulable.

Preemption and Context Switching

Preemption

Definition: interrupt running task to schedule higher priority one. Improves responsiveness, increases overhead.

Context Switch Overhead

Time to save and restore CPU state. Must be bounded and accounted in schedulability.

Non-Preemptive Regions

Critical sections where preemption disabled to protect resources. Risk: priority inversion.

Mitigation Techniques

Priority inheritance protocol: temporarily elevates priority. Priority ceiling protocol: prevents lower priority blocking.

Real-Time Operating Systems (RTOS)

Characteristics

Deterministic behavior, low interrupt latency, real-time scheduler support, inter-task communication.

Popular RTOS Examples

FreeRTOS, VxWorks, QNX, RTLinux, ThreadX.

Scheduling Support

Preemptive priority-based, time slicing, deadline scheduling, timer-driven dispatching.

Resource Management

Mutexes, semaphores, priority inversion avoidance, memory management optimized for real-time.

Challenges and Limitations

Unpredictable Execution Times

WCET difficult to determine for complex tasks. Leads to pessimistic scheduling or deadline misses.

Overhead

Context switching, synchronization, and scheduling decisions consume CPU cycles.

Priority Inversion

Causes unbounded blocking delays. Requires careful protocol implementation.

Multiprocessor Scheduling

Complexity increases with multiple CPUs. Partitioned and global scheduling approaches differ.

References

  • Jane W. S. Liu, Real-Time Systems, Prentice Hall, Vol. 1, 2000, pp. 1-450.
  • C. L. Liu and James W. Layland, "Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment," Journal of the ACM, vol. 20, no. 1, 1973, pp. 46-61.
  • Alan Burns and Andy Wellings, Real-Time Systems and Programming Languages, 4th ed., Addison-Wesley, 2009, pp. 200-350.
  • Insup Lee, Joseph Y-T. Leung, and Lui Sha, "Hard Real-Time Scheduling: A Review," Real-Time Systems Journal, vol. 7, no. 2, 1994, pp. 115-152.
  • Raj Rajkumar, "Real-Time Scheduling Theory: A Historical Perspective," Real-Time Systems Symposium Proceedings, 1991, pp. 3-16.