Java Memory Management with Segmented Garbage Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In Java-based systems, memory management using garbage collection can lead to unpredictable program halts due to unexpected garbage collection activations, causing system unresponsiveness, and the use of scoped memory areas introduces constraints and overheads that complicate data reference management and program execution.

Innovation Solution

A memory management method that allocates a memory area by a program, checks for necessary data, and releases the area if no data is required for subsequent execution, moving necessary data to a garbage-collected memory area to avoid constraints and ensure smooth program execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If garbage collection is used to automatically manage memory, then memory management convenience is improved, but program execution predictability deteriorates due to unexpected halts

Engineering Contradiction:
Improvememory management convenienceVSAvoidprogram execution predictability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent divides memory into two distinct segments: a managed memory area subject to garbage collection and an unmanaged memory area that is explicitly allocated and released. This segmentation allows the program to control critical memory operations while maintaining automatic management for non-critical data, thus preserving execution predictability while retaining memory management convenience.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different memory areas are assigned different management qualities: the managed memory area uses automatic garbage collection for convenience, while the unmanaged memory area uses explicit control for predictability. This local differentiation of memory management strategies allows each area to be optimized for its specific requirements without compromising the entire system.

Inventive Principle:
Principle #3Local quality

2Reliability

If scoped memory areas are used to avoid garbage collection halts, then system responsiveness is improved, but data reference management complexity increases

Engineering Contradiction:
Improvesystem responsivenessVSAvoiddata reference management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the memory management complexity from the critical execution path by separating managed and unmanaged memory areas. Data structures requiring explicit reference management are extracted into the unmanaged area, while garbage-collected data remains in the managed area, simplifying the overall reference management model.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary mechanism (the memory management unit) that handles transitions between managed and unmanaged memory areas. This intermediary automatically manages data movement and reference updates, reducing the complexity burden on the programmer while maintaining system responsiveness.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8589653B2Memory management method and computer using the method
Publication Date: 2013.11.19 HITACHI LTD
  • US8589653B2 patent drawing
  • US8589653B2 patent drawing
  • US8589653B2 patent drawing

AI summary

Memory management by garbage collection involves a memory area that is allocated in a computer. Data is created in the memory area in accordance with a program executed by a processor of the computer, and it is checked whether or not data necessary to execute the program exists in the memory area to be released, in response to an explicit instruction to release the memory area. As a result of the check, if data necessary to execute the program does not exist in the memory area, the memory area is released. As a result of the check, if data necessary to execute the program exists in the memory area, the data is moved to a memory area different from the memory area to be released.