Multicore en synchronisatie

Welke eigenschap van het geheugenconsistentiemodel van x86 (TSO, Total Store Order) is juist?

  1. AHet is het zwakste model dat verwisseling van alle combinaties van lezen en schrijven toestaat
  2. BHet is gewoon sequentiële consistentie, die geen enkele verwisseling toestaat
  3. CHet is een relatief sterk model dat alleen toestaat dat een leesactie van een ander adres na een schrijfactie eerder zichtbaar wordt dan die schrijfactie
Antwoord en toelichting tonen

Antwoord: C. Het is een relatief sterk model dat alleen toestaat dat een leesactie van een ander adres na een schrijfactie eerder zichtbaar wordt dan die schrijfactie

Bij TSO blijven de volgorde van schrijfacties onderling, van leesacties onderling en van een schrijfactie na een leesactie behouden, en kan alleen een leesactie van een ander adres na een schrijfactie die inhalen. Dit is een model dat de aanwezigheid van de store buffer rechtstreeks weergeeft. Veel programma's werken binnen dit bereik intuïtief, dus bij x86 zijn barrières in relatief weinig situaties nodig.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Multicore en synchronisatie

  1. Wat is juist over zwakke geheugenconsistentiemodellen zoals die van ARM en RISC-V (RVWMO)?
  2. Wat is de juiste rol van een geheugenbarrière-instructie (fence)?
  3. In bovenstaande code bereidt thread 1 data voor en meldt dat met flag, en leest thread 2 data nadat hij flag heeft gezien. Wat is nodig om op een CPU met zwak geheugenconsistentiemodel zeker te zijn dat thread 2 de waarde 42 leest?
  4. Wat is juist over geheugenbewerkingen met acquire- en release-betekenis?
  5. Waarom volstaat het in C niet om een flagvariabele die tussen threads wordt doorgegeven alleen volatile te maken als synchronisatie?

Vergelijkingen bij dit onderwerp