This paper presents CARTOS, a charging-aware real-time operating system designed to enhance the functionality of intermittently-powered batteryless devices (IPDs) for various Internet of Things (IoT) applications. While IPDs offer significant advantages such as extended lifespan and operability in extreme environments, they pose unique challenges, including the need to ensure forward progress of program execution amidst variable energy availability and maintaining reliable real-time time behavior during power disruptions. To address these challenges, CARTOS introduces a mixed-preemption scheduling model that classifies tasks into computational and peripheral tasks, and ensures their efficient and timely execution by adopting just-in-time checkpointing for divisible computation tasks and uninterrupted execution for indivisible peripheral tasks. CARTOS also supports processing chains of tasks with precedence constraints and adapts its scheduling in response to environmental changes to offer continuous execution under diverse conditions. CARTOS is implemented with new APIs and components added to FreeRTOS but is designed for portability to other embedded RTOSs. Through real hardware experiments and simulations, CARTOS exhibits superior performance over state-of-the-art methods, demonstrating that it can serve as a practical platform for developing resilient, real-time sensing applications on IPDs.
翻译:本文提出CARTOS,一种面向间歇性供电的无电池设备(IPD)设计的充电感知实时操作系统,旨在增强其在各类物联网(IoT)应用中的功能性。尽管IPD具有延长使用寿命和可在极端环境中运行等显著优势,但其也带来了独特挑战,包括需在可变能量可用性下确保程序执行的前向进展,以及在电力中断期间维持可靠的实时时间行为。为应对这些挑战,CARTOS引入了一种混合抢占调度模型,将任务分类为计算任务与外围任务,并通过采用即时检查点技术处理可分割计算任务,同时以不间断执行方式处理不可分割外围任务,从而确保任务高效及时地执行。CARTOS还支持具有优先级约束的任务链处理,并能根据环境变化调整调度策略,以在不同条件下提供连续执行。CARTOS通过向FreeRTOS添加新API和组件实现,但其设计具有可移植性,可适用于其他嵌入式RTOS。通过实际硬件实验与仿真,CARTOS展现出优于现有先进方法的性能,证明其可作为在IPD上开发高弹性实时传感应用的实用平台。