Implementation of Scheduling Policies in Real-Time Mach

Future advanced applications will require new types of objects such as continuous media objects and distributed objects[3, 1]. Such requirements will stress operating systems ability to support various levels of timeliness, reliability and performance. A single computational model and resource management policy may not cover conflicting users requirements. Therefore, an extensible operating system structure is important in future distributed systems. Traditional operating systems such as Unix support fixed programming models and resource management policies. In the future, the requirements of applications will become dramatically more complex in order to support advanced computing environments such as very large scaled distributed computing, highly parallel computing, reliable computing or real-time computing. Operating systems which satisfy the requirements should support multiple model and various resource management policies. For example, parallel computing may require several programming models for different parts of an application: some part may need a message passing model and another part may need to use a shared memory model. In addition, generic high level abstractions may require different implementations according to the characteristics of an application. For instance, object invocation can use either function shipping such as RPC and data shipping such as distributed shared memory(DSM). Resource management modules are especially critical for supporting real-time computing and high performance computing. Supporting multiple policies is important to ensure tatsuo@cs.cmu. edu 1 This research was supported in part by the U.S. Naval Ocean Systems Center under contract number N66001-87-C-0155, by the Office of Naval Research under contract number N00014-84-K-0734,by the Defense Advanced Research Projects Agency, ARPA Order No. 7330 under contract number MDA72-90-C-0035, by the Federal Systems Division of IBM Corporation under University Agreement YA-278067, and by the SONY Corporation. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of NOSC, ONR, DARPA, IBM, SONY, or the U.S. Government. timing constraints and to effectively reflect the semantic information of applications. The basic functions of resource management modules are allocation and deallocation of resources such as processors, communication links and memory spaces. There are two reasons to support multiple policies. The first reason is that sophisticated policies are usually very expensive. Simpler polices may be suitable for the applications which gain no advantage from using the sophisticated policies. The best policy will depend on the requirements of the application. The second reason is that a resource management module can use the semantic information of applications. For example, physical memory management modules for memory mapped files can use semantic information about the characteristics of files to determine the global working set. We can create a new policy by composing several policies which control the different types of files. In this paper, we describe an object-oriented framework for structuring a resource management module in operating systems. This framework provides policy/mechanism separation and the composition of simple policies for the resource management module. We also demonstrate this framework by presenting the implementation of a scheduler in Real-Time Mach[7, 8].