A method for memory reclamation is disclosed that includes marking a memory
object when an attempt to alter a reference to the memory object is
detected by a software write barrier. Marking be by using representations
("black," "white", "gray") stored as part of a garbage collection
information data structure associated with each memory object. Initially,
all allocated memory objects are marked white. Objects are then processed
such that objects referenced by pointers are marked gray. Each object
marked gray is then processed to determine objects referenced by pointers
in it, and such objects are marked gray. When all objects referenced by
pointers in the selected gray objected have been processed, the selected
gray object is marked black. When all processing has been completed,
objects still marked white may be reclaimed. Also described is a garbage
collector which runs as a task concurrently with other tasks. A priority
of the garbage collector may be increased to prevent interruption during
certain parts of the garbage collection procedure.
On révèle une méthode pour la récupération de mémoire qui inclut marquer un objet de mémoire quand une tentative de changer une référence à l'objet de mémoire est détectée par un logiciel écrivent la barrière. Le repérage soit en employant des représentations ("noir," "blanc", "gris") stockées en tant qu'élément d'une structure de données de l'information de collection d'ordures liée à chaque objet de mémoire. Au commencement, tous les objets assignés de mémoire sont blanc marqué. Des objets sont alors traités tels que les objets référencés par des indicateurs sont gris marqué. Chaque gris marqué par objet est alors traité pour déterminer des objets référencés par des indicateurs dans lui, et de tels objets sont gris marqué. Quand tous les objets référencés par des indicateurs dans le gris choisi objecté ont été traités, l'objet gris choisi est noir marqué. Quand tout le traitement a été complété, les objets marquaient toujours le blanc peuvent être repris. En outre décrit est un collecteur d'ordures qui fonctionne pendant qu'un charger en même temps que autre charge. Une priorité du collecteur d'ordures peut être augmentée pour empêcher l'interruption pendant certaines parties du procédé de collection d'ordures.