Free Chain Management Using Usable and Unusable Parts
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for managing free chains of compute resources, such as memory, face a trade-off between improving system performance through localized references and ensuring robustness by preventing the continued use and modification of recently-freed memory, as MRU and LRU approaches are incompatible.
Innovation Solution
A system that divides the free chain into a usable part (UP) for immediate allocation and an unusable part (UUP) with a time-based queue, sorting resources by memory block number and maintaining a last used object vector to promote resources, thereby delaying the reallocation of recently freed memory and maintaining locality of reference.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If an MRU (Most Recently Used) approach is used to manage free chains, then system performance is improved through localized references, but system robustness deteriorates due to increased risk of programming bugs and continued use of recently-freed memory
Solution Approach 1:
The free chain is divided into two separate parts: a usable part (UP) for immediate allocation and an unusable part (UUP) for recently freed memory. This segmentation allows the system to maintain performance benefits from localized references while isolating recently freed memory to prevent programming bugs, thus resolving the contradiction between productivity and reliability.
2Reliability
If an LRU (Least Recently Used) approach is used to manage free chains, then system robustness is improved by reducing programming bugs, but system performance deteriorates due to loss of localized references
Solution Approach 1:
Different parts of the free chain management system are given different qualities: the UP maintains locality of reference for performance while the UUP provides protection from programming bugs. By assigning different functions to different segments, the system achieves both robustness and performance without the trade-off inherent in uniform LRU or MRU approaches.
3Quantity of substance
If recently freed memory is immediately reallocated, then memory utilization is maximized, but the risk of programming bugs and system crashes increases
Solution Approach 1:
Before memory is made available for immediate allocation, it undergoes a preliminary period in the UUP where it cannot be allocated. This preliminary action of delaying allocation for recently freed memory allows the system to maintain high memory utilization overall while preventing the specific risk of programming bugs that occur when memory is immediately reallocated.
Data Source
AI summary
Disclosed herein are systems, methods, and non-transitory computer-readable storage media for managing free chains of compute resources. A system configured to practice the method divides a free chain of compute resources into a usable part (UP) which contains resources available for immediate allocation and an unusable part (UUP) which contains resources not available for immediate allocation but which become available after a certain minimum number of allocations. The system sorts resources in the UP by block number, and maintains a last used object (LUO) vector, indexed by block number, which records a last object in the UP for each block. Each time the system frees a resource, the system adds the freed resource to a tail of the UUP and promotes an oldest resource in the UUP to the UP. This approach can manage free chains in a manner that is both flaw tolerant and has relatively high performance.


