•endroot Termination processing for activities. A machine will force an activity through endroot processing if it is not called explicitly.
•wait/sleep Suspend for a defined time. The activity will suspend for at least the requested time
•open/close/read/write/resolve Primitives that operate on channels and devices. Open, close, read, and write are all just what they say. Resolve resolves a channel reference according to its scope. Note that resolve produces a direct channel reference and eliminates any indirection implied by the scoping.
MASCOT Machines may also present a system console by which users can interact with the machine. Unless otherwise noted, console commands apply to subsystems and a machine may implement one or more of the following commands:
•halt/resume Suspend/restart a subsystem. Depending on the machine implementation this command can have side effects since it may lock some shared resources.
•enroll/destroy Add a new SET to a running subsystem. Delete a subsystem from the machine’s list of known subsystem entities. A subsystem cannot be deleted if it has any incarnations.
•terminate (primitive)/kill (command) Destroy a subsystem incarnation. The termination process is recursive and so all contained entities will be destroyed as well. Terminating the global subsystem terminates all subsystems and then the machine itself.
•device (entity) A minimal machine need not implement devices.
•Non-blocking read/write IDA access can be either blocking or non-blocking; the default implementation is blocking.
Finally, there are no restrictions on the number or mix of entities a subsystem can contain. In particular, a subsystem may contain only channels, only activities, or nothing at all. In all cases, the only way to remove an incarnation is to terminate or kill the subsystem.