Summary: 1. e1 -> e2: If e1 occurs, then e2 must also occur. There is no
2. e1 < e2: If e1 and e2 both occur, then e1 must precede e2.
Examples of execution dependencies defined in the
1. Commit Dependency : Transaction A is commit-
dependent on transaction B, iff if both transactions
commit, then A commits before B commits. Let the
relevant significant events be denoted as cmA and cmB.
This can be expressed as cmA < cmB.
2. Abort Dependency : Transaction A is abort-dependent
on transaction B, iff if B aborts, then A must also abort.
Let the significant events here be abA and abB, so this
can be written abB -> abA.
The relationships between significant events of a task
can be represented by a task state transition diagram which
is an abstract representation of the actual task that hides
irrelevant details of its sequential computations. Execution
of the event causes a transition of the task to another state.
Figure 3 shows an example task state transition diagram