Page Replacement Algorithms

Page Replacement Algorithms

Page Replacement Algorithms 1 Virtual Memory Management Fundamental issues : A Recap Key concept: Demand paging ¾ Load pages into memory only when a page fault occurs User Program n . Issues: .. ¾ Placement strategies User Program 2 Place pages anywhere – no placement policy required User Program 1 ¾ Replacement strategies What to do when there exist more jobs thaacan can fit in me eoymory Operating System ¾ Load control strategies Determining how many jobs can be in memory at one time Memory 2 Page Replacement Algorithms Concept Typically Σi VASi >> Physical Memory With demand paging, physical memory fills quickly When a process faults & memory is full, some page must be swapped out ¾ Handling a page fault now requires 2 disk accesses not 1! ¾ Though writes are more efficient than reads (why?) Which page should be replaced? Local replacement —Repppglace a page of the faulting gp process Glo ba l replacement — PiblPossibly replace the page of another process 3 Page Replacement Algorithms Evaluation methodology Record a trace of the pages accessed by a process ¾ Example: (Virtual) address trace... (3,0), (1,9), (4,1), (2,1), (5,3), (2,0), (1,9), (2,4), (3,1), (4,8) ¾ generates page trace 3, 1, 4, 2, 5, 2, 1, 2, 3, 4 (represented as c, a, d, b, e, b, a, b, c, d) Hardware can tell OS when a new page is loaded into the TLB ¾ Set a used bit in the page table entry ¾ Increment or shift a register Simulate the behavior of a page replacement algorithm on the trace and record the number of page faults generated fewer faults better performance 4 Optimal Page Replacement Clairvoyant replacement Replace the page that won’t be needed for the longest time in the future Time 0 12345678910 Requests cadbebabc d 0 a 1 b rames Page 2 c F 3 d Faults Time page needed next 5 Optimal Page Replacement Clairvoyant replacement Replace the page that won’t be needed for the longest time in the future Time 0 12345678910 Requests cadbebabc d 0 a aaaaaaaaa d 1 b bbbbbbbbb b rames Page 2 c c c c c c c c c c c F 3 d dddde eeee e Faults •• a = 7 a = 15 Time page b = 6 b = 11 needed next c = 9 c = 13 d = 10 d = 14 6 Local Page Replacement FIFO replacement Physical 3 Simple to implement Memory ¾ A single pointer suffices 0 2 Performance with 4 page frames: Frame List Time 0 12345678910 Requests cadbebabc d 0 a 1 b Page 2 c Frames 3 d Faults 7 Local Page Replacement FIFO replacement Physical 3 Simple to implement Memory ¾ A single pointer suffices 0 2 Performance with 4 page frames: Frame List Time 0 12345678910 Requests cadbebabc d 0 a aaaae eeee d 1 b bbbbbba aa a Page 2 c cccccccb bb Frames 3 d ddddddddc c Faults • ••• • 8 Least Recently Used Page Replacement Use the recent past as a predictor of the near future Replace the page that hasn’t been referenced for the longest time Time 0 12345678910 Requests cadbebabc d 0 a 1 b rames Page 2 c F 3 d Faults Time page last used 9 Least Recently Used Page Replacement Use the recent past as a predictor of the near future Replace the page that hasn’t been referenced for the longest time Time 0 12345678910 Requests cadbebabc d 0 a aaaaaaaaa a 1 b bbbbbbbbb b rames Page 2 c cccce eeee d F 3 d ddddddddc c Faults ••• a = 2 a = 7 a = 7 Time page b = 4 b = 8 b = 8 last used c = 1 e = 5 e = 5 d = 3 d = 3 c = 9 10 Least Recently Used Page Replacement Implementation Maintain a “stack” of recently used pages Time 0 12345678910 RRtequests c a d b e b a b c d 0 a aaaaaaaaa a 1 b bbbbbbbbb b Page 2 c cccce eeee d Frames 3 d ddddddddc c Faults ••• c a d b e b a b c d LRU c a d b e b a b c page stack c a d d e e a b c a a d d e a Page to replace c d e 11 Least Recently Used Page Replacement Implementation Maintain a “stack” of recently used pages Time 0 12345678910 RRtequests c a d b e b a b c d 0 a aaaaaaaaa a 1 b bbbbbbbbb b Page 2 c cccce eeee d Frames 3 d ddddddddc c Faults ••• c a d b e b a b c d LRU c a d b e b a b c page stack c a d d e e a b c a a d d e a Page to replace c d e 12 What is the goal of a page replacement algorithm? ¾ A. Make life easier for OS implementer ¾ BRdB. Reduce the num ber o f page fau lts ¾ C. Reduce the penalty for page faults when they occur ¾ D. Minimize CPU time of algorithm 13 Approximate LRU Page Replacement The Clock algorithm Maintain a circular list of pages resident in memory ¾ Use a clock (or used/referenced) bit to track how often a page is accessed ¾ The bit is set whenever a page is referenced Clock hand sweepppggs over pages looking for one with used bit = 0 ¾ Replace pages that haven’t been referenced for one complete revolution of the clock Page 7: 1 1 0 func Clock_Replacement begin while (victim page not found) do if(used bit for current page = 0) then Page 1: 1 0 5 Page 4: 1 0 3 replace current page else reset used bit end if advance clock pointer Page 3: 1 1 1 Page 0: 1 1 4 end while end Clock_Replacement resident bit used bit frame number 14 Clock Page Replacement Example Time 0 1 2 3 4 5 6 7 8 9 10 Requests c a d b e b a b c d 0 a a a a a 1 b b b b b Page 2 c c c c c Frames 3 d d d d d Faults 1 a 1 e 1 e 1 e 1 e 1 e 1 d Page table entries 1 b 0 b 1 b 1 b 1 b 1 b 0 b for resident pages: 1 c 0 c 0 c 1 a 1 a 1 a 0 a 1 d 0 d 0 d 0 d 0 d 1 c 0 c 15 Clock Page Replacement Example Time 0 1 2 3 4 5 6 7 8 9 10 Requests c a d b e b a b c d 0 a a a a a e e e e e d 1 b b b b b b b b b b b Page 2 c c c c c c c a a a a Frames 3 d d d d d d d d d c c Faults • • • • 1 a 1 e 1 e 1 e 1 e 1 e 1 d Page table entries 1 b 0 b 1 b 0 b 1 b 1 b 0 b for resident pages: 1 c 0 c 0 c 1 a 1 a 1 a 0 a 1 d 0 d 0 d 0 d 0 d 1 c 0 c 16 Optimizing Approximate LRU Replacement The Second Chance algorithm There is a significant cost to replacing “dirty” pages Modify the Clock algorithm to allow dirty pages to always survive one sweep of the clock hand ¾ Use both the dirty bit and the used bit to drive replacement Page 7: 1 1 0 0 Second Chance Algorithm Before clock After clock sweep sweep Page 1: 1 0 0 5 Page 4: 1 0 0 3 used dirty used dirty 0 0 replace page 0 1 0 0 Page 3: 1 1 1 9 Page 0: 1 1 1 4 1 0 0 0 1 1 0 1 resident bit used bit dirty bit 17 The Second Chance Algorithm Example Time 0 1 2 3 4 5 6 7 8 9 10 Requests c aw d bw e b aw b c d 0 a a a a a 1 b b b b b Page 2 c c c c c Frames 3 d d d d d Faults 10 a 11 a 00 a* 00 a* 11 a 11 a 00 a* Page table entries 10 b 11 b 00 b* 10 b* 10 b* 10 b* 10 d for resident 10 c 10 c 10 e 10 e 10 e 10 e 00 e pages: 10 d 10 d 00 d 00 d 00 d 10 c 00 c 18 The Second Chance Algorithm Example Time 0 1 2 3 4 5 6 7 8 9 10 Requests c aw d bw e b aw b c d 0 a a a a a a a a a a a 1 b b b b b b b b b b d Page 2 c c c c c e e e e e e Frames 3 d d d d d d d d d c c Faults • • • Page table 10 a 11 a 00 a* 00 a 11 a 11 a 00 a* entries for resident 10 b 11 b 00 b* 10 b 10 b 10 b 10 d pages: 10 c 10 c 10 e 10 e 10 e 10 e 00 e 10 d 10 d 00 d 00 d 00 d 10 c 00 c 19 The Problem With Local Page Replacement How much memory do we allocate to a process? Time 0 123456789101112 Requests abcdabcda bcd 0 a 1 b Page Frames 2 c Faults 0 a 1 b Page 2 c Frames 3 – Faults 20 The Problem With Local Page Replacement How much memory do we allocate to a process? Time 0 123456789101112 Requests abcdabcda bcd 0 a aaad ddc cc b bb 1 b bbbba aad ddc c Page Frames 2 c cccccb bba aa d Faults ••••• • ••• 0 a aaaaaaaaa aaa 1 b bbbbbbbbb bbb Page 2 c ccccccccc ccc Frames 3 – d ddddd ddd Faults • 21 Page Replacement Algorithms Performance Local page replacement ¾ LRU — Ages pages based on when they were last used ¾ FIFO — Ages pages based on when they’re brought into memory Towards global page replacement ..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    17 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us