os fall02 virtual memory: page replacement operating systems fall 2002
TRANSCRIPT
![Page 1: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/1.jpg)
OS Fall’02
Virtual Memory: Page Replacement
Operating Systems Fall 2002
![Page 2: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/2.jpg)
OS Fall’02
Realizing Virtual Memory Hardware support
Memory Management Unit (MMU): address translation, bits, interrupts
Operating system supportPage replacement policyResident set managementLoad control degree of multiprogramming
![Page 3: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/3.jpg)
OS Fall’02
Page Replacement Policy Resident set maintenance
Fixed or variable allocation Per-process or global replacement
Page replacement problemA fixed number of frames, M, is used to map the process virtual memory pagesWhich page should be replaced when a page fault occurs and all M frames are occupied?
![Page 4: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/4.jpg)
OS Fall’02
Requirements and Metrics Workload: a sequence of virtual
memory references (page numbers) Page fault rate =
#page faults/#memory references Minimize the page fault rate for
workloads obeying the principle of locality
Keep hardware/software overhead as small as possible
![Page 5: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/5.jpg)
OS Fall’02
Algorithms Optimal (OPT) Least Recently Used (LRU) First-In-First-Out (FIFO) Clock
![Page 6: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/6.jpg)
OS Fall’02
Optimal Policy (OPT) Replace the page which will be
referenced again in the most remote future
Impossible to implementWhy?
Serves as a baseline for other algorithms
![Page 7: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/7.jpg)
OS Fall’02
Least Recently Used (LRU) Replace the page that has not been
referenced for the longest time The best approximation of OPT for
the locality constrained workloads Possible to implement Infeasible as the overhead is high
Why?
![Page 8: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/8.jpg)
OS Fall’02
First-In-First-Out (FIFO) Page frames are organized in a
circular buffer with a roving pointer Pages are replaced in round-robin
styleWhen page fault occur, replace the page to which the pointer points to
Simple to implement, low overhead High page fault rate, prone to
anomalous behavior
![Page 9: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/9.jpg)
OS Fall’02
Clock (second chance) Similar to FIFO but takes page usage
into accountCircular buffer + page use bitWhen a page is referenced: set use_bit=1When a page fault occur: For each page:
if use_bit==1: give page a second chance: use_bit=0; continue scan;
if use_bit==0: replace the page
![Page 10: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/10.jpg)
OS Fall’02
Example: Page 727 is needed
0
1
2
3
4
56
7
8
n
.
.
.
Page 9use = 1
Page 19use = 1
Page 1use = 0
Page 45use = 1
Page 191use = 1
Page 556use = 0
Page 13use = 0
Page 67use = 1
Page 33use = 1
Page 222use = 0
next frame pointer
![Page 11: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/11.jpg)
OS Fall’02
After replacement0
1
2
3
4
56
7
8
n
.
.
.
Page 9use = 1
Page 19use = 1
Page 1use = 0
Page 45use = 0
Page 191use = 0
Page 727use = 0
Page 13use = 0
Page 67use = 1
Page 33use = 1
Page 222use = 0
next frame pointer
![Page 12: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/12.jpg)
OS Fall’02
Example of all algorithms
![Page 13: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/13.jpg)
OS Fall’02
LRU and non-local workloads Workload: 1 2 3 4 5 1 2 3 4 5…
Typical for array based applications
What is the page fault rate for M=1,…,5?
A possible alternative is to use a Most Recently Use (MRU) replacement policy
![Page 14: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/14.jpg)
OS Fall’02
Belady’s Anomaly It is reasonable to expect that
regardless of a workload, the number of page faults should not increase if we add more frames: not true for the FIFO policy:
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1
2
3
1
2
3
4
1
2
5
3
4
1
2
3
1
2
3
5
1
2
4
5
44 3
![Page 15: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/15.jpg)
OS Fall’02
Algorithm comparison
![Page 16: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/16.jpg)
OS Fall’02
Clock algorithm with 2 bits Use “modified” bit to evict
unmodified (clean) pages in preference over modified (dirty) pages
Four classes:u=0; m=0: not recently used, cleanu=0; m=1: not recently used, dirtyu=1; m=0: recently used, cleanu=1; m=1: recently used, dirty
![Page 17: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/17.jpg)
OS Fall’02
First scan: look for (0,0) frame, do not change the use bit
If (0,0) frame is found, replace it
Second scan: look for (0,1) frame, set use bit to 0 in each frame bypassed
If (0,1) frame is found, replace it
If all failed, repeat the above procedure
this time we will certainly find something
Clock algorithm with 2 bits
![Page 18: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/18.jpg)
OS Fall’02
Page buffering Evicted pages are kept on two lists:
free and modified page lists
Pages are read into the frames on the free page list
Pages are written to disk in large chunks from the modified page list
If an evicted page is referenced, and it is still on one of the lists, it is made valid at a very low cost
![Page 19: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/19.jpg)
OS Fall’02
Resident set management With multiprogramming, a fixed
number of memory frames are shared among multiple processes
How should the frames be partitioned among the active processes?
Resident set is the set of process pages currently allocated to the memory frames
![Page 20: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/20.jpg)
OS Fall’02
The working set model [Denning’68]
Working set is the set of pages in the most recent page references
Working set is an approximation of the program locality
![Page 21: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/21.jpg)
OS Fall’02
The working set strategy Monitor the working set for each
currently active process Adjust the number of pages
assigned to each process according to its working set size
Monitoring working set is impractical The optimal value of is unknown
and would vary
![Page 22: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/22.jpg)
OS Fall’02
Approximating the WS Global page replacement
All memory frames are candidates for page eviction a faulting process may evict a page of other
process
Processes with larger WS are expanding whereas those with smaller WS are shrinking
Problem: may unjustly reduce the WS of some processes
Combine with page buffering
![Page 23: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/23.jpg)
OS Fall’02
Approximating the WS Local page replacement
Only the memory frames of a faulting process are candidates for replacement
Dynamically adjust the process allocation
Page-Fault Frequency (PFF) algorithm
![Page 24: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/24.jpg)
OS Fall’02
Page-Fault Frequency (PFF) Approximate the page-fault frequency:
Count all memory references for each active processWhen a page fault occurs, compare the current counter value with the previous page fault counter value for the faulting processIf < F, expand the WS; Otherwise, shrink the WS by discarding pages with use_bit==0
![Page 25: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/25.jpg)
OS Fall’02
Multiprogramming level Too many processes in memory
Thrashing, inability to run new processes
The solution is swapping: save all the resident set of a process to the disk (swapping out)load the pages of another process instead (swapping in)
Long-term and medium term scheduling decides which processes to swap in/out
![Page 26: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/26.jpg)
OS Fall’02
Long (medium) term scheduling
Decision of which processes to swap out/in is based on
The CPU usageCreating a balanced job mix with respect to I/O vs. CPU bound processes
Two new process states: Ready swappedBlocked swapped
![Page 27: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/27.jpg)
OS Fall’02
UNIX process statesrunning
user
runningkernel
readyuser
readykernel
blocked
zombie
sys. callinterrupt
schedule
created
return
terminated
wait for event
event done
schedule
preempt
interrupt
readyswapped
blockedswapped
Swap out
event done
Swap outSwap in
![Page 28: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/28.jpg)
OS Fall’02
Segmentation with paging Segmentation
simplifies protection and sharing, enforce modularity, but prone to external fragmentation
Paging transparent, eliminates ext. fragmentation, allows for sophisticated memory management
Segmentation and paging can be combined
![Page 29: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/29.jpg)
OS Fall’02
Address translation
Main Memory
PageFrame
Offset
Paging
Page Table
P#
+
Frame # Offset
Seg Table Ptr
+S #
SegmentationProgram
SegmentTable
Seg # Page # Offset
![Page 30: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/30.jpg)
OS Fall’02
Page size considerations Small page size
better approximates localitylarge page tablesinefficient disk transfer
Large page sizeinternal fragmentation
Most modern architectures support a number of different page sizes
a configurable system parameter
![Page 31: OS Fall02 Virtual Memory: Page Replacement Operating Systems Fall 2002](https://reader036.vdocuments.us/reader036/viewer/2022070306/5519c8d8550346047c8b4912/html5/thumbnails/31.jpg)
OS Fall’02
Next: File system, disks, etc