Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

I/O dependent idempotence bugs in intermittent systems

Published: 10 October 2019 Publication History

Abstract

Intermittently-powered, energy-harvesting devices operate on energy collected from their environment and must operate intermittently as energy is available.
Runtime systems for such devices often rely on checkpoints or redo-logs to save execution state between power cycles, causing arbitrary code regions to re-execute on reboot. Any non-idempotent program behavior—behavior that can change on each execution—can lead to incorrect results.
This work investigates non-idempotent behavior caused by repeating I/O operations, not addressed by prior work. If such operations affect a control statement or address of a memory update, they can cause programs to take different paths or write to different memory locations on re-executions, resulting in inconsistent memory states. We provide the first characterization of input-dependent idempotence bugs and develop IBIS-S, a program analysis tool for detecting such bugs at compile time, and IBIS-D, a dynamic information flow tracker to detect bugs at runtime.
These tools use taint propagation to determine the reach of input. IBIS-S searches for code patterns leading to inconsistent memory updates, while IBIS-D detects concrete memory inconsistencies. We evaluate IBIS on embedded system drivers and applications. IBIS can detect I/O-dependent idempotence bugs, giving few (IBIS-S) or no (IBIS-D) false positives and providing actionable bug reports. These bugs are common in sensor-driven applications and are not fixed by existing intermittent systems.

Supplementary Material

a183-surbatovich (a183-surbatovich.webm)
Presentation at OOPSLA '19

References

[1]
Henko Aantjes, Amjad Y Majid, Przemyslaw Pawełczak, Jethro Tan, Aaron Parks, and Joshua R Smith. 2017. Fast downstream to many (computational) RFIDs. In Proceedings of the 36th Annual IEEE International Conference on Computer Communications (INFOCOM ’17).
[2]
Domenico Balsamo, Alex S Weddell, Anup Das, Alberto Rodriguez Arreola, Davide Brunelli, Bashir M Al-Hashimi, Geoff V Merrett, and Luca Benini. 2016. Hibernus++: a self-calibrating and adaptive system for transiently-powered embedded devices. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 35, 12 (2016), 1968–1980.
[3]
Domenico Balsamo, Alex S Weddell, Geoff V Merrett, Bashir M Al-Hashimi, Davide Brunelli, and Luca Benini. 2015. Hibernus: Sustaining computation during intermittent supply for energy-harvesting systems. IEEE Embedded Systems Letters 7, 1 (2015), 15–18.
[4]
Naama Ben-David, Guy E. Blelloch, Michal Friedman, and Yuanhao Wei. 2019. Delay-Free Concurrency on Faulty Persistent Memory. In Proceedings of the 31st ACM Symposium on Parallelism in Algorithms and Architectures (SPAA ’19). New York, NY, USA, 12.
[5]
Gautier Berthou, Tristan Delizy, Kevin Marquet, Tanguy Risset, and Guillaume Salagnac. 2017. Peripheral state persistence for transiently-powered systems. In Proceedings of the 2017 Global Internet of Things Summit (GIoTS ’17). IEEE.
[6]
Naveed Anwar Bhatti and Luca Mottola. 2017. HarvOS: Efficient code instrumentation for transiently-powered embedded sensing. In Proceedings of the 16th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN ’17).
[7]
Quan Chen and Alexandros Kapravelos. 2018. Mystique: Uncovering Information Leakage from Browser Extensions. In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS ’18). ACM, New York, NY, USA, 1687–1700.
[8]
Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. 2011. NV-Heaps: Making Persistent Objects Fast and Safe with Next-generation, Non-volatile Memories. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVI).
[9]
Alexei Colin, Graham Harvey, Brandon Lucia, and Alanson P. Sample. 2016. An Energy-interference-free Hardware-Software Debugger for Intermittent Energy-harvesting Systems. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’16).
[10]
Alexei Colin and Brandon Lucia. 2016. Chain: Tasks and Channels for Reliable Intermittent Programs. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA ’16).
[11]
Alexei Colin and Brandon Lucia. 2018. Termination checking and task decomposition for task-based intermittent programs. In Proceedings of the 27th International Conference on Compiler Construction (CC ’18).
[12]
Alexei Colin, Emily Ruppel, and Brandon Lucia. 2018. A Reconfigurable Energy Storage Architecture for Energy-harvesting Devices. In Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’18).
[13]
Manjeet Dahiya and Sorav Bansal. 2018. Automatic Verification of Intermittent Systems. In Verification, Model Checking, and Abstract Interpretation, Isil Dillig and Jens Palsberg (Eds.). Cham.
[14]
Marc De Kruijf and Karthikeyan Sankaralingam. 2013. Idempotent code generation: Implementation, analysis, and evaluation. In Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO ’13).
[15]
Marc A. de Kruijf, Karthikeyan Sankaralingam, and Somesh Jha. 2012. Static Analysis and Compiler Design for Idempotent Processing. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’12).
[16]
Subramanya R Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. 2014. System software for persistent memory. In Proceedings of the Ninth European Conference on Computer Systems (EuroSys ’14).
[17]
William Enck, Peter Gilbert, Byung-Gon Chun, Landon P. Cox, Jaeyeon Jung, Patrick McDaniel, and Anmol N. Sheth. 2010. TaintDroid: An Information-flow Tracking System for Realtime Privacy Monitoring on Smartphones. In Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation (OSDI’10). Berkeley, CA, USA, 393–407.
[18]
EPCglobal Inc. 2015. EPC Radio-Frequency Identity Protocols Generation-2 UHF RFID. https://www.gs1.org/sites/default/ files/docs/epc/Gen2_Protocol_Standard.pdf .
[19]
Xiaochen Guo, Engin Ipek, and Tolga Soyata. 2010. Resistive Computation: Avoiding the Power Wall with Low-leakage, ST T-MRAM Based Computing. SIGARCH Computer Architecture News 38, 3 (June 2010), 371–382.
[20]
Josiah Hester and Jacob Sorber. 2017. Flicker: Rapid Prototyping for the Batteryless Internet-of-Things. In Proceedings of the 15th ACM Conference on Embedded Network Sensor Systems (EnSys ’17).
[21]
Josiah Hester, Kevin Storer, and Jacob Sorber. 2017. Timely Execution on Intermittently Powered Batteryless Sensors. In Proceedings of the 15th ACM Conference on Embedded Network Sensor Systems (EnSys ’17).
[22]
Matthew Hicks. 2017. Clank: Architectural Support for Intermittent Computation. In Proceedings of the 44th Annual International Symposium on Computer Architecture (ISCA ’17).
[23]
Jeff Huang, Patrick O’Neil Meredith, and Grigore Rosu. 2014. Maximal Sound Predictive Race Detection with Control Flow Abstraction. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). 337–348.
[24]
Joseph Izraelevitz, Terence Kelly, and Aasheesh Kolli. 2016. Failure-Atomic Persistent Memory Updates via JUSTDO Logging. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’16). New York, NY, USA, 16.
[25]
Hrishikesh Jayakumar, Arnab Raha, and Vijay Raghunathan. 2014. QuickRecall: A low overhead HW/SW approach for enabling computations across power cycles in transiently powered computers. In Proceedings of the 27th International Conference on VLSI Design and 2014 13th International Conference on Embedded Systems.
[26]
Nenad Jovanovic, Christopher Kruegel, and Engin Kirda. 2010. Static Analysis for Detecting Taint-style Vulnerabilities in Web Applications. J. Comput. Secur. 18, 5 (Sept. 2010), 861–907.
[27]
Chih-Kai Kang, Chun-Han Lin, Pi-Cheng Hsiu, and Ming-Syan Chen. 2018. HomeRun: HW/SW Co-Design for Program Atomicity on Self-Powered Intermittent Systems. In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED ’18). Article 29.
[28]
Sukun Kim, Shamim Pakzad, David Culler, James Demmel, Gregory Fenves, Steven Glaser, and Martin Turon. 2007. Health Monitoring of Civil Infrastructures Using Wireless Sensor Networks. In Proceedings of the 6th International Conference on Information Processing in Sensor Networks (IPSN ’07).
[29]
Sebastian Lekies, Ben Stock, and Martin Johns. 2013. 25 million flows later: large-scale detection of DOM-based XSS. In Proceedings of the 2013 ACM SIGSAC conference on Computer and communications security (CCS ’13). ACM, New York, NY, USA, 1193–1204.
[30]
Q. Liu, J. Izraelevitz, S. K. Lee, M. L. Scott, S. H. Noh, and C. Jung. 2018. iDO: Compiler-Directed Failure Atomicity for Nonvolatile Memory. In Proceedings of the 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 51). 258–270.
[31]
V. Benjamin Livshits and Monica S. Lam. 2005. Finding Security Vulnerabilities in Java Applications with Static Analysis. In Proceedings of the 14th Conference on USENIX Security Symposium (USENIX Security ’05).
[32]
Shan Lu, Soyeon Park, Chongfeng Hu, Xiao Ma, Weihang Jiang, Zhenmin Li, Raluca A. Popa, and Yuanyuan Zhou. 2007a. MUVI: Automatically Inferring Multi-variable Access Correlations and Detecting Related Semantic and Concurrency Bugs. In Proceedings of the Twenty-first ACM SIGOPS Symposium on Operating Systems Principles (SOSP ’07).
[33]
Shan Lu, Joseph Tucek, Feng Qin, and Yuanyuan Zhou. 2007b. AVIO: Detecting Atomicity Violations via Access-Interleaving Invariants. IEEE Micro 27, 1 (Jan. 2007), 26–35.
[34]
Brandon Lucia and Luis Ceze. 2009. Finding Concurrency Bugs with Context-aware Communication Graphs. In Proceedings of the 42Nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 42).
[35]
Brandon Lucia, Luis Ceze, and Karin Strauss. 2010. ColorSafe: Architectural Support for Debugging and Dynamically Avoiding Multi-variable Atomicity Violations. In Proceedings of the 37th Annual International Symposium on Computer Architecture (ISCA ’10).
[36]
Brandon Lucia and Benjamin Ransford. 2015. A Simpler, Safer Programming and Execution Model for Intermittent Systems. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’15).
[37]
Brandon Lucia, Benjamin P. Wood, and Luis Ceze. 2011. Isolating and Understanding Concurrency Errors Using Reconstructed Execution Fragments. In Proceedings of the 32Nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’11).
[38]
Kaisheng Ma, Xueqing Li, Mahmut Taylan Kandemir, Jack Sampson, Vijaykrishnan Narayanan, Jinyang Li, Tongda Wu, Zhibo Wang, Yongpan Liu, and Yuan Xie. 2018. NEOFog: Nonvolatility-Exploiting Optimizations for Fog Computing. In Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’18).
[39]
Kaisheng Ma, Xueqing Li, Shuangchen Li, Yongpan Liu, John Jack Sampson, Yuan Xie, and Vijaykrishnan Narayanan. 2015a. Nonvolatile processor architecture exploration for energy-harvesting applications. IEEE Micro 35, 5 (2015), 32–40.
[40]
Kaisheng Ma, Yang Zheng, Shuangchen Li, Karthik Swaminathan, Xueqing Li, Yongpan Liu, Jack Sampson, Yuan Xie, and Vijaykrishnan Narayanan. 2015b. Architecture exploration for ambient energy harvesting nonvolatile processors. In Proceedings of the IEEE 21st International Symposium on High Performance Computer Architecture (HPCA ’15).
[41]
Nuno Machado, Brandon Lucia, and Luís Rodrigues. 2016. Production-guided Concurrency Debugging. In Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’16). 29:1–29:12.
[42]
Aravind Machiry, Chad Spensky, Jake Corina, Nick Stephens, Christopher Kruegel, and Giovanni Vigna. 2017. DR. CHECKER: A Soundy Analysis for Linux Kernel Drivers. In Proceedings of the 26th USENIX Security Symposium (USENIX Security ’17). Vancouver, BC.
[43]
Kiwan Maeng, Alexei Colin, and Brandon Lucia. 2017. Alpaca: Intermittent Execution Without Checkpoints. Proc. ACM Program. Lang. 1, OOPSLA, Article 96 (Oct. 2017), 96:1–96:30 pages.
[44]
Kiwan Maeng and Brandon Lucia. 2019. Supporting Peripherals in Intermittent Systems with Just-In-Time Checkpoints. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’19).
[45]
William Melicher, Anupam Das, Mahmood Sharif, Lujo Bauer, and Limin Jia. 2018. Riding out DOMsday: Towards Detecting and Preventing DOM Cross-Site Scripting. 2018 Network and Distributed System Security Symposium (NDSS) (Feb 2018).
[46]
Jiang Ming, Dinghao Wu, Gaoyao Xiao, Jun Wang, and Peng Liu. 2015. TaintPipe: Pipelined Symbolic Taint Analysis. In Proceedings of the 24th USENIX Security Symposium (USENIX Security ’15).
[47]
Azalia Mirhoseini, Ebrahim M Songhori, and Farinaz Koushanfar. 2013. Idetic: A high-level synthesis approach for enabling long computations on transiently-powered ASICs. In Proceedings of the 2013 IEEE International Conference on Pervasive Computing and Communications (PerCom ’13).
[48]
Iulian Moraru, David G Andersen, Michael Kaminsky, Niraj Tolia, Parthasarathy Ranganathan, and Nathan Binkert. 2013. Consistent, durable, and safe memory management for byte-addressable non volatile main memory. In Proceedings of the First ACM SIGOPS Conference on Timely Results in Operating Systems (TRIOS ’13).
[49]
Dushyanth Narayanan and Orion Hodson. 2012. Whole-system Persistence. In Proceedings of the Seventeenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVII).
[50]
Nicholas Nethercote and Julian Seward. 2007. Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’07). ACM, New York, NY, USA, 89–100.
[51]
Adrian Nistor, Po-Chun Chang, Cosmin Radoi, and Shan Lu. 2015. Caramel: Detecting and Fixing Performance Problems That Have Non-intrusive Fixes. In Proceedings of the 37th International Conference on Software Engineering - Volume 1 (ICSE ’15). Piscataway, NJ, USA.
[52]
Adrian Nistor, Linhai Song, Darko Marinov, and Shan Lu. 2013. Toddler: Detecting Performance Problems via Similar Memory-access Patterns. In Proceedings of the 2013 International Conference on Software Engineering (ICSE ’13). Piscataway, NJ, USA.
[53]
Soyeon Park, Shan Lu, and Yuanyuan Zhou. 2009. CTrigger: Exposing Atomicity Violation Bugs from Their Hiding Places. In Proceedings of the 14th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XIV).
[54]
Sangmin Park, Richard Vuduc, and Mary Harrold. 2012. UNICORN: A unified approach for localizing non-deadlock concurrency bugs. In Software Testing, Verification and Reliability, Vol. 25.
[55]
Sangmin Park, Richard W. Vuduc, and Mary Jean Harrold. 2010. Falcon: Fault Localization in Concurrent Programs. In Proceedings of the 32Nd ACM/IEEE International Conference on Software Engineering - Volume 1 (ICSE ’10).
[56]
Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2014. Memory Persistency. In Proceedings of the 41st Annual International Symposium on Computer Architecuture (ISCA ’14). Piscataway, NJ, USA.
[57]
Steven Pelley, Peter M Chen, and Thomas F Wenisch. 2015. Memory Persistency: Semantics for Byte-Addressable Nonvolatile Memory Technologies. IEEE Micro 35, 3 (2015), 125–131.
[58]
Prakash Prabhu, Ganesan Ramalingam, and Kapil Vaswani. 2010. Safe Programmable Speculative Parallelism. ACM SIGPLAN Notices 45, 50–61.
[59]
Proteus Digital Health. 2015. Proteus Digital Health. http://www.proteus.com/ .
[60]
G. Ramalingam and Kapil Vaswani. 2013. Fault Tolerance via Idempotence. Principles of Programming Languages (POPL) (January 2013). https://www.microsoft.com/en- us/research/publication/fault- tolerance- via- idempotence/
[61]
Benjamin Ransford, Jacob Sorber, and Kevin Fu. 2011. Mementos: System Support for Long-running Computation on RFID-scale Devices. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVI).
[62]
Alberto Rodriguez Arreola, Domenico Balsamo, Geoff V Merrett, and Alex S Weddell. 2018. RESTOP: Retaining External Peripheral State in Intermittently-Powered Sensor Systems. Sensors 18, 1 (2018), 172.
[63]
Emily Ruppel and Brandon Lucia. 2019. Transactional Concurrency for Intermittent Systems. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’19).
[64]
Alanson P Sample, Daniel J Yeager, Pauline S Powledge, Alexander V Mamishev, and Joshua R Smith. 2008. Design of an RFID-based battery-free programmable sensing platform. IEEE Transactions on Instrumentation and Measurement 57, 11 (2008).
[65]
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. 1997. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. ACM Trans. Comput. Syst. 15, 4 (Nov. 1997), 391–411.
[66]
Yao Shi, Soyeon Park, Zuoning Yin, Shan Lu, Yuanyuan Zhou, Wenguang Chen, and Weimin Zheng. 2010. Do I Use the Wrong Definition?: DeFuse: Definition-use Invariants for Detecting Concurrency and Sequential Bugs. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA ’10).
[67]
Jethro Tan, Przemysław Pawełczak, Aaron Parks, and Joshua R Smith. 2016. Wisent: Robust downstream communication and storage for computational RFIDs. In Proceedings of the 35th Annual IEEE International Conference on Computer Communications (INFOCOM ’16).
[68]
TI Inc. 2017a. MSP430FR59xx Mixed-Signal Microcontrollers (Rev. F). http://www.ti.com/lit/ds/symlink/msp430fr5969.pdf .
[69]
TI Inc. 2017b. TI-RTOS: Real-Time Operating System (RTOS) for Microcontrollers (MCU). http://www.ti.com/tool/ti- rtosmcu Accessed: 2018-05-08.
[70]
Joel Van Der Woude and Matthew Hicks. 2016. Intermittent computation without hardware support or programmer intervention. In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’16).
[71]
Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight Persistent Memory. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVI).
[72]
Fabian Yamaguchi, Alwin Maier, Hugo Gascon, and Konrad Rieck. 2015. Automatic Inference of Search Patterns for Taint-Style Vulnerabilities. In Proceedings of the 2015 IEEE Symposium on Security and Privacy (SP ’15).
[73]
Kasim Sinan Yildirim, Amjad Yousef Majid, Dimitris Patoukas, Koen Schaper, Przemyslaw Pawelczak, and Josiah Hester. 2018. InK: Reactive Kernel for Tiny Batteryless Sensors. In Proceedings of the 16th ACM Conference on Embedded Networked Sensor Systems (SenSys ’18). New York, NY, USA, 41–53.
[74]
Zac Manchester. 2015. KickSat. http://zacinaction.github.io/kicksat/ .
[75]
Hong Zhang, Jeremy Gummeson, Benjamin Ransford, and Kevin Fu. 2011a. Moo: A batteryless computational RFID and sensing platform. Department of Computer Science, University of Massachusetts Amherst., Tech. Rep (2011).
[76]
Hong Zhang, Mastooreh Salajegheh, Kevin Fu, and Jacob Sorber. 2011b. Ekho: Bridging the Gap Between Simulation and Reality in Tiny Energy-harvesting Sensors. In Proceedings of the 4th Workshop on Power-Aware Computing and Systems (HotPower ’11). Article 9.
[77]
Wei Zhang, Marc de Kruijf, Ang Li, Shan Lu, and Karthikeyan Sankaralingam. 2013. ConAir: Featherweight Concurrency Bug Recovery via Single-threaded Idempotent Execution. In Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’13).

Cited By

View all
  • (2023)ETAP: Energy-aware Timing Analysis of Intermittent ProgramsACM Transactions on Embedded Computing Systems10.1145/356321622:2(1-31)Online publication date: 25-Jan-2023
  • (2023)Efficient and Safe I/O Operations for Intermittent SystemsProceedings of the Eighteenth European Conference on Computer Systems10.1145/3552326.3587435(63-78)Online publication date: 8-May-2023
  • (2023)Pragmatic Memory-System Support for Intermittent Computing Using Emerging Nonvolatile MemoryIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems10.1109/TCAD.2022.316826342:1(95-108)Online publication date: Jan-2023
  • Show More Cited By

Index Terms

  1. I/O dependent idempotence bugs in intermittent systems

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Proceedings of the ACM on Programming Languages
    Proceedings of the ACM on Programming Languages  Volume 3, Issue OOPSLA
    October 2019
    2077 pages
    EISSN:2475-1421
    DOI:10.1145/3366395
    Issue’s Table of Contents
    This work is licensed under a Creative Commons Attribution International 4.0 License.

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 10 October 2019
    Published in PACMPL Volume 3, Issue OOPSLA

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. energy harvesting
    2. intermittent computing

    Qualifiers

    • Research-article

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)239
    • Downloads (Last 6 weeks)35
    Reflects downloads up to 18 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)ETAP: Energy-aware Timing Analysis of Intermittent ProgramsACM Transactions on Embedded Computing Systems10.1145/356321622:2(1-31)Online publication date: 25-Jan-2023
    • (2023)Efficient and Safe I/O Operations for Intermittent SystemsProceedings of the Eighteenth European Conference on Computer Systems10.1145/3552326.3587435(63-78)Online publication date: 8-May-2023
    • (2023)Pragmatic Memory-System Support for Intermittent Computing Using Emerging Nonvolatile MemoryIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems10.1109/TCAD.2022.316826342:1(95-108)Online publication date: Jan-2023
    • (2023)Modal Crash Types for Intermittent ComputingProgramming Languages and Systems10.1007/978-3-031-30044-8_7(168-196)Online publication date: 22-Apr-2023
    • (2022)DIPSProceedings of the 20th ACM Conference on Embedded Networked Sensor Systems10.1145/3560905.3568543(222-235)Online publication date: 6-Nov-2022
    • (2022)Benchmarking and Configuring Security Levels in Intermittent ComputingACM Transactions on Embedded Computing Systems10.1145/352274821:4(1-22)Online publication date: 5-Sep-2022
    • (2022) PROWL: A Cache Replacement P olicy fo r C o nsistency A w are Renewab l e Powered Devices IEEE Transactions on Emerging Topics in Computing10.1109/TETC.2020.303111410:1(476-487)Online publication date: 1-Jan-2022
    • (2022)Toward Sustainable IoT Applications: Unique Challenges for Programming the Batteryless EdgeIEEE Software10.1109/MS.2022.318451939:5(92-100)Online publication date: 1-Sep-2022
    • (2022)An Architectural Charge Management Interface for Energy-Harvesting Systems2022 55th IEEE/ACM International Symposium on Microarchitecture (MICRO)10.1109/MICRO56248.2022.00034(318-335)Online publication date: Oct-2022
    • (2022)Virtualizing Intermittent ComputingIEEE Internet of Things Journal10.1109/JIOT.2022.31765879:21(20869-20878)Online publication date: 1-Nov-2022
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media