0% found this document useful (0 votes)
23 views31 pages

Unit 4 Virtual Memory (Second Part)

Uploaded by

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

Unit 4 Virtual Memory (Second Part)

Uploaded by

Rishi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

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

You might also like