VM Design and Tradeoffs

Size: px
Start display at page:

Download "VM Design and Tradeoffs"

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 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 information

Virtual Memory 1. Virtual Memory

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 information

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

PROCESS 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 information

Virtual Memory Management

Virtual 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 information

Memory 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 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 information

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.

Learning 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 information

Address spaces and memory management

Address 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 information

COSC3330 Computer Architecture Lecture 20. Virtual Memory

COSC3330 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 information

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.

Learning 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 information

virtual memory. March 23, Levels in Memory Hierarchy. DRAM vs. SRAM as a Cache. Page 1. Motivation #1: DRAM a Cache for Disk

virtual 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 information

Carnegie Mellon. Bryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition

Carnegie 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 information

Virtual Memory Oct. 29, 2002

Virtual 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 information

Memory 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 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 information

Memory Allocation. Copyright : University of Illinois CS 241 Staff 1

Memory 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 information

Computer Systems. Virtual Memory. Han, Hwansoo

Computer 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 information

CS399 New Beginnings. Jonathan Walpole

CS399 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 information

Virtual Memory. Motivations for VM Address translation Accelerating translation with TLBs

Virtual 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 information

Virtual Memory Paging

Virtual 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 information

Paging. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Paging. 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 information

CSE 153 Design of Operating Systems

CSE 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 information

Processes and Virtual Memory Concepts

Processes 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 information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 24

CS24: 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 information

Administrivia. 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  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 information

CS 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 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 information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 23

CS24: 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 information

Virtual Memory. Kevin Webb Swarthmore College March 8, 2018

Virtual 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 information

Virtual Memory II CSE 351 Spring

Virtual 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 information

CS 261 Fall Mike Lam, Professor. Virtual Memory

CS 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 information

CSC C69: OPERATING SYSTEMS. Tutorial Thursday, March 28, 2013 Ioan Stefanovici

CSC 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 information

Memory 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 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 information

Memory Hierarchy Requirements. Three Advantages of Virtual Memory

Memory 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 information

Virtual Memory Virtual memory first used to relive programmers from the burden of managing overlays.

Virtual 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 information

Paging. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Paging. 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

@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 information

Virtual Memory. Computer Systems Principles

Virtual 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 information

CSE 120. Translation Lookaside Buffer (TLB) Implemented in Hardware. July 18, Day 5 Memory. Instructor: Neil Rhodes. Software TLB Management

CSE 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 information

This Unit: Main Memory. Virtual Memory. Virtual Memory. Other Uses of Virtual Memory

This 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 information

Chapter 8. Virtual Memory

Chapter 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 information

Paging. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Paging. 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 information

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 23

CS24: 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 information

Page Tables. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Page 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 information

Memory Management Topics. CS 537 Lecture 11 Memory. Virtualizing Resources

Memory 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 information

Memory Management. Goals of Memory Management. Mechanism. Policies

Memory 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 information

VM as a cache for disk

VM 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 information

Operating Systems Design Exam 2 Review: Spring 2011

Operating 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 information

ECE 571 Advanced Microprocessor-Based Design Lecture 12

ECE 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 information

CS 416: Opera-ng Systems Design March 23, 2012

CS 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 information

Memory 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 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 information

Recall from Tuesday. Our solution to fragmentation is to split up a process s address space into smaller chunks. Physical Memory OS.

Recall 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 information

CS 4284 Systems Capstone. Virtual Memory Page Tables Godmar Back

CS 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 information

Recall: 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. 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 information

ECE 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 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 information

virtual memory Page 1 CSE 361S Disk Disk

virtual 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 information

The Beast We Call A3. CS 161: Lecture 10 3/7/17

The 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 information

198:231 Intro to Computer Organization. 198:231 Introduction to Computer Organization Lecture 14

198: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 information

Virtual Memory: Concepts

Virtual 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 information

Paging. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Paging. 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 information

Virtual Memory, Address Translation

Virtual 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 information

Virtual memory Paging

Virtual 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 information

CPS104 Computer Organization and Programming Lecture 16: Virtual Memory. Robert Wagner

CPS104 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 information

Virtual to physical address translation

Virtual 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 information

Simple idea 1: load-time linking. Our main questions. Some terminology. Simple idea 2: base + bound register. Protection mechanics.

Simple 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 information

Virtual Memory I. Jo, Heeseung

Virtual 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 information

CS 140 Project 4 File Systems Review Session

CS 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 information

ECE 598 Advanced Operating Systems Lecture 14

ECE 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 information

Virtual Memory. CS 3410 Computer System Organization & Programming

Virtual 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 information

CSE 120 Principles of Operating Systems

CSE 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 information

Another View of the Memory Hierarchy. Lecture #25 Virtual Memory I Memory Hierarchy Requirements. Memory Hierarchy Requirements

Another 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 information

Memory 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. 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 information

ECE 571 Advanced Microprocessor-Based Design Lecture 13

ECE 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 information

Chapter 10: Virtual Memory. Lesson 05: Translation Lookaside Buffers

Chapter 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 information

CPS 104 Computer Organization and Programming Lecture 20: Virtual Memory

CPS 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 information

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 27, SPRING 2013

CMSC 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 information

Lecture 15: Virtual Memory

Lecture 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 information

Modeling Page Replacement: Stack Algorithms. Design Issues for Paging Systems

Modeling 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 information

Chapter 4: Memory Management. Part 1: Mechanisms for Managing Memory

Chapter 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 information

CS 5523 Operating Systems: Memory Management (SGG-8)

CS 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 information

VIRTUAL MEMORY. Operating Systems 2015 Spring by Euiseong Seo

VIRTUAL 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 information

Chapter 5B. Large and Fast: Exploiting Memory Hierarchy

Chapter 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 information

Memory management: outline

Memory 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 information

MEMORY: SWAPPING. Shivaram Venkataraman CS 537, Spring 2019

MEMORY: 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 information

Memory management: outline

Memory 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 information

Motivations for Virtual Memory Virtual Memory Oct. 29, Why VM Works? Motivation #1: DRAM a Cache for Disk

Motivations 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 information

CS 153 Design of Operating Systems Winter 2016

CS 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 information

14 May 2012 Virtual Memory. Definition: A process is an instance of a running program

14 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 information

CS5460: Operating Systems Lecture 14: Memory Management (Chapter 8)

CS5460: 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 information

CS 550 Operating Systems Spring Memory Management: Paging

CS 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 information

Multi-level Page Tables & Paging+ segmentation combined

Multi-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 information

Virtual Memory. CS 351: Systems Programming Michael Saelee

Virtual 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 information

How to create a process? What does process look like?

How 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 information

Address Translation. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Address 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 information

Lecture 19: Virtual Memory: Concepts

Lecture 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 information

Recap: Memory Management

Recap: 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 information

Understanding the Design of Virtual Memory. Zhiqiang Lin

Understanding 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 information

Virtual 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. 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 information

CIS Operating Systems Memory Management Address Translation for Paging. Professor Qiang Zeng Spring 2018

CIS 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 information

Virtual Memory. Today. Segmentation Paging A good, if common example

Virtual 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 information

CSE 560 Computer Systems Architecture

CSE 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 information

Computer Science 146. Computer Architecture

Computer 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 information

CISC 360. Virtual Memory Dec. 4, 2008

CISC 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