Mark Stack Overflow List for Garbage Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory management systems, particularly those using explicit memory allocation and garbage collection, face inefficiencies and security vulnerabilities due to scattered memory allocation and de-allocation, and the resource-intensive process of handling mark stack overflows during garbage collection.

Innovation Solution

Implementing a method that includes a mark stack overflow list to handle overflow conditions by placing references to overflowed objects on an overflow list, allowing for efficient processing of these objects without linear examination of the entire heap, thereby reducing time and resource consumption during garbage collection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a mark stack is used to manage object references during garbage collection, then marking efficiency is improved, but the mark stack may overflow requiring resource-intensive linear heap examination

Engineering Contradiction:
Improvemarking efficiencyVSAvoidtime for overflow handling
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the overflow handling process into segments by creating separate overflow lists for different mark stack overflow scenarios. Instead of uniformly examining the entire heap linearly when overflow occurs, the system segments the heap examination based on overflow list entries, examining only relevant portions of the heap associated with specific overflowed objects.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-identifying and recording overflowed objects in overflow lists during the marking phase. When the mark stack overflows, the system has already prepared overflow list entries containing information about the overflowed objects, enabling targeted subsequent processing without requiring complete linear heap examination.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If linear heap examination is performed to handle mark stack overflow, then all overflowed objects are identified, but the process becomes time consuming and resource intensive

Engineering Contradiction:
Improveoverflow handling completenessVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts overflowed object information from the general heap structure into separate overflow lists. By taking out only the necessary overflow information (object references and metadata) into dedicated data structures, the system avoids the need to examine entire heap regions linearly, reducing resource consumption while maintaining reliable identification of all overflowed objects.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The overflow list serves as an intermediary data structure between the mark stack and the heap. It captures overflowed object information in a compact form, mediating between the need for complete overflow identification and the desire to minimize heap examination. This intermediary structure enables selective processing without exhaustive linear search.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If explicit memory management is used with malloc and free commands, then memory allocation control is improved, but memory becomes scattered and vulnerable to malicious attacks

Engineering Contradiction:
Improvememory allocation controlVSAvoidsecurity vulnerabilities
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent implements self-service memory management through automatic garbage collection that does not require explicit free commands. The system automatically identifies and reclaims memory from unused objects through marking and sweeping processes, eliminating the need for programmer intervention in memory deallocation and preventing security vulnerabilities associated with manual memory management.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements automatic discarding and recovering of memory through garbage collection. Instead of requiring explicit free commands that can lead to security issues, the system automatically discards memory from objects that are no longer reachable from root references and recovers this memory for future allocations, ensuring secure and systematic memory management.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS7831640B2Using an overflow list to process mark overflow
Publication Date: 2010.11.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7831640B2 patent drawing
  • US7831640B2 patent drawing
  • US7831640B2 patent drawing

AI summary

Mark stack overflow list. A method may be practiced in a computing environment including application code that implements garbage collection functionality. The garbage collection functionality includes pushing object references onto a mark stack, such that objects referenced on the mark stack can be marked so as to prevent memory for the objects from being recycled for use with other objects instances. The method includes acts for handling overflows of a mark stack. The method includes accessing a reference to an object. The object is processed by attempting to enumerate references to other objects from the object onto a mark stack. An overflow condition of the mark stack is detected for a referenced other object. A reference to the referenced other object is placed on an overflow list. References from the overflow list are processed.