8.4 - Paging (p.364)

  • Paging = Memory-Management methode waarbij het geheugen van een process niet aaneengesloten hoeft te zijn.
  • Vermijden van external fragmentation en compaction.
  • Vroeger was er paging hardware, nu is het meer en meer geintergreerd in het OS.
  • Internal fragmentation komt wel voor als blokken te groot zijn voor de data die hierin moet.
    • Een regel zou zijn een halve page internal fragmentation per process, dus een kleinere page grote gewenst zijn.
    • Alleen hebben pages ook overhead, plus disk IO is meestal beter met grote hoeveelheden.

Basic Method

  • Frames = Blokken van een vaste grote van het physical memory.
  • Pages = Blokken van een vaste grote van het logical memory.
    • De grote wordt gedefinieerd door de hardware. (is meestal een meervoud van 2)
      • Dit maakt omzetting van een logical address naar page number en page offset makkelijker.
  • Wanneer een process moet worden geladen worden de desbetreffende pages in frames geladen vanuit de backing store of file system.
    • De backing store bestaat uit blokken van dezelfde grote als de memory frames.
  • Page Number (p) = Duid de page aan.
  • Page Offset (d) = Duid de locatie in de page aan.
  • Page Table = Bewaart de page numbers als een index in deze tabel, een voor elk process.
  • Binaire opstelling page number/offset:
    • [Page number bits|page offset bits] = [p|d]
    • ex. page size van 32 bytes (2^5)(d) , physical memory van 1024 (2^10) bytes geeft dus max 1024/32 = 32 pages (2^5) (p)
      • Dus wordt de binaire representatie van een locatie: [00000|00000]
    • EX: locatie page 4, ofset 30 = [00100|11100] = physical location (4*32)+30=158
      • NB. Afhankelijk van de waarde van de base/relocation register komt dat hier nog bij. 1
  • Werkwijze door processen:
    1. Process komt systeem binnen.
    2. De grote in pages wordt doorgegeven.
    3. Systeem kijkt of ook zoveel frames beschikbaar zijn.
    4. Het eerste page, wordt in de eerste frame gestopt. etc.
    5. Er wordt een page table opgesteld waarin staat welk nummer page in welk frame staat
      • Page 0 in frame 5, page 1 in frame 6, page 2 in frame 1, page 3 in frame 2 etc.
  • Het programma ziet het als een enkele aaneengesloten stuk geheugen, terwijl dit dus niet is.
    • Mapping wordt geregeld door het OS en is niet zichtbaar bij het process/user.
  • Frame Table = Tabel waarin staat welke frames er aan welk process zijn toegekend, hoeveel er beschikbaar zijn etc.

Hardware Support

  • Een page table kan in speciale registers.
  • Page Table Base Register (PTBR) = Page table bewaard in main memory.
    • Kostbaar, want er moet twee keer worden gekeken in de memory.
    • 1x voor de geheugenlocatie in de table
    • 1x voor het ophalen van de byte.
  • Translaton Look-Aside Buffer (TLB) = Associative, hardware, high speed memory vergelijking van de physical en virtual memory. (page table)
    • Nadeel: Is duur, en klein.
    • Hoe werkt het?:
      1. De TLB bestaat uit maar een aantal page-table entries.
      2. Een logical address is gegenereerd door de CPU.
      3. De TLB gaat het logische address vergelijken met zijn tabel, als een hit vindt wordt het frame number direct gebruikt om geheugen op te halen.
      4. Bij een miss wordt een referentie tussen het frame en page gemaakt.
      5. DE gegevens worden opgeslagen voor de volgende keer.
      6. Wanneer de TLB vol zit moet het OS bepalen welke referentie eruit moet.
        • Via LRU (zie 9.4) of random
  • Address-space identiefiers (ASIDs) = Opgeslagen door TLB, duid het process uniek aan. Het zorgt ervoor dat het process dat het opvraagt ook eigenaar is van de page.
    • Wanneer de TLB geen meerdere ASIDs ondersteund, moet deze worden gewist (flushed) bij elk process.
  • Hit-ratio = Het percentage keren dat een zeker page number gevonden wordt in de TLB.
  • Effective memory Access time (EMAT) = Gemiddelde tijd het duurt om het geheugen te benaderen, met de hit/miss ratio meegenomen
    • EX. 80% hit, 20% miss. Hit tijd is 120ns, Miss tijd is 220ns
    • EX. EMAT = (hit% * hittime)+(miss% * misstime) = (0.80 * 120) + (0.2 * 220) = 140 ns

Protection

  • Protection bits bijhorend aan een frame.
    • Opgeslagen in de page table.
    • Defenieert Read-Write of Read only.
    • Bij een write naar een read-only komt er een memort-protect violation hardware trap.
  • Valid-invalid bit = Bit in de page table, geeft aan of de geassocieerde page ook een legal/valid page is.
  • Page Table Length Register = Hadware register dat de lengte van een page table aangeeft, en een error trap stuurt wanneer een page access hierbuiten valt.

Sharing Pages

  • Delen van common code.
  • Reentrant code/pure code = Code dat zichzelf niet aanpast, maar zijn gegevens van opslaat op een andere data page.
1. Misschien zeggen ze op de toets wel, ah page 0 begint op address 4096 dan komt dat er dus nog bij.

results matching ""

    No results matching ""