← Back to Patent Explorer
US5675790A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for improving the performance of dynamic memory allocation by removing small memory fragments from the memory pool

Assignee: INSOFT Ltd
•
Filing: 1995-02-10
•
Granted: 1997-10-07
•
Expires: 2015-02-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for optimizing dynamic memory pool structures is presented. The size of unusable segments of dynamic memory is determined dynamically and those small segments are safely removed from the dynamic memory pool and placed on a separate list. Periodically or when dynamic memory is in heavy demand, the contents of the separate list are agglomerated and returned to dynamic memory for use. Consequently the time taken to search for a suitably-sized segment of dynamic memory is reduced considerably.

Inventors

  • 👤 Keith G. Walls

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 02:37
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5011; G06F9/5016; G06F12/00; G06F12/02; G06F12/0223; G06F12/023; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99956

Claims Analysis

Total Claims: 11
Claim 1
Independent Claim 212 words
A computer executable method to increase performance of allocation and de-allocation of memory in a dynamic memory pool, said computer executable method having at least one list of memory segments available for allocation, said computer executable method also maintaining a separate list consisting of unallocated memory segments that are not to be allocated, the computer executable method comprising the steps of: a) automatically determining by periodic observation a small segment size below which memory segments are not likely to be allocated; b) periodically removing small memory segments of said small segment size from the dynamic memory pool and placing them on said separate list; c) agglomerating the small memory segments listed in said separate list by periodically searching said separate list for physically adjacent memory segments add concatenating said physically adjacent segments to form larger memory segments; returning said larger memory segments to said list of memory segments available for allocation if the size of said larger memory segment is greater than said small segment size; and e) returning memory segments from said separate list by periodically finding small segments on said separate list that are physically adjacent to any unallocated segment in the dynamic memory pool and concatenating said small segments with the adjacent unallocated segment in the dynamic memory pool.
Claim 2
Dependent Claim 212 words
A computer executable method to increase performance of allocation and de-allocation of memory in a dynamic memory pool, said computer executable method having at least one list of memory segments available for allocation, said computer executable method also maintaining a separate list consisting of unallocated memory segments that are not to be allocated, the computer executable method comprising the steps of: a) automatically determining by periodic observation a small segment size below which memory segments are not likely to be allocated; b) periodically removing small memory segments of said small segment size from the dynamic memory pool and placing them on said separate list; c) agglomerating the small memory segments listed in said separate list by periodically searching said separate list for physically adjacent memory segments add concatenating said physically adjacent segments to form larger memory segments; returning said larger memory segments to said list of memory segments available for allocation if the size of said larger memory segment is greater than said small segment size; and e) returning memory segments from said separate list by periodically finding small segments on said separate list that are physically adjacent to any unallocated segment in the dynamic memory pool and concatenating said small segments with the adjacent unallocated segment in the dynamic memory pool.
Claim 3
Dependent Claim 20 words
The computer executable method according to claim 1 wherein the small segment size can be modified for optimal system performance.
Claim 4
Dependent Claim 37 words
The computer executable method according to claim 1 wherein the small segment size is determined by monitoring the dynamic memory pool for requested segment sizes and determining said small segment size based on said requested segment sizes.
Claim 5
Dependent Claim 26 words
The computer executable method according to claim 1 wherein said small segment size is determined by the amount of time that the unallocated segment remains active.
Claim 6
Dependent Claim 54 words
The computer executable method according to claim 1 wherein said memory segments from said separate list that are physically adjacent to any unallocated segment in the dynamic memory pool are concatenated with the memory segments from said separate list if the combined memory size is equal to or greater than the small segment size.
Claim 7
Dependent Claim 222 words
A computer executable method to increase performance of allocation and de-allocation of memory in a dynamic memory pool, said computer executable method having at least one list of memory segments available for allocation, said computer executable method also maintaining a separate list consisting of unallocated memory segments that are not to be allocated, the computer executable method comprising the steps of: a) determining a small segment size below which memory segments are not likely to be allocated by setting said small segment size to a look-aside list memory segment size; b) periodically removing small memory segments of said small segment size from the dynamic memory pool and placing them on said separate list; c) agglomerating the small memory segments listed in said separate list by periodically searching said separate list for physically adjacent memory segments and concatenating said physically adjacent segments to form larger memory segments; d) returning said larger memory segments to said list of memory segments available for allocation if the size of said larger memory segment is greater than said small segment size; and e) returning memory segments from said separate list by periodically finding small segments on said separate list that are physically adjacent to any unallocated segment in the dynamic memory pool, and concatenating said small segments with the adjacent unallocated segment in the dynamic memory pool.
Claim 8
Dependent Claim 222 words
A computer executable method to increase performance of allocation and de-allocation of memory in a dynamic memory pool, said computer executable method having at least one list of memory segments available for allocation, said computer executable method also maintaining a separate list consisting of unallocated memory segments that are not to be allocated, the computer executable method comprising the steps of: a) determining a small segment size below which memory segments are not likely to be allocated by setting said small segment size to a look-aside list memory segment size; b) periodically removing small memory segments of said small segment size from the dynamic memory pool and placing them on said separate list; c) agglomerating the small memory segments listed in said separate list by periodically searching said separate list for physically adjacent memory segments and concatenating said physically adjacent segments to form larger memory segments; d) returning said larger memory segments to said list of memory segments available for allocation if the size of said larger memory segment is greater than said small segment size; and e) returning memory segments from said separate list by periodically finding small segments on said separate list that are physically adjacent to any unallocated segment in the dynamic memory pool, and concatenating said small segments with the adjacent unallocated segment in the dynamic memory pool.
Claim 9
Dependent Claim 26 words
The computer executable method according to claim 6 wherein said look-aside list memory segment size is predetermined by a default setting specific to the operating system.
Claim 10
Dependent Claim 22 words
The computer executable method according to claim 6 wherein said look-aside list memory segment size can be modified for optimal system performance.
Claim 11
Dependent Claim 54 words
The computer executable method according to claim 6 wherein said memory segments from said separate list that are physically adjacent to any unallocated segment in the dynamic memory pool are concatenated with the memory segments from said separate list if the combined memory size is equal to or greater than the small segment size.

References Cited (Backward Citations)

US5088036A Cited
US5247634A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-10-06 2001-04-07 2001-10-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-10-06 2005-04-07 2005-10-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-10-06 2009-04-07 2009-10-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag