diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 162828f..9fe484b 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -34,9 +34,9 @@ "type": "pdf", "state": { "file": "Concurrent Systems/slides/class 5.pdf", - "page": 5, + "page": 7, "left": -23, - "top": 255, + "top": 364, "zoom": 0.652019002375297 }, "icon": "lucide-file-text", @@ -217,10 +217,10 @@ }, "active": "6edd4157a160e462", "lastOpenFiles": [ + "Concurrent Systems/slides/class 5.pdf", + "Concurrent Systems/notes/5 - Software Transactional Memory.md", "Concurrent Systems/notes/4c - Dining Philosophers.md", "Concurrent Systems/notes/4 - Semaphores.md", - "Concurrent Systems/notes/5 - Software Transactional Memory.md", - "Concurrent Systems/slides/class 5.pdf", "Concurrent Systems/notes/4b - Monitors.md", "Concurrent Systems/notes/3a - Hardware primitives & Lamport Bakery algorithm.md", "Concurrent Systems/notes/2b - Round Robin algorithm.md", diff --git a/Concurrent Systems/notes/5 - Software Transactional Memory.md b/Concurrent Systems/notes/5 - Software Transactional Memory.md index 5bf31f7..d272c0f 100644 --- a/Concurrent Systems/notes/5 - Software Transactional Memory.md +++ b/Concurrent Systems/notes/5 - Software Transactional Memory.md @@ -105,3 +105,10 @@ The **casual past** of a transaction T is the set of all T' and T'' such that VWC allows more transactions to commit -> it is a more liberal property than opacity. ![[Pasted image 20250317105355.png]] + +#### A Vector clock based STM system +We have m shared MRMW registers; register X is represented by a pair XX, with: +- XX.val the current value of X +- XX.depend[1...m] a vector clock s.t. + - XX.depend[X] is the sequence number associated with the current value of X + - XX.depend[Y] is the sequence number associated with the value of Y on which the current value of X depends from \ No newline at end of file