2Q Algorithms Fall 2004 CS 186 Review Session for hw1 9/13/04 Your ever friendly TA’s Paul Huang <cs186-ta@imail.eecs> Matt Denny <cs186-tb@imail.eecs> Murali Rangan <cs186-tc@imail.eecs> Overview • • • • • LRU - Disadvantages 2Q – Enhanced LRU Simplified 2Q Full 2Q Q&A LRU - Disadvantages • Locality of reference – Same pages referred frequently (warm pages) – Example: 2, 1, 3, 2, 4, 2, 4, 1, 5, 6, 2, … • LRU takes advantage of this. • Disadvantage: – Dislodges warm pages if a long sequence of one time page references occur. • In the above ex, page 2 may get dislodged by the access pattern …, 4, 1, 5, 6, … 2Q – Enhanced LRU • 2Q is enhancement over LRU • Manages pages in 2Q’s (FIFO and LRU) • Aims to retain warm pages as long as possible • Two variations – Simplified 2Q – Full 2Q • Efficient compared to LRU-2, GClock,etc – LRU-2, GClock - beyond the scope of this discussion Simplified 2Q • Pages in 2 queues (FIFO and LRU) • If a requested page – Is in FIFO (A1) => Move it to LRU head – Is in LRU (Am) => Move it to LRU head – If page fault • If free frame available, occupy it and add it to FIFO • Elif FIFO size > threshold (50% pool size) – Then first item in FIFO is victim • Else remove the tail item LRU, but add new page to FIFO (New pages ALWAYS go to FIFO) Simplified 2Q (contd…) Simplified S2Q (contd…) Simplified 2Q (contd…) • Correlated references – A page receives several references for a short time and no references for a long time • Ex: 2, 3, 4, 1, 6, 7, 7, 6, 4, 4, 2, 3, 2, 2, 3,12, 15, … • Disadvantages – Evicts long term warm pages (ex 2, 3) to make room for short term correlated pages (ex 6, 7) Simplified 2Q (contd…) • About the tuning threshold (chosen as 50%) – FIFO queue grows in spite of threshold as long as there are free frames. – FIFO threshold is checked only if there is a page fault and no free frames. – Larger the threshold => Greater the chance for FIFO to remain longer – Longer the FIFO => Greater the chance for some page in it to be re-referenced and promoted to LRU Simplified S2Q • About threshold (contd…) • The immediateness of re-referencing a page plays higher factor in promotion to LRU than total number of repetitions. • Ex: 2, 3, 3, 4, 4, 2, 5, 5, 7, 6, 2, 6, 7, 6, 8, 2 – The chance for pages making it to LRU are: – (3, 4, 5) > (6) > (7) > (2) > 8 • 3, 4, and 5 have highest chance because of the immediateness of their re-reference, even though they are only short term and referred only twice each. • 6 has lesser chance than (3, 4, 5) because the page re-reference is not as immediate as 3, 4, 5, even though it gets referred more. • Same argument for pages 7 and 2. – Threshold is the factor in determining how farther apart rereferenced pages will make it to LRU – But higher threshold also means smaller LRU as downside! Full 2Q • Addresses Correlated references • Pessimistic on re-referenced FIFO pages – Retains them in FIFO (A1in) itself • Remembers page ids of victimized FIFO pages as history (A1out – FIFO of page ids) • Puts a page in LRU only if it is seen in history list (A1out) • A1out max size is 50% of pool size • A1in threshold is 25% of pool size F2Q (contd…) • If a requested page – Is in FIFO (A1in) => Do nothing (corr. ref.!) – Is in LRU (Am) => Move it to LRU head – If page fault • If free frame available, occupy it and add it to FIFO • Elif FIFO size > threshold (25% pool size) – Then first item in FIFO is victim, » Add page id of victim in A1out (50% pool size) • Else remove the tail item LRU, but add new page to FIFO (New pages ALWAYS go to FIFO) Full 2Q (contd…) Full 2Q (contd…) 3, 1 3, 1 Q&A