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
dbg@cs.cmu.edu
Abstract
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.