Windows NT Virtual Memory Manager Uses FIFO
ID: Q98216
3.10 3.50 3.51 4.00
WINDOWS NT
kbprg
The information in this article applies to:
On page 193 of "Inside NT," Helen Custer states that the Windows NT virtual
memory manager uses a FIFO (first in, first out) algorithm, as opposed to a
LRU (least recently used) algorithm, which the Windows virtual memory
manager uses. While it is true that FIFO can result in a commonly used page
being discarded or paged to the pagefile, there are reasons why this
algorithm is preferable.
Here are some of the advantages:
- FIFO is done on a per-process basis; so at worst, a process that
causes a lot of page faults will slow only itself down, not the
entire system.
- LRU creates significant overhead--the system must update its page
database every single time a page is touched. However, the database
may not be properly updated in certain circumstances. For example,
suppose that a program has good locality of reference and uses a
page constantly so that it is always in memory. The operating
system will not keep updating the timestamp in the page database,
because the process is not hitting the page table. Therefore this
page may age even though it is in nearly constant use.
- Pages that are "discarded" are actually kept in memory for a while,
so if a page is really used frequently, it will be brought back
into memory before it is written to disk.
Additional reference words: 3.10 3.50 3.51 4.00
KBCategory: kbprg
KBSubcategory: BseMm
Keywords : kbAPI kbKernBase kbGrpKernBase
Version : 3.10 3.50 3.51 4.00
Platform : NT WINDOWS
Last Reviewed: December 22, 1996