Collaborative power management between operating systems and applications
Power consumption is an important design constraint for computers. Many power management policies have been studied in operating systems (OSs). These policies focus on accurately predicting idleness in workloads so that hardware components can be shut down or slowed down to save energy. Since idleness in workloads is ultimately determined by applications, some studies have proposed application-level techniques for power management. However, performing power management at the application level can impose burdens on programmers. This thesis presents a cross-layer approach that helps an OS and applications collaborate for better power management. We have studied both general-purpose systems and real-time embedded systems. For general-purpose systems, we instrument the OS to measure power and assign energy responsibility to programs to guide them for energy-efficient workload adjustment. We first present a measurement method that can accurately assign power samples to programs' activities. To further determine programs' responsibility for energy consumption during idle periods, we propose an energy accounting framework that assigns energy to programs based on how they affect dynamic power management (DPM). This provides useful insight on how to adjust programs for better energy reduction. Based on the accounting information, we have developed a programming environment to ease the construction of energy-effcient applications. The environment helps programmers identify and choose options with lower energy consumption to achieve desired functionalities. For real-time embedded systems, processors are often the major energy consumers and dynamic voltage scaling (DVS) is used to reduce energy. The tasks provide information on their release times and deadlines to the OS, and the OS performs centralized task and voltage scheduling to meet deadlines and reduce energy. We study both uniprocessor and multiprocessor systems. For the former, we combine inter-task and intra-task scheduling into a single optimization problem and derive statistically optimal voltage schedules to minimize the expected total energy. For multiprocessor systems, we utilize the probabilistic distributions of task execution time to partition the workloads among processors for energy reduction. We have implemented the measurement technique, the accounting method, and the programming environment in Linux for evaluation. The experimental results show that (a) the measurement can achieve better accuracy than existing techniques, (b) the accounting information can guide workload adjustment for more energy savings, and (c) the programming environment can help multiple devices and computers collaborate to save energy. We have performed simulations for the real-time voltage scheduling algorithms. The results show significant energy savings with respect to existing methods.
Li, Purdue University.
Off-Campus Purdue Users:
To access this dissertation, please log in to our