Paging and Virtual Memory. Memory management: Review  Fixed partitioning, dynamic partitioning  Problems Internal/external fragmentation A process can.

Slides:



Advertisements
Similar presentations
Chapter 8 Virtual Memory
Advertisements

1 Memory hierarchy and paging Electronic Computers M.
EECS 470 Virtual Memory Lecture 15. Why Use Virtual Memory? Decouples size of physical memory from programmer visible virtual memory Provides a convenient.
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.
Memory/Storage Architecture Lab Computer Architecture Virtual Memory.
Chapter 101 Virtual Memory Chapter 10 Sections and plus (Skip:10.3.2, 10.7, rest of 10.8)
OS Spring ‘04 Paging and Virtual Memory Operating Systems Spring 2004.
Virtual Memory Chapter 8.
Virtual Memory Chapter 8.
CS 333 Introduction to Operating Systems Class 11 – Virtual Memory (1)
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.
Lecture 11: Memory Management
Memory Management 2010.
Virtual Memory Chapter 8.
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
Translation Buffers (TLB’s)
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.
Virtual Memory I Chapter 8.
A. Frank - P. Weisberg Operating Systems Simple/Basic Paging.
CS 241 Section Week #12 (04/22/10).
Memory Management ◦ Operating Systems ◦ CS550. Paging and Segmentation  Non-contiguous memory allocation  Fragmentation is a serious problem with contiguous.
Chapter 8: Main Memory. 8.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 8: Memory Management Background Swapping Contiguous.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 346, Royden, Operating System Concepts Operating Systems Lecture 24 Paging.
Part 8: Virtual Memory. Silberschatz, Galvin and Gagne ©2005 Virtual vs. Physical Address Space Each process has its own virtual address space, which.
Topics covered: Memory subsystem CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
Computer Architecture Lecture 28 Fasih ur Rehman.
1 Chapter 3.2 : Virtual Memory What is virtual memory? What is virtual memory? Virtual memory management schemes Virtual memory management schemes Paging.
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.
Fall 2000M.B. Ibáñez Lecture 17 Paging Hardware Support.
8.1 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Paging Physical address space of a process can be noncontiguous Avoids.
Virtual Memory Chapter 8. Hardware and Control Structures Memory references are dynamically translated into physical addresses at run time –A process.
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.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Virtual Memory Hardware.
4.3 Virtual Memory. Virtual memory  Want to run programs (code+stack+data) larger than available memory.  Overlays programmer divides program into pieces.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Demand Paging.
Lectures 8 & 9 Virtual Memory - Paging & Segmentation System Design.
1 Lecture 8: Virtual Memory Operating System Fall 2006.
Operating Systems Session 7: – Virtual Memory organization Operating Systems.
Memory Management memory hierarchy programs exhibit locality of reference - non-uniform reference patterns temporal locality - a program that references.
Virtual Memory Chapter 8.
CS161 – Design and Architecture of Computer
ECE232: Hardware Organization and Design
CS161 – Design and Architecture of Computer
CS703 - Advanced Operating Systems
Chapter 8 Virtual Memory
Virtual Memory Chapter 8.
Evolution in Memory Management Techniques
EECE.4810/EECE.5730 Operating Systems
Computer Architecture
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
Computer Architecture
CSE 451: Operating Systems Autumn 2003 Lecture 9 Memory Management
Translation Buffers (TLBs)
Review What are the advantages/disadvantages of pages versus segments?
Virtual Memory.
Virtual Memory 1 1.
Presentation transcript:

Paging and Virtual Memory

Memory management: Review  Fixed partitioning, dynamic partitioning  Problems Internal/external fragmentation A process can be loaded only if a contiguous memory chunk is available to accommodate the process Process size is limited by the main memory size  Advantage: simplicity

Paging  Process memory is divided into fixed size chunks of the same size, called pages  Pages are mapped onto frames in the main memory  Process pages can be scattered all over the main memory

Paging example A.0 A.1 A.2 A.3 C.0 C.1 C.2 C.3 D.0 D.1 D.2 D.3 D Process A Process B Process C Process D Free Frame List 13 14

Paging support  Page table maintains mapping of process pages onto frames  Hardware support is needed to support translation of relative addresses within a program (logical addresses) into the memory addresses

Address translation  Page (frame) size is a power of 2 with page size = 2 r, a logical address of l+r bits is interpreted as a tuple (l,r) l = page number, r = offset within the page  Page number is used as an index into the page table

Hardware support ProgramPagingMain Memory Logical address Register Page Table Page Frame Offset P# Frame # Page Table Ptr Page #OffsetFrame #Offset +

Virtual Memory  Paging makes virtual memory possible Logical to physical address mapping is dynamic => It is not necessary that all of the process pages be in main memory during execution

Benefits  More processes may be maintained in the main memory Better system utilization and throughput  The process size is not restricted by the physical memory size: the process memory is virtual But what is the limit anyway?  Less disk I/O to swap/load programs

How does this work?  CPU can execute a process as long as some portion of its address space is mapped onto the physical memory E.g., next instruction and data addresses are mapped  Once a reference to an unmapped page is generated (page fault): Page fault interrupt transfers control to the OS handler

Page Fault Handler  Put the process into blocking state  Program disk controller to read the page from disk into the memory  Later on: I/O interrupt signals completion  Resume the process

Why is this practical?  Observation: Program branching and data access patterns are not random  Principle of locality: program and data references tend to cluster => Only a fraction of the process virtual address space need to be resident to allow the process to execute for sufficiently long

Virtual memory implementation  Efficient run-time address translation Hardware support, control data structures  Fetch policy Demand paging: page is brought into the memory only when page-fault occurs Pre-paging: pages are brought in advance  Page replacement policy Which page to evict when a page fault occurs?

Thrashing  A condition when the system is engaged in moving pages back and forth between memory and disk most of the time  Bad page replacement policy may result in thrashing  Programs with non-local behavior

Address translation  Virtual address is divided into page number and offset  Mapping of virtual pages onto physical frames are facilitated by page table(s) Forward-mapped page tables (FMPT) Inverted page tables (IPT) Virtual Address Page NumberOffset

Forward-mapped page tables (FMPT)  Page table entry (PTE) structure  Page table is an array of the above Index is the virtual page number PM Frame Number Other Control Bits Page Table Frame # Page # P: present (valid) bit M: modified bit

Address Translation using FMPT ProgramPagingMain Memory Virtual address Register Page Table Page Frame Offset P# Frame # Page Table Ptr Page #OffsetFrame #Offset +

Handling large address spaces  One level FMPT is not suitable for large virtual address spaces 32 bit addresses, 4K (2 12 ) page size, 2 32 / 2 12 = 2 20 entries ~4 bytes each => 4Mbytes resident page table per process! What about 64 bit architectures??  Solutions: multi-level FMPT Inverted page tables (IPT)

Multilevel FMPT  Use bits of the virtual address to index a hierarchy of page tables  The leaf is a regular PTE  Only the root is required to stay resident in main memory Other portions of the hierarchy are subject to paging as regular process pages

Two-level FMPT page number page offset pipi p2p2 d 10 12

Two-level FMPT

Inverted page table (IPT)  A single table with one entry per physical page  Each entry contains the virtual address currently mapped to a physical page (plus control bits)  Different processes may reference the same virtual address values Address space identifier (ASID) uniquely identifies the process address space

Address translation with IPT  Virtual address is first indexed into the hash anchor table (HAT)  The HAT provides a pointer to a linked list of potential page table entries  The list is searched sequentially for the virtual address (and ASID) match  If no match is found -> page fault

Address translation with IPT Virtual address page number offset hash + HAT base register ASID register page number ASID Frame# IPT + IPT base register frame number HAT

Translation Lookaside Buffer (TLB)  With VM accessing a memory location involves at least two intermediate memory accesses Page table access + memory access  TLB caches recent virtual to physical address mappings ASID or TLB flash is used to enforce protection

TLB internals  TLB is associative, high speed memory Each entry is a pair (tag,value) When presented with an item it is compared to all keys simultaneously If found, the value is returned; otherwise, it is a TLB miss Expensive: number of typical TLB entries: Do not confuse with memory cache!

Address translation with TLB

Bits in the PTE: Present (valid)  Present (valid) bit Indicates whether the page is assigned to frame or not A reference to an invalid page generates page fault which is handled by the operating system

Bits in PTE: modified, used  Modified (dirty) bit Indicates whether the page has been modified Unmodified pages need not be written back to the disk when evicted  Used bit Indicates whether the page has been accessed recently Used by the page replacement algorithm

Bits in PTE  Access permissions bit indicates whether the page is read-only or read-write  UNIX copy-on-write bit Set whether more than one process shares a page If one of the processes writes into the page, a separate copy must first be made for all other processes sharing the page Useful for optimizing fork()

Protection with VM  Preventing processes from accessing other process pages  Simple with FMPT Load the process page table base address into a register upon context switch  ASID with IPT

Page size considerations  Small page size better approximates locality large page tables inefficient disk transfer  Large page size internal fragmentation  Most modern architectures support a number of different page sizes  a configurable system parameter

Next: Page replacement