0
Operating Systems
          CMPSCI 377
        Virtual Memory
                   Emery Berger
University of Massachusetts ...
Virtual Memory
    Virtual, not physical memory


        Divided into pages
    

              Page tables, TLB
      ...
Demand-Paged Virtual Memory
    Key idea: use RAM as cache for disk


        OS transparently moves pages
    

    Req...
Virtual Memory Pages

    Memory divided into


    fixed-sized pages (e.g.,
    4K, 8K)
        Allocates pages to frame...
Demand-Paging Diagram




  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   5
Paging + Locality

    Most programs obey

    90/10 “rule”                                              A
        90% of...
Virtual Memory

    Processes use virtual addresses


        Addresses start at 0
    

        OS lays process down on...
Mapping Virtual to Physical




   UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   8
Address Translation

    Powers of 2:


        Virtual address space:
    

        size 2m
        Page size 2n
    
...
Paging Hardware: Diagram




   UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   10
Translation Lookaside Buffer (TLB)
    TLB: fast, fully associative memory


        Caches page table entries
    

   ...
TLB Action




   UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   12
TLB: Diagram




    v = valid bit: entry is up-to-date

      UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Comput...
Cost of Using TLB
    Measure in terms of memory access cost




    What is cost if:


        Page table is in memory?...
Sharing
    Paging allows sharing of memory across

    processes
        Different virtual addresses,
    
        poin...
Key Policy Decisions
    Two key questions: (for any cache):


        When do we read page from disk?
    

        Whe...
Reading Pages
    Read on-demand:


        OS loads page on its first reference
    

        May force an eviction of ...
Demand Paging
    On every reference, check if page is in


    memory (valid bit in page table)
    If not: trap to OS
...
Swap Space


    Swap space = where victim pages go


        Partition or special file reserved on disk
    

         ...
Swap Space


    Swap space = where victim pages go


        Partition or special file reserved on disk
    

         ...
Swap Space
    Swap space = where victim pages go


        Partition or special file reserved on disk
    

           ...
Cost of Paging
    Worst-case analysis – useless


        Easy to construct adversary example:
    

        every page...
Page Replacement Algorithms
    MIN, OPT (optimal)


    RANDOM


        evict random page
    

    FIFO (first-in, f...
MIN/OPT
    Invented by Belady (“MIN”)


    Now known as “OPT”: optimal page

    replacement
        Evict page to be ...
MIN/OPT example




    Page faults: 5




      UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   25
RANDOM
    Evict any page


    Works surprisingly well – why?


    Theoretically: very good,


    but not used in pr...
LRU
    Evict page that has not been used in


    longest time (least-recently used)
        Approximation of MIN if rec...
LRU example




    Page faults: ?




      UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   28
LRU example




    Page faults: 5




      UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   29
LRU, example II




    Page faults: ?




      UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   30
LRU, example II




    Page faults: 12!




      UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   31
FIFO
    First-in, first-out: evict oldest page


        Also has competitive ratio k
    

    But: performs miserably...
FIFO & Belady’s Anomaly




   UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   33
MRU


    Evict most-recently used page


    Shines for LRU’s worst-case: loop that

    exceeds RAM size

            ...
The End




   UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science   35
LRU: No Belady’s Anomaly




    Why no anomaly for LRU?




     UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Com...
Upcoming SlideShare
Loading in...5
×

Operating Systems - Virtual Memory

2,765

Published on

From the Operating Systems course (CMPSCI 377) at UMass Amherst, Fall 2007.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,765
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
204
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Operating Systems - Virtual Memory"

  1. 1. Operating Systems CMPSCI 377 Virtual Memory Emery Berger University of Massachusetts Amherst UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science
  2. 2. Virtual Memory Virtual, not physical memory  Divided into pages  Page tables, TLB  Provides isolation, protection, optimization  Managed using eviction policies  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 2
  3. 3. Demand-Paged Virtual Memory Key idea: use RAM as cache for disk  OS transparently moves pages  Requires locality:  Working set (memory referenced recently)  must fit in RAM If not: thrashing (nothing but disk traffic)  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 3
  4. 4. Virtual Memory Pages Memory divided into  fixed-sized pages (e.g., 4K, 8K) Allocates pages to frames  A in memory OS manages pages  Moves, removes,  reallocates Copied to and from disk  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 4
  5. 5. Demand-Paging Diagram UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 5
  6. 6. Paging + Locality Most programs obey  90/10 “rule” A 90% of time spent  accessing 10% of A B memory B Exploit this rule:  Only keep “live” parts  of process in memory UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 6
  7. 7. Virtual Memory Processes use virtual addresses  Addresses start at 0  OS lays process down on pages  MMU (memory-management unit):  Hardware support for paging  Translates virtual to physical addresses  Uses page table to keep track of frame  assigned to memory page UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 7
  8. 8. Mapping Virtual to Physical UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 8
  9. 9. Address Translation Powers of 2:  Virtual address space:  size 2m Page size 2n  High-order m-n bits  of virtual address select page Low order n bits  select offset in page UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 9
  10. 10. Paging Hardware: Diagram UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 10
  11. 11. Translation Lookaside Buffer (TLB) TLB: fast, fully associative memory  Caches page table entries  Stores page numbers (key) and frame (value)  in which they are stored Assumption: locality of reference  Locality in memory accesses =  locality in address translation TLB sizes: 8 to 2048 entries  Powers of 2 simplifies translation  of virtual to physical addresses UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 11
  12. 12. TLB Action UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 12
  13. 13. TLB: Diagram v = valid bit: entry is up-to-date  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 13
  14. 14. Cost of Using TLB Measure in terms of memory access cost  What is cost if:  Page table is in memory?  Page table managed with TLB?  Large TLB:  Improves hit ratio  Decreases average memory cost  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 14
  15. 15. Sharing Paging allows sharing of memory across  processes Different virtual addresses,  point to same physical address Shared stuff includes code, data  Compiler marks “text” segment (i.e., code) of  applications (e.g., emacs) - read-only OS: keeps track of such segments  Reuses if another instance of app arrives  Copy-on-write  Can greatly reduce memory requirements  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 15
  16. 16. Key Policy Decisions Two key questions: (for any cache):  When do we read page from disk?  When do we write page to disk?  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 16
  17. 17. Reading Pages Read on-demand:  OS loads page on its first reference  May force an eviction of page in RAM  Pause while loading page = page fault  Can also perform pre-paging:  OS guesses which page will next be needed,  and begins loading it Most systems just do demand paging  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 17
  18. 18. Demand Paging On every reference, check if page is in  memory (valid bit in page table) If not: trap to OS  OS checks address validity, and  Selects victim page to be replaced  Invalidates old page  Begins loading new page from disk  Switches to other process  (paging = implicit I/O) Note: must restart instruction later  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 18
  19. 19. Swap Space Swap space = where victim pages go  Partition or special file reserved on disk  Sometimes: special filesystem (“tmpfs”)  What kind of victim pages can be evicted  without going to swap? Size of reserved swap space limits what?  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 19
  20. 20. Swap Space Swap space = where victim pages go  Partition or special file reserved on disk  Sometimes: special filesystem (“tmpfs”)  What kind of victim pages can be evicted  without going to swap? Read-only (“text”), untouched anonymous pages  Size of reserved swap space limits what?  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 20
  21. 21. Swap Space Swap space = where victim pages go  Partition or special file reserved on disk  Sometimes: special filesystem (“tmpfs”)  Only read-only or undirtied victim pages can  be evicted without going to swap “text” (code), untouched anonymous pages  Size of reserved swap space limits  total virtual memory UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 21
  22. 22. Cost of Paging Worst-case analysis – useless  Easy to construct adversary example:  every page requires page fault A, B, C, D, E, F, G, H, I, J, A... size of available memory UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 22
  23. 23. Page Replacement Algorithms MIN, OPT (optimal)  RANDOM  evict random page  FIFO (first-in, first-out)  give every page equal residency  LRU (least-recently used)  MRU (most-recently used)  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 23
  24. 24. MIN/OPT Invented by Belady (“MIN”)  Now known as “OPT”: optimal page  replacement Evict page to be accessed furthest in the  future Provably optimal policy  Just one small problem...  requires predicting the future Still useful point of comparison  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 24
  25. 25. MIN/OPT example Page faults: 5  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 25
  26. 26. RANDOM Evict any page  Works surprisingly well – why?  Theoretically: very good,  but not used in practice: takes no advantage of locality UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 26
  27. 27. LRU Evict page that has not been used in  longest time (least-recently used) Approximation of MIN if recent past is good  predictor of future Variant of LRU used in all real operating  systems UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 27
  28. 28. LRU example Page faults: ?  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 28
  29. 29. LRU example Page faults: 5  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 29
  30. 30. LRU, example II Page faults: ?  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 30
  31. 31. LRU, example II Page faults: 12!  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 31
  32. 32. FIFO First-in, first-out: evict oldest page  Also has competitive ratio k  But: performs miserably in practice!  LRU takes advantage of locality  FIFO does not  Suffers from Belady’s anomaly:  More memory can mean more paging!  LRU & other “stack” algs. do not  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 32
  33. 33. FIFO & Belady’s Anomaly UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 33
  34. 34. MRU Evict most-recently used page  Shines for LRU’s worst-case: loop that  exceeds RAM size A, B, C, D, A, B, C, D, ... size of available memory What we really want: adaptive algorithms  (e.g., EELRU – Kaplan & Smaragdakis) UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 34
  35. 35. The End UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 35
  36. 36. LRU: No Belady’s Anomaly Why no anomaly for LRU?  UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 36
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×