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

📅 2025-11-11
📈 Citations: 0
✨ Influential: 0
📄 PDF
🤖 AI Summary
ROS 2’s publish-subscribe model lacks native support for enforcing priority and data-dependency constraints in directed acyclic graph (DAG)–structured tasks, resulting in out-of-order callback execution, inconsistent multi-input matching policies, and DAG semantics sustained solely through ad hoc programming conventions—rendering systems prone to instability and crashes. To address this, we propose the Function-as-Subtask (FasS) API: a declarative interface that explicitly models data flow via function parameters and return values, thereby enforcing DAG structure at the API level and eliminating reliance on developer discipline. We implement a native DAG-aware scheduler in Rust and design a system integration layer compatible with Linux’s sched_ext subsystem. Experimental evaluation demonstrates that FasS guarantees semantic fidelity while delivering a production-ready, real-time–capable DAG scheduling infrastructure.

Technology Category

Planning, Routing, and Scheduling: Model-Based ReasoningMultiagent Systems: Distributed Problem SolvingConstraint Satisfaction and Optimization: Distributed CSP/Optimization

Application Category

Systems and Infrastructure for Web, Mobile and WoT: Decentralized Web and Fediverse systemsSearch and Retrieval-Augmented AI: Agentic searchSemantics and Knowledge: Data modeling to support human-machine intelligence, including LLMs agents, intelligent system behavior, explanations, and user-friendly interactions
📝 Abstract
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 subtask as a function whose arguments/return values are the subtask's incoming/outgoing edges. By minimizing description freedom, DAG semantics is guaranteed at the API rather than by programmer discipline. We implement a DAG-native scheduler using FasS on a Rust-based experimental kernel and evaluate its semantic fidelity, and we outline design guidelines for applying FasS to Linux Linux sched_ext.
Problem

Research questions and friction points this paper is trying to address.

Replaces ROS 2 publish/subscribe API to enforce DAG precedence constraints
Ensures DAG semantics through API design instead of programmer conventions
Implements Function-as-Subtask API for native DAG scheduling in real-time systems
Innovation

Methods, ideas, or system contributions that make the work stand out.

Function-as-Subtask API replaces publish/subscribe model
API enforces DAG semantics through function arguments
Native DAG scheduler implemented in Rust kernel
🔎 Similar Papers
No similar papers found.
💼 Related Jobs
No related jobs found.
T
Takahiro Ishikawa-Aso
The University of Tokyo, Japan
A
Atsushi Yano
Saitama University, Japan
Y
Yutaro Kobayashi
TIER IV Incorporated, Japan
T
Takumi Jin
TIER IV Incorporated, Japan
Y
Yuuki Takano
TIER IV Incorporated, Japan
S
Shinpei Kato
The University of Tokyo, Japan