IMMD Home Page IMMD IV Home Page Up Right Jürgen Kleinöder, 03/21/95, Dirk Husemann, 03/21/95

PM System Architecture

Architectural Concepts

The PM system architecture (PM/SA) uses the PM object model to implement the components of the operating and run-time system. Starting with very simple implementations of operating system abstractions (e.g. synchronous method invocations within the same address space), more powerful features are added in each step (e.g. method invocations to different address spaces on the same machine and finally asynchronous calls over the network).

The goal of this strategy is to increase the level of abstraction available for programming such an operating system. The programs can then be based on abstractions of the object model, even if these are not yet completely implemented.

The objects that implement the operating system services and those objects that use these features are implemented in the same object model. The interfaces are therefore compatible. Given sufficient rights it is possible that every application object interacts with any OS service object. Obviously, the application has to have some sort of reference to the operating system objects. Similar mechanisms for an object-oriented interaction between the operating system and applications can be found in Choices (Univ. of Illinois).

Since the operating system is not a monolithic block with a fixed interface, an application can build operating system mechanisms on top of existing abstractions. This is done by implementing objects that implement operating system functionality for other objects by communicating with operating system objects. This creates relationships at the implementation level, beyond the normal client/server relationship of caller and callee. This corresponds to the object/meta- object relationship in Apertos.

Already we have designs for different parts of the system, like the object storage, the scheduling architecture or support for progressive computation. Other parts are still at work - e. g. handling of multimedia datastreams in an object oriented system.

Object Storage and Memory Management

The assignment of operating system objects to virtual address spaces is not set beforehand by a division into the microkernel, operating system server, and applications, but can be done on each node according to the security and efficiency requirements.

Virtual address spaces are called object spaces. Objects can be mapped into several object spaces. Objects from the operating systems can be placed in the application object space, and application objects can be mapped into an operating system object space providing supervisor state. Method calls across object borders are more expensive than local method calls. However, since the association of objects to object spaces is very flexible, the costs can be reduced to a minimum by an appropriate placement of the objects [Kle93].

Progessive Computations and Fine Grained Checkpointing

For the implementation of the computational guarantees tentative and progressive of the PM Object Model a dedicated checkpointing algorithm was developed. It is especially suited for the fine granularity of computational units and the request-reply interaction found in object-oriented systems [Eir94a].

Hierarchical Scheduling Architecture

Each object space can contain one or more threads. The scheduling is done by scheduler objects, which can be ordered hierarchically. A main scheduler assigns time slices to application schedulers, which in turn schedule the application threads or perhaps subsystem schedulers, e.g. to achive fairness between different subsystems within an application.

The user can define and instantiate own schedulers as needed and replace system-predefined schedulers inside his application to achieve an optimal environment for it. [KlR94].

Multimedia Datastreams

Key issues involved in supporting multimedia data streams in distributed object-oriented operating systems (DOOOS) are of multimedia data.

Scheduling is by now a rather well-understood area, and concepts exist that provide the necessary scheduling capabilities required for multimedia processing. In particular the PM hierarchical scheduling concepts are worth being mentioned here.

The most interesting aspects of processing multimedia data streams within DOOS are the transportation and synchronization issues:

Transportation
Multimedia data streams are of almost continuous nature. The object-oriented programming approach prefers objects whose state only changes in response to well-defined events: method calls. Traditional systems either utilized a "copy-in, process, & copy-out" paradigm, spending most of their time in the copy process, or employed a memory mapping approach, thereby destroying almost all possibilities to achieve one of the main goals of an operating system: abstraction.

PM introduces the chunk/reification mechanism: multimedia data is copied only once into a memory region, the chunk. A stream of multimedia data (e.g. video frames) results in a stream of multimedia chunks which are then mapped into object spaces where multimedia objects are created from the chunks through reification. Thus, the multimedia data stream turns into a multimedia object stream.

Synchronization
Processing multimedia data streams requires facilities for splitting, joining and also (re-)synchronizing multimedia data streams. PM uses an extended Sync-Marker scheme that allows for different substreams of a multimedia data stream to be more or less tightly synchronized (e.g. the audio and video streams ought to be lip-synchronuous, whereas the subtitles need a less strict binding). The occuring issues of inter-stream and intra-stream synchronization are essentially implemented using coordination facilities (remote light-weight coordination, tentative/probing coordination, local coordination).