ALPS: An Application-Level Proportional-Share Scheduler

ALPS is a per-application user-level proportional-share scheduler that operates with tow overhead and without any special kernel support. ALPS is useful to a range of applications, including scientific applications that need to control the CPU apportionment to the processes they create, to Web servers that need to limit the proportion of available CPU time given to spawned processes that service Web requests, and to middleware that supports multiple execution environments that are to run at different rates. ALPS works by minimally sampling the progress of processes under its control, and making simple predictions for when it should selectively pause and resume the processes. We present the algorithm, a UNIX-based implementation, and a performance evaluation. Our results show that the ALPS approach is practical; we can achieve good accuracy (under 5% error), and low overhead (under 1% of CPU), despite user-level operation

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

[2]  Jason Nieh,et al.  A SMART scheduler for multimedia applications , 2003, TOCS.

[3]  Peter Druschel,et al.  Resource containers: a new facility for resource management in server systems , 1999, OSDI '99.

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

[5]  Thiemo Voigt,et al.  SILK: Scout Paths in the Linux Kernel , 2001 .

[6]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

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

[8]  Prashant J. Shenoy,et al.  Surplus fair scheduling: a proportional-share CPU scheduling algorithm for symmetric multiprocessors , 2000, OSDI.

[9]  C. Amza,et al.  Specification and implementation of dynamic Web site benchmarks , 2002, 2002 IEEE International Workshop on Workload Characterization.

[10]  Klara Nahrstedt,et al.  Energy-efficient soft real-time CPU scheduling for mobile multimedia systems , 2003, SOSP '03.

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

[12]  Klara Nahrstedt,et al.  A Soft Real Time Scheduling Server in UNIX Operating System , 1997, IDMS.

[13]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[14]  Andrea C. Arpaci-Dusseau,et al.  Transforming policies into mechanisms with infokernel , 2003, SOSP '03.

[15]  Carl A. Waldspurger,et al.  Stride Scheduling: Deterministic Proportional- Share Resource Management , 1995 .

[16]  John Regehr,et al.  HLS: a framework for composing soft real-time schedulers , 2001, Proceedings 22nd IEEE Real-Time Systems Symposium (RTSS 2001) (Cat. No.01PR1420).

[17]  Peter Druschel,et al.  Lazy receiver processing (LRP): a network subsystem architecture for server systems , 1996, OSDI '96.

[18]  Andrea C. Arpaci-Dusseau,et al.  Information and control in gray-box systems , 2001, SOSP.

[19]  Steven G. Johnson,et al.  The Design and Implementation of FFTW3 , 2005, Proceedings of the IEEE.

[20]  Alan L. Cox,et al.  Bottleneck Characterization of Dynamic Web Site Benchmarks , 2002 .

[21]  Kenneth J. Duda,et al.  Borrowed-virtual-time (BVT) scheduling: supporting latency-sensitive threads in a general-purpose scheduler , 2000, OPSR.

[22]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[23]  Michael B. Jones,et al.  CPU reservations and time constraints: efficient, predictable scheduling of independent activities , 1997, SOSP.

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

[25]  Joseph Pasquale,et al.  Java active extensions: Scalable middleware for performance-isolated remote execution , 2005, Comput. Commun..

[26]  NahrstedtKlara,et al.  Energy-efficient soft real-time CPU scheduling for mobile multimedia systems , 2003 .

[27]  Anoop Gupta,et al.  Performance isolation: sharing and isolation in shared-memory multiprocessors , 1998, ASPLOS VIII.

[28]  William J. Bolosky,et al.  Progress-based regulation of low-importance processes , 1999, SOSP.

[29]  James H. Anderson,et al.  Proportional share scheduling of operating system services for real-time applications , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[30]  Chenyang Lu,et al.  An adaptive control framework for QoS guarantees and its application to differentiated caching , 2002, IEEE 2002 Tenth IEEE International Workshop on Quality of Service (Cat. No.02EX564).

[31]  George C. Necula,et al.  Capriccio: scalable threads for internet services , 2003, SOSP '03.