Patent ID: 8856186

Claim:
A method of managing a memory using at least one processor configured to access a non-native memory and a native memory, the method comprising: allocating a plurality of non-native objects in the non-native memory by one or more processes in a non-native processing environment, wherein each of the non-native objects correspond to respective native objects of a plurality of native objects allocated in the native memory by one or more processes in the native processing environment, wherein the non-native memory is a portion of the memory accessible from the non-native processing environment, and wherein the native memory is another portion of the memory accessible from the native processing environment and not accessible from the non-native processing environment; generating non-native object groups within the plurality of non-native objects based upon connectivity relationships between native objects in the plurality of native objects; providing, in respective non-native objects of the generated non-native object groups, one or more references to other non-native objects of the generated non-native object groups, wherein the references provide, to corresponding non-native objects, a traversal of the connectivity relationships between the native objects, and wherein the providing further comprises: allocating, in the non-native objects, a tracking field; linking non-native objects in the non-native object groups based on the provided references to generate non-native connected object groups, wherein the linking comprises: forming, for each of the non-native objects in the non-native object group, a circular linked list inter-connecting each non-native object, by providing one or more values into the tracking field of each non-native object; detecting at least one unused non-native connected object group; and de-allocating objects of the detected at least one unused non-native connected object group.