Reducing the Power Consumption of Mobile Devices
As the capabilities and storage of mobile devices have increased, the
energy demand on their batteries has increased correspondingly. A decade ago, users might have
had to re-charge their mobile devices once a week; now it is
common to have to re-charge them daily.
Research has shown that an application's
user interface (GUI) is typically the piece of software that is
the biggest consumer of power in a mobile device. One application-independent
part of the GUI that consumes power is event handling. In existing
mobile devices, GUIs must use a polling loop that constantly rouses the
CPU to determine if any events have occurred. This prevents the CPU from
being put into energy-conserving states.
We are investigating a push-model
for event handling in which the kernel "pushes" events to applications
when it receives event interrupts from devices, rather than the application
sitting in a polling loop that "pulls" events from the kernel. The
advantage of a kernel push-model is that a device can be put in lower power
sleep modes until the
user actually generates events. In order to realize the full benefits of
the push model, event handling must be moved into the kernel, which
necessitates the development of kernel routines for event dispatching and
the development of a kernel-level
display server that allows the process scheduler to know which processes are
GUIs, so that it can deschedule them as needed.
We are modifying the Android runtime (ART) to work with our push model so
that we can profile actual apps to determine how much power savings, and
potentially reduced latency, can be achieved with our proposed model.
The goals of this research include:
- Developing a kernel-level push-model for event handling that pushes events from the input device to the application rather than requiring the application and kernel to constantly poll the device for events.
- Developing a kernel-level display server that supports this push-model.
- Developing improved scheduling algorithms for apps that take advantage of the knowledge the display server contains about these apps.
- Modifying the Android ART so that it works with the kernel-level push model.
- Profiling apps to determine the amount of power savings and reduced latency that can be achieved with the push model.
This project is being supported by the National Science Foundation under Grant No. CNS-1617198.
- S. Marz and B. Vander Zanden. Reducing Power Consumption and Latency in Mobile Devices Using an Event Stream Model. In ACM Transactions
on Embedded Computing, Nov. 2016, 16(1).
- S. Marz, B. Vander Zanden, and W. Gao. Reducing Event Latency and Power Consumption in Mobile Devices by Using a Kernel-Level Display Server. In IEEE Transactions on Mobile Computing, May 2019, 18(5), pp. 1174-1187.
- S. Marz, B. Vander Zanden, and W. Gao. Reducing Power Consumption and Latency in Mobile Devices by using a GUI Scheduler.
- D. McAfee and B. Vander Zanden. A Brief Overview of the Re-Implementation of
the Android Push Event Stream Model.
- Yong Li and Wei Gao. DeltaVR: Achieving High-Performance Mobile VR Dynamics through Pixel Reuse. the 18th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN). 2019.
- Dustin McAfee. Event Stream Model Android Implementation. 2019.