Human-Centered Scheduling of Interactive and Multimedia Applications on a Loaded Desktop

Desktop operating systems such as Windows or Linux base scheduling decisions on the CPU usage of competing processes. Processes that exhibit low CPU usage are given prior ity, under the assumption that they are interactive and spen d most of their time waiting for user input. However, this doesn’t work for modern multimedia applications, which require significant CPU resources, so playing a DVD movie while running a heavy background job will usually result in poor graphical quality. We therefore suggest a new way to identify interactive processes, by explicitly measuring d irect interactions with the user. For example, for each process we measure the rate at which it draws pixels on the screen. Given this data, CPU resources can be allocated preferentially to processes that perform user I/O. A scheduler following thes e principles has been implemented in a Linux environment, and measurements indicate that it is very effective in distingu shing between competing interactive and non-interactive pro cesses, and allocating CPU accordingly. It also handles com petition between multiple interactive jobs by allocations that lead to equal I/O rates. This is completely automatic and transparent to the different applications, but requires so me system modifications.

[1]  W. Richard Stevens,et al.  Unix network programming , 1990, CCRV.

[2]  Evgenia Smirni,et al.  Adaptive CPU scheduling policies for mixed multimedia and best-effort workloads , 1999, MASCOTS '99. Proceedings of the Seventh International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems.

[3]  Michael B. Jones,et al.  Vassal: loadable scheduler support for multi-policy scheduling , 1998 .

[4]  Jason Nieh,et al.  The design, implementation and evaluation of SMART: a scheduler for multimedia applications , 1997, SOSP.

[5]  Dan Tsafrir,et al.  Desktop scheduling: how can we know what the user wants? , 2004, NOSSDAV '04.

[6]  Calton Pu,et al.  Fine-Grain Adaptive Scheduling using Feedback , 1989, Comput. Syst..

[7]  Trevor Mudge,et al.  Thread-level parallelism and interactive performance of desktop applications , 2000, SIGP.

[8]  Dan Tsafrir,et al.  Effects of clock resolution on the scheduling of interactive and soft real-time processes , 2003, SIGMETRICS '03.

[9]  Calton Pu,et al.  A feedback-driven proportion allocator for real-rate scheduling , 1999, OSDI '99.

[10]  J. Duane Northcutt,et al.  SVR4UNIX Scheduler Unacceptable for Multimedia Applications , 1993, NOSSDAV.

[11]  Jonathan Walpole,et al.  Supporting time-sensitive applications on a commodity OS , 2002, OPSR.

[12]  Anand Sivasubramaniam,et al.  Scheduling best-effort and real-time pipelined applications on time-shared clusters , 2001, SPAA '01.

[13]  B. O. Gallmeister,et al.  POSIX.4 - programming for the real world , 1995 .

[14]  Dror G. Feitelson,et al.  Self-Tuning Systems , 1999, IEEE Softw..

[15]  Steve Evans,et al.  Optimizing UNIX Resource Scheduling for User Interaction , 1993, USENIX Summer.

[16]  Brian Paul,et al.  Introduction to the Direct Rendering Infrastructure , 2000 .

[17]  Keith Bostic,et al.  The design and implementa-tion of the 4.4BSD operating system , 1996 .

[18]  Banu Özden,et al.  The Eclipse Operating System: Providing Quality of Service via Reservation Domains , 1998, USENIX Annual Technical Conference.

[19]  William E. Weihl,et al.  Lottery scheduling: flexible proportional-share resource management , 1994, OSDI '94.

[20]  Jason Nieh,et al.  Virtual-Time Round-Robin: An O(1) Proportional Share Scheduler , 2001, USENIX Annual Technical Conference, General Track.

[21]  Bob Francis,et al.  Silicon Graphics Inc. , 1993 .

[22]  Stephen Childs,et al.  The Linux-SRT integrated multimedia operating system: bringing QoS to the desktop , 2001, Proceedings Seventh IEEE Real-Time Technology and Applications Symposium.

[23]  W. Richard Stevens Networking APIs : sockets and XTI , 1998 .

[24]  David R. Cheriton,et al.  Borrowed-virtual-time (BVT) scheduling: supporting latency-sensitive threads in a general-purpose scheduler , 1999, OPSR.

[25]  Johannes Christoffel Cronje,et al.  Programming in the real world , 2005 .

[26]  Maurice J. Bach The Design of the UNIX Operating System , 1986 .

[27]  Daniel Pierre Bovet,et al.  Understanding the Linux Kernel , 2000 .

[28]  Ethan V. Munson,et al.  Is 100 Milliseconds Too Fast? , 2001, CHI Extended Abstracts.

[29]  Harrick M. Vin,et al.  A hierarchial CPU scheduler for multimedia operating systems , 1996, OSDI '96.

[30]  Craig A. Knoblock,et al.  Advanced Programming in the UNIX Environment , 1992, Addison-Wesley professional computing series.

[31]  Larry L. Peterson,et al.  Making paths explicit in the Scout operating system , 1996, OSDI '96.

[32]  Scott A. Brandt,et al.  BEST scheduler for integrated processing of best-effort and soft real-time processes , 2001, IS&T/SPIE Electronic Imaging.