Video description
Understand the underlying theory behind automatic memory management and garbage collection.
About This Video
- 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
In Detail
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.
Table of Contents
Chapter 1 : Memory Management
Allocation Types
Manual Memory Management
Object Header
Virtual Memory and Memory Layout
Mutator, Allocator, Collector
Allocators: Free-list Versus Sequential
Semantic Versus Syntactic Garbage
Chapter 2 : Garbage Collectors
Tracing Versus Direct Collectors
Mark-Sweep Collector
Mark-Compact Collector
Copying Collector
Reference Counting Collector
Chapter 3 : Advance Topics
Generational Collector
Mark-Region GC: Immix Collector
Parallel, Incremental, Concurrent GC
Tri-color Abstraction
GC Barriers
Chapter 4 : Extras
Java: G1 Garbage Collector