Используя технику, называемую перечислением корневых множеств, все корни будут идентифицированы.Вот предложение из патентного документа Mark-sweep.
На первом этапе могут быть идентифицированы все прямые ссылки на объекты из запущенных в настоящее время программ.Эти ссылки называются корнями или вместе корневым набором, и процесс идентификации всех таких ссылок можно назвать перечислением корневого набора
. Здесь приведена ссылка на патентный документ. Mark Sweep патентная ссылка
Даже если это парень .NET, я чувствую Основы Mark Sweep ссылка даст вам хорошее понимание того, как она работает.