🤖 AI Summary
This study addresses the lack of real hardware support in DAG scheduling theory and the difficulty existing platforms face in ensuring timing analyzability. To this end, we propose the first open-source RTOS that natively supports real-time DAG scheduling. By introducing a Function-as-Subtask (FasS) API to enforce DAG semantics and integrating a publish/subscribe model with a Global Earliest Deadline First (GEDF) algorithm, the system achieves OS-level native support for DAG task models alongside a modular scheduler with microsecond-level overhead and an automated testbed. Raspberry Pi-based experiments demonstrate that a GEDF scheduler implemented in merely 226 lines of code successfully ports autonomous driving components, enabling mechanical port migration without additional constraint reasoning. This work effectively bridges the gap between theoretical scheduling frameworks and practical engineering implementation.
📝 Abstract
Real-time directed acyclic graph (DAG) scheduling provides a rigorous basis for timing analysis and efficiency in component-oriented real-time systems (CORTS) such as autonomous driving systems, yet challenges remain from the perspectives of both theorists and practitioners. For theorists, no OS natively supports the DAG task model; algorithms are therefore evaluated only analytically or in simulation, ignoring real-hardware overheads. For practitioners, today's CORTS platforms (ROS~2 and AUTOSAR Adaptive Platform) are designed for service composition rather than timing analyzability; adopting DAG scheduling research therefore demands substantial code changes and developer discipline. This paper proposes Awkernel, the first open-source real-time operating system (RTOS) that natively supports real-time DAG scheduling research, bridging DAG scheduling theory and CORTS practice. For theorists, Awkernel is a real-hardware testbed: it exposes a modular OS-native DAG scheduler for easy algorithm implementation, plus a random workload generator and built-in metrics for evaluation. For practitioners, Awkernel is not a full replacement for today's platforms but a CORTS platform maximizing timing analyzability: its familiar publish/subscribe model keeps porting mechanical, mapping each callback to one subtask. Moreover, its function-as-subtask (FasS) API enforces DAG semantics (precedence constraints) without programmer discipline, yielding applications that match the theoretical DAG model and directly inherit its efficiency and safety guarantees. On a Raspberry Pi~4, microbenchmarks confirm microsecond-level scheduling overheads; a global earliest deadline first (GEDF) scheduler fits in 226~lines; and a practitioner ports part of an autonomous driving system using only the FasS API, without reasoning about DAG semantics.