IP Library Granted Patent US 6,925,637
Granted Patent B2
US 6,925,637 · App. 09/858,826 · Granted Aug 2, 2005

Low-contention grey object sets for concurrent, marking garbage collection

Assignee: Esmertec AG
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,925,637
App. No.
09/858,826
Granted
Aug 2, 2005
Kind
B2
Abstract

A method and system of carrying out garbage collection in a computer system. Specifically, the method and system utilize low contention grey object sets for concurrent marking garbage collection. A garbage collector traces memory objects and identifies memory objects according to a three-color abstraction, identifying a memory object with a certain color if that memory object itself has been encountered by the garbage collector, but some of the objects to which the memory object refers have not yet been encountered. A packet manager organizes memory objects identified with the certain color into packets, provides services to obtain empty or partially full packets, and obtain full or partially full packets, and verifies whether a packet of the certain color is being accessed by one of the threads of the garbage collector.

Claims (24)

1. A method of carrying out garbage collection in a computer system having a plurality of memory objects in at least one memory group, the method comprising:

tracing a state of each memory object in the at least one memory group;

allocating an identifier to each memory object according to a three-color abstraction including;

coloring a memory object a first color if that memory object has not been encountered during the tracing process;

coloring a memory object a second color if that memory object and all objects to which that memory object refer have been encountered during the tracing process;

coloring a memory object a third color if that memory object is a partially traced memory object that itself has been encountered, but some of the objects to which the partially traced memory object refers have not yet been encountered;

allocating the memory objects colored the first color into a first set of unencountered memory objects represented as a first color data structure;

allocating the memory objects colored the second color into a second set of encountered memory objects represented as a second color data structure differing from the first color data structure;

allocating the partially traced memory objects colored the third color into at least one set of partially traced memory objects represented as a third color data structure differing from the first color data structure and the second color data structure;

dividing the at least one set of partially traced memory objects into a plurality of discrete packet data structures for containing the partially traced memory objects in the packet data structures separate from the objects in the first color data structure and the second color data structure;

creating new packet data structures to store additional partially traced objects on a demand basis;

merging partially full packet data structures to optimize memory allocation; and

destroying unneeded packet data structures to free up memory on a demand basis.

2. A method as claimed in claim 1 , wherein the computer system includes multiple threads, the method further comprising assigning one packet data structure to each thread such that each thread can access its one packet data structure independently of the other threads and packet data structures.

3. A method as claimed in claim 2 , further comprising transferring packet data structures between the threads and a packet manager.

4. A method as claimed in claim 2 , wherein the computer system includes a garbage collector, the method further comprising transferring packet data structures between the garbage collector and a packet manager.

5. A method as claimed in claim 1 , further comprising marking packet data structures accessed by a thread as checked out.

6. A method as claimed in claim 5 , further comprising marking packet data structures not accessed by a thread as checked in.

7. A method as claimed in claim 1 , further comprising destroying at least some of the packet data structures.

8. A method as claimed in claim 7 , wherein destroying at least some of the packet data structures includes merging the contents of partially full packet data structures.

9. A method as claimed in claim 1 , wherein the color is grey.

10. A method as claimed in claim 1 , wherein each packet data structure includes a plurality of slots.

11. A method as claimed in claim 10 , wherein each packet data structure includes one slot per reference to a memory object.

12. A method as claimed in claim 1 , wherein each packet data structure has a fixed size.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2017
From: MYRIAD GROUP, AG
To: RPX CORPORATION
Reel/Frame 044087/0323 →
PATENTEE CHANGE OF ADDRESS Recorded Feb 5, 2016
From: MYRIAD GROUP, AG
To: MYRIAD GROUP, AG
Reel/Frame 037701/0866 →
CHANGE OF NAME Recorded Jul 9, 2009
From: ESMERTEC AG
To: MYRIAD GROUP AG
Reel/Frame 022928/0730 →
CHANGE OF NAME Recorded Jul 7, 2009
From: ESMERTEC AG
To: MYRIAD GROUP AG
Reel/Frame 022917/0525 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2004
From: INSIGNIA SOLUTIONS, INC.
To: ESMERTEC AG
Reel/Frame 014852/0297 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2003
From: INSIGNIA SOLUTIONS, PLC
To: ESMERTEC AG
Reel/Frame 014250/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2001
From: THOMAS, STEPHEN PAUL; CHARNELL, WILLIAM THOMAS; DARNELL, STEPHEN; DIAS, BLAISE ABEL ALEC; GUTHRIE, PHILIPPA JOY; KRAMSKOY, JEREMY PAUL; SEXTON, JEREMY JAMES; WYNN, MICHAEL JOHN; RAUTENBACH, KEITH; PLUMMER, WAYNE
To: INSIGNIA SOLUTIONS, PLC
Reel/Frame 012093/0769 →
Priority Claims (1)
GB 9825102 · Nov 16, 1998 · national
Continuity (2)
Continuation PCTGB990078800 · Mar 16, 1999
Related Publication 20020042807A1 · Apr 11, 2002