Felix Lin, Reflex: managing smartphone as a distributed system for energy-efficient sensing

Sensor applications become killer apps on smartphone nowadays: many emerging mobile services leverage sensors available on smartphones to acquire information regarding the physical world, or sensory information, in order to serve human users intelligently and ubiquitously. While the sensors themselves can be quite low-power, smartphone CPU needs to process sensor data periodically, posing a key bottleneck in energy efficiency.

We believe that the challenge of energy efficiency in sensing is best addressed by treating the smartphone as a distributed system. We present Reflex, a new system model that splits a smartphone sensing task as a set of tasklets and manages their executions. At run-time, Reflex dynamically delegates most active tasklets to low-power peripheral units, e.g. microcontroller. As a result, the main CPU of smartphone can sleep to save power. Unlike previous works, Reflex addresses unique challenges that are inherent in smartphone as a personal computing platform and extreme limitations in peripheral unit resource.

While introducing a novel system support for smartphone sensing, Reflex strives to maintain the traditional programming style for smartphone developers. To achieve such a goal, it employs a distributed runtime to support tasklet execution, whose details are transparent to developers. As a result, Reflex requires no new language nor new programming model, therefore minimizing the extra burden on developers.

We have built a prototype of Reflex with the off-the-shelf Nokia N810 mobile platform and home-brew Rice Orbit sensors. Even though we realize that our implementation, as one of many feasible points in the design space, may not be optimal, a series of real-life experiments show large advantage of Reflex model in energy-efficiency.