Software-Controlled Energy Conservation

Energy conservation is an important problem in battery-powered portable computers. Existing solutions to this problem tend to be hardware-oriented, ad-hoc, and difficult to evaluate. Typically, the hardware includes support for turning off various system devices such as the screen or the disk to conserve energy. The hardware usually turns off a device based on some heuristics and the current usage level of that device.

The thesis of this project is that hardware-controlled solutions to reducing energy consumption are not satisfactory, and that a more effective solution is to integrate the hardware, system software, and user applications in an energy-aware system design. In this design, the hardware provides the mechanisms for controlling the operation of each device, leaving policy decisions to the software. The operating system uses its knowledge about the current workload and application requirements to control the system devices. It also externalizes the mechanisms implemented by the hardware to the application level for those applications that are willing to cooperate in energy conservation. In addition, the operating system also collects information about the behavior of the most frequently run applications and uses it in policy decisions.

The system adapts to the variation of the operating conditions to trade off performance versus energy conservation. The system gears toward maximizing performance when powered by a stable source of energy, and toward energy conservation when powered by an energy-constrained source. The system also uses information from the application when available to control this tradeoff.