Chapter 9 Virtual Memory Operating System Concepts Essentials

  • Slides: 24
Download presentation
Chapter 9: Virtual Memory Operating System Concepts Essentials – 9 th Edition Silberschatz, Galvin

Chapter 9: Virtual Memory Operating System Concepts Essentials – 9 th Edition Silberschatz, Galvin and Gagne © 2013

Chapter 9: Virtual Memory n Background n Demand Paging n Copy-on-Write n Page Replacement

Chapter 9: Virtual Memory n Background n Demand Paging n Copy-on-Write n Page Replacement Operating System Concepts Essentials – 9 th Edition 9. 2 Silberschatz, Galvin and Gagne © 2013

Objectives n To describe the benefits of a virtual memory system n To explain

Objectives n To describe the benefits of a virtual memory system n To explain the concepts of demand paging, page-replacement algorithms, and allocation of page frames n To examine the relationship between shared memory and memory-mapped files Operating System Concepts Essentials – 9 th Edition 9. 3 Silberschatz, Galvin and Gagne © 2013

Background n Code needs to be in memory to execute, but entire program rarely

Background n Code needs to be in memory to execute, but entire program rarely used l Error code, unusual routines, large data structures n Entire program code not needed at same time n Consider ability to execute partially-loaded program l Program no longer constrained by limits of physical memory l Each program takes less memory while running -> more programs run at the same time 4 l Increased CPU utilization and throughput with no increase in response time or turnaround time Less I/O needed to load or swap programs into memory -> each user program runs faster Operating System Concepts Essentials – 9 th Edition 9. 4 Silberschatz, Galvin and Gagne © 2013

Background n Virtual memory – separation of user logical memory from physical memory l

Background n Virtual memory – separation of user logical memory from physical memory l Only part of the program needs to be in memory for execution l Logical address space can therefore be much larger than physical address space l Allows address spaces to be shared by several processes l Allows for more efficient process creation l More programs running concurrently l Less I/O needed to load or swap processes n Virtual address space – logical view of how process is stored in memory l Usually start at address 0, contiguous addresses until end of space l Meanwhile, physical memory organized in page frames l MMU must map logical to physical n Virtual memory can be implemented via: l Demand paging l Demand segmentation Operating System Concepts Essentials – 9 th Edition 9. 5 Silberschatz, Galvin and Gagne © 2013

Virtual Memory That is Larger Than Physical Memory Operating System Concepts Essentials – 9

Virtual Memory That is Larger Than Physical Memory Operating System Concepts Essentials – 9 th Edition 9. 6 Silberschatz, Galvin and Gagne © 2013

Shared Library Using Virtual Memory Operating System Concepts Essentials – 9 th Edition 9.

Shared Library Using Virtual Memory Operating System Concepts Essentials – 9 th Edition 9. 7 Silberschatz, Galvin and Gagne © 2013

Demand Paging n Could bring entire process into memory at load time n Or

Demand Paging n Could bring entire process into memory at load time n Or bring a page into memory only when it is needed l Less I/O needed, no unnecessary I/O l Less memory needed l Faster response l More users n Similar to paging system with swapping (diagram on right) n Page is needed reference to it l invalid reference abort l not-in-memory bring to memory n Lazy swapper – never swaps a page into memory unless page will be needed l Swapper that deals with pages is a pager Operating System Concepts Essentials – 9 th Edition 9. 8 Silberschatz, Galvin and Gagne © 2013

Basic Concepts n With swapping, pager guesses which pages will be used before swapping

Basic Concepts n With swapping, pager guesses which pages will be used before swapping out again n Instead of swapping in a whole process, pager brings in only those pages into memory n How to determine that set of pages? l Need new MMU functionality to implement demand paging n If pages needed are already memory resident l No difference from non demand-paging n If page needed and not memory resident l Need to detect and load the page into memory from storage 4 Without changing program behavior 4 Without programmer needing to change code Operating System Concepts Essentials – 9 th Edition 9. 9 Silberschatz, Galvin and Gagne © 2013

Valid-Invalid Bit n With each page table entry a valid–invalid bit is associated (v

Valid-Invalid Bit n With each page table entry a valid–invalid bit is associated (v in-memory – memory resident, i not-in-memory) n Initially valid–invalid bit is set to i on all entries n Example of a page table snapshot: Frame # valid-invalid bit v v i …. i i page table n During MMU address translation, if valid–invalid bit in page table entry is i page fault Operating System Concepts Essentials – 9 th Edition 9. 10 Silberschatz, Galvin and Gagne © 2013

Page Table When Some Pages Are Not in Main Memory Operating System Concepts Essentials

Page Table When Some Pages Are Not in Main Memory Operating System Concepts Essentials – 9 th Edition 9. 11 Silberschatz, Galvin and Gagne © 2013

Page Fault n If there is a reference to a page, first reference to

Page Fault n If there is a reference to a page, first reference to that page will trap to operating system: page fault 1. Operating system looks at another table to decide: l Invalid reference abort l Just not in memory 2. Find free frame 3. Swap page into frame via scheduled disk operation 4. Reset tables to indicate page now in memory Set validation bit = v 5. Restart the instruction that caused the page fault Operating System Concepts Essentials – 9 th Edition 9. 12 Silberschatz, Galvin and Gagne © 2013

Steps in Handling a Page Fault Operating System Concepts Essentials – 9 th Edition

Steps in Handling a Page Fault Operating System Concepts Essentials – 9 th Edition 9. 13 Silberschatz, Galvin and Gagne © 2013

Aspects of Demand Paging n Extreme case – start process with no pages in

Aspects of Demand Paging n Extreme case – start process with no pages in memory l OS sets instruction pointer to first instruction of process, non-memory-resident -> page fault l And for every other process pages on first access n Hardware support needed for demand paging l Page table with valid / invalid bit l Secondary memory (swap device with swap space) l Instruction restart Operating System Concepts Essentials – 9 th Edition 9. 14 Silberschatz, Galvin and Gagne © 2013

What Happens if There is no Free Frame? n Used up by process pages

What Happens if There is no Free Frame? n Used up by process pages n Also in demand from the kernel, I/O buffers, etc n How much to allocate to each? n Page replacement – find some page in memory, but not really in use, page it out l Algorithm – terminate? swap out? replace the page? l Performance – want an algorithm which will result in minimum number of page faults n Same page may be brought into memory several times Operating System Concepts Essentials – 9 th Edition 9. 15 Silberschatz, Galvin and Gagne © 2013

Basic Page Replacement 1. Find the location of the desired page on disk 2.

Basic Page Replacement 1. Find the location of the desired page on disk 2. Find a free frame: - If there is a free frame, use it - If there is no free frame, use a page replacement algorithm to select a victim frame - Write victim frame to disk if dirty 3. Bring the desired page into the (newly) free frame; update the page and frame tables 4. Continue the process by restarting the instruction that caused the trap Operating System Concepts Essentials – 9 th Edition 9. 16 Silberschatz, Galvin and Gagne © 2013

Page Replacement Operating System Concepts Essentials – 9 th Edition 9. 17 Silberschatz, Galvin

Page Replacement Operating System Concepts Essentials – 9 th Edition 9. 17 Silberschatz, Galvin and Gagne © 2013

Page and Frame Replacement Algorithms n Frame-allocation algorithm determines l How many frames to

Page and Frame Replacement Algorithms n Frame-allocation algorithm determines l How many frames to give each process l Which frames to replace n Page-replacement algorithm l Want lowest page-fault rate on both first access and re-access n Evaluate algorithm by running it on a particular string of memory references (reference string) and computing the number of page faults on that string l String is just page numbers, not full addresses l Repeated access to the same page does not cause a page fault l Results depend on number of frames available n In all our examples, the reference string of referenced page numbers is 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 Operating System Concepts Essentials – 9 th Edition 9. 18 Silberschatz, Galvin and Gagne © 2013

Graph of Page Faults Versus The Number of Frames Operating System Concepts Essentials –

Graph of Page Faults Versus The Number of Frames Operating System Concepts Essentials – 9 th Edition 9. 19 Silberschatz, Galvin and Gagne © 2013

First-In-First-Out (FIFO) Algorithm n Reference string: 7, 0, 1, 2, 0, 3, 0, 4,

First-In-First-Out (FIFO) Algorithm n Reference string: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 n 3 frames (3 pages can be in memory at a time per process) 15 page faults n Can vary by reference string: consider 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 l Adding more frames can cause more page faults! 4 n Belady’s Anomaly How to track ages of pages? l Just use a FIFO queue Operating System Concepts Essentials – 9 th Edition 9. 20 Silberschatz, Galvin and Gagne © 2013

FIFO Illustrating Belady’s Anomaly Operating System Concepts Essentials – 9 th Edition 9. 21

FIFO Illustrating Belady’s Anomaly Operating System Concepts Essentials – 9 th Edition 9. 21 Silberschatz, Galvin and Gagne © 2013

Optimal Algorithm n Replace page that will not be used for longest period of

Optimal Algorithm n Replace page that will not be used for longest period of time l n How do you know this? l n 9 is optimal for the example Can’t read the future Used for measuring how well your algorithm performs Operating System Concepts Essentials – 9 th Edition 9. 22 Silberschatz, Galvin and Gagne © 2013

Least Recently Used (LRU) Algorithm n Use past knowledge rather than future n Replace

Least Recently Used (LRU) Algorithm n Use past knowledge rather than future n Replace page that has not been used in the most amount of time n Associate time of last use with each page n 12 faults – better than FIFO but worse than OPT n Generally good algorithm and frequently used n But how to implement? Operating System Concepts Essentials – 9 th Edition 9. 23 Silberschatz, Galvin and Gagne © 2013

End of Chapter 9 Operating System Concepts Essentials – 9 th Edition Silberschatz, Galvin

End of Chapter 9 Operating System Concepts Essentials – 9 th Edition Silberschatz, Galvin and Gagne © 2013