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.