CS 241 Section Week #12 (04/22/10).

Slides:



Advertisements
Similar presentations
EECS 470 Virtual Memory Lecture 15. Why Use Virtual Memory? Decouples size of physical memory from programmer visible virtual memory Provides a convenient.
Advertisements

Virtual Memory. The Limits of Physical Addressing CPU Memory A0-A31 D0-D31 “Physical addresses” of memory locations Data All programs share one address.
OS Fall’02 Virtual Memory Operating Systems Fall 2002.
16.317: Microprocessor System Design I
Computer Organization CS224 Fall 2012 Lesson 44. Virtual Memory  Use main memory as a “cache” for secondary (disk) storage l Managed jointly by CPU hardware.
Lecture 34: Chapter 5 Today’s topic –Virtual Memories 1.
Carnegie Mellon 1 Virtual Memory: Concepts : Introduction to Computer Systems 15 th Lecture, Oct. 14, 2010 Instructors: Randy Bryant and Dave O’Hallaron.
CS 153 Design of Operating Systems Spring 2015
Virtual Memory Chapter 8.
Memory Management (II)
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Memory Management -3 CS 342 – Operating Systems Ibrahim Korpeoglu Bilkent.
Virtual Memory Chapter 8. Hardware and Control Structures Memory references are dynamically translated into physical addresses at run time –A process.
Memory Management and Paging CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han.
CS 333 Introduction to Operating Systems Class 11 – Virtual Memory (1)
Paging and Virtual Memory. Memory management: Review  Fixed partitioning, dynamic partitioning  Problems Internal/external fragmentation A process can.
Memory Management 2010.
Chapter 3.2 : Virtual Memory
Virtual Memory. Why do we need VM? Program address space: 0 – 2^32 bytes –4GB of space Physical memory available –256MB or so Multiprogramming systems.
1 Chapter 8 Virtual Memory Virtual memory is a storage allocation scheme in which secondary memory can be addressed as though it were part of main memory.
Virtual Memory Chapter 8.
©UCB CS 162 Ch 7: Virtual Memory LECTURE 13 Instructor: L.N. Bhuyan
Virtual Memory I Chapter 8.
©UCB CS 161 Ch 7: Memory Hierarchy LECTURE 24 Instructor: L.N. Bhuyan
Memory Management From Chapter 4, Modern Operating Systems, Andrew S. Tanenbaum.
1 Chapter 3.2 : Virtual Memory What is virtual memory? What is virtual memory? Virtual memory management schemes Virtual memory management schemes Paging.
Operating Systems COMP 4850/CISG 5550 Page Tables TLBs Inverted Page Tables Dr. James Money.
Fall 2000M.B. Ibáñez Lecture 17 Paging Hardware Support.
CS 149: Operating Systems March 3 Class Meeting Department of Computer Science San Jose State University Spring 2015 Instructor: Ron Mak
Virtual Memory 1 1.
1 Memory Management. 2 Fixed Partitions Legend Free Space 0k 4k 16k 64k 128k Internal fragmentation (cannot be reallocated) Divide memory into n (possible.
Virtual Memory Additional Slides Slide Source: Topics Address translation Accelerating translation with TLBs class12.ppt.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Virtual Memory Hardware.
Review °Apply Principle of Locality Recursively °Manage memory to disk? Treat as cache Included protection as bonus, now critical Use Page Table of mappings.
Multilevel Caches Microprocessors are getting faster and including a small high speed cache on the same chip.
ICOM Noack Memory management Virtual memory Paging and segmentation Demand paging Memory management hardware.
Virtual Memory.  Next in memory hierarchy  Motivations:  to remove programming burdens of a small, limited amount of main memory  to allow efficient.
1 Chapter Seven CACHE MEMORY AND VIRTUAL MEMORY. 2 SRAM: –value is stored on a pair of inverting gates –very fast but takes up more space than DRAM (4.
Paging Paging is a memory-management scheme that permits the physical-address space of a process to be noncontiguous. Paging avoids the considerable problem.
1  2004 Morgan Kaufmann Publishers Chapter Seven Memory Hierarchy-3 by Patterson.
CS2100 Computer Organisation Virtual Memory – Own reading only (AY2015/6) Semester 1.
Page Table Implementation. Readings r Silbershatz et al:
CHAPTER 3-3: PAGE MAPPING MEMORY MANAGEMENT. VIRTUAL MEMORY Key Idea Disassociate addresses referenced in a running process from addresses available in.
Virtual Memory Review Goal: give illusion of a large memory Allow many processes to share single memory Strategy Break physical memory up into blocks (pages)
Lectures 8 & 9 Virtual Memory - Paging & Segmentation System Design.
CS203 – Advanced Computer Architecture Virtual Memory.
Operating Systems, Winter Semester 2011 Practical Session 9, Memory 1.
Virtual Memory Chapter 8.
CS161 – Design and Architecture of Computer
Memory: Page Table Structure
ECE232: Hardware Organization and Design
CS161 – Design and Architecture of Computer
CS703 - Advanced Operating Systems
CS510 Operating System Foundations
Virtual Memory Chapter 8.
Virtual Memory: Concepts /18-213/14-513/15-513: Introduction to Computer Systems 17th Lecture, October 23, 2018.
CSCI206 - Computer Organization & Programming
EECE.4810/EECE.5730 Operating Systems
CS241 Section: Week 10.
Morgan Kaufmann Publishers Memory Hierarchy: Virtual Memory
CSE 451: Operating Systems Autumn 2005 Memory Management
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
© 2004 Ed Lazowska & Hank Levy
CSE451 Virtual Memory Paging Autumn 2002
CSE 451: Operating Systems Autumn 2003 Lecture 9 Memory Management
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
CSE 451: Operating Systems Autumn 2003 Lecture 9 Memory Management
Paging and Segmentation
Operating Systems: Internals and Design Principles, 6/E
Instructor: Phil Gibbons
Virtual Memory 1 1.
Presentation transcript:

CS 241 Section Week #12 (04/22/10)

Outline Virtual Memory Problems Why Virtual Memory Virtual Memory Addressing TLB (Translation Lookaside Buffer) Multilevel Page Table Problems

Virtual Memory

Why Virtual Memory? Use main memory as a Cache for the Disk Address space of a process can exceed physical memory size Sum of address spaces of multiple processes can exceed physical memory

Why Virtual Memory? Use main memory as a Cache for the Disk Address space of a process can exceed physical memory size Sum of address spaces of multiple processes can exceed physical memory Simplify Memory Management Multiple processes resident in main memory. Each process with its own address space Only “active” code and data is actually in memory

Why Virtual Memory? Use main memory as a Cache for the Disk Address space of a process can exceed physical memory size Sum of address spaces of multiple processes can exceed physical memory Simplify Memory Management Multiple processes resident in main memory. Each process with its own address space Only “active” code and data is actually in memory Provide Protection One process can’t interfere with another. because they operate in different address spaces. User process cannot access privileged information different sections of address spaces have different permissions.

Principle of Locality Program and data references within a process tend to cluster

Principle of Locality Program and data references within a process tend to cluster Only a few pieces of a process will be needed over a short period of time (active data or code)

Principle of Locality Program and data references within a process tend to cluster Only a few pieces of a process will be needed over a short period of time (active data or code) Possible to make intelligent guesses about which pieces will be needed in the future

Principle of Locality Program and data references within a process tend to cluster Only a few pieces of a process will be needed over a short period of time (active data or code) Possible to make intelligent guesses about which pieces will be needed in the future This suggests that virtual memory may work efficiently

VM Address Translation Parameters P = 2p = page size (bytes). N = 2n = Virtual address limit M = 2m = Physical address limit virtual page number page offset virtual address physical page number physical address p–1 address translation p m–1 n–1 Page offset bits don’t change as a result of translation

Page Table Keeps track of what pages are in memory

Page Table Keeps track of what pages are in memory Provides a mapping from virtual address to physical address

Handling a Page Fault Page fault Look for an empty page in RAM May need to write a page to disk and free it

Handling a Page Fault Page fault Look for an empty page in RAM May need to write a page to disk and free it Load the faulted page into that empty page

Handling a Page Fault Page fault Look for an empty page in RAM May need to write a page to disk and free it Load the faulted page into that empty page Modify the page table

Addressing 64MB RAM (2^26)

Addressing 64MB RAM (2^26) 2^32 (4GB) total memory Virtual Address (32 bits)

Addressing 64MB RAM (2^26) 2^32 (4GB) total virtual memory 4KB page size (2^12) Virtual Address (32 bits)

Addressing 64MB RAM (2^26) 2^32 (4GB) total memory 4KB page size (2^12) So we need 2^12 for the offset, we can use the remainder bits for the page Virtual Address (32 bits) Virtual Page number (20 bits) Page offset (12 bits)

Addressing 64MB RAM (2^26) 2^32 (4GB) total memory 4KB page size (2^12) So we need 2^12 for the offset, we can use the remainder bits for the page 20 bits, we have 2^20 pages (1M pages) Virtual Address (32 bits) Virtual Page number (20 bits) Page offset (12 bits)

Address Conversion That 20bit page address can be optimized in a variety of ways Translation Look-aside Buffer

Translation Lookaside Buffer (TLB) Each virtual memory reference can cause two physical memory accesses One to fetch the page table One to fetch the data

Translation Lookaside Buffer (TLB) Each virtual memory reference can cause two physical memory accesses One to fetch the page table One to fetch the data To overcome this problem a high-speed cache is set up for page table entries

Translation Lookaside Buffer (TLB) Each virtual memory reference can cause two physical memory accesses One to fetch the page table One to fetch the data To overcome this problem a high-speed cache is set up for page table entries Contains page table entries that have been most recently used (a cache for page table)

Translation Lookaside Buffer (TLB)

Effective Access Time Effective Access time (EAT) m – memory cycle,  - hit ratio,  - TLB lookup time 27

Multilevel Page Tables Given: 4KB (212) page size 32-bit address space 4-byte PTE

Multilevel Page Tables Given: 4KB (212) page size 32-bit address space 4-byte PTE Problem: Would need a 4 MB page table! 220 *4 bytes

Multilevel Page Tables Given: 4KB (212) page size 32-bit address space 4-byte PTE Problem: Would need a 4 MB page table! 220 *4 bytes Common solution multi-level page tables e.g., 2-level table (P6) Level 1 table: 1024 entries, each of which points to a Level 2 page table. Level 2 table: 1024 entries, each of which points to a page

Summary: Multi-level Page Tables Instead of one large table, keep a tree of tables Top-level table stores pointers to lower level page tables First n bits of the page number == index of the top-level page table Second n bits == index of the 2nd-level page table Etc.

Example: Two-level Page Table 32-bit address space (4GB)

Example: Two-level Page Table 32-bit address space (4GB) 12-bit page offset (4kB pages)

Example: Two-level Page Table 32-bit address space (4GB) 12-bit page offset (4kB pages) 20-bit page address First 10 bits index the top-level page table Second 10 bits index the 2nd-level page table 10 bits == 1024 entries * 4 bytes == 4kB == 1 page

Example: Two-level Page Table 32-bit address space (4GB) 12-bit page offset (4kB pages) 20-bit page address First 10 bits index the top-level page table Second 10 bits index the 2nd-level page table 10 bits == 1024 entries * 4 bytes == 4kB == 1 page Need three memory accesses to read a memory location

Why use multi-level page tables? Split one large page table into many page-sized chunks Typically 4 or 8 MB for a 32-bit address space

Why use multi-level page tables? Split one large page table into many page-sized chunks Typically 4 or 8 MB for a 32-bit address space Advantage: less memory must be reserved for the page tables Can swap out unused or not recently used tables

Why use multi-level page tables? Split one large page table into many page-sized chunks Typically 4 or 8 MB for a 32-bit address space Advantage: less memory must be reserved for the page tables Can swap out unused or not recently used tables Disadvantage: increased access time on TLB miss n+1 memory accesses for n-level page tables

Address Conversion That 20bit page address can be optimized in a variety of ways Translation Look-aside Buffer Multilevel Page Table Inverted Page Table

Problems

Problem 1 For each of the following decimal virtual addresses, compute the virtual page number and offset for a 4 KB page and for an 8 KB page: 20000, 32768, 60000. 41

Problem 1 Solution Address Page Number (4KB) Offset (4KB) 20000 4 3616 2 32768 8 60000 14 2656 7

Problem 2 Consider the page table of the figure. Give the physical address corresponding to each of the following virtual addresses: 29 4100 8300 43

Problem 2 Solution Consider the page table of the figure. Give the physical address corresponding to each of the following virtual addresses: 29 4100 8300 29: Physical address: 8K + 29 = 8221 4100: Physical address: 4K + (4100 – 4K) = 4100 8300: Physical address: 24K + (8300 – 8K) = 24684 44

Problem 3 A machine has 48 bit virtual addresses and 32 bit physical addresses. Pages are 8 KB. How many entries are needed for the page table? 45

Problem 3 Solution A machine has 48 bit virtual addresses and 32 bit physical addresses. Pages are 8 KB. How many entries are needed for the page table? Page size = 8 KB = 2^13 B Offset = 13 bits # of virtual pages = 2^(48 – 13) = 2^35 = # of entries in page table 46

Problem 4 Consider a machine such as the DEC Alpha 21064 which has 64 bit registers and manipulates 64-bit addresses. If the page size is 8KB, how many bits of virtual page number are there? If the page table used for translation from virtual to physical addresses were 8 bytes per entry, how much memory is required for the page table and is this amount of memory feasible? 47

Problem 4 Solution Page size = 8 KB = 2^13 B Offset = 13 bits Bits for virtual page number = (64 – 13) = 51 # of page table entries = 2^51 Size of page table = 2^51 * 8 B =2^54 B = 2^24 GB 48

Problem 5 A computer with a 32-bit address uses a two-level page table. Virtual addresses are split into 9-bit top-level page table field, an 11 bit second-level page table field, and an offset. How large are the pages and how many are there in the address space? 49

Problem 5 Solution A computer with a 32-bit address uses a two-level page table. Virtual addresses are split into 9-bit top-level page table field, an 11 bit second-level page table field, and an offset. How large are the pages and how many are there in the address space? Offset = 32 – 9 – 11 = 12 bits Page size = 2^12 B = 4 KB Total number of pages possible = 2^9 * 2^11 = 2^20 50

Problem 6 Fill in the following table: Virtual Address (bits) Page Size # of Page Frames # of Virtual Pages Offset Length (bits) Addressable Physical Memory 16 256 B 2^2 32 1 MB 2^4 1 KB 2^8 64 16 KB 2^20 8 MB 2^16 51

Problem 6 Solution Fill in the following table: Virtual Address (bits) Page Size # of Page Frames # of Virtual Pages Offset Length (bits) Addressable Physical Memory 16 256 B = 2^8 2^2 2^8 8 2^10 = 1 KB 32 1 MB = 2^20 2^4 2^12 20 2^24 = 16 MB 1 KB = 2^10 2^22 10 2^18 = 256 KB 64 16 KB = 2^14 2^20 2^50 14 2^34 = 16 GB 8 MB = 2^23 2^16 2^41 23 2^39 = 512 GB 52

Problem 7 Fill in this table with the correct page evictions. Physical memory contains 4 pages. Page Accesses 1 2 3 4 5 Optimal - FIFO LRU LFU MRU 53

Problem 7 Solution Fill in this table with the correct page evictions. Physical memory contains 4 pages. Page Accesses 1 2 3 4 5 Optimal - FIFO LRU LFU MRU 54