A
CP diagrams are MASCOT’s primary design tool and the starting point for the
design of any MASCOT system. These diagrams encapsulate a number of key
concepts that are central to understanding MASCOT.
MASCOT defines three basic entities, activities, channels, and pools, from which ACP
diagrams derive their name; channels and pools are specific cases of a more general
entity, Intercommunication Data Areas (IDA). An activity is the equivalent of a task
or process and represents a single execution thread. Activities interact through IDAs
and it is assumed that IDA access is thread-safe; every IDA has a behavior defined by
its underlying implementation. In general, channels are taken to be simplex
connections like FIFO pipes while pools usually implement some form of persistence.
In other words, data written to a channel is assumed to be transient while data
entered into a pool will persist until explicitly deleted. It is important to note that
these definitions are not rigid and IDAs can exhibit any behavior required by a system.
Finally, all activities and IDAs have a name and a type; the process of defining an
instance of an entity type is called instantiation. Entities of the same type can be
instantiated any number of times under different names.
Activities and IDAs are connected according to some simple rules. Connections are
directed and shown as arrows; information flows along them from a source to a sink.
Connections must link an activity to an IDA; activity to activity and IDA to IDA
connections are not allowed. Connecting an activity to an IDA means that the activity
has permission to access the IDA and implies synchronization and possibly scheduling.
Connections are named and activity implementations can only refer to them by name.
The ‘Detailed Example ACP Diagram’ page gives an example of an ACP diagram along
with information on its symbology and layout rules.
These rules have some important implications. Since activities do not deal with
synchronization and inter-process communication directly, they are generally easier to