190 likes | 311 Views
Towards a Responsive, Yet Power-efficient, Operating System: A Holistic Approch. 2011/08/09 Sunwook Bae. Contents. Paper Info Introduction Overall Architecture Resource Management Evaluation Conclusion References. Paper Info (1/2). Publish
E N D
Towards a Responsive, Yet Power-efficient, Operating System: A Holistic Approch 2011/08/09 SunwookBae
Contents • Paper Info • Introduction • Overall Architecture • Resource Management • Evaluation • Conclusion • References
Paper Info (1/2) • Publish • In Proceedings of the 13th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems(MASCOTS), Sept. 2005 • Author • Le Yan, Lin Zhong, Niraj K. Jha Department of Electrical Engineering Princeton University • Ph.D. Students graduated, Sept. '06
Paper Info (2/2) • Documents • Joint dynamic voltage scaling and adaptive body biasing for heterogeneous distributed real-time embedded systems (IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 24 (7), pp. 1030-1041) • User-perceived latency driven voltage scaling for interactive applications (Proceedings – ACM Design Automation Conference 2005, art. no. 38.3, pp. 624-627) • Combined Dynamic Voltage Scaling and Adaptive Body Biasing for Heterogeneous Distributed Real-time Embedded Systems (IEEE/ACM International Conference on Computer-Aided Design 2003, Digest of Technical Papers, pp. 30-37)
Introduction (1/2) • Approach • Problem: existing OSs do not provide satisfactory responsiveness • Propose a holistic approach • Process scheduling • Memory management • Disk I/O scheduling • Dynamic voltage scaling (DVS) • X client scheduling in the X Windows system
Introduction (2/2) • Modern interactive applications • are from Textual app to Video games, sophisticated simulation, and virtual reality environments • Inaccurate interactivity estimation • CPU load [1] vs I/O load [2] • TuxRacer [3]: CPU bounded I/O bounded CPU usage 96%
Overall Architecture (2/2) • SetXserverPid() • Notify the pid of the X server to the kernel as soon as the X server is started and give a priority bonus • SetFocusProcess() • Reset priorities and find the processes currently under user focus, and then set their focus_flag • Boost the priorities and maximizes the page ages • SetCpuSpeed() • Adjust the frequency/supply voltage based on the information on the user-perceived latency [7]
Resource Management (1/5) • Tracking of Processes Under Focus Window client Pid Window server Window client [4] Window client
Resource Management (2/5) • Process management • Add a new field (focus_flag) to the task descriptor • indicating that the process is currently under user focus • 1 for leaf-focus process • 2 for other processes under user focus • 0 for others • Once the user switches focus, the kernel clears and resets the focus-flag • The priorities of the processes under user focus are boosted (gives a bonus value -15)
Resource Management (3/5) • Memory management • Reduce the page faults of the processes under user focus • Maximize the age of the pages in the code segment of the leaf-focus process
Resource Management (4/5) • Disk I/O scheduling • Look [24]: keep moving in one direction and switch • I/O request • 89, 185, 45, 127, 56, 123, 68, 72, 23
Resource Management (5/5) • X client scheduling • X server to give the X client under user focus the highest priority temporarily [6] • Latency-driven DVS [7]
Conclusion • Propose and implement a user focus-aware resource management technique • Show how computer responsiveness can be improved in the Linux/X system • Only minimal changes • Fully based on existing process, memory, and disk I/O mechanisms in Linux • The impact on background applications is still in the acceptable range
References [1] I. Molnar, “Goals, design and implementation of the new ultra-scalable O(1) scheduler,” Jan. 2002 [2] Y. Etsion, D. Tsafrir, and D. Feitelson, “Human-centered scheduling of interactive and multimedia applications on a loaded desktop,” Tech. Rep., Hebrew University, Mar. 2003. [3] TuxRacer, http://www.tuxracer.com. [4] Y. Endo and M. Seltzer, “Improving interactive performance using TIPME,” in Proc. ACM Int. Conf. Measurement & Modeling of Computer Systems, 2000.
References [5] Linux kernel source code, version 2.4.20, http://lxr.linux.no/source/drivers/block/elevator.c. [6] K. Packard, “Efficiently scheduling X clients,” in Proc. USENIX Technical Conf., 2000 [7] L. Yan, L. Zhong, and N. K. Jha, “User-perceived latency driven voltage scaling for interactive applications,” in Proc. Design Automation Conf., 2005