A multiprocessor, multiprogram, stop-the-world garbage collection program
is described. The system initially over partitions the root sources, and
then iteratively employs static and dynamic work balancing. Garbage
collection threads compete dynamically for the initial partitions. Work
stealing double-ended queues, where contention is reduced, are described
to provide dynamic load balancing among the threads. Contention is
resolved by atomic instructions. The heap is broken into a young and an
old generation where semi-space copying employing local allocation buffers
is used to collect the reachable objects in the young section, and for
promoting objects from the young to the old generations, and parallel
mark-compacting is used for collecting the old generation. Efficiency of
collection is enhanced by use of card tables and linking objects, and
overflow conditions are efficiently handled by linking using class
pointers. The garbage collection termination using a global status word is
employed.
Um multiprocessor, multiprogram, programa da coleção do lixo do par-$$$-MUNDO é descrito. O excesso do sistema inicialmente divide as fontes da raiz, e então emprega iterativa balançar de estática e dinâmico do trabalho. As linhas da coleção do lixo competem dinâmicamente para as divisórias iniciais. Trabalhe roubando as filas double-ended, onde a disputa é reduzida, são descritos para fornecer a carga dinâmica que balança entre as linhas. A disputa é resolvida por instruções atômicas. O heap é quebrado em uma geração nova e velha onde o semi-espaço que copía empregando amortecedores locais do alocamento seja usado coletar os objetos reachable na seção nova, e para promover objeta dos jovens às gerações velhas, e marca-comprimir da paralela é usado coletando a geração velha. A eficiência da coleção é realçada pelo uso de tabelas de cartão e objetos ligar, e as condições do excesso são seguradas eficientemente ligando ponteiros usando-se da classe. A terminação da coleção do lixo que usa uma palavra global do status é empregada.