next up previous
Next: Execution Trace Up: An Execution Model Previous: An Execution Model

Execution Model

In the execution model, a target program is executed as a set of parallel processes (i.e. one process per processor). At any point in time, a process is in one of the following states:

  1. Running: A process is running if it is not blocked.
  2. Blocked: A process is blocked if it has executed a receive statement, and is waiting for a matching message to arrive.
The execution times of local statements and the communication times of messages are non-deterministic and can be arbitrarily small or large. Non-determinism in execution time is included to model the various effects of sharing of the processor, on each node of the target machine, with the processes of other programs. Non-determinism in communication time is included to model the effects of sharing the communication medium with the processes of other programs. However, messages from one process to another are received in FIFO order. The communication time of messages is assumed to be non zero. If two or more messages (from different processes) arrive simultaneously at a receiver, they are deposited in its message queue in arbitrary (non-deterministic) order.



next up previous
Next: Execution Trace Up: An Execution Model Previous: An Execution Model



Andy Kahn
Wed Jun 25 20:28:02 PDT 1997