# Page-Replacement Algorithms

```Page-Replacement Algorithms
A page replacement algorithm picks a page to
paged out and free up a frame
• FIFO — first-in, first-out
• Optimal — the one that leads to the least faults
• LRU — least-recently used
• LRU approximations
1
FIFO
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 0 1 2 2 3 0 4 2 3 0 0 0 1 2 2 2 7 0 1
7 0 1 1 2 3 0 4 2 3 3 3 0 1 1 1 2 7 0
7 0 0 1 2 3 0 4 2 2 2 3 0 0 0 1 2 7
1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 5 5 3 4 4
1 2 3 4 1 2 2 2 5 3 3
1 2 3 4 1 1 1 2 5 5
1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 4 4 5 1 2 3 4 5
1 2 3 3 3 4 5 1 2 3 4
1 2 2 2 3 4 5 1 2 3
1 1 1 2 3 4 5 1 2
anomaly:
more frames
can be worse
2-5
Optimal
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7
0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0
1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1
1 2 3 4 1 2 5 1 2 3 4 5
1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 3 4 4
3 4 4 4 5 5 5 5 5 5
1 2 3 4 1 2 5 1 2 3 4 5
1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 4 4
4 4 4 5 5 5 5 5 5
But how do
you predict
the future?
6-7
LRU
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
70 71 72 20 21 22 23 40 41 42 00 01 02 10 11 12 10 11 12 10
00 01 02 00 01 00 01 02 30 31 30 31 32 33 00 01 02 00 01
10 11 12 30 31 32 20 21 22 23 20 21 20 21 22 70 71 72
1 2 3 4 1 2 5 1 2 3 4 5
10 11 12 40 41 42 50 51 52 30 31 32
20 21 22 10 11 12 10 11 12 40 41
30 31 32 20 21 22 20 21 22 50
1 2 3 4 1 2 5 1 2 3 4 5
10 11 12 13 10 11 12 10 11 12 13 50
20 21 22 23 20 21 22 20 21 22 23
30 31 32 33 50 51 52 53 40 41
40 41 42 43 44 45 30 31 32
Searching all
times is
expensive on
fault; keeping
a sorted list is
expensive on
access
8-9
Second Chance
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
71 71 71 21 21 21 21 41 41 41 40 31 31 30 30 01 01 00 01 01
01 01 00 01 00 01 00 21 21 20 20 21 11 11 11 11 71 71 71
11 10 10 31 31 30 30 31 01 01 01 00 21 21 21 20 20 11
1 2 3 4 1 2 5 1 2 3 4 5
11 11 11 41 41 41 51 51 51 50 50 51
21 21 20 11 11 10 11 11 31 31 31
31 30 30 21 20 20 21 20 41 41
1 2 3 4 1 2 5 1 2 3 4 5
11 11 11 11 11 11 51 51 51 51 41 41
21 21 21 21 21 20 11 11 11 10 51
31 31 31 31 30 30 21 21 20 20
41 41 41 40 40 40 31 30 30
10
Second Chance
11
Enhanced Second Chance
Track both use and modifies (relative to copy on
disk):
• Not used, Not modified — good to replace
• Not used, Modified — ok, but have to write out
• Used, Not modified — rather keep it
• Used, Modified — really rather keep it
12
Allocating Frames
Frame allocation can be defined orthogonal to
page replacement:
• Allocation algorithm determines candidate pages
to evict
• Replacement algorithm picks a specific page to
evict
• Local allocation: each process has some frames
• Global allocation: frames shared among all
processes
13
Thrashing
#define SIZE (1024*1024*32)
int main (void)
{
while (1) {
char *x;
int i;
x = (char *) malloc (SIZE);
for (i=0; i&lt;SIZE; i++) x[i] = 1;
fork();
}
}
14
Thrashing
15
Measuring Working Set
16
Interaction with I/O
• Some memory is used for a disk cache
• Communicating with an I/O device may require
physical memory ⇒ lock bits
• Memory-mapped files ⇒ shared memory
17
```