1 / 27

Memory Management - II

CS423UG Operating Systems . Memory Management - II. Indranil Gupta Lecture 14 Sep 26, 2005. Agenda. Storage Management Virtual Memory and Paging. Review. Memory Manager Monitor used and free memory Allocate memory to processes

casper
Download Presentation

Memory Management - II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS423UG Operating Systems Memory Management - II Indranil Gupta Lecture 14 Sep 26, 2005

  2. Agenda • Storage Management • Virtual Memory and Paging CS 423UG - Operating Systems, Indranil Gupta

  3. Review • Memory Manager • Monitor used and free memory • Allocate memory to processes • Reclaim (De-allocate) memory • Swapping between main memory and disk • Mono-programming memory management • Overlay • Multi-programming memory management • Fixed partition • Relocation and protection CS 423UG - Operating Systems, Indranil Gupta

  4. Swapping • Move a part of or the whole process to disk • Allows several processes to share a fixed partition • Processes that grow can be swapped out and swapped back in a bigger partition CS 423UG - Operating Systems, Indranil Gupta

  5. Variable Partitions and Fragmentation Free 1 Monitor Job 1 Job 2 Job 3 Job 4 2 Free Monitor Job 1 Job 3 Job 4 3 Free Monitor Job 1 Job 5 Job 3 Job 4 Free 4 Monitor Job 5 Job 3 Job 4 Job 6 Free 5 Monitor Job 7 Job 5 Job 3 Job 8 Job 6 Memory wasted by External Fragmentation CS 423UG - Operating Systems, Indranil Gupta

  6. Memory Management with Bitmaps • Memory is divided into fixed-size allocation units (e.g., 512 B). • One allocation unit corresponds to 1bit in the bitmap • 0: free, 1: allocated • Use bitmaps for free lists. • Size of allocation unit • The smaller the allocation unit, the larger the bitmap. • Problem: allocation • When a new process arrives, the manager must find consecutive 0 bits in the map. • Searching a bitmap for a run of a given length is a slow operation. 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 CS 423UG - Operating Systems, Indranil Gupta

  7. Memory Management with Linked Lists A,0,10 • Use a linked list of allocated and free memory segments (“holes”) • sorted by the address or by the size h,10,5 B,15,8 Four neighbor combinations for the terminating process X CS 423UG - Operating Systems, Indranil Gupta

  8. Storage Placement Strategies • Analogy: • Shoe Fitting • Valet parking • First Fit • Scan; use the first available hole whose size is sufficient to meet the need. • Problem: Creates average size holes; more fragementation closer to scan start. • Next Fit • Minor variation of first fit: keep track of where last search ended, restart from there. • Problem: slightly worse performance than first fit. • Best Fit • Use the hole whose size is equal to the need, or if none is equal, the smallest hole that is large enough. • Problem: Creates small holes that can't be used. • Worst Fit • Use the largest available hole. • Problem: Gets rid of large holes, making it difficult to run large processes. • Quick Fit • maintains separate lists for some of the more common sizes requested. • When a request comes for placement, it finds the closest fit. • This is a very fast scheme, but a merge is expensive. If merge is not done, memory will quickly fragment into a large number of holes. CS 423UG - Operating Systems, Indranil Gupta

  9. Compaction (Similar to Garbage Collection) • Assumes programs are all relocatable (how supported?) • Processes must be suspended during compaction • Needed only when fragmentation gets very bad Free 5 Monitor Job 7 Job 5 Job 3 Job 8 Job 6 Free 6 Monitor Job 7 Job 5 Job 3 Job 8 Job 6 Free 7 Monitor Job 7 Job 5 Job 3 Job 8 Job 6 Free 8 Monitor Job 7 Job 5 Job 3 Job 8 Job 6 Free 9 Monitor Job 7 Job 5 Job 3 Job 8 Job 6 CS 423UG - Operating Systems, Indranil Gupta

  10. Multiple Base Registers • Break programs into smaller units because they will fit better • Use multiple base registers, one for each unit • Examples • Code/Data • Constants/variables CS 423UG - Operating Systems, Indranil Gupta

  11. Storage Management Problems • Fixed partitions suffer from internal fragmentation • Process may require only, say, 800 B, but blocks allocated in multiples of 512 B’s. • Variable partitions suffer from external fragmentation • Compaction suffers from overhead • Partitions must be less in size than real memory • Overlays are painful to program efficiently • Swapping requires writing to disk sectors CS 423UG - Operating Systems, Indranil Gupta

  12. How Bad Is Fragmentation? • Statistical arguments - Random sizes • First-fit • Given N allocated blocks • 0.5N blocks will be lost because of fragmentation • Known as 50% RULE CS 423UG - Operating Systems, Indranil Gupta

  13. Alternative Approach: Virtual Memory • Provide user with virtual memory that is as big as user needs • Store virtual memory on disk • Store in real memory those parts of virtual memory currently under use • Load and store cached virtual memory without user program intervention (“transparently”) CS 423UG - Operating Systems, Indranil Gupta

  14. Benefits of Virtual Memory • Use secondary storage($) • Extend DRAM($$$) with reasonable performance • Protection • Processes do not step on each other • Convenience • Flat address space • Processes have the same view of the world • Load and store cached virtual memory without user program intervention • Reduce fragmentation: • make cacheable units all the same size (page=allocation unit) • Remove memory deadlock possibilities: • permit pre-emption of real memory CS 423UG - Operating Systems, Indranil Gupta

  15. Real Memory Request Page 3 Page Table 1 VM Frame Memory 3 1 2 3 4 1 2 3 4 Virtual Memory Stored on Disk Disk 1 2 3 4 5 6 7 8 Paging – What’s that? Per-process Frames Pages CS 423UG - Operating Systems, Indranil Gupta

  16. Real Memory Request Page 1 Page Table 1 VM Frame Memory 3 1 2 1 2 3 4 1 2 3 4 Virtual Memory Stored on Disk Disk 1 2 3 4 5 6 7 8 Paging – it’s about Pages and Frames Per-process CS 423UG - Operating Systems, Indranil Gupta

  17. Real Memory Request Page 6 Page Table 1 VM Frame Memory 3 1 2 1 2 3 6 3 4 1 2 3 4 Virtual Memory Stored on Disk Disk 1 2 3 4 5 6 7 8 Paging Per-process CS 423UG - Operating Systems, Indranil Gupta

  18. Real Memory Request Page 2 Page Table 1 VM Frame Memory 3 1 2 1 2 3 6 3 2 4 4 1 2 3 4 Virtual Memory Stored on Disk Disk 1 2 3 4 5 6 7 8 Paging Per-process CS 423UG - Operating Systems, Indranil Gupta

  19. Real Memory Request Page 8: Swap page 2 to disk first Page Table 1 VM Frame Memory 3 1 2 1 2 3 6 3 4 2 4 1 2 3 4 Virtual Memory Stored on Disk Disk 1 2 3 4 5 6 7 8 Paging Per-process CS 423UG - Operating Systems, Indranil Gupta

  20. Real Memory Load Page 8 to Memory Page Table 1 VM Frame Memory 3 1 2 8 2 3 6 3 4 2 4 1 2 3 4 Virtual Memory Stored on Disk Disk 1 2 3 4 5 6 7 8 Paging Per-process CS 423UG - Operating Systems, Indranil Gupta

  21. Virtual Memory Virtual Address (P,D) P Page Table P D 0 D P 1 Contents(P,D) 0 P, F 1 1 0 Physical Memory 1 F D F Physical Address (F,D) D Contents(F,D) Paging: Hardware Required! CPU P=page number F=frame number D=offset within page CS 423UG - Operating Systems, Indranil Gupta

  22. Translating Pages into Frames CPU Virtual Memory Virtual Address (003006) 003 Page Table 003 006 0 006 4 1 Contents(3006) 0 003, 004 1 1 0 Physical Memory 1 004 006 004 Physical Address (F,D) Page size 1000 Number of Possible Virtual Pages 1000 Number of Page Frames 8 006 Contents(4006) CS 423UG - Operating Systems, Indranil Gupta

  23. Page Fault • Access a virtual page that is not mapped into any physical page • A fault/TRAP is triggered by hardware • Page fault handler (by VM Software, a part of OS) • Find if there is any free physical frame available • If no, evict some resident page to disk (either permanently, or temporarily into swap space) • Allocate a free physical frame • Load the faulted virtual page to the prepared physical frame • Modify the page table CS 423UG - Operating Systems, Indranil Gupta

  24. Paging Issues • Page size is 2n • usually 512, 1k, 2k, 4k, or 8k • Too small is bad. E.g. 32 bit VM address may have 220 (1MB) pages with 4k (212 ) bytes per page • 220 page entries take 222 bytes (4MB) • Too large is bad – internal fragmentation • Page table: • Page table must be stored in memory! • Page Table Base Register (points to physical address of page table of “running” process). Must be changed for context switch. • NO External fragmentation, Internal fragmentation on last page ONLY CS 423UG - Operating Systems, Indranil Gupta

  25. PTBR=Page Table Base Register (in hardware) CPU Virtual Memory Virtual Address (003006) PTBR=001 003 Page Table 003 006 0 006 4 1 Contents(3006) 0 003, 004 1 1 0 Physical Memory 1 004 006 004 Physical Address (F,D) Page size 1000 Number of Possible Virtual Pages 1000 Number of Page Frames 8 006 Contents(4006) CS 423UG - Operating Systems, Indranil Gupta

  26. Address Translation: Birth to Death Virtual address (P,D) 1 (PTBR,P*4)=phy. address of page table entry (4 B per entry) CPU 2 PTBR Return via address bus 3 6 Get page table entry (P,F) (F,D) 4 Access (F,D)’th byte of phy. memory Physical address 5 CS 423UG - Operating Systems, Indranil Gupta

  27. Reminder • Reading for this lecture: Until 4.3.2 • Reading for next lecture: 4.0-4.3 • Midterm: October 10, Monday, 10am-10:50am, 1404 SC • HW3 due THIS WEEK Friday • MP2 out soon CS 423UG - Operating Systems, Indranil Gupta

More Related