vault backup: 2025-03-17 21:47:45
This commit is contained in:
parent
ef080f08af
commit
110db2ace3
2 changed files with 24 additions and 4 deletions
6
.obsidian/workspace.json
vendored
6
.obsidian/workspace.json
vendored
|
@ -36,7 +36,7 @@
|
|||
"file": "Concurrent Systems/slides/class 5.pdf",
|
||||
"page": 4,
|
||||
"left": -23,
|
||||
"top": 240,
|
||||
"top": 102,
|
||||
"zoom": 0.652019002375297
|
||||
},
|
||||
"icon": "lucide-file-text",
|
||||
|
@ -215,10 +215,10 @@
|
|||
"companion:Toggle completion": false
|
||||
}
|
||||
},
|
||||
"active": "51157f32453cba69",
|
||||
"active": "6edd4157a160e462",
|
||||
"lastOpenFiles": [
|
||||
"Concurrent Systems/notes/5 - Software Transactional Memory.md",
|
||||
"Concurrent Systems/slides/class 5.pdf",
|
||||
"Concurrent Systems/notes/5 - Software Transactional Memory.md",
|
||||
"Concurrent Systems/notes/4c - Dining Philosophers.md",
|
||||
"Concurrent Systems/notes/3a - Hardware primitives & Lamport Bakery algorithm.md",
|
||||
"Concurrent Systems/notes/2b - Round Robin algorithm.md",
|
||||
|
|
|
@ -63,7 +63,27 @@ begin_T() :=
|
|||
birthdate(T) <- CLOCK + 1
|
||||
|
||||
X.read_T() :=
|
||||
if lc?(XX) !=
|
||||
if lc?(XX) != ⊥ then
|
||||
return lc(XX).val
|
||||
lc(XX) <- XX
|
||||
if lc(XX).date >= birthdate(T) then
|
||||
ABORT
|
||||
read_set(T) <- read_set(T) U {X}
|
||||
return lc(XX).val
|
||||
|
||||
X.write_T(v) :=
|
||||
if lc(XX) = ⊥ then
|
||||
lc(XX) <- newloc
|
||||
lc(XX).val <- v
|
||||
write_set(T) <- write_set(T) U {X}
|
||||
|
||||
try_to_commit_T() :=
|
||||
lock all read_set(T) U write_set(T)
|
||||
∀ X ∈ read_set(T)
|
||||
if XX.date >= birthdate(T) then
|
||||
release all locks
|
||||
ABORT
|
||||
|
||||
```
|
||||
|
||||
### Virtual World Consistency
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue