IT-lexicon › Programmeren › Kritieke sectie

Kritieke sectie

Programmeren Svenska → Bijgewerkt: 2026-11-02

Het stuk code dat gedeelde data aanraakt en daarom maar door één uitvoeringsdraad tegelijk mag worden doorlopen.

Edsger Dijkstra formuleerde het probleem in 1965: meerdere processen delen een variabele en niemand mag naar binnen zolang een ander er nog in zit. Op een gewoon besturingssysteem is het antwoord een lock: een mutex als het wachten lang kan duren, een spinlock als de sectie uit een handvol instructies bestaat. Windows ging zo ver zijn lichtgewicht lock CRITICAL_SECTION te noemen.

In firmware op één kern is de concurrent meestal een interrupt, en daar helpt geen lock: de interrupt-handler kan niet wachten op de hoofdlus. In plaats daarvan worden interrupts uitgeschakeld (__disable_irq(), of cpsid i op ARM), wordt het werk gedaan en gaan ze weer aan. Elke microseconde met interrupts uit komt rechtstreeks bovenop de interruptlatentie van het systeem, dus houd het kort. Bewaar bovendien de vorige toestand en herstel die, in plaats van blind weer in te schakelen, anders trekt een geneste sectie het tapijt onder de buitenste vandaan.

← Terug naar het lexicon