Wednesday, June 10, 2009
The diagrams in this section were meant to suggest the principles of allocating space and formatting it within the morphis system. They were drawn sometime in 2005, and had been troublesome ever since. Obviously, they were meant to describe an important circuit in the system, one of matter allocation and de-allocation, and that of formatted matter allocation such as is the case with any memory manager allocating typed objects.
Although I am the author of those diagrams, I could never understand what they really meant. It's an indication that, perhaps, I often work instinctively. Right from its incept, ANNA required a tremendous effort of interpretation associated with the development moves to factorize/generalize seemingly different branches of functionality. The main questions about those diagrams were:
Since then, ANNA K5 has a fully operational Morphic Memory Manager with defragmentation and relocation capabilities and with structure inflation/deflation by data injection/extraction. The actual implementation of those mechanisms sheds some light on those diagrams proving them to actually be an instinctive tapping into a valuable principle, called Osmosis.
Osmosis was in 2005 much too far fetched to me to become aware of its possibility and value. Osmosis is to do with the physiology of the morphic cell, and back then the system struggled to gain correct morphology. One of the objectives of the research, declared in 1998 and listed in Features, was to have two adjacent and colliding memory managers change shape, shrink and grow, to accommodate each other's internal need for space. The problem with K5's memory managers is that the controller is auto-contained onto the controlled heap. In the absence of the relocation mechanisms, no adjacent heaps could effectively exchange substance. Now they can, and the exchange is done in the following steps:
Note that a certain region of space has shifted from one manager to the other. Space rather stayed in place, only its managers moved.
In this process of frontier shifting, the two memory managers performed both osmotic operations. One expelled matter as it shrunk, while the other inhaled it as it grew.
Within the allocator, the free space must be seen as water with its properties. Any organ or organism suspended in the allocator is positioned and then relocated by the allocator with ease relative to the viscosity of the mix. Such motion, that of particles within an allocator, does not require that the interstitial liquid be transferred through each allocated particle, normal avoidance physics being enough. An object moves through the allocator, if so deemed by the allocator, in the following steps:
These 3 steps together should be thought off as the quantum of object motion within the allocator.
To dislocate and relocate the sterile in the allocator, a temporary holding place must preexist.
An organism with flagellum or cilia may negotiate this buffer space outside its body at the interface with its environment while speculating on the hydrophobic force to do the transfers.
An organism may also move through allocation by taking ownership of a volume of sterile ahead of it while releasing a correspondingly sized portion of sterile from its body behind.
Osmosis is a form of motion.
Motion is made possible by osmosis.
Osmosis is a propulsion mechanism of the morphic cells, as well as for their nucleus and their mitochondria.
The original text follows.
The Morphic Operating System takes as input:
The Role of the Morphic System is to Structure the space. In doing so, the Amorphous Space will be partitioned (allocated). A subset of the resulting space fragments will be used internally by the Morphic Core as its working sub-systems. Another set of fragments will be exported to the outer world as formatted, typed, morphic objects.Morphism Core in sub-classing amorphous space into internal structures and export structures.
e1 e2 e3 e4 e5 e6 e7 e8 e9
Amorphous Space Matter disposal Matter allocation Matter Recycle Matter sub-allocation loop STREE AMORPHOUS i1 i2 i3 i4 i5 i7 i8 i9 i6 i10 i11
Morphic Core Cytoplasm
In the diagram above, i1-i11 are internal objects constructed out of the amorphous space given to the Morphic Core. The exports of the core are e1-e9. The flow of matter through the core is allocation/partition in red and disposal in purple. A structured export object, e9 for example, may be fed back into the Morphic Core as an amorphous block. This process is called sub-allocation. The streams of substance are the vessels of the Core, much like arteries and veins recycling blood through the heart.
The Morphism Core is based on two fundamental types, the AMORPHOUS and the STREE templates, which are used to externally configure the algorithm of the Core.
Subsystems within a morphic system.
The Core constructs subsystems out of the amorphous space given to it from the environment. A subsystem of a morphic system is a hierarchy of objects of the following nature: Types, Relations, Operators, Instances of types also called objects, Selectors, Instances of operators called Wires. In the following diagram we represent a morphic system consisting of an Allocator, two complex subsystems S1 and S2, and two simple systems T2 and T3.
Amorphous Space T2 i5 i4 i7 T3 i6
S1 T1 i2 T5 i1 i3 R1 s1 s2
S2 T4 i10 T6 i9 i8 R2 s3 s4 Subsystem A Subsystem B O1 w1 w2 Restructured space
Morphic Allocator Matter disposal Matter Recycle
Morphic Space Matter sub-allocation loop Matter allocation Cytoplasm Membrane
S1, S2, T1, T2, T3, T4, T5, T6 are Types. R1, R2 are Relations. O1 is an operator. w1 and w2 are wires instances of O1. i1,i2 are instances of T1; i3, i4,i5 are instances of T2, i6,i7, i8 are instances of T3; i9, i10 are instances of T4. s1 and s2 are selectors to R1 aspects of instances i1 and i2 respectively. s3 and s4 are selectors to the R2 aspect of i9 and i10. Subsystem S1 is made of S1, T1, T5, i1, i2, i3, R1, O1, w1, w2, s1, s2.
Subsystem S2 is made of S2, T4, T6, i8, i9, i10, R2, s3, s4. T2, T3, i4, i5, i6, and i7 are said to be free-floating components of the system.
Types create instances out of amorphous matter.
Amorphous matter flows to and from type masters through a system of ducts similar to a circulatory system of arteries and veins. The implementation of this circulation system is the virtual MemAlloc and MemFree methods of TYPE. A type master that creates another type master would also open-up vessels of matter to it so that the new type master may too create and destroy its objects.
An object of the Morphic System is created, it lives, and it gets destroyed when it no longer has a scope. Objects may exist in an idling state, a running state, or in dormant state. The idle state of an object is entered when no process involves the object. An object is running when a process involves it.
A process runs an object by first locking it, then asking it to carry-out its semantics, or advance towards the object’s goal, and finally unlocking it. An object that has met its goal may disappear from the system. If, however, the object’s goal is cyclic, then it may be restarted by first resetting its goal, and then advancing as with any other object. Such objects live multiple life-spans until their usefulness within the system using fades out.
An object may be useful but not within the foreseeable near future of any running processes. Such an object may occupy valuable resources without contributing to the advance of the state of the system. If space was organised in the overall system as a hierarchy based on costs, the idling object may be better off deposited into cheaper storage.
Depositing an object into a different space can only be done if there is a guarantee that the object can be retrieved from storage when later needed. Objects of the morphic system are transacted by means of Store and Load operations. Load and Store are identical procedures, differing only in direction.
Depositing objects implies the existence of two distinct allocation spaces. Depositing to and from the same space is a degenerate case called Rebase.
Depositing objects must preserve the object’s internal coherence as well as the links of that object with the environment. The deposit transaction must transact between the two space every attribute of the object.
If object O is currently owned by system A and is about to be transacted for deposit at t0 with system B, in the scope of retrieving O at a later time t1 from system B and back to system A, then system B must have a life span of at least t0-t1. If the system that receives the storage transaction is shorter living than the system requesting the deposit, then the deposit is at risk to be prematurely destroyed. Such a scenario is equivalent to an indirect destruction. Destruction in the morphic system is the act of depositing a formatted object back into the unformatted space. This scenario, however, is different on one hand in the sense that the storeroom lives longer than the depositing process, and on the other hand because the amorphous pool makes no promise of integrity of the deposited object. On the contrary, clearly stating that the given object will be treated as raw material and reused in other requests for substance.
Allocation vs storage
There is a close relationship between the allocators of the morphic system and its storerooms. They both hand-out formatted objects. They both receive formatted objects. They both use a hierarchical circulatory system for the flow of objects with the systems around. They are both free to represent their contained objects differently to how the client systems do, by dismantling them. The fundamental difference is that the allocator recycles the dismantled pieces to any client, whereas the storage preserves the object’s identity and coherence for a legitimate retriever.
Created on 05/27/2009 06:16:08 AM, modified on 05/27/2009 06:16:07 AM
Send mail to
questions or comments about this web site.