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

This commit is contained in:
Marco Realacci 2025-03-18 08:59:12 +01:00
parent 6da9679694
commit b7a2933a9f
2 changed files with 14 additions and 3 deletions

View file

@ -36,9 +36,9 @@
"type": "pdf", "type": "pdf",
"state": { "state": {
"file": "Concurrent Systems/slides/class 6.pdf", "file": "Concurrent Systems/slides/class 6.pdf",
"page": 1, "page": 2,
"left": -24, "left": -24,
"top": 51, "top": 282,
"zoom": 0.6448931116389548 "zoom": 0.6448931116389548
}, },
"icon": "lucide-file-text", "icon": "lucide-file-text",

View file

@ -2,4 +2,15 @@ We have a set of n sequential processes $p_{1},...,p_n$ , that access $m$ concur
When invoked by $p_j$, the invocation `Xi.op(args)(ret)` is modeled by two events: `inv[Xi.op(args) by pj]` and `res[Xi.op(ret) to pj]`. When invoked by $p_j$, the invocation `Xi.op(args)(ret)` is modeled by two events: `inv[Xi.op(args) by pj]` and `res[Xi.op(ret) to pj]`.
A **history** (or **trace**) is a pair $\hat{H}=(H, <_{H})$ where H is a set of events and $<_{H}$ is a total order on them. A **history** (or **trace**) is a pair $\hat{H}=(H, <_{H})$ where $H$ is a set of events and $<_{H}$ is a total order on them.
The *semantics* (of systems and/or objects) will be given as the set of traces.
A history is **sequential** if it is of the form `inv res inv res ... inv res inv inv inv ...`, where every res is the result of the immediately preceding inv. (The last invocations do not have a return).
A sequential history can be represented as a sequence of operations.
A history is **complete** if every inv is eventually followed by a corresponding res, it is **partial** otherwise.
### Linearizability
A complete history $\hat{H}$ is **linearizable** if there exists a sequential history $\hat{S}$ s.t.
- $f$