Multicore en synchronisatie
Twee cores hebben elk in hun eigen cache een kopie van variabele x. Welk probleem kan optreden wanneer core 1 x leest nadat core 0 naar x heeft geschreven, als er geen cachecoherentiemechanisme is?
- ACore 1 leest een verouderde waarde die nog in zijn eigen cache staat
- BDe leesactie van core 1 is altijd sneller dan de schrijfactie van core 0
- CDe waarde van x wordt verdubbeld gelezen
Antwoord en toelichting tonen
Antwoord: A. Core 1 leest een verouderde waarde die nog in zijn eigen cache staat
Bij een multicore-CPU ontstaan in de caches van de cores kopieën van gegevens op hetzelfde adres. Als core 0 x alleen in zijn eigen cache wijzigt, blijft in de cache van core 1 de oude waarde staan en leest core 1 die. Een cachecoherentiemechanisme zorgt ervoor, bijvoorbeeld door bij een schrijfactie de kopieën in andere cores ongeldig te maken, dat vanuit elke core de nieuwste waarde zichtbaar is.