Batteryless energy harvesting devices are computing platforms that operate in environments where batteries are not viable for energy storage. Energy-harvesting devices operate intermittently, only as energy is available. Prior work developed software execution models robust to intermittent power failures but no existing intermittent execution model allows interrupts to update global persistent state without allowing incorrect behavior or requiring complex programming. We present Coati, a system that supports event-driven concurrency via interrupts in an intermittent software execution model. Coati exposes a task-based interface for synchronous computations and an event interface for asynchronous interrupts. Coati supports synchronizing tasks and events using transactions, which allow for multi-task atomic regions that extend across multiple power failures. This work explores two different models for serializing events and tasks that both safely provide intuitive semantics for event-driven intermittent programs. We implement a prototype of Coati as C language extensions and a runtime library. Using energy-harvesting hardware, we evaluate Coati on benchmarks adapted from prior work. We show that Coati prevents failures when interrupts are introduced, while the baseline fails in just seconds. Moreover, Coati operates with a reasonable run time overhead that is often comparable to an idealized baseline.
Wed 26 Jun
|10:00 - 10:20|
Elazar GershuniTel Aviv University, Nadav Amit, Arie GurfinkelUniversity of Waterloo, Nina NarodytskaVMWare Research, Jorge A. NavasSRI International, Noam RinetzkyTel Aviv University, Leonid RyzhykVMware Research, Mooly SagivTel Aviv UniversityMedia Attached
|10:20 - 10:40|
|10:40 - 11:00|