# 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