From ff8c0d0409478810598d702b8a9cbb7d1ce127c0 Mon Sep 17 00:00:00 2001 From: Marco Realacci Date: Mon, 17 Mar 2025 09:24:23 +0100 Subject: [PATCH] vault backup: 2025-03-17 09:24:23 --- .obsidian/workspace.json | 42 +++++++++++++++++++++++--------- Concurrent Systems/notes/4b -.md | 10 ++++++++ 2 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 Concurrent Systems/notes/4b -.md diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 4ceb652..38384e3 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -10,17 +10,37 @@ { "id": "6edd4157a160e462", "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Concurrent Systems/notes/4b -.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "4b -" + } + } + ] + }, + { + "id": "647a2273c79e129b", + "type": "tabs", + "children": [ + { + "id": "071b6cd23e4b1e9d", + "type": "leaf", "state": { "type": "pdf", "state": { - "file": "Concurrent Systems/slides/class 5.pdf", - "page": 1, - "left": -16, - "top": 599, - "zoom": 0.9236935866983375 + "file": "Concurrent Systems/slides/class 4.pdf", + "page": 11, + "left": -27, + "top": 7, + "zoom": 0.5754156769596199 }, "icon": "lucide-file-text", - "title": "class 5" + "title": "class 4" } } ] @@ -80,7 +100,8 @@ } ], "direction": "horizontal", - "width": 307.5 + "width": 307.5, + "collapsed": true }, "right": { "id": "bc4b945ded1926e3", @@ -197,8 +218,10 @@ }, "active": "6edd4157a160e462", "lastOpenFiles": [ - "HCIW/slides/4 HUI2016-6-forcefeedback.pdf", + "Concurrent Systems/slides/class 4.pdf", + "Concurrent Systems/notes/4b -.md", "Concurrent Systems/slides/class 5.pdf", + "HCIW/slides/4 HUI2016-6-forcefeedback.pdf", "HCIW/slides/3b Haptic slides.pdf", "HCIW/slides/3Haptic interaction.pdf", "HCIW/slides/2 Beacon based interfaces.pdf", @@ -208,7 +231,6 @@ "HCIW/notes/3 - Beacons.md", "Concurrent Systems/notes/4 - Semaphores.md", "Concurrent Systems/notes/images/Pasted image 20250312121828.png", - "Concurrent Systems/slides/class 4.pdf", "Concurrent Systems/notes/3a - Hardware primitives & Lamport Bakery algorithm.md", "Concurrent Systems/notes/3b - Aravind's algorithm and improvements.md", "Concurrent Systems/notes/images/Pasted image 20250310172134.png", @@ -223,7 +245,6 @@ "HCIW/notes/1 - UX for IoT.md", "HCIW/exercises/Exercise.md", "HCIW/exercises", - "HCIW/notes", "Concurrent Systems/notes/images/Pasted image 20250304082459.png", "Concurrent Systems/notes/images/Pasted image 20250304093223.png", "Concurrent Systems/notes/images/Pasted image 20250304090219.png", @@ -242,7 +263,6 @@ "Foundation of data science/notes/2 Linear Regression.md", "Biometric Systems/notes/6. Face recognition 2D.md", "Biometric Systems/notes/7. Face recognition 3D.md", - "Biometric Systems/frequently asked questions/BS_questions.txt.md", "Senza nome.canvas" ] } \ No newline at end of file diff --git a/Concurrent Systems/notes/4b -.md b/Concurrent Systems/notes/4b -.md new file mode 100644 index 0000000..0ab2d79 --- /dev/null +++ b/Concurrent Systems/notes/4b -.md @@ -0,0 +1,10 @@ +### Monitors +Semaphores are hard to use in practice because quite low level Monitors provide an easier definition of concurrent objects at the level of Prog. Lang. + +It guarantees mutual exclusion. + +Inter-process synchronization is done through *conditions*, which are objects that provide the following operations: +- ***wait*:** the invoking process suspends, enters into the condition's queue, and releases the mutex on the monitor +- ***signal*:** if no process is in the condition's queue, the nothing happens. Otherwise + - it reactivates the first suspended process, suspends the signaling process that however has a priority to re-enter the monitor (*Hoare semantics*) + - \ No newline at end of file