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

Execution Trace

Let the statements of the program be numbered from zero to the total number of statements in the program. We define the state of a process to be the value of each variable in the program's data space. The message queue of a process is not considered part of the program's data space. The timed process trace of a process is a sequence that captures the state changes of the process, and the timestamps of the state changes, from process initialization to process termination. Formally, let a timed process trace be denoted by TP or , where:

  1. describes the sequence of statements that is executed. It contains a single statement number when a send or receive statement is executed, and a sequence of statement numbers when a local code block is executed.
  2. is the state of the process before the statement sequence is executed.
  3. is the time at which the statement sequence started execution, relative to time at which the process started execution.
  4. is the data of the accepted message if the statement executed is a receive statement. Otherwise, this field is null.
Upon the execution of a send statement, neither the state of the sender process nor the receiver process changes. Upon the execution of a receive statement, only the buffer, into which the accepted message is copied, gets changed. We restrict ourselves to terminating programs. Consequently, timed process traces are finite sequences. The final term in timed process trace TP, , contains the final state of the process, and the time it terminated. To emphasize that the final term does not denote the execution of any statement, is set to -1.

The trace or execution trace of a program is a tuple of the timed process traces of its processes. Formally, , where E is the trace, is the timed process trace for process n, and N is the total number of processes in the execution of the program. We assume all processes start at the same time. The execution time of a trace is the maximum of the termination times of its constituent timed process traces.

The trace set or execution trace set, , of program P with input I, is the set of all possible traces of the given program for the given input.



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



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