cs 134 operating systems
play

CS 134: Operating Systems MemoryFun with Paging 1 / 37 Overview - PowerPoint PPT Presentation

CS34 2013-05-17 CS 134: Operating Systems MemoryFun with Paging CS 134: Operating Systems MemoryFun with Paging 1 / 37 Overview CS34 Overview 2013-05-17 Page Faults Cost of Faults Page Replacement Algorithms Easy Approaches


  1. CS34 2013-05-17 CS 134: Operating Systems Memory—Fun with Paging CS 134: Operating Systems Memory—Fun with Paging 1 / 37

  2. Overview CS34 Overview 2013-05-17 Page Faults Cost of Faults Page Replacement Algorithms Easy Approaches Realistic Approaches Overview Optimizing Page Replacement Tweaking Clock Page Faults “Pre-poning” Work Working Sets Allocation Policies Thrashing Cost of Faults Page Replacement Algorithms Easy Approaches Realistic Approaches Optimizing Page Replacement Tweaking Clock “Pre-poning” Work Working Sets Allocation Policies Thrashing 2 / 37

  3. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What needs to happen when a page fault occurs? Page Faults What needs to happen when a page fault occurs? 3 / 37

  4. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS 4 / 37

  5. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state 4 / 37

  6. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal 4 / 37

  7. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal Page Faults ◮ Finds a free frame What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal ◮ Finds a free frame 4 / 37

  8. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal Page Faults ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked 4 / 37

  9. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal Page Faults ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready 4 / 37

  10. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal Page Faults ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready ◮ Scheduler restarts process—process running What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready ◮ Scheduler restarts process—process running 4 / 37

  11. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal Page Faults ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready ◮ Scheduler restarts process—process running ◮ Adjusts page table What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready ◮ Scheduler restarts process—process running ◮ Adjusts page table 4 / 37

  12. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal Page Faults ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready ◮ Scheduler restarts process—process running ◮ Adjusts page table ◮ Restores process state What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready ◮ Scheduler restarts process—process running ◮ Adjusts page table ◮ Restores process state 4 / 37

  13. Page Faults Page Faults CS34 Page Faults 2013-05-17 Page Faults What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal Page Faults ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready ◮ Scheduler restarts process—process running ◮ Adjusts page table ◮ Restores process state ◮ Returns to user code What happens. . . ◮ User process accesses invalid memory—traps to OS ◮ OS: ◮ Saves process state ◮ Checks access was actually legal ◮ Finds a free frame ◮ Reads from disk to free frame—I/O wait, process blocked ◮ Gets interrupt from disk (I/O complete)—process ready ◮ Scheduler restarts process—process running ◮ Adjusts page table ◮ Restores process state ◮ Returns to user code 4 / 37

  14. Page Faults Cost of Faults Page Faults (cont.) CS34 Page Faults (cont.) 2013-05-17 Page Faults How long? ◮ Disk is slow Cost of Faults ◮ 5–15 ms is a conservative guess ◮ Main memory takes 5–15 ns ◮ Page fault is about 1 million times slower than a regular Page Faults (cont.) memory access ◮ Page faults must be rare! (Need locality!) How long? ◮ Disk is slow ◮ 5–15 ms is a conservative guess ◮ Main memory takes 5–15 ns ◮ Page fault is about 1 million times slower than a regular memory access ◮ Page faults must be rare! (Need locality!) 5 / 37

  15. Page Faults Cost of Faults A “Back of an Envelope Calculation” CS34 A “Back of an Envelope Calculation” 2013-05-17 How often are there page faults? Page Faults An example from a desktop machine: ◮ In 14 days Cost of Faults ◮ 378,110 page-ins ◮ Average load < 4% → 12 hours actual compute time ◮ 8.75 page faults per second average ◮ 1,000,000,000 memory accesses per second (a guess) A “Back of an Envelope Calculation” ◮ 43,200,000,000,000 memory accesses in 12 hours How often are there page faults? ◮ 1 page-in every 114,252,466 memory accesses ◮ Using 5 ns for memory, 5 ms for disk: ◮ t avg = ( 5 , 000 , 000 ∗ 1 + 5 ∗ 114 , 252 , 465 ) / 114 , 252 , 466 ◮ t avg = 5 . 04ns An example from a desktop machine: Here’s the problem with t avg : it’s spread over 14 days, including time when the desktop’s owner was asleep. It’s an average ! So what if just ◮ In 14 days 1% of those 378K page-ins happened last Monday morning when the ◮ 378,110 page-ins owner started work? All of a sudden we’re spending ◮ Average load < 4% → 12 hours actual compute time 3781 × 5ms = 18 . 905sec waiting for the machine to respond. And the ◮ 8.75 page faults per second average reality is that many more than 1% of the page-ins happen when the owner is most actively using the machine. . . ◮ 1,000,000,000 memory accesses per second (a guess) Part of the problem is “cold start,” when a program is faulting itself in. ◮ 43,200,000,000,000 memory accesses in 12 hours We can improve that in several ways; for example we can pre-load the first page of instructions, perhaps the first page of each dynamic ◮ 1 page-in every 114,252,466 memory accesses library. We can also detect sequential page accesses and prefetch ◮ Using 5 ns for memory, 5 ms for disk: future pages. Or going further, we can remember what happened last ◮ t avg = ( 5 , 000 , 000 ∗ 1 + 5 ∗ 114 , 252 , 465 ) / 114 , 252 , 466 time the program ran and bring in those pages. ◮ t avg = 5 . 04ns 6 / 37

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend