# Besturingssystemen
## Oefeningenles 1
### Vraag 1:
- Bedoelde waarde: 100
- Kleinst mogelijke waarde: 2
- Grootst mogelijke waarde: 100
- Meest waarschijnelijk: 50
- Aanpassing: mutex!(mbhv semafoor)
### Vraag 2:
- Resources:
- R1: 3 eenheden
- R2: 2 eenheden
- R3: 2 eenheden
- P1 gebruikt `1*R1`, wil `1*R2`
- Wacht op P2
- P2 gebruikt `2*R2`, wil `1*R1` en `1*R3`
- Wacht op P1, P3 en P4
- P3 gebruikt `1*R1`, wil `1*R2`
- Wacht op P2
- P4 gebruikt `2*R3`, wil `1*R1`
- Wacht op P1 en P3
### Vraag 3:
```python
NW = semafoor(1)
NO = semafoor(1)
def in(van, naar):
if van is "O":
acquire(NO)
if naar is "W":
acquire(NW)
def uit(van, naar):
if van is "O":
release(NO)
if naar is "W":
release(NW)
```
### Vraag 4:
2d-array
- `array[index][1-n]` acquiren en wachten tot `array[1-n][index]` kan gereleased worden
### Vraag 5:
- mutexLock op de bus
- bij gewone passagier wachten als beschikbare plaatsen 0 is
- bij rolstoel < 2
- aantal beschikbare plaatsen -1 of -2 doen
- wachten op signaal dat bus leeg is
- wacht in een while loop tot de bus vol is
- signaliseer dat hij vol is bij passagier/rolstoel
- laat bus wegrijden en broadcast dan dat hij leeg is
## Oefeningenles 2
### Vraag Brug frietjes
- poging 1 fout: signal na verhoging, kan zorgen dat het signaal te laat toekomt en als false positive geinterpreteerd word