S1: a= x+y
S2: b= z
S3: c=a+b
S4: d=c-1
Here statements S1&S2 are independent they can be executed concurrently, whereas statement S3 is depends on S2, S1. S4 is depends on S3. If you look at the precedence graph it is looks like
If we define two sets Read operation R(s), write operation W(s) then the conditions for concurrency are
R(s) ∩ W(s) = fi
W(s) ∩ R(s) = fi
W(s) ∩ W(s) = fi
R(s) ∩ R(s) ≠ fi