Consider a concurrent program with processes, p and q, defined as follows. A, B, C, D, and E are arbitrary atomic (indivisible) statements. Assume that the main program (not shown) concurrently execute the two processes
void p()
{
A;
B;
C;
}
void q()
{
D;
E;
}