The first phase of a mark-sweep garbage collector is to mark(find) all the live objects on the heap. To do this, there must be a starting point or root, from where all the marking begins. How does GC identify such roots?
2 Answers
3
votes
2
votes
Using the technique called root set enumeratios all roots will be identified. Here is sentence from Mark-sweep patent document.
In the first phase, all direct references to objects from currently running programs may be identified. These references are called roots, or together a root set, and a process of identifying all such references may be called root set enumeration
Here is link for patent document. Mark sweep patent link
Eventhough it was by .NET guy, I feel Basics of mark sweep link will give you good understanding on how it works.