Professional Documents
Culture Documents
Page Replacement Algorithms: Virtual Memory Management
Page Replacement Algorithms: Virtual Memory Management
Issues:
Placement strategies
User Program n
....
User Program 2
User Program 1
Replacement strategies
Operating System
Memory
p
p
p g of the faulting
g process
p
Local replacement
Replace
a page
Global
Possibly
the
Gl b l replacement
l
P ibl replace
l
h page of
f another
h process
Hardware can tell OS when a new page is loaded into the TLB
Set a used bit in the page table entry
Increment or shift a register
better performance
Time
Page
Frames
F
Requests
0
1
2
3
1
c
2
a
3
d
4
b
5
e
6
b
7
a
8
b
9
c
10
d
a
b
c
d
Faults
Time page
needed next
5
Time
1
c
2
a
3
d
4
b
5
e
6
b
7
a
8
b
9
c
10
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
e
a
b
c
e
a
b
c
e
a
b
c
e
a
b
c
e
d
b
c
e
Page
Frames
F
Requests
0
1
2
3
Faults
Time page
needed next
a=7
b=6
c=9
d = 10
a = 15
b = 11
c = 13
d = 14
6
Frame List
Page
Frames
Time
Requests
0
1
2
3
1
c
2
a
Physical
Memory
3
0
2
Simple to implement
3
d
4
b
5
e
6
b
7
a
8
b
9
c
10
d
a
b
c
d
Faults
7
Frame List
Page
Frames
Time
Requests
0
1
2
3
Faults
0
a
b
c
d
1
c
a
b
c
d
2
a
a
b
c
d
Physical
Memory
3
0
2
Simple to implement
3
d
a
b
c
d
4
b
a
b
c
d
5
e
e
b
c
d
6
b
e
b
c
d
7
a
e
a
c
d
8
b
e
a
b
d
9
c
e
a
b
c
10
d
d
a
b
c
Page
Frames
F
Time
Requests
0
1
2
3
1
c
2
a
3
d
4
b
5
e
6
b
7
a
8
b
9
c
10
d
a
b
c
d
Faults
Time page
last used
9
Page
Frames
F
Time
Requests
0
1
2
3
0
a
b
c
d
1
c
a
b
c
d
2
a
a
b
c
d
3
d
a
b
c
d
4
b
a
b
c
d
6
b
a
b
e
d
7
a
a
b
e
d
8
b
a
b
e
d
Faults
Time page
last used
5
e
a
b
e
d
a=2
b=4
c=1
d=3
a=7
b=8
e=5
d=3
9
c
a
b
e
c
10
d
a
b
d
c
a=7
b=8
e=5
c=9
10
Page
Frames
Time
Requests
R
t
0
1
2
3
1
c
2
a
3
d
4
b
5
e
6
b
7
a
8
b
9
c
10
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
e
d
a
b
e
d
a
b
e
d
a
b
e
d
a
b
e
c
a
b
d
c
c
b
a
e
d
c
b
a
Faults
c
LRU
page stack
a
c
d
a
c
b
d
a
c
Page to replace
e
b
d
a
b
e
d
a
a
b
e
d
b
a
e
d
11
Page
Frames
Time
Requests
R
t
0
1
2
3
1
c
2
a
3
d
4
b
5
e
6
b
7
a
8
b
9
c
10
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
e
d
a
b
e
d
a
b
e
d
a
b
e
d
a
b
e
c
a
b
d
c
c
b
a
e
d
c
b
a
Faults
LRU
page stack
Page to replace
a
c
d
a
c
b
d
a
c
e
b
d
a
c
b
e
d
a
a
b
e
d
b
a
e
d
12
13
Page 7:
Page 1:
10 5
Page 3:
resident bit
used bit
frame number
11 1
11 0
Page 4:
Page 0:
10 3
11 4
func Clock_Replacement
begin
while (victim page not found) do
if(used bit for current page = 0) then
replace current page
else
reset used bit
end if
advance clock pointer
end while
end Clock_Replacement
14
Time
1 2
c a
3
d
4
b
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
Page
Frames
Requests
q
0
1
2
3
a
b
c
d
5
e
6
b
7
a
8
b
9
c
10
d
Faults
1 a
1
0
0
0
1 c
1 d
e
b
c
d
1
1
0
0
e
b
c
d
1
1
1
0
e
b
a
d
1
1
1
0
e
b
a
d
1
1
1
1
e
b
a
c
1
0
0
0
d
b
a
c
15
Time
1 2
c a
3
d
4
b
5
e
6
b
7
a
8
b
9
c
10
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
c
d
e
b
c
d
e
b
c
d
e
b
a
d
e
b
a
d
e
b
a
c
d
b
a
c
Page
Frames
Requests
q
0
1
2
3
a
b
c
d
Faults
1 a
Page table entries
1 b
for resident pages:
1 c
1 d
1
0
0
0
e
b
c
d
1
1
0
0
e
b
c
d
1
0
1
0
e
b
a
d
1
1
1
0
e
b
a
d
1
1
1
1
e
b
a
c
1
0
0
0
d
b
a
c
16
Page 7: 1 1 0 0
Page 1: 1 0 0 5
Page 4: 1 0 0 3
Page 3: 1 1 1 9
Before clock
sweep
After clock
sweep
used dirty
used dirty
replace page
0
0
1
1
Page 0: 1 1 1 4
resident bit
used bit
dirty bit
0
1
0
1
0
0
0
0
0
1
17
Time
1 2 3
c aw d
4
bw
a
b
c
d
a
b
c
d
a
b
c
d
Page
Frames
Requests
q
0
1
2
3
a
b
c
d
a
b
c
d
5
e
6
b
7
aw
8
b
9
c
10
d
11 a
10 b*
10 e
10 c
00 a*
10 d
00 e
00 c
Faults
10 a
Page table
entries 10 b
for resident 10 c
pages:
10 d
11
11
10
10
a
b
c
d
00 a*
00 b*
10 e
00 d
00 a* 11 a
10 b* 10 b*
10 e 10 e
00 d 00 d
18
Time
1 2 3
c aw d
4
bw
5
e
6
b
7
aw
8
b
9
c
10
d
a
b
c
d
a
b
c
d
a
b
c
d
a
b
e
d
a
b
e
d
a
b
e
d
a
b
e
d
a
b
e
c
a
d
e
c
Page
Frames
Requests
q
0
1
2
3
a
b
c
d
a
b
c
d
Faults
Page table 10 a
entries for
resident 10 b
pages: 10
c
10 d
11
11
10
10
00 a*
00 b*
10 e
00 d
a
b
c
d
00
10
10
00
a
b
e
d
11
10
10
00
a
b
e
d
11
10
10
10
a
b
e
c
00 a*
10 d
00 e
00 c
19
Page
Frames
Time
Requests
1
a
2
b
3
c
4
d
5
a
6
b
7
c
8
d
9
a
10
b
11
c
12
d
Page
Frames
Faults
0
3
Faults
20
1
a
2
b
3
c
4
d
5
a
6
b
7
c
8
d
9
a
10
b
11
c
12
d
Page
Frames
Time
Requests
Page
Frames
Faults
0
c
d
c
d
c
d
c
d
c
d
c
d
c
d
c
d
c
d
Faults
21
22
Pagess
in Memo
ory
Time
Requests
Page a
Page
b
P
Page c
Page d
Page e
1
c
2
c
3
d
4
b
5
c
6
e
7
c
8
e
9
a
10
d
t = -1
t=0
Faults
23
Pagess
in Memo
ory
Time
Requests
Faults
Page a
Page
b
P
Page c
Page d
Page e
1
c
2
c
3
d
4
b
5
c
6
e
7
c
8
e
9
a
10
d
t = -1
-
F
-
F
-
t=0
24
25
Pages
in Memory
y
Time
Requests
Page a
Page b
Page c
Page d
Page e
1
c
2
c
3
d
4
b
5
c
6
e
7
c
8
e
9
a
10
d
t = 0
t= -1
t= -2
Faults
26
Pages
in Memory
y
Time
Requests
Page a
Page b
Page c
Page d
Page e
Faults
1
c
2
c
3
d
4
b
5
c
6
e
7
c
8
e
9
a
10
d
t = 0
t= -1
t= -2
27
Algorithm:
28
Paages
in M
Memory
Time
Requests
Page a
Page b
Page
g c
Page d
Page e
1
c
2
c
3
d
4
b
5
c
6
e
7
c
8
e
9
a
10
d
Faults
tcur tlast
29
Paages
in M
Memory
Time
Requests
Page a
Page b
Page
g c
Page d
Page e
1
c
2
c
3
d
4
b
5
c
6
e
7
c
8
e
9
a
10
d
Faults
tcur tlast
1
30
Load Control
Fundamental tradeoff
MPLmax =
Issues
31
Load Control
How not to do it: Base load control on CPU utilization
CPU
...
I/O
Device
Paging
Device
32
Load Control
Thrashing
mean time between page faults (MTBF) = page fault service time
(PFST)
WSi = size of memory
1.0
1.0
CPU
Utilization
MTBF
PFST
Nmax NI/O-BALANCE
Multiprogramming Level
33
Load Control
Thrashing
Ready
ready
queue
Running
Physical
Memory
Waiting
Suspended
suspended
queue
semaphore/condition queues
Paging Disk
34