940 likes | 1.3k Views
Demand Paged Virtual Memory. Motivating demand paging virtual memory How demand paging virtual memory works Issues in demand paging virtual memry Page replace algorithms. Up to this point…. We assume that a process needs to load all of its address space before running
E N D
Demand Paged Virtual Memory Motivating demand paging virtual memory How demand paging virtual memory works Issues in demand paging virtual memry Page replace algorithms
Up to this point… • We assume that a process needs to load all of its address space before running • e.g., 0x0 to 0xffffffff • What do those translation schemes do? • Memory abstraction is not perfect. • Logical memory must be less than physical memory. • Observation: 90% of time on 10% of code • Loading the whole program is a waste. • Demand paging virtual memory resolves this problem.
Demand Paging • Demand paging: allows pages that are referenced actively to reside in memory • Remaining pages stay on disk (swap space) • Advantages: • Truly decouples physical memory and logical memory. • Provides the illusion of infinite physical memory. • Each program takes less physical memory. • Less I/O when swapping processes • Fast fork();
Demand Paging: how it works? • The process address space (image) is always in swap space (on disk). • The page table entry (in memory) has three states: • Valid with the page physical address • Invalid with the address in the swap space • Valid page, but not currently in memory • Invalid (truly invalid page) • When a memory access is attempted: • Valid page physical address, normal access • Invalid with the address in the swap space: page fault interrupt, which will bring in the page. • Invalid, error
Address on swap space Truly invalid
Page Fault • Hardware trap • OS performs the following steps while running other processes • Choose a page (to be replaced) • If the page has been modified, write its contents to disk • Change the corresponding page table entry and TLB entry • Load new page into memory from disk • Update page table entry • Restart the instruction
Challenge: Transparent Page Faults • Transparency • A process should not do anything extra for the page faults (OS and the hardware should do everything). • Why is it hard? • Page fault interrupt is different from a typical interrupt! • Page fault could happen in the middle of an instruction.
More on Transparent Page Faults • An instruction may have side effects • Hardware needs to either unwind or finish off those side effects ld r1, x // page fault
dest begin dest end More on Transparent Page Faults • Hardware designers need to understand virtual memory • Unwinding instructions not always possible • Example: block transfer instruction block trans source begin source end
Challenge: Performance • Let p be the probability of page fault: • Ave. time = (1-p) * memory time + p * page fault time • Memory time: 10ns to 200ns • Page fault time: disk access, context switching, etc • In milliseconds • Assuming: memory time = 200ns, page fault time = 8 millisecond, p = 0.1% • Ave time = 99.9% * 200 + 0.1% * 8000000 = 8200 • Performance with demand paging is 41 times worse than the performance without demand paging!!! • Is it still worth doing? Condition???
Page Replacement Policies (algorithms) • Random replacement: replace a random page + Easy to implement in hardware (e.g., TLB) - May toss out useful pages • First in, first out (FIFO): toss out the oldest page + Fair for all pages - May toss out pages that are heavily used
More Page Replacement Policies • Optimal (MIN): replaces the page that will not be used for the longest time + Optimal - Does not know the future • Least-recently used (LRU): replaces the page that has not been used for the longest time + Good if past use predicts future use - Tricky to implement efficiently
More Page Replacement Policies • Least frequently used (LFU): replaces the page that is used least often • Tracks usage count of pages + Good if past use predicts future use - Difficult to replace pages with high counts
Example • A process makes references to 4 pages: A, B, E, and R • Reference stream: BEERBAREBEAR • Physical memory size: 3 pages
FIFO • 7 page faults
FIFO • 4 compulsory cache misses
MIN • 6 page faults