US2006031837A1PendingUtilityA1
Thread starvation profiler
Est. expiryAug 5, 2024(expired)· nominal 20-yr term from priority
Inventors:Andrew M. Theurer
G06F 9/524
46
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A profiler of a multithreaded process that determines whether a process is runnable but not running by determining whether a process is both waiting for the processor and also not waiting for other events such as I/O. Counters are maintained for each such process that is runnable but not running. Reports are generated summarizing data relating to any process that may be starved due to lack of processor time. Information obtained by the method and apparatus assists developers in optimizing resources in multithreaded environments.
Claims
exact text as granted — not AI-modified1 . A method for profiling a multithreaded process comprising the steps of:
identifying a process to be profiled; executing instructions on a processor in a multithreaded manner; interrupting the executing of instructions on the processor; determining whether the process was runnable but not running upon interrupting the executing of instructions; and incrementing a counter for the process if the process was runnable but not running.
2 . The method of claim 1 further comprising the steps of:
restarting the executing of instructions on the processor; interrupting the executing of instructions after a predetermined period of time; and incrementing the counter for the process if the process was runnable but not running upon interrupting the executing of instructions after the predetermined period of time.
3 . The method of claim 1 further comprising the step of assigning a counter to the process.
4 . The method of claim 1 wherein the process comprises a plurality of functions and the method further comprises the step of assigning a separate counter for each of the plurality of functions.
5 . The method of claim 1 further comprising the step of generating a report summarizing the value of the counter for the process.
6 . The method of claim 1 wherein the step of executing instructions on a processor in a multithreaded manner comprises executing instructions on a plurality of processors in a multithreaded manner.
7 . The method of claim 1 wherein the multithreaded process runs a multitasking operating system and wherein the multithreaded system operates instructions on a single processor.
8 . A computer program product in a computer readable medium for profiling a multithreaded system, comprising:
first instructions for interrupting the operation of an application running in a multithreaded system; second instructions for identifying a process that was runnable but not running upon interrupting the operation of the application; and third instructions for incrementing a counter for the process that was runnable but not running wherein the counter has a counter value representing a number of times the counter is incremented.
9 . The computer program product in claim 8 further comprising:
fourth instructions for repeating the first, second and third instructions for a pre-determined time period.
10 . The computer program product in claim 9 further comprising fifth instructions for generating a report summarizing the counter value.
11 . The computer program product in claim 9 wherein the second instructions identify a plurality of processes that were runnable but not running and the third instructions increment a separate counter for each of the plurality of processes that; were runnable but not running wherein each separate counter has a separate counter value representing the number of times the third instructions increment each separate counter.
12 . The computer program product in claim 11 further comprising seventh instructions for reporting each counter value as a percentage of a total counter value wherein the total counter value is a summation of each of the separate counter values.
13 . The computer program product of claim 8 further comprising fourth instructions for incrementing a second counter signifying a function of the process was running upon interrupting the operation of the application.
14 . A method of profiling a data processing system comprising the steps of:
starting processing of a multithreaded application by a processor, wherein the processor selects threads to process from a run queue; starting a profiler; waiting a predetermined period of time; interrupting the processing of the multithreaded application; identifying a thread on the run queue that was runnable but not running upon interrupting the processing; incrementing a counter for the thread on the run queue that was runnable but not running wherein the counter has a value representing the number of time the counter is incremented; restarting the processing by the processor of the multithreaded application; and generating a report wherein the report comprises the value of the counter.
15 . A data processing system comprising:
a system for processing a multithreaded application by a processor, wherein the processor processes a plurality of threads of the multithreaded application; a profiler system for waiting a predetermined period of time, interrupting the processing by the processor of the multithreaded application, identifying a thread that is runnable but not running, incrementing a counter for the thread that is runnable but not running wherein the counter has a value representing the number of times the counter is incremented, restarting the processing of the multithreaded application, and generating a report wherein the report comprises the value of the counter.Join the waitlist — get patent alerts
Track US2006031837A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.