vault backup: 2025-04-05 00:05:56

This commit is contained in:
Marco Realacci 2025-04-05 00:05:56 +02:00
parent a99d09af0c
commit 47b74f3eec
4 changed files with 6 additions and 6 deletions

View file

@ -140,7 +140,7 @@ Easy to generalize to k-MUTEX.
Peterson's algorithm cost $O(n^2)$
A first way to reduce this cost is by using a tournament of MUTEX between pairs of processes:
![350](Concurrent%20Systems/notes/images/Pasted%20image%2020250304082459.png|)
![350](images/Pasted%20image%2020250304082459.png|)
Of course this is a binary tree, and the height of a binary tree is logaritmic to the number of leaves. A process then wins after $\lceil \log_{2}n \rceil$ competitions $\to O(\log n)$ cost.

View file

@ -180,7 +180,7 @@ producer A:
- so producer A will write at `BUF[0]`
- but wait! Consumer B is still reading there
- **Producer A doesn't give a fuck.**
![200](Concurrent%20Systems/notes/images/Pasted%20image%2020250312121828.png|)
![]()
*don't be like Producer A, be more like Bob, who always scans EMPTY before!*
So the issue here is that producers just assume that IN is the first available slot. But it its not necessarily the case.

View file

@ -3,7 +3,7 @@ The first real practical example of a concurrent system.
- one chopstick between each pair of philosophers
- a philosophers must pick up its two nearest chopsticks in order to eat
- a philosopher must pick up first one chopstick, then the second one, not both at once
![100](Concurrent%20Systems/notes/images/Pasted%20image%2020250317100456.png|)
![]()
**PROBLEM:** *Devise a deadlock-free algorithm for allocating these limited resources (chopsticks) among several processes (philosophers).*