Concurrent Garbage Collection via Reference Indicator Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Garbage collection processes in computer devices, such as mobile communication devices, are processor-intensive and require temporary suspension of application programs, leading to interference with critical user communications during the execution of these processes.

Innovation Solution

Concurrent execution of a garbage collection program and an application program is enabled by using a garbage collection program that identifies a root set of referenced objects and performs a mark and sweep process, with new or modified instructions like GETREF, AALOAD, and NEW that interact with reference indicator arrays to avoid wrongful destruction of objects, allowing the application program to run without unreasonable suspension.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a conventional garbage collection process is used, then memory management is automated and application bugs are prevented, but the application program must be temporarily suspended and user communications are interfered with

Engineering Contradiction:
Improvememory management reliabilityVSAvoidapplication program execution continuity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The heap is divided into multiple blocks, and a separate reference indicator array is created for each block. This segmentation allows the garbage collector to process individual blocks independently, enabling concurrent execution with the application program while maintaining memory management reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Reference indicator arrays are introduced as intermediary data structures between the application program and the garbage collection process. These arrays track object references without requiring application suspension, acting as a mediator that enables concurrent operation while preventing memory management errors.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If a garbage collection process is executed, then unreferenced objects are freed and heap space is released, but the process is processor-intensive and takes relatively long time to complete

Engineering Contradiction:
Improveavailable heap spaceVSAvoidgarbage collection execution time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The garbage collection process is segmented into independent block-level operations. By processing one block at a time rather than the entire heap, the execution time is reduced and processor intensity is distributed, allowing concurrent execution without compromising the ability to free unreferenced objects.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The garbage collector performs partial action by processing only one block at a time while the application continues to run. This partial execution approach reduces the perceived execution time and processor intensity while still achieving the ultimate goal of freeing unreferenced objects when resources become available.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If concurrent execution of garbage collection and application program is enabled, then user communications are not interrupted, but complex instructions like GETREF must be implemented to avoid wrongful destruction of objects

Engineering Contradiction:
Improveapplication program execution continuityVSAvoidinstruction set complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The GETREF instruction uses the reference indicator array as an intermediary to safely determine object liveness. This intermediary structure simplifies the concurrent execution logic by providing a centralized tracking mechanism, reducing the overall system complexity despite adding the new instruction.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The GETREF instruction enables the application program to self-service by automatically updating reference indicators when accessing objects. This self-updating mechanism reduces the need for complex external synchronization logic, managing instruction complexity while enabling concurrent execution.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP1916604B1Methods and apparatus for concurrently executing a garbage collection process during execution of a primary application program
Publication Date: 2010.04.21 BLACKBERRY LTD
  • EP1916604B1 patent drawingFigure 1
  • EP1916604B1 patent drawingFigure 2
  • EP1916604B1 patent drawingFigure 3~4

AI summary

According to the present disclosure, one or more processors of a computer device (e.g. a mobile communication device) are operative to execute a garbage collection program and an application program concurrently with execution of the garbage collection program. The garbage collection program is operative to identify a root set of referenced objects of an application program, where a reference indicator in a reference indicator array is set as referenced for each one of such referenced objects, and to perform a mark and sweep process based on the root set of referenced objects. The application program has computer instructions which includes a predefined computer instruction (e.g. a GETREF instruction) adapted to retrieve a reference from a target object and to set a reference indicator in the reference indicator array as referenced for the target object when executed. Advantageously, execution of the application program need not be unreasonably suspended during garbage collection processes. In one illustrative example, the application program is adapted to receive and/or provide information via a user interface of the computer device, and the concurrent processing allows for the receiving and/or providing of the information via the user interface without interference (e.g. suspension or delay) during the mark and sweep process.