Besturingssysteem en hardware
Welke verwerking is juist nodig in een systeem met meerdere cores wanneer het besturingssysteem de paginatabelingang van een pagina wijzigt en de koppeling ongedaan maakt?
- AHet is voldoende alleen de TLB van de eigen core te legen, want andere cores gebruiken automatisch de juiste vertaling
- BOok uit de TLB's van andere cores moet de oude vertaling zeker worden verwijderd
- CZonder iets te doen worden bij het wijzigen van de paginatabel alle TLB's tegelijk bijgewerkt
Antwoord en toelichting tonen
Antwoord: B. Ook uit de TLB's van andere cores moet de oude vertaling zeker worden verwijderd
Bij veel CPU's wordt de TLB, anders dan caches, niet door hardware coherent gehouden, dus in de TLB's van andere cores kunnen nog oude vertalingen van vóór het wijzigen van de paginatabel staan. Dan zouden andere cores toegang kunnen hebben tot een pagina die was ingetrokken. Daarom stuurt het besturingssysteem inter-processor-interrupts naar de andere cores of gebruikt een instructie die ongeldigverklaring aan alle cores doorgeeft om de oude ingangen te laten verwijderen, en wacht op voltooiing. Dit heet TLB-shootdown en kost meer tijd naarmate er meer cores zijn.