Real-time applications that utilize multiple system resources,
such as CPU, disks, and network links require "coordinated"
scheduling of these resources in order to meet their end-to-end
performance requirements. Most state-of-the-art operating systems
support at best independent resource allocation and deadline-driven
scheduling but lack coordination among individual heterogeneous
resources. This paper describes the design and implementation of an
Integrated Real-time Resource Scheduler (IRS) that performs
coordinated allocation and scheduling of multiple heterogeneous
resources on the same machine. The novel feature of IRS is a
multi-resource allocation mechanism that maximizes overall
resource utilization efficiency while ensuring that end-to-end
timing constraints of the real-time application be satisfied.
More specifically, IRS assigns a delay budget to each task in an
application according to the current load and predicted demand on
individual resources. At run-time, a "global scheduler" dispatches
the tasks of the real-time application to corresponding resource
schedulers according to the precedence constraints between tasks.
Hence, individual resource schedulers can make scheduling decisions
locally and yet collectively are able to satisfy a real-time
application's end-to-end performance requirement.