Wederzijdse uitsluiting: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
kGeen bewerkingssamenvatting
MrBlueSky (overleg | bijdragen)
Regel 20:
* [[compare-and-swap]]
 
[['''Test-and-set]]''' wordt gebruikt om een vlag in te stellen, bij aanvang van de kritieke sectie, waarmee het gebruik van een gedeelde bron kan worden aangetoond. Met dezelfde instructie kan een lus worden gemaakt om de waarde van de vlag te testen. Dit noemt men "[[busy waiting]]". Als de kritieke sectie voorbij is, wordt de vlag vrijgegeven.
 
[['''Compare-and-swap]]''' wordt gebruikt om in één bewerking een waarde in een datastructuur te wijzigen.
 
Het voordeel van het gebruik van machine-instructies is dat deze methode werkt voor zowel uni- als multiprocessors. Deze benadering kan worden gebruikt voor de ondersteuning van meerdere kritieke secties, door het gebruik van meerdere vlaggen.
 
Het nadeel van deze aanpak is dat een "[[busy-wait]]" mogelijk is, waarbij er processortijd verloren gaat tijdens het wachten op een gedeelde bron. Omdat deze methode het schedulingalgoritme[[scheduling]]algoritme verstoort, is het mogelijk omdat er [[uithongering]] of [[deadlocks]] te creërenonstaan.
 
===Softwareoplossingen===