Download presentation
Presentation is loading. Please wait.
1
Virtual Memory
2
Why do we need VM? Program address space: 0 – 2^32 bytes –4GB of space Physical memory available –256MB or so Multiprogramming systems –Have more than one program running
3
What do we do? Paging –Break up the memory space into equal-sized blocks - pages –Put the program into main memory a page at a time Avoids fragmentation –What kind? What about fragmentation within a page?
4
Address Translation Virtual Addr Physical Addr –If the page is in Physical Memory Otherwise the page is on Disk –Page Fault!
5
How does the translation work? Going from a 4GB address space to a 512MB address space –Virtual Address bit size? –Physical Address bit size? What’s the page size? –4K, 8K, 16K … –Page offset bit size?
6
How does the translation work? II Page Number = Address / Page Size –Page Number = higher n-k bits k = number of bits for the page offset
7
The big picture
8
Page Faults What if the page is not in Physical Memory –How do we know? What do we need to do? –Bring the page into PM –What if PM is full? How do we choose a victim? What happens to the victim?
9
Write Policies Two options: –Write-through –Write-back What are the costs? How do we know when to write? –Do we always write? How does this compare to cache?
10
Caching the Page Table What does it take to access memory? –getting the instruction –what if it’s a load or a store? Translation-lookaside Buffer (TLB) –Small number of entries –Keeps recently accesses VM PM translations Small hit time Small miss rate
12
VM and the Cache Address translations happen first and the cache is oblivious of Virtual Memory
13
Other Stuff Protection with VM –Protection bits are part of the page table –Used to isolate user program data –Can be used for shared memory
14
Page Tables Example 1 –Given 16K pages –How big is the page table? –How do we do address translations?
15
Handling page faults Example 2 –TLB: hit = 95%, 2 cycles –Page Table: hit = 99.999%, 100 cycles –Disk Access: 1,000,000 cycles What’s the average number of cycles per memory access?
16
Translations Example 3 –Bits 0 though 9 represent the page offset –What's the physical address corresponding to the virtual address 2073?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.