diff --git a/Concurrent Systems/notes/8 - Enhancing Liveness Properties.md b/Concurrent Systems/notes/8 - Enhancing Liveness Properties.md index 38625cc..f79eb8c 100644 --- a/Concurrent Systems/notes/8 - Enhancing Liveness Properties.md +++ b/Concurrent Systems/notes/8 - Enhancing Liveness Properties.md @@ -25,7 +25,7 @@ need_help(i) := NEED_HELP[i] <- true repeat X <- {j : NEED_HELP[j]} - until ev_leader(X) = i # loopa finché ev_leader non uguale per tutti + until ev_leader(X) = i # loopa finché non è lui stesso il leader (PER TUTTI) stop_help(i) := NEED_HELP[i] <- false @@ -43,7 +43,9 @@ Let Q be the set of proc.'s that performed these invocations. **Observation:** $Q \subseteq X$ (it is possible that $p_j$ sets `NEED_HELP[j]` and then fails) By definition of $\Omega_{X}, \exists \tau'' \geq t'$ s.t. all proc.'s in Q have the same `ev_leader(X)` -- the leader belongs to Q, since it cannot be failed and is involved i +- the leader belongs to Q, since + - it is involved in the contention + - it can't be failed (by definition of `ev_leader`) - this is the only process allowed to proceed - because run in isolation, it eventually terminates (because of obstruction freedom)