Virtual Memory (VM) § Overview and Mo�Va�On § VM As Tool for Caching § VM As Tool for Memory Management § VM As Tool for Memory Protec�On § Address Transla�On

Virtual Memory (VM) § Overview and Mo�Va�On § VM As Tool for Caching § VM As Tool for Memory Management § VM As Tool for Memory Protec�On § Address Transla�On

University of Washington ¢ Virtual memory (VM) § Overview and mo-vaon § VM as tool for caching § VM as tool for memory management § VM as tool for memory protec-on § Address translaon 1 University of Washington Processes ¢ Defini=on: A process is an instance of a running program § One of the most important ideas in computer science § Not the same as “program” or “processor” ¢ Process provides each program with two key abstrac=ons: § Logical control flow § Each program seems to have exclusive use of the CPU § Private virtual address space § Each program seems to have exclusive use of main memory ¢ How are these Illusions maintained? § Process execu-ons interleaved (mul--tasking) § Address spaces managed by virtual memory system 2 University of Washington Concurrent Processes ¢ Two processes run concurrently (are concurrent) if their instruc=on execuons (flows) overlap in =me ¢ Otherwise, they are sequen.al ¢ Examples: § Concurrent: A & B, A & C § Sequen-al: B & C Process A Process B Process C me 3 University of Washington User View of Concurrent Processes ¢ Control flows for concurrent processes are physically disjoint in =me ¢ However, we can think of concurrent processes as execung in parallel (only an illusion?) Process A Process B Process C me 4 University of Washington Context Switching ¢ Processes are managed by a shared chunk of OS code called the kernel § Important: the kernel is not a separate process, but rather runs as part of a user process ¢ Control flow passes from one process to another via a context switch… (how?) Process A Process B user code kernel code context switch me user code kernel code context switch user code 5 University of Washington Virtual Memory (Previous Lectures) ¢ Programs refer to virtual memory addresses 00······0 § movl (%ecx),%eax § Conceptually very large array of bytes § Each byte has its own address § Actually implemented with hierarchy of different memory types § System provides address space private to par-cular “process” ¢ Alloca=on: Compiler and run-=me system § Where different program objects should be stored § All allocaon within single virtual address space ¢ But why virtual memory? FF······F ¢ Why not physical memory? 6 University of Washington Problem 1: How Does Everything Fit? 64-bit addresses: Physical main memory: 16 Exabyte Few Gigabytes ? And there are many processes …. 7 University of Washington Problem 2: Memory Management Physical main memory Process 1 stack Process 2 heap What goes Process 3 x .text where? … .data Process n … 8 University of Washington Problem 3: How To Protect Physical main memory Process i Process j 9 University of Washington Problem 3: How To Protect Physical main memory Process i Process j Problem 4: How To Share? Physical main memory Process i Process j 10 University of Washington Soluon: Level Of Indirec=on Virtual memory Process 1 Physical memory mapping Virtual memory Process n ¢ Each process gets its own private memory space ¢ Solves the previous problems 11 University of Washington Address Spaces ¢ Virtual address space: Set of N = 2n virtual addresses {0, 1, 2, 3, …, N-1} ¢ Physical address space: Set of M = 2m physical addresses ( n >> m ) {0, 1, 2, 3, …, M-1} ¢ Every byte in main memory: one physical address, one (or more) virtual addresses 12 University of Washington A System Using Physical Addressing Main memory 0: 1: 2: Physical address (PA) 3: CPU 4: 5: 6: 7: 8: ... M-1: Data word ¢ Used in “simple” systems like embedded microcontrollers in devices like cars, elevators, and digital picture frames 13 University of Washington A System Using Virtual Addressing Main memory 0: CPU Chip 1: 2: Virtual address Physical address (VA) (PA) 3: CPU MMU 4: 5: 6: 7: 8: ... M-1: Data word ¢ Used in all modern desktops, laptops, worksta=ons ¢ One of the great ideas in computer science 14 University of Washington Why Virtual Memory (VM)? ¢ Efficient use of limited main memory (RAM) § Use RAM as a cache for the parts of a virtual address space § some non-cached parts stored on disk § some (unallocated) non-cached parts stored nowhere § Keep only ac-ve areas of virtual address space in memory § transfer data back and forth as needed ¢ Simplifies memory management for programmers § Each process gets the same full, private linear address space ¢ Isolates address spaces § One process can’t interfere with another’s memory § because they operate in different address spaces § User process cannot access privileged informaon § different sec-ons of address spaces have different permissions 15 University of Washington VM as a Tool for Caching ¢ Virtual memory: array of N = 2n conguous bytes § think of the array (allocated part) as being stored on disk ¢ Physical main memory (DRAM) = cache for allocated virtual memory ¢ Blocks are called pages; size = 2p Virtual memory Physical memory 0 VP 0 Unallocated 0 VP 1 Cached Empty PP 0 Uncached PP 1 Unallocated Empty Cached Uncached Empty Disk Cached PP 2m-p-1 2m-1 n-p Uncached VP 2 -1 2n-1 Virtual pages (VP's) Physical pages (PP's) stored on disk cached in DRAM 16 University of Washington Memory Hierarchy: Core 2 Duo Not drawn to scale L1/L2 cache: 64 B blocks ~4 MB ~4 GB ~500 GB L1 I-cache L2 Main 32 KB unified cache Memory L1 CPU Reg D-cache Throughput: 16 B/cycle 8 B/cycle 2 B/cycle 1 B/30 cycles Latency: 3 cycles 14 cycles 100 cycles millions Disk Miss penalty (latency): 30x Miss penalty (latency): 10,000x 17 University of Washington DRAM Cache Organiza=on ¢ DRAM cache organiza=on driven by the enormous miss penalty § DRAM is about 10x slower than SRAM § Disk is about 10,000x slower than DRAM § For first byte, faster for next byte ¢ Consequences? § Locality? § Block size? § Associavity? § Write-through or write-back? 18 University of Washington DRAM Cache Organiza=on ¢ DRAM cache organiza=on driven by the enormous miss penalty § DRAM is about 10x slower than SRAM § Disk is about 10,000x slower than DRAM § For first byte, faster for next byte ¢ Consequences § Large page (block) size: typically 4-8 KB, some-mes 4 MB § Fully associave § Any VP can be placed in any PP § Requires a “large” mapping func-on – different from CPU caches § Highly sophis-cated, expensive replacement algorithms § Too complicated and open-ended to be implemented in hardware § Write-back rather than write-through 19 University of Washington A System Using Virtual Addressing Main memory 0: CPU Chip 1: 2: Virtual address Physical address (VA) (PA) 3: CPU MMU 4: 5: 6: 7: 8: ... M-1: Data word How would you do the VA -> PA transla8on? 20 University of Washington Indirection ¢ “Any problem in CS can be solved by adding a level of indirection” ¢ Without Indirection Name Thing ¢ With Indirection Name Thing Thing 21 University of Washington Indirection ¢ Indirection: Indirection is the ability to reference something using a name, reference, or container instead the value itself. A flexible mapping between a name and a thing allows changing the thing without notifying holders of the name. ¢ Without Indirection Name Thing ¢ With Indirection Name Thing Thing ¢ Examples: Pointers, Domain Name Service (DNS) name->IP address, phone system (e.g., cell phone number portability), snail mail (e.g., mail forwarding), 911 (routed to local office), DHCP, call centers that route calls to available operators, etc. 22 University of Washington Mapping Physical Memory A virtual address can be mapped to either physical memory or disk. VirtualAddress Disk 23 University of Washington Page tables 24 University of Washington Address Transla=on: Page Tables ¢ A page table is an array of page table entries (PTEs) that maps virtual pages to physical pages. Here: 8 VPs Physical memory Physical page (DRAM) number or VP 1 Valid disk address PP 0 VP 2 PTE 0 null 0 VP 7 1 VP 4 PP 3 1 0 1 0 null Virtual memory (disk) 0 PTE 7 1 VP 1 Memory resident VP 2 page table (DRAM) VP 3 VP 4 How many page tables in the system? VP 6 VP 7 25 University of Washington Address Transla=on With a Page Table Virtual address Page table base register Virtual page number (VPN) Virtual page offset (VPO) (PTBR) Page table address Page table for process Valid Physical page number (PPN) Valid bit = 0: page not in memory (page fault) Physical page number (PPN) Physical page offset (PPO) Physical address 26 University of Washington Page Hit ¢ Page hit: reference to VM word that is in physical memory Physical memory Virtual address Physical page (DRAM) number or VP 1 Valid disk address PP 0 VP 2 PTE 0 null 0 VP 7 1 VP 4 PP 3 1 0 1 0 null Virtual memory 0 (disk) PTE 7 1 VP 1 Memory resident VP 2 page table (DRAM) VP 3 VP 4 VP 6 VP 7 27 University of Washington Page Miss ¢ Page miss: reference to VM word that is not in physical memory (shOOt!) Physical memory Physical page (DRAM) Virtual address number or VP 1 Valid disk address PP 0 VP 2 PTE 0 null 0 VP 7 1 VP 4 PP 3 1 0 1 0 null Virtual memory 0 (disk) PTE 7 1 VP 1 Memory resident VP 2 page table (DRAM) VP 3 VP 4 VP 6 VP 7 28 University of Washington Then what? 29 University of Washington Fault Example: Page Fault int a[1000]; ¢ User writes to memory locaon main () { ¢ That por-on (page) of user’s memory a[500] = 13; is currently on disk } 80483b7: c7 05 10 9d 04 08 0d movl $0xd,0x8049d10 User Process OS excep8on: page fault movl Create page and returns load into memory ¢ Page handler must load page into physical memory ¢ Returns to faul-ng instruc-on ¢ Successful on second try 30 University of Washington Handling Page Fault ¢ Page miss causes page fault (an excep-on) Physical memory Physical page (DRAM) Virtual address number or VP 1 Valid disk address PP 0 VP 2 PTE 0 null

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    57 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us