Chapter 9 Virtual Memory Operating System Concepts 8

  • Slides: 53
Download presentation
Chapter 9: Virtual Memory Operating System Concepts – 8 th Edition, Silberschatz, Galvin and

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

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 n Allocation of Frames n Thrashing Operating System Concepts – 8 th Edition 9. 2 Silberschatz, Galvin and Gagne © 2009

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 discuss the principle of the working-set model Operating System Concepts – 8 th Edition 9. 3 Silberschatz, Galvin and Gagne © 2009

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 n Virtual memory can be implemented via: l Demand paging l Demand segmentation Operating System Concepts – 8 th Edition 9. 4 Silberschatz, Galvin and Gagne © 2009

Virtual Memory That is Larger Than Physical Memory Operating System Concepts – 8 th

Virtual Memory That is Larger Than Physical Memory Operating System Concepts – 8 th Edition 9. 5 Silberschatz, Galvin and Gagne © 2009

Virtual-address Space Operating System Concepts – 8 th Edition 9. 6 Silberschatz, Galvin and

Virtual-address Space Operating System Concepts – 8 th Edition 9. 6 Silberschatz, Galvin and Gagne © 2009

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

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

Demand Paging n Bring a page into memory only when it is needed l

Demand Paging n Bring a page into memory only when it is needed l Less I/O needed l Less memory needed l Faster response l More users 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 – 8 th Edition 9. 8 Silberschatz, Galvin and Gagne © 2009

Transfer of a Paged Memory to Contiguous Disk Space Operating System Concepts – 8

Transfer of a Paged Memory to Contiguous Disk Space Operating System Concepts – 8 th Edition 9. 9 Silberschatz, Galvin and Gagne © 2009

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, i not-in-memory) Initially valid–invalid bit is set to i on all entries n Example of a page table snapshot: n Frame # valid-invalid bit v v i …. i i page table n During address translation, if valid–invalid bit in page table entry is I page fault Operating System Concepts – 8 th Edition 9. 10 Silberschatz, Galvin and Gagne © 2009

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

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

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 1. 2. 3. 4. 5. trap to operating system: page fault Operating system looks at another table to decide: l Invalid reference abort l Just not in memory Get empty frame Swap page into frame Reset tables Set validation bit = v 6. Restart the instruction that caused the page fault Operating System Concepts – 8 th Edition 9. 12 Silberschatz, Galvin and Gagne © 2009

Page Fault (Cont. ) n Restart instruction l block move l auto increment/decrement location

Page Fault (Cont. ) n Restart instruction l block move l auto increment/decrement location Operating System Concepts – 8 th Edition 9. 13 Silberschatz, Galvin and Gagne © 2009

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

Steps in Handling a Page Fault Operating System Concepts – 8 th Edition 9. 14 Silberschatz, Galvin and Gagne © 2009

Performance of Demand Paging n Page Fault Rate 0 p 1. 0 l if

Performance of Demand Paging n Page Fault Rate 0 p 1. 0 l if p = 0 no page faults l if p = 1, every reference is a fault n Effective Access Time (EAT) EAT = (1 – p) x memory access + p (page fault overhead + swap page out + swap page in + restart overhead ) Operating System Concepts – 8 th Edition 9. 15 Silberschatz, Galvin and Gagne © 2009

Demand Paging Example n Memory access time = 200 nanoseconds n Average page-fault service

Demand Paging Example n Memory access time = 200 nanoseconds n Average page-fault service time = 8 milliseconds n EAT = (1 – p) x 200 + p (8 milliseconds) = (1 – p x 200 + p x 8, 000 = 200 + p x 7, 999, 800 n 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!! Operating System Concepts – 8 th Edition 9. 16 Silberschatz, Galvin and Gagne © 2009

Process Creation n Virtual memory allows other benefits during process creation: - Copy-on-Write -

Process Creation n Virtual memory allows other benefits during process creation: - Copy-on-Write - Memory-Mapped Files (later) Operating System Concepts – 8 th Edition 9. 17 Silberschatz, Galvin and Gagne © 2009

Copy-on-Write n Copy-on-Write (COW) allows both parent and child processes to initially share the

Copy-on-Write n 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, only then is the page copied n COW allows more efficient process creation as only modified pages are copied n Free pages are allocated from a pool of zeroed-out pages Operating System Concepts – 8 th Edition 9. 18 Silberschatz, Galvin and Gagne © 2009

Before Process 1 Modifies Page C Operating System Concepts – 8 th Edition 9.

Before Process 1 Modifies Page C Operating System Concepts – 8 th Edition 9. 19 Silberschatz, Galvin and Gagne © 2009

After Process 1 Modifies Page C Operating System Concepts – 8 th Edition 9.

After Process 1 Modifies Page C Operating System Concepts – 8 th Edition 9. 20 Silberschatz, Galvin and Gagne © 2009

What happens if there is no free frame? n Page replacement – find some

What happens if there is no free frame? n Page replacement – find some page in memory, but not really in use, swap it out l algorithm 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 – 8 th Edition 9. 21 Silberschatz, Galvin and Gagne © 2009

Page Replacement n Prevent over-allocation of memory by modifying page-fault service routine to include

Page Replacement n Prevent over-allocation of memory by modifying page-fault service routine to include page replacement n Use modify (dirty) bit to reduce overhead of page transfers – only modified pages are written to disk n Page replacement completes separation between logical memory and physical memory – large virtual memory can be provided on a smaller physical memory Operating System Concepts – 8 th Edition 9. 22 Silberschatz, Galvin and Gagne © 2009

Need For Page Replacement Operating System Concepts – 8 th Edition 9. 23 Silberschatz,

Need For Page Replacement Operating System Concepts – 8 th Edition 9. 23 Silberschatz, Galvin and Gagne © 2009

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 3. Bring the desired page into the (newly) free frame; update the page and frame tables 4. Restart the process Operating System Concepts – 8 th Edition 9. 24 Silberschatz, Galvin and Gagne © 2009

Page Replacement Operating System Concepts – 8 th Edition 9. 25 Silberschatz, Galvin and

Page Replacement Operating System Concepts – 8 th Edition 9. 25 Silberschatz, Galvin and Gagne © 2009

Page Replacement Algorithms n Want lowest page-fault rate n Evaluate algorithm by running it

Page Replacement Algorithms n Want lowest page-fault rate 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 n In all our examples, the reference string is 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Operating System Concepts – 8 th Edition 9. 26 Silberschatz, Galvin and Gagne © 2009

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

Graph of Page Faults Versus The Number of Frames Operating System Concepts – 8 th Edition 9. 27 Silberschatz, Galvin and Gagne © 2009

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

First-In-First-Out (FIFO) Algorithm n Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 n 3 frames (3 pages can be in memory at a time per process) n n 1 1 4 5 2 2 1 3 3 3 2 4 1 1 5 4 2 2 1 5 3 3 2 4 4 3 9 page faults 4 frames 10 page faults Belady’s Anomaly: more frames more page faults Operating System Concepts – 8 th Edition 9. 28 Silberschatz, Galvin and Gagne © 2009

FIFO Page Replacement Operating System Concepts – 8 th Edition 9. 29 Silberschatz, Galvin

FIFO Page Replacement Operating System Concepts – 8 th Edition 9. 29 Silberschatz, Galvin and Gagne © 2009

FIFO Illustrating Belady’s Anomaly Operating System Concepts – 8 th Edition 9. 30 Silberschatz,

FIFO Illustrating Belady’s Anomaly Operating System Concepts – 8 th Edition 9. 30 Silberschatz, Galvin and Gagne © 2009

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 n 4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 4 2 6 page faults 3 4 5 n How do you know this? n Used for measuring how well your algorithm performs Operating System Concepts – 8 th Edition 9. 31 Silberschatz, Galvin and Gagne © 2009

Optimal Page Replacement Operating System Concepts – 8 th Edition 9. 32 Silberschatz, Galvin

Optimal Page Replacement Operating System Concepts – 8 th Edition 9. 32 Silberschatz, Galvin and Gagne © 2009

Least Recently Used (LRU) Algorithm n Reference string: 1, 2, 3, 4, 1, 2,

Least Recently Used (LRU) Algorithm n Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 1 5 2 2 2 3 5 5 4 4 3 3 3 n Counter implementation l Every page entry has a counter; every time page is referenced through this entry, copy the clock into the counter l When a page needs to be changed, look at the counters to determine which are to change Operating System Concepts – 8 th Edition 9. 33 Silberschatz, Galvin and Gagne © 2009

LRU Page Replacement Operating System Concepts – 8 th Edition 9. 34 Silberschatz, Galvin

LRU Page Replacement Operating System Concepts – 8 th Edition 9. 34 Silberschatz, Galvin and Gagne © 2009

LRU Algorithm (Cont. ) n Stack implementation – keep a stack of page numbers

LRU Algorithm (Cont. ) n Stack implementation – keep a stack of page numbers in a double link form: l Page referenced: 4 move it to the top 4 requires l 6 pointers to be changed No search for replacement Operating System Concepts – 8 th Edition 9. 35 Silberschatz, Galvin and Gagne © 2009

Use Of A Stack to Record The Most Recent Page References Operating System Concepts

Use Of A Stack to Record The Most Recent Page References Operating System Concepts – 8 th Edition 9. 36 Silberschatz, Galvin and Gagne © 2009

LRU Approximation Algorithms n Reference bit l With each page associate a bit, initially

LRU Approximation Algorithms n Reference bit l With each page associate a bit, initially = 0 l When page is referenced bit set to 1 l Replace the one which is 0 (if one exists) 4 We do not know the order, however n Second chance l Need reference bit l Clock replacement l If page to be replaced (in clock order) has reference bit = 1 then: 4 set reference bit 0 4 leave page in memory 4 replace next page (in clock order), subject to same rules Operating System Concepts – 8 th Edition 9. 37 Silberschatz, Galvin and Gagne © 2009

Second-Chance (clock) Page-Replacement Algorithm Operating System Concepts – 8 th Edition 9. 38 Silberschatz,

Second-Chance (clock) Page-Replacement Algorithm Operating System Concepts – 8 th Edition 9. 38 Silberschatz, Galvin and Gagne © 2009

Counting Algorithms n Keep a counter of the number of references that have been

Counting Algorithms n Keep a counter of the number of references that have been made to each page n LFU Algorithm: replaces page with smallest count n MFU Algorithm: based on the argument that the page with the smallest count was probably just brought in and has yet to be used Operating System Concepts – 8 th Edition 9. 39 Silberschatz, Galvin and Gagne © 2009

Allocation of Frames n Each process needs minimum number of pages n Example: IBM

Allocation of Frames n Each process needs minimum number of pages n Example: IBM 370 – 6 pages to handle SS MOVE instruction: l instruction is 6 bytes, might span 2 pages l 2 pages to handle from l 2 pages to handle to n Two major allocation schemes l fixed allocation l priority allocation Operating System Concepts – 8 th Edition 9. 40 Silberschatz, Galvin and Gagne © 2009

Fixed Allocation n Equal allocation – For example, if there are 100 frames and

Fixed Allocation n Equal allocation – For example, if there are 100 frames and 5 processes, give each process 20 frames. n Proportional allocation – Allocate according to the size of process Operating System Concepts – 8 th Edition 9. 41 Silberschatz, Galvin and Gagne © 2009

Priority Allocation n Use a proportional allocation scheme using priorities rather than size n

Priority Allocation n Use a proportional allocation scheme using priorities rather than size n If process Pi generates a page fault, l select for replacement one of its frames l select for replacement a frame from a process with lower priority number Operating System Concepts – 8 th Edition 9. 42 Silberschatz, Galvin and Gagne © 2009

Global vs. Local Allocation n Global replacement – process selects a replacement frame from

Global vs. Local Allocation n Global replacement – process selects a replacement frame from the set of all frames; one process can take a frame from another n Local replacement – each process selects from only its own set of allocated frames Operating System Concepts – 8 th Edition 9. 43 Silberschatz, Galvin and Gagne © 2009

Thrashing n If a process does not have “enough” pages, the page-fault rate is

Thrashing n If a process does not have “enough” pages, the page-fault rate is very high. This leads to: l low CPU utilization l operating system thinks that it needs to increase the degree of multiprogramming l another process added to the system n Thrashing a process is busy swapping pages in and out Operating System Concepts – 8 th Edition 9. 44 Silberschatz, Galvin and Gagne © 2009

Thrashing (Cont. ) Operating System Concepts – 8 th Edition 9. 45 Silberschatz, Galvin

Thrashing (Cont. ) Operating System Concepts – 8 th Edition 9. 45 Silberschatz, Galvin and Gagne © 2009

Demand Paging and Thrashing n n Why does demand paging work? Locality model l

Demand Paging and Thrashing n n Why does demand paging work? Locality model l Process migrates from one locality to another l Localities may overlap Why does thrashing occur? size of locality > total memory size Operating System Concepts – 8 th Edition 9. 46 Silberschatz, Galvin and Gagne © 2009

Locality In A Memory-Reference Pattern Operating System Concepts – 8 th Edition 9. 47

Locality In A Memory-Reference Pattern Operating System Concepts – 8 th Edition 9. 47 Silberschatz, Galvin and Gagne © 2009

Working-Set Model n working-set window a fixed number of page references Example: 10, 000

Working-Set Model n working-set window a fixed number of page references Example: 10, 000 instruction n WSSi (working set of Process Pi) = total number of pages referenced in the most recent (varies in time) l if too small will not encompass entire locality l if too large will encompass several localities l if = will encompass entire program n D = WSSi total demand frames n if D > m Thrashing n Policy if D > m, then suspend one of the processes Operating System Concepts – 8 th Edition 9. 48 Silberschatz, Galvin and Gagne © 2009

Working-set model Operating System Concepts – 8 th Edition 9. 49 Silberschatz, Galvin and

Working-set model Operating System Concepts – 8 th Edition 9. 49 Silberschatz, Galvin and Gagne © 2009

Keeping Track of the Working Set n Approximate with interval timer + a reference

Keeping Track of the Working Set n Approximate with interval timer + a reference bit n Example: = 10, 000 l Timer interrupts after every 5000 time units l Keep in memory 2 bits for each page l Whenever a timer interrupts copy and sets the values of all reference bits to 0 l If one of the bits in memory = 1 page in working set n Why is this not completely accurate? n Improvement = 10 bits and interrupt every 1000 time units Operating System Concepts – 8 th Edition 9. 50 Silberschatz, Galvin and Gagne © 2009

Page-Fault Frequency Scheme n Establish “acceptable” page-fault rate l If actual rate too low,

Page-Fault Frequency Scheme n Establish “acceptable” page-fault rate l If actual rate too low, process loses frame l If actual rate too high, process gains frame Operating System Concepts – 8 th Edition 9. 51 Silberschatz, Galvin and Gagne © 2009

Working Sets and Page Fault Rates Operating System Concepts – 8 th Edition 9.

Working Sets and Page Fault Rates Operating System Concepts – 8 th Edition 9. 52 Silberschatz, Galvin and Gagne © 2009

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

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