Wat is Paginatabel?

Tabel met de toewijzing van paginanummers van virtuele adressen aan paginanummers van fysieke adressen. Wordt per proces door het besturingssysteem gemaakt en door de MMU van de CPU gebruikt om adressen te vertalen. Elke ingang bevat ook bits voor beveiliging.

Japanse benaming: ページテーブル

“Paginatabel” komt voor in 18 oefenvragen uit 4 onderwerpen, bijv. Besturingssysteem en hardware, CPU en architectuur, Linker, loader en uitvoerbare formaten.

Vakgebied: Besturingssysteem en hardware

Nu oefenen: vragen over Paginatabel

Wat is de juiste rol van de paginatabel?

  1. APaginanummers van virtuele adressen koppelen aan paginanummers van fysieke adressen
  2. BDe inhoud van gegevens in het fysieke geheugen per pagina kopiëren en bewaren
  3. CDe prioriteit van lopende processen in paginavolgorde beheren
Antwoord en toelichting tonen

Antwoord: A. Paginanummers van virtuele adressen koppelen aan paginanummers van fysieke adressen

Bij virtueel geheugen worden virtuele adressen die een programma gebruikt omgezet in adressen van het feitelijke fysieke geheugen. De paginatabel legt per virtueel paginanummer het bijbehorende fysieke paginanummer vast, samen met beveiligingsinformatie zoals lees- en schrijfrechten; het besturingssysteem maakt hem per proces aan en de MMU van de CPU raadpleegt hem. Veelgebruikte vertalingen worden in de TLB bewaard. Het is geen tabel die de inhoud van gegevens kopieert of de prioriteit van processen beheert.

Wat is de belangrijkste reden om de paginatabel meertrapsgewijs (hiërarchisch) in plaats van eentrapsgewijs te maken?

  1. AOmdat tabellen voor ongebruikte bereiken kunnen worden weggelaten en geheugen voor de paginatabel wordt bespaard
  2. BOmdat bij elke adresvertaling minder tabellen worden gelezen, zodat TLB-misses sneller worden afgehandeld
  3. COmdat de capaciteit van het fysieke geheugen groter kan zijn dan de virtuele adresruimte
Antwoord en toelichting tonen

Antwoord: A. Omdat tabellen voor ongebruikte bereiken kunnen worden weggelaten en geheugen voor de paginatabel wordt bespaard

Een eentraps paginatabel heeft ingangen nodig voor alle pagina's van de virtuele adresruimte, ongeacht of ze worden gebruikt, en wordt in een 64-bits omgeving enorm. Bij een meertrapsstructuur worden alleen de lagere tabellen voor gebruikte bereiken aangemaakt en worden ingangen van hogere tabellen voor ongebruikte bereiken ongeldig gelaten, zodat het geheugen overeenkomt met wat het programma gebruikt. Daar staat tegenover dat bij een TLB-miss evenveel tabellen als er trappen zijn worden doorlopen, wat trager is. Met de grootte van het fysieke geheugen heeft het niets te maken.

“Paginatabel” in de toelichting

Vragen met “Paginatabel” (18)

  1. Wat is de juiste rol van de paginatabel?
  2. Wat is de belangrijkste reden om de paginatabel meertrapsgewijs (hiërarchisch) in plaats van eentrapsgewijs te maken?
  3. Hoe groot is een eentraps paginatabel bij 32-bits virtuele adressen, een paginagrootte van 4 KB en 4 byte per paginatabelingang?
  4. Hoeveel trappen moeten worden doorlopen bij een meertraps paginatabel met 48 bits van het virtuele adres, een paginagrootte van 4 KB en 512 ingangen (9 bits) per tabel?
  5. In veel besturingssystemen wordt het kernelgebied toegewezen aan een deel (bijvoorbeeld het hoge bereik) van de adresruimte van elk proces, en wordt toegang vanuit de gebruikersmodus met de beveiligingsbit van de paginatabel verboden. Wat is het belangrijkste voordeel van deze indeling?
  6. Welke cache bewaart de resultaten van de omzetting van virtuele naar fysieke adressen en versnelt zo de adresvertaling?
  7. Welke aanval is gemakkelijker te voorkomen door te verbieden dat een geheugenpagina tegelijk „beschrijfbaar” en „uitvoerbaar” is (W^X, scheiding van schrijven en uitvoeren)?
  8. Welke uitleg over demand paging is juist?
  9. Wat moet bij een contextwisseling worden opgeslagen voor het proces waarvan wordt overgeschakeld?
  10. Welk voordeel is juist van het toevoegen van een ASID (address space identifier) aan elke TLB-ingang?
  11. Wat is de belangrijkste reden dat gangbare besturingssystemen verhinderen dat toepassingen rechtstreeks registers van apparaten lezen en schrijven?
  12. Welke uitleg over de adresvertaling door hardware is juist bij virtualisatie met geneste paginering (tweetraps adresvertaling)?
  13. Hoeveel bits van het virtuele adres geven de positie binnen de pagina (offset) aan bij een paginagrootte van 4 KB?
  14. Welke combinatie van paginanummer en offset binnen de pagina is juist voor het 32-bits virtuele adres 0x00403ABC bij een paginagrootte van 4 KB?
  15. 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?

Verwante termen

TLB (translation lookaside buffer) Via Systeemaanroep (system call) Virtueel geheugen Demand paging Interrupt Heap Stackpointer ASID (address space identifier) Numerieke apertuur (NA)

Naar de woordenlijst