Eichler, ChristianHofmeier, HenrietteReif, StefanHönig, TimoNolte, JörgSchröder-Preikschat, Wolfgang2020-12-242020-12-242021-01-05978-0-9981331-4-0http://hdl.handle.net/10125/71491Novel non-volatile memory (NVM) technologies allow for the efficient implementation of ''intermittently-powered'' smart dust and edge computing systems in a previously unfamiliar way. Operating with rough environmental conditions where power-supply failures occur often requires adjustments to all parts of the system. This leads to an inevitable trade-off in the design of operating systems -- the overhead of persisting the achieved computation progress over power failures is detrimental to the possible amount of progress with the available energy budgets. It is, therefore, crucial to minimize the overhead of ensuring persistence. This paper presents the case that persistence should be provided as an operating-system service to achieve everlasting operating capabilities. Triggered by power-failure interrupts, an implicit persistence service for the processor status of a process preserves progress on the CPU-instruction level. This interrupt only triggers if necessary so that no power-state polling is needed. We outline architectures for everlasting systems and discuss their benefits and drawbacks compared to existing approaches. Thereby, the operating system provides persistence as a service at run-time to the application, with minimal overhead. Our approach enables the separation of the application from energy-supply state estimation, as well as state-preserving logic for software and hardware components.10 pagesEnglishAttribution-NonCommercial-NoDerivatives 4.0 InternationalSoftware Development for Mobile Devices, the Internet-of-Things, and Cyber-Physical Systemsenergynon-volatile memoryoperating systemsNeverlast: Towards the Design and Implementation of the NVM-based Everlasting Operating System10.24251/HICSS.2021.870