ELEC518/COMP518: Energy Efficiency in Modern Systems
Per-Process Energy Accounting in Multitasking Operating Systems
The ability to account system resource usage by software is the key to the design and optimization of modern computer systems. For example, scheduling and memory management are two classic operating system (OS) functions based on the ability to account the CPU and memory usage by process. Energy has become an important system resource due to electricity and thermal concerns. This is particularly true for mobile systems that are battery-powered and require compact form factors. Indeed, per-process energy accounting is increasingly important for modern mobile platforms such as smartphones. It is critical for detecting rogue applications and is the foundation to incentive mechanisms for emerging applications in participatory sensing and cooperative communication. Moreover, Per-process energy accounting is the foundation to energy management and optimization in the OS. The ability to account energy by part of an application is further important for energy optimization of software.
While it is straightforward to account the CPU and memory usage by an application or even part of an application in modern OSes, no mainstream OSes support energy accounting. In the past decade, many researchers have attempted to tackle this problem by using a system energy model that correlates system energy consumption with other system statistics obtainable in software. By accounting the contributions by an application to the system statistics, its energy contribution can be inferred. Although per-process energy accounting solutions has been reported for servers dominated by a homogeneous workload and mobile devices with a single foreground application, no solutions are available yet for truly multitasking systems. Unfortunately, modern mobile systems such as smartphones are increasingly multitasking, thanks to the advancement in mobile OSes such as Android 2.3 and Apple iOS 4 and to the third-party development of background applications. There is a clear gap between existing energy accounting solutions and the practical needs of emerging systems and applications.
In the last part of the course, we will study per-process energy accounting in a multitasking operating system, i.e., Linux. We will start with an examination of resource accounting in existing operating systems, then review related literature in the past decade, and finally embark on our own ideas toward enabling per-process energy accounting.