models gc s two phase abstraction mark sweep gc defined
play

Models GCs two phase abstraction Mark-sweep GC Defined First - PowerPoint PPT Presentation

Models GCs two phase abstraction Mark-sweep GC Defined First algorithm for automated storage reclamation Is a stop-the-world collector Is an example of a tracing collector Has two phases Mark phase marks all objects


  1. Models GC’s two phase abstraction

  2. Mark-sweep GC Defined  First algorithm for automated storage reclamation  Is a stop-the-world collector  Is an example of a tracing collector  Has two phases  Mark phase  marks all objects reachable from the root set of the currently executing program  Sweep phase  reclaims all objects not marked in the in the previous phase 2

  3. Implement 2-phase abstract GC alg.  Distinguish live objects from garbage  Done by tracing, the mark step  Starts at the root set  Traverse graph of pointer relationships  Depth-first or breadth-first search  Mark reached object in some way  bitmap, bit in object, some other table  Reclaim the garbage  Done in sweep phase  Memory exhaustively examined to find garbage  Linked to one or more free lists 3

  4. Mark-sweep operations 4

  5. Mark-sweep algorithm // The mark-sweep collector // The eager sweep of the heap mark_sweep() { sweep() { for R in Roots N = Heap_bottom mark(R) while N < Heap_top sweep() if mark_bit(N) == unmarked if free_pool is empty free(N) abort "Memory exhausted" else mark_bit(N) = unmarked } N = N + size(N) // Simple recursive marking } mark(N) { if mark_bit(N) == unmarked mark_bit(N) = marked for M in Children(N) mark(*M) 5 }

  6. Graph of object relationships Root set Before MS GC Runs 6

  7. Graph of object relationships Root set Graph after mark phase 7

  8. Graph of object relationships Root set Graph after sweep phase 8

  9. Graph of object relationships Root set After MS GC Runs 9

  10. Advantages of mark-sweep GC  Reclaims ‘ all ’ garbage  Including cyclic data structures  No overhead on manipulating pointers  Low space overhead  Only a mark bit per object 10

  11. Disadvantages of mark-sweep GC  Stop-the-world algorithm  Computation suspended while GC runs  Pause time may be high  Not practical for real-time, interactive applications, video games  High cost:  proportional to size of heap (not just live objects)  Why?  Active objects visited by mark phase  All of memory visited by sweep phase 11

  12. Disadvantages of mark-sweep GC  Tending to fragment memory  Programs may ‘ thrash ’  High heap occupancy  GC runs frequently 12

  13. How do we address these cons? Subject of next class 13

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