Eliminating receive livelock in an interrupt-driven kernel
ACM Transactions on Computer Systems (TOCS)
Structuring Communication Software for Quality-of-Service Guarantees
IEEE Transactions on Software Engineering
A Class of Rate-Based Real-Time Scheduling Algorithms
IEEE Transactions on Computers
Real-Time Dwell Scheduling of Component-Oriented Phased Array Radars
IEEE Transactions on Computers
Experiences in Managing Energy with ECOSystem
IEEE Pervasive Computing
Currentcy: a unifying abstraction for expressing energy management policies
ATEC '03 Proceedings of the annual conference on USENIX Annual Technical Conference
Resource management for global public computing: many policies are better than (n)one
WORLDS'06 Proceedings of the 3rd conference on USENIX Workshop on Real, Large Distributed Systems - Volume 3
Vassal: loadable scheduler support for multi-policy scheduling
WINSYM'98 Proceedings of the 2nd conference on USENIX Windows NT Symposium - Volume 2
Cooperative cache partitioning for chip multiprocessors
Proceedings of the 21st annual international conference on Supercomputing
Comparison of the three CPU schedulers in Xen
ACM SIGMETRICS Performance Evaluation Review
Dynamic proportional share scheduling in Hadoop
JSSPP'10 Proceedings of the 15th international conference on Job scheduling strategies for parallel processing
An adaptive management mechanism for resource scheduling in multiple virtual machine system
ATC'11 Proceedings of the 8th international conference on Autonomic and trusted computing
Cake: enabling high-level SLOs on shared storage systems
Proceedings of the Third ACM Symposium on Cloud Computing
Hi-index | 0.01 |
This thesis presents flexible abstractions for specifying resource management policies, together with efficient mechanisms for implementing those abstractions. Several novel scheduling techniques are introduced, including both randomized and deterministic algorithms that provide proportional-share control over resource consumption rates. Such control is beyond the capabilities of conventional schedulers, and is desirable across a broad spectrum of systems that service clients of varying importance. Proportional-share scheduling is examined for several diverse resources, including processor time, memory, access to locks, and disk bandwidth. Resource rights are encapsulated by abstract, first-class objects called tickets. An active client consumes resources at a rate proportional to the number of tickets that it holds. Tickets can be issued in different amounts and may be transferred between clients. A modular currency abstraction is also introduced to flexibly name, share, and protect sets of tickets. Currencies can be used to isolate or group sets of clients, enabling the modular composition of arbitrary resource management policies. Two different underlying mechanisms are introduced to support these abstractions. Lottery scheduling is a novel randomized resource allocation mechanism. An allocation is performed by holding a lottery, and the resource is granted to the client with the winning ticket. Stride scheduling is a deterministic resource allocation mechanism that computes a representation of the time interval, or stride, that each client must wait between successive allocations. Stride scheduling cross-applies and generalizes elements of rate-based flow control algorithms designed for networks to dynamically schedule other resources such as processor time. A novel hierarchical stride algorithm is also introduced that achieves better throughput accuracy than prior schemes, and can reduce response-time variability for some workloads. The proposed techniques are compared and evaluated using a variety of quantitative experiments. Simulation results and prototype implementations for operating system kernels demonstrate flexible control over a wide range of resources and applications.