Synchronization - Monitors
11 belangrijke vragen over Synchronization - Monitors
Op welke manier wordt met een monitor-constructie deadlock voorkomen?
Een belangrijke eigenschap van de monitor is dat een proces binnen een monitor kan wachten (op een condition), terwijl de monitor weer toegankelijk wordt voor andere processen. Dit voorkomt het ontstaan van deadlock-situaties.
Wat is de functie van de condition-variabelen in een monitor?
Condition-variabelen bieden aanvullende synchronisatiemogelijkheden voor een monitor.
Via een conditie-variabele kan een proces het exclusieve gebruik van de monitor opgeven zodat een ander proces toegang kan krijgen tot de monitor.
Wat wordt verstaan onder de status van een monitor?
De actuele waarden van zijn variabelen.
De monitorsynchronisatie zorgt ervoor dat de status van de monitor consistent blijft.
- Hogere cijfers + sneller leren
- Niets twee keer studeren
- 100% zeker alles onthouden
Welk voordeel heeft een monitor ten opzichte van semaforen?
Een monitorconstructie is minder gevoelig voor programmeerfouten omdat deze constructie niet expliciet geprogrammeerd hoeft te worden. De implementatie is daardoor minder complex en overzichtelijker.
Noem vier voorbeelden van verkeerd gebruik van een semafoor voor wederzijdse uitsluiting.
- De volgorde van de operaties wait en signal wordt omgekeerd, zodat wederzijdse uitsluiting niet gegarandeerd is
- De signal-operatie wordt vervangen door een wait-operatie, zodat deadlock optreedt
- De signal-operatie wordt weggelaten, zodat deadlock optreedt
- De wait-operatie wordt weggelaten, zodat wederzijdse uitsluiting niet gegarandeerd is
Noem drie benaderingswijzen voor de werking van de signal-operatie.
- Signal-and-wait: het signalerende proces wordt entry-queue geplaatst en het gesignaleerde proces wordt hervat;
- Signal-and-continue: de uitvoering van het signalerende proces gaat door en het gesignaleerde proces wordt in de entry-queue geplaatst;
- Signal-and-exit: het gesignaleerde proces wordt hervat en het signalerende proces verlaat de monitor.
Wat is het voordeel van signal-and-wait ten opzichte van signal-and-continue?
Het gesignaleerde proces kan ervan uitgaan dat de status van monitor zoals die was ten tijde van de signal-operatie niet is gewijzigd. Het gesignaleerde proces hoeft de status van de monitor dus niet te controleren.
Wat is in Java het verschil tussen de entryset van een object en de waitset van een object?
De entryset is gekoppeld aan de lock van het object, terwijl de waitset gekoppeld is aan het object zelf.
Noem twee kenmerkende eigenschappen van een conditievariabele.
- Een conditievariabele heeft een wachtrij;
- Op een conditievariabele kunnen slechts twee operaties worden uitgevoerd: wait en signal.
Waarin verschilt de signal-operatie bij een conditievariabele van een de signal-operatie bij een semafoor?
Bij een conditievariabele heeft de signal-operatie alleen effect als er een of meer wachtende processen zijn. Bij een semafoor heeft de signal-operatie altijd effect.
Noem zes eigenschappen van een monitor zoals die doorgaans wordt geïmplementeerd
- De publieke methoden worden onder wederzijdse uitsluiting uitgevoerd
- De private variabelen vormen de gedeelde variabelen van de monitor
- De private variabelen zijn alleen toegankelijk via de publieke methoden (dit garandeert uitsluiting)
- Met behulp van conditievariabelen kan op gestructureerde wijze synchronisatie tussen processen worden geprogrammeerd
- Een proces heeft het exclusief gebruik van de monitor
- Als een proces op een conditie geblokkeerd raakt, verliest het proces het exclusieve monitorgebruik
De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:
- Een unieke studie- en oefentool
- Nooit meer iets twee keer studeren
- Haal de cijfers waar je op hoopt
- 100% zeker alles onthouden
![Trustpilot-logo](/images/design_2020/lp/clp-trustpilot-nl.png)