PagingCS-502 (EMC) Fall 20091 Paging CS-502, Operating Systems Fall 2009 (EMC) (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew.

Slides:



Advertisements
Similar presentations
SE-292: High Performance Computing
Advertisements

Paging 1 CS502 Spring 2006 Paging CS-502 Operating Systems.
OS Fall’02 Virtual Memory Operating Systems Fall 2002.
Caching and Virtual Memory. Main Points Cache concept – Hardware vs. software caches When caches work and when they don’t – Spatial/temporal locality.
CS 153 Design of Operating Systems Spring 2015
CS 153 Design of Operating Systems Spring 2015
PagingCS-3013 A-term Paging CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum.
OS Spring ‘04 Paging and Virtual Memory Operating Systems Spring 2004.
Memory Management (II)
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.
Memory Management 2010.
CS-3013 & CS-502 Summer 2006 Paging1 CS-3013 & CS-502 Summer 2006.
Chapter 3.2 : Virtual Memory
Computer Organization and Architecture
PagingCS-3013 C-term Paging CS-3013 Operating Systems C-term 2008 (Slides include materials from Operating System Concepts, 7 th ed., by Silbershatz,
03/22/2004CSCI 315 Operating Systems Design1 Virtual Memory Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Silberschatz, Galvin and Gagne  Operating System Concepts Segmentation Memory-management scheme that supports user view of memory. A program.
03/17/2008CSCI 315 Operating Systems Design1 Virtual Memory Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Caching and Virtual Memory. Main Points Cache concept – Hardware vs. software caches When caches work and when they don’t – Spatial/temporal locality.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 346, Royden, Operating System Concepts Operating Systems Lecture 24 Paging.
Operating Systems Chapter 8
Topics covered: Memory subsystem CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
CS 153 Design of Operating Systems Spring 2015 Lecture 17: Paging.
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 ECE344 Ding Yuan Paging Lecture 8: Paging.
Lecture Topics: 11/17 Page tables TLBs Virtual memory flat page tables
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming  To allocate scarce memory resources.
Chapter 8 – Main Memory (Pgs ). Overview  Everything to do with memory is complicated by the fact that more than 1 program can be in memory.
© 2004, D. J. Foreman 1 Virtual Memory. © 2004, D. J. Foreman 2 Objectives  Avoid copy/restore entire address space  Avoid unusable holes in memory.
PagingCS-502 Fall Paging CS-502 Operating Systems Fall 2006 (Slides include materials from Operating System Concepts, 7 th ed., by Silbershatz, Galvin,
8.1 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Paging Physical address space of a process can be noncontiguous Avoids.
CS 149: Operating Systems March 3 Class Meeting Department of Computer Science San Jose State University Spring 2015 Instructor: Ron Mak
Chapter 4 Memory Management Virtual 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.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 9: Virtual Memory.
Caching Principles & Paging Performance CS-502 (EMC) Fall Caching Principles and Paging Performance CS-502, Operating Systems Fall 2009 (EMC) (Slides.
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.
Paging (continued) & Caching CS-3013 A-term Paging (continued) & Caching CS-3013 Operating Systems A-term 2008 (Slides include materials from Modern.
4.3 Virtual Memory. Virtual memory  Want to run programs (code+stack+data) larger than available memory.  Overlays programmer divides program into pieces.
Memory Management. 2 How to create a process? On Unix systems, executable read by loader Compiler: generates one object file per source file Linker: combines.
Chapter 7: Main Memory CS 170, Fall Program Execution & Memory Management Program execution Swapping Contiguous Memory Allocation Paging Structure.
CS161 – Design and Architecture of Computer
Translation Lookaside Buffer
CS161 – Design and Architecture of Computer
CS703 - Advanced Operating Systems
Virtual Memory © 2004, D. J. Foreman.
EECE.4810/EECE.5730 Operating Systems
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy Chapter 8 11/24/2018.
Background Program must be brought into memory and placed within a process for it to be run. Input queue – collection of processes on the disk that are.
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy Chapter 9 12/1/2018.
Caching Principles and Paging Performance
CSE 451: Operating Systems Autumn 2005 Memory Management
CS-3013 Operating Systems Hugh C. Lauer
Caching Principles and Paging Performance
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
Contents Memory types & memory hierarchy Virtual memory (VM)
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.
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy Chapter 9 4/5/2019.
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
CSE 451: Operating Systems Autumn 2003 Lecture 9 Memory Management
CSE 451: Operating Systems Winter 2005 Page Tables, TLBs, and Other Pragmatics Steve Gribble 1.
Virtual Memory © 2004, D. J. Foreman.
Chapter 8 & 9 Main Memory and Virtual Memory
CSE 542: Operating Systems
CS-3013 Operating Systems A-term 2008
Presentation transcript:

PagingCS-502 (EMC) Fall Paging CS-502, Operating Systems Fall 2009 (EMC) (Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum and from Operating System Concepts, 7 th ed., by Silbershatz, Galvin, & Gagne)

PagingCS-502 (EMC) Fall Review – Memory Management Allocation of physical memory to processes Virtual Address Address space in which the process “thinks” Each virtual address is translated “on the fly” to a physical address Fragmentation Internal fragmentation – unused within an allocation External fragmentation – unused between allocations

PagingCS-502 (EMC) Fall Review – Memory Management (cont’d) Segmentation Recognition of different parts of virtual address space Different allocation strategies The rule of “no free lunch” Fixed size allocations  no external fragmentation, more internal fragmentation Variable allocations  no internal fragmentation, more external fragmentation

PagingCS-502 (EMC) Fall Reading Assignment Tanenbaum –§§ (previous topic – Memory Management) –§ 3.3 (this topic on Paging)

PagingCS-502 (EMC) Fall Paging A different approach Addresses all of the issues of previous topic Introduces new issues of its own

PagingCS-502 (EMC) Fall Memory Management Virtual (or logical) address vs. Physical address Memory Management Unit (MMU) –Set of registers and mechanisms to translate virtual addresses to physical addresses Processes (and processors) see virtual addresses –Virtual address space is same for all processes, usually 0 based –Virtual address spaces are protected from other processes MMU and devices see physical addresses Processor MMU MemoryI/O Devices Logical Addresses Physical Addresses

PagingCS-502 (EMC) Fall Paging Use small fixed size units in both physical and virtual memory Provide sufficient MMU hardware to allow page units to be scattered across memory Make it possible to leave infrequently used parts of virtual address space out of physical memory Solve internal & external fragmentation problems page X frame 0 frame 1 frame 2 frame Y physical memory … page 0 page 1 page 2 Logical Address Space (virtual memory) … page 3 MMU

PagingCS-502 (EMC) Fall Paging Processes see a large virtual address space Either contiguous or segmented Memory Manager divides the virtual address space into equal sized pieces called pages Some systems support more than one page size Memory Manager divides the physical address space into equal sized pieces called frames –Size usually a power of 2 between 512 and 8192 bytes –Some modern systems support 64 megabyte pages! –Frame table One entry per frame of physical memory; each entry is either –Free –Allocated to one or more processes sizeof(page) = sizeof(frame)

PagingCS-502 (EMC) Fall Address Translation for Paging Translating virtual addresses –a virtual address has two parts: virtual page number & offset –virtual page number (VPN) is index into a page table –page table entry contains page frame number (PFN) –physical address is: startof(PFN) + offset Page tables –Supported by MMU hardware –Managed by the Memory Manager –Map virtual page numbers to page frame numbers one page table entry (PTE) per page in virtual address space i.e., one PTE per VPN

PagingCS-502 (EMC) Fall Paging Translation page frame 0 page frame 1 page frame 2 page frame Y … page frame 3 physical memory offset physical address F(PFN)page frame # page table offset logical address virtual page #

PagingCS-502 (EMC) Fall Page Translation Example Assume a 32-bit contiguous address space –Assume page size 4KBytes (log 2 (4096) = 12 bits) –For a process to address the full logical address space Need 2 20 PTEs – VPN is 20 bits Offset is 12 bits Translation of virtual address 0x –Offset is 0x678 –Assume PTE( 0x12345 ) contains 0x01010 –Physical address is 0x

PagingCS-502 (EMC) Fall Generic PTE Structure Valid bit gives state of this Page Table Entry (PTE) –says whether or not its virtual address is valid – in memory and VA range –If not set, page might not be in memory or may not even exist! Reference bit says whether the page has been accessed –it is set by hardware whenever a page has been read or written to Modify bit says whether or not the page is dirty –it is set by hardware during every write to the page Protection bits control which operations are allowed –read, write, execute, etc. Page frame number (PFN) determines the physical page –physical page start address Other bits dependent upon machine architecture page frame numberprotMRV

PagingCS-502 (EMC) Fall Paging – Advantages Easy to allocate physical memory pick any free frame No external fragmentation All frames are equal Minimal internal fragmentation Bounded by page/frame size Easy to swap out pages (called pageout) Size is usually a multiple of disk blocks PTEs may contain info that help reduce disk traffic Processes can run with not all pages swapped in

PagingCS-502 (EMC) Fall Definition — Page Fault Trap when process attempts to reference a virtual address in a page with Valid bit in PTE set to false E.g., page not in physical memory If page exists on disk:– Suspend process If necessary, throw out some other page (& update its PTE) Swap in desired page, resume execution If page does not exist on disk:– Return program error or Conjure up a new page and resume execution –E.g., for growing the stack!

PagingCS-502 (EMC) Fall Steps in Handling a Page Fault

PagingCS-502 (EMC) Fall Definition — Backing Storage A place on external storage medium where copies of virtual pages are kept Usually a hard disk (locally or on a server) Place from which contents of pages are read after page faults Place where contents of pages are written if page frames need to be re-allocated

PagingCS-502 (EMC) Fall Backing Storage Executable code and constants:– The loadable image file produced by compiler Working memory (stack, heap, static data) Special swapping file (or partition) on disk Persistent application data Application data files on local or server disks

PagingCS-502 (EMC) Fall Requirement for Paging to Work! Machine instructions must be capable of restarting If execution was interrupted during a partially completed instruction, need to be able to –continue or –redo without harm This is a property of all modern CPUs … –… but not of some older CPUs!

PagingCS-502 (EMC) Fall Note Protection bits are important part of paging A process may have valid pages that are not writable execute only etc. E.g., setting PTE protection bits to prohibit certain actions is a legitimate way of detecting the first action to that page.

PagingCS-502 (EMC) Fall Example A page may be logically writable, as required by the application, but … … setting PTE bits to disallow writing is a way of detecting the first attempt to write Take some action Reset PTE bit Allow process to continue as if nothing happened

PagingCS-502 (EMC) Fall Questions?

PagingCS-502 (EMC) Fall Observations Recurring themes in paging –Temporal Locality – locations referenced recently tend to be referenced again soon –Spatial Locality – locations near recent references tend to be referenced soon Definitions –Working set: The set of pages that a process needs to run without frequent page faults –Thrashing: Excessive page faulting due to insufficient frames to support working set

PagingCS-502 (EMC) Fall Paging Issues #1 — Page Tables can consume large amounts of space –If PTE is 4 bytes, and use 4KB pages, and have 32 bit VA space  4MB for each process’s page table Stored in main memory! –What happens for 64-bit logical address spaces? #2 — Performance Impact –Converting virtual to physical address requires multiple operations to access memory Read Page Table Entry from memory! Get page frame number Construct physical address Assorted protection and valid checks –Without fast hardware support, requires multiple memory accesses and a lot of work per logical address

PagingCS-502 (EMC) Fall Issue #1: Page Table Size Process Virtual Address spaces –Not usually full – don’t need every PTE –Processes do exhibit locality – only need a subset of the PTEs Two-level page tables I.e., Virtual Addresses have 3 parts –Master page number – points to secondary page table –Secondary page number – points to PTE containing page frame # –Offset Physical Address = offset + startof (PFN)

PagingCS-502 (EMC) Fall Two-level page tables page frame 0 page frame 1 page frame 2 page frame Y … page frame 3 physical memory offset physical address page frame # master page table secondary page# virtual address master page #offset secondary page table # secondary page table # addr page frame number

PagingCS-502 (EMC) Fall Two-level page tables page frame 0 page frame 1 page frame 2 page frame Y … page frame 3 physical memory offset physical address page frame # master page table secondary page# virtual address master page #offset secondary page table # secondary page table # addr page frame number 12 bits 8 bits

PagingCS-502 (EMC) Fall Note Note: Master page number can function as Segment number –previous topic n-level page tables are possible, but rare in 32-bit systems

PagingCS-502 (EMC) Fall Multilevel Page Tables Sparse Virtual Address space – very few secondary PTs ever needed Process Locality – only a few secondary PTs needed at one time Can page out secondary PTs that are not needed now –Don’t page Master Page Table –Save physical memory However Performance is worse –Now have 3 (or more) memory accesses per virtual memory reference or instruction fetch How do we get back to about 1 memory access per VA reference? –Problem #2 of “Paging Issues” slide

PagingCS-502 (EMC) Fall Paging Issues Minor issue – internal fragmentation –Memory allocation in units of pages (also file allocation!) #1 — Page Tables can consume large amounts of space –If PTE is 4 bytes, and use 4KB pages, and have 32 bit VA space -> 4MB for each process’s page table –What happens for 64-bit logical address spaces? #2 — Performance Impact –Converting virtual to physical address requires multiple operations to access memory Read Page Table Entry from memory! Get page frame number Construct physical address Assorted protection and valid checks –Without fast hardware, requires multiple memory accesses and a lot of work per logical address

PagingCS-502 (EMC) Fall Solution — Associative Memory aka Dynamic Address Translation — DAT aka Translation Lookaside Buffer — TLB Do fast hardware search of all entries in parallel for VPN If present, use page frame number from PTE directly If not, a)Look up in page table (multiple accesses) b)Load VPN and PTE into Associative Memory (throwing out another entry as needed) VPN #PTE

PagingCS-502 (EMC) Fall Translation Lookaside Buffer (TLB) Associative memory implementation in hardware –Translates VPN to PTE (containing PFN) –Done in single machine cycle TLB is hardware assist –Fully or partially associative – entries searched in parallel with VPN as index –Returns page frame number (PFN) –MMU use PFN and offset to get Physical Address Locality makes TLBs work –Usually have 8–1024 TLB entries –Sufficient to deliver 99%+ hit rate (in most cases) Works well with multi-level page tables

PagingCS-502 (EMC) Fall MMU with TLB

PagingCS-502 (EMC) Fall Typical Machine Architecture CPU Bridge Memory Graphics I/O device MMU and TLB live here

PagingCS-502 (EMC) Fall TLB-related Policies OS must ensure that TLB and page tables are consistent –When OS changes bits (e.g. protection) in PTE, it must invalidate TLB copy –Dirty bit and reference bits in TLB must be written back to PTE TLB replacement policies –Random –Least Recently Used (LRU) – with hardware help What happens on context switch? –Each process has own page tables (possibly multi-level) –Must invalidate all TLB entries –Then TLB fills up again as new process executes –Expensive context switches just got more expensive! Note benefit of Threads sharing same address space

PagingCS-502 (EMC) Fall Questions?

PagingCS-502 (EMC) Fall Alternative Page Table format – Hashed Common in address spaces > 32 bits. The virtual page number is hashed into a page table. Each entry contains a chain of VPN’s with same hash. Search chain for match If found, use associated PTE Still needs TLB for performance

PagingCS-502 (EMC) Fall Hashed Page Tables

PagingCS-502 (EMC) Fall Alternative Page Table format – Inverted One entry for each real page of memory. Entry consists of virtual address of page stored at that real memory location, with information about the process that owns that page. Decreases memory needed to store each page table, but increases time needed to search the table when a page reference occurs. Use hash table to limit the search to one or a few page-table entries. Still uses TLB to speed up execution

PagingCS-502 (EMC) Fall Inverted Page Table Architecture See also Tanenbaum, Fig 3-14

PagingCS-502 (EMC) Fall Inverted Page Table Architecture (cont’d) Apollo Domain systems Common in 64-bit address systems Supported by TLB Next topic helps to quantify size of TLB

PagingCS-502 (EMC) Fall Paging – Some Tricks Shared Memory –Part of virtual memory of two or more processes map to same frames Finer grained sharing than segments Data sharing with Read/Write Shared libraries with eXecute –Each process has own PTEs – different privileges

PagingCS-502 (EMC) Fall Shared Pages (illustration)

PagingCS-502 (EMC) Fall Paging trick – Copy-on-write (COW) During fork() –Don’t copy individual pages of virtual memory –Just copy page tables; all pages start out shared –Set all PTEs to read-only in both processes When either process hits a write-protection fault on a valid page –Make a copy of that page, set write protect bit in PTE to allow writing –Resume faulting process Saves a lot of unnecessary copying –Especially if child process will delete and reload all of virtual memory with call to exec()

PagingCS-502 (EMC) Fall Definition — Mapping Mapping (a part of) virtual memory to a file = Connecting blocks of the file to the virtual memory pages so that –Page faults in (that part of) virtual memory resolve to the blocks of the file –Dirty pages in (that part of) virtual memory are written back to the blocks of the file

PagingCS-502 (EMC) Fall Warning — Memory-mapped Files Tempting idea:– –Instead of standard I/O calls ( read(), write(), etc.) map file starting at virtual address X –Access to “X + n” refers to file at offset n –Use paging mechanism to read file blocks into physical memory on demand … –… and write them out as needed Has been tried many times Rarely works well in practice Hard to program; even Harder to manage performance

PagingCS-502 (EMC) Fall Virtual Memory Organization 0x xFFFFFFFF Virtual address space program code (text) static data heap (dynamically allocated) stack (dynamically allocated) PC SP From an earlier topic

PagingCS-502 (EMC) Fall Virtual Memory Organization program code & constants static data heap (dynamically allocated) stack (dynamically allocated) PC SP Mapped to read-only executable file Map to writable swap file Unmapped, may be dynamically mapped guard page (never mapped)

PagingCS-502 (EMC) Fall thread 3 stack Virtual Memory Organization (continued) program code & constants static data heap thread 1 stack PC (T2) SP (T2) thread 2 stack SP (T1) SP (T3) PC (T3) guard page (never mapped) guard page Mapped to read-only executable file Map to writable swap file Unmapped, may be dynamically mapped Map to writable swap file

PagingCS-502 (EMC) Fall Virtual Memory Organization (continued) Each area of process VM is its own segment (or sequence of segments) Executable code & constants – fixed size Shared libraries Static data – fixed size Heap – open-ended Stacks – each open-ended Other segments as needed –E.g., symbol tables, loader information, etc.

PagingCS-502 (EMC) Fall Virtual Memory – a Major OS Abstraction Processes execute in virtual memory, not physical memory Virtual memory may be very large Much larger than physical memory Virtual memory may be organized in interesting & useful ways Open-ended segments Virtual memory is where the action is! Physical memory is just a cache of virtual memory

PagingCS-502 (EMC) Fall Reading Assignment Tanenbaum –§§ (previous topic – Memory Management) –§ 3.3 (this topic on Paging)

PagingCS-502 (EMC) Fall Related topic – Caching

PagingCS-502 (EMC) Fall Definition — Cache A small subset of active items held in fast storage while most of the items are in much larger, slower storage –Virtual Memory Very large, mostly stored on (slow) disk Small working set in (fast) RAM during execution –Page tables Very large, mostly stored in (slow) RAM Small working set stored in (fast) TLB registers

PagingCS-502 (EMC) Fall Caching is Ubiquitous in Computing Transaction processing Keep records of today’s departures in RAM while records of future flights are on disk Program execution Keep the bytes near the current program counter in on-chip memory while rest of program is in RAM File management Keep disk maps of open files in RAM while retaining maps of all files on disk Game design Keep nearby environment in cache of each character …

PagingCS-502 (EMC) Fall Caching issues When to put something in the cache What to throw out to create cache space for new items How to keep cached item and stored item in sync after one or the other is updated How to keep multiple caches in sync across processors or machines Size of cache needed to be effective Size of cache items for efficiency …

PagingCS-502 (EMC) Fall Caching issues When to put something in the cache What to throw out to create cache space for new items How to keep cached item and stored item in sync after one or the other is updated How to keep multiple caches in sync across processors or machines Size of cache needed to be effective Size of cache items for efficiency … This is a very important list!

PagingCS-502 (EMC) Fall Questions?