diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index eb2d01d..933d7f2 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -231,9 +231,9 @@ }, "active": "0d64f519fd7f9420", "lastOpenFiles": [ - "Pasted image 20250325090735.png", "Concurrent Systems/slides/class 8.pdf", "Concurrent Systems/notes/8 - Enhancing Liveness Properties.md", + "Pasted image 20250325090735.png", "Concurrent Systems/notes/7- MUTEX-free concurrency.md", "Concurrent Systems/notes/images/Pasted image 20250324091452.png", "Concurrent Systems/slides/class 7.pdf", @@ -264,7 +264,6 @@ "Pasted image 20250318090909.png", "Pasted image 20250318090733.png", "Concurrent Systems/slides/class 5.pdf", - "Concurrent Systems/notes/images/Pasted image 20250317105355.png", "HCIW/slides/4 HUI2016-6-forcefeedback.pdf", "HCIW/slides/3b Haptic slides.pdf", "HCIW/notes/2 - Interface and Interaction for IoT.md", diff --git a/Concurrent Systems/notes/8 - Enhancing Liveness Properties.md b/Concurrent Systems/notes/8 - Enhancing Liveness Properties.md index c3c70e4..8e941e4 100644 --- a/Concurrent Systems/notes/8 - Enhancing Liveness Properties.md +++ b/Concurrent Systems/notes/8 - Enhancing Liveness Properties.md @@ -16,6 +16,8 @@ Can we take the most basic protocol that satisfies the most basic liveness prope REMARK: the moment in which all variables contain the same leader is unknown +#### From obstruction-freedom to non-blocking + ``` NEED_HELP[1..n] : SWMR atomic R/W boolean registers init at false @@ -57,4 +59,20 @@ It can be proved that there exists no wait-free implementation of $\Omega$ in an REMARK: $\tau_{1}, \tau_{2}, \nabla$ and $p_L$ are all unknown. -![[Pasted image 20250325090735.png]] +IDEA: +- `PROGRESS[1..n]` is an array of SWMR atomic registers used by proc’s to signal that they’re alive +- pi suspects pj if pi doesn’t see any progress of pj after a proper time interval (to be guessed) set in its timer +- the leader is the least suspected process, or the one with smallest/biggest ID among the least suspected ones (if there are more than one) + - this changes in time, but not forever + +Guessing the time duration for suspecting a process: +- SUSPECT[i,j] = #times pi has suspected pj +- For all k, take the t+1 minimum values in SUSPECT[1..n , k] +- Sum them, to obtain Sk +- The interval to use in the timers is the minimum Sk + - it can be proved that this eventually becomes ≥ $\nabla$ + +#### From obstruction-freedom to wait-freedom +**Eventually perfect:** failure detector ♢P provides each process $p_i$ a local variable $suspected_i$ such that +1. *(Eventual completeness)* eventually, $suspended_{i}$ contains all the indexes of crashed processes, for all correct $p_i$ +2. (*Eventual accuracy*) \ No newline at end of file