Wat is Mutex?

Lock die slechts door één thread tegelijk kan worden vastgehouden. Gangbare implementatie: een thread die de lock niet kan krijgen gaat slapen en geeft de CPU af, en het besturingssysteem wekt hem wanneer de lock vrijkomt.

Japanse benaming: ミューテックス

“Mutex” komt voor in 4 oefenvragen uit 2 onderwerpen, bijv. Multicore en synchronisatie, Embedded systemen en firmware.

Vakgebied: Multicore en synchronisatie

Nu oefenen: vragen over Mutex

Welke vergelijking van een mutex (slapende lock) en een spinlock is juist?

  1. AEen mutex geeft tijdens het wachten de CPU vrij en is geschikt voor lange wachttijden, maar slapen en wakker worden kost werk van het besturingssysteem
  2. BEen mutex blijft ook tijdens het wachten CPU-tijd gebruiken en is dus alleen voor korte wachttijden bruikbaar
  3. CMutex en spinlock zijn hetzelfde en verschillen alleen in naam
Antwoord en toelichting tonen

Antwoord: A. Een mutex geeft tijdens het wachten de CPU vrij en is geschikt voor lange wachttijden, maar slapen en wakker worden kost werk van het besturingssysteem

Als een mutex niet kan worden genomen, zet hij de thread in een wachttoestand, laat de CPU aan andere threads en wekt het besturingssysteem de thread wanneer de lock wordt vrijgegeven. Omdat er geen CPU-tijd wordt verspild tijdens het wachten, is hij geschikt voor lange wachttijden, maar het slapen, wakker worden en de contextwisseling kosten enkele microseconden. Mutexen in echte bibliotheken combineren de voordelen van beide, bijvoorbeeld door eerst even te spinnen en dan te slapen.

“Mutex” in de toelichting

Vragen met “Mutex” (4)

  1. Welke vergelijking van een mutex (slapende lock) en een spinlock is juist?
  2. In welke situatie is een spinlock het minst geschikt?
  3. Welke uitspraak over prioriteitsinversie bij een RTOS is juist?
  4. Welke gedachte ligt achter "prioriteitsovererving" (priority inheritance), dat wordt gebruikt om prioriteitsinversie te voorkomen?

Vergelijkingen met deze term

Verwante termen

Spinlock CPU-tijd Prioriteitsinversie (priority inversion) RTOS (real-time besturingssysteem) Prioriteitsovererving (priority inheritance) ABA-probleem Acquire-release Atomaire instructie Barrièresynchronisatie Compare-and-swap

Naar de woordenlijst