Quasi-gleichzeitige komprimierung in einem freispeichersammlungssystem

Mostly concurrent compaction in a garbage collection system

Compaction essentiellement concurrente dans un systeme de recuperation de l'espace memoire

Abstract

La ré-attribution d'objets déjà attribués à un programme consiste d'abord à identifier les variables qui indiquent un ensemble précis d'objets utilisés dans un sous-ensemble de mémoire (162). Une fois identifiés, ces pointeurs sont ajoutés à une structure de données. Une barrière d'écriture repère comme « impures » les zones de mémoire dans lesquels les pointeurs se trouvent modifiés par le programme. Un certain nombre d'emplacements en dehors du sous-ensemble de mémoire sont réservés en vue de leur utilisation pour le stockage d'objets déterminés. L'exécution du programme est alors suspendue (170). L'examen des régions de mémoire repérées comme « impures » doit permettre d'identifier toute autre variable indiquant des objets précis qui sont ensuite ajoutés à la structure de données (172). Les variables qui continuent d'indiquer lesdits objets sont modifiées de manière à indiquer des emplacements correspondants en dehors du sous-ensemble de mémoire (174). Les objets sélectionnés sont ensuite copiés sur les emplacements situés en dehors du sous-ensemble de mémoire, lequel retourne (176) à la liste libre, et le programme démarre (178).
Objects that have been allocated to a program are relocated by first identifying those variables pointing to a selected set of objects that are in use within a subset of memory (41). As these pointers are identified, they are added to a data structure. A write barrier marks as 'dirty' those memory regions in which pointers are modified by the program. A number of locations outside the subset of memory are reserved to be used to store the selected objects. Program execution is then suspended (170). Memory regions marked as 'dirty' are examined to identify any further variables pointing to selected objects which are then added to the data structure (116). Those variables contained in the data structure (116) that continue to point to selected objects which are modified to point to corresponding locations outside of the subset of memory (41). Selected objects are then copied (176) to locations outside of the subset of memory, the subset of memory is returned to the free list, and the program is restarted (178).

Claims

Description

Topics

Download Full PDF Version (Non-Commercial Use)

Patent Citations (2)

    Publication numberPublication dateAssigneeTitle
    EP-0874319-A2October 28, 1998Sun Microsystems, Inc.Procédé et dispositif de localisation de noeuds dans un tas partagé en cartes
    US-5687368-ANovember 11, 1997Iowa State University Research Foundation, Inc.CPU-controlled garbage-collecting memory module

NO-Patent Citations (1)

    Title
    See also references of WO 0077644A1

Cited By (0)

    Publication numberPublication dateAssigneeTitle