Related to the ResPECT project
Published in 17th Annual Workshop on Operating Systems Platforms for Embedded Real-Time applications (ECRTS-OSPERT), 2023
Software Engineering arose from the need to scale up and decompose the development of large software systems. While the discipline was successful in finding functional in- terfaces (i.e., data formats and callee/caller relationships), the support to formulate non-functional interfaces for resource budgets is still lacking. Without resource awareness, designing system software—especially for cyber-physical systems—remains a difficult endeavor. Additionally, resource awareness has become a critical aspect for system software, as we need to design and build CO2-efficient systems today. In this paper, we present ResourceGauge, an approach to ergonomically manage physical resources—such as time or energy—using a stock Rust compiler toolchain. With ResourceGauge, data and/or control-flow units (e.g., functions) become resource-aware and adequate resource use is checked for compositions of multiple software components. By this, expected resource allocation failures are dependably detected at compile time (if static annotations do not comply) as well as runtime (if full compliance cannot be checked statically).