Is This General Purpose Embedded Operating System Really General Purpose? Extending the Tock Operating System for RISC-V and Intermittent Computing
Venkat, Samyukta, Computer Engineering - School of Engineering and Applied Science, University of Virginia
Campbell, Brad, EN-Comp Science Dept, University of Virginia
Embedded computing is moving in new directions with cyber-physical systems and IoT applications. Devices are becoming more sophisticated while also being subject to large design changes to lower their resource consumption. In this work, we are exploring two trends in hardware as they relate to an operating system - the layer that is supposed to help utilize but mask the hardware changes. We extend Tock, a general-purpose embedded operating system, for a new processor architecture and a new energy source to understand how the design of a resource constrained OS impacts its generality. In this work, we carefully redesign the kernel-userspace interface to make it architecture independent, and evaluate our design by adding RISC-V support. Further, we design a new scheduler for Tock which allows the system to run on harvested, intermittent energy and make progress despite power failures. We identify and implement several design extensions for the kernel that are required to support this operation, and measure the time, memory, and developer overhead. The information gained from these two extensions of Tock exposes bottlenecks and identifies design choices that keep Tock from being portable and general-purpose across various use cases.
MS (Master of Science)
Embedded Software, Energy Harvesting, Intermittent Computing, Embedded Operating System, Ubiquitous Computing, RISC-V