diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 2723d4f..5dcede8 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -36,9 +36,9 @@ "type": "pdf", "state": { "file": "Concurrent Systems/slides/class 6.pdf", - "page": 1, + "page": 2, "left": -24, - "top": 51, + "top": 282, "zoom": 0.6448931116389548 }, "icon": "lucide-file-text", diff --git a/Concurrent Systems/notes/6 - Atomicity.md b/Concurrent Systems/notes/6 - Atomicity.md index e34d29c..0949c9c 100644 --- a/Concurrent Systems/notes/6 - Atomicity.md +++ b/Concurrent Systems/notes/6 - Atomicity.md @@ -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]`. -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. \ No newline at end of file +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$ \ No newline at end of file