design, implement, and debug. Segregating all synchronization behavior into IDAs
means that this code is now identifiable and localized rather than being scattered
throughout the system. The fact that IDAs are typed means that once an
implementation is debugged it can be reused with confidence.
All of these entities along with the connections between them cannot exist in free
space; they must be contained within a subsystem. Subsystems provide context and
control for the entities they contain and can contain other subsystems. Subsystems
are named and their names must be globally unique within the bounds of a MASCOT
system; activity, IDA, and connection names, on the other hand, need only be unique
within the boundaries of a subsystem. Within a MASCOT system there is always at
least one subsystem, the ‘global’ subsystem, which contains everything else.
Within a subsystem, connections are either local, ie. internal to the subsystem, or
external, ie. they cross the subsystem boundary. External connections have a defined
scope that controls their visibility outside the subsystem boundaries; please refer to
the example for a detailed explanation of connection scoping. External connections
are the way a designer ‘wires’ subsystems together.
The ‘contains’ relationship is central to constructing MASCOT systems and defines the
relationship between subsystems. The contains relationship is not hierarchical; there
is no implied dependency between a subsystem and its container. A container must
satisfy the contained subsystem’s external connection requirements but beyond this
the relationship simply states that one subsystem lies completely within another’s
boundaries. The contains relationship does have implications in terms of control; any
command applied to a subsystem will propagate to all of the subsystems it contains.
For example, terminating the global subsystem will terminate every subsystem know
to the machine and cause it to exit. The easiest way to visualize this relationship is to
think of subsystems as pluggable.