Using hierarchical scheduling to support soft real-time applications in general-purpose operating systems

The thesis of this dissertation is that extending a general-purpose operating system with a general, heterogeneous scheduling hierarchy is feasible and useful. A hierarchy of schedulers generalizes the role of CPU schedulers by allowing them to schedule other schedulers in addition to scheduling threads. A general, heterogeneous scheduling hierarchy is one that allows arbitrary (or nearly arbitrary) scheduling algorithms throughout the hierarchy. In contrast, most of the previous work on hierarchical scheduling has imposed restrictions on the schedulers used in part or all of the hierarchy. This dissertation describes the Hierarchical Loadable Scheduler (HLS) architecture, which permits schedulers to be dynamically composed in the kernel of a general-purpose operating system. The most important characteristics of BLS, and the ones that distinguish it from previous work, are that it has demonstrated that a hierarchy of nearly arbitrary schedulers can be efficiently implemented in a general-purpose operating system, and that the behavior of a hierarchy of soft real-time schedulers can be reasoned about in order to provide guaranteed scheduling behavior to application threads. The flexibility afforded by HLS permits scheduling behavior to be tailored to meet complex requirements without encumbering users who have modest requirements with the performance and administrative costs of a complex scheduler. Contributions of this dissertation include the following. (1) The design, prototype implementation, and performance evaluation of HLS in Windows 2000. (2) A system of guarantees for scheduler composition that permits reasoning about the scheduling behavior of a hierarchy of soft real-time schedulers. Guarantees assure users that application requirements can be met throughout the lifetime of the application, and also provide application developers with a model of CPU allocation to which they can program. (3) The design, implementation, and evaluation of two augmented CPU reservation schedulers, which provide increase scheduling predictability when low-level operating system activity steals time from applications.

[1]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[2]  C. D. Locke,et al.  Best-effort decision-making for real-time scheduling , 1986 .

[3]  John P. Lehoczky,et al.  The rate monotonic scheduling algorithm: exact characterization and average case behavior , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[4]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

[5]  Ray Jain,et al.  The art of computer systems performance analysis - techniques for experimental design, measurement, simulation, and modeling , 1991, Wiley professional computing.

[6]  Hideyuki Tokuda,et al.  Real-Time Mach: Towards a Predictable Real-Time System , 1990, USENIX MACH Symposium.

[7]  Krithi Ramamritham,et al.  The Spring kernel: a new paradigm for real-time systems , 1991, IEEE Software.

[8]  Jeffrey C. Mogul,et al.  The effect of context switches on cache performance , 1991, ASPLOS IV.

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

[10]  Alan Burns,et al.  Applying new scheduling theory to static priority pre-emptive scheduling , 1993, Softw. Eng. J..

[11]  Stefan Savage,et al.  Processor Capacity Reserves for Multimedia Operating Systems , 1993 .

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

[13]  Kevin Jeffay,et al.  Accounting for interrupt handling costs in dynamic priority task systems , 1993, 1993 Proceedings Real-Time Systems Symposium.

[14]  Jay Lepreau,et al.  Evolving Mach 3.0 to A Migrating Thread Model , 1994, USENIX Winter.

[15]  Berny Goodheart,et al.  The magic garden explained - the internals of UNIX System V, release 4: an open systems design , 1994 .

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

[17]  Josep Torrellas,et al.  Evaluating the Performance of Cache-Affinity Scheduling in Shared-Memory Multiprocessors , 1995, J. Parallel Distributed Comput..

[18]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[19]  Klara Nahrstedt,et al.  The QOS Broker , 1995, IEEE Multim..

[20]  Kam Lee,et al.  Performance bounds in communication networks with variable-rate links , 1995, SIGCOMM '95.

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

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

[23]  Michael B. Jones,et al.  Modular real-time resource management in the Rialto operating system , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[24]  Kevin Jeffay,et al.  Support for real-time computing within general purpose operating systems-supporting co-resident operating systems , 1995, Proceedings Real-Time Technology and Applications Symposium.

[25]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[26]  Krithi Ramamritham,et al.  Integrated scheduling of multimedia and hard real-time tasks , 1996, 17th IEEE Real-Time Systems Symposium.

[27]  Robin Fairbairns,et al.  The Design and Implementation of an Operating System to Support Distributed Multimedia Applications , 1996, IEEE J. Sel. Areas Commun..

[28]  Wu-chun Feng,et al.  Operating System Support for Imprecise Computation , 1996 .

[29]  Harrick M. Vin,et al.  Start-time fair queueing: a scheduling algorithm for integrated services packet switching networks , 1996, SIGCOMM 1996.

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

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

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

[33]  H. Vin,et al.  Start-time fair queueing: a scheduling algorithm for integrated services packet switching networks , 1996, SIGCOMM '96.

[34]  Hussein M. Abdel-Wahab,et al.  A proportional share resource allocation algorithm for real-time, time-shared systems , 1996, 17th IEEE Real-Time Systems Symposium.

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

[36]  David M. Papurt,et al.  Resource Management , 1997, J. Object Oriented Program..

[37]  Jay Lepreau,et al.  The Flux OSKit: a substrate for kernel and language research , 1997, SOSP.

[38]  Ion Stoica,et al.  Duality between resource reservation and proportional share resource allocation , 1996, Electronic Imaging.

[39]  Aloysius K. Mok,et al.  A Multiframe Model for Real-Time Tasks , 1997, IEEE Trans. Software Eng..

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

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

[42]  Scott A. Brandt,et al.  A dynamic quality of service middleware agent for mediating application resource usage , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[43]  Larry L. Peterson,et al.  Predicting MPEG execution times , 1998, SIGMETRICS '98/PERFORMANCE '98.

[44]  B. Srinivasan,et al.  A firm real-time system implementation using commercial off-the-shelf hardware and free software , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[45]  Scott A. Brandt,et al.  Soft real-time application execution with dynamic quality of service assurance , 1998, 1998 Sixth International Workshop on Quality of Service (IWQoS'98) (Cat. No.98EX136).

[46]  Borko Furht,et al.  Processor Architectures for Multimedia , 1998 .

[47]  Giorgio C. Buttazzo,et al.  Integrating multimedia applications in hard real-time systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

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

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

[50]  Karsten Schwan,et al.  FARA-a framework for adaptive resource allocation in complex real-time systems , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[51]  Krithi Ramamritham,et al.  Using Windows NT for Real-Time Applications: Experimental Observations and Recommendations , 1998, IEEE Real Time Technology and Applications Symposium.

[52]  Klara Nahrstedt,et al.  A soft real-time scheduling server on the Windows NT , 1998 .

[53]  James P. Held,et al.  A comparison of Windows driver model latency performance on Windows NT and Windows 98 , 1999, OSDI '99.

[54]  Klara Nahrstedt,et al.  CPU service classes for multimedia applications , 1999, Proceedings IEEE International Conference on Multimedia Computing and Systems.

[55]  Victor Yodaiken The RTLinux Manifesto , 1999 .

[56]  Steve Goddard,et al.  A theory of rate-based execution , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

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

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

[59]  Tei-Wei Kuo,et al.  A fixed-priority-driven open environment for real-time applications , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[60]  Michael B. Jones,et al.  CPU reservations and time constraints: implementation experience on windows NT , 1999 .

[61]  David Ingram,et al.  Soft real time scheduling for general purpose client-server systems , 1999, Proceedings of the Seventh Workshop on Hot Topics in Operating Systems.

[62]  Garth A. Gibson,et al.  Implementing Lottery Scheduling: Matching the Specializations in Traditional Schedulers , 1999, USENIX Annual Technical Conference, General Track.

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

[64]  Kwei-Jay Lin,et al.  Implementing a general real-time scheduling framework in the RED-Linux real-time kernel , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[65]  Michael B. Jones,et al.  The problems you're having may not be the problems you think you're having: results from a latency study of Windows NT , 1999, Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium.

[66]  Ragunathan Rajkumar,et al.  Portable RK: a portable resource kernel for guaranteed and enforced timing behavior , 1999, Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium.

[67]  Sang Hyuk Son,et al.  Design and evaluation of a feedback control EDF scheduling algorithm , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[68]  Don Oliver Amanze Oparah A framework for adaptive resource management in a multimedia operating system , 1999, Proceedings IEEE International Conference on Multimedia Computing and Systems.

[69]  K. Birman,et al.  Building reliable, high-performance communication systems from components , 1999, SOSP 1999.

[70]  Mark Russinovich,et al.  Inside Microsoft Windows 2000 , 2000 .

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

[72]  Eddie Kohler,et al.  Programming language techniques for modular router congurations , 2000 .

[73]  Kang G. Shin,et al.  QoS negotiation in real-time systems and its application to automated flight control , 1997, Proceedings Third IEEE Real-Time Technology and Applications Symposium.

[74]  Sanjoy K. Baruah,et al.  Efficient scheduling of real-time multi-task applications in dynamic systems , 2000, Proceedings Sixth IEEE Real-Time Technology and Applications Symposium. RTAS 2000.

[75]  Eric Eide,et al.  Knit: component composition for systems software , 2000, OSDI.

[76]  Premkumar T. Devanbu,et al.  Resource Management , 2000, EDO.

[77]  Sanjoy K. Baruah,et al.  A framework for achieving inter-application isolation in multiprogrammed, hard real-time environments , 2000, Proceedings 21st IEEE Real-Time Systems Symposium.

[78]  Gilles Muller,et al.  Bossa: a DSL framework for application-specific scheduling policies , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

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

[80]  Michael B. Jones,et al.  Two case studies in predictable application scheduling using Rialto/NT , 2001, Proceedings Seventh IEEE Real-Time Technology and Applications Symposium.

[81]  Michael B. Jones,et al.  Predictability requirements of a soft modem , 2001, SIGMETRICS '01.