VM Design and Tradeoffs
|
|
- Buddy French
- 5 years ago
- Views:
Transcription
1 VM Design and Tradeoffs or: Why bother having VM statistics? CS A3 Section 1 cs161@eecs.harvard.edu Max Wang max.wang@college
2 Synchronization
3 Synchronization How do you synch access to a table entry?
4 Synchronization Option 1
5 Synchronization Option 1 Coremap and addrspace locks?
6 Synchronization Option 1 Coremap and addrspace locks? Too much contention!
7 Synchronization Option 1 Coremap and addrspace locks? Too much contention! VM is everywhere needs to be fast.
8 Synchronization Option 2
9 Synchronization Option 2 Per-CME, per-pte spinlock?
10 Synchronization Option 2 Per-CME, per-pte spinlock? Costs an extra word per table entry.
11 Synchronization Option 2 Per-CME, per-pte spinlock? Costs an extra word per table entry. Important to keep memory footprint of memory bookkeeping structures low.
12 Synchronization Option 3
13 Synchronization Option 3 Per-CPU, per-pte... spinbit? Or SPL?
14 Synchronization Option 3 Per-CPU, per-pte... spinbit? Or SPL? Can t hold these across disk accesses.
15 Synchronization Option 3 Per-CPU, per-pte... spinbit? Or SPL? Can t hold these across disk accesses. Spinlocks are for small critical sections.
16 Synchronization Option 3 Per-CPU, per-pte... spinbit? Or SPL? Can t hold these across disk accesses. Spinlocks are for small critical sections. SPL might drop I/O interrupts...
17 Synchronization Option 4
18 Synchronization Option 4 Busy bits! (aka, pin bits)
19 Synchronization Option 4 Busy bits! (aka, pin bits) Coarse spinlock (e.g., for entire coremap)
20 Synchronization Option 4 Busy bits! (aka, pin bits) Coarse spinlock (e.g., for entire coremap) Single bit marking whether an entry is busy.
21 Synchronization Option 4 Busy bits! (aka, pin bits) Coarse spinlock (e.g., for entire coremap) Single bit marking whether an entry is busy. Spinlock critical section is just test/set.
22 Synchronization
23 Synchronization Do you need addrspace locks?
24 Synchronization Do you need addrspace locks? Do you need PTE busy bits?
25 Synchronization Do you need addrspace locks? Do you need PTE busy bits? How many CMEs and/or PTEs will you need at any given time?
26 Synchronization Do you need addrspace locks? Do you need PTE busy bits? How many CMEs and/or PTEs will you need at any given time? Fix an ordering to prevent deadlock.
27 Table entries
28 Coremap Mapping from PPN to VPN.
29 Coremap Mapping from PPN to VPN. Right?
30 Coremap Mapping from PPN to VPN. Right? Mapping from PPN to addrspace + VPN.
31 Coremap Mapping from PPN to VPN. Right? Mapping from PPN to addrspace + VPN. Mapping from PPN to PTE.
32 CMEs A pointer, and maybe a vaddr_t.
33 CMEs A pointer, and maybe a vaddr_t. What else do you need?
34 CMEs A pointer, and maybe a vaddr_t. What else do you need? Busy bit
35 CMEs A pointer, and maybe a vaddr_t. What else do you need? Busy bit Kernel bit (i.e., do-not-evict bit)
36 CMEs A pointer, and maybe a vaddr_t. What else do you need? Busy bit Kernel bit (i.e., do-not-evict bit) Dirty bit
37 CMEs A pointer, and maybe a vaddr_t. What else do you need? Busy bit Kernel bit (i.e., do-not-evict bit) Dirty bit Use bit
38 PTEs Maps to a coremap entry via PPN.
39 PTEs Maps to a coremap entry via PPN. What else do you need?
40 PTEs Maps to a coremap entry via PPN. What else do you need? Valid bit or marker
41 PTEs Maps to a coremap entry via PPN. What else do you need? Valid bit or marker Backing store block index
42 PTEs Maps to a coremap entry via PPN. What else do you need? Valid bit or marker Backing store block index Busy bit? depends on your synch
43 CME or PTE? Where should you keep your bits?
44 CME or PTE? Where should you keep your bits? Only 2 bits in CMEs which are a pointer.
45 CME or PTE? Where should you keep your bits? Only 2 bits in CMEs which are a pointer. You can play some games with the PPN and BSI fields.
46 CME or PTE? What s the tradeoff?
47 CME or PTE? What s the tradeoff? Making CMEs smaller optimizes for low memory usage (#CME > #PTE).
48 CME or PTE? What s the tradeoff? Making CMEs smaller optimizes for low memory usage (#CME > #PTE). Making PTEs smaller optimizes for high memory usage (#CME < #PTE).
49 Bootstrapping
50 Bootstrapping When does VM bootstrapping need to happen?
51 Bootstrapping When does VM bootstrapping need to happen? Where do you put the coremap?
52 Bootstrapping When does VM bootstrapping need to happen? Where do you put the coremap? Make sure you mark it in the coremap!
53 Bootstrapping The coremap ought to be staticallyallocated, unlike PTEs. Why?
54 Bootstrapping The coremap ought to be staticallyallocated, unlike PTEs. Why? You want to extend the coremap. Allocate some memory.
55 Bootstrapping The coremap ought to be staticallyallocated, unlike PTEs. Why? You want to extend the coremap. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory.
56 Bootstrapping The coremap ought to be staticallyallocated, unlike PTEs. Why? You want to extend the coremap. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory.
57 Bootstrapping The coremap ought to be staticallyallocated, unlike PTEs. Why? You want to extend the coremap. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory.
58 Bootstrapping The coremap ought to be staticallyallocated, unlike PTEs. Why? You want to extend the coremap. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory. Need to extend the coremap to allocate memory. Allocate some memory.
59 Page tables
60 PTEs What is at index i of your page table?
61 PTEs What is at index i of your page table? A page table entry?
62 PTEs What is at index i of your page table? A page table entry? A pointer to a page table entry?
63 PTEs What is at index i of your page table? A page table entry? A pointer to a page table entry? What if you wanted copy-on-write?
64 Single-level page table Option 1
65 Single-level page table Option 1 20 bytes for VPN and PPN
66 Single-level page table Option 1 20 bytes for VPN and PPN So, 2 20 entries.
67 Single-level page table Option 1 20 bytes for VPN and PPN So, 2 20 entries. Uh.
68 Single-level page table Option 1 20 bytes for VPN and PPN So, 2 20 entries. Uh. That s 1 MB per address space.
69 Multi-level page table Option 2
70 Multi-level page table Option 2 10 bytes for each layer.
71 Multi-level page table Option 2 10 bytes for each layer. Or some other division.
72 Multi-level page table Option 2 10 bytes for each layer. Or some other division bytes = 1 KB per page directory
73 Multi-level page table Option 2 10 bytes for each layer. Or some other division bytes = 1 KB per page directory Simple and efficient
74 Segmented page table Option 3
75 Segmented page table Option 3 Page table per ELF-defined segment
76 Segmented page table Option 3 Page table per ELF-defined segment e.g., code, data, bss
77 Segmented page table Option 3 Page table per ELF-defined segment e.g., code, data, bss Also for the stack and heap
78 Segmented page table Option 3 Page table per ELF-defined segment e.g., code, data, bss Also for the stack and heap More complex, maybe more performant?
79 Permissions
80 Segments Still need a notion of segments, even for multi-level page tables.
81 Segments Still need a notion of segments, even for multi-level page tables. ELF binary loading
82 Segments Still need a notion of segments, even for multi-level page tables. ELF binary loading Permissions enforcement
83 Permissions Permissions [rwx] are per-segment.
84 Permissions Permissions [rwx] are per-segment. Tradeoff for keeping perm bits in PTEs?
85 Permissions Permissions [rwx] are per-segment. Tradeoff for keeping perm bits in PTEs? What happens when you load the [rx] code segment?
86 and NRU
87 Use bit When do you set the use bit?
88 Use bit When do you set the use bit? TLB doesn t do it for you.
89 Use bit When do you set the use bit? TLB doesn t do it for you. Need to wait for a TLB miss!
90 Use bit What about a highly-referenced page?
91 Use bit What about a highly-referenced page? Might be TLB resident for an entire clock sweep.
92 Use bit What about a highly-referenced page? Might be TLB resident for an entire clock sweep. Will have a 0 use bit if no TLB miss!
93 Use bit What about a highly-referenced page? Might be TLB resident for an entire clock sweep. Will have a 0 use bit if no TLB miss! How do we deal with this?
94 Use bit Option 1
95 Use bit Option 1 Evict TLB when clock hand unsets use bit.
96 Use bit Option 1 Evict TLB when clock hand unsets use bit. Absolutely not!
97 Use bit Option 1 Evict TLB when clock hand unsets use bit. Absolutely not! This kills the TLB s effectiveness as a cache.
98 Use bit Option 2
99 Use bit Option 2 Check if the page is in the TLB.
100 Use bit Option 2 Check if the page is in the TLB. Can use tlb_probe().
101 Use bit Option 2 Check if the page is in the TLB. Can use tlb_probe(). Can keep a TLB bit in each CME.
102 Use bit Option 3
103 Use bit Option 3 Hope for the best.
104 Use bit Option 3 Hope for the best. With large memory and random TLB eviction, probably works fine!
105 Kernel memory allocation
106 alloc_kpages() Need to get physical pages for kmalloc().
107 alloc_kpages() Need to get physical pages for kmalloc(). Share code with VM fault path!
108 alloc_kpages() Need to get physical pages for kmalloc(). Share code with VM fault path! How do you allocate contiguous pages in physical memory?
109 alloc_kpages() Option 1
110 alloc_kpages() Option 1 Just try to find k free pages.
111 alloc_kpages() Option 1 Just try to find k free pages. May need up to 16 for execv.
112 alloc_kpages() Option 1 Just try to find k free pages. May need up to 16 for execv. Can evict user pages, but not kernel pages.
113 alloc_kpages() Option 1 Just try to find k free pages. May need up to 16 for execv. Can evict user pages, but not kernel pages. External fragmentation D:
114 alloc_kpages() Option 2
115 alloc_kpages() Option 2 Make use of KSEG2.
116 alloc_kpages() Option 2 Make use of KSEG2. Mappable memory!= swappable memory
117 alloc_kpages() Option 2 Make use of KSEG2. Mappable memory!= swappable memory Be sure to avoid recursion!
118 alloc_kpages() Option 2 Make use of KSEG2. Mappable memory!= swappable memory Be sure to avoid recursion! Use sparingly, e.g., kmalloc2().
119 alloc_kpages() Option 3
120 alloc_kpages() Option 3 Never make contiguous allocations.
121 alloc_kpages() Option 3 Never make contiguous allocations. Rewrite execv() to use page-sized buffers.
122 alloc_kpages() Option 3 Never make contiguous allocations. Rewrite execv() to use page-sized buffers. Easier to write execv() than VM.
123 TLB dirty bit
124 TLB dirty bit aka, write-protect bit
125 TLB dirty bit aka, write-protect bit What does it do?
126 TLB dirty bit aka, write-protect bit What does it do? Faults with TLB_READONLY
127 TLB dirty bit aka, write-protect bit What does it do? Faults with TLB_READONLY What do we do with it?
128 Protection Write-protect read-only pages
129 Protection Write-protect read-only pages Kill the process if it tries to write w/o permission.
130 Dirtying pages Make the TLB notify you when you first write to a page.
131 Dirtying pages Make the TLB notify you when you first write to a page. Unset dirty bit of paged-in pages.
132 Dirtying pages Make the TLB notify you when you first write to a page. Unset dirty bit of paged-in pages. Avoid unnecessary writeback.
133 TLB shootdown
134 Thread switch Need to shoot down your entire TLB on thread switch.
135 Thread switch Need to shoot down your entire TLB on thread switch. your == current CPU
136 Eviction Need to shoot down TLB entries for evicted pages.
137 Eviction Need to shoot down TLB entries for evicted pages. How do you determine which TLB?
138 Eviction Need to shoot down TLB entries for evicted pages. How do you determine which TLB? Pointer to address space.
139 Eviction Need to shoot down TLB entries for evicted pages. How do you determine which TLB? Pointer to address space. Broadcast to all CPUs.
140 Design considerations
141 VM statistics
142 VM statistics Lots of design decisions
143 VM statistics Lots of design decisions You re not limited to what was presented!
144 VM statistics Lots of design decisions You re not limited to what was presented! You don t have to test multiple options.
145 VM statistics Lots of design decisions You re not limited to what was presented! You don t have to test multiple options. You should instrument support for evaluating your choices against others.
146 Sharing code
147 Sharing code Two paths for most virtual memory operations:
148 Sharing code Two paths for most virtual memory operations: TLB miss from userland
149 Sharing code Two paths for most virtual memory operations: TLB miss from userland Kernel memory allocation
150 Sharing code Two paths for most virtual memory operations: TLB miss from userland Kernel memory allocation Share as much code as possible!
151 Building interfaces
152 Building interfaces Write composable, unital, modular primitives.
153 Building interfaces Write composable, unital, modular primitives. Build higher- and higher-level interfaces.
154 Building interfaces Write composable, unital, modular primitives. Build higher- and higher-level interfaces. e.g., load page > get free page > evict > pin/busy a CME
155 Building interfaces Write composable, unital, modular primitives. Build higher- and higher-level interfaces. e.g., load page > get free page > evict > pin/busy a CME Write low-level interfaces around all data structures.
156 Machine dependency
157 Machine dependency Let machine-dependency abstraction barrier guide your design!
158 Machine dependency Let machine-dependency abstraction barrier guide your design! Format of your page table is machine dependent.
159 Machine dependency Let machine-dependency abstraction barrier guide your design! Format of your page table is machine dependent. Eviction algorithm and backing store?
160 Getting started
161 Start early
162 Start early. Start early
163 Start early Start early. Don t start late.
164 Start early Start early. Don t start late. Ought to have started by now.
165 Start early Start early. Don t start late. Ought to have started by now. Better to sprint now than to stress later.
166 How to start
167 How to start Write your data structures and basic interfaces.
168 How to start Write your data structures and basic interfaces. Make a skeletal fault codepath.
169 How to start Write your data structures and basic interfaces. Make a skeletal fault codepath. Fill in the fault path step-by-step, functionby-function.
170 How to start Write your data structures and basic interfaces. Make a skeletal fault codepath. Fill in the fault path step-by-step, functionby-function. Ignore paging at first; just use an enormous RAM size.
Virtual Memory 1. Virtual Memory
Virtual Memory 1 Virtual Memory key concepts virtual memory, physical memory, address translation, MMU, TLB, relocation, paging, segmentation, executable file, swapping, page fault, locality, page replacement
More informationVirtual Memory 1. Virtual Memory
Virtual Memory 1 Virtual Memory key concepts virtual memory, physical memory, address translation, MMU, TLB, relocation, paging, segmentation, executable file, swapping, page fault, locality, page replacement
More informationPROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18
PROCESS VIRTUAL MEMORY CS124 Operating Systems Winter 2015-2016, Lecture 18 2 Programs and Memory Programs perform many interactions with memory Accessing variables stored at specific memory locations
More informationVirtual Memory Management
Virtual Memory Management CS-3013 Operating Systems Hugh C. Lauer (Slides include materials from Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum and from Operating
More informationMemory Management. Disclaimer: some slides are adopted from book authors slides with permission 1
Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 CPU management Roadmap Process, thread, synchronization, scheduling Memory management Virtual memory Disk
More informationLearning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.
Virtual Memory Learning Outcomes An understanding of page-based virtual memory in depth. Including the R000 s support for virtual memory. Memory Management Unit (or TLB) The position and function of the
More informationAddress spaces and memory management
Address spaces and memory management Review of processes Process = one or more threads in an address space Thread = stream of executing instructions Address space = memory space used by threads Address
More informationCOSC3330 Computer Architecture Lecture 20. Virtual Memory
COSC3330 Computer Architecture Lecture 20. Virtual Memory Instructor: Weidong Shi (Larry), PhD Computer Science Department University of Houston Virtual Memory Topics Reducing Cache Miss Penalty (#2) Use
More informationLearning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.
Virtual Memory 1 Learning Outcomes An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory. 2 Memory Management Unit (or TLB) The position and function
More informationvirtual memory. March 23, Levels in Memory Hierarchy. DRAM vs. SRAM as a Cache. Page 1. Motivation #1: DRAM a Cache for Disk
5-23 March 23, 2 Topics Motivations for VM Address translation Accelerating address translation with TLBs Pentium II/III system Motivation #: DRAM a Cache for The full address space is quite large: 32-bit
More informationCarnegie Mellon. Bryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition
Carnegie Mellon Virtual Memory: Concepts 5-23: Introduction to Computer Systems 7 th Lecture, October 24, 27 Instructor: Randy Bryant 2 Hmmm, How Does This Work?! Process Process 2 Process n Solution:
More informationVirtual Memory Oct. 29, 2002
5-23 The course that gives CMU its Zip! Virtual Memory Oct. 29, 22 Topics Motivations for VM Address translation Accelerating translation with TLBs class9.ppt Motivations for Virtual Memory Use Physical
More informationMemory Management. Disclaimer: some slides are adopted from book authors slides with permission 1
Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 Recap Paged MMU: Two main Issues Translation speed can be slow TLB Table size is big Multi-level page table
More informationMemory Allocation. Copyright : University of Illinois CS 241 Staff 1
Memory Allocation Copyright : University of Illinois CS 241 Staff 1 Recap: Virtual Addresses A virtual address is a memory address that a process uses to access its own memory Virtual address actual physical
More informationComputer Systems. Virtual Memory. Han, Hwansoo
Computer Systems Virtual Memory Han, Hwansoo A System Using Physical Addressing CPU Physical address (PA) 4 Main memory : : 2: 3: 4: 5: 6: 7: 8:... M-: Data word Used in simple systems like embedded microcontrollers
More informationCS399 New Beginnings. Jonathan Walpole
CS399 New Beginnings Jonathan Walpole Memory Management Memory Management Memory a linear array of bytes - Holds O.S. and programs (processes) - Each cell (byte) is named by a unique memory address Recall,
More informationVirtual Memory. Motivations for VM Address translation Accelerating translation with TLBs
Virtual Memory Today Motivations for VM Address translation Accelerating translation with TLBs Fabián Chris E. Bustamante, Riesbeck, Fall Spring 2007 2007 A system with physical memory only Addresses generated
More informationVirtual Memory Paging
Virtual Memory Paging An important task of a virtual-memory system is to relocate pages from physical memory out to disk Early UNIX systems swapped out the entire process at once Modern UNIX systems relay
More informationPaging. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Paging Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics Virtual memory implementation Paging Segmentation 2 Paging (1) Paging Permits
More informationCSE 153 Design of Operating Systems
CSE 53 Design of Operating Systems Winter 28 Lecture 6: Paging/Virtual Memory () Some slides modified from originals by Dave O hallaron Today Address spaces VM as a tool for caching VM as a tool for memory
More informationProcesses and Virtual Memory Concepts
Processes and Virtual Memory Concepts Brad Karp UCL Computer Science CS 37 8 th February 28 (lecture notes derived from material from Phil Gibbons, Dave O Hallaron, and Randy Bryant) Today Processes Virtual
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 24
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2018 Lecture 24 LAST TIME Extended virtual memory concept to be a cache of memory stored on disk DRAM becomes L4 cache of data stored on L5 disk Extend page
More informationAdministrivia. Lab 1 due Friday 12pm. We give will give short extensions to groups that run into trouble. But us:
Administrivia Lab 1 due Friday 12pm. We give will give short extensions to groups that run into trouble. But email us: - How much is done & left? - How much longer do you need? Attend section Friday at
More informationCS 31: Intro to Systems Virtual Memory. Kevin Webb Swarthmore College November 15, 2018
CS 31: Intro to Systems Virtual Memory Kevin Webb Swarthmore College November 15, 2018 Reading Quiz Memory Abstraction goal: make every process think it has the same memory layout. MUCH simpler for compiler
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 23
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 205 Lecture 23 LAST TIME: VIRTUAL MEMORY! Began to focus on how to virtualize memory! Instead of directly addressing physical memory, introduce a level of
More informationVirtual Memory. Kevin Webb Swarthmore College March 8, 2018
irtual Memory Kevin Webb Swarthmore College March 8, 2018 Today s Goals Describe the mechanisms behind address translation. Analyze the performance of address translation alternatives. Explore page replacement
More informationVirtual Memory II CSE 351 Spring
Virtual Memory II CSE 351 Spring 2018 https://xkcd.com/1495/ Virtual Memory (VM) Overview and motivation VM as a tool for caching Address translation VM as a tool for memory management VM as a tool for
More informationCS 261 Fall Mike Lam, Professor. Virtual Memory
CS 261 Fall 2016 Mike Lam, Professor Virtual Memory Topics Operating systems Address spaces Virtual memory Address translation Memory allocation Lingering questions What happens when you call malloc()?
More informationCSC C69: OPERATING SYSTEMS. Tutorial Thursday, March 28, 2013 Ioan Stefanovici
CSC C69: OPERATING SYSTEMS Tutorial Thursday, March 28, 2013 Ioan Stefanovici (ioan@cs.toronto.edu) PAGING AND SWAPPING In lecture: address translation in a static partitioning scheme known as paging Main
More informationMemory Management. Disclaimer: some slides are adopted from book authors slides with permission 1
Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 CPU management Roadmap Process, thread, synchronization, scheduling Memory management Virtual memory Disk
More informationMemory Hierarchy Requirements. Three Advantages of Virtual Memory
CS61C L12 Virtual (1) CS61CL : Machine Structures Lecture #12 Virtual 2009-08-03 Jeremy Huddleston Review!! Cache design choices: "! Size of cache: speed v. capacity "! size (i.e., cache aspect ratio)
More informationVirtual Memory Virtual memory first used to relive programmers from the burden of managing overlays.
CSE420 Virtual Memory Prof. Mokhtar Aboelaze York University Based on Slides by Prof. L. Bhuyan (UCR) Prof. M. Shaaban (RIT) Virtual Memory Virtual memory first used to relive programmers from the burden
More informationPaging. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
Paging Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu SSE3044: Operating Systems, Fall 2016, Jinkyu Jeong (jinkyu@skku.edu) Paging Allows the physical
More information@2010 Badri Computer Architecture Assembly II. Virtual Memory. Topics (Chapter 9) Motivations for VM Address translation
Virtual Memory Topics (Chapter 9) Motivations for VM Address translation 1 Motivations for Virtual Memory Use Physical DRAM as a Cache for the Disk Address space of a process can exceed physical memory
More informationVirtual Memory. Computer Systems Principles
Virtual Memory Computer Systems Principles Objectives Virtual Memory What is it? How does it work? Virtual Memory Address Translation /7/25 CMPSCI 23 - Computer Systems Principles 2 Problem Lots of executing
More informationCSE 120. Translation Lookaside Buffer (TLB) Implemented in Hardware. July 18, Day 5 Memory. Instructor: Neil Rhodes. Software TLB Management
CSE 120 July 18, 2006 Day 5 Memory Instructor: Neil Rhodes Translation Lookaside Buffer (TLB) Implemented in Hardware Cache to map virtual page numbers to page frame Associative memory: HW looks up in
More informationThis Unit: Main Memory. Virtual Memory. Virtual Memory. Other Uses of Virtual Memory
This Unit: Virtual Application OS Compiler Firmware I/O Digital Circuits Gates & Transistors hierarchy review DRAM technology A few more transistors Organization: two level addressing Building a memory
More informationChapter 8. Virtual Memory
Operating System Chapter 8. Virtual Memory Lynn Choi School of Electrical Engineering Motivated by Memory Hierarchy Principles of Locality Speed vs. size vs. cost tradeoff Locality principle Spatial Locality:
More informationPaging. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Paging Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Paging Allows the physical address space of a process to be noncontiguous Divide virtual
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 23
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 208 Lecture 23 LAST TIME: VIRTUAL MEMORY Began to focus on how to virtualize memory Instead of directly addressing physical memory, introduce a level of indirection
More informationPage Tables. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
Page Tables Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu EEE3052: Introduction to Operating Systems, Fall 2017, Jinkyu Jeong (jinkyu@skku.edu)
More informationMemory Management Topics. CS 537 Lecture 11 Memory. Virtualizing Resources
Memory Management Topics CS 537 Lecture Memory Michael Swift Goals of memory management convenient abstraction for programming isolation between processes allocate scarce memory resources between competing
More informationMemory Management. Goals of Memory Management. Mechanism. Policies
Memory Management Design, Spring 2011 Department of Computer Science Rutgers Sakai: 01:198:416 Sp11 (https://sakai.rutgers.edu) Memory Management Goals of Memory Management Convenient abstraction for programming
More informationVM as a cache for disk
Virtualization Virtual Memory Computer Systems Organization (Spring 2017) CSCI-UA 201, Section 3 Instructor: Joanna Klukowska Virtualization of a resource: presenting a user with a different view of that
More informationOperating Systems Design Exam 2 Review: Spring 2011
Operating Systems Design Exam 2 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 CPU utilization tends to be lower when: a. There are more processes in memory. b. There are fewer processes
More informationECE 571 Advanced Microprocessor-Based Design Lecture 12
ECE 571 Advanced Microprocessor-Based Design Lecture 12 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 1 March 2018 HW#6 will be posted Project will be coming up Announcements
More informationCS 416: Opera-ng Systems Design March 23, 2012
Question 1 Operating Systems Design Exam 2 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu CPU utilization tends to be lower when: a. There are more processes in memory. b. There are fewer processes
More informationMemory Management. Disclaimer: some slides are adopted from book authors slides with permission 1
Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 Demand paging Concepts to Learn 2 Abstraction Virtual Memory (VM) 4GB linear address space for each process
More informationRecall from Tuesday. Our solution to fragmentation is to split up a process s address space into smaller chunks. Physical Memory OS.
Paging 11/10/16 Recall from Tuesday Our solution to fragmentation is to split up a process s address space into smaller chunks. Physical Memory OS Process 3 Process 3 OS: Place Process 3 Process 1 Process
More informationCS 4284 Systems Capstone. Virtual Memory Page Tables Godmar Back
CS 4284 Systems Capstone Virtual Memory Page Tables Godmar Back Virtual Memory Virtual Memory Is not a kind of memory Is a technique that combines one or more of the following concepts: Address translation
More informationRecall: Address Space Map. 13: Memory Management. Let s be reasonable. Processes Address Space. Send it to disk. Freeing up System Memory
Recall: Address Space Map 13: Memory Management Biggest Virtual Address Stack (Space for local variables etc. For each nested procedure call) Sometimes Reserved for OS Stack Pointer Last Modified: 6/21/2004
More informationECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective. Part I: Operating system overview: Memory Management
ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part I: Operating system overview: Memory Management 1 Hardware background The role of primary memory Program
More informationvirtual memory Page 1 CSE 361S Disk Disk
CSE 36S Motivations for Use DRAM a for the Address space of a process can exceed physical memory size Sum of address spaces of multiple processes can exceed physical memory Simplify Management 2 Multiple
More informationThe Beast We Call A3. CS 161: Lecture 10 3/7/17
The Beast We Call A3 CS 161: Lecture 10 3/7/17 But first... Unconfusing Three Confusions Where does the kernel live? Does every kind of processor use a twolevel page table? Does everything have an address?
More information198:231 Intro to Computer Organization. 198:231 Introduction to Computer Organization Lecture 14
98:23 Intro to Computer Organization Lecture 4 Virtual Memory 98:23 Introduction to Computer Organization Lecture 4 Instructor: Nicole Hynes nicole.hynes@rutgers.edu Credits: Several slides courtesy of
More informationVirtual Memory: Concepts
Virtual Memory: Concepts 5-23: Introduction to Computer Systems 7 th Lecture, March 2, 27 Instructors: Franz Franchetti & Seth Copen Goldstein Hmmm, How Does This Work?! Process Process 2 Process n Solution:
More informationPaging. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
Paging Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics Virtual memory implementation Paging Segmentation 2 Paging (1) Paging Permits
More informationVirtual Memory, Address Translation
Memory Hierarchy Virtual Memory, Address Translation Slides contents from: Hennessy & Patterson, 5ed Appendix B and Chapter 2 David Wentzlaff, ELE 475 Computer Architecture MJT, High Performance Computing,
More informationVirtual memory Paging
Virtual memory Paging M1 MOSIG Operating System Design Renaud Lachaize Acknowledgments Many ideas and slides in these lectures were inspired by or even borrowed from the work of others: Arnaud Legrand,
More informationCPS104 Computer Organization and Programming Lecture 16: Virtual Memory. Robert Wagner
CPS104 Computer Organization and Programming Lecture 16: Virtual Memory Robert Wagner cps 104 VM.1 RW Fall 2000 Outline of Today s Lecture Virtual Memory. Paged virtual memory. Virtual to Physical translation:
More informationVirtual to physical address translation
Virtual to physical address translation Virtual memory with paging Page table per process Page table entry includes present bit frame number modify bit flags for protection and sharing. Page tables can
More informationSimple idea 1: load-time linking. Our main questions. Some terminology. Simple idea 2: base + bound register. Protection mechanics.
Our main questions! How is protection enforced?! How are processes relocated?! How is ory partitioned? Simple idea 1: load-time linking! Link as usual, but keep the list of references! At load time, determine
More informationVirtual Memory I. Jo, Heeseung
Virtual Memory I Jo, Heeseung Today's Topics Virtual memory implementation Paging Segmentation 2 Paging Introduction Physical memory Process A Virtual memory Page 3 Page 2 Frame 11 Frame 10 Frame 9 4KB
More informationCS 140 Project 4 File Systems Review Session
CS 140 Project 4 File Systems Review Session Prachetaa Due Friday March, 14 Administrivia Course withdrawal deadline today (Feb 28 th ) 5 pm Project 3 due today (Feb 28 th ) Review section for Finals on
More informationECE 598 Advanced Operating Systems Lecture 14
ECE 598 Advanced Operating Systems Lecture 14 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 22 March 2016 Announcements 1 Got a Pi3 over break Pi3 Notes Very impressive performance,
More informationVirtual Memory. CS 3410 Computer System Organization & Programming
Virtual Memory CS 3410 Computer System Organization & Programming These slides are the product of many rounds of teaching CS 3410 by Professors Weatherspoon, Bala, Bracy, and Sirer. Where are we now and
More informationCSE 120 Principles of Operating Systems
CSE 120 Principles of Operating Systems Spring 2018 Lecture 10: Paging Geoffrey M. Voelker Lecture Overview Today we ll cover more paging mechanisms: Optimizations Managing page tables (space) Efficient
More informationAnother View of the Memory Hierarchy. Lecture #25 Virtual Memory I Memory Hierarchy Requirements. Memory Hierarchy Requirements
CS61C L25 Virtual I (1) inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #25 Virtual I 27-8-7 Scott Beamer, Instructor Another View of the Hierarchy Thus far{ Next: Virtual { Regs Instr.
More informationMemory Management Part 1. Operating Systems in Depth XX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.
Memory Management Part 1 Operating Systems in Depth XX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved. The Address-Space Concept Protect processes from one another Protect the OS from user processes
More informationECE 571 Advanced Microprocessor-Based Design Lecture 13
ECE 571 Advanced Microprocessor-Based Design Lecture 13 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 21 March 2017 Announcements More on HW#6 When ask for reasons why cache
More informationChapter 10: Virtual Memory. Lesson 05: Translation Lookaside Buffers
Chapter 10: Virtual Memory Lesson 05: Translation Lookaside Buffers Objective Learn that a page table entry access increases the latency for a memory reference Understand that how use of translationlookaside-buffers
More informationCPS 104 Computer Organization and Programming Lecture 20: Virtual Memory
CPS 104 Computer Organization and Programming Lecture 20: Virtual Nov. 10, 1999 Dietolf (Dee) Ramm http://www.cs.duke.edu/~dr/cps104.html CPS 104 Lecture 20.1 Outline of Today s Lecture O Virtual. 6 Paged
More informationCMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 27, SPRING 2013
CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 27, SPRING 2013 CACHING Why: bridge speed difference between CPU and RAM Modern RAM allows blocks of memory to be read quickly Principle
More informationLecture 15: Virtual Memory
Lecture 15: Virtual Memory Last Time: Cache wrap-up Virtual memory motivation Today Virtual memory implementations Lecture 15 1 Physical Memory Addressing LW R1,0(R2) CPU Cache DRAM 256MB address 32 bits
More informationModeling Page Replacement: Stack Algorithms. Design Issues for Paging Systems
Modeling Page Replacement: Stack Algorithms 7 4 6 5 State of memory array, M, after each item in reference string is processed CS450/550 Memory.45 Design Issues for Paging Systems Local page replacement
More informationChapter 4: Memory Management. Part 1: Mechanisms for Managing Memory
Chapter 4: Memory Management Part 1: Mechanisms for Managing Memory Memory management Basic memory management Swapping Virtual memory Page replacement algorithms Modeling page replacement algorithms Design
More informationCS 5523 Operating Systems: Memory Management (SGG-8)
CS 5523 Operating Systems: Memory Management (SGG-8) Instructor: Dr Tongping Liu Thank Dr Dakai Zhu, Dr Palden Lama, and Dr Tim Richards (UMASS) for providing their slides Outline Simple memory management:
More informationVIRTUAL MEMORY. Operating Systems 2015 Spring by Euiseong Seo
VIRTUAL MEMORY Operating Systems 2015 Spring by Euiseong Seo Today s Topics Virtual memory implementation Paging Segmentation Paging Permits the physical address space of a process to be noncontiguous
More informationChapter 5B. Large and Fast: Exploiting Memory Hierarchy
Chapter 5B Large and Fast: Exploiting Memory Hierarchy One Transistor Dynamic RAM 1-T DRAM Cell word access transistor V REF TiN top electrode (V REF ) Ta 2 O 5 dielectric bit Storage capacitor (FET gate,
More informationMemory management: outline
Memory management: outline Concepts Swapping Paging o Multi-level paging o TLB & inverted page tables 1 Memory size/requirements are growing 1951: the UNIVAC computer: 1000 72-bit words! 1971: the Cray
More informationMEMORY: SWAPPING. Shivaram Venkataraman CS 537, Spring 2019
MEMORY: SWAPPING Shivaram Venkataraman CS 537, Spring 2019 ADMINISTRIVIA - Project 2b is out. Due Feb 27 th, 11:59 - Project 1b grades are out Lessons from p2a? 1. Start early! 2. Sketch out a design?
More informationMemory management: outline
Memory management: outline Concepts Swapping Paging o Multi-level paging o TLB & inverted page tables 1 Memory size/requirements are growing 1951: the UNIVAC computer: 1000 72-bit words! 1971: the Cray
More informationMotivations for Virtual Memory Virtual Memory Oct. 29, Why VM Works? Motivation #1: DRAM a Cache for Disk
class8.ppt 5-23 The course that gives CMU its Zip! Virtual Oct. 29, 22 Topics Motivations for VM Address translation Accelerating translation with TLBs Motivations for Virtual Use Physical DRAM as a Cache
More informationCS 153 Design of Operating Systems Winter 2016
CS 153 Design of Operating Systems Winter 2016 Lecture 17: Paging Lecture Overview Recap: Today: Goal of virtual memory management: map 2^32 byte address space to physical memory Internal fragmentation
More information14 May 2012 Virtual Memory. Definition: A process is an instance of a running program
Virtual Memory (VM) Overview and motivation VM as tool for caching VM as tool for memory management VM as tool for memory protection Address translation 4 May 22 Virtual Memory Processes Definition: A
More informationCS5460: Operating Systems Lecture 14: Memory Management (Chapter 8)
CS5460: Operating Systems Lecture 14: Memory Management (Chapter 8) Important from last time We re trying to build efficient virtual address spaces Why?? Virtual / physical translation is done by HW and
More informationCS 550 Operating Systems Spring Memory Management: Paging
CS 550 Operating Systems Spring 2018 Memory Management: Paging 1 Recap: Memory Management Ideally programmers want memory that is large fast non volatile Memory hierarchy small amount of fast, expensive
More informationMulti-level Page Tables & Paging+ segmentation combined
Multi-level Page Tables & Paging+ segmentation combined Basic idea: use two levels of mapping to make tables manageable o Each segment contains one or more pages Segments correspond to logical units: code,
More informationVirtual Memory. CS 351: Systems Programming Michael Saelee
Virtual Memory CS 351: Systems Programming Michael Saelee registers cache (SRAM) main memory (DRAM) local hard disk drive (HDD/SSD) remote storage (networked drive / cloud) previously: SRAM
More informationHow to create a process? What does process look like?
How to create a process? On Unix systems, executable read by loader Compile time runtime Ken Birman ld loader Cache Compiler: generates one object file per source file Linker: combines all object files
More informationAddress Translation. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
Address Translation Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics How to reduce the size of page tables? How to reduce the time for
More informationLecture 19: Virtual Memory: Concepts
CSCI-UA.2-3 Computer Systems Organization Lecture 9: Virtual Memory: Concepts Mohamed Zahran (aka Z) mzahran@cs.nyu.edu http://www.mzahran.com Some slides adapted (and slightly modified) from: Clark Barrett
More informationRecap: Memory Management
, 4/13/2018 EE445M/EE360L.12 Embedded and Real-Time Systems/ Real-Time Operating Systems : Memory Protection, Virtual Memory, Paging References: T. Anderson, M. Dahlin, Operating Systems: Principles and
More informationUnderstanding the Design of Virtual Memory. Zhiqiang Lin
CS 6V8-05: System Security and Malicious Code Analysis Understanding the Design of Virtual Memory Zhiqiang Lin Department of Computer Science University of Texas at Dallas February 27 th, 202 Outline Basic
More informationVirtual Memory. Main memory is a CACHE for disk Advantages: illusion of having more physical memory program relocation protection.
Virtual Memory Main memory is a CACHE for disk Advantages: illusion of having more physical memory program relocation protection L18 Virtual Memory 1 Pages: Virtual Memory Blocks Page faults: the data
More informationCIS Operating Systems Memory Management Address Translation for Paging. Professor Qiang Zeng Spring 2018
CIS 3207 - Operating Systems Memory Management Address Translation for Paging Professor Qiang Zeng Spring 2018 Previous class What is logical address? Who use it? Describes a location in the logical memory
More informationVirtual Memory. Today. Segmentation Paging A good, if common example
Virtual Memory Today Segmentation Paging A good, if common example Virtual memory system Goals Transparency Programs should not know that memory is virtualized; the OS +HW multiplex memory among processes
More informationCSE 560 Computer Systems Architecture
This Unit: CSE 560 Computer Systems Architecture App App App System software Mem I/O The operating system () A super-application Hardware support for an Page tables and address translation s and hierarchy
More informationComputer Science 146. Computer Architecture
Computer Architecture Spring 2004 Harvard University Instructor: Prof. dbrooks@eecs.harvard.edu Lecture 18: Virtual Memory Lecture Outline Review of Main Memory Virtual Memory Simple Interleaving Cycle
More informationCISC 360. Virtual Memory Dec. 4, 2008
CISC 36 Virtual Dec. 4, 28 Topics Motivations for VM Address translation Accelerating translation with TLBs Motivations for Virtual Use Physical DRAM as a Cache for the Disk Address space of a process
More information