Home

synchronisatiemechanisme

Een synchronisatiemechanisme is een middel om gelijktijdige processen of gebeurtenissen te coördineren, zodat de uitvoering voorspelbaar blijft en de gegevensintegriteit gewaarborgd is. Ze komen voor in software met meerdere threads, in besturingssystemen die gedeelde bronnen beheren en in gedistribueerde systemen die gebeurtenissen uitwisselen of klokken afstemmen.

Synchronisatie kan hardwarematig of softwarematig plaatsvinden. Hardwarematige mechanismen omvatten geheugenbarrières en atomische operaties die de volgorde

Belangrijke synchronisatiemechanismen zijn onder meer: mutexen, die exclusieve toegang tot een gedeelde bron verschaffen; semaforen, die

Kernconcepten zijn de happens-before-relatie, geheugenordering en zichtbaarheid van writes, evenals garanties voor voortgang en mogelijkheidsproblemen zoals

Toepassingen bevinden zich op zowel software- als systeemniveau: het coördineren van threads in programma’s, het beheren

van
geheugenwijzigingen
afdwingen.
Softwarematige
synchronisatie
bestaat
uit
primitieve
zoals
mutexen,
semaforen,
monitoren,
spinlocks
en
barrières,
vaak
aangevuld
met
voorwaardelijke
variabelen
en
lezers-schrijferslocks.
tellers
gebruiken
om
toegang
te
regelen;
spinlocks,
waarbij
een
thread
actief
wacht
op
vrijgave;
barrières,
die
meerdere
threads
tot
een
punt
samenbrengen;
conditionele
variabelen,
die
wachten
op
specifieke
toestanden;
en
lezers-schrijferslocks,
die
lezers
toelaten
parallel
toegang
terwijl
schrijfbewerkingen
exclusief
zijn.
Daarnaast
spelen
atomische
variabelen
en
geheugenbarrières
een
rol
bij
het
garanderen
van
consistente
updates
op
meerdere
cores.
deadlocks,
livelocks
en
starvation.
van
toegang
tot
gedeelde
bronnen
in
besturingssystemen
en
het
afstemmen
van
kloksynchronisatie
in
gedistribueerde
systemen.
Voor
klok-
en
gebeurtenisordering
worden
logische
klokken
(zoals
Lamport-klokken)
en
vector
clocks
toegepast;
tijdsynchronisatie
gebeurt
onder
meer
met
NTP.