Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

  • View
    234

  • Download
    5

Embed Size (px)

Text of Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

  • Slide 1

Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Virtual Memory Slide 2 9.2 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition What to Learn? Chapter 8 in the text book OSCE. Chapter 9 in OSC. The benefits of a virtual memory system The concepts of demand paging page-replacement algorithms and allocation of physical page frames Other related techniques Copy-on-write. Memory mapped files Slide 3 9.3 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Background Virtual memory Only part of the program needs to be in memory for execution Logical address space can be much larger than physical address space Allows address spaces to be shared by several processes Slide 4 9.4 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Virtual Memory That is Larger Than Physical Memory Slide 5 9.5 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Transfer of a Paged Memory to Contiguous Disk Space Slide 6 9.6 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Demand Paging for Virtual Memory Bring a page into memory ONLY when it is needed Less I/O needed Less memory needed Faster response More users supported Check a page table entry when a page is needed not-in-memory bring to memory Slide 7 9.7 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Valid-Invalid Bit With each page table entry a validinvalid bit is associated (v in-memory, i not-in-memory) Initially validinvalid bit is set to i on all entries Not in memory page fault v v v v i i i . Frame #valid-invalid bit page table Slide 8 9.8 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Page Table When Some Pages Are Not in Main Memory Slide 9 9.9 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Handling a Page Fault 1. Get an empty physical frame 2. Swap page from the disk into frame 3. Reset the page table Set validation bit = v 4. Restart the instruction that caused the page fault Slide 10 9.10 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Page Fault (Cont.) Restart instruction Special handling block move Auto increment/decrement Slide 11 9.11 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Steps in Handling a Page Fault Slide 12 9.12 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Performance of Demand Paging Page Fault Rate 0 p 1.0 if p = 0, no page faults if p = 1, every reference is a fault Effective Access Time (EAT) EAT = (1 p) x memory access + p (page fault overhead + swap page out + swap page in + restart overhead ) Slide 13 9.13 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Demand Paging Performance Example Memory access time = 200 nanoseconds Average page-fault service time = 8 milliseconds EAT = (1 p) x 200 + p (8 milliseconds) = (1 p x 200 + p x 8,000,000 = 200 + p x 7,999,800 If one access out of 1,000 causes a page fault, then EAT = 8.2 microseconds. This is a slowdown by a factor of 40!! Slide 14 9.14 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Other Benefits Virtual memory allows other benefits - Shared pages - Copy-on-Write during process creation - Memory-Mapped Files Slide 15 9.15 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Shared Pages with Virtual Memory Slide 16 9.16 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Copy-on-Write: Lazy copy during process creation Copy-on-Write (COW) allows both parent and child processes to initially share the same pages in memory If either process modifies a shared page, this page is copied COW allows more efficient process creation as only modified pages are copied Slide 17 9.17 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Before Process 1 Modifies Page C Slide 18 9.18 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Copy on Write: After Process 1 Modifies Page C Slide 19 9.19 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Memory-Mapped Files Allow file I/O to be treated as routine memory access by mapping a disk block to a page in memory Simplifies file access by treating file I/O through direct memory access rather than read() write() system calls File access is managed with demand paging. Several processes may map the same file into memory as shared data Slide 20 9.20 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Memory Mapped Files Slide 21 9.21 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Example of Linux mmap #define NUMINTS 1000 #define FILESIZE NUMINTS * sizeof(int) fd = open(FILEPATH, O_RDWR | O_CREAT | O_TRUNC, 0600); result = lseek(fd, FILESIZE-1, SEEK_SET); result = write(fd, "", 1); map = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); for (i = 1; i 9.43 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Relationship of Demand Paging and Thrashing Why does demand paging work? Locality model Process migrates from one locality to another Localities may overlap Need a minimum working set to be effective Why does thrashing occur? working-sets > total memory size Slide 44 9.44 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Locality In A Memory-Reference Pattern Slide 45 9.45 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Working Sets and Page Fault Rates Slide 46 9.46 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Prefetching Pages (Prepaging) Optimization to reduce page faults (e.g. during process startup) Preload some pages before they are referenced But if prefetched pages are unused, I/O and memory was wasted Assume s pages are prepaged and % of the pages is used Page fault cost of s * > cost of prepaging s * (1- ) unnecessary pages Slide 47 9.47 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Tradeoffs: Page Size Impact of page size selection: Internal fragmentation Page table size I/O overhead locality Slide 48 9.48 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Other Issues TLB Reach TLB Reach - The amount of memory accessible from the TLB TLB Reach = (TLB Size) X (Page Size) Ideally, the working set of each process is stored in the TLB Increase the Page Size Increase TLB reach But may increase internal fragmentation as not all applications require a large page size Slide 49 9.49 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Other Issues Impact of Program Structure on Page Faults