🤖 AI Summary
To address the high scheduling overhead caused by nested scheduling (OS threads + middleware Executors) in commercial real-time systems such as ROS 2, this paper proposes a lightweight, real-time scheduling paradigm—“one-to-one binding of callbacks to OS threads”—which bypasses the middleware scheduling layer and enables native OS-level scheduling control at the callback granularity. Our key contributions are: (1) the first middleware-transparent callback scheduling model, eliminating nested scheduling complexity; and (2) CallbackIsolatedExecutor, a novel executor that supports direct configuration of kernel-level parameters—including SCHED_FIFO, priority, and CPU affinity. Experimental results show that, compared to MultiThreadedExecutor, our approach significantly reduces context switches, user-to-kernel transitions, and memory overhead. Against SingleThreadedExecutor, inter-process and intra-process communication latencies remain consistently at 1.4× and 5×, respectively—achieving a balanced trade-off between real-time determinism and schedulability control.
📝 Abstract
Real-time scheduling in commoditized component-oriented real-time systems, such as ROS 2 systems on Linux, has been studied under nested scheduling: OS thread scheduling and middleware layer scheduling (e.g., ROS 2 Executor). However, by establishing a persistent one-to-one correspondence between callbacks and OS threads, we can ignore the middleware layer and directly apply OS scheduling parameters (e.g., scheduling policy, priority, and affinity) to individual callbacks. We propose a middleware model that enables this idea and implements CallbackIsolatedExecutor as a novel ROS 2 Executor. We demonstrate that the costs (user-kernel switches, context switches, and memory usage) of CallbackIsolatedExecutor remain lower than those of the MultiThreadedExecutor, regardless of the number of callbacks. Additionally, the cost of CallbackIsolatedExecutor relative to SingleThreadedExecutor stays within a fixed ratio (1.4x for inter-process and 5x for intra-process communication). Future ROS 2 real-time scheduling research can avoid nested scheduling, ignoring the existence of the middleware layer.