notes
notes copied to clipboard
What makes KeyKOS special: The definition of what a process is
The fundamental KeyKOS idea is this: A process does not own resources, it consists exclusively of rights to resources. One of such right types is the Node Key, which points to a Node - an array of 16 keys. So a node, by containing a Node Key can refer to another Node, resulting in a network (mostly trees) of Nodes containing Keys.
So a process is just a Node ("Root Node") - a bundle of keys:
From here: http://www.cap-lore.com/Agorics/Library/KeyKos/Principles/chapter2b.html
Some of them refer to the memory that the process uses as its code/data, some to resource meters which keep track of and define the process resource quotas, some to a keeper domain which gets invoked if the domain runs out of resources or raises another exception during execution. There is also a key to the Regs node, which stores/refers to the processor register contents (only on process suspension?).
Keys can be shared freely, so the memory a process (in the KeyKOS world called domain) uses, can be used by others as well. There is no distinction between private and shared memory, everything can be potentially shared.
KeyKOS only metered time directly, not memory. This was done by another mechanism, built on top of the system (which? spacebanks).