W zespole programistów pracujących nad współbieżnym kodem ustalono, że dostęp do współdzielonej zmiennej całkowitej z1(typu int)
chroniony będzize semaforem s1, a do zmiennej z2 (również typu int) - semaforem s2.
W wyniku niezależnej pracy dwóch programistów powstały w różnych miejscach kodu przestawione poniżej sekwencje operacji.
Proszę wyjaśnić na czym polega błąd w kodzie i jak można by go usunąć.
//------------------ PIERWSZY KOD ----
P(s1);
P(s2);
z1 = z2++;
V(s1);
V(s2);
//-----------------
//--------DRUGI KOD -----
P(s2);
P(s1);
z2 = z1++;
V(s2);
V(S1);
//-------
Ma ktoś pomysł na rozwiązanie ? Drugie pytanie, jak robicie kolorowanie składni ?