The first general-purpose electronic comuter, the ENIAC, had 18,000 vacuum tubes and
consumed 140,000 watts of power. As a result, it ran up a non-trivial electricity bill. After
the invention of the transistor, power usage dropped dramatiscally 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.
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 out at once worldwide, together they use 20,000 megawatts
of electricity. This is the total output of 20 average-sized nuclear power plants. From an
environment point of view, getting rid of 10 nuclear power plant (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, incluing notebooks,
handhelds, and Webpads, among others. The heart of the problem is that the batteries can
not 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 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
rule here, as we will see below.
At the lowest level, hardware vendors are trying to make their electronics more energy efficient.
Techniques used include reducing transistor size, employing dynamic voltage scaling, using low-swing
and adiabatic buses, and similar technique. 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, possibily degrading the quility 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.