COMP 530: Operating Systems
Virtual Memory: Paging
Don Porter Portions courtesy Emmett Witchel and Kevin Jeffay
1
Virtual Memory: Paging Don Porter Portions courtesy Emmett Witchel - - PowerPoint PPT Presentation
COMP 530: Operating Systems Virtual Memory: Paging Don Porter Portions courtesy Emmett Witchel and Kevin Jeffay 1 COMP 530: Operating Systems Review Program addresses are virtual addresses. Relative offset of program regions can not
COMP 530: Operating Systems
1
COMP 530: Operating Systems
– Relative offset of program regions can not change during program
– (Virtual address == physical address) is inconvenient.
– Simple: two registers (base, offset) sufficient – Limited: Virtual address space must be <= physical – Push complexity to space management:
COMP 530: Operating Systems
require more memory than is physically available?
– How can we support programs that do not use all of their memory at once?
– Memory is a “large” virtual address space of 2n bytes – Only portions of VAS are in physical memory at any one time (increase memory utilization).
– Placement strategies
– Replacement strategies
memory
– Load control strategies
time
2n-1 Program P’s VAS
COMP 530: Operating Systems
sized page frames
– Example page size: 4KB
sized increments
– No external fragmentation – Can have internal fragmentation (rounding up smaller allocations to 1 page)
address to a physical page frame
(0,0) (fMAX-1,oMAX-1)
(f,o)
f
Memory
COMP 530: Operating Systems
Abstraction: 1:1 mapping of page-aligned virtual addresses to physical frames
– The size of memory / the size of a page frame
BOT)
(0,0) (fMAX-1,oMAX-1)
(f,o)
f
Memory
COMP 530: Operating Systems
(0,0) (fMAX-1,oMAX-1) PA: f
f
Memory 1 log2 omax log2 (fmax ´ omax)
A physical address can be split into a pair (f, o)
f — frame number (fmax frames)
Physical address = omax´f + o As long as a frame size is a power of 2, easy to split address using bitwise shift operations
COMP 530: Operating Systems
512 byte page frames
– Reminder: 512 == 29
– Address 1,542 can be translated to:
– More simply: (3,6) 1 9 PA: 16 (0,0)
(3,6)
f
Memory
1 1 1 1 3 6 1,542
10
1,542
COMP 530: Operating Systems
partitioned into equal sized pages
– page = page frame (0,0) 2n-1 = (pMAX-1,oMAX-1) p
p VA:
Address Space 1 log2 oMAX log2 (pmax´omax)
A virtual address is a pair (p, o)
p — page number (pmax pages)
Virtual address = omax´p + o
COMP 530: Operating Systems
– But pages are arbitrarily located in physical memory, and – Not all pages mapped at all times Virtual Address Space
(p1,o1) (p2,o2)
Physical Memory
(f1,o1) (f2,o2)
COMP 530: Operating Systems
– A. True – B. False
COMP 530: Operating Systems
Page Table
pages to physical frames CPU (p,o)
p
P’s Virtual Address Space Physical Memory
1 20 9 10
p
1 16 9 10
f
Addresses
Program P
Virtual Addresses f
COMP 530: Operating Systems
– Flags — dirty bit, resident bit, clock/reference bit – Frame number
1 0 Page Table
p
1 20 9 10
p
16 9 10
f
Addresses Virtual Addresses f
PTBR CPU + 1 table per process
Part of process metadata/state
COMP 530: Operating Systems
0 1 0 0 1 0 0 A system with 16-bit addresses
Ø 32 KB of physical memory Ø 1024 byte pages
CPU Page Table Physical Memory
15
p
14 9 10
f
Addresses Virtual Addresses 0 0 0 0 0 0 0
P’s Virtual Address Space
(3,1023) (4,0) (0,0) 1
10 9
Flags|Phys. Addr
COMP 530: Operating Systems
– One access to get the page table entry – One access to get the data
disk.
– For a machine with 64-bit addresses and 1024 byte pages, what is the size of a page table?
– Most computing problems are solved by some form of…
COMP 530: Operating Systems
– For TLB hit, physical page number obtained in 1 cycle – For TLB miss, translation is updated in TLB – Has high hit ratio (why?)
Page Table
1 20 9 10
p
16 9 10
f
Addresses Virtual Addresses
CPU TLB f
Key Value
p p f ?
COMP 530: Operating Systems
to the page table by sub-dividing page number into k parts
– Create a “tree” of page tables – TLB still used, just not shown – The architecture determines the number of levels of page table
Third-Level Page Tables
p2
First-Level Page Table
p3
Second-Level Page Tables
p1 p1 p2 p3
COMP 530: Operating Systems
Second-Level Page Table
1 20 10 16
p1
16 10
f
Addresses Virtual Addresses
CPU First-Level Page Table page table
p2
f
p1
PTBR
p2
+ + Memory
COMP 530: Operating Systems
become cumbersome.
– E.g. 5 levels of tables.
make them proportional to the size of physical address space.
– Virtual address space is growing faster than physical.
– Translation table occupies a very small fraction of physical memory – Size of translation table is independent of VM size
COMP 530: Operating Systems
what?
– A. Increases memory utilization. – B. Increases performance for user applications. – C. Allows an OS to run more programs concurrently. – D. Gives the OS freedom to move virtual pages in the virtual address space.
mappings are
– A. Frequent and frequent – B. Frequent and infrequent – C. Infrequent and frequent – D. Infrequent and infrequent
COMP 530: Operating Systems
– Residence bit: whether or not the frame is occupied – Occupier: page number of the page occupying frame – Protection bits
– Physical memory size: 16 MB – Page size: 4096 bytes – Number of frames: 4096 – Space used for page registers (assuming 8 bytes/register): 32 Kbytes – Percentage overhead introduced by page registers: 0.2% – Size of virtual memory: irrelevant
COMP 530: Operating Systems
physical page?
– Hash the virtual address – Must deal with conflicts
take several steps
– Hash the address – Check the tag of the entry – Possibly rehash/traverse list of conflicting entries
– Difficult to make large and accessible in a single cycle. – They consume a lot of power (27% of on-chip for StrongARM)
COMP 530: Operating Systems
– Page frame number is not explicitly stored (1 frame per entry) – Protection, dirty, used, resident bits also in entry h(PID, p)
1 20 9
p
16 9
f
Addresses Virtual Address
PTBR CPU Hash
PID
Inverted Page Table 1
Virt page#
Memory fmax– 1 fmax– 2 running PID + 1 =? =? tag check
COMP 530: Operating Systems
upon hash function
– Compute f(i) and use it as an index into the table of page registers – Extract the corresponding page register – Check if the register tag contains i, if so, we have a hit – Otherwise, we have a miss
COMP 530: Operating Systems
– Since the number of pages is usually larger than the number of slots in a hash table, two or more items may hash to the same location
– Use a linked list of items that hash to a particular table entry – Rehash index until the key is found or an empty table entry is reached (open hashing)
COMP 530: Operating Systems
– Recall: each entry stores PID and virtual address – Multiple processes can share one inverted table
25
COMP 530: Operating Systems
– A. Forward mapped page tables are too slow. – B. Forward mapped page tables don’t scale to larger virtual address spaces. – C. Inverted pages tables have a simpler lookup algorithm, so the hardware that implements them is simpler. – D. Inverted page tables allow a virtual page to be anywhere in physical memory.
COMP 530: Operating Systems
– Contains its code, data, and stack
– Some are currently residing in memory; most are not
– Although this file is typically not visible to users – File only exists while a program is executing
OS determines which portions of a process’s VAS are mapped in memory at any one time Code Data Stack File System (Disk)
OS/MMU
Physical Memory
COMP 530: Operating Systems
a page fault
– Remember Interrupts?
Program P’s VAS Disk CPU
Physical Memory Page Table OS resumes/initiates some other process Read of page completes OS maps the missing page into memory OS restart the faulting process
Page fault handling steps:
Processor runs the interrupt handler OS blocks the running process OS starts read of the unmapped page
COMP 530: Operating Systems
memory access time (EAT)
– EAT = memory access time ´ probability of a page hit + page fault service time ´ probability of a page fault
– Memory access time: 60 ns – Disk access time: 25 ms – Let p = the probability of a page fault – EAT = 60(1–p) + 25,000,000p
value of p we can tolerate?
COMP 530: Operating Systems
paging?
– A. Fine-grained protection. – B. Easier to manage transfer of segments to/from the disk. – C. Requires less hardware support – D. No external fragmentation
segmentation?
– A. Fine-grained protection. – B. Easier to manage transfer of pages to/from the disk. – C. Requires less hardware support. – D. No external fragmentation.
COMP 530: Operating Systems
– But comes with higher latency, higher management costs in hardware and software
– Push for larger page granularity (fewer levels of page tables) – Or just go back to segmentation??
31
COMP 530: Operating Systems
size units