vault backup: 2025-03-18 08:34:12

This commit is contained in:
Marco Realacci 2025-03-18 08:34:12 +01:00
parent 4b704e7176
commit 2048accc73
3 changed files with 36 additions and 16 deletions

View file

@ -4,7 +4,7 @@
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "376bc91799eae4a7", "id": "4c1f5b7a6abb1339",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
@ -28,20 +28,36 @@
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "51157f32453cba69", "id": "e8fbc9b0750d5e3b",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "pdf", "type": "pdf",
"state": { "state": {
"file": "Concurrent Systems/slides/class 5.pdf", "file": "Concurrent Systems/slides/class 5.pdf",
"page": 7, "page": 8,
"left": -27, "left": -27,
"top": 68, "top": 340,
"zoom": 0.5754156769596199 "zoom": 0.5754156769596199
}, },
"icon": "lucide-file-text", "icon": "lucide-file-text",
"title": "class 5" "title": "class 5"
} }
},
{
"id": "51157f32453cba69",
"type": "leaf",
"state": {
"type": "pdf",
"state": {
"file": "Concurrent Systems/slides/class 6.pdf",
"page": 1,
"left": -34,
"top": 598,
"zoom": 0.4382422802850357
},
"icon": "lucide-file-text",
"title": "class 6"
}
} }
] ]
} }
@ -216,10 +232,11 @@
"companion:Toggle completion": false "companion:Toggle completion": false
} }
}, },
"active": "51157f32453cba69", "active": "6edd4157a160e462",
"lastOpenFiles": [ "lastOpenFiles": [
"Concurrent Systems/notes/5 - Software Transactional Memory.md",
"Concurrent Systems/slides/class 5.pdf", "Concurrent Systems/slides/class 5.pdf",
"Concurrent Systems/notes/5 - Software Transactional Memory.md",
"Concurrent Systems/slides/class 6.pdf",
"Concurrent Systems/notes/4c - Dining Philosophers.md", "Concurrent Systems/notes/4c - Dining Philosophers.md",
"Concurrent Systems/notes/4 - Semaphores.md", "Concurrent Systems/notes/4 - Semaphores.md",
"Concurrent Systems/notes/4b - Monitors.md", "Concurrent Systems/notes/4b - Monitors.md",
@ -248,7 +265,6 @@
"Pasted image 20250305182542.png", "Pasted image 20250305182542.png",
"HCIW/notes/1 - UX for IoT.md", "HCIW/notes/1 - UX for IoT.md",
"HCIW/exercises/Exercise.md", "HCIW/exercises/Exercise.md",
"HCIW/exercises",
"Concurrent Systems/notes/images/Pasted image 20250304082459.png", "Concurrent Systems/notes/images/Pasted image 20250304082459.png",
"Concurrent Systems/notes/images/Pasted image 20250304093223.png", "Concurrent Systems/notes/images/Pasted image 20250304093223.png",
"Concurrent Systems/notes/images/Pasted image 20250304090219.png", "Concurrent Systems/notes/images/Pasted image 20250304090219.png",

View file

@ -33,6 +33,7 @@ Implementation: every transaction uses a local working space
#### A Logical Clock based STM system #### A Logical Clock based STM system
All the READs perform if no inconsistencies arise, or before any inconsistency All the READs perform if no inconsistencies arise, or before any inconsistency
(definizioni in def qua sotto)
>[!def] >[!def]
>Let T be a transaction; its read prefix is formed by all its successful READ before its possible abortion. >Let T be a transaction; its read prefix is formed by all its successful READ before its possible abortion.
@ -108,18 +109,21 @@ VWC allows more transactions to commit -> it is a more liberal property than opa
#### A Vector clock based STM system #### A Vector clock based STM system
We have m shared MRMW registers; register X is represented by a pair XX, with: We have m shared MRMW registers; register X is represented by a pair XX, with:
- XX.val the current value of X - `XX.val` the current value of X
- XX.depend[1...m] a vector clock s.t. - `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[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 - corresponds to the `date` of the previous algorithm
- `XX.depend[Y]` is the sequence number associated with the value of Y on which the current value of X depends from
- There is a starvation-free lock object associated to the pair - There is a starvation-free lock object associated to the pair
We have n processes; process $p_i$ has So for X, I don't just have to track "who modified X", but also "who modified "Y or Z", if they may have influenced X.
- for every X, a local copy lc(XX) of the implementation of X
- $p\_depend_i[1…m]$ s.t. $p\_depend_i[X]$ is the seq.num. of the last val of X (directly or undirectly) known by $p_i$
Every transaction T issues by pi has: We have n processes; process $p_i$ has
- read_set(T) and write_set(T) - for every X, a local copy `lc(XX)` of the implementation of X
- $p\_depend_i[1…m]$ s.t. $p\_depend_i[X]$ is the sequence number of the last val of X (directly or indirectly) known by $p_i$
Every transaction T issues by $p_i$ has:
- `read_set(T)` and `write_set(T)`
- $t\_depend_{T}[1…m]$ a local copy of $p\_depend_i$ (this is used in the optimistic execution, not to change $p\_depend_{i}$ if T aborts) - $t\_depend_{T}[1…m]$ a local copy of $p\_depend_i$ (this is used in the optimistic execution, not to change $p\_depend_{i}$ if T aborts)
``` ```

Binary file not shown.