2011/08/09 sunwook bae. contents paper info introduction overall architecture resource management...
TRANSCRIPT
Towards a Responsive, Yet Power-efficient, Op-erating System: A Holis-
tic Approch
2011/08/09Sunwook Bae
ContentsPaper InfoIntroductionOverall ArchitectureResource ManagementEvaluationConclusionReferences
Paper Info (1/2)Publish
In Proceedings of the 13th IEEE International Sympo-sium on Modeling, Analysis, and Simulation of Com-puter and Telecommunication Systems(MASCOTS), Sept. 2005
AuthorLe 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 bi-asing for heterogeneous distributed real-time em-bedded systems (IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 24 (7), pp. 1030-1041)
User-perceived latency driven voltage scaling for in-teractive 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 satisfac-tory 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, sophisti-cated simulation, and virtual reality environ-ments
Inaccurate interactivity estimation CPU load [1] vs I/O load [2] TuxRacer [3]: CPU bounded I/O bounded
CPU usage 96%
Overall Architecture (1/2)
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 prior-ity bonus
SetFocusProcess()Reset priorities and find the processes currently
under user focus, and then set their focus_flagBoost the priorities and maximizes the page
agesSetCpuSpeed()
Adjust the frequency/supply voltage based on the information on the user-perceived latency [7]
Resource Management (1/5)Tracking of Processes Under Focus
PidWindow server
Window client
Window client
Window client[4]
Resource Management (2/5)Process management
Add a new field (focus_flag) to the task descrip-tor 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]
Evaluation (1/3) IBM Thinkpad R32 laptop
RedHat Linux 9.0 with 2.4.20 ker-nel, with XFree86 4.3 and KDE desktop environment
Evaluation (2/3)
Evaluation (3/3)
ConclusionPropose and implement a user focus-aware
resource management techniqueShow how computer responsiveness can be
improved in the Linux/X systemOnly minimal changesFully based on existing process, memory, and
disk I/O mechanisms in LinuxThe 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., He-brew 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 ap-plications,” in Proc. Design Automation Conf., 2005