Communications of the ACM
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Effective distributed scheduling of parallel workloads
Proceedings of the 1996 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
A hierarchial CPU scheduler for multimedia operating systems
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Application performance and flexibility on exokernel systems
Proceedings of the sixteenth ACM symposium on Operating systems principles
The design, implementation and evaluation of SMART: a scheduler for multimedia applications
Proceedings of the sixteenth ACM symposium on Operating systems principles
CPU reservations and time constraints: efficient, predictable scheduling of independent activities
Proceedings of the sixteenth ACM symposium on Operating systems principles
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
Journal of the ACM (JACM)
Inside Windows NT
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
IEEE Transactions on Computers
Self-Monitoring and Self-Adapting Operating Systems
HOTOS '97 Proceedings of the 6th Workshop on Hot Topics in Operating Systems (HotOS-VI)
An optimal pinwheel scheduler using the single-number reduction technique
RTSS '96 Proceedings of the 17th IEEE Real-Time Systems Symposium
Scheduling real-time applications in an open environment
RTSS '97 Proceedings of the 18th IEEE Real-Time Systems Symposium
Lottery and Stride Scheduling: Flexible Proportional-share Resource Management
Lottery and Stride Scheduling: Flexible Proportional-share Resource Management
Resource partitioning in general purpose operating systems: experimental results in Windows NT
ACM SIGOPS Operating Systems Review
Application-defined scheduling in Ada
IRTAW '02 Proceedings of the 11th international workshop on Real-time Ada workshop
A POSIX-Ada Interface for Application-Defined Scheduling
Ada-Europe '02 Proceedings of the 7th Ada-Europe International Conference on Reliable Software Technologies
Thread transparency in information flow middleware
Software—Practice & Experience - Special issue: Middleware
Application-defined scheduling in Ada
IRTAW '03 Proceedings of the 12th international workshop on Real-time Ada
Invited application paper: language design for implementing process scheduling hierarchies
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Process prioritization using output production: Scheduling for multimedia
ACM Transactions on Multimedia Computing, Communications, and Applications (TOMCCAP)
CPU reservations and time constraints: implementation experience on windows NT
WINSYM'99 Proceedings of the 3rd conference on USENIX Windows NT Symposium - Volume 3
SEM'02 Proceedings of the 3rd international conference on Software engineering and middleware
Dynamic scheduling of distributed method invocations
RTSS'10 Proceedings of the 21st IEEE conference on Real-time systems symposium
Integrating application-defined scheduling with the new dispatching policies for ada tasks
Ada-Europe'05 Proceedings of the 10th Ada-Europe international conference on Reliable Software Technologies
Hi-index | 0.00 |
This paper presents Vassal, a system that enables applications to dynamically load and unload CPU scheduling policies into the operating system kernel, allowing multiple policies to be in effect simultaneously. With Vassal, applications can utilize scheduling algorithms tailored to their specific needs and general-purpose operating systems can support a wide variety of special-purpose scheduling policies without implementing each of them as a permanent feature of the operating system. We implemented Vassal in the Windows NT 4.0 kernel. Loaded schedulers coexist with the standard Windows NT scheduler, allowing most applications to continue being scheduled as before, even while specialized scheduling is employed for applications that request it. A loaded scheduler can dynamically choose to schedule threads in its class, or can delegate their scheduling to the native scheduler, exercising as much or as little control as needed. Thus, loaded schedulers can provide scheduling facilities and behaviors not otherwise available. Our initial prototype implementation of Vassal supports two concurrent scheduling policies: a single loaded scheduler and the native scheduler. The changes we made to Windows NT were minimal and they have essentially no impact on system behavior when loadable schedulers are not in use. Furthermore, loaded schedulers operate with essentially the same efficiency as the default scheduler. An added benefit of loadable schedulers is that they enable rapid prototyping of new scheduling algorithms by often removing the time-consuming reboot step from the traditional edit/compile/reboot/debug cycle. In addition to the Vassal infrastructure, we also describe a "proof of concept" loadable real-time scheduler and performance results.