Memory Management Strategies - Paging

13 belangrijke vragen over Memory Management Strategies - Paging

Wat is paging en waar biedt paging een oplossing voor?

Bij paging wordt elk proces in blokken (pages) verdeeld en worden de afzonderlijke blokken van het proces aan het geheugen toegewezen. Op die manier wordt externe fragmentatie voorkomen.

Hoe kan een page in het fysieke geheugen eenvoudig worden teruggevonden?

Om een page in het fysieke geheugen terug te kunnen vinden wordt gebruikt gemaakt van een pagetable. De pagetable bevat voor elke pagina het geheugenadres van de pagina. Via de offset binnen de pagina kan het exacte adres van een byte of geheugenwoord bepaald worden.

In welke opzicht zijn kleine pagina's nadelig, en in welk opzicht zijn grote pagina's nadelig?

Kleine pagina's zijn nadelig vanwege het grotere aantal entries in de pagetable. Bovendien is de uitwisseling van pagina's met het achtergrondgeheugen bij kleinere pagina's minder efficiënt.

Grote pagina's zijn nadelig vanwege de toename van de interne fragmentatie.

  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Bij paging worden de data in het geheugen beschermd door middel van protection bits in de page table. Noem twee voorbeelden van protection bits.

  • Access bit, om aan te geven of een pagina read-write of read-only is
  • Valid-invalid bit, om aan te geven of de pagina deel uitmaakt van de geheugenadresruimte van het proces

Wat is het verschil tussen een page table en een frame table?

Een page table is gerelateerd aan een proces, terwijl een frame table betrekking heeft op het totale fysieke geheugen.

Een page table wordt gebruikt om geheugenadressen op te zoeken, terwijl de frame table  gebruikt wordt om (lege) frames aan processen toe te wijzen.

Waarom leidt paging tot een hogere context-switch time?

Bij elk context switch moet de dispatcher tevens de page table vernieuwen.

Als een page table groot wordt (meer dan 256 entries) dan is het niet meer haalbaar om de page table in een registerset te implementeren. Op welke wijze kunnen grote page tables worden geïmplementeerd?

De page table wordt opgeslagen in het geheugen en de toegang tot de page table verloopt via een page table base register (PTBR). Een belangrijk nadeel van deze oplossing is dat de toegang tot een bepaald geheugenadres nu in twee stappen verloopt.

Wat is de functie van het page table base register (PTBR)?

Het PTBR is een hardwareoplossing die het mogelijk maakt om grote page tables  in het geheugen in plaats van in registers op te slaan. Omdat bij een context switch alleen het PTBR vervangen hoeft te worden neemt de benodigde tijd voor de context switch af. Daar staat echter tegenover dat de toegang tot bepaald geheugenadres nu in twee stappen verloopt en daardoor langer duurt.

Wat is de functie van de translation look-aside buffer (TLB)?

De TLB is een aanvulling op het page table base register (PTBR) en wordt gebruikt om geheugenadressen sneller toegankelijk te maken. In de TLB worden geheugenadressen opgeslagen zodat deze niet in de page table opgezocht hoeven te worden. 

Soms wordt aan de entries van een translation look-aside buffer (TLB) een address space identifier (ASID) toegevoegd. Met een ASID wordt het betreffende proces uniek geïdentificeerd. Noem twee argumenten voor het gebruik van ASID's.

  • Zorgt voor adress-space protection
  • Maakt het mogelijk om entries van meerdere processen in de TLB op te nemen, zodat de TLB niet steeds vernieuwd hoeft te worden

Wat is de functie van het page table length register (PTLR)?

Processen gebruiken zelden hun volledige adresruimte, zodat een deel van de page table niet nodig is. Het PTLR geeft aan wat de feitelijke lengte van de page table is. Deze informatie wordt gebruikt om te controleren of een logisch geheugenadres geldig is.

Wat wordt bedoeld met reentrant code?

Reentrant code is code die gedurende de uitvoering van een programma niet gewijzigd wordt. Voorbeelden van reentrant code zijn: compilers, window systems, run-time libraries en database systems.

Omdat reentrant code niet gewijzigd wordt, kan deze door meerdere processen tegelijk gebruikt worden (code sharing).

Hoe worden bij paging de geheugenruimtes van de verschillende processen tegen elkaar beschermd?

In een gepagineerd geheugen kan een proces alleen toegang krijgen tot de frames waarnaar in de paginatabel van dat proces wordt verwezen.

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo