16
Virtual Memory

Virtual Memory

Embed Size (px)

DESCRIPTION

Virtual Memory. 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. What do we do?. Paging Break up the memory space into equal-sized blocks - pages - PowerPoint PPT Presentation

Citation preview

Page 1: Virtual Memory

Virtual Memory

Page 2: Virtual Memory

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

Page 3: Virtual Memory

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?

Page 4: Virtual Memory

Address Translation

• Virtual Addr Physical Addr– If the page is in

Physical Memory

• Otherwise the page is on Disk– Page Fault!

Page 5: Virtual Memory

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?

Page 6: Virtual Memory

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

Page 7: Virtual Memory

The big picture

Page 8: Virtual Memory

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?

Page 9: Virtual Memory

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?

Page 10: Virtual Memory

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

translationsSmall hit timeSmall miss rate

Page 11: Virtual Memory
Page 12: Virtual Memory

VM and the Cache

• Address translations happen first and the cache is oblivious of Virtual Memory

Page 13: Virtual Memory

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

Page 14: Virtual Memory

Page Tables

• Example 1– Given 16K pages – How big is the page table?– How do we do address translations?

Page 15: Virtual Memory

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?

Page 16: Virtual Memory

Translations

• Example 3– Bits 0 though 9 represent the page offset – What's the physical address corresponding

to the virtual address 2073?