Chapter 10: Virtual Memory Background Demand Paging Page Replacement

Download Report

Transcript Chapter 10: Virtual Memory Background Demand Paging Page Replacement

Chapter 10: Virtual Memory
 Background
 Demand Paging
 Page Replacement
 Allocation of Frames
 Thrashing
 Operating System Example
Operating System Concepts
10.1
Silberschatz, Galvin and Gagne 2002
Virtual memory
 separation of logical memory from physical memory
 only part of the program must 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
implemented via:
 demand paging
 demand segmentation
Operating System Concepts
10.2
Silberschatz, Galvin and Gagne 2002
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
Operating System Concepts
10.4
Silberschatz, Galvin and Gagne 2002
Valid-Invalid Bit
 each page table entry has valid–invalid bit:
1  in-memory, 0  not-in-memory
 initially valid–invalid but is set to 0 on all entries
Frame #
valid-invalid bit
 Example:
1
1
1
1
0

0
0
page table
 if valid–invalid bit is 0  page fault
Operating System Concepts
10.6
Silberschatz, Galvin and Gagne 2002
Page Table When Some Pages Are Not in Main Memory
Operating System Concepts
10.7
Silberschatz, Galvin and Gagne 2002
Page Fault Procedure
1) first page reference will trap to OS  page fault
2) OS looks at another table to decide:
1) invalid reference  abort.
2) just not in memory
3) get empty frame
4) swap page into frame
5) reset tables, validation bit = 1
6) restart instruction
1) caution: is it restartable ?
Operating System Concepts
10.8
Silberschatz, Galvin and Gagne 2002
Steps in Handling a Page Fault
Operating System Concepts
10.9
Silberschatz, Galvin and Gagne 2002
What happens if there is no free frame?
 Page replacement
 find some page in memory, that is not in use
 Algorithm performance
 want an algorithm which will result in minimum number of
page faults
 Same pages may be paged in/out repeatedly
Operating System Concepts
10.10
Silberschatz, Galvin and Gagne 2002
Basic Page Replacement
1. Find the location of the desired page on disk
2. Find a free frame:
1. If there is a free frame, use it
2. If there is no free frame, use a page replacement
algorithm to select a victim frame
3. Read the desired page into the (newly) free frame.
Update the page and frame tables
4. Restart the process
Operating System Concepts
10.16
Silberschatz, Galvin and Gagne 2002
Page Replacement
Operating System Concepts
10.17
Silberschatz, Galvin and Gagne 2002
Page Replacement Algorithms
 Want lowest page-fault rate
 Evaluate algorithm:
 Consider series of memory references
(reference string)
 Compute the number of page faults
 Example: reference string
1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4, 2
Page number
Operating System Concepts
10.18
Silberschatz, Galvin and Gagne 2002
Graph of Page Faults Versus The Number of Frames
Operating System Concepts
10.19
Silberschatz, Galvin and Gagne 2002
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
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
Operating System Concepts
10.20
10 page faults
Silberschatz, Galvin and Gagne 2002
Optimal Algorithm
 Replace page that will not be used for longest 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 ? (predict future !)
 Used to measure quality of an algorithm
Operating System Concepts
10.22
Silberschatz, Galvin and Gagne 2002
Least Recently Used (LRU) Algorithm
 Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1
5
2
3
5
4
3
4
 Counter implementation
 Every page entry has a counter
 On page access, copy the clock into the counter
 When a page needs to be changed, compare counters
 Replace page with smallest counter
Operating System Concepts
10.23
Silberschatz, Galvin and Gagne 2002
Allocation of Frames
 Each process needs minimum number of pages
 Example:
IBM 370 – 6 pages for SS MOVE instruction:
 instruction is 6 bytes, might span 2 pages
 2 pages to handle from address
 2 pages to handle to address
 Two major allocation schemes:
 fixed allocation
 priority allocation
Operating System Concepts
10.28
Silberschatz, Galvin and Gagne 2002
Fixed Allocation
 Equal allocation
e.g., if 100 frames and 5 processes, give each 20
pages
 Proportional allocation,
allocate according to the size of process
si  size of process pi
m  64
si  10
S   si
s2  127
m  total number of frames
ai  allocation for pi
10
 64  5
137
127
a2 
 64  59
137
a1 
si
 m
S
Operating System Concepts
10.29
Silberschatz, Galvin and Gagne 2002
Priority Allocation
 Use a proportional allocation scheme using
priorities rather than size
 If process Pi generates a page fault,
 select for replacement one of its frames.
 select for replacement a frame from a process with
lower priority number
Operating System Concepts
10.30
Silberschatz, Galvin and Gagne 2002
Global vs. Local Allocation
 Global replacement
- process selects a replacement frame from
the set of all frames
- one process can take a frame from another
 Local replacement
- each process selects from only its own set
of frames
Operating System Concepts
10.31
Silberschatz, Galvin and Gagne 2002
Thrashing
 If a process does not have “enough” pages,
the page-fault rate is very high:
 process does page i/o
 low CPU utilization
 scheduler starts another process
 less memory per process
Operating System Concepts
10.32
Silberschatz, Galvin and Gagne 2002
Thrashing
 Why does paging work?
Locality model
 Process migrates from one locality to another
 Localities may overlap
 Why does thrashing occur?
 size of locality > total memory size
Operating System Concepts
10.33
Silberschatz, Galvin and Gagne 2002