---
# System prepended metadata

title: Besturingssystemen

---

# 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 