Lottery scheduling: flexible proportional-share resource management

This paper presents lottery scheduling, a novel randomized resource allocation mechanism. Lottery scheduling provides efficient, responsive control over the relative execution rates of computations. Such control is beyond the capabilities of conventional schedulers, and is desirable in systems that service requests of varying importance, such as databases, media-based applications, and networks. Lottery scheduling also supports modular resource management by enabling concurrent modules to insulate their resource allocation policies from one another. A currency abstraction is introduced to flexibly name, share, and protect resource rights. We also show that lottery scheduling can be generalized to manage many diverse resources, such as I/O bandwidth, memory, and access to locks. We have implemented a prototype lottery scheduler for the Mach 3.0 microkernel, and found that it provides flexible and responsive control over the relative execution rates of a wide range of applications. The overhead imposed by our unoptimized prototype is comparable to that of the standard Mach timesharing policy.

[1]  M. Malik,et al.  Operating Systems , 1992, Lecture Notes in Computer Science.

[2]  Kishor S. Trivedi Probability and Statistics with Reliability, Queuing, and Computer Science Applications , 1984 .

[3]  Reinhold Weicker,et al.  Dhrystone: a synthetic systems programming benchmark , 1984, CACM.

[4]  G. J. Henry,et al.  The UNIX system: The fair share scheduler , 1984, AT&T Bell Laboratories Technical Journal.

[5]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[6]  Gerry Kane,et al.  MIPS RISC Architecture , 1987 .

[7]  William H. Press,et al.  Numerical Recipes in FORTRAN - The Art of Scientific Computing, 2nd Edition , 1987 .

[8]  Donald F. Ferguson,et al.  Microeconomic algorithms for load balancing in distributed computer systems , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[9]  Judy Kay,et al.  A fair share scheduler , 1988, CACM.

[10]  E. Drexler,et al.  Incentive engineering for computational resource management , 1988 .

[11]  S. K. Park,et al.  Random number generators: good ones are hard to find , 1988, CACM.

[12]  Carl A. Waldspurger,et al.  A distributed computational economy for utilizing idle resources , 1989 .

[13]  F. A. Seiler,et al.  Numerical Recipes in C: The Art of Scientific Computing , 1989 .

[14]  David G. Carta,et al.  Two fast implementations of the “minimal standard” random number generator , 1990, CACM.

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

[16]  Jeff A. Johnson,et al.  Improving user-interface responsiveness despite performance limitations , 1990, Digest of Papers Compcon Spring '90. Thirty-Fifth IEEE Computer Society International Conference on Intellectual Leverage.

[17]  Eric A. Brewer,et al.  PRELUDE: A System for Portable Parallel Software , 1992, PARLE.

[18]  Thomas E. Anderson,et al.  High speed switch scheduling for local area networks , 1992, ASPLOS V.

[19]  Tad Hogg,et al.  Spawn: A Distributed Computational Economy , 1992, IEEE Trans. Software Eng..

[20]  David R. Cheriton,et al.  Application-controlled physical memory using external page-cache management , 1992, ASPLOS V.

[21]  K. Loepere,et al.  Mach 3 Kernel Principles , 1992 .

[22]  Joseph L. Hellerstein,et al.  Achieving Service Rate Objectives with Decay Usage Scheduling , 1993, IEEE Trans. Software Eng..

[23]  Thomas E. Anderson,et al.  High-speed switch scheduling for local-area networks , 1993, TOCS.

[24]  David L. Tennenhouse,et al.  Collaborative load shedding for media-based applications , 1994, 1994 Proceedings of IEEE International Conference on Multimedia Computing and Systems.

[25]  David R. Cheriton,et al.  A market approach to operating system memory allocation , 1996 .