Dynamic Memory Limit Allocation for Multi-Process Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory management systems face performance issues due to unnecessary input/output transactions when memory pages are moved to secondary storage, leading to slowed system performance in systems executing multiple processes.

Innovation Solution

A memory allocator assigns temporary memory limits to processes, dynamically adjusts these limits, and signals processes to free cached data when necessary to maintain a global memory limit, using a vector in shared memory to store memory limits and consumption data, allowing for efficient memory reallocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If operating system supported paging is used to manage memory, then memory can be dynamically allocated to processes, but unnecessary I/O transactions occur when memory pages are moved to secondary storage, significantly slowing system performance

Engineering Contradiction:
Improvesystem performanceVSAvoidI/O transaction time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the memory management problem into process-specific segments by assigning dedicated memory limits to each process. This segmentation allows the system to track and manage memory usage at a finer granularity, preventing unnecessary paging operations and reducing I/O transactions while maintaining dynamic memory allocation capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic memory limit adjustment for each process based on current system conditions and process needs. By dynamically modifying memory limits without requiring full paging operations, the system adapts to changing memory demands while avoiding the performance penalty of moving pages to and from secondary storage.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If memory limits are strictly enforced for each process, then memory allocation can be controlled, but flexibility to accommodate varying process memory needs is reduced

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent employs dynamic memory limits that can be adjusted during process execution based on actual memory needs and system conditions. This dynamic approach provides flexibility to accommodate varying process requirements while maintaining controlled memory allocation through programmable limit settings, avoiding the need for complex static allocation schemes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent incorporates feedback mechanisms that monitor process memory usage and system conditions, then adjust memory limits accordingly. This feedback-driven approach enables the system to adapt to changing conditions automatically, providing flexibility without requiring complex manual intervention or overly complicated management structures.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10896062B2Inter-process memory management
Publication Date: 2021.01.19 SAP SE
  • US10896062B2 patent drawing
  • US10896062B2 patent drawing

AI summary

A memory allocator assigns temporary memory limits to each of a plurality of processes requiring memory. Thereafter, at least one assigned temporary memory limit is changed during execution of a corresponding process. Related apparatus, systems, techniques and articles are also described.