            |
Object Model
This system is divided up into object groups. Each group is made up of three kinds of objects: one or more base-objects, one multiplexer objects (called "mux" from now on) and some meta-objects.
The meta-objects represent system resources such as memory, processor time, communication capacity and so on. It is the job of the mux to allow the objects in the group to share these resources in some organized way. The way it does that varies depending on the kind of resource: memory sharing can be controlled with the help of hardware (a Memory Management Unit, for example) or by influencing the code generated by the compilers while sharing the processor might be done by setting up an interrupt handler for the timer hardware.
A group can be a subgroup of a larger group and in that case its mux appears as a base object in this "parent" group. Any resouces available in the subgroup are just a subset of what the parent has. This implies a strict tree structure, but virtual meta-objects complicate things by pooling together resources from two or more meta-objects into a larger virtual resource. So a virtual disk, for example, could pool the space of three different physical disks into what looks just like one big disk.
One aspect of the subgroup structure is that a mux can delegate to its parent mux the management of any resources that it would share in the exact same way, so it can focus on those resources it wants to handle differently.
|