
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 ..
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages17 Page
-
File Size-