Understand the underlying theory behind automatic memory management and garbage collection.
Key Features
- Learn about various GC algorithms, such as Mark-Compact collector and Reference counting collector
- Identify the difference between tracing and direct collectors
- Learn about Tri-color abstraction and marking
Book Description
Memory leaks and dangling pointers are the main issues of manual memory management. If you delete a parent node in a linked list, forgetting to delete all its children first—your memory is leaking. You delete an object chain in the correct order but suddenly, your program crashes since you forgot about the second owner of this resource, which now tries to dereference a null-pointer.
To avoid these issues, most modern high-level programming languages implement automatic memory management. You allocate objects manually; however, don't bother with their deallocation: a special program, garbage collector, knows how to automatically deallocate them correctly and reclaim for future reuse.
In this course, we'll study all the different techniques and algorithms related to automatic memory management, which are used today in practice.
What you will learn
- Learn about memory management allocations like Static, Stack, and Heap
- Learn the algorithms and data structures behind automatic memory management in computer programs
- Learn about virtual memory and memory layout
- Learn about semantic and syntactic garbage
- Learn about the various kinds of garbage collectors
- Learn about GC barriers
Who this book is for
This course is mainly for compiler engineers. However, all computer engineers willing to implement a complex project to learn different memory management algorithms will find this course useful. (Generic knowledge is transferable to other systems.)