diff --git a/docs/v4.0.0/ENGINE.md b/docs/v4.0.0/ENGINE.md index 060509a9..8eeba6a2 100644 --- a/docs/v4.0.0/ENGINE.md +++ b/docs/v4.0.0/ENGINE.md @@ -304,6 +304,18 @@ Rulings on that step so far: other end of a port, in the same table. Nothing in the engine knows which geometry is in use. A node is told, or finds out, which port leads toward a destination. +- **What Hera's process management decides (ruled, "A"): which nodes + exist and are awake, not whose turn it is.** Every node that is not + blocked runs; on one processor that is each in rotation, an instruction + word at a time, which is what "all at once" is there and is not a + policy. From each node's heat Hera decides which are born, put to sleep, + woken and killed (`JUSTIFICATION.md` sections 6 and 7). Cooperative is a + node blocking itself at a port; preemptive is Hera putting a node to + sleep or killing it between any two instruction words. Nothing in this + depends on there being one processor. With it: an idle node does not + spin; it is blocked reading its ports and wakes when a neighbour writes, + and the console handing it a line is a message arriving on a port like + any other. - **How it grows: "Only the central node can connect to only another central node."** So the five are a unit: four outer nodes and their centre. An outer node is wired only inside its own unit. Units are joined