Multicore en synchronisatie

Welke uitleg over een spinlock is juist?

  1. AEen lock waarbij de thread slaapt en door het besturingssysteem wordt gewekt tot de lock vrij is
  2. BEen lock waarbij wordt gewacht door in een lus voortdurend de lockvariabele te controleren tot de lock vrij is
  3. CEen mechanisme waarbij een schijf wordt rondgedraaid om gegevens te beschermen
Antwoord en toelichting tonen

Antwoord: B. Een lock waarbij wordt gewacht door in een lus voortdurend de lockvariabele te controleren tot de lock vrij is

Een spinlock probeert met een atomaire instructie de lock te nemen en probeert het, als dat niet lukt, direct opnieuw. Omdat de moeite van het besturingssysteem aanroepen om te slapen en te ontwaken ontbreekt, werkt het snel wanneer de lock zeer kort wordt vastgehouden. Het wordt veel gebruikt in de kernel van het besturingssysteem en voor uitsluiting met interrupthandlers. Het nadeel is dat tijdens het wachten ook CPU-tijd wordt gebruikt.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Multicore en synchronisatie

  1. In welke situatie is een spinlock het minst geschikt?
  2. Waarom wordt bij een spinlock niet meteen met een atomaire instructie de lockvariabele proberen te wijzigen, maar wordt normaal met gewoon lezen gewacht tot de lock vrij lijkt en dan pas een atomaire instructie gebruikt (test-and-test-and-set)?
  3. Welke vergelijking van een mutex (slapende lock) en een spinlock is juist?
  4. Welk voorbeeld van een deadlock is juist?
  5. Welke methode is de meest gangbare om deadlock te voorkomen in een programma met meerdere locks?

Vergelijkingen bij dit onderwerp