Transactional concurrency control for intermittent, energy-harvesting computing systems

Transactional concurrency control for intermittent, energy-harvesting computing systems
复制标题

DOI:
10.1145/3314221.3314583
复制
发表时间:
2019-06
期刊:
Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
E. Ruppel;Brandon Lucia
E. Ruppel;Brandon Lucia
中科院分区:
其他
文献类型:
--
作者:
E. Ruppel;Brandon Lucia

文献摘要

被引文献

相似文献

无电池能量收集设备是在电池不适合能量存储的环境中运行的计算平台。能量收集装置仅在能量可用时间歇性地运行。先前的工作开发了对间歇性电源故障鲁棒的软件执行模型,但现有的间歇性执行模型不允许中断更新全局持久状态而不允许不正确的行为或需要复杂的编程。我们提出了Coati,一个系统,支持事件驱动的并发通过中断在间歇性的软件执行模型。Coati公开了一个用于同步计算的基于任务的接口和一个用于异步中断的事件接口。Coati支持使用事务同步任务和事件,这允许跨多个电源故障扩展的多任务原子区域。这项工作探讨了两种不同的模式,序列化事件和任务,都安全地提供直观的语义事件驱动的间歇性程序。我们实现了一个原型的Coati作为C语言扩展和一个运行时库。使用能量收集硬件,我们评估Coati的基准改编自以前的工作。我们表明,Coati防止故障时,中断引入,而基线失败在短短几秒钟内。此外,Coati以合理的运行时间开销运行,这通常与理想化的基线相当。
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.