US2016292071A1PendingUtilityA1

Conservative garbage collection and access protection

Assignee: IBMPriority: Jun 29, 2011Filed: Jun 17, 2016Published: Oct 6, 2016
Est. expiryJun 29, 2031(~4.9 yrs left)· nominal 20-yr term from priority
Inventors:Pradeep Varma
G06F 3/0608G06F 2212/702G06F 12/0253G06F 12/1416G06F 2212/1044G06F 3/0673G06F 3/0652
51
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method of memory management can include creating an initial root set of pointers for a program during execution of the program and performing a marking process by iteratively marking referred objects of each pointer of the root set and expanding the root set with filtered, encoded pointers. The method also can include identifying each non-live object for any marked object as red-marked and performing, using a processor, a re-marking process on the root set in which red-marked objects are excluded. Each object of the root set not marked can be designated as including a memory leak.

Claims

exact text as granted — not AI-modified
1 - 20 . (canceled) 
     
     
         21 . A computer-implemented method, comprising:
 creating, during execution of a program, an initial root set of pointers for the program;   iteratively marking referred objects of each pointer of the root set and expanding the root set;   identifying, with a particular marking, each non-live object for any marked object;   performing a re-marking on the root set in which objects with the particular marking are excluded; and   designating, as a memory leak, each object of the root set not marked during the re-marking.   
     
     
         22 . The method of  claim 21 , wherein
 the marking is performed until no changes are made to the root set.   
     
     
         23 . The method of  claim 21 , wherein
 the identifying identifies objects marked during the marking,   the identifying subtracts objects on an allocated objects list from the objects that are marked,   
     
     
         24 . The method of  claim 21 , wherein
 the root set is expanded with filtered, encoded pointers, and   each pointer generated by the program are live and inbound to a referent object.   
     
     
         25 . The method of  claim 21 , wherein
 the re-marking includes filtering pointer and object pairs according to
 a version number included within each pointer and 
 a version number included within each object. 
   
     
     
         26 . The method of  claim 25 , wherein
 version numbers determined to be out of use are recycled.   
     
     
         27 . The method of  claim 21 , further comprising:
 partitioning objects identified on a list of candidate objects into contiguous object sets, and each candidate object is not specified by a pointer;   replacing each set of contiguous objects sets with a starting position and an ending position; and   reclaiming each set of contiguous objects as a memory gap that is available as specified by the starting position and the ending position.   
     
     
         28 . A computer hardware system, comprising:
 a hardware processor configured to initiate the following operations:
 creating, during execution of a program, an initial root set of pointers for the program; 
 iteratively marking referred objects of each pointer of the root set and expanding the root set; 
 identifying, with a particular marking, each non-live object for any marked object; 
 performing a re-marking on the root set in which objects with the particular marking are excluded; and 
 designating, as a memory leak, each object of the root set not marked during the re-marking. 
   
     
     
         29 . The system of  claim 28 , wherein
 the marking is performed until no changes are made to the root set.   
     
     
         30 . The system of  claim 28 , wherein
 the identifying identifies objects marked during the marking,   the identifying subtracts objects on an allocated objects list from the objects that are marked,   
     
     
         31 . The system of  claim 28 , wherein
 the root set is expanded with filtered, encoded pointers, and   each pointer generated by the program are live and inbound to a referent object.   
     
     
         32 . The system of  claim 28 , wherein
 the re-marking includes filtering pointer and object pairs according to
 a version number included within each pointer and 
 a version number included within each object. 
   
     
     
         33 . The system of  claim 32 , wherein
 version numbers determined to be out of use are recycled.   
     
     
         34 . The system of  claim 28 , wherein the hardware processor is further configured to initiate the following operations:
 partitioning objects identified on a list of candidate objects into contiguous object sets, and each candidate object is not specified by a pointer;   replacing each set of contiguous objects sets with a starting position and an ending position; and   reclaiming each set of contiguous objects as a memory gap that is available as specified by the starting position and the ending position.   
     
     
         35 . A computer program product, comprising:
 a computer readable hardware storage device having computer readable program code stored therein,   the computer readable program code, which when executed by a computer hardware system, cause the computer hardware system to perform:
 creating, during execution of a program, an initial root set of pointers for the program; 
 iteratively marking referred objects of each pointer of the root set and expanding the root set; 
 identifying, with a particular marking, each non-live object for any marked object; 
 performing a re-marking on the root set in which objects with the particular marking are excluded; and 
 designating, as a memory leak, each object of the root set not marked during the re-marking. 
   
     
     
         36 . The computer program product of  claim 35 , wherein
 the marking is performed until no changes are made to the root set.   
     
     
         37 . The computer program product of  claim 35 , wherein
 the identifying identifies objects marked during the marking,   the identifying subtracts objects on an allocated objects list from the objects that are marked,   
     
     
         38 . The computer program product of  claim 35 , wherein
 the root set is expanded with filtered, encoded pointers, and   each pointer generated by the program are live and inbound to a referent object.   
     
     
         39 . The computer program product of  claim 35 , wherein
 the re-marking includes filtering pointer and object pairs according to
 a version number included within each pointer and 
 a version number included within each object. 
   
     
     
         40 . The computer program product of  claim 35 , wherein the computer readable program code further causes the computer hardware system to perform:
 partitioning objects identified on a list of candidate objects into contiguous object sets, and each candidate object is not specified by a pointer;   replacing each set of contiguous objects sets with a starting position and an ending position; and   reclaiming each set of contiguous objects as a memory gap that is available as specified by the starting position and the ending position.

Join the waitlist — get patent alerts

Track US2016292071A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.