This document summarizes various techniques for virtual memory management. It discusses virtual memory basics where programs are divided into pages that are loaded into page frames in memory. It describes demand paging where pages are loaded on demand when accessed rather than all at once. Common page replacement algorithms like First-In First-Out (FIFO), Least Recently Used (LRU), and Optimal selection are explained. The Optimal algorithm selects the page to replace that will have the longest time before its next reference, but it is impossible to implement as the OS does not know future access patterns.
3. Virtual Memory Basics
Virtual memory is a memory management capability that uses
hardware and software to allow a computer to compensate for
physical memory shortages by temporarily transferring data from
random access memory(RAM) to disk storage.
The main visible advantage of this scheme is that programs can be
larger than physical memory. Virtual memory serves two purposes.
First, it allows us to extend the use of physical memory by using
disk. Second, it allows us to have memory protection, because each
virtual address is translated to a physical address.
4. In modern operating systems, before a program is
loaded into main memory, it is divided into chunks,
called PAGES.
Each PAGE is loaded into memory locations called PAGE
FRAMES.
If the PAGES are the exact same size as the PAGE
FRAMES (and the same size as the disk sectors), this
scheme works very well.
The empty page frame does not have to be contagious.
5. Memory Manager
The Memory Manager prepares a program for execution by doing
the following:
1. Determine the number of pages in the program
2. Locate enough empty page frames in main memory
3. Load all the program’s pages into them
The program is stored in the secondary memory. The memory
management unit (MMU) transfers the currently needed part of the
program from the secondary memory to the main memory for
execution.
This to and from movement of instructions and data (parts of a
program) between the main memory and the secondary memory is
called Swapping.
7. Demand paging
A demand paging system is quite similar to a paging system
with swapping where processes reside in secondary memory
and pages are loaded only on demand, not in advance.
When a context switch occurs, the operating system does not
copy any of the old program’s pages out to the disk or any of
the new program’s pages into the main memory Instead, it
just begins executing the new program after loading the first
page and fetches that program’s pages as they are referenced.
8. Demand paging Swapping
While executing a program, if the
program references a page which is
not available in the main memory
because it was swapped out a little
ago, the processor treats this invalid
memory reference as a page
fault and transfers control from the
program to the operating system to
demand the page back into the
memory.
9. Demand paging
Advantages
Large virtual memory.
More efficient use of
memory.
There is no limit on degree
of multiprogramming.
Disadvantages
Number of tables and the
amount of processor
overhead for handling page
interrupts are greater than
in the case of the simple
paged management
techniques.
10. Page Replacement Algorithms
In a computer operating system that uses paging for virtual
memory management, page replacement algorithms decide
which memory pages to page out (swap out, write to disk)
when a page of memory needs to be allocated.
Paging happens when a page fault occurs and a free page
cannot be used to satisfy the allocation, either because there
are none, or because the number of free pages is lower than
some threshold.
11. First - In - First - Out (FIFO)
First-in-first-out is very easy to implement. The FIFO algorithm
selects the page for replacement that has been in memory the
longest time.
The page to be removed is easily determined because its
identification number is at the top of the FIFO stack.
The FIFO replacement policy has the advantage of being easy
to implement.
It has the disadvantage that under certain circumstances
pages are removed and loaded from memory too frequently.
12. FIFO Algorithm
Consider a paging system having capacity of 3 pages. The execution of a
program requires references to five distinct pages P1 , P2 , P3 , P4 and P5 .
The pages are executed in the following sequence:
P2 P3 P2 P1 P5 P2 P4 P5 P3 P2 P5 P2
13. Least Recently Used (LRU)
The least recently used page (LRU) replacement algorithm keeps
track of page usage over a short period of time.
The LRU algorithm can be implemented by associating a counter
with every page that is in main memory.
When a page is referenced, its associated counter is set to 0. At
fixed intervals of time, the counters associated with all pages
presently in memory are incremented by 1.
The least recently used page is the page with the highest count. The
counters are often called aging registers, as their count indicates
their age, that is, how long their associated pages have been
referenced.
14. LRU Algorithm
Consider a paging system having capacity of 3 pages. The execution of a
program requires references to five distinct pages P1 , P2 , P3 , P4 and P5 .
The pages are executed in the following sequence:
P2 P3 P2 P1 P5 P2 P4 P5 P3 P2 P5 P2
15. Optimal (OPT)
The optimal policy selects that page for replacement for which
the time to the next reference is longest.
This algorithm results in fewest number of page faults. But,
this algorithm is impossible to implement.
At the time of page fault , the operating system has no way of
knowing when each of the pages will be referenced next.
However , it does serve as a standard against which to judge
other algorithms.
16. Optimal (OPT)
Consider a paging system having capacity of 3 pages. The execution of a
program requires references to five distinct pages P1 , P2 , P3 , P4 and P5 .
The pages are executed in the following sequence:
P2 P3 P2 P1 P5 P2 P4 P5 P3 P2 P5 P2