CS 333 Introduction to Operating Systems Class 11 – Virtual Memory (1)

Slides:



Advertisements
Similar presentations
1 Virtual Memory Management B.Ramamurthy. 2 Demand Paging Main memory LAS 0 LAS 1 LAS 2 (Physical Address Space -PAS) LAS - Logical Address.
Advertisements

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.
CS 153 Design of Operating Systems Spring 2015
CS 333 Introduction to Operating Systems Class 12 - Virtual Memory (2) Jonathan Walpole Computer Science Portland State University.
CS 333 Introduction to Operating Systems Class 12 - Virtual Memory (2) Jonathan Walpole Computer Science Portland State University.
CS 333 Introduction to Operating Systems Class 11 – Virtual Memory (1)
CS 333 Introduction to Operating Systems Class 12 - Virtual Memory (2) Jonathan Walpole Computer Science Portland State University.
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Memory Management -3 CS 342 – Operating Systems Ibrahim Korpeoglu Bilkent.
Memory Management and Paging CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han.
Paging and Virtual Memory. Memory management: Review  Fixed partitioning, dynamic partitioning  Problems Internal/external fragmentation A process can.
Chapter 3.2 : Virtual Memory
Translation Buffers (TLB’s)
CS 333 Introduction to Operating Systems Class 9 - Memory Management
Virtual Memory and Paging J. Nelson Amaral. Large Data Sets Size of address space: – 32-bit machines: 2 32 = 4 GB – 64-bit machines: 2 64 = a huge number.
Answers to the VM Problems Spring First question A computer has 32 bit addresses and a virtual memory with a page size of 8 kilobytes.  How many.
©UCB CS 161 Ch 7: Memory Hierarchy LECTURE 24 Instructor: L.N. Bhuyan
EECE476: Computer Architecture Lecture 27: Virtual Memory, TLBs, and Caches Chapter 7 The University of British ColumbiaEECE 476© 2005 Guy Lemieux.
CS 333 Introduction to Operating Systems Class 9 - Memory Management Jonathan Walpole Computer Science Portland State University.
CS 241 Section Week #12 (04/22/10).
Paging. Memory Partitioning Troubles Fragmentation Need for compaction/swapping A process size is limited by the available physical memory Dynamic growth.
CS333 Intro to Operating Systems Jonathan Walpole.
Review of Memory Management, Virtual Memory CS448.
CS333 Intro to Operating Systems Jonathan Walpole.
Computer Architecture Lecture 28 Fasih ur Rehman.
IT253: Computer Organization
Lecture Topics: 11/17 Page tables TLBs Virtual memory flat page tables
Operating Systems COMP 4850/CISG 5550 Page Tables TLBs Inverted Page Tables Dr. James Money.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-8 Memory Management (2) Department of Computer Science and Software.
8.1 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Paging Physical address space of a process can be noncontiguous Avoids.
CS399 New Beginnings Jonathan Walpole. Virtual Memory (1)
Virtual Memory Part 1 Li-Shiuan Peh Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology May 2, 2012L22-1
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.
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.
4.3 Virtual Memory. Virtual memory  Want to run programs (code+stack+data) larger than available memory.  Overlays programmer divides program into pieces.
ICOM Noack Memory management Virtual memory Paging and segmentation Demand paging Memory management hardware.
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)
Constructive Computer Architecture Virtual Memory: From Address Translation to Demand Paging Arvind Computer Science & Artificial Intelligence Lab. Massachusetts.
CS203 – Advanced Computer Architecture Virtual Memory.
Memory Management memory hierarchy programs exhibit locality of reference - non-uniform reference patterns temporal locality - a program that references.
CS161 – Design and Architecture of Computer
Translation Lookaside Buffer
Memory Management Virtual Memory.
ECE232: Hardware Organization and Design
CS161 – Design and Architecture of Computer
Virtual Memory - Part II
CS703 - Advanced Operating Systems
Page Table Implementation
Memory Hierarchy Virtual Memory, Address Translation
CS510 Operating System Foundations
Lecture 28: Virtual Memory-Address Translation
CSCI206 - Computer Organization & Programming
Memory Management 11/17/2018 A. Berrached:CS4315:UHD.
CS399 New Beginnings Jonathan Walpole.
Translation Lookaside Buffer
CSE 451: Operating Systems Autumn 2005 Memory Management
Translation Buffers (TLB’s)
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
CSE 451: Operating Systems Autumn 2003 Lecture 9 Memory Management
Translation Buffers (TLB’s)
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
CSE 451: Operating Systems Autumn 2003 Lecture 9 Memory Management
Translation Lookaside Buffers
Translation Buffers (TLBs)
Review What are the advantages/disadvantages of pages versus segments?
4.3 Virtual Memory.
Virtual Memory 1 1.
Presentation transcript:

CS 333 Introduction to Operating Systems Class 11 – Virtual Memory (1) Jonathan Walpole Computer Science Portland State University

Virtual addresses Virtual memory addresses (what the process uses) Page number plus byte offset in page Low order n bits are the byte offset Remaining high order bits are the page number bit 31 bit n-1 bit 0 20 bits 12 bits page number offset Example: 32 bit virtual address Page size = 212 = 4KB Address space size = 232 bytes = 4GB

Physical addresses Physical memory addresses (what memory uses) Frame number plus byte offset in frame Low order n bits are the byte offset Remaining high order bits are the frame number bit 24 bit n-1 bit 0 12 bits 12 bits Frame number offset Example: 24 bit physical address Frame size = 212 = 4KB Max physical memory size = 224 bytes = 16MB

Address translation Complete set of address mappings for a process are stored in a page table in memory But accessing the table for every address translation is too expensive So hardware support is used to map page numbers to frame numbers at full CPU speed Memory management unit (MMU) has multiple registers for multiple pages and knows how to access page tables Also called a translation look aside buffer (TLB) Essentially a cache of page table entries

The BLITZ architecture The page table mapping: Page --> Frame Virtual Address (24 bit in Blitz): Physical Address (32 bit in Blitz): 23 13 12 11 bits 31 13 12 19 bits

The BLITZ page table An array of “page table entries” Kept in memory 211 pages in a virtual address space ---> 2K entries in the table Each entry is 4 bytes long 19 bits The Frame Number 1 bit Valid Bit 1 bit Writable Bit 1 bit Dirty Bit 1 bit Referenced Bit 9 bits Unused (and available for OS algorithms)

The BLITZ page table Page Table Base Register Two page table related registers in the CPU Page Table Base Register Page Table Length Register These define the page table for the “current” process Must be saved and restored on process context switch Bits in the CPU “status register” “System Mode” “Interrupts Enabled” “Paging Enabled” 1 = Perform page table translation for every memory access 0 = Do not do translation

The BLITZ page table A page table entry 31 13 12 frame number unused frame number unused D R W V 19 bits dirty bit referenced bit writable bit valid bit

Indexed by the page number The BLITZ page table The full page table page table base register 31 13 12 frame number unused D R W V 1 frame number unused D R W V 2 frame number unused D R W V frame number unused D R W V 2K frame number unused D R W V Indexed by the page number

The BLITZ page table 23 13 12 page number offset virtual address page number offset virtual address page table base register 31 13 12 frame number unused D R W V 1 frame number unused D R W V 2 frame number unused D R W V frame number unused D R W V 2K frame number unused D R W V

The BLITZ page table 23 13 12 page number offset virtual address page number offset virtual address page table base register 31 13 12 frame number unused D R W V 1 frame number unused D R W V 2 frame number unused D R W V frame number unused D R W V 2K frame number unused D R W V 31 physical address

The BLITZ page table 23 13 12 page number offset virtual address page number offset virtual address page table base register 31 13 12 frame number unused D R W V 1 frame number unused D R W V 2 frame number unused D R W V frame number unused D R W V 2K frame number unused D R W V 31 13 12 offset physical address

The BLITZ page table 23 13 12 page number offset page number offset page table base register virtual address 31 13 12 frame number unused D R W V 1 frame number unused D R W V 2 frame number unused D R W V frame number unused D R W V 2K frame number unused D R W V 31 13 12 offset physical address

The BLITZ page table 23 13 12 page number offset page number offset page table base register virtual address 31 13 12 frame number unused D R W V 1 frame number unused D R W V 2 frame number unused D R W V frame number unused D R W V 2K frame number unused D R W V 31 13 12 frame number offset physical address

Page tables When and why do we access a page table? On every instruction to translate virtual to physical addresses?

Page tables When and why do we access a page table? On every instruction to translate virtual to physical addresses? In Blitz, YES, but in real machines NO! In real machines it is only accessed On TLB miss faults to refill the TLB During process creation and destruction When a process allocates or frees memory?

Translation Lookaside Buffer (TLB) Problem: MMU can’t keep up with the CPU if it goes to the page table on every memory access!

Translation Lookaside Buffer (TLB) Problem: MMU can’t keep up with the CPU if it goes to the page table on every memory access! Solution: Cache the page table entries in a hardware cache Small number of entries (e.g., 64) Each entry contains Page number Other stuff from page table entry Associatively indexed on page number ie. You can do a lookup in a single cycle

Translation lookaside buffer p o CPU page # frame # TLB Hit Physical memory f o TLB Page Table

Hardware operation of TLB Key Page Number Frame Number Other 23 37 unused D R W V 17 50 unused D R W V 92 24 unused D R W V 5 19 unused D R W V 12 6 unused D R W V

Hardware operation of TLB virtual address 23 13 12 page number offset Key Page Number Frame Number Other 23 37 unused D R W V 17 50 unused D R W V 92 24 unused D R W V 5 19 unused D R W V 12 6 unused D R W V 31 13 12 frame number offset physical address

Hardware operation of TLB virtual address 23 13 12 page number offset Key Page Number Frame Number Other 23 37 unused D R W V 17 50 unused D R W V 92 24 unused D R W V 5 19 unused D R W V 12 6 unused D R W V 31 13 12 frame number offset physical address

Hardware operation of TLB virtual address 23 13 12 page number offset Key Page Number Frame Number Other 23 37 unused D R W V 17 50 unused D R W V 92 24 unused D R W V 5 19 unused D R W V 12 6 unused D R W V 31 13 12 frame number offset physical address

Hardware operation of TLB virtual address 23 13 12 page number offset Key Page Number Frame Number Other 23 37 unused D R W V 17 50 unused D R W V 92 24 unused D R W V 5 19 unused D R W V 12 6 unused D R W V 31 13 12 frame number offset physical address

Hardware operation of TLB virtual address 23 13 12 page number offset Key Page Number Frame Number Other 23 37 unused D R W V 17 50 unused D R W V 92 24 unused D R W V 5 19 unused D R W V 12 6 unused D R W V 31 13 12 frame number offset physical address

Software operation of TLB What if the entry is not in the TLB? Go look in the page table in memory Find the right entry Move it into the TLB But which TLB entry should be replaced?

Software operation of TLB Hardware TLB refill Page tables in specific location and format TLB hardware handles its own misses Replacement policy fixed by hardware Software refill Hardware generates trap (TLB miss fault) Lets the OS deal with the problem Page tables become entirely a OS data structure! Replacement policy managed in software

Software operation of TLB What should we do with the TLB on a context switch? How can we prevent the next process from using the last process’s address mappings? Option 1: empty the TLB New process will generate faults until its pulls enough of its own entries into the TLB Option 2: just clear the “Valid Bit” Option 3: the hardware maintains a process id tag on each TLB entry Hardware compares this to a process id held in a specific register … on every translation

Page tables Do we access a page table when a process allocates or frees memory?

Page tables Do we access a page table when a process allocates or frees memory? Not necessarily Library routines (malloc) can service small requests from a pool of free memory already allocated within a process address space When these routines run out of space a new page must be allocated and its entry inserted into the page table This allocation is requested using a system call

Page table design issues Page table size depends on Page size Virtual address length Memory used for page tables is overhead! How can we save space? … and still find entries quickly? Three options Single-level page tables Multi-level page tables Inverted page tables

Single-level page tables A Virtual Address (32 bit): 20-bits 12-bits page number offset frames in memory • Single-level page table

Single-level page tables 20-bits 12-bits page number offset frames in memory • Single-level page table

Single-level page tables 20-bits 12-bits page number offset frames in memory • Single-level page table Problem: requires one page table entry per virtual page!

Single-level page tables 20-bits 12-bits page number offset frames in memory • Single-level page table 32 bit addresses and 4KB pages means 220 page table entries per process

Single-level page tables 20-bits 12-bits page number offset frames in memory • Single-level page table 64 bit addresses and 4KB pages means 252 page table entries per process!

Multi-level page tables frames in memory • Top-level Page table 2nd-level tables

Multi-level page tables A Virtual Address: 10-bits 10-bits 12-bits PT1 PT2 offset frames in memory • Top-level Page table 2nd-level tables

Multi-level page tables A Virtual Address: 10-bits 10-bits 12-bits PT1 PT2 offset frames in memory • Top-level Page table 2nd-level tables

Multi-level page tables A Virtual Address: 10-bits 10-bits 12-bits PT1 PT2 offset frames in memory • Top-level Page table 2nd-level tables

Multi-level page tables A Virtual Address: 10-bits 10-bits 12-bits PT1 PT2 offset frames in memory • Top-level Page table 2nd-level tables

Multi-level page tables A Virtual Address: 10-bits 10-bits 12-bits PT1 PT2 offset frames in memory • Top-level Page table 2nd-level tables

Multi-level page tables A Virtual Address: 10-bits 10-bits 12-bits PT1 PT2 offset frames in memory • Top-level Page table 2nd-level tables

Multi-level page tables Ok, but how exactly does this save space?

Multi-level page tables Ok, but how exactly does this save space? Not all pages within a virtual address space are allocated Not only do they not have a page frame, but that range of virtual addresses is not being used So no need to maintain complete information about it Some intermediate page tables are empty and not needed We could also page the page table This saves space but slows access … a lot!

VM puzzle