Een omgekeerde paginatabel (IPT) is een paginatabelorganisatie die in besturingssystemen wordt gebruikt om de geheugenoverhead te verminderen die gepaard gaat met traditionele paginatabellen. Laten we het doel en de functionaliteit ervan opsplitsen:
Doel:
* Verminder het geheugengebruik: Het primaire doel van een omgekeerde paginatabel is het aanzienlijk verminderen van de hoeveelheid RAM die nodig is om de paginatabel zelf op te slaan. Traditionele paginatabellen vereisen één invoer per virtuele pagina, wat enorm kan zijn, vooral bij grote virtuele adresruimten. Een IPT vereist daarentegen slechts één invoer per *fysiek* paginaframe. Dit is vrijwel altijd een veel kleiner aantal.
* Onafhankelijkheid van adresruimte: De IPT is een globale tabel, in tegenstelling tot traditionele paginatabellen, die aan elk proces zijn gekoppeld.
Functionaliteit:
1. Structuur:
* De omgekeerde paginatabel is een array, geïndexeerd door het fysieke paginaframenummer .
*Elk item in de tabel bevat doorgaans de volgende informatie:
* Proces-ID (PID): Identificeert het proces dat eigenaar is van de virtuele pagina die is toegewezen aan dit fysieke paginaframe.
* Virtueel paginanummer (VPN): Specificeert het virtuele paginanummer dat is toegewezen aan deze fysieke pagina.
* Beschermingsbits: (bijvoorbeeld lees-, schrijf- en uitvoerrechten) Deze bepalen welke bewerkingen op de pagina zijn toegestaan.
* Geldige bit: Geeft aan of de invoer geldig is (d.w.z. dat er een toewijzing bestaat).
2. Adresvertaling (virtueel naar fysiek):
Het proces van het vertalen van een virtueel adres naar een fysiek adres is complexer dan bij traditionele paginatabellen.
A. Hash-functie: Wanneer de CPU een virtueel adres moet vertalen, past deze een hash-functie toe op de combinatie van de PID en de VPN (vanaf het virtuele adres). Deze hashfunctie produceert een index.
B. Zoeken: De index van de hashfunctie wordt gebruikt om de IPT te onderzoeken.
C. Afhandeling van botsingen: Omdat een hashfunctie botsingen kan veroorzaken (verschillende PID/VPN-combinaties die naar dezelfde index hashen), *moet* de IPT-invoer ook de daadwerkelijke PID en VPN opslaan.
D. Verificatie: Het besturingssysteem vergelijkt de PID en VPN in de IPT-invoer met de PID van het huidige proces en de VPN van het virtuele adres. Als ze overeenkomen met *en* wordt de geldige bit ingesteld, dan wordt er een overeenkomst gevonden en wordt het fysieke paginaframenummer (de index in de IPT) gebruikt als onderdeel van het uiteindelijke fysieke adres.
e. Mismatches/paginafouten afhandelen:
* Als de PID/VPN niet overeenkomen, of als het geldige bit duidelijk is, heeft er een botsing plaatsgevonden of is de virtuele pagina momenteel niet toegewezen aan een fysiek frame. Het besturingssysteem moet een mechanisme voor het oplossen van botsingen gebruiken (vaak keten- of open adressering) om naar de juiste invoer in de IPT te zoeken.
*Als de pagina na het zoeken nog steeds niet wordt gevonden, treedt er een paginafout op. Het besturingssysteem handelt de paginafout af (bijvoorbeeld door de pagina van schijf in het geheugen te laden).
3. Paginavervanging:
Wanneer een nieuwe pagina in het geheugen moet worden gebracht en er geen vrije frames zijn, wordt een paginavervangingsalgoritme (bijvoorbeeld LRU, FIFO) gebruikt om een pagina te selecteren die moet worden verwijderd. De IPT-invoer voor het verwijderde paginaframe wordt bijgewerkt om deze als ongeldig te markeren, en de toewijzing van de nieuwe pagina wordt opgeslagen in dezelfde IPT-invoer (nadat de gegevens van de oude pagina indien nodig terug naar schijf zijn geschreven).
Voordelen van omgekeerde paginatabellen:
* Verminderde geheugenoverhead: Er is aanzienlijk minder geheugen nodig voor de paginatabel zelf, vooral voor grote virtuele adresruimten.
* Algemene weergave: Gemakkelijker te implementeren algemene algoritmen voor paginavervanging omdat alle paginatoewijzingen in één tabel zijn gecentraliseerd.
Nadelen van omgekeerde paginatabellen:
* Verhoogde zoekcomplexiteit: Adresvertaling is complexer en tijdrovender vanwege de hashing en conflictoplossing.
* TLB Misserstraf: Een Translation Lookaside Buffer (TLB) is een hardwarecache waarin recente virtueel-fysieke adresvertalingen worden opgeslagen. Omdat IPT-zoekopdrachten complex zijn, heeft een TLB-misser een veel hoger prestatieverlies dan bij eenvoudiger paginatabelschema's.
* Moeilijk delen: Het delen van pagina's tussen processen kan complexer zijn, omdat hiervoor het beheer van de toegangscontrole binnen de IPT-vermeldingen vereist is. Dit wordt echter vaak afgehandeld met geavanceerdere geheugenbeheertechnieken.
Waarom niet universeel gebruikt?
Hoewel de geheugenbesparing aantrekkelijk is, hebben de toegenomen opzoekoverhead en TLB-misboetes IPT's historisch gezien minder populair gemaakt dan andere paginatabelschema's, vooral op architecturen waar prestatie van het grootste belang is. Met de vooruitgang op het gebied van hardware (snellere processors, grotere caches, betere hash-functies, TLB-ontwerpen) en de toenemende vraag naar zeer grote virtuele adresruimten is er echter hernieuwde belangstelling voor IPT-achtige structuren, soms voor hybride benaderingen gecombineerd met paginatabellen met meerdere niveaus.
Samengevat:
Een omgekeerde paginatabel is een geheugenbeheertechniek die de geheugenvoetafdruk van de paginatabel verkleint door deze te indexeren op fysiek paginaframe in plaats van op virtueel paginanummer. Dit gaat ten koste van de grotere complexiteit van adresvertaling en een hogere TLB-foutstraf. Hoewel het niet universeel wordt gebruikt, kan het nuttig zijn in systemen met zeer grote virtuele adresruimten waar geheugenefficiëntie van cruciaal belang is. |