Slide 15
Slide 15 text
Concurrent GC: Issue 1
8 Martin T. Vechev, David F. Bacon, Perry Cheng, and David Grove
Y X
Z
a
ROOTS
Y X
a
ROOTS
b
Z
Y X
ROOTS
b
Z
Y X
ROOTS
b
Z
MUT GC
Y X
ROOTS
b
GC
MUT
D4: Collector incorrectly
frees object Z
D1: Mutator stores
pointer b into
scanned object Y
D2: Mutator removes
pointer a from
unscanned object X
D3: Collector scans
object X
Fig. 3. Erroneous collection of live object Z via deletion of direct pointer a from object X.
Object Allocation Besides pointer assignments, the mutator can also add objects to
the connectivity graph. Similarly to pointer assignments, the allocation interacts with
Figure Source: https://link.springer.com/chapter/10.1007%2F11531142_25
Managed Runtime Systems 14 of 20 https://foivos.zakkak.net