The Node
The node in Keykos is the primordial means of storing keys.
Keykos segregates data from keys when they reside in memory.
At the kernel abstraction level nodes hold keys and pages hold data.
In the systems built so far a page holds 4096 bytes and a node holds 16 keys.
Of course user mode programs access data in pages with normal instructions whereas keys in nodes are manipulated by user mode programs only via kernel mediation.
We speak of a node having 16 slots where a slot is a mutable cell which at one time holds just one key.
One type of key is the number key which, in effect, merely remembers an 88 bit integer.
DK(n) denotes the number key n,
The slots of a new node from a space bank all hold DK(0).
Aside from merely holding keys the kernel recognizes several node configurations for special purposes:
- A meter is composed of a single node which the meter key designates.
The meter conveys dynamic authority to consume CPU resources.
- A segment stores data and a segment key designates a node which holds details on how more primitive mechanisms hold the data.
- A domain is the abstraction of the CPU, but limited to executing user mode instructions.
In early Keykos systems it was composed of three nodes, linked together with node keys.
For each of these kernel constructs there are two ranks of authority thereto:
The service key to a meter allows specifying how much resource may be consumed and the use key thereto allows consuming that resource.