Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for preventing subpool thrashing comprising: determining an appropriate subpool expansion size needed to satisfy storage requests by processes able to utilize a subpool of memory; dynamically repeating the determining of the appropriate subpool expansion size as storage requirements change; selectively adding an expansion to the subpool to satisfy storage requests when additional storage is needed; queuing the added expansion on top of the subpool when a value of the subpool expansion size is a maximum size at a time that the added expansion is to be queued; queuing the added expansion on bottom of the subpool when the value of the subpool expansion size less than the maximum size at a time that the added expansion is to be queued; determining that processes utilizing the queued expansion of the subpool have completed processing so that the queued expansion is no longer immediately necessary for storage of values relating to currently executing processes; retaining only one expansion queued on top of the subpool and when the value of the subpool expansion size is the maximum size at a time the currently executing processes utilizing the queued expansion have completed processing; and releasing the queued expansion when the queued expansion is not on top of the subpool and when the queued expansion is on top of the subpool and when the value of the subpool expansion size is less than the maximum size at the time the currently executing processes utilizing the queued expansion have completed processing.
2. The method of claim 1 , further comprising: tuning the subpool to adjust the subpool expansion size when additional storage is needed and when the subpool expansion size is not at the maximum size.
3. The method of claim 1 , wherein selectively retaining expansions added on top of the subpool minimizes a frequency for which short term storage is allocated and released to prevent subpool thrashing.
4. The method of claim 3 , wherein the selective retention of expansions added on top of the subpool occurs based upon memory management code, whereby the selective retention of expansions on top of the subpool is able to satisfy short term storage requests while avoiding executions of costly system code.
5. The method of claim 4 , wherein the subpool is one of a plurality of subpools handled by the memory management code, wherein each of said plurality of subpools corresponds to at least one of an application, thread, and task, and wherein said subpool and said expansion each comprise a plurality of buffers, wherein each of the plurality of buffers is of an equivalent size to the other ones of the plurality of buffers.
6. A method for improving subpool performance comprising: queuing an expansion to a memory subpool on top of the subpool when a subpool expansion size is tuned to a maximum size; retaining the expansion queued on top of the subpool while the subpool expansion size is tuned to the maximum size; and wherein the retaining step retains only one expansion, the one on to the subpool, while other subpool expansions are released when storage is no longer immediately needed by the associated processes for which the expansion was established.
7. The method of claim 6 , further comprising: queuing the expansion to the memory subpool on bottom of the subpool when the subpool expansion size is tuned to less than the maximum size.
8. The method of claim 6 , further comprising: releasing the expansion from the subpool when storage for the expansion is not immediately needed by current processes, when the expansion is not on top of the subpool, and when the expansion is on top of the subpool but when the subpool expansion size is less than the maximum size.
9. The method of claim 8 , wherein the queuing, retaining, and releasing is performed by automatic programmatic routines of a memory manager that handles the subpool.
10. The method of claim 9 , wherein the subpool is one of a plurality of subpools handled by the memory manager, wherein each of said plurality of subpools corresponds to at least one of an application, thread, and task, and wherein said subpool and said expansion each comprise a plurality of buffers, wherein each of the plurality of buffers is of an equivalent size to the other ones of the plurality of buffers.
11. A computer program product improving subpool performance, the computer program product comprising: a non-transitory computer usable medium having computer usable program code embodied therewith, the computer usable program code comprising: computer usable program code configured to determine an appropriate subpool expansion size needed to satisfy storage requests by processes able to utilize a subpool of memory; computer usable program code configured to dynamically repeat the determining of the appropriate subpool expansion size as storage requirements change; computer usable program code configured to selectively add an expansion to the subpool to satisfy storage requests when additional storage is needed; computer usable program code configured to queue the added expansion on top of the subpool when a value of the subpool expansion size is a maximum size at a time that the added expansion is to be queued; computer usable program code configured to queue the added expansion on bottom of the subpool when the value of the subpool expansion size less than the maximum size at a time that the added expansion is to be queued; computer usable program code configured to determine that processes utilizing the queued expansion of the subpool have completed processing so that the queued expansion is no longer immediately necessary for storage of values relating to currently executing processes; computer usable program code configured to retain only one expansion queued on top of the subpool and when the value of the subpool expansion size is the maximum size at a time the currently executing processes utilizing the queued expansion have completed processing; and computer usable program code configured to release the queued expansion when the queued expansion is not on top of the subpool and when the queued expansion is on top of the subpool and when the value of the subpool expansion size is less than the maximum size at the time the currently executing processes utilizing the queued expansion have completed processing.
12. A computer program product of claim 11 , further comprising: computer usable program code configured to tune the subpool to adjust the subpool expansion size when additional storage is needed and when the subpool expansion size is not at the maximum size.
13. A computer program product of claim 11 , wherein the computer usable program code that selectively retains expansions placed on top of the subpool minimizes a frequency for which short term storage is allocated and released to prevent subpool thrashing.
14. A computer program product of claim 13 , wherein the selective retention of expansions placed on top of the subpool occurs based upon memory management code, whereby the selective retention of expansions on top of the subpool is able to satisfy short term storage requests while avoiding executions of costly system code.
15. A computer program product of claim 14 , wherein the subpool is one of a plurality of subpools handled by the memory management code, wherein each of said plurality of subpools corresponds to at least one of an application, thread, and task, and wherein said subpool and said expansion each comprise a plurality of buffers, wherein each of the plurality of buffers is of an equivalent size to the other ones of the plurality of buffers.
Unknown
October 25, 2011
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.