|
|
|
|||||
|
|
|
|||||
|
|
|
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.
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.
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. |