Power management provides the ability to control and manage the electrical power usage of a computer system or device. Power management enables systems to conserve energy by using less power when idle and by shutting down completely when not in use. For example, desktop computer systems can use a significant amount of power, and often (particularly at night) they are left idle. Power management software can detect that the system is not being used and power it or some of its components down. Power management can also be used in battery-powered computers (such as notebook computers) to extend battery life by powering down unused components.
The Solaris Power Management framework depends on device drivers to implement the device-specific power management functionality, such as detection of idleness in the device and changing the power state of the device. In order for a driver to do this, the device must be designed to support multiple power states.
The Solaris Power Management framework is implemented in two ways:
Device power management - Automatically turns off unused parts of a device so that the system uses less power.
System power management - Automatically turns off the computer when the entire system is idle. The framework allows devices to reduce their energy consumption after a specified idle time interval.
To perform effective device power management, system software monitors the different components of the device and determines when they are not in use. Since only device drivers are able to determine when a device is idle, and only device drivers are able to reduce power consumption of a device, the Power Management framework exports interfaces to enable communication between the system software and the device driver.
The Solaris Power Management framework provides the following:
A device-independent model for power-manageable devices
System software to implement a power management policy (which is controlled by a user-modifiable configuration file)
A set of DDI interfaces for the device driver to notify the framework of the parts of a device that can be power managed, and when those parts are idle or busy
System power management consists of turning off the entire computer after saving its state so that it can be returned to the same state immediately when it is turned back on.
To shut down an entire system and later return it to the state it was in prior to the shutdown, it is necessary to stop (and later restart) kernel threads and user processes, notify interested processes that the system has been suspended, and save (and later restore) the hardware state of all devices on the system. System power management is currently implemented only on some SPARC systems supported by the Solaris 7 software.
The Solaris System Power Management framework provides the following:
A platform-independent model of system idleness
System software to implement a system power management policy (which is controlled by a user-modifiable configuration file).
A set of interfaces for the device driver to override the method for determining which drivers have hardware state. These interfaces are also used to determine how responsibility for saving the state is assigned.
A set of interfaces to allow the framework to call into the driver to save and restore the device state, and a mechanism for notifying processes that a suspend or resume operation has occurred.