US7770177B2ExpiredUtilityA1

System for memory reclamation based on thread entry and release request times

Assignee: SONY CORPPriority: Sep 29, 2004Filed: Sep 2, 2005Granted: Aug 3, 2010
Est. expirySep 29, 2024(expired)· nominal 20-yr term from priority
Inventors:Atsushi Togawa
G06F 9/52G06F 9/5016G06F 12/02G06F 9/46G06F 9/50
66
PatentIndex Score
4
Cited by
33
References
17
Claims

Abstract

An information processing apparatus includes a thread management unit managing thread information on a per data processing unit basis, and a memory area management unit managing a memory area. The thread management unit stores a thread list containing entry time information that is recorded on a per thread basis as function call time of an operating system from a data processing program. The memory area management unit stores a release queue containing release request time that is recorded on an area unit basis concerning an unreleased memory area in response to a release request, compares the release request time set in each queue component contained in the release queue with the oldest entry time of each queue component in the thread list during a memory area allocation process, and allocates the memory area to the queue component having the release request time set prior to the oldest entry time.

Claims

exact text as granted — not AI-modified
1. An information processing apparatus comprising:
 a thread management unit storing thread management information including a thread list comprising first variables corresponding to a plurality of threads, the plurality of threads including a first thread that is generated at a first entry time when a first function is called to be executed by using the first thread, and a second thread that is generated at a second entry time when a second function is called to be executed by using the second thread, 
 wherein the first thread is generated at a time before the generation of the second thread, and 
 wherein the first variables include the first entry time and the second entry time, the first entry time being included in the first variables when the first thread is generated, and the second entry time being included in the first variables when the second thread is generated; and 
 a memory area management unit storing memory management information used to manage a memory area divided into heap units including a first heap unit requested for execution of the first function, the memory management information including a release queue containing a release request time indicating a time at which the first heap unit is scheduled to be released after execution of the first function, 
 wherein the second thread requests allocation of memory to execute the second function, 
 wherein the release request time is compared with an oldest entry time to determine availability of the first heap unit for execution of the second function, the oldest entry time corresponding to the first entry time and indicating an oldest time from entry times included in the first variables, and 
 wherein the first heap unit is released from execution of the first function and allocated to the second thread when a result of the comparison indicates that the release request time is a time prior to a time indicated by the oldest entry time. 
 
     
     
       2. The information processing apparatus according to  claim 1 , wherein the oldest entry time is included in a header of a second variable. 
     
     
       3. The information processing apparatus according to  claim 2 , wherein the memory area management unit references the oldest entry time included in the header and performs the comparison by referencing to the header. 
     
     
       4. The information processing apparatus according to  claim 1 , wherein the first variables include thread identifiers identifying the plurality of threads. 
     
     
       5. The information processing apparatus according to  claim 1 , wherein the memory management information includes a list including heap identifiers identifying the heap units. 
     
     
       6. The information processing apparatus according to  claim 1 , wherein the memory area is divided into heap units to assign heap units to corresponding processors allocated to the plurality of threads. 
     
     
       7. The information processing apparatus according to  claim 1 , wherein the memory management information includes a chain of queue components corresponding to the heap units, one of the queue components being linked to a second queue component in the chain by a weak pointer included in the one queue component. 
     
     
       8. The information processing apparatus according to  claim 7 , wherein the chain of queue components is broken based on a retirement flag included in the one queue component. 
     
     
       9. A method for managing a memory area, the method being executed by an information processing apparatus and comprising:
 storing, in a thread management unit of the information processing apparatus, thread management information; 
 including, in the thread management information, a thread list comprising first variables corresponding to a plurality of threads, the plurality of threads including a first thread that is generated at a first entry time when a first function is called to be executed by using the first thread, and a second thread that is generated at a second entry time when a second function is called to be executed by using the second thread, 
 wherein the first thread is generated at a time before the generation of the second thread, and 
 wherein the first variables include the first entry time and the second entry time, the first entry time being included in the first variables when the first thread is generated, and the second entry time being included in the first variables when the second thread is generated; and 
 storing, in a memory area management unit of the information processing apparatus, memory management information used to manage a memory area divided into heap units including a first heap unit requested for execution of the first function, the memory management information including a release queue containing a release request time indicating a time at which the first heap unit is scheduled to be released after execution of the first function, 
 requesting allocation of memory to execute the second function; 
 comparing the release request time with an oldest entry time to determine availability of the first heap unit for execution of the second function, the oldest entry time corresponding to the first entry time and indicating an oldest time from entry times included in the first variables; 
 releasing the first heap unit from execution of the first function; and 
 allocating the first heap unit to the second thread when a result of the comparison indicates that the release request time is a time prior to a time indicated by the oldest entry time. 
 
     
     
       10. The method according to  claim 9 , wherein the oldest entry time is included in a header of a second variable. 
     
     
       11. The method according to  claim 10 , further comprising:
 referencing the oldest entry time included in the header; and 
 performing the comparison by referencing to the header. 
 
     
     
       12. The method according to  claim 9 , wherein the first variables include thread identifiers identifying the plurality of threads. 
     
     
       13. The method according to  claim 9 , further comprising:
 storing, in the memory management information a list including heap identifiers identifying the heap units. 
 
     
     
       14. The method according to  claim 9 , further comprising:
 assigning the heap units to assign corresponding processors allocated to the plurality of threads. 
 
     
     
       15. The method according to  claim 9 , further comprising:
 including, in the memory management information, a chain of queue components corresponding to the heap units, one of the queue components being linked to a second queue component in the chain by a weak pointer included in the one queue component. 
 
     
     
       16. The method according to  claim 15 , further comprising:
 breaking the chain of queue components based on a retirement flag included in the one queue component. 
 
     
     
       17. A recording medium storing a computer program that, when executed on a processor, causes the processor to perform a method for managing a memory area, the method comprising:
 storing thread management information including a thread list comprising first variables corresponding to a plurality of threads, the plurality of threads including a first thread that is generated at a first entry time when a first function is called to be executed by using the first thread, and a second thread that is generated at a second entry time when a second function is called to be executed by using the second thread, 
 wherein the first thread is generated at a time before the generation of the second thread, and 
 wherein the first variables include the first entry time and the second entry time, the first entry time being included in the first variables when the first thread is generated, and the second entry time being included in the first variables when the second thread is generated; and 
 storing memory management information used to manage a memory area divided into heap units including a first heap unit requested for execution of the first function, the memory management information including a release queue containing a release request time indicating a time at which the first heap unit is scheduled to be released after execution of the first function, 
 requesting allocation of memory to execute the second function; 
 comparing the release request time with an oldest entry time to determine availability of the first heap unit for execution of the second function, the oldest entry time corresponding to the first entry time and indicating an oldest time from entry times included in the first variables; 
 releasing the first heap unit from execution of the first function; and 
 allocating the first heap unit to the second thread when a result of the comparison indicates that the release request time is a time prior to a time indicated by the oldest entry time.

Join the waitlist — get patent alerts

Track US7770177B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.