Conservative garbage collectors that can be used with general memory allocators
First Claim
1. An allocator that manages a heap of memory blocks for a process, the process employing a conservative garbage collector that is independent of the allocator to detect unused memory blocks in the heap and the allocator having the improvement comprising:
- a current heap map that is accessible to the garbage collector and that indicates the location of each block in the current heap and for each block, whether the block is collectible by the garbage collector.
11 Assignments
0 Petitions
Accused Products
Abstract
A technique that permits a conservative garbage collector to be used with the heap management functions provided by an allocator which is independent of the garbage collector. The allocator and the garbage collector (139) employ a malloc table (319) to exchange information about the heap (125). When the allocator determines that determines that garbage collection is required, the allocator makes a current heap map in the malloc table that specifies the location of each block in the current heap and whether the block is collectible by the garbage collector. The allocator then invokes the garbage collector, which uses the current heap map in its mark cycle to make a mark list that indicates which of the heap blocks are pointed to by apparent pointers in the processer'"'"'s address space.
30 Citations
33 Claims
-
1. An allocator that manages a heap of memory blocks for a process, the process employing a conservative garbage collector that is independent of the allocator to detect unused memory blocks in the heap and the allocator having the improvement comprising:
a current heap map that is accessible to the garbage collector and that indicates the location of each block in the current heap and for each block, whether the block is collectible by the garbage collector. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. An allocator that manages a heap of memory blocks for a process, the process employing a conservative garbage collector that is independent of the allocator to detect unused memory blocks in the heap and the allocator having the improvement comprising:
a blacklist that is produced by the garbage collector and accessible to the allocator, the blacklist specifying collectible potential blocks that are pointed to by false pointers and the allocator using the black list to determine whether a collectible potential block should be allocated when the allocator expands the heap. - View Dependent Claims (11, 12, 13, 14)
-
15. A conservative garbage collector that detects unused memory blocks in a heap that is managed by an allocator for a process, the allocator being independent of the garbage collector and
the garbage collector having the improvement comprising: a current heap map that is made by the allocator and accessible to the garbage collector, the current heap map indicating for each block in the current heap the block'"'"'s location and whether the block is collectible by the garbage collector, the garbage collector using the current heap map to determine whether apparent pointers in the process'"'"'s address space point to collectible blocks in the current heap and marking a mark list accordingly. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
23. A data structure that an allocator and a conservative garbage collector that is independent of the allocator use to exchange information about a heap of memory blocks that the allocator manages for a process,
the data structure comprising: a current heap map that is made by the allocator, the current heap map including for each block in the current heap a location specifier for the block and a first status specifier that indicates whether the block is collectible by the garbage collector, the garbage collector using the current heap map to determine whether a block has an apparent pointer pointing thereto. - View Dependent Claims (24, 25)
-
26. A method employed in a conservative garbage collector to determine whether a block in a heap managed for a process by an allocator that is independent of the garbage collector is in use,
the method comprising the steps of: -
finding an apparent pointer in the process'"'"'s address space;
accessing a current heap map that is made by the allocator and indicates for each block in the current heap the block'"'"'s location and whether the block is collectible by the garbage collector to determine whether the apparent pointer points to a collectible block in the current heap; and
when the apparent pointer points to the collectible block, ensuring that a mark list is marked accordingly. - View Dependent Claims (27, 28, 29, 30)
-
-
31. A method employed in an allocator that manages a heap for a process of using a conservative garbage collector that is independent of the allocator to determine whether a block in the heap is in use,
the method comprising the steps of: -
making a current heap map that is accessible to the conservative garbage collector and indicates for each block in the current heap the block'"'"'s location and whether the block is collectible by the garbage collector; and
causing the conservative garbage collector to commence operation using the current heap map. - View Dependent Claims (32, 33)
-
Specification