9 virtual memory management


Published on

Virtual memory management

Published in: Technology, Education

9 virtual memory management

  1. 1. Virtual Memory Management  Background  Demand Paging  Copy-on-Write  Page Replacement  Allocation of Frames  Thrashing
  2. 2. 1. Background• Virtual memory – separates user logical memory from physical memory. • Only part of the program needs to be in memory for execution • Logical address space can be much larger than physical address space  Virtual Memory That is Larger Than Physical Memory 2 Loganathan R, CSE, HKBKCE
  3. 3. 1. Background Cntd…• The virtual address space of a process refers to the logical (or virtual) view of how a process is stored in memory• The heap to grow upward in memory as it is used for dynamic memory allocation• The stack to grow downward in memory through successive function calls• The large blank space (or hole) between the heap and the stack is part of the virtual address space• Virtual address spaces that include holes are known as sparse address spaces Loganathan R, CSE, HKBKCE Virtual-address Space 3
  4. 4. 1. Background Cntd…• Virtual memory allows files and memory to be shared by two or more processes through page sharing• Benefits: • System libraries can be shared by several processes • Enables processes to share memory • Allow pages to be shared during process creation with the fork() system call Shared Library Using Virtual Memory 4 Loganathan R, CSE, HKBKCE
  5. 5. 2. Demand Paging• Bring a page into memory only when it is needed – Less I/O needed – Less memory needed – Faster response – More users• Page is needed  reference to it – invalid reference  abort – not-in-memory  bring to memory• Lazy swapper – never swaps a page into memory unless page will be needed – Swapper that deals with pages is a pager• H/W Support required : – Page table valid-invalid bit or special value of protection bits – Secondary memory holds those Transfer of a Paged Memory pages that are not present in to Contiguous Disk Space memory Loganathan R, CSE, HKBKCE 5
  6. 6. 2. Demand PagingValid-Invalid Bit• With each page table entry a valid– invalid bit is associated • v  in-memory •i  not-in- memory• Initially valid–invalid bit is set to i on all entries• During address translation, if valid– invalid bit in page table entry is• i  page fault trap to OS Page Table When Some Pages Are Not in Main Memory Loganathan R, CSE, HKBKCE 6
  7. 7. 2. Demand Paging Cntd…Procedure forhandling the pagefault1. OS looks at another table to decide: – Invalid reference  abort – Just not in memory2. Get empty frame3. Swap page into frame4. Reset tables5. Set validation bit = v6. Restart the instruction that caused the page Steps in Handling a Page Fault fault Loganathan R, CSE, HKBKCE 7
  8. 8. 2. Demand Paging Cntd…Performance of Demand Paging• Let p is the probability of a page fault (0  p  1.0) if p = 0 no page faults and if p = 1, every reference is a fault• Effective Access Time EAT = (1 – p) x ma(memory access) + p x page fault time• Page fault causes 1. Trap to the operating system 2. Save the user registers and process state 3. Determine that the interrupt was a page fault 4. Check that the page reference was legal and determine the location of the page on the disk. 5. Issue a read from the disk to a free frame: Wait in a queue for this device until the read request is serviced. Wait for the device seek and /or latency time. Begin the transfer of the page to a free frame. 6. While waiting, allocate the CPU to some other user (CPU scheduling, optional). 7. Receive an interrupt from the disk I/O subsystem (I/O completed). 8. Save the registers and process state for the other user (if step 6 is executed). 9. Determine that the interrupt was from the disk. 10. Correct page table &other tables to show the desired page is now in memory. 11. Wait for the CPU to be allocated to this process again. 12. Restore the user registers, process state, and new page table, and then resume the interrupted instruction. 8 Loganathan R, CSE, HKBKCE
  9. 9. 2. Demand Paging Cntd…Demand Paging Example• 3 major components of the page-fault time: 1. Service the page-fault interrupt. 2. Read in the page. 3. Restart the process.• Memory access time = 200 nanoseconds• Average page-fault service time = 8 milliseconds• EAT = (1 – p) x 200 + p (8 milliseconds) = (1 – p x 200 + p x 8,000,000 = 200 + p x 7,999,800• If one access out of 1,000 causes a page fault, then EAT = 8.2 microseconds. This is a slowdown by a factor of 40!!• If we want performance degradation to be less than 10 percent, we need 220 > 200 + 7,999,800 x p, 20 > 7,999,800 x p, p < 0.0000025. Loganathan R, CSE, HKBKCE 9
  10. 10. 3. Copy-on-Write• Copy-on-Write (COW) allows both parent and child processes to initially share the same pages in memory If either process modifies a shared page, only then is the page copied• COW allows more efficient process creation as only modified pages are copied• Free pages are allocated from a pool of zeroed-out pages• Example: Before Process 1 Modifies Page C Loganathan R, CSE, HKBKCE 10
  11. 11. 3. Copy-on-Write Cntd…After Process 1 Modifies Page C Loganathan R, CSE, HKBKCE 11
  12. 12. 4. Page ReplacementNeed For Page Replacement 12 Loganathan R, CSE, HKBKCE
  13. 13. 4. Page Replacement Cntd…4.1 Basic Page Replacement 1. Find the location of the desired page on disk 2. If there is a free frame, use it otherwise, use a page replacement algorithm to select a victim frame, write it to the disk, change the page and frame tables 3. Bring the desired page into the (newly) free frame; update the page and frame tables 4. Restart the process• If no frames are free, two page transfers (one out and one in) are required• To reduce this overhead by using a modify bit or dirty bit• The modify bit for a page is set(must write that page to the disk) by the hardware whenever any word or byte is written 13 Loganathan R, CSE, HKBKCE
  14. 14. 4. Page Replacement Cntd…If the number of frames available increases, the number ofpage faults decreases Graph of Page Faults Versus The Number of Frames Loganathan R, CSE, HKBKCE 14
  15. 15. 4. Page Replacement Cntd…4.2 First-In-First-Out (FIFO) Algorithm There are 15 faults • Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 • 3 frames (3 pages can be in memory at a time per process) 1 1 4 5 2 2 1 3 9 page faults 3 3 2 4 • 4 frames 1 1 5 4 2 2 1 5 10 page faults 3 3 2 4 4 3 Belady’s Anomaly: more frames  more page faults in some algoritms Loganathan R, CSE, HKBKCE 15
  16. 16. 4. Page Replacement Cntd…FIFO Illustrating Belady’s Anomaly Page-fault curve for FIFO replacement on a reference string Loganathan R, CSE, HKBKCE 16
  17. 17. 4. Page Replacement Cntd…4.3 Optimal Algorithm (OPT or MIN)• Replace page that will not be used for longest period of time• Never suffers from Beladys anomaly• Difficult to implement, because it requires future knowledge of the reference string • 4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 4 2 6 page faults 3 4 5 Loganathan R, CSE, HKBKCE 17
  18. 18. 4. Page Replacement Cntd…4.4 Least Recently Used (LRU) page replacement Algorithm• Replace the page that has not been used for the longest period of time Total 12 faults • Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 1 1 1 5 2 2 2 2 2 3 5 5 4 4 4 4 3 3 3 Loganathan R, CSE, HKBKCE 18
  19. 19. 4. Page Replacement Cntd…LRU page-replacement implementations1. Using Counter – Every page entry associated with time-of-use field and add to the counter / clock ; every time page is referenced through this entry, copy the clock into the time of use field – When a page needs to be changed, look at smallest time value2. Using Stack • Keep a stack of page numbers in a double link form • If page referenced move that page to the top (requires 6 pointers to be changed) • No search for replacement Both requires H/W support S/W implementation through interrupt will slow every memory reference by a factor of at least ten Loganathan R, CSE, HKBKCE 19
  20. 20. 4. Page Replacement Cntd…4.5 LRU Approximation Page Replacement Algorithms• Each entry in the page table is associated with the reference bit is set by the hardware whenever that page is referenced.4.5.1 Additional-Reference bit Algorithm – Replace the one which is 0 (if one exists) – To know the order of use 8-bit shift registers contain the history of page use for the last eight time periods(11000100 has been used more recently)4.5.2 Second chance Algorithm – If page to be replaced has reference bit = 1 then: • set reference bit 0 and leave page in memory • replace next page (in clock order), subject to same rules 4.5.3 Enhanced Second-Chance Algorithm• Enhance the second-chance algorithm by considering the reference bit and the modify bit as an ordered pair 1. (0, 0) neither recently used nor modified—best page to replace 2. (0, 1) not recently used but modified—not quite as good, because the page will need to be written out before replacement 3. (1., 0) recently used but clean—probably will be used again soon 4. (1,1) recently used and modified—probably will be used again soon, and the page will be need to be written out to disk before it can be replaced Loganathan R, CSE, HKBKCE 20
  21. 21. 4. Page Replacement Cntd…Second-Chance (clock) Page-Replacement Algorithm Loganathan R, CSE, HKBKCE 21
  22. 22. 4. Page Replacement Cntd…4.6 Counting-Based Page Replacement• Keep a counter of the number of references that have been made to each page• Least frequently Used (LFU) Algorithm: replaces page with smallest count, since actively used page should have a large reference count• Most Frequently Used (MFU) Algorithm: based on the argument that the page with the smallest count was probably just brought in and has yet to be used4.7 Page-Buffering Algorithms• The desired page is read into a free frame from the pool before the victim is written out to allow the process to restart as soon as possible and when the victim is later written, its frame is added to the free-frame pool.• Maintain a list of modified pages and whenever the paging device is idle, a modified page is written to the disk• If the frame contents are not modified, it can be reused directly from the free-frame pool if it is needed before that frame is reused Loganathan R, CSE, HKBKCE 22
  23. 23. 5. Allocation of Frames• Each process needs minimum number of pages• Example: IBM 370 – 6 pages to handle MVC (m/y to m/y)instruction: – instruction is 6 bytes, might span 2 pages• Allocation Algorithms – Equal allocation – For example, if there are 100 frames and 5 processes, give each process 20 frames. – Proportional allocation – Allocate according to the size of processLet si  size of process pi Example m  64 S   si s i  10 m  total number of frames s 2  127 si ai  allocation for pi   m a1  10  64  5 S 137 127 a2   64  59 137 Loganathan R, CSE, HKBKCE 23
  24. 24. 5. Allocation of Frames Cntd…5.3 Global versus Local Allocation• Global replacement allows a process to select a replacement frame from the set of all frame i.e. one process can take a frame from another – A process can select a replacement from its own frames or the frames of any lower-priority process – Allows a high-priority process to increase its frame allocation• Local replacement requires that each process select from only its own set of allocated frames – The number of frames allocated to a process does not change Loganathan R, CSE, HKBKCE 24
  25. 25. 6. ThrashingThrashing : high paging activity i.e. a process is spending more time paging than executing6.1 Cause of Thrashing• If a process does not have enough pages, the page-fault rate is very high. This leads to: – low CPU utilization So, OS thinks that it needs to increase the degree of multiprogramming which leads to more page fault Loganathan R, CSE, HKBKCE 25
  26. 26. 6. Thrashing Cntd…Thrashing Prevention• Why does thrashing occur? A locality is a set of pages that are actively used together  size of locality > total memory size – Process migrates from one locality to another – Localities may overlapWorking-Set Model•   working-set window  a fixed number of page references Example: 10,000 instruction• WSSi (Working Set Size of Process Pi) = total number of pages referenced in the most recent  (varies in time) – if  too small will not include entire locality – if  too large will include several localities – if  =   will include entire program 26
  27. 27. 6. Thrashing Cntd…• D =  WSSi  total demand frames• if D > m  Thrashing• Policy if D > m, then suspend one of the processes• Approximate the working set with interval timer + a reference bit Loganathan R, CSE, HKBKCE 27
  28. 28. 6. Thrashing Cntd…Page-Fault Frequency Scheme• Establish “acceptable” page-fault rate – If actual rate too low, process loses frame – If actual rate too high, process gains frame Loganathan R, CSE, HKBKCE 28