Multicore en synchronisatie

Coherentieprotocollen zijn er in ongeldigverklarende en updatende vorm. Welke is de meest passende reden dat veel CPU's het ongeldigverklarende type gebruiken?

  1. AAls dezelfde core herhaaldelijk naar dezelfde regel schrijft, volstaat de ongeldigverklaring bij de eerste keer en is er weinig verkeer
  2. BBij het updatende type lezen andere cores verouderde waarden
  3. CBij het ongeldigverklarende type wordt de cachecapaciteit verdubbeld
Antwoord en toelichting tonen

Antwoord: A. Als dezelfde core herhaaldelijk naar dezelfde regel schrijft, volstaat de ongeldigverklaring bij de eerste keer en is er weinig verkeer

Het updatende type stuurt bij elke schrijfactie de nieuwe waarde naar de kopieën in andere cores, wat voordelig is als andere cores die direct lezen, maar bij herhaald schrijven door één core ontstaat elke keer verkeer. Bij het ongeldigverklarende type worden bij de eerste schrijfactie de andere kopieën ongeldig gemaakt, waarna naar de regel in de M-toestand zonder verkeer kan worden geschreven. In echte programma's wordt vaak achtereen geschreven, dus het ongeldigverklarende type is gangbaar.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Multicore en synchronisatie

  1. Welke uitleg over false sharing, dat bij multithreaded programma's optreedt, is juist?
  2. Bij een array van tellers per thread zoals 'long cnt[8];' treedt false sharing op. Welke maatregel is het meest geschikt?
  3. Welke uitleg over een data race is juist?
  4. Wanneer bovenstaande code door twee threads tegelijk wordt uitgevoerd, kan de uiteindelijke waarde van counter kleiner zijn dan 200000. Wat is de juiste reden?
  5. Welke uitleg over atomaire instructies (ondeelbare instructies) is juist?

Vergelijkingen bij dit onderwerp