A Delicate Foundation Issue

This is an issue of how to abstractly define the behavior of the system, especially the kernel. This impacts the nature of formal reasoning about the system. There are two ways to view the atomic actions of the system, Message and take-grant. Each has its it advantages and disadvantages.
message
In this view the most fundamental action is the message between objects. The gate jump is the ideal version of this. We have taken the late attitude that nodes are objects because it simplifies so many arguments. It is only slightly awkward that the code that defines the node’s behavior is in the kernel and conforms to capability discipline because it is correct rather than because it is constrained by the kernel to do so. The real problem is that smallest atomic action while invoking a node includes the message to the node and the response from the node. This is so as to maintain the rule that all state is in pages and nodes between atomic acts. We did not want to define a node state of having received a message but not yet having responded to it. (Actually we didn’t give that option much thought.) Another problem with this model is explaining the effect on meters of domains as they run. Both models have this problem. The effect of a domain on the pages of its address space can be likened to invocation of a node.

The big advantage of this concept is the collection of formal ideas that come from language design such as Actors.

Take-Grant
In this view invocation of nodes is analogous to the machine’s load and store operations. Now the two concepts of atomic coincide, but the formal arguments become more obscure.

Recent rediscovery of issue