•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.