SlideServe
Menu
Préférences
© SlideServe · v2026

Virtual Memory Management

armand-fowler avatar
35 diapositives · 514 Views · Nov 13, 2014

Virtual memory management separates user logical memory from physical memory, allowing more efficient process creation and execution. Only necessary program parts need to be in memory, making logical address space larger than physical address space. Key techniques include demand paging and demand segmentation, which bring pages into memory as needed, improving I/O efficiency and response times. Handling page faults involves several steps, such as checking page validity, retrieving pages from disk, and optimizing memory access to minimize faults. Effective page replacement strategies further enhance performance.

Virtual Memory Management - slide 1
01 / 35Virtual Memory Management
1 / 17

Télécharger la présentation

Virtual Memory Management
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Virtual Memory Management G. Anuradha Ref:- Galvin

  2. Background • Virtual memory – separation of user logical memory from physical memory. • Only part of the program needs to be in memory for execution • Logical address space can therefore be much larger than physical address space • Allows address spaces to be shared by several processes • Allows for more efficient process creation • Virtual memory can be implemented via: • Demand paging • Demand segmentation

  3. 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

  4. Transfer of a Paged Memory to Contiguous Disk Space

  5. Valid-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 • Example of a page table snapshot: • During address translation, if valid–invalid bit in page table entry is I  page fault Frame # valid-invalid bit v v v v i …. i i page table

  6. Page Table When Some Pages Are Not in Main Memory

  7. Page Fault • If there is a reference to a page, first reference to that page will trap to operating system: page fault • Operating system looks at another table to decide: • Invalid reference  abort • Just not in memory • Get empty frame • Swap page into frame • Reset tables • Set validation bit = v • Restart the instruction that caused the page fault

  8. Steps in Handling a Page Fault

  9. Demand Paging • Pure Demand Paging:- • Begin a process with no pages in the memory • Bring the pages only as and when required • Hardware support for demand paging • Page table • Secondary memory

  10. Performance of Demand Paging • Page Fault Rate 0  p  1.0 • if p = 0 no page faults • if p = 1, every reference is a fault • Effective Access Time (EAT) EAT = (1 – p) x memory access + p (page fault overhead )

  11. Sequence of events when a page fault occurs • Trap to OS • Save the user registers and process states • Determine the interrupt that causes a page fault • Check that the page referred was legal and determine the location of the page on the disk • Issue a read from the disk to free frame • Wait in a queue until serviced • Wait for device seek/latency time • Begin the transfer of page to a free frame

  12. Sequence of events when a page fault occurs • While waiting, allocate the CPU to some other user • Receive an interrupt from the disk I/O subsystem • Save the registers and process state for the other user • Determine that the interrupt was from disk • Correct page table entries • Wait for CPU to be allocated to the process again • Restore the user registers, process state and then resume the interrupted instruction

  13. Effective Access Time (EAT) EAT = (1 – p) x memory access + p (page fault overhead + swap page out + swap page in + restart overhead )

  14. Demand Paging Example • Memory access time = 200 nanoseconds • Average page-fault service time = 8 milliseconds • Effective Access Time (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!! (PAGE FAULT SHOULD BE KEPT AT HE MINIMUM POSSIBLE VALUE IN ORDER TO IMPROVE THE ACCESS TIME)

  15. Copy-on-write • Process creation can be initiated by demand paging • However fork command bypasses the need of demand paging • Fork() command created a copy of the parent’s address space for the child • If many child process uses the exec() system call a copy-on-write method is used

  16. Before Process 1 Modifies Page C

  17. After Process 1 Modifies Page C • A copy of page C is created • Child process will modify its copied page and not the page belonging to the parent process • If pages are not modified then its shared by parent and child processes.

  18. Page Replacement

  19. Basic Page Replacement • Find the location of the desired page on disk • Find a free frame: - If there is a free frame, use it - If there is no free frame, use a page replacement algorithm to select a victim frame • Bring the desired page into the (newly) free frame; update the page and frame tables • Restart the process

  20. Page Replacement Use modify (dirty) bitto reduce overhead of page transfers – only modified pages are written to disk

  21. Page Replacement contd… • Two major problems must be solved to implement demand paging • Frame allocation algorithm • Page-replacement algorithm • Want lowest page-fault rate Evaluate algorithm by running it on a particular string of memory references (reference string) and computing the number of page faults on that string

  22. First-In-First-Out (FIFO) Algorithm • 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) • 4 frames • Belady’s Anomaly: more frames  more page faults 1 1 4 5 2 2 1 3 9 page faults 3 3 2 4 1 1 5 4 2 2 1 10 page faults 5 3 3 2 4 4 3

  23. FIFO Page Replacement

  24. FIFO Illustrating Belady’s Anomaly

  25. Optimal Algorithm • Replace page that will not be used for longest period of time • 4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 • How do you know this? • Used for measuring how well your algorithm performs 1 4 2 6 page faults 3 4 5

  26. Optimal Page Replacement Difficult to implement becos it requires future knowledge of reference string

  27. Least Recently Used (LRU) Algorithm • Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 • Counter implementation • Every page entry has a counter; every time page is referenced through this entry, copy the clock into the counter • When a page needs to be changed, look at the counters to determine which are to change 1 1 1 5 1 2 2 2 2 2 5 4 3 4 5 3 3 4 3 4

  28. LRU Page Replacement

  29. LRU Algorithm (Cont.) • Stack implementation – keep a stack of page numbers in a double link form: • Page referenced: • move it to the top • Most recently used page is always at the top of the stack and least recently used page is always at the bottom • Can be implemented by a double linked list with a head pointer and a tail pointer • Both LRU and ORU comes under the class of algos called as stack algorithm • Does not suffer from Belady’s Anamoly

  30. Important questions • What is paging? Explain the structure of page table • What is belady’s algorithm? Explain LRU, FIFO, OPR algos. Which algorithm suffers from Belady’s anomaly? • Short note on page fault handling • Explain virtual memory and demand paging • Draw and explain paging hardware with TLB • Explain paging in detail. Describe how logical address converted to physical address • Explain how memory management takes place in Linux

  31. Important questions