Wat is Geneste paginering (nested paging)?
Methode waarbij de hardware achtereenvolgens twee niveaus van paginatabellen doorloopt: de vertaling die door het besturingssysteem van de virtuele machine wordt beheerd en die van de hypervisor. Verlaagt de tussenkomst van de hypervisor en versnelt virtualisatie.
Japanse benaming: 入れ子ページング
“Geneste paginering (nested paging)” komt voor in 3 oefenvragen uit 1 onderwerpen, bijv. Besturingssysteem en hardware.
Vakgebied: Besturingssysteem en hardware
Waarom een TLB-miss 24 geheugentoegangen kan kosten
Elke entry die de walker van de gast nodig heeft, wordt gevonden via een guest-physical adres, dat zelf eerst via de tabellen van de host moet worden vertaald voordat het kan worden gelezen. Met tabellen van vier niveaus aan beide kanten kost elk gastniveau vier hostleesacties plus één leesactie in de gasttabel, vijf in totaal, dus 20 over vier niveaus, en het vertalen van het uiteindelijke data-adres via de host voegt er nog vier toe: (4 + 1) × (4 + 1) − 1 = 24, tegenover vier bij een native walk. Page-walk caches, TLB's die de uiteindelijke gecombineerde vertaling cachen en grote pagina's aan de hostkant houden de gemiddelde kosten veel lager.
Veelgestelde vragen
Wat is het verschil tussen geneste paginering en shadow paging?
Bij shadow paging houdt de hypervisor in software gecombineerde tabellen van guest-virtual naar host-physical bij en onderschept hij updates van de paginatabellen van de gast. Bij geneste paginering doorloopt de hardware de tabellen van gast en host na elkaar, zodat de gast zijn eigen tabellen bijwerkt zonder tussenkomst van de hypervisor.
Hoeveel geheugentoegangen vraagt een geneste page walk?
Met paginatabellen van vier niveaus in zowel gast als host kan een TLB-miss in het slechtste geval tot 24 geheugentoegangen vragen, tegenover vier bij een niet-gevirtualiseerde walk.
Is geneste paginering hetzelfde als geneste virtualisatie?
Nee. Geneste paginering is adresvertaling in twee fasen voor gewone virtuele machines, terwijl geneste virtualisatie betekent dat er een hypervisor binnen een virtuele machine draait.