Links Internal Publications Current Work Documentation Home Legal Notice

Rainbow - OS

A distributed high-speed operating system for standard PCs


Home

Current Work

Documentation

Publications

Internal

Links

Legal Notice



Memory Management



Consistency



Compiler


Rainbow-OS documentation:


Distributed memory management has always been a basic component of any distributed operation system, providing extended functionality compared to single system memory management. Rainbow OS essentially has two components for memory allocation, one for the local memory, integrated in the local core of Rainbow OS, and one for the the distributed memory, as part of the distributed core, which is shared by all nodes.


Local Memory Management:

The local memory management is needed for the work of structures, components and devices, which have to be on each node individually. Thus it administrates the whole physical memory, the page tables for virtual memory and offers a simple memory allocation function for all objects of the local core, for instance, objects for local device drivers. This local memory also can not be distributed, e.g. accessed from other nodes in the cluster.
This local memory management is also called alpha-kernel.


Distributed Memory Management:

In contrast to the local core, the distributed core of Rainbow OS (also called beta-kernel) contains its separated distributed memory management. It manages the shared cluster objects as well as the distribution of objects over the network.
It is also possible for the distributed memory management to work for several consistency models.


Distributed Memory:

The distributed memory is organised as a single global address space. Each object within it has an unique memory address and can be referenced with this address. For an user or an application it makes no difference for an access to this object whether it is situated within the physical memory of the own local node or in the physical memory of a remote node in the cluster. Rainbow OS will provide transparent access to this object, e.g. if the object is not available locally it will be transfered automatically over the network to the local node for free access.