Virtual Memory © 2004, D. J. Foreman.

Slides:



Advertisements
Similar presentations
Chapter 8 Virtual Memory
Advertisements

OS Fall’02 Virtual Memory Operating Systems Fall 2002.
Virtual Memory Chapter 18 S. Dandamudi To be used with S. Dandamudi, “Fundamentals of Computer Organization and Design,” Springer,  S. Dandamudi.
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
Memory/Storage Architecture Lab Computer Architecture Virtual Memory.
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.
Lecture 11: Memory Management
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.
1 Virtual Memory Chapter 8. 2 Hardware and Control Structures Memory references are dynamically translated into physical addresses at run time –A process.
Chapter 3.2 : Virtual Memory
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Memory Management ◦ Operating Systems ◦ CS550. Paging and Segmentation  Non-contiguous memory allocation  Fragmentation is a serious problem with contiguous.
Cosc 3P92 Week 9 & 10 Lecture slides
Operating Systems Chapter 8
Lecture 19: Virtual Memory
1 Chapter 3.2 : Virtual Memory What is virtual memory? What is virtual memory? Virtual memory management schemes Virtual memory management schemes Paging.
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.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming  To allocate scarce memory resources.
© 2004, D. J. Foreman 1 Virtual Memory. © 2004, D. J. Foreman 2 Objectives  Avoid copy/restore entire address space  Avoid unusable holes in memory.
Memory Management Fundamentals Virtual Memory. Outline Introduction Motivation for virtual memory Paging – general concepts –Principle of locality, demand.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
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.
4.3 Virtual Memory. Virtual memory  Want to run programs (code+stack+data) larger than available memory.  Overlays programmer divides program into pieces.
CS2100 Computer Organisation Virtual Memory – Own reading only (AY2015/6) Semester 1.
Lectures 8 & 9 Virtual Memory - Paging & Segmentation System Design.
Virtual Memory Chapter 8.
CS161 – Design and Architecture of Computer
Translation Lookaside Buffer
Memory.
Memory Hierarchy Ideal memory is fast, large, and inexpensive
Section 8 Address Translation March 10th, 2017 Taught by Joshua Don.
CS161 – Design and Architecture of Computer
CSE 120 Principles of Operating
Memory Caches & TLB Virtual Memory
CS703 - Advanced Operating Systems
CS 704 Advanced Computer Architecture
Virtual Memory © 2004, D. J. Foreman.
CSE 153 Design of Operating Systems Winter 2018
Evolution in Memory Management Techniques
Virtual Memory فصل هشتم.
Translation Lookaside Buffer
Morgan Kaufmann Publishers Memory Hierarchy: Virtual Memory
CSE 451: Operating Systems Autumn 2005 Memory Management
Translation Buffers (TLB’s)
Virtual Memory Overcoming main memory size limitation
© 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 2004 Page Tables, TLBs, and Other Pragmatics Hank Levy 1.
CSC3050 – Computer Architecture
Computer Architecture
CSE 451: Operating Systems Autumn 2003 Lecture 9 Memory Management
Paging and Segmentation
CS703 - Advanced Operating Systems
CSE 451: Operating Systems Winter 2005 Page Tables, TLBs, and Other Pragmatics Steve Gribble 1.
CSE 153 Design of Operating Systems Winter 2019
Operating Systems: Internals and Design Principles, 6/E
Virtual Memory.
Review What are the advantages/disadvantages of pages versus segments?
Virtual Memory.
Chapter 8 & 9 Main Memory and Virtual Memory
CSE 542: Operating Systems
Virtual Memory 1 1.
Module IV Memory Organization.
Presentation transcript:

Virtual Memory © 2004, D. J. Foreman

Objectives Avoid copy/restore entire address space Avoid unusable holes in memory Increase program RAM past physical limits Allocation based on virtual memory policy Freedom from user requirements Extended abstraction for users Strategies Paging - fixed sized blocks called pages Segmentation - variable sized segments © 2004, D. J. Foreman

Address Translation Mapping Done at runtime Only the part being used is loaded Actually a small initial page-set > 1 page Page size determined by the O/S Instruction execution proceeds until an "addressing" or "missing data" fault O/S gets control Loads missing page Re-start the instruction with new data address © 2004, D. J. Foreman

Mapping -2 Formally: βt : vaddress  paddress  {Ω} Βt is a time-varying map t is the process's virtual time Virtual memory manager implements the mapping. ANY mechanism is valid if it follows the definition. βt(i) will be either: Real address of virtual address i Ω © 2004, D. J. Foreman

Concepts Entire virtual address space on disk Small set of virtual addresses bound to real addresses at any instant Virtual addresses are scattered Frame size depends on hardware Page size usually = frame size Counter-example (OS/VS2 (2k) on VM (4k)) # frames computed from physical memory constraints © 2004, D. J. Foreman

Computations Page size=2h & Frame size=2h Usually constrained by hardware protection Number of system pages: n = 2g Number of process pages/frames: m = 2j For a process: Number virtual addresses: G= 2g2h = 2g+h Number physical addresses: H=2j+h FYI: For Pentiums: g = 20 h=12 (page size=4K) So G = 4 GB (max program size, including O/S) © 2004, D. J. Foreman

Processing Ω If function returns Ω Significant overhead Find location i on disk Bring it into main memory Re-translate i Re-start the instruction Significant overhead O/S mode switch Table search I/O for missing address © 2004, D. J. Foreman

Segmentation & Paging Segmentation Paging Programs divided into segments Location references are <seg#, offset> I/O (Swap) whole segments (variable sized) Programmer can control swapping External fragmentation can occur Paging I/O (page) fixed-size blocks Location references are linear No programmer control of paging © 2004, D. J. Foreman

Description of Translation n = pages in virtual space m =allocated frames i is a virtual address 0<=i<=G G= 2g+h k=a physical memory address =U*2h + V 0<=V<2h c page size=2h Page number =  (i/c)  U is the page frame number V=line number (offset in page) = i mod c © 2004, D. J. Foreman

Policies Fetch - when to load a page Replace - victim selection (when full) Position (placement) - (when not full) # allocated frames is constant Page reference stream - numbers of the pages a P references in order of reference © 2004, D. J. Foreman

Paging Algorithm Page fault occurs Process with missing page is interrupted Memory manager locates missing page Page frame is unloaded (replacement policy) Page is loaded into vacated page frame Page table is updated Process is restarted © 2004, D. J. Foreman

Demand Paging Algorithms Random - many 'missing page' faults “perfect” - for comparisons only Least Recently Used - if recently used, will be again, so dump the LRU page Least Frequently Used - dump the most useless page - influenced by locality, slow to react LRU, LFU are both Stack algorithms © 2004, D. J. Foreman

Page Mgmt Structures Page # Disp A D K Frame # Virtual address PTE A - Assigned D - Dirty K - Prot. Key © 2004, D. J. Foreman

Page Table Lookup Pg# Disp Frame# Frame# Disp flags Page Table 1 entry per Page flags Frame# Pg# Process page-table ptr (a register) Frame# Disp © 2004, D. J. Foreman

Inverted Page Tables Useful for locating in-machine pages Extract virtual page # (VPN) from address Hash the VPN to an index Search the table for this index Each entry has VPN, frame# (PPN) Efficient for small memories Collisions must be resolved Note: uses page#, not address © 2004, D. J. Foreman

Inverted Page Tables -2 Regular page table Inverted table Uses virtual page # directly Entry per page Inverted table Uses virtual page # as hash input Sparse lookup table Finds frame if in memory Followed by disk address lookup if needed Entry per frame © 2004, D. J. Foreman

Inverted Page Tables Pg# Disp HashedPg# PID link Frame# or link Frame# Hashing Function 1 entry per Frame Process page-table ptr (a register) Frame# Disp © 2004, D. J. Foreman

Translation Lookaside Buffer Page# Offset If no TLB 'hit' VPN Full PTE VPN Frame # TLB - h/w-cached simultaneous (associative) lookup S/W lookup table line by line lookup hit no hit frame offset © 2004, D. J. Foreman