Automatically enforcing fresh and consistent inputs in intermittent systems
Milijana Surbatovich, Limin Jia, Brandon Lucia
Abstract
Intermittently powered energy-harvesting devices enable new applications in inaccessible environments. Program executions must be robust to unpredictable power failures, introducing new challenges in programmability and correctness. One hard problem is that input operations have implicit constraints, embedded in the behavior of continuously powered executions, on when input values can be collected and used. This paper aims to develop a formal framework for enforcing these constraints. We identify two key properties---freshness (i.e., uses of inputs must satisfy the same time constraints as in continuous executions) and temporal consistency (i.e., the collection of a set of inputs must satisfy the same time constraints as in continuous executions). We formalize these properties and show that they can be enforced using atomic regions. We develop Ocelot, an LLVM-based analysis and transformation tool targeting Rust, to enforce these properties automatically. Ocelot provides the programmer with annotations to express these constraints and infers atomic region placement in a program to satisfy them. We then formalize Ocelot's design and show that Ocelot generates correct programs with little performance cost or code changes.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 8fa57102-9cb3-43d2-93f4-45337ef13fe5Cited by top-tier papers6
- An Architectural Charge Management Interface for Energy-Harvesting SystemsEmily Ruppel, Milijana Surbatovich, Harsh Desai, Kiwan Maeng et al.MICRO 2022 · 26 citations
- IntOS: Persistent Embedded Operating System and Language Support for Multi-threaded Intermittent ComputingYilun Wu, Byounguk Min, Mohannad Ismail, Wenjie Xiong et al.OSDI 2024 · 16 citations
- SOL: safe on-node learning in cloud platformsYawen Wang, Daniel Crankshaw, Neeraja J. Yadwadkar, Daniel S. Berger et al.ASPLOS 2022 · 14 citations
- A Type System for Safe Intermittent ComputingMilijana Surbatovich, Naomi Spargo, Limin Jia, Brandon LuciaPLDI 2023 · 13 citations
- Data-flow Availability: Achieving Timing Assurance in Autonomous SystemsAo Li, Ning ZhangOSDI 2024 · 10 citations
Builds on7
- Reliable Timekeeping for Intermittent ComputingJasper de Winkel, Carlo Delle Donne, Kasim Sinan Yildirim, Przemyslaw Pawelczak et al.ASPLOS 2020 · 92 citations
- Time-sensitive Intermittent Computing Meets Legacy SoftwareVito Kortbeek, Kasim Sinan Yildirim, Abu Bakar, Jacob Sorber et al.ASPLOS 2020 · 89 citations
- Adaptive low-overhead scheduling for periodic and reactive intermittent executionKiwan Maeng, Brandon LuciaPLDI 2020 · 84 citations
- RustBelt meets relaxed memoryHoang-Hai Dang, Jacques-Henri Jourdan, Jan-Oliver Kaiser, Derek DreyerPOPL 2020 · 68 citations
- Persistency semantics of the Intel-x86 architectureAzalea Raad, John Wickerson, Gil Neiger, Viktor VafeiadisPOPL 2020 · 61 citations
Related papers
- Adaptable Runtime Monitoring for Intermittent SystemsEren Yildiz, Khakim Akhunov, Lorenzo Antonio Riva, Arda Goknil et al.EuroSys 2024 · 7 citations
- Towards a formal foundation of intermittent computingMilijana Surbatovich, Brandon Lucia, Limin JiaOOPSLA 2020 · 26 citations
- Concrat: An Automatic C-to-Rust Lock API Translator for Concurrent ProgramsJaemin Hong, Sukyoung RyuICSE 2023 · 17 citations
- Rust yDL: A Program Logic for RustDaniel Drodt, Reiner HähnleFM 2026
- Automatic Linear Resource Bound Analysis for Rust via Prophecy PotentialsQihao Lian, Di WangOOPSLA 2025 · 1 citation
