There are several possible keys to a particular domain. The main key is the domain service key. One invocation on the domain service key, passing an 8 bit number, returns one of the 256 start keys to that domain. The meaning of invocations of start keys is defined by the code that the domain obeys.
We say that each of these domains is a different object but these objects are of the same type. A particular client holds only the start key to his own object and thus the program needs no programmed logic to distinguish between its clients upon invocation.
Some multi client programs behave towards one client according to state that is effected by actions of other clients. In this case the domains may share either a mutable portion of address space where the common state is expressed, or a key to a deeper object that holds the common state is shared between the domains that obey the program.
The kernel’s stalling mechanism provides efficient management of the queue of those processes waiting for the resource.