Back | Home | Up

Osmosis

ANNA  K5

@

Home
Up
Glossary
Objectives
Formalism
Physiology
Connectors
Serialization
Traits
Methods
Claims
Relations
Dictionary
Core UML
Ring1 Apps
Tiger Server
Features
History
ToDo
Authors
API
Images
ToDo
DNA Declarations
Physiology RO
Real Time RO
ANNA as an Eco System RO
HMM Generator
ERP

 

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:

  1. why represent the allocated objects as coming out through the membrane of the morphic cell?

  2. why represent the amorphous space right at the top of the diagrams, above the morphic core?

  3. how can these allocated objects flow through the cell's cytoplasm so as to eventually exit?

 

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:

  1. the bottom allocator sediments its contained objects thus consolidating free blocks to the top.

  2. the bottom allocator shrinks by as much free space it has successfully gathered at the top.

  3. the top allocator relocates down by an offset equal to the difference in size

  4. the top allocator grows by the specified amount of free space at the top

 

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:

  1. dislocate the portion of sterile ahead of the object in the direction of motion

  2. relocate the object to the new coordinates in one move

  3. reinsert the dislocated space behind the moved object

 

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:

  1. the template AMORPHOUS type,
  2. the template TREE_BASE type
  3. a numeric range called the Amorphous Space

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.

Allocation

The following picture illustrates the role of the Morphism Core in sub-classing amorphous space into internal structures and export structures.

e1

e2

e3

e4

e5

e6

e7

e8

e9

Morphic Space

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

Membrane

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.

Allocation

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.

 

Life span of 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.

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. 

 

Hit Counter Created on 05/27/2009 06:16:08 AM, modified on 05/27/2009 06:16:07 AM

Home
Up

Home | Up | Feedback | Contents | Search

Send mail to webmaster@ProximaCentauri.ro with questions or comments about this web site.
All principles and artwork exposed on this site or by our software products is our intellectual property. 
Copyright © 2006 Proxima Centauri Romania SRL. Last modified: 05/27/09