Power Management in Operating Systems

The first general-purpose electronic computer, the ENIAC, had 18,000 vacuum tubes and consumed 140,000 watts of power. As a result, it ran up a nontrivial electricity bill. After the invention of the transistor, power usage dropped dramatically and the computer industry lost interest in power requirements. However, nowadays power management is back in the spotlight for several reasons, and the operating system is playing a role here.

From the author of

From the author of

Let us start with desktop PCs. A desktop PC
often has a 200-watt power supply (which is typically 85% efficient, that is,
loses 15% of the incoming energy to heat). If 100 million of these machines are
turned on at once worldwide, together they use 20,000 megawatts of electricity.
This is the total output of 20 average-sized nuclear power plants. If power
requirements could be cut in half, we could get rid of 10 nuclear power plants.
From an environmental point of view, getting rid of 10 nuclear power plants (or
an equivalent number of fossil fuel plants) is a big win and well worth
pursuing.

The other place where power is a big issue is
on battery-powered computers, including notebooks, laptops, palmtops, and
Webpads, among others. The heart of the problem is that the batteries cannot
hold enough charge to last very long, a few hours at most. Furthermore, despite
massive research efforts by battery companies, computer companies, and consumer
electronics companies, progress is glacial. To an industry used to a doubling of
the performance every 18 months (Moore's law), having no progress at all
seems like a violation of the laws of physics, but that is the current
situation. As a consequence, making computers use less energy so existing
batteries last longer is high on everyone's agenda. The operating system
plays a major role here, as we will see below.

There are two general approaches to reducing
energy consumption. The first one is for the operating system to turn off parts
of the computer (mostly I/O devices) when they are not in use because a device
that is off uses little or no energy. The second one is for the application
program to use less energy, possibly degrading the quality of the user
experience, in order to stretch out battery time. We will look at each of these
approaches in turn, but first we will say a little bit about hardware design
with respect to power usage.

5.9.1 Hardware Issues

Batteries come in two general types: disposable
and rechargeable. Disposable batteries (most commonly AAA, AA, and D cells) can
be used to run handheld devices, but do not have enough energy to power laptop
computers with large bright screens. A rechargeable battery, in contrast, can
store enough energy to power a laptop for a few hours. Nickel cadmium batteries
used to dominate here, but they gave way to nickel metal hydride batteries,
which last longer and do not pollute the environment quite as badly when they
are eventually discarded.

Lithium ion batteries are even better, and may be recharged without first
being fully drained, but their capacities are also severely limited.

The general approach most computer vendors take
to battery conservation is to design the CPU, memory, and I/O devices to have
multiple states: on, sleeping, hibernating, and off. To use the device, it must
be on. When the device will not be needed for a short time, it can be put to
sleep, which reduces energy consumption. When it is not expected to be needed
for a longer interval, it can be made to hibernate, which reduces energy
consumption even more. The trade-off here is that getting a device out of
hibernation often takes more time and energy than getting it out of sleep state.
Finally, when a device is off, it does nothing and consumes no power. Not all
devices have all these states, but when they do, it is up to the operating
system to manage the state transitions at the right moments.

Some computers have two or even three power
buttons. One of these may put the whole computer in sleep state, from which it
can be awakened quickly by typing a character or moving the mouse. Another may
put the computer into hibernation, from which wakeup takes much longer. In both
cases, these buttons typically do nothing except send a signal to the operating
system, which does the rest in software. In some countries, electrical devices
must, by law, have a mechanical power switch that breaks a circuit and removes
power from the device, for safety reasons. To comply with this law, another
switch may be needed.

Power management brings up a number of
questions that the operating system must deal with. They include the following.
Which devices can be controlled? Are they on/off, or do they have intermediate
states? How much power is saved in the low-power states? Is energy expended to
restart the device? Must some context be saved when going to a low-power state?
How long does it take to go back to full power? Of course, the answers to these
questions vary from device to device, so the operating system must be able to
deal with a range of possibilities.

Various researchers have examined laptop
computers to see where the power goes. Li et al. (1994) measured various
workloads and came to the conclusions shown in Fig.
5-1. Lorch and Smith (1998)
made measurements on other machines and came to the conclusions shown in Fig.
5-1. Weiser et al. (1994) also made measurements but did not publish the
numerical values. They simply stated that the top three energy sinks were the
display, hard disk, and CPU, in that order. While these numbers do not agree
closely, possibly because the different brands of computers measured indeed have
different energy requirements, it seems clear that the display, hard disk, and
CPU are obvious targets for saving energy.