The communication graph of a process is a graph that indicates which processes
communicate with which other processes. Thus, it is a graph in which the
vertices are subprocesses of the top-level process, and in which there is an
edge between any two processes if they can both perform some event. For example,
if Dining Philosophers is loaded, then typing
SYSTEM into the
show the following window:
In the graph, there is a vertex for each
PHIL process and a vertex for each
FORK process. Further, there is a edge between each
PHIL and its
FORK processes, since they can both perform
Clicking on a node in the graph will change the contents of the right-hand pane.
For example, selecting
PHIL(0) will change the contents of the right-hand
pane to the following:
This indicates the name of the process that is selected, along with the processes’ alphabet (i.e. the set of events it can actually perform). Further, the pane also displays communication partners, which are the other processes with which the process communicates, along with the set of events upon which they synchronise.
The Show Global Events option on the bottom right can be used to toggle
whether or not a global event is considered in the communication graph. A
global event is defined as any event that more than 90% of the processes
participate in, and common examples are events such as
tock. If this box is
left unchecked, then such events will be elided, which will often result in a
reduction in the number of edges in the graph.