A data processing method and apparatus are described for mark-sweep garbage
collection through stored data structures defined by data objects in a
multi threading environment supporting the handling of finalisers.
Pipelining of the marking (MA) and sweeping (GC) states is enabled by
increasing the number of mark states M to four, namely Marked, Unmarked,
Pending or Deletable. The sweeping stage GC consists of a linear sweep
across the heap in which any objects with M=Deletable (detected
non-reachables) are deleted at point D1, whilst objects with finalisers
and M=Pending are placed on a finaliser queue and marked. The finalising
stage executes finalisers for objects on the finaliser queue (D2). The
method includes a synchronisation point (SP) where the results of the mark
phase are passed onto the sweeping phase. The synchronisation point
performs the following operation of rotating M for all objects; this
operation converts the systems perception of the stored code indicating
Marked to indicate Unmarked, with similar conversion for Unmarked to
Pending, and Pending to Deletable. In operation, it takes two garbage
collection cycles to move an Unmarked object to the Deletable state (D3),
which is long enough to detect finaliser-reachability in the intervening
mark phase.
Un método y un aparato de proceso de datos se describen para marca-barren la colección de la basura a través de las estructuras de datos almacenadas definidas por los objetos de los datos en un ambiente multi que rosca que apoya la dirección de finalisers. La can¢ería de la marca (mA) y de los estados (de la CROMATOGRAFÍA GASEOSA que barren) es permitida aumentando el número de los estados M de la marca a cuatro, a saber marcado, Unmarked, pendiente o deletable. La CROMATOGRAFÍA GASEOSA arrebatadora de la etapa consiste en un barrido linear a través del montón en el cual cualquier objeto con M=Deletable (non-reachables detectados) se suprime en el punto D1, mientras que los objetos con finalisers y M=Pending se colocan en una coleta del finaliser y están marcados. La etapa que concluye ejecuta los finalisers para los objetos en la coleta del finaliser (D2). El método incluye un punto de la sincronización (SP) donde los resultados de la fase de la marca se pasan sobre la fase arrebatadora. El punto de la sincronización realiza la operación siguiente de rotar M para todos los objetos; esta operación convierte la opinión de los sistemas de indicar almacenado del código marcado para indicar Unmarked, con la conversión similar para Unmarked a pendiente, y hasta que finalicen a deletable. En la operación, toma dos ciclos de la colección de la basura para mover un objeto de Unmarked al estado deletable (D3), que es suficientemente largo detectar finaliser-reachability en la fase de la marca que interviene.