A Type System for Safe Intermittent Computing
Milijana Surbatovich, Naomi Spargo, Limin Jia, Brandon Lucia
摘要
Batteryless energy-harvesting devices enable computing in inaccessible environments, at a cost to programmability and correctness. These devices operate intermittently as energy is available, using a recovery system to save and restore state. Some program tasks must execute atomically w.r.t. power failures, re-executing if power fails before completion. Any re-execution should typically be idempotent —its behavior should match the behavior of a single execution. Thus, a key aspect of correct intermittent execution is identifying and recovering state causing undesired non-idempotence. Unfortunately, past intermittent systems take an ad-hoc approach, using unsound dataflow analyses or conservatively recovering all written state. Moreover, no prior work allows the programmer to directly specify idempotence requirements (including allowable non-idempotence). We present curricle, the first type system approach to safe intermittence, for Rust. Type level reasoning allows programmers to express requirements and retains alias information crucial for sound analyses. Curricle uses information flow and type qualifiers to reject programs causing undesired non-idempotence. We implement Curricle’s type system on top of Rust’s compiler, evaluating the prototype on benchmarks from prior work. We find that Curricle benefits application programmers by allowing them to express idempotence requirements that are checked to be satisfied, and that targeting programs checked with Curricle allows intermittent system designers to write simpler recovery systems that perform better.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper3
- IntOS: Persistent Embedded Operating System and Language Support for Multi-threaded Intermittent ComputingYilun Wu, Byounguk Min, Mohannad Ismail, Wenjie Xiong 等OSDI 2024 · 被引用 16 次
- Cocoon: Static Information Flow Control in RustAda Lamba, Max Taylor, Vincent Beardsley, Jacob Bambeck 等OOPSLA 2024 · 被引用 9 次
- Exploiting Sophisticated Static Analysis for VerilogQinlin Chen, Nairen Zhang, Jinpeng Wang, Jiacai Cui 等PLDI 2026
它引用的顶会 Paper10
- Time-sensitive Intermittent Computing Meets Legacy SoftwareVito Kortbeek, Kasim Sinan Yildirim, Abu Bakar, Jacob Sorber 等ASPLOS 2020 · 被引用 89 次
- Adaptive low-overhead scheduling for periodic and reactive intermittent executionKiwan Maeng, Brandon LuciaPLDI 2020 · 被引用 84 次
- RustBelt meets relaxed memoryHoang-Hai Dang, Jacques-Henri Jourdan, Jan-Oliver Kaiser, Derek DreyerPOPL 2020 · 被引用 68 次
- Stacked borrows: an aliasing model for RustRalf Jung, Hoang-Hai Dang, Jeehoon Kang, Derek DreyerPOPL 2020 · 被引用 67 次
- FaceBit: Smart Face Masks PlatformAlexander Curtiss, Blaine Rothrock, Abu Bakar, Nivedita Arora 等UbiComp 2022 · 被引用 51 次
相关 Paper
- Automatically enforcing fresh and consistent inputs in intermittent systemsMilijana Surbatovich, Limin Jia, Brandon LuciaPLDI 2021 · 被引用 23 次
- Adaptable Runtime Monitoring for Intermittent SystemsEren Yildiz, Khakim Akhunov, Lorenzo Antonio Riva, Arda Goknil 等EuroSys 2024 · 被引用 7 次
- NvMR: non-volatile memory renaming for intermittent computingAbhishek Bhattacharyya, Abhijith Somashekhar, Joshua San MiguelISCA 2022 · 被引用 21 次
- Intermittent Systems at Small Scale: Execution Model and Design GuidelinesYoungbin Kim, Yoojin LimDAC 2025
- Efficient and Safe I/O Operations for Intermittent SystemsEren Yildiz, Saad Ahmed, Bashima Islam, Josiah D. Hester 等EuroSys 2023 · 被引用 17 次
