Operating System Support for Coexistence of Real-Time and Conventional Scheduling

David B. Golub
School of Computer Science
Carnegie Mellon University
5000 Forbes Avenue Pittsburgh, Pennsylvania 15213


The advent of multimedia calls for new scheduling paradigms to handle the combination of time-critical and conventional applications present on many multimedia systems. The scheduler of the Mach 3.0 Microkernel has been rewritten to allow this wide spectrum of scheduling policies, from real-time through time-sharing to background, to be selected simultaneously for different tasks executing on the same processor. Scheduling policies can be set for a task or for individual threads within the task. The set of scheduling policies allowed on a processor, or on a set of processors in a multiprocessor system, can be flexibly restricted and extended. Scheduling parameters can be set individually for each thread, task, or scheduling policy enabled on a processor. The interfaces are extensible, to allow each scheduling policy to have its own parameter structure: parameters need not be forced into the mold of a scalar priority value within a limited range. New scheduling policies may be configured into a kernel and may be ordered in any way desired. The resulting system provides enough flexibility for experimentation with new scheduling regimes, yet is efficient enough to allow a reasonable number of scheduling policies to coexist. When configured with both real-time and timesharing schedulers, the system smoothly supports both conventional and real-time applications.