  This paper considers energy-aware control for a computing system with two
states: "active" and "idle." In the active state, the controller chooses to
perform a single task using one of multiple task processing modes. The
controller then saves energy by choosing an amount of time for the system to be
idle. These decisions affect processing time, energy expenditure, and an
abstract attribute vector that can be used to model other criteria of interest
(such as processing quality or distortion). The goal is to optimize time
average system performance. Applications of this model include a smart phone
that makes energy-efficient computation and transmission decisions, a computer
that processes tasks subject to rate, quality, and power constraints, and a
smart grid energy manager that allocates resources in reaction to a time
varying energy price. The solution methodology of this paper uses the theory of
optimization for renewal systems developed in our previous work. This paper is
written in tutorial form and develops the main concepts of the theory using
several detailed examples. It also highlights the relationship between online
dynamic optimization and linear fractional programming. Finally, it provides
exercises to help the reader learn the main concepts and apply them to their
own optimizations. This paper is an arxiv technical report, and is a
preliminary version of material that will appear as a book chapter in an
upcoming book on green communications and networking.
