Chapter 4: Virtual Memory
Background
Demand Paging
Page Replacement
Allocation of Frames
Thrashing
10.1 Silberschatz, Galvin and Gagne 2002
Background
Virtual memory – is a technique that allow the
execution of process that are not completely in
memory. separation of user logical memory from
physical memory.
Only part of the program needs to 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.
Virtual memory can be implemented via:
Demand paging
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
10.3 Silberschatz, Galvin and Gagne 2002
Transfer of a Paged Memory to Contiguous Disk
Space
10.4 Silberschatz, Galvin and Gagne 2002
Valid-Invalid Bit
With each page table entry a valid–invalid bit is associated
(1 in-memory, 0 not-in-memory)
Initially valid–invalid but is set to 0 on all entries.
Example of a page table snapshot.
Frame # valid-invalid bit
1
1
1
1
0
During address translation, if valid–invalid bit in page table
entry is 0 page fault.
0
0
page table
10.5 Silberschatz, Galvin and Gagne 2002
Page Table When Some Pages Are Not in Main
Memory
10.6 Silberschatz, Galvin and Gagne 2002
Page Fault
When CPU needs to execute any
instruction in Page, it checks whether
the page is available in main memory
or not.
If page is available then CPU will
execute that page.
If page is not available then it is called
as Page Fault.
Whenever Page fault occur, some
steps are to be performed.
10.7 Silberschatz, Galvin and Gagne 2002
Steps in Handling a Page Fault
10.8 Silberschatz, Galvin and Gagne 2002
What happens if there is no free
frame?
Page replacement – find some page in
memory, but not really in use, swap it out.
algorithm
performance – want an algorithm which will
result in minimum number of page faults.
Same page may be brought into memory
several times.
10.9 Silberschatz, Galvin and Gagne 2002
Page Replacement
Prevent over-allocation of memory by
modifying page-fault service routine to include
page replacement.
Use modify (dirty) bit to reduce overhead of
page transfers – only modified pages are
written to disk.
Page replacement completes separation
between logical memory and physical memory
– large virtual memory can be provided on a
smaller physical memory.
10.10 Silberschatz, Galvin and Gagne 2002
Need For Page Replacement
10.11 Silberschatz, Galvin and Gagne 2002
Basic Page Replacement
1. Find the location of the desired page on disk.
2. Find a free frame:
- If there is a free frame, use it.
- 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.
10.12 Silberschatz, Galvin and Gagne 2002
Page Replacement
10.13 Silberschatz, Galvin and Gagne 2002
Page Replacement Algorithms
Want lowest page-fault rate.
Evaluate algorithm by running it on a
particular string of memory references
(reference string) and computing the number
of page faults on that string.
In all our examples, the reference string is
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.
10.14 Silberschatz, Galvin and Gagne 2002
Graph of Page Faults Versus The Number of
Frames
10.15 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 9 page faults
4 frames
3 3 2 4
1 1 5 4
2 2 1 5 10 page faults
FIFO Replacement – Belady’s Anomaly
3 3
more frames less page2faults
4 4 3
10.16 Silberschatz, Galvin and Gagne 2002
FIFO Page Replacement
10.17 Silberschatz, Galvin and Gagne 2002
FIFO Illustrating Belady’s
Anamoly
Reference String= 1 2 3 4 1 2 5 1 2 3 4 5
10.18 Silberschatz, Galvin and Gagne 2002
Optimal Algorithm
Replace page that will not be used for longest
period of 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
Its difficult to implement, becoz it require
future knowledge of reference string
It is used mainly for comparison study.
10.19 Silberschatz, Galvin and Gagne 2002
Optimal Page Replacement
10.20 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
4 5 4
This algorithm associates
3 with each page the
time that page last use. This policy is often use
and is considered to be good. But require
substantial hardware assistant.
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 determine which are to change.
10.21 Silberschatz, Galvin and Gagne 2002
LRU Page Replacement
10.22 Silberschatz, Galvin and Gagne 2002
LRU Algorithm (Cont.)
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
No search for replacement
10.23 Silberschatz, Galvin and Gagne 2002
Use Of A Stack to Record The Most Recent Page
References
10.24 Silberschatz, Galvin and Gagne 2002
Allocation of Frame
1) Equal Allocation
Frames will be allocated equally among available frames.
Process P1 needs 10 Frames
Process P2 need 30 Frames
Main memory is having 40 Frames
P1 is allocating with 20 frames and P2 is allocating with 20
Frames (Equal allocation))
Problem: Wastage of frames.
10.25 Silberschatz, Galvin and Gagne 2002
Allocation of Frame
2) Proportional Allocation
Frames will be allocated based on the size of process.
Process P1 needs 10 Frames
Process P2 need 30 Frames
Size of Main memory is 40 Frames.
P1= (10/(10+30))*40= 10 frames
P2= (30/(10+30))*40= 30 frames
Problem: Priority of processes?
10.26 Silberschatz, Galvin and Gagne 2002
Allocation of Frames
3) Priority Allocation
Use a proportional allocation scheme using
priorities rather than size
High priority process will allocated with more
frames and low priority process will allocated
with less frames.
10.27 Silberschatz, Galvin and Gagne 2002
Allocation of Frames
Main
1) Global replacement – Memory
process selects a replacement
frame from the set of all frames;
one process can take a frame P1
from another.
2) Local replacement – each
P2
process selects from only its own
set of allocated frames.
10.28 Silberschatz, Galvin and Gagne 2002
Thrashing
If a process does not have “enough” pages,
the page-fault rate is very high. This leads to:
low CPU utilization.
operating system thinks 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.
10.29 Silberschatz, Galvin and Gagne 2002
Thrashing
We can limit the effect of thrashing by using
local replacement algorithm or priority
replacement algorithm
To prevent thrashing we must provide a
process with as many frames as it need.
10.30 Silberschatz, Galvin and Gagne 2002
Locality In A Memory-Reference
Pattern
10.31 Silberschatz, Galvin and Gagne 2002