1. (10pts) process q var s, exp : 0..1, {init. 0} t : integer c : integer begin rcv data(s,t,c) from p -> if exp = s ^ c = CHKSUM(s,t) -> {accept data msg} skip; exp = exp +2 1 [] exp != s ^ c!= CHKSUM(s,t) -> {discard data msg} skip fi end 2. (10pts) S = if true -> {busy q} skip [] i < nr -> akn := true [] nr <= i <= nr+wr -> rcvd[i mod wr], txt[i mod wr] := true, t; do rcvd[nr mod wr] -> send data(txt[nr mod wr]) to r; rcvd[nr mod wr], nr, akn := false, nr+1, true od fi