42digest首页
工作进展:功能-作为子任务的API替换发布/订阅OS-Native DAG调度

Work-in-Progress: Function-as-Subtask API Replacing Publish/Subscribe for OS-Native DAG Scheduling

Takahiro Ishikawa-Aso, Atsushi Yano, Yutaro Kobayashi, Takumi Jin, Yuuki Takano, Shinpei Kato

arXiv
2025年11月11日

用于实时调度的定向循环图(DAG)任务模型在机器人操作系统2(ROS 2)中找到其主要的实际目标。 但是,ROS 2 的发布/订阅 API 使 DAG 优先级约束无法执行:回调可能会发布中执行,多输入回调让开发人员选择主题匹配策略。 因此,保存DAG语义依赖于约定;一旦被违反,模型就会崩溃。 我们提出了 Function-as-Subtask (FasS) API,它表示每个子任务为函数,其参数/返回值是子任务的传入/输出边缘。 通过最小化描述自由度,DAG语义在API而不是程序员学科中得到保证。 我们在基于 Rust 的实验内核上使用 FasS 实现了 DAG 原生调度程序,并评估其语义保真度,我们概述了将 FasS 应用于 Linux Linux sched_ext 的设计指南。

The Directed Acyclic Graph (DAG) task model for real-time scheduling finds its primary practical target in Robot Operating System 2 (ROS 2). However, ROS 2's publish/subscribe API leaves DAG precedence constraints unenforced: a callback may publish mid-execution, and multi-input callbacks let developers choose topic-matching policies. Thus preserving DAG semantics relies on conventions; once violated, the model collapses. We propose the Function-as-Subtask (FasS) API, which expresses each subtas...