diff --git a/Concurrent Systems/notes/3.md b/Concurrent Systems/notes/3.md index de19a4d..948e56c 100644 --- a/Concurrent Systems/notes/3.md +++ b/Concurrent Systems/notes/3.md @@ -133,4 +133,14 @@ Initialize FLAG[i] to down and MY_TURN[i] to 0, for all i lock(i) := FLAG[i] <- up - MY_TURN[i] <- M \ No newline at end of file + MY_TURN[i] <- max{MY_TURN[1],...,MY_TURN[n]}+1 + FLAG[i] <- down + forall j != i + wait FLAG[j] = down + wait (MY_TURN[j] = 0 OR ⟨MY_TURN[i],i⟩ < ⟨MY_TURN[j],j⟩) + +unlock(i) := + MY_TURN[i] <- 0 +``` +Se il ticket number è minore si ottiene l'accesso, se il ticket number è uguale, allora si vede il process ID minore. +