Managing garbage collection in a data processing system
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-012/02
G06F-009/48
출원번호
US-0235302
(2008-09-22)
등록번호
US-9418005
(2016-08-16)
발명자
/ 주소
Jones, Scott Thomas
Levine, Frank Eliot
출원인 / 주소
International Business Machines Corporation
대리인 / 주소
Yee & Associates, P.C.
인용정보
피인용 횟수 :
0인용 특허 :
106
초록
A computer implemented method, apparatus, and computer program product for managing garbage collection. Monitoring is performed for a garbage collection state in a virtual machine. Responsive to detecting the garbage collection state, a priority for a set of garbage collection threads is increased.
대표청구항▼
1. A computer implemented method for managing garbage collection, the computer implemented method comprising: granting a lock to a thread requesting the lock;responsive to granting the lock, identifying whether the thread is one of a set of garbage collection threads;responsive to identifying the th
1. A computer implemented method for managing garbage collection, the computer implemented method comprising: granting a lock to a thread requesting the lock;responsive to granting the lock, identifying whether the thread is one of a set of garbage collection threads;responsive to identifying the thread is one of the set of garbage collection threads, initiating a garbage collection state;responsive to detecting the garbage collection state, determining whether to change a priority of the thread identified using a policy comprising predetermined criteria including what threads are currently executing, what memory ranges are being accessed, and what processes are executing;responsive to meeting the predetermined criteria, increasing a priority of each garbage collection thread identified in the set of garbage collection threads, wherein increasing the priority of each garbage collection thread in the set of garbage collection threads further comprises: paging in other ones of the set of garbage collection threads, including expected data area accesses for the other ones of the set of garbage collection threads; andpaging in expected data area accesses for the thread identified;responsive to detecting the garbage collection state, decreasing a priority of each thread in a set of non-garbage collection threads. 2. The computer implemented method of claim 1 further comprising: responsive to detecting the garbage collection state, paging out the set of non-garbage collection threads. 3. The computer implemented method of claim 1 further comprising: responsive to detecting the garbage collection state, paging out data areas associated with the set of non-garbage collection threads. 4. The computer implemented method of claim 1 further comprising: responsive to detecting the garbage collection state, paging in data areas previously or expected to be used by the set of garbage collection threads. 5. The computer implemented method of claim 1 further comprising: responsive to detecting the garbage collection state, assigning a processor to perform the garbage collection in a number of processors in a multi-processor data processing system. 6. The computer implemented method of claim 1 further comprising: responsive to ending the garbage collection state, increasing a priority of a number of threads not required for the garbage collection. 7. The computer implemented method of claim 1, wherein responsive to detecting the garbage collection state further comprises monitoring for the garbage collection state, and wherein the monitoring further comprises: waiting to receive a notification of the garbage collection state from one of a profiler and a virtual machine. 8. The computer implemented method of claim 7, wherein the monitoring further comprises: monitoring a set of locks associated with a heap for the garbage collection thread obtaining the lock from the set of locks. 9. The computer implemented method of claim 8, wherein the garbage collection thread is registered to allow for an identification of the garbage collection thread when the garbage collection thread obtains the lock. 10. The computer implemented method of claim 1, wherein the garbage collection state is detected on a periodic basis. 11. The computer implemented method of claim 1, wherein the computer implemented method is implemented in at least one of a device driver, a virtual machine, an operating system, and an application performing the garbage collection. 12. A computer comprising: a bus;a storage device connected to the bus, wherein program code is stored on the storage device; anda processor unit is connected to the bus, wherein the processor unit executes the program code:to grant a lock to a thread requesting the lock;responsive to granting the lock, to identify whether the thread is one of a set of garbage collection threads;responsive to identifying that the thread is one of the set of garbage collection threads, to initiate a garbage collection state;responsive to detecting the garbage collection state, to determine whether to change a priority of the thread identified using a policy comprising predetermined criteria including what threads are currently executing, what memory ranges are being accessed, and what processes are executing;responsive to meeting the predetermined criteria, to increase a priority of each garbage collection thread identified in the set of garbage collection threads, wherein increasing the priority of each garbage collection thread in the set of garbage collection threads further comprises:paging in other ones of the set of garbage collection threads, including expected data area accesses for the other ones of the set of garbage collection threads; and paging in expected data area accesses for the thread identified; andresponsive to detecting the garbage collection state, to decrease a priority of each thread in a set of non-garbage collection threads. 13. The computer of claim 12, wherein the processor unit further executes the program code to page out the set of non-garbage collection threads in response to detecting the garbage collection state. 14. The computer of claim 12, wherein the processor unit further executes the program code to page out data areas associated with the set of non-garbage collection threads in response to detecting the garbage collection state. 15. The computer of claim 12, wherein the processor unit further executes the program code to page in data areas previously or expected to be used by the set of garbage collection threads in response to detecting the garbage collection state. 16. The computer of claim 12, wherein the processor unit further executes the program code to assign a processor to perform the garbage collection in a number of processors in a multi-processor data processing system in response to detecting the garbage collection state. 17. The computer of claim 12, wherein the processor unit further executes the program code to increase a priority of a number of threads not required for the garbage collection in response to ending the garbage collection state. 18. A computer program product for managing garbage collection, the computer program product comprising: a non-transitory computer recordable storage medium;program code, stored on the non-transitory computer recordable storage medium, for granting a lock to a thread requesting the lock;program code, stored on the non-transitory computer recordable storage medium, responsive to granting the lock, for identifying whether the thread is one of a set of garbage collection threads;program code, stored on the non-transitory computer recordable storage medium, responsive to identifying the thread is one of the set of garbage collection threads, for initiating a garbage collection state;program code, stored on the non-transitory computer recordable storage medium, responsive to detecting the garbage collection state, for determining whether to change a priority of the thread identified using a policy comprising predetermined criteria including what threads are currently executing, what memory ranges are being accessed, and what processes are executing;program code, stored on the non-transitory computer recordable storage medium, responsive to meeting the predetermined criteria for increasing a priority of each garbage collection thread identified in the set of garbage collection threads, wherein increasing the priority of each garbage collection thread in the set of garbage collection threads further comprises:program code, stored on the non-transitory computer recordable storage medium, for paging in other ones of the set of garbage collection threads, including expected data area accesses for the other ones of the set of garbage collection threads; andprogram code, stored on the non-transitory computer recordable storage medium, for paging in expected data area accesses for the thread identified; andprogram code, stored on the non-transitory computer recordable storage medium, responsive to detecting the garbage collection state, decreasing a priority of each thread in a set of non-garbage collection threads. 19. The computer program product of claim 18 further comprising: program code, stored on the non-transitory computer recordable storage medium, responsive to detecting the garbage collection state, for paging out the set of non-garbage collection threads. 20. The computer program product of claim 18 further comprising: program code, stored on the non-transitory computer recordable storage medium, responsive to detecting the garbage collection state, for paging out data areas associated with the set of non-garbage collection threads. 21. The computer program product of claim 18 further comprising: program code, stored on the non-transitory computer recordable storage medium, responsive to detecting the garbage collection state, for paging in data areas previously or expected to be used by the set of garbage collection threads. 22. The computer program product of claim 18 further comprising: program code, stored on the non-transitory computer recordable storage medium, responsive to detecting the garbage collection state, for assigning a processor to perform the garbage collection in a number of processors in a multi-processor data processing system.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (106)
Dimpsey,Robert Tod; Levine,Frank Eliot; Urquhart,Robert John, Apparatus and method for dynamic instrumenting of code to minimize system perturbation.
Schmitz Patrick L. (San Francisco CA) Jauhal Shern (Mountain View CA), Asynchronous media server request processing system for servicing reprioritizing request from a client determines whethe.
Kogge, Peter M.; Brockman, Jay B.; Harper, III, David Tennyson; Smith, Burton; Callahan, II, Charles David, Computer systems with lightweight multi-threaded architectures.
Foster Richard Daniel,GBX ; Hutchison Gordon Douglas,GBX, Distributed transaction processing system implementing concurrency control within the object request broker and locking all server objects involved in a transaction at its start.
DeWitt, Jr., Jimmie Earl; Gordon, Jesse M.; Levine, Frank Eliot; Kuiper, Kean G.; Pineda, Enio Manuel; Urquhart, Robert John, Method and apparatus for analyzing idle states in a data processing system.
DeWitt, Jr.,Jimmie Earl; Gordon,Jesse M.; Levine,Frank Eliot; Kuiper,Kean G.; Pineda,Enio Manuel; Urquhart,Robert John, Method and apparatus for analyzing idle states in a data processing system.
DeWitt, Jr., Jimmie Earl; Levine, Frank Eliot; Richardson, Christopher Michael; Urquhart, Robert John, Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics.
DeWitt, Jr.,Jimmie Earl; Levine,Frank Eliot; Richardson,Christopher Michael; Urquhart,Robert John, Method and apparatus for autonomically moving cache entries to dedicated storage when false cache line sharing is detected.
DeWitt, Jr.,Jimmie Earl; Levine,Frank Eliot; Richardson,Christopher Michael; Urquhart,Robert John, Method and apparatus for counting instruction execution and data accesses for specific types of instructions.
Levine, Frank Eliot; Richardson, Christopher Michael; Silha, Edward John, Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program.
Levine, Frank Eliot; Richardson, Christopher Michael; Silha, Edward John, Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program.
Kosche, Nicolai; Grohoski, Gregory F.; Jordan, Paul J., Method and apparatus for precisely identifying effective addresses associated with hardware events.
Dimpsey,Robert Tod; Levine,Frank Eliot; Urquhart,Robert John, Method and apparatus for providing hardware assistance for data access coverage on dynamically allocated data.
Bacon, David Francis; Cheng, Perry; Rajan, Vadakkedathu Thomas, Method and apparatus for scheduling and performing garbage collection in a real-time system with guaranteed space bounds.
Borkenhagen, John Michael; Eickemeyer, Richard James; Flynn, William Thomas; Wottreng, Andrew Henry, Method and apparatus for selecting thread switch events in a multithreaded processor.
Beadle, Bruce Anthony; Brown, Michael Wayne; Nizinski, Jr., Leonard Robert; Rothert, Douglas S., Method and apparatus to retain applet security privileges outside of the Java virtual machine.
Berry, Robert Francis; Howard, John Day; Levine, Frank Eliot; Urquhart, Robert J., Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment.
Mathews,Michael B.; Seilstad,Mark J.; Gregory,Steven J.; Zalinski,Charles M., Method and system for generalized and adaptive transaction processing between uniform information services and applications.
Meredith, Lucius Gregory; Mital, Amit; Levy, Marc; Beckman, Brian; Andrews, Anthony; Mehta, Bimal, Method and system for hierarchical transactions and compensation.
Elliott Conal M. ; Knoblock Todd B. ; Schechter Greg D. ; AbiEzzi Salim S. ; Campbell Colin L. ; Yeung Chun-Fu Ricky, Method and system for modeling and presenting integrated media with a declarative modeling language for representing re.
Berry, Robert Francis; Levine, Frank Eliot; Urguhart, Robert J., Method and system for periodic trace sampling for real-time generation of segments of call stack trees.
Berry, Robert Francis; Levine, Frank Eliot; Urguhart, Robert J., Method and system for periodic trace sampling for real-time generation of segments of call stack trees augmented with call stack position determination.
Browning, Luke Matthew; Peek, Jeffrey Scott, Method and system for scheduling threads within a multiprocessor data processing system using an affinity scheduler.
Alexander, III, William Preston; Levine, Frank Eliot; Reynolds, William Robert; Urquhart, Robert J., Method and system for shadow heap memory leak detection and other heap analysis in an object-oriented environment during real-time trace processing.
Arnold, Matthew R.; Fink, Stephen J.; Grove, David P.; Hind, Michael J.; Sweeney, Peter F.; Whaley, John, Method for characterizing program execution by periodic call stack inspection.
Jones, Scott Thomas; Levine, Frank Eliot; Urquhart, Robert John, Method, apparatus and computer program product for efficient, large counts of per thread performance events.
Bono,Jean Pierre, Multi-processor system having a watchdog for interrupting the multiple processors and deferring preemption until release of spinlocks.
Record Stephen E. (Ridgefield CT) Shepherd Ann Marie (Endwell NY) Shultz Steven S. (Endicott NY), Notification of event handlers in broadcast or propagation mode by event management services in a computer system.
Davies John W. (Shoreview MN) McClintock John H. (Tigard OR), Object lock management system with improved local lock management and global deadlock detection in a parallel data proce.
Orton Debra L. (San Jose CA) Bolton Eugenie L. (Sunnyvale CA) Chernikoff Daniel F. (Palo Alto CA) Goldsmith David B. (Los Gatos CA) Moeller Christopher P. (Los Altos CA), Object-oriented interface for a procedural operating system.
Chernikoff Daniel F. (Palo Alto CA) Bolton Eugenie L. (Sunnyvale CA) Moeller Christopher P. (Los Altos CA) Dattatri Kayshav (San Jose CA), Object-oriented interprocess communication system interface for a procedural operating system.
Jones, Scott T.; Kuiper, Kean G.; Levine, Frank E.; Pineda, Enio M., Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration.
Alexander, III, William Preston; Berry, Robert Francis; Levine, Frank Eliot; John, Jr., Chester Charles; Urquhart, Robert John, Process and system for merging trace data for primarily interpreted methods.
Berry, Robert Francis; Howard, John Day; John, Jr., Chester Charles; Levine, Frank Eliot; Mulvey, Donald L.; Pineda, Enio Manuel; Urquhart, Robert J., Processing events during profiling of an instrumented program.
Bono,Jean Pierre, Queues for soft affinity code threads and hard affinity code threads for allocation of processors to execute the threads in a multi-processor system.
Blott, Stephen M.; Breitbart, Yuri; Cliff, Jr., Thomas M.; Frastaci, Jr., Frank; Korth, Henry F., Real-time event processing system with service authoring environment.
Accapadi, Jos Manuel; Accapadi, Mathew; Dunshea, Andrew; Hack, Mark Elliott; Mena, III, Agustin; Srinivas, Mysore Sathyanarayana, Scheduling threads in a multiprocessor computer.
Kidder, Joseph D.; Mahler, Michael B.; Perreault, Edward L.; Stearns, Margaret; Hurley, Jim, Signatures for facilitating hot upgrades of modular software components.
Accapadi,Jos Manuel; Dunshea,Andrew; Michel,Dirk; Van Fleet,James W., System and method for adding priority change value corresponding with a lock to a thread during lock processing.
Berry, Robert Francis; Howard, John Day; Hussain, Riaz Y.; Levine, Frank Eliot; Urquhart, Robert John, System and method for injecting hooks into Java classes to handle exception and finalization processing.
William Preston Alexander, III ; Robert Francis Berry ; Riaz Y. Hussain ; Chester Charles John, Jr. ; Frank Eliot Levine ; Robert John Urquhart, System and method for providing trace information.
Kraft Reiner ; Lu Qi ; Wisebond Marat, Task distribution processing system and the method for subscribing computers to perform computing tasks during idle time.
Edmark, Ronald O'Neal; Levine, Frank Eliot; Urouhart, Robert J., Tracing profiling information using per thread metric variables with reused kernel threads.
Moeller Christopher P. (1570 Plateau Ave. Los Altos CA 94024) Bolton Eugenie L. (1512 Condor Way Sunnyvale CA 94087), Wrapper for enabling an object otented application to maintain virtual memory using procedural function calls.
Orton Debra L. (San Jose CA) Bolton Eugenie L. (Sunnyvale CA) Chernikoff Daniel F. (Palo Alto CA) Goldsmith David B. (Los Gatos CA) Moeller Christopher P. (Los Altos CA), Wrapper system for interfacing an object-oriented application to a procedural operating system.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.