Drowsy Power Management


Employs dependency tracking to wake only the necessary system components when devices resume from a suspended state, thereby reducing energy consumption.

Figure: Dependency graph shown over time for an application fetching a weather update over WiFi (running on the Nexus 4 smartphone).


Drowsy Power Management
Matthew Lentz, James Litton, Bobby Bhattacharjee
SOSP 2015 (Symposium on Operating Systems Principles)
Paper Slides
Show Abstract

Portable computing devices have fast multi-core processors, large memories, and many on-board sensors and radio interfaces, but are often limited by their energy consumption. Traditional power management subsystems have been extended for smartphones and other portable devices, with the intention of maximizing the time that the devices are in a low-power "sleep" state. The approaches taken by these subsystems prove inefficient for many short-lived tasks common to portable devices, e.g., querying a sensor or polling a cloud service.

We introduce Drowsy, a new power management state that replaces "awake." In the Drowsy state, not all system components are woken up, only the minimal set required for a pending task(s). Drowsy constructs and maintains the minimal task set by dynamically and continuously inferring dependencies between system components at run-time. We have implemented Drowsy within Android, and our results show a significant improvement (1.5-5x) in energy efficiency for common short-lived tasks.

Hide Abstract


Source Code - drowsy.tar.gz


Bobby Bhattacharjee
Matthew Lentz
James Litton

UMD Logo