4.4%20Page%20replacement%20algorithms - PowerPoint PPT Presentation

View by Category
About This Presentation



Recently used at front; oldest at rear. ... Set all bits in row k of M to 1. Set all bits in column k of M to 0. Row with lowest binary value is least recently ... – PowerPoint PPT presentation

Number of Views:3945
Avg rating:3.0/5.0
Slides: 29
Provided by: georgejgr
Learn more at: http://www.sju.edu


Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: 4.4%20Page%20replacement%20algorithms

4.4 Page replacement algorithms
Page replacement algorithms
  • Also seen in
  • CPU cache
  • Web server cache of web pages
  • Buffered I/O (file) caches

Optimal page replacement
  • Page fault occurs
  • Scan all pages currently in memory
  • Determine which page wont be needed (referenced)
    until furthest in the future
  • Replace that page
  • Not really possible. (But useful as a
  • Depends on code as well as data.

Algorithms we will discuss
  1. Optimal
  2. NRU
  3. FIFO
  4. Second chance
  5. Clock
  6. LRU
  7. NFU
  8. Aging
  9. Working set
  10. WSClock

NRU (not recently used)
  • Bits set by hardware after every memory reference
  • Cleared only by software (OS)
  • R bits set when page is referenced (read or
  • M bits set when page is modified (written)
  • Periodically (after k clock interrupts), R bits
    are cleared

NRU page categories
  • Not referenced, not modified
  • Not referenced, modified
  • Occurs when 4s R bit is cleared during clock
  • Referenced, not modified
  • Referenced, modified
  • NRU algorithm remove random page from lowest
    numbered non empty class

NRU algorithm evaluation
  • Simple
  • Efficient
  • Not optimal but adequate

FIFO page replacement
  • Queue pages as they are requested.
  • Remove page at head (front) of queue.
  • Oldest page is removed first
  • simple/efficient
  • - might remove a heavily used page

Second chance page replacement
  • Inspect R bit of oldest page
  • If R0 then
  • page is old unused
  • Replace it
  • Else
  • Clear R bit
  • Move page to from head to tail of FIFO
  • Treating it as a newly loaded page
  • Try another page

Second chance page replacement
load time
Clock page replacement
  • Circular list instead of queue
  • Clock hand points to oldest page
  • If (R0) then
  • Page is unused
  • Replace it
  • Else
  • Clear R
  • Advance clock hand

Clock page replacement
LRU (least recently used) page replacement
  • Page recently used is likely to be used in the
    near future page not used in ages is not likely
    to be used in the near future.
  • Algorithm
  • age the pages
  • Maintain a queue of pages in memory.
  • Recently used at front oldest at rear.
  • Every time a page is referenced, it is removed
    from the queue and placed at the front of the
  • This is slow!

LRU in hardware
  • implementation 1
  • 64 bit counter, C, incremented after every
  • Each page also has a 64 bit counter
  • When a page is referenced, C is copied to its
  • Page with lowest counter is oldest.

LRU in hardware
  • implementation 2
  • Given n page frames, let M be a nxn matrix of
    bits initially all 0.
  • Reference to page frame k occurs.
  • Set all bits in row k of M to 1.
  • Set all bits in column k of M to 0.
  • Row with lowest binary value is least recently

LRU in hardware implementation 2 example
NFU (Not Frequently Used)
  • Hardware doesnt often support LRU
  • Software counter associated w/ each page
    initially set to 0.
  • At each clock interrupt
  • Add R bit (either 0 or 1) to the counter for each
  • Page with lowest counter is NFU

NFU problem
  • It never forgets!
  • So pages that were frequently referenced (during
    initialization for example) but are no longer
    needed appear to be FU.
  • Solution (called aging)
  • Shift all counters to right 1 bit before R bit is
    added in.
  • Then R bit is added to MSb (leftmost bit) instead
    of LSb (rightmost bit).
  • Page w/ lowest value is chosen for removal.

NFU w/ aging
  1. Shift to right
  2. MSb R

Differences between LRU and NFU
  • LRU updated after every instruction so its
    resolution is very fine.
  • NFU is coarse (updated after n instructions
    execute between clock interrupts).
  • A given page referenced by n-1 instruction is
    given equal weight to a page referenced by only 1
    instruction (between clock interrupts).
  • n/2 references to a given page at the beginning
    of the interval are given equal weight with n/2
    references to another page at the end of the

Working set page replacement algorithm
  • Demand paging start up processes with 0 pages
    and only load whats needed.
  • Locality of reference during any phase of
    execution, the process references only a
    relatively small fraction of its pages.
  • Working set set of pages that a process is
    currently using.
  • Thrashing causing a page fault every few

Working sets
  • Working set model make sure a page is in memory
    before the process needs it.
  • a.k.a. prepaging
  • w.s. set of pages used in the k most recent
    memory references.

Working set algorithm
  • Uses current virtual time amount of CPU time a
    process has actually used since it started.
  • T is a threshold on CVT
  • R and M bits as before clock interrupt

Working set algorithm
age current virtual time time of last use
? (greatest age/least virtual time) and choose
that one if no better candidate exists.
If no suitable candidate exists, pick one at
WSClock page replacement
  • Previous WS algorithm requires entire page table
    be scanned at each page fault.
  • WSClock
  • Simple, efficient, widely used.
  • Uses circular list of page frames.

WSClock page replacement
  • At each page fault
  • Loop once through page table
  • Examine PTE pointed to by clock hand.
  • If r bit 1 then
  • clear r bit advance clock hand goto loop
  • else
  • If agegtt
  • If page is clean then use this page!
  • Else
  • write dirty page to disk advance clock hand
  • goto loop
  • If write scheduled, wait for completion and used
    that page.
  • Else pick a victim at random.

WSClock page replacement
clear r bit and advance clock hand.
Replace old and advance.
Summary of page replacement algorithms
About PowerShow.com