SHRED: a CPU scheduler for heterogeneous applications

General purpose workstations must support a wide variety of application characteristics; but it is hard to find a single CPU scheduling scheme that satisfactorily schedules processes from all types of applications. It is particularly difficult to get periodic deadline-driven continuous media processes to satisfactorily co-exist with others. A number of schemes have been proposed to address this issue, but these all suffer from one or more of the following limitations: i) unacceptable inefficiency, ii) non-determinism (i.e. introducing significant burstiness or jitter), iii) inability to explicitly support deadlines (so that deadlines may be missed even when the CPU is underloaded). This paper presents “SHRED (SHaretokens, Round-robin, Earliest-deadline-first, Deferred-processing)” -an efficient, proportional-share, deterministic, scheduling scheme that enables periodic deadline-driven processes to meet their explicit deadlines wherever possible, and degrades gracefully and adaptively when this is not possible. The scheme simultaneously ensures that non-deadline processes always obtain their fair share of CPU time whether in conditions of underload or overload. For experimental evaluation, a prototype of SHRED has been developed by replacing the Linux standard scheduler with the SHRED scheduler. The prototype has been evaluated against the standard Linux scheduler for various parameters and also against two proportional-share schemes, namely Stride and VTRR scheduling, for its overhead and its effect on jitter.

[1]  J. Duane Northcutt,et al.  System Support for Time-Critical Applications , 1991, NOSSDAV.

[2]  Geoff Coulson,et al.  A quality of service driven concurrency framework for object‐based middleware , 2002, Concurr. Comput. Pract. Exp..

[3]  J. Duane Northcutt,et al.  System support for time-critical applications , 1993, Comput. Commun..

[4]  Bryan Ford,et al.  CPU inheritance scheduling , 1996, OSDI '96.

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

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

[7]  Robert Magnus,et al.  Linux Kernel Internals , 1996 .

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

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

[10]  Abraham Silberschatz,et al.  Operating Systems Concepts , 2005 .

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

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

[13]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[14]  Shakuntala Baichoo,et al.  A retrospective on the design of the GOPI middleware platform , 2002, Multimedia Systems.

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

[16]  Klara Nahrstedt,et al.  Multimedia Fundamentals Vol. 1—Media Coding And Content Processing , 2003 .

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

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

[19]  D. K. Subramanian,et al.  Fairness in processor scheduling in time sharing systems , 1991, OPSR.

[20]  Banu Özden,et al.  The Eclipse Operating System: Providing Quality of Service via Reservation Domains , 1998, USENIX ATC.