dynamic storage reclamation
play

Dynamic Storage Reclamation Course Introduction Roll call and - PowerPoint PPT Presentation

Dynamic Storage Reclamation Course Introduction Roll call and introductions Name (nickname) Hometown Local residence Major(s) Something exciting you did over the break 2 Administrivia! Background Syllabus Schedule


  1. Dynamic Storage Reclamation Course Introduction

  2. Roll call and introductions  Name (nickname)  Hometown  Local residence  Major(s)  Something exciting you did over the break 2

  3. Administrivia!  Background  Syllabus  Schedule  Index page  First assignment due next Tuesday 3

  4. Course logistics  Goals  Explore GC  Perform research  Discussion and presentations  Read and present papers  Individual or group project  Build a collector  Documentation  Important part of project 4

  5. Key concepts in managing memory  Key challenges and key ideas  Explicit vs Automated memory management  In which languages is each done?  Why?  Memory allocation  Contiguous allocation  Free-list allocation  Memory reclamation  Tracing  Reference counting 5

  6. What is memory management?  Programs contain  Objects  Data  Occupy memory  Runtime system must allocate and reclaim memory for program in an efficient manner  Why is this important?  Why is this hard?  Why is this interesting? 6

  7. Allocation and Reclamation  Allocation  Objects dynamically allocated on HEAP  malloc(), new()  Reclamation  Manual/Explicit  free()  delete()  Automated  Garbage collection (GC) 7

  8. Explicit memory management pluses  Efficiency can be very high  Puts the programmer in control 8

  9. Explicit memory management challenges  Consumes software development time  new  allocate storage for new object  delete  reclaim storage  Prone to software faults (reclaim too soon) Foo* p = new Foo(); Foo* q = p; delete p; p->DoSomething(); p = NULL; q->ProcessFoo();  Statically undecidable  Problem for developers 9

  10. Explicit memory management challenges  Memory leak (never reclaim) #include <stdlib.h> void f(void){ void* s; s = malloc(50); return; } int main(void){ while (1) f(); return 0; } 10

  11. Automated memory management  Runtime system automatically  Detects dead objects (garbage detection)  Reclaims dead objects (garbage reclamation)  Garbage collection  Preserves software development time  Relieves programmer burden  Less prone to errors  Utilized by most modern OOP and scripting languages  Python, Java, C#, php 11

  12. Garbage collection challenges public void f(){  Occurs an unpredictable startLaser(); times Obj o = new Obj(); stopLaser();  Duration is unbounded }  Performance efficiency public static void main(…){ issues while (true) f(); } Time GC, Bad for Real- Time 12

  13. Major concerns  Explicit memory management  Reclaiming objects at the right time  Garbage collection  Discriminating live objects from garbage  Both  Fast allocation  Fast reclamation  Low fragmentation 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