11/20/15 1
Virtual ¡Memory
Motivation: ¡ why ¡not ¡direct ¡physical ¡memory ¡ access? Address ¡translation with ¡pages Optimizing ¡ translation: ¡ translation ¡lookaside buffer Extra ¡ benefits: ¡sharing ¡and ¡protection Memory ¡as ¡a ¡contiguous ¡array ¡ of ¡bytes ¡is ¡a ¡lie! ¡ ¡Why?
1
Physical ¡Addressing
2
Small ¡ embedded ¡systems ¡without ¡processes
Elevators, ¡microwaves, ¡radio-‑powered ¡devices, ¡…
0: 1: M-‑1:
Main ¡memory
CPU
2: 3: 4: 5: 6: 7:
Physical ¡address (PA)
Data
8:
...
4
Problem ¡1: ¡Memory ¡Management
3
Main ¡memory
What ¡goes ¡ where?
stack heap
.text .data
… Process ¡1 Process ¡2 Process ¡3 … Process ¡n
x
Also: Context ¡switches must ¡swap ¡out ¡entire ¡memory ¡contents. Isn't ¡that ¡expensive?
Problem ¡2: ¡Capacity
4
64-‑bit ¡addresses ¡can ¡address several ¡ exabytes (18,446,744,073,709,551,616 ¡bytes) Physical ¡main ¡memory ¡offers a ¡few ¡gigabytes (e.g. ¡8,589,934,592 ¡bytes)
?
1 ¡virtual ¡address ¡space ¡per ¡process, ¡ with ¡many ¡processes…
(Actually, ¡ it’s ¡smaller ¡ than ¡that dot ¡compared ¡ to ¡virtual ¡ memory.)