Polymorphic Allocator Table for Memory Overhead Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing polymorphic allocators are memory-consuming and design-utility limiting due to overhead costs, particularly when dealing with large numbers of 32-byte data entries, as they require storing allocator references with each instance, leading to inefficient memory usage and fragmentation issues.
Innovation Solution
A polymorphic allocator system that allocates memory in a type-nondiscriminatory manner, using a customized allocator to efficiently manage 32-byte data entries by storing instances without allocator references and employing a table-based approach to identify allocators, allowing for bulk memory allocation and self-destruction of data buffer instances, thereby minimizing overhead and optimizing memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If polymorphic allocators store allocator references with each instance, then they can identify the responsible allocator for deallocation, but memory overhead increases significantly
Solution Approach 1:
The patent introduces an intermediary mechanism (allocator table with page index mapping) that decouples the direct relationship between instances and allocators. Instead of storing full allocator references in each instance, the system uses compact page indexes as intermediaries to look up allocator information, reducing memory overhead while maintaining reliable allocator identification.
Solution Approach 2:
The patent transitions from storing allocator references directly in instances to using a two-dimensional indexing structure: page addresses are mapped to page indexes, which then map to allocator identifiers. This dimensional transformation allows efficient allocator identification without the memory cost of direct instance-allocator references.
2Productivity
If polymorphic allocators use customized allocators for specific data types, then allocation efficiency improves, but device complexity increases
Solution Approach 1:
The patent creates a universal allocator management system that handles multiple allocator types through a common interface and unified data structures. The allocator table and page index mechanism work consistently across different allocator implementations, allowing customized allocators to maintain high allocation efficiency while the overall system complexity is managed through standardized procedures.
Solution Approach 2:
The patent segments the allocator management into distinct components: page allocation, page indexing, and allocator identification. This segmentation allows customized allocators to operate efficiently at their level while the overall system complexity is distributed and managed through modular, independent components rather than a monolithic complex system.
3Adaptability or versatility
If polymorphic allocators manage large numbers of small data entries, then they can handle diverse data types, but memory fragmentation increases
Solution Approach 1:
The patent segments memory management into page-level units, where each page is independently tracked and managed. This segmentation allows the system to handle diverse data types across multiple pages while maintaining stable memory composition at the page level, reducing fragmentation by enabling precise control over memory allocation and deallocation boundaries.
Data Source
AI summary
Systems and methods for implementing polymorphic allocators in an operating system are disclosed. An illustrative method includes a method of allocating memory space in a memory by creating a first allocator. In response to receiving a first request to allocate memory space in the memory for a data buffer instance using the first allocator, the method allocates one or more pages of a first region in the memory by populating one or more entries of an allocator table. The one or more entries of the allocator table correspond to the one or more pages of the first region. The entries of the allocator table are indexed by page indexes corresponding to page addresses identifying the pages of the first region in the memory. Each of the populated entries of the allocator table includes a specific allocator identifier identifying a corresponding allocator to that entry.


