vault backup: 2025-03-21 18:50:08

This commit is contained in:
Marco Realacci 2025-03-21 18:50:08 +01:00
parent ce675887ed
commit 962eedf000
2 changed files with 20 additions and 3 deletions

View file

@ -21,6 +21,22 @@
"title": "4b - Monitors" "title": "4b - Monitors"
} }
}, },
{
"id": "cb0eda06ef87cab2",
"type": "leaf",
"state": {
"type": "pdf",
"state": {
"file": "Concurrent Systems/slides/class 4.pdf",
"page": 14,
"left": -227,
"top": 577,
"zoom": 0.9
},
"icon": "lucide-file-text",
"title": "class 4"
}
},
{ {
"id": "16a4a3f7d00f9524", "id": "16a4a3f7d00f9524",
"type": "leaf", "type": "leaf",
@ -225,8 +241,9 @@
}, },
"active": "51157f32453cba69", "active": "51157f32453cba69",
"lastOpenFiles": [ "lastOpenFiles": [
"Concurrent Systems/notes/4 - Semaphores.md", "Concurrent Systems/slides/class 4.pdf",
"Concurrent Systems/notes/4b - Monitors.md", "Concurrent Systems/notes/4b - Monitors.md",
"Concurrent Systems/notes/4 - Semaphores.md",
"Concurrent Systems/notes/5 - Software Transactional Memory.md", "Concurrent Systems/notes/5 - Software Transactional Memory.md",
"Concurrent Systems/notes/2b - Round Robin algorithm.md", "Concurrent Systems/notes/2b - Round Robin algorithm.md",
"Concurrent Systems/notes/4c - Dining Philosophers.md", "Concurrent Systems/notes/4c - Dining Philosophers.md",
@ -247,7 +264,6 @@
"Pasted image 20250318090733.png", "Pasted image 20250318090733.png",
"Concurrent Systems/slides/class 5.pdf", "Concurrent Systems/slides/class 5.pdf",
"Concurrent Systems/notes/images/Pasted image 20250317105355.png", "Concurrent Systems/notes/images/Pasted image 20250317105355.png",
"Concurrent Systems/slides/class 4.pdf",
"Concurrent Systems/notes/images/Pasted image 20250317100456.png", "Concurrent Systems/notes/images/Pasted image 20250317100456.png",
"HCIW/slides/4 HUI2016-6-forcefeedback.pdf", "HCIW/slides/4 HUI2016-6-forcefeedback.pdf",
"HCIW/slides/3b Haptic slides.pdf", "HCIW/slides/3b Haptic slides.pdf",

View file

@ -34,7 +34,8 @@ Of course, `signal()` will have no effect on the last process who calls it.
- For every condition C, a semaphore SEMC init at 0 and an integer $N_{C}$ init at 0 (to store and count the number of suspended processes on the given condition) - For every condition C, a semaphore SEMC init at 0 and an integer $N_{C}$ init at 0 (to store and count the number of suspended processes on the given condition)
- A semaphore PRIO init at 0 and an integer $N_{PR}$ init at 0 (to store and count the number of processes that have performed a signal, and so have priority to re-enter the monitor) - A semaphore PRIO init at 0 and an integer $N_{PR}$ init at 0 (to store and count the number of processes that have performed a signal, and so have priority to re-enter the monitor)
Every monitor operation starts with `MUTEX.down()` and ends with `if NPR > 0 then PRIO.up() else MUTEX.up()` >[!note]Operations
>Every monitor operation starts with `MUTEX.down()` and ends with `if NPR > 0 then PRIO.up() else MUTEX.up()`
``` ```
C.wait() := C.wait() :=