Multicore en synchronisatie

Welke eigenschap van een lock-free algoritme is juist?

  1. AOok als een thread halverwege stilvalt, kan minstens één van de andere threads verder met zijn werk
  2. BAlle threads voltooien hun werk altijd in een vast aantal stappen
  3. CGedeelde gegevens worden bijgewerkt zonder enige atomaire instructie
Antwoord en toelichting tonen

Antwoord: A. Ook als een thread halverwege stilvalt, kan minstens één van de andere threads verder met zijn werk

Bij gebruik van locks worden alle anderen opgehouden als de lockhoudende thread stilvalt door een interrupt of lage prioriteit. Een lock-free algoritme werkt gedeelde gegevens rechtstreeks bij met bijvoorbeeld CAS, zodanig dat een thread alleen hoeft te herhalen als iemand anders is geslaagd. Zo komt in totaal altijd een van de threads vooruit. Het correct maken is echter moeilijk en aandacht voor onder meer het ABA-probleem is nodig.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Multicore en synchronisatie

  1. Welke uitleg over een kritieke sectie is juist?
  2. Welke uitleg over barrièresynchronisatie, gebruikt in parallelle programma's, is juist?
  3. Als 64 cores voortdurend gelijktijdig één gedeelde teller met atomaire instructies bijwerken, wordt het niet sneller door meer cores. Wat is de belangrijkste reden?
  4. Welke uitleg over een NUMA-systeem (Non-Uniform Memory Access) is juist?
  5. Waarop moet worden gelet bij het first-touch-beleid dat vaak wordt gebruikt in Linux-NUMA-systemen (een pagina wordt geplaatst in het geheugen van het knooppunt waarop de thread draait die er het eerst naar schrijft)?

Vergelijkingen bij dit onderwerp