ch9 Isra
ch9 Isra
Operating System Concepts – 8th Edition,! Silberschatz, Galvin and Gagne ©2009!
Chapter 9: Virtual Memory
■ Background"
■ Demand Paging"
■ Page Replacement "
■ Thrashing"
Operating System Concepts – 8th Edition! 9.2! Silberschatz, Galvin and Gagne ©2009!
Objectives
■ To describe the benefits of a virtual memory system
"
■ To explain the concepts of demand paging, page-replacement algorithms,
and allocation of page frames
"
■ To discuss the thrashing problem."
Operating System Concepts – 8th Edition! 9.3! Silberschatz, Galvin and Gagne ©2009!
Virtual Memory
■ Virtual memory is a technique that allows the execution of processes that are
not completely in memory. "
● One major advantage of this scheme is that programs can be larger than
physical memory. "
● Further, virtual memory abstracts main memory into an extremely large,
uniform array of storage, separating logical memory as viewed by the user
from physical memory. "
Operating System Concepts – 8th Edition! 9.4! Silberschatz, Galvin and Gagne ©2009!
Background
■ Virtual memory involves the separation of user logical memory from
physical memory."
● Only part of the program needs to be in memory for execution"
● Logical address space can therefore be much larger than physical
address space"
● Allows address spaces to be shared by several processes"
● Allows for more efficient process creation
"
■ Virtual memory can be implemented via:"
● Demand paging "
● Demand segmentation"
Operating System Concepts – 8th Edition! 9.5! Silberschatz, Galvin and Gagne ©2009!
Virtual Memory That is Larger Than Physical Memory
⇒"
Operating System Concepts – 8th Edition! 9.6! Silberschatz, Galvin and Gagne ©2009!
Virtual-address Space
Operating System Concepts – 8th Edition! 9.7! Silberschatz, Galvin and Gagne ©2009!
Shared Library Using Virtual Memory
Operating System Concepts – 8th Edition! 9.8! Silberschatz, Galvin and Gagne ©2009!
Demand Paging
■ Bring a page into memory only when it is needed"
● Less I/O needed"
● Less memory needed "
● Faster response"
● More users
"
■ Page is needed ⇒ reference to it"
● invalid reference ⇒ abort"
● not-in-memory ⇒ bring to memory"
■ Lazy swapper – never swaps a page into memory unless page will be
needed"
● Swapper that deals with pages is a pager!
"
Operating System Concepts – 8th Edition! 9.9! Silberschatz, Galvin and Gagne ©2009!
Transfer of a Paged Memory to Contiguous Disk Space
Operating System Concepts – 8th Edition! 9.10! Silberschatz, Galvin and Gagne ©2009!
Valid-Invalid Bit
■ 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"
■ Example of a page table snapshot:
i!
i!
page table"
"
■ During address translation, if valid–invalid bit in page table entry"
is I ⇒ page fault"
Operating System Concepts – 8th Edition! 9.11! Silberschatz, Galvin and Gagne ©2009!
Page Table When Some Pages Are Not in Main Memory
Operating System Concepts – 8th Edition! 9.12! Silberschatz, Galvin and Gagne ©2009!
Page Fault
Operating System Concepts – 8th Edition! 9.13! Silberschatz, Galvin and Gagne ©2009!
Steps in Handling a Page Fault
Operating System Concepts – 8th Edition! 9.14! Silberschatz, Galvin and Gagne ©2009!
Virtual to Physical Address Translation (Mapping)
Algorithm In The Paging Scheme
Operating System Concepts – 8th Edition! 9.15! Silberschatz, Galvin and Gagne ©2009!
IF p >= PTLR THEN trap ("Invalid page number")"
//* page# >= # of pages for this process *//"
IF p in TLB THEN "
"IF NOT AT in protection THEN trap ("memory-protection violation")"
"ELSE"
" ""Cache Hit""
" "Physical add. = frame# * page(frame) size + d"
"ENDIF"
ELSE"
IF in PT presence/absence bit (valid/invalid bit) = present (valid) THEN"
"// * this page is currently loaded in a frame of the main memory *//"
"IF NOT AT in protection THEN trap ("memory-protection violation")"
"ELSE"
" ""Cache Miss""
" "Physical add. = frame# * page(frame) size + d"
"ENDIF"
ELSE"
// * this page is not in the main memory, it's in the disk. must be swapped in according to the paging
replacement algorithm *//"
Trap ("page fault") ENDIF"
Operating System Concepts – 8th Edition! 9.16! Silberschatz, Galvin and Gagne ©2009!
Performance of Demand Paging
■ Demand paging can significantly affect the performance of a computer system. Let's
compute the effective access time for a demand-paged memory. "
● For most computer systems, the memory-access time (ma) ranges from 10 to 200
nanoseconds. "
● As long as we have no page faults, the effective access time is equal to the memory
access time. "
● If, however a page fault occurs, we must first read the relevant page from disk and
then access the desired word. "
■ 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)"
Operating System Concepts – 8th Edition! " 9.17! Silberschatz, Galvin and Gagne ©2009!
Demand Paging 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 (nanoseconds) "
= 200 + p x 7,999,800"
"
■ If one access out of 1,000 causes a page fault, then"
EAT = 8.2 microseconds= 8200 nanosecond "
This is a slowdown by a factor of 40!!"
Operating System Concepts – 8th Edition! 9.18! Silberschatz, Galvin and Gagne ©2009!
What happens if there is no free frame?
Operating System Concepts – 8th Edition! 9.19! Silberschatz, Galvin and Gagne ©2009!
Page Replacement
Operating System Concepts – 8th Edition! 9.20! Silberschatz, Galvin and Gagne ©2009!
Page Replacement
■ Prevent over-allocation of memory by modifying page-fault service routine to
include page replacement
"
■ Use modify (dirty) bit to reduce overhead of page transfers – only modified
pages are written to disk
"
■ Page replacement completes separation between logical memory and physical
memory – large virtual memory can be provided on a smaller physical memory"
Operating System Concepts – 8th Edition! 9.21! Silberschatz, Galvin and Gagne ©2009!
Need For Page Replacement
Operating System Concepts – 8th Edition! 9.22! Silberschatz, Galvin and Gagne ©2009!
Basic Page Replacement
Operating System Concepts – 8th Edition! 9.23! Silberschatz, Galvin and Gagne ©2009!
Page Replacement
Operating System Concepts – 8th Edition! 9.24! Silberschatz, Galvin and Gagne ©2009!
Page Replacement Algorithms
Operating System Concepts – 8th Edition! 9.25! Silberschatz, Galvin and Gagne ©2009!
Graph of Page Faults Versus The Number of Frames
Operating System Concepts – 8th Edition! 9.26! Silberschatz, Galvin and Gagne ©2009!
FIFO Page Replacement
■ The simplest page-replacement algorithm is a first-
in, first-out (FIFO) algorithm. "
■ A FIFO replacement algorithm associates with each
page the time when that page was brought into
memory (FIFO queue). "
■ When a page must be replaced, the oldest page is
chosen. "
■ The FIFO page-replacement algorithm is easy to
understand and program. However, its performance
is not always good. "
"
Operating System Concepts – 8th Edition! 9.27! Silberschatz, Galvin and Gagne ©2009!
FIFO Page Replacement
Operating System Concepts – 8th Edition! 9.28! Silberschatz, Galvin and Gagne ©2009!
First-In-First-Out (FIFO) Algorithm
■ Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5"
■ 3 frames (3 pages can be in memory at a time per process)"
"
" 1" 1" 4" 5"
Operating System Concepts – 8th Edition! 9.29! Silberschatz, Galvin and Gagne ©2009!
FIFO Illustrating Belady’s Anomaly
Operating System Concepts – 8th Edition! 9.30! Silberschatz, Galvin and Gagne ©2009!
Optimal Algorithm
■ An optimal page-replacement algorithm has the lowest page-fault rate of all
algorithms (called OPT or MIN). It is simply this: "
● Replace the page that will not be used for longest period of time!
■ 4 frames example : 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1" 4"
2" 6 page faults"
3"
4" 5"
"
■ How do you know this?"
■ Used for measuring how well your algorithm performs"
Operating System Concepts – 8th Edition! 9.31! Silberschatz, Galvin and Gagne ©2009!
Optimal Algorithm
■ An optimal page-replacement algorithm has the lowest page-fault rate of all
algorithms (called OPT or MIN). It is simply this: "
● Replace the page that will not be used for longest period of time!
■ 4 frames example : 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1" 4"
2" 6 page faults"
3"
4" 5"
"
■ How do you know this?"
■ Used for measuring how well your algorithm performs"
Operating System Concepts – 8th Edition! 9.32! Silberschatz, Galvin and Gagne ©2009!
Optimal Page Replacement
9 page faults
Operating System Concepts – 8th Edition! 9.33! Silberschatz, Galvin and Gagne ©2009!
Optimal Page Replacement
9 page faults
Operating System Concepts – 8th Edition! 9.34! Silberschatz, Galvin and Gagne ©2009!
Optimal Page Replacement
9 page faults
Operating System Concepts – 8th Edition! 9.35! Silberschatz, Galvin and Gagne ©2009!
Least Recently Used (LRU) Algorithm
■ replace the page that has not been used for the longest period of time "
■ Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1" 1" 1" 1" 5!
2" 2" 2" 2" 2"
3" 5! 5" 4! 4"
4" 4" 3! 3" 3"
"
"
■ Counter implementation"
● Every page entry has a time-of-use field; every time page is
referenced, copy the CPU clock/counter into the time-of-use field"
● When a page needs to be replaced, look at the time-of-use field
values to determine which page should be replaced"
"
Operating System Concepts – 8th Edition! 9.36! Silberschatz, Galvin and Gagne ©2009!
Least Recently Used (LRU) Algorithm
■ replace the page that has not been used for the longest period of time "
■ Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1" 1" 1" 1" 5!
2" 2" 2" 2" 2"
3" 5! 5" 4! 4"
4" 4" 3! 3" 3"
"
"
■ Counter implementation"
● Every page entry has a time-of-use field; every time page is
referenced, copy the CPU clock/counter into the time-of-use field"
● When a page needs to be replaced, look at the time-of-use field
values to determine which page should be replaced"
"
Operating System Concepts – 8th Edition! 9.37! Silberschatz, Galvin and Gagne ©2009!
LRU Page Replacement
12 page faults
Operating System Concepts – 8th Edition! 9.38! Silberschatz, Galvin and Gagne ©2009!
LRU Page Replacement
12 page faults
Operating System Concepts – 8th Edition! 9.39! Silberschatz, Galvin and Gagne ©2009!
LRU Page Replacement
12 page faults
Operating System Concepts – 8th Edition! 9.40! Silberschatz, Galvin and Gagne ©2009!
LRU Algorithm (Cont.)
■ Stack implementation – keep a stack of page numbers in a double link form:"
● When a page is referenced:"
! move it to the top"
! requires 6 pointers to be changed"
● No search for replacement"
Operating System Concepts – 8th Edition! 9.41! Silberschatz, Galvin and Gagne ©2009!
Use Of A Stack to Record The Most Recent Page
References
Operating System Concepts – 8th Edition! 9.42! Silberschatz, Galvin and Gagne ©2009!
Counting Algorithms
Operating System Concepts – 8th Edition! 9.43! Silberschatz, Galvin and Gagne ©2009!
Allocation of Frames
■ How do we allocate the fixed amount of free memory among the
various processes?"
■ Each process needs minimum number of pages"
■ Example: IBM 370 – 6 pages to handle storage location to storage
location MOVE instruction:"
● instruction is 6 bytes, might span 2 pages"
● 2 pages to handle from!
● 2 pages to handle to!
■ Two major allocation schemes"
● fixed allocation"
● priority allocation"
Operating System Concepts – 8th Edition! 9.44! Silberschatz, Galvin and Gagne ©2009!
Fixed Allocation
Operating System Concepts – 8th Edition! 9.45! Silberschatz, Galvin and Gagne ©2009!
Proportional allocation
we allocate available memory to each process according to its size.
si = size of process pi
S = ∑ si
m = total number of frames
s
ai = allocation for pi = i × m
S
m = 64
s1 = 10
s2 = 127
10
a1 = × 64 ≈ 5
137
127
a2 = × 64 ≈ 59
137
Operating System Concepts – 8th Edition! 9.46! Silberschatz, Galvin and Gagne ©2009!
Priority Allocation
Operating System Concepts – 8th Edition! 9.47! Silberschatz, Galvin and Gagne ©2009!
Global vs. Local Allocation
"
Operating System Concepts – 8th Edition! 9.48! Silberschatz, Galvin and Gagne ©2009!
Thrashing
■ If a process does not have “enough” frames, the page-fault rate is
very high. "
● If the process does not have the number of frames it needs to
support pages in active use, it will quickly page-fault. "
● At this point, it must replace some page. "
● However, since all its pages are in active use, it must replace a
page that will be needed again right away. "
● Consequently, it quickly faults again, and again, and again,
replacing pages that it must bring back in immediately.
"
■ Thrashing ≡ a process is busy swapping pages in and out, it is
spending more time paging than executing. "
"
Operating System Concepts – 8th Edition! 9.49! Silberschatz, Galvin and Gagne ©2009!
Cause of thrashing
■ This leads to:"
● low CPU utilization"
● operating system thinks that it needs to increase the degree of
multiprogramming"
● another process added to the systemà causing more page faults.
Operating System Concepts – 8th Edition! 9.50! Silberschatz, Galvin and Gagne ©2009!
Thrashing (Cont.)
Operating System Concepts – 8th Edition! 9.51! Silberschatz, Galvin and Gagne ©2009!
Demand Paging and Thrashing
Operating System Concepts – 8th Edition! 9.52! Silberschatz, Galvin and Gagne ©2009!
Thrashing
■ Working-Set Model."
■ Page-Fault Frequency Scheme."
Operating System Concepts – 8th Edition! 9.53! Silberschatz, Galvin and Gagne ©2009!
Working-Set Model
■ Δ ≡ working-set window ≡ a fixed number of page references
Example: 10,000 instruction"
■ WSSi (working set of Process Pi) =
total number of pages referenced in the most recent Δ (varies in
time)"
● if Δ too small will not encompass entire locality"
● if Δ too large will encompass several localities"
● if Δ = ∞ ⇒ will encompass entire program"
■ D = Σ WSSi ≡ total demand frames "
■ if D > m ⇒ Thrashing"
■ Policy if D > m, then suspend one of the processes"
Operating System Concepts – 8th Edition! 9.54! Silberschatz, Galvin and Gagne ©2009!
Working-set model
Operating System Concepts – 8th Edition! 9.55! Silberschatz, Galvin and Gagne ©2009!
Page-Fault Frequency Scheme
Operating System Concepts – 8th Edition! 9.56! Silberschatz, Galvin and Gagne ©2009!
Conclusion
Operating System Concepts – 8th Edition! 9.57! Silberschatz, Galvin and Gagne ©2009!
End of Chapter 9
Operating System Concepts – 8th Edition,! Silberschatz, Galvin and Gagne ©2009!