0% found this document useful (0 votes)
42 views68 pages

Virtual Memory Management 2

Virtual memory is a memory management technique that allows processes to execute as if they have more memory than is physically installed in the system. It implements demand paging, where pages of memory are only swapped in from disk storage when needed. When a page needs to be brought into memory but no frame is available, a page replacement algorithm must select a victim page to replace based on how recently or how frequently each page was used. Common algorithms are first-in, first-out (FIFO) and least recently used (LRU), with LRU typically having better performance by approximating an optimal algorithm that knows future memory references.

Uploaded by

jvanil
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)
42 views68 pages

Virtual Memory Management 2

Virtual memory is a memory management technique that allows processes to execute as if they have more memory than is physically installed in the system. It implements demand paging, where pages of memory are only swapped in from disk storage when needed. When a page needs to be brought into memory but no frame is available, a page replacement algorithm must select a victim page to replace based on how recently or how frequently each page was used. Common algorithms are first-in, first-out (FIFO) and least recently used (LRU), with LRU typically having better performance by approximating an optimal algorithm that knows future memory references.

Uploaded by

jvanil
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
You are on page 1/ 68

Virtual Memory Management

Ref:- Galvin
Virtual Memory
• What is Virtual Memory?
• Demand Paging
• Copy-on-Write
• Page Replacement
• Allocation of Frames
• Thrashing
• Memory-Mapped Files
• Allocating Kernel Memory
What is Virtual Memory?
• Technique that allows the execution of
processes that are not completely in memory.
• Abstracts main memory into an extremely
large, uniform array of storage.
• Allows processes to share files easily and to
implement shared memory.
• Virtual memory is a memory management
technique that computers use to keep systems
running quickly and efficiently. It's also known
as virtual storage.

• Virtual memory creates the illusion to users of a


very large (main) memory. It enables a system to
run larger applications or run more aplications at
the same time without running out of RAM.
Heap grows upwards and
the stack grows
downwards and the hole
between these two is the
virtual memory
Shared Library using virtual
memory
Virtual memory is
implemented using
DEMAND PAGING
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
• Lazy swapper – never swaps a page into memory unless page
will be needed
– Swapper that deals with pages is a pager
Transfer of a Paged Memory to Contiguous Disk Space
Basic concepts
• When a process is to be swapped in, the pager
guesses which pages will be used before the
process is swapped out again
• The pager brings only those pages into
memory
• Valid-invalid bit scheme determines which
pages are there in the memory and which are
there in the disk.
Valid-Invalid Bit
• With each page table entry a valid–invalid bit is associated
(v  in-memory, i  not-in-memory)
• Initially valid–invalid bit is set to i on all entries
• Example of a page table snapshot:
Frame # valid-invalid bit
v
v
v
v
i
….

i
i
page table
• During address translation, if valid–invalid bit in page table entry
is I  page fault
Page Table When Some Pages Are Not in Main Memory
Page Fault
• If there is a reference to a page, first reference to that
page will trap to operating system:
page fault
1. Operating system looks at another table to decide:
– Invalid reference  abort
– Just not in memory
2. Find free frame
3. Swap page into frame via scheduled disk operation
4. Reset tables to indicate page now in memory
Set validation bit = v
5. Restart the instruction that caused the page fault
Steps in Handling a Page Fault
Page Fault
Access to a page marked invalid causes a page fault .
Procedure for handling page faults.
1.Check whether the reference is valid or invalid memory
access.
2.If reference was invalid, terminate the process. If valid,
but the page not in memory , page it in
3.Get empty frame
4.Schedule a disk operation to read the desired page into
the newly allocated frame
5.Reset tables
6.Restart the instruction that caused the page fault
Performance of Demand Paging
• Stages in Demand Paging (worse case)
1. Trap to the operating system
2. Save the user registers and process state
3. Determine that the interrupt was a page fault
4. Check that the page reference was legal and determine the location of the page on the disk
5. Issue a read from the disk to a free frame:
1. Wait in a queue for this device until the read request is serviced
2. Wait for the device seek and/or latency time
3. Begin the transfer of the page to a free frame
6. While waiting, allocate the CPU to some other user
7. Receive an interrupt from the disk I/O subsystem (I/O completed)
8. Save the registers and process state for the other user
9. Determine that the interrupt was from the disk
10. Correct the page table and other tables to show page is now in memory
11. Wait for the CPU to be allocated to this process again
12. Restore the user registers, process state, and new page table, and then resume the
interrupted instruction
Performance of Demand Paging
(Cont.)
• Three major activities
– Service the interrupt – careful coding means just several
hundred instructions needed
– Read the page – lots of time
– Restart the process – again just a small amount of time
• Page Fault Rate 0  p  1
– if p = 0 no page faults
– if p = 1, every reference is a fault
Effective Access Time (EAT)
EAT = (1 – p) x memory access
+ p (page fault overhead
+ swap page out
+ swap page in)
Copy-on-Write
• Copy-on-Write (COW) allows both parent and child
processes to initially share the same pages in memory
– If either process modifies a shared page, only then is the
page copied
• COW allows more efficient process creation as only
modified pages are copied
• When is a page going to be duplicated using copy-on-write?
– Depends on the location from where a free page is
allocated
• OS uses Zero-fill-on-demand technique to allocate these
pages.
Before Process 1 Modifies Page C
After Process 1 Modifies Page C
What Happens if There is no Free Frame?

• The first time a page is referenced a page fault occurs


• This means that page fault at most once
• But this is not the case always
• Suppose only 5 pages among 10 pages are commonly
used then demand paging pages only those required
pages
• This helps in increasing the degree of multiprogramming
• By multiprogramming the memory is over allocated.
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
Need For Page Replacement

If no frame is free, we find one that


is not currently being used and
free it.
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. Bring the desired page into the (newly) free frame;
update the page and frame tables.
4. Restart the process.
Page Replacement

Use modify (dirty) bit to reduce overhead of page


transfers – only modified pages are written to disk
Features of page replacement
• With page replacement an enormous virtual
memory can be provided on a smaller physical
memory
• If a page that has been modified is to be replaced,
its contents are copied to the disk.
• A later reference to that page will cause a page
fault.
• At that time, the page will be brought back into
memory, replacing some other page in the process.
Page Replacement contd…
• Two major problems must be solved to implement demand
paging
– Frame allocation algorithm:- Decide frames for process
– Page-replacement algorithm:- decide frames which are
to be replaced.
• How to select a page replacement algorithm?
– One having the 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
• The number of frames available should be determined
Page replacement algorithms
• FIFO
• Optimal
• LRU
First In First Out(FIFO)
• Associates with each page the time when that
page was brought into memory
• When a page must be replaced, the oldest page
is replaced
• FIFO queue is maintained to hold all pages in
memory
• The one at the head of Q is replaced and the
page brought into memory is inserted at the tail
of Q
FIFO Page Replacement

Page faults:15
Page replacements:12
Adv and Disadv of FIFO
Adv
Easy to understand and program
Disadv
• Performance not always good
• The older pages may be initialization files
which would be required throughout
• Increases the page fault rate and slows
process execution.
What is belady’s anomaly
123412512345
Compute using 4 frames
Compare the page faults by using frame size 3
Difference is because of belady’s anomaly
FIFO Illustrating Belady’s Anomaly
Optimal Algorithm
• Result of discovery of Belady’s anomaly was
optimal page replacement algorithm
• Has the lowest page-fault rate of all
algorithms
• Algorithm does not exist. Why?
Optimal Page Replacement

Number of page faults:- 9


Number of replacements:-6
Adv and Disadv of Optimal Page
replacement algorithm
• Gives the best result.
• Reduces page fault
• But difficult ot implement because it requires
future knowledge of the reference string.
• Mainly used for comparison studies.
LRU page replacement algorithm
• Use the recent past as an approximation of
near future then we replace the page that has
not been used for the longest period of time.
(Least Recently Used)
LRU Page Replacement

Number of page faults:- 12


Number of page replacements:- 9
How to implement LRU Algorithm
• Clock
• Stack
Counter
• Counter: Add to page-table entry a time-of-use field
and add to the CPU a logical clock or counter.
– Clock is incremented for every memory reference.
– Whenever a reference to a page is made, the
contents of the clock register are copied to the
time-of-use field in the page-table entry for that
page.
– We replace the page with the smallest time value.
Stack
• Stack implementation – keep a stack of page numbers in a
double link form:
• Page referenced move it to the top
• Most recently used page is always at the top of the stack and
least recently used page is always at the bottom
• Can be implemented by a double linked list with a head
pointer and a tail pointer
• Both LRU and ORU comes under the class of algos called as
stack algorithm
• Does not suffer from Belady’s Anamoly
Use of Stack to record the most
recent page references
LRU-Approximation Page
Replacement
• Hardware support for LRU is provided in the
form of reference bit
• Reference bits are associated with each entry in
the page table
• Initially all bits are set to 0. as and when the
page is referenced its set to 1 by the hardware.
• This is the basis for approximation of LRU
replacement algorithm
Additional-reference-bits algorithm
• Additional ordering information is gained by
recording the reference bits at regular
intervals
• At regular intervals, a timer interrupt transfers
control to OS and OS shifts the reference bit
for each page to high order bit of 8-bit byte
shifting other bits to right by 1 bit
• Last 8 time period history of page is stored in
this 8 bits.
Contd…
• 00000000-page not used for the last 8 time
periods
• 11111111-page used once in each time period
• 11000100-used recently
• 01110111-not used recently
• The page with a lowest number(integer) is the
LRU page.
Second chance algorithm
• Basic algo-FIFO
• Page is selected, reference bit is checked
– Ref bit is 0 –replace page
– Not 0 then give second chance and move to select
the next fifo page
• When a page gets a second chance, reference
bit is cleared and arrival time is reset to
current time.
Implementation of second chance
algo-clock algorithm
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
• This algo is different from second-chance algo is that here we give
preference to those pages that have been modified
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
LFU

Number of page fault is 9


Page-Buffering Algorithms
• Keep a pool of free frames, always
– When page fault occurs, a victim frame is chosen as before
– Desired page is read into a free frame from the pool before the victim
is written out.
– Allows to restart immediately
– When victim is written out, its frame is added to the free-frame pool
• Possibly, keep list of modified pages
– Whenever paging device is idle, a modified page is selected and
written to the disk. Its modify nit is then reset.
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
Summary of page replacement
algorithms
• What is page replacement?
– If no frame is free, one that is not currently being used is taken and freed.
• Types
– FIFO (Disadv: Belady’s Anomaly)
– OPR
– LRU
• LRU Approximation
– Additional reference bits algorithm
– Second chance algorithm
– Enhanced second-chance algorithm
• Counting Based (Infrequently used)
– LFU
– MFU
• Page Buffering Algorithms
Allocation of Frames
• Each process gets the minimum number of
frames which is defined by the architecture
• The maximum number is defined by the
amount of available physical memory
Allocation Algorithms
• Split m frames among n processes is give
every process m/n frames
• The leftover frames can be used as a free-
frame buffer pool. This is called as equal
allocation
• if processes are of different sizes use
proportional allocation
Proportional Algorithm
• Allocate according to the size of process
– Dynamic as degree of multiprogramming, process
sizes change

si  size of process pi
S   si
m  total number of frames
si
ai  allocation for pi   m
S
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
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
Thrashing
Important questions
1. What is paging? Explain the structure of page table
2. What is belady’s algorithm? Explain LRU, FIFO, OPR
algos. Which algorithm suffers from Belady’s anomaly?
3. Short note on page fault handling
4. Explain virtual memory and demand paging
5. Draw and explain paging hardware with TLB
6. Explain paging in detail. Describe how logical address
converted to physical address
7. Explain how memory management takes place in Linux

You might also like