Content area
Batteryless embedded systems have the potential to create a sustainable Internet of Things. By harvesting energy from their environment, these systems achieve a degree of self-sufficiency with regard to their energy demand. As energy-harvesting techniques cannot ensure a continuous power supply, such systems face blackout periods with insufficient energy. Hence, these systems operate intermittently and require means to preserve their progress across blackouts. Inherently, intermittent systems rely on devices to interact with their environment, such as sensors or communication devices. This characteristic complicates progress guarantees because device operations, in contrast to the execution of machine-code instructions, rely on transactional semantics rather than incremental progress. A blackout during a device operation, such as transmitting a packet, requires retrying the operation without the possibility to pick up the transmission exactly where the blackout occurred. The context-dependent power consumption of devices, which potentially constitutes a substantial part of the system’s overall demand, hinders reasoning about the energy demand of device-related tasks. While energy harvesting enables sustainable operation at runtime, manufacturing systems likewise requires resources and impacts the environment. Considering, for example, the carbon footprint is a necessity for sustainable systems. Current design approaches lack the means to assess both the environmental impact and the operational characteristics of design options and to consider the system-wide consequences of design choices. This thesis enables predictable and guaranteed execution in intermittent systems and provides means to achieve sustainable designs for these systems under the respective application constraints. The presented approaches comprise static analysis, the runtime and operating system, and the system design. Bounds on the worst-case resource demand that include the influence of devices are the fundamental means to uphold the transactional semantics of device operations. Starting task execution only with sufficient resources available eliminates unexpected blackouts. State-aware power-consumption models for devices coupled with a context-sensitive tracking of device states across program paths yields accurate bounds on the resource demand. A microarchitecture-aware modeling of the processor’s temporal behavior further improves the accuracy of system-wide energy-consumption bounds. In combination, the approaches of this thesis enable a more efficient use of the available energy at runtime through the awareness of worst-case resource demands. A case study on a carbon-minimal design under application con- straints for the energy storage validates the benefits of a holistic view on system design. By trading the increased effort of static analysis for a simpler, predictable, and guaranteed runtime behavior, this thesis achieves progress guarantees for device operations under intermittent operating conditions. The awareness of resource demands both at design and runtime paves the way towards a truly sustainable Internet of Things.