Adaptive Real-Time Resource Management Supporting Composition of Independently Authored Time-Critical Services - Jones, Mike (In Proceedings of the Fourth Workshop on Workstation Operating Systems (WWOS-IV), 1993)
Application or set of cooperating real-time applications. Many such approaches rely on total knowledge of the set of available resources and are often static in nature. Some, such as priority scheduling, rely on the decisions of human experts who must correctly assign relative priorities to all tasks in the system. Many even require programmers to estimate upper bounds for all execution paths and to pre-compute the resources necessary for correct execution. This paper describes ongoing investigations at Microsoft Research into algorithms for adaptive real-time scheduling and resource management. We are implementing a system which will allow sets of independently authored real-time applications to be scheduled, providing both initial resource negotiation and dynamic feedback to applications about their resource consumption. Instead of relying on human beings to pre-compute scheduling and resource requirements, applications will be able to dynamically adapt their run-time behavior to the resources available. Under overload conditions, user preferences and policies will be applied in order to bring the total resource requirements within available resources. This will permit chosen applications to continue executing perfectly even while others execute with dynamically renegotiated resource grants or are gracefully shut down, as per user preferences. We believe that this approach will lead to real-time scheduling and resource management algorithms which are appropriate for workstation and home multi-media environments. While such static, expert-intensive approaches to real-time resource allocation have a proven track record for programming embedded real-time control systems, they have a number of drawbacks that make them inappropriate for programming applications in more dynamic real-time environments such as multi-media workstations or home multi-media systems. In particular, the underlying assumptions that the available resources are fixed and known and that only a single application or set of cooperating applications are being run do not hold. In workstation or home multi-media environments, more than one real-time application may be executed simultaneously. These applications may be independent and may be independently authored. When digital home information systems are available, indeed, even individual applications may actually consist of independently authored and independently purchased components which may be composed to A number of methods have been developed that allow scheduling and resource allocation decisions to be made for a single real-time.