[an error occurred while processing this directive]



Welcome to the MoDiS-OS Homepage!

(Former DREAMS-Homepage)


What is MoDiS-OS?

MoDiS is an approach to develop and implement concepts to construct an object-oriented, distributed operating system for a cluster of loosely-coupled workstations. The resulting system (MoDiS-OS) integrates applications as well as tools and classical OS features.

This project is in progress at the Munich University of Technology, chair for operating systems and is part of the SFB342 which is sponsored by the German Research Concil (DFG).


Basic Ideas behind MoDiS

Modern workstations offer lots of computing power, but programming and realizing parallel applications with fine-grained concurrency and a varying demand of hardware resources is still not easy going. Programmers often have to cope with machine specific details instead of concentrating on the desired solutions of their problems. The idea of MoDiS is to provide an integrated environment allowing the user to specify parallel and cooperative algorithms on a high level of abstraction. The mapping of these abstract algorithms to distributed hardware resources is performed system-integrated transparently to the user.

The programming language INSEL was designed to provide a syntax for our abstract concepts to construct structured distributed systems. It can be characterized as an object-based, imperative programming language with an Ada-like syntax. Parallel programms can be compiled by means of an integrated compiler(-tool), which is the key entry point for any application to run in the MoDiS-OS environment. Since the hardware-configuration is physically distributed, current work is concentrating on realizing flexible, application-specific resource management strategies based on a reflecting dynamic manager architecture and a high performance nanokernel.


Research Items of MoDiS-OS

As there are many topics concerning the whole system design, we extracted some characteristic features, that hould provide an idea of the major reserach topics of MoDiS.

Transformations

Starting at the point of an abstract specification of a distributed application in INSEL, transformations build the formal framework for a stepwise realization based on distributed computing resources. In particular the transformation methods provide a great amount of different realization methods according to the mechanisms used in MoDiS-OS. Any change in system conditions - e.g. a machine overload or a system failure - can be coped by (re-)transforming any part of the running application to another more appropriate realization considering the abstract description of this application-part. All decisions for a transformation are made by abstract managers.

Manager Architecture

MoDiS provides a reflective manager architecture. Every active object has its own manager associated with it, which is responsable to fulfill local and global resource demands. In most cases these managers are themselfes only minimal passiv entities avoiding overhead . Since INSEL is a language supporting advanced structuring of applications, the manager architecture adapts to the characteristics of applications. Manager decide at compiletime as well as at runtime about the resource allocations of objects and make global strategic decisions concerning the selection of appropriate mechanisms and the concrete hardware-representation of the objects.

Compiler Technology

MoDiS-OS uses new compilation methods. One basic point is, that the MoDiS-compiler analyses the structural relationships of INSEL-objects and commits this information to the runtime portion of the managers supporting a more efficient resource management. A second point is that the compiler supports the incremental construction of the system, so that the state of computations can be fixed in an abstract manner and can be used for (re-)transformation to a new representation.

Dynamic Extensibility

The system allows reconfigurations at runtime, i.e. extensions with new application-dependent services or replacement of obsolete system services. This is basically supported by an OS-integrated compiler and linker.

Transparency

Distributed resource management is performed transparently to the user. Design of applications is as easy as on single workstations, but with the difference of an improved computing power and the great advantage that users are not engaged with any machine specific details and problems. Additionally working with MoDiS-OS is absolutely independent from the users terminal location and his local computing power.

Distributed I/O

Coming along with transparency in location, MoDiS-OS permits explicit user-definable I/O through an arbitrary number of I/O channels, which can be allocated to a set of physical I/O devices like terminal-windows, keyboards, printers, scanners etc. This allows flexibility in usage, since users can work from any desired terminal and are not fixed to a local subset of I/O devices. Included is also the possibility of mobile computing.

Application-Oriented Resource Management

MoDiS-OS allows the user to specify his application in INSEL with an appropriate degree of parallelism. This INSEL-specific parallelism is mostly realized as a set of concurrent working threads on a set of available machines. According to the load produced by these active objects, managers perform adaptive load and memory managements reducing computational efforts as well as communications- and memory-bottlenecks in the system. This results in a better adaption to application resource requirements, since these may change dynamically over the time.

Persistence/Reliability

Objects in MoDiS-OS live as long as they could possibly be used. This is supported by a uniform persistence concept for all memory objects. From an abstract point of view (this is the programmers view), there is no istinction between the file-system (as an abstraction of long-time storage) and main memory (as an abstraction of short-time storage). Additionally we aim on a scalable degree of fault-tolerance, covering machine faults, data loss, network errors etc.

Low-level OS Services / Kernel

Each node in the system provides low-level abstractions and operations used by the higher-level distributed manager architecture. We decided to modify the Linux kernel that allows and optimal integration according to the requirements of the managers.

[an error occurred while processing this directive] 6.2.2002 (cr) [an error occurred while processing this directive]