Automatically Enforcing Fresh and Consistent Inputs in Intermittent Systems

04/09/2021
by   Milijana Surbatovich, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/29/2020

Towards a Formal Foundation of Intermittent Computing

Intermittently powered devices enable new applications in harsh or inacc...
research
11/28/2021

Virtualizing Intermittent Computing

Intermittent computing requires custom programming models to ensure the ...
research
12/10/2021

Test-Case Generation for Finding Neural Network Bugs

As neural networks are increasingly included as core components of safet...
research
08/24/2017

From Concurrent Programs to Simulating Sequential Programs: Correctness of a Transformation

Frama-C is a software analysis framework that provides a common infrastr...
research
08/26/2022

Automatic Synthesis of Random Generators for Numerically Constrained Algebraic Recursive Types

In program verification, constraint-based random testing is a powerful t...
research
08/02/2022

A Turning Point for Verified Spectre Sandboxing

Spectre attacks enable an attacker to access restricted data in an appli...
research
05/24/2021

Learning Security Classifiers with Verified Global Robustness Properties

Recent works have proposed methods to train classifiers with local robus...

Please sign up or login with your details

Forgot password? Click here to reset