A concurrent program with 2-procedure, p and q, defined as follows, A,B,C,D, and E are arbitrary atomic (indivisible) statements. Suppose that the main program (not shown) does a parbegin of the two processes.
void p()
{
A;
B;
C;
}
void q()
{
D;
E;
}
Show all the possible interleavings of the execution of the preceding two processes(show this by giving execution "traces" in terms of the atomic statements).