Summary: | 碩士 === 國立東華大學 === 資訊工程學系 === 103 === In this thesis, we focus on the research in distributed garbage collection (DGC).
The algorithms of DGC usually fall into two categories: tracing and reference
counting. In tracing algorithms, all the live objects can be traced from the
root objects. When the system begins to reclaim memory, the whole system
has to suspend for reclaiming unlabeled objects. In reference counting algorithms,
a counter is used for each object to record the number of references
to the object. When the counter becomes zero, the object is reclaimed. In
distributed environments, reference counting algorithms usually perform in
small steps interleaved with computation and have better locality, and therefore
we think that reference counting algorithms have more advantages than
tracing algorithms in distributed environments. Among others, there are two
reference counting algorithms popularly used for DGC. Distributed reference
counting (DRC) is a straightforward extension of traditional reference counting.
Weighted reference counting (WRC) reduces the cost of communications
but increases the cost of memory space.
The idea of surrogates has shown to be a practical method to improve
v
the efficiency of reference counting DGC algorithms. There are two surrogate
based DGC algorithms already developed: surrogate reference counting (SRC)
and weighted surrogate reference counting (WSRC). We further extend the
two algorithms and propose a new DGC algorithm called Efficient Surrogate
Reference Counting (ESRC), which is designed to combine the advantages of
surrogate reference counting and weighted surrogate reference counting. This
new and improved algorithm uses less memory space than WSRC and reduces
the number of connections from SRC in a distributed environment.
For experiments, we implement five reference counting DGC algorithms in
OpenJDK using RMI packages. In the experiments, the new ESRC garbage
collector requires less communications than DRC, WRC, and SRC. In most
cases, the ESRC algorithm requires the same number of connections as WSRC,
but it reduces the memory space used. The benchmarks we used for experiments
are selected from the NAS Parallel Benchmarks (NPB), which are a
set of benchmarks for evaluating performance of parallel computers. In the
NPB 3.0 benchmarks, we selected five sets for our experiments, which are
SP, FT, BT, LU, MG, and ED. In comparison with DRC, our algorithm, in
average, reducesthe overall consumed time by 19.03% , reduces the garbage
collection time by 96.43% , and reduces the total execution time by 23.8%
. In comparison with WRC, our algorithm, in average, reduces the overall
consumed time by 12.16% , reduces the garbage collection time by 95.71% ,
and reduces the total execution time by 13.40% . In comparison with SRC,
our algorithm, in average, reduces the overall consumed time by 7% , reduces
vi
the garbage collection time by 94.20% , and reduces the total execution time
by 3.8% . In comparison with WSRC, our algorithm, in average, reduces the
overall consumed time by 9.6% , reduces the garbage collection time by 47.4%
, and reduces the total execution time by 5.6% .
|