A user-level framework for scheduling within service execution environments

To support application-specific quality of service for hosted services, a client of a compute utility requires the ability to schedule the processor resources supplied to its service. We present a user-level scheduling framework that operates in tandem with a standard kernel scheduler to support user-level policies for sharing processor resources. The scheduler operates by sampling the resource consumption of processes and limiting which processes are eligible for scheduling by the kernel. We present a Unix implementation of this framework and show that it can accurately control the rate of execution of compute-bound processes, with low computational overhead, despite its user-level operation. Finally, we demonstrate the scheduler's ability to enforce differentiated qualities of service for a Web-based message board service.

[1]  Thorsten von Eicken,et al.  JRes: a resource accounting interface for Java , 1998, OOPSLA '98.

[2]  Kang G. Shin,et al.  User-Level QoS-Adaptive Resource Management in Server End-Systems , 2003, IEEE Trans. Computers.

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

[4]  Jeane Chen,et al.  Proceedings of the 2004 IEEE International Conference on Services Computing SCC 2004 , 2004 .

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

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

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

[8]  Fangzhe Chang,et al.  User-level resource-constrained sandboxing , 2000 .

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

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

[11]  T. Newhouse,et al.  Resource-controlled remote execution to enhance wireless network applications , 2004, 2004 4th Workshop on Applications and Services in Wireless Networks, 2004. ASWN 2004..

[12]  Banu Özden,et al.  Retrofitting Quality of Service into a Time-Sharing Operating System , 1999, USENIX Annual Technical Conference, General Track.

[13]  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).

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

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

[16]  Wilson C. Hsieh,et al.  Processes in KaffeOS: isolation, resource management, and sharing in java , 2000, OSDI.

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

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

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

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

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

[22]  Timothy Roscoe,et al.  Resource overbooking and application profiling in shared hosting platforms , 2002, OSDI '02.

[23]  Tarek F. Abdelzaher,et al.  Kernel support for open QoS-aware computing , 2003, The 9th IEEE Real-Time and Embedded Technology and Applications Symposium, 2003. Proceedings..