Presentation on theme: "Page Replacement Algorithms"— Presentation transcript:
1Page Replacement Algorithms So, when we have a page fault we have to find an eviction candidate.Optimally, we would like to evict the page that will not be referenced again for the longest amount of time.In reality the OS has no way of knowing when each of the pages will be referenced next.
2Not Recently Used Examine M and R bits associated with each page. Page fault occurs, OS places all pages in 1 or 4 classificationsClass 0: R=0, M=0Class 1: R=0, M=1Class 2: R=1, M=0Class 3: R=1, M=1NRU Algorithm says to remove a page at random from the lowest nonempty class.
3FIFO Simple design of having a queue maintained for pages in memory. The head of the queue contains oldest page in memory.The tail of the queue contains the newest page in memory.Is there a potential problem with evicting the head of the queue each time?
4FIFO with second chance Performs like FIFO, but inspects the R bit.If R bit of the head page is 1, it is cleared and placed at the tail.What happens if all pages in memory have the R bit set to one?
5Clock Page Replacement Behaves liked FIFO with second chance except that it is a circular linked list.
6Least Recently Used Assume pages used recently will be used again soon throw out page that has been unused for longest timeMust keep a linked list of pagesmost recently used at front, least at rearupdate this list every memory reference !!Keep counter in each page table entrychoose page with lowest value counterperiodically zero the counter
7LRU (cont.) All values in matrix intially set to 0 Alternatively used a n by n matrix. n is the number of page frames.All values in matrix intially set to 0When a page frame, k, is referenced, the hardware first sets all the bits in row k to 1.Then sets all the bits in column k to 0.The row whose binary value is lowest is the LRU at any instant.
8Example of LRU using Matrix Pages referenced in order 0,1,2,3,2,1,0,3,2,3
9Simulated LRU – Not Frequently Used Most machines do not have the hardware to perform true LRU, but it may be simulated.We can use a counter to keep track of each R bit for each page upon a timer tick.Page with the lowest R-bit is evicted.What is the problem with this type of history keeping?
10Modified NFUCounters are each shifted right 1 bit before the R bit is added.R bit is added to the leftmost, rather than the rightmost bit.This modified algorithm is known as aging.
12Issues with NFU References can happen between timer interrupts. What happens if we are comparing two pages which have identical references over the past n timer ticks?We make a random choice.Is it the right one?
13Working Set Page Replacement Locality of Reference – a process references only a small fraction of its pages during any particular phase of its execution.The set of pages that a process is currently using is called the working set.Thrashing – results when a program causes a page fault every few instructions, causing the pages to have to pulled up from memory. No “real” useful work is being accomplished.
14Working Set Page Replacement (cont.) So, what happens in a multiprogramming environment as processes are switched in and out of memory?Do we have to take a lot of page faults when the process is first started?It would be nice to have a particular processes working set loaded into memory before it even begins execution. This is called prepaging.
15Working Set Page Replacement (cont.) The working set algorithm is based on determining a working set and evicting any page that is not in the current working set upon a page fault.
16Working Set Page Replacement (cont.) Age = current virtual time – time of last use
17Working Set Page Replacement (cont.) What happens when there is more than one page with R=0 and age less then or eq to tau?What happens when all pages have R=1?This algorithm requires the entire page table be scanned at each page fault until a suitable candidate is located.All entries must have their Time of last use updated even after a suitable entry is found.
19WSClock Page Replacement (Cont.) What happens when R=0?Is age > , and page is clean then it is evictedIf it is dirty then we can proceed to find a page that may be clean and avoid a process switch. We will still need to write to disk and this write is scheduled.What happens if we go all the way around? (Two Scenarios)At least one write has been scheduled. Keep Looking… someone eventually write to disk.No writes have been scheduled… all pages are in the working set, so evict a clean page or the current page if a clean page does not exist.