Dynamic Soft Real Time-Multi Processor CPU Scheduler

[Introduction] [Design] [Download Files] [MS Thesis] [Contact Information]


Based on Hoa-Hua Chu's Ph.D. work on the Dynamic Soft Real Time CPU scheduler, we have developed a multi-processor version of the system. The problem of Quality of Service (QoS) degradation during multimedia playback can occur when CPU congestion exists. The DSRT server resides as a middleware layer on top of the underlying operating system. The server provides soft real time guarantees to multimedia client applications. Even as the number of client applications running on the CPU increases, periodic computation guarantees are met ensuring no degradation in QoS. The DSRT system developed for Windows NT/2000 is optimized for a single processor machine. We have developed a multi-processor version of the server called DSRT-MP. The DSRT-MP server enables client applications to pin a particular processor. Client applications can also dynamically migrate between processors at run-time via the server. The DSRT-MP server off-loads the mapping of CPU reservations to processors to the client application. DSRT-MP also includes resource requirements discovery (CPU probing) and the ability to make soft real time CPU reservations for a specified time in the future.


DSRT-MP Architecture

The architecture of the DSRT-MP server has four main components: an API, suspension handler, broker, and scheduler. The API is a simple client side component that contains method calls to connect to and run soft real time threads on the DSRT-MP server. The API is compiled into the client's code to enable the client access to the DSRT server. The suspension handler is responsible for updating the scheduling queues when a client needs to be suspended. The broker is responsible for admission control. The scheduler is responsible for selecting, scheduling, and dispatching client threads. Each of these four components executes in a separate thread context (i.e., simultaneously). The client side API sends messages to each of the other three components. In addition it receives the results of a reservation request from the admission broker. Just prior to suspending itself in the API, a client will send a message to the suspension handler. The suspension handler updates the states of the client threads. The suspension handler has direct access to the scheduler's queues. The scheduler runs continuously. If there are no threads to schedule, the scheduler sleeps. The scheduler does not interact with any of the other components. Rather, the other three components change the queue (by adding or removing a thread) or the states of a thread. The broker performs the admission control test for a prospective soft real time client thread. The broker interacts with the client when a reservation request is made. The broker is the only component that inserts and removes threads from the queues.

DSRT-MP Server Components

We refine the previous figure with the one immediately above, the dotted line indicates thread context. In this example the MPEG player is the soft real time client and the Server API runs in the MPEG player's thread context. The server's message handler is the server side recipient of all client API messages except messages to the client suspension handler. It is responsible for receiving client requests from the API and relaying them to either the broker or the scheduler's client request handler subcomponent. The Client Request Handler subcomponent manipulates the states of the threads in the scheduler's queues. For example, it might change a client's processor or reservation.

Download Files


  • Requires Windows 2000 Professional (with multi-processor kernel) or Windows 2000 Server.
  • Requires MS Visual C++ V6.0SP5 or greater to compile
  • Requries MS Windows 2000 Platform SDK November 2001 or later to compile

  • Download Windows 2000 C++ Source Code.

    MS Thesis

    James W. Jackson, [ps], [zipped ps]
    Department of Computer Science, University of Illinois at Urbana-Champaign, May 2002.

    Contact Information

    E-Mail Address 1 Jim Jackson jimwjack@aol.com
    E-Mail Address 2 Kai Chen kaichen@uiuc.edu
    Office Phone No. (217) 333-1515
    Office Location 2517 DCL

    Copyright @ 2002, Multimedia, Operating Systems and Networking Group, University of Illinois at Urbana-Champaign.