0% found this document useful (0 votes)
28 views

Paging in Real World

The document discusses different page replacement algorithms used in operating systems. It describes the FIFO, OPT, LRU, and Second Chance algorithms. FIFO replaces the oldest page accessed. OPT replaces the page that will not be used for the longest time in the future, but this is impossible to implement since the future is unknown. LRU approximates OPT by replacing the least recently used page. Second Chance is an approximation of LRU using reference bits. The document also discusses frame allocation techniques like fixed and priority allocation.

Uploaded by

elias ferhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

Paging in Real World

The document discusses different page replacement algorithms used in operating systems. It describes the FIFO, OPT, LRU, and Second Chance algorithms. FIFO replaces the oldest page accessed. OPT replaces the page that will not be used for the longest time in the future, but this is impossible to implement since the future is unknown. LRU approximates OPT by replacing the least recently used page. Second Chance is an approximation of LRU using reference bits. The document also discusses frame allocation techniques like fixed and priority allocation.

Uploaded by

elias ferhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Page Replacement Algorithms

MIN, OPT (optimal)


RANDOM
evict random page
FIFO (first-in, first-out)
give every page equal residency
LRU (least-recently used)
MRU (most-recently used)

1
Operating System Concepts – 9th Edition 9.1 Silberschatz, Galvin and Gagne ©2013
First-In-First-Out (FIFO) Algorithm
Reference string: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1
3 frames (3 pages can be in memory at a time per process)

15 page faults
Can vary by reference string: consider 1,2,3,4,1,2,5,1,2,3,4,5
Adding more frames can cause more page faults!
 Belady’s Anomaly
How to track ages of pages?
Just use a FIFO queue

Operating System Concepts – 9th Edition 9.2 Silberschatz, Galvin and Gagne ©2013
FIFO Illustrating Belady’s Anomaly

Operating System Concepts – 9th Edition 9.3 Silberschatz, Galvin and Gagne ©2013
Optimal Algorithm
Replace page that will not be used for longest period of time
9 is optimal for the example
How do you know this?
Can’t read the future
Used for measuring how well your algorithm performs

Operating System Concepts – 9th Edition 9.4 Silberschatz, Galvin and Gagne ©2013
Least Recently Used (LRU) Algorithm
Use past knowledge rather than future
Replace page that has not been used in the most amount of time
Associate time of last use with each page

12 faults – better than FIFO but worse than OPT


Generally good algorithm and frequently used
But how to implement?

Operating System Concepts – 9th Edition 9.5 Silberschatz, Galvin and Gagne ©2013
LRU Algorithm (Cont.)
Counter implementation
Every page entry has a counter; every time page is referenced
through this entry, copy the clock into the counter
When a page needs to be changed, look at the counters to find
smallest value
 Search through table needed
Stack implementation
Keep a stack of page numbers in a double link form:
Page referenced:
 move it to the top
 requires 6 pointers to be changed
But each update more expensive
No search for replacement
LRU and OPT are cases of stack algorithms that don’t have
Belady’s Anomaly

Operating System Concepts – 9th Edition 9.6 Silberschatz, Galvin and Gagne ©2013
Use Of A Stack to Record Most Recent Page References

Operating System Concepts – 9th Edition 9.7 Silberschatz, Galvin and Gagne ©2013
LRU Approximation Algorithms
LRU needs special hardware and still slow
Reference bit
With each page associate a bit, initially = 0
When page is referenced bit set to 1
Replace any with reference bit = 0 (if one exists)
 We do not know the order, however
Second-chance algorithm
Generally FIFO, plus hardware-provided reference bit
Clock replacement
If page to be replaced has
 Reference bit = 0 -> replace it
 reference bit = 1 then:
– set reference bit 0, leave page in memory
– replace next page, subject to same rules

Operating System Concepts – 9th Edition 9.8 Silberschatz, Galvin and Gagne ©2013
Second-Chance (clock) Page-Replacement Algorithm

Operating System Concepts – 9th Edition 9.9 Silberschatz, Galvin and Gagne ©2013
Enhanced Second-Chance Algorithm

Improve algorithm by using reference bit and modify bit (if


available) in concert
Take ordered pair (reference, modify)
1. (0, 0) neither recently used not modified – best page to replace
2. (0, 1) not recently used but modified – not quite as good, must
write out before replacement
3. (1, 0) recently used but clean – probably will be used again soon
4. (1, 1) recently used and modified – probably will be used again
soon and need to write out before replacement
When page replacement called for, use the clock scheme but
use the four classes replace page in lowest non-empty class
Might need to search circular queue several times

Operating System Concepts – 9th Edition 9.10 Silberschatz, Galvin and Gagne ©2013
Counting Algorithms

Keep a counter of the number of references that have been made


to each page
Not common

Lease Frequently Used (LFU) Algorithm: replaces page with


smallest count

Most Frequently Used (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 – 9th Edition 9.11 Silberschatz, Galvin and Gagne ©2013
Page-Buffering Algorithms
Keep a pool of free frames, always
Then frame available when needed, not found at fault time
Read page into free frame and select victim to evict and add
to free pool
When convenient, evict victim
Possibly, keep free frame contents intact and note what is in them
If referenced again before reused, no need to load contents
again from disk
Generally useful to reduce penalty if wrong victim frame
selected

Operating System Concepts – 9th Edition 9.12 Silberschatz, Galvin and Gagne ©2013
Applications and Page Replacement

All of these algorithms have OS guessing about future page


access
Some applications have better knowledge – i.e. databases
Memory intensive applications can cause double buffering
OS keeps copy of page in memory as I/O buffer
Application keeps page in memory for its own work
Operating system can given direct access to the disk, getting out
of the way of the applications
Raw disk mode
Bypasses buffering, locking, etc

Operating System Concepts – 9th Edition 9.13 Silberschatz, Galvin and Gagne ©2013
Allocation of Frames
Each process needs minimum number of frames
Defined by the computer architecture
Maximum of course is total frames in the system
Two major allocation schemes
fixed allocation
priority allocation
Many variations

Operating System Concepts – 9th Edition 9.14 Silberschatz, Galvin and Gagne ©2013
Fixed Allocation
Equal allocation – For example, if there are 100 frames (after
allocating frames for the OS) and 5 processes, give each process
20 frames
Keep some as free frame buffer pool

Proportional allocation – Allocate according to the size of process


Dynamic as degree of multiprogramming, process sizes
change
m  64
si  size of process pi s1  10
S   si s2  127
m  total number of frames a1 
10
 62  4
137
si
ai  allocation for pi  m 127
S a2   62  57
137

Operating System Concepts – 9th Edition 9.15 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 9.16 Silberschatz, Galvin and Gagne ©2013
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
But then process execution time can vary greatly
But greater throughput so more common

Local replacement – each process selects from only its own


set of allocated frames
More consistent per-process performance
But possibly underutilized memory

Operating System Concepts – 9th Edition 9.17 Silberschatz, Galvin and Gagne ©2013
Thrashing
If a process does not have “enough” pages, the page-fault rate is
very high
Page fault to get page
Replace existing frame
But quickly need replaced frame back
This leads to:
 Low CPU utilization
 Operating system thinking that it needs to increase the
degree of multiprogramming
 Another process added to the system

Thrashing  a process is busy swapping pages in and out

Operating System Concepts – 9th Edition 9.18 Silberschatz, Galvin and Gagne ©2013
Thrashing (Cont.)

Operating System Concepts – 9th Edition 9.19 Silberschatz, Galvin and Gagne ©2013
Demand Paging and Thrashing
Why does demand paging work?
Locality model
A locality is a set of pages actively used together
Process migrates from one locality to another
Localities may overlap
Localities are defined by the program structure and its data
structure

Why does thrashing occur?


 size of locality > total memory size
Limit effects by using local or priority page replacement

Operating System Concepts – 9th Edition 9.20 Silberschatz, Galvin and Gagne ©2013
Locality In A Memory-Reference Pattern
34

32

30

28
memory address

26

24

22
page numbers

20

18

execution time

Operating System Concepts – 9th Edition 9.21 Silberschatz, Galvin and Gagne ©2013
Working-Set Model
  working-set window  a fixed number of page references
Example: 10,000 instructions
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
Approximation of locality
if D > m  Thrashing
Policy if D > m, then suspend or swap out one of the processes

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

Operating System Concepts – 9th Edition 9.23 Silberschatz, Galvin and Gagne ©2013
Page-Fault Frequency
More direct approach than WSS
Establish “acceptable” page-fault frequency (PFF) rate
and use local replacement policy
If actual rate too low, process loses frame
If actual rate too high, process gains frame

Operating System Concepts – 9th Edition 9.24 Silberschatz, Galvin and Gagne ©2013
Working Sets and Page Fault Rates
n Direct relationship between working set of a process and its
page-fault rate
n Working set changes over time
n Peaks and valleys over time

Operating System Concepts – 9th Edition 9.25 Silberschatz, Galvin and Gagne ©2013

You might also like