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

Accurate profile and timing information for multitasking systems

Assignee: Borland Software Corp
•
Filing: 1998-05-14
•
Granted: 2000-01-18
•
Expires: 2018-05-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Determining execution time for a portion of software includes obtaining a first time stamp value at a beginning of the portion and obtaining a second time stamp value at an end of the portion. At least one of the first and second time stamp values is adjusted to compensate for any amount of time that the portion is swapped out in a multitasking operating system. The first time stamp value is subtracted from the second time stamp value to determine execution time. Determining execution time may also include providing a deltaout value that is initialized to zero prior to the portion being run for a first time. The deltaout value is incremented by an amount of time the portion is swapped out. The first time stamp value is compensated by subtracting the deltaout value therefrom and the second time stamp value is compensated by subtracting the deltaout value therefrom.

Inventors

  • 👤 Thomas Guinther
  • 👤 James Austin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 15:37
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604; G06F11/3612; G06F11/30; G06F11/34; G06F11/3409; G06F11/3419; G06F11/362; G06F11/3644; G06F2201/00; G06F2201/805; G06F2201/865

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 162 words
A method of determining execution time for a portion of software, comprising: (a) obtaining a first time stamp value at a beginning of the portion while obtaining a first deltaout value for a deltaout parameter, said first deltaout value being indicative of an amount of time the portion has been swapped out prior to the first time stamp value; (b) obtaining a second time stamp value at an end of the portion while obtaining a second deltaout value for the deltaout parameter, said second deltaout value being indicative of an amount of time the portion has been swapped out prior to the second time stamp value; (c) adjusting at least one of the first and second time stamp values using the first and second deltaout values to compensate for any amount of time that the portion was swapped out in a multitasking operating system; and (d) subtracting the first time stamp value from the second time stamp value to determine execution time.
Claim 2
Independent Claim 162 words
A method of determining execution time for a portion of software, comprising: (a) obtaining a first time stamp value at a beginning of the portion while obtaining a first deltaout value for a deltaout parameter, said first deltaout value being indicative of an amount of time the portion has been swapped out prior to the first time stamp value; (b) obtaining a second time stamp value at an end of the portion while obtaining a second deltaout value for the deltaout parameter, said second deltaout value being indicative of an amount of time the portion has been swapped out prior to the second time stamp value; (c) adjusting at least one of the first and second time stamp values using the first and second deltaout values to compensate for any amount of time that the portion was swapped out in a multitasking operating system; and (d) subtracting the first time stamp value from the second time stamp value to determine execution time.
Claim 3
Dependent Claim 69 words
A method, according to claim 1, further comprising: (e) initializing the deltaout parameter to zero prior to the portion being run for the first time; (f) incrementing the deltaout parameter by an amount of time the portion is swapped out; (g) compensating the first time stamp value by subtracting the first deltaout value therefrom; and (h) compensating the second time stamp value by subtracting the second deltaout value therefrom.
Claim 4
Dependent Claim 53 words
A method, according to claim 1, further comprising: (e) prior to the portion being run for the first time, causing calls to a context swapping operating system routine to also execute a hook routine that determines when the portion is becoming a running portion and when the portion is becoming a non-running portion.
Claim 5
Dependent Claim 37 words
A method, according to claim 3, wherein a pointer to the hook routine is provided as a parameter to an operating system routine that causes calls to the context swapping routine to also call the hook routine.
Claim 6
Dependent Claim 32 words
A method, according to claim 3, wherein a pointer to the hook routine is written to a location for a pointer for a function that is called by the context swapping routine.
Claim 7
Dependent Claim 21 words
A method, according to claim 3, wherein the context swapping routine is patched to cause a jump to the hook routine.
Claim 8
Dependent Claim 34 words
A method, according to claim 1, further comprising: (e) providing a driver having an entry point that is called each time the portion is swapped in and each time the portion is swapped out.
Claim 9
Dependent Claim 21 words
A method, according to claim 7, wherein the driver is a kernel mode driver in a Windows NT operating system environment.
Claim 10
Dependent Claim 20 words
A method, according to claim 7, wherein the driver is a virtual driver in a Windows 95 operating system environment.
Claim 11
Dependent Claim 33 words
A method, according to claim 7, wherein the portion is part of a thread and wherein the driver is called each time a thread is created and each time a thread is terminated.
Claim 12
Dependent Claim 36 words
A method, according to claim 7, further comprising: (f) creating data that is accessable by the driver and by the application, the data indicating an amount of time that each thread being monitored is swapped out.
Claim 13
Dependent Claim 69 words
A method, according to claim 11, further comprising: (g) initializing the deltaout parameter to zero prior to the portion being run for a first time; (h) incrementing the deltaout parameter by an amount of time the portion is swapped out; (i) compensating the first time stamp value by subtracting the first deltaout value therefrom; and (j) compensating the second time stamp value by subtracting the second deltaout value therefrom.
Claim 14
Dependent Claim 160 words
A computer program profiler, comprising: (a) means for obtaining a first time stamp value at a beginning of a portion of software while obtaining a first deltaout value for a deltaout parameter, said first deltaout value being indicative of an amount of the portion has been swapped out prior to the first time stamp value, (b) means for obtaining a second time stamp value at an end of the position while obtaining a second deltaout value, said second deltaout value being indicative of an amount of time the portion has been swapped out prior to the second time stamp value, (c) means for adjusting at least one of the first and second time stamp values using the first and second deltaout values to compensate for any amount of time that the portion is swapped out in a multitasking operating system; and (d) means for subtracting the first time stamp value from the second time stamp value to determine execution time.
Claim 15
Dependent Claim 160 words
A computer program profiler, comprising: (a) means for obtaining a first time stamp value at a beginning of a portion of software while obtaining a first deltaout value for a deltaout parameter, said first deltaout value being indicative of an amount of the portion has been swapped out prior to the first time stamp value, (b) means for obtaining a second time stamp value at an end of the position while obtaining a second deltaout value, said second deltaout value being indicative of an amount of time the portion has been swapped out prior to the second time stamp value, (c) means for adjusting at least one of the first and second time stamp values using the first and second deltaout values to compensate for any amount of time that the portion is swapped out in a multitasking operating system; and (d) means for subtracting the first time stamp value from the second time stamp value to determine execution time.
Claim 16
Dependent Claim 77 words
A profiler, according to claim 13, further comprising: (e) means for initializing the deltaout parameter to zero prior to the portion being run for a first time; (f) means for incrementing the deltaout parameter by an amount of time the portion is swapped out; (g) means for compensating the first time stamp value by subtracting the first deltaout value therefrom; and (h) means for compensating the second time stamp value by subtracting the second deltaout value therefrom.
Claim 17
Dependent Claim 45 words
A profiler, according to claim 13, further comprising: (e) means for causing calls to a context swapping operating system routine to also execute a hook routine that determines when the portion is becoming a running portion and when the portion is becoming a non-running portion.
Claim 18
Dependent Claim 37 words
A profiler, according to claim 15, wherein a pointer to the hook routine is provided as a parameter to an operating system routine that causes calls to the context swapping routine to also call the hook routine.
Claim 19
Dependent Claim 32 words
A profiler, according to claim 15, wherein a pointer to the hook routine is written to a location for a pointer for a function that is called by the context swapping routine.
Claim 20
Dependent Claim 21 words
A profiler, according to claim 15, wherein the context swapping routine is patched to cause a jump to the hook routine.
Claim 21
Dependent Claim 36 words
A profiler, according to claim 13, further comprising: (e) means for providing a driver having an entry point that is called each time the portion is swapped in and each time the portion is swapped out.
Claim 22
Dependent Claim 21 words
A profiler, according to claim 19, wherein the driver is a kernel mode driver in a Windows NT operating system environment.
Claim 23
Dependent Claim 20 words
A profiler, according to claim 19, wherein the driver is a virtual driver in a Windows 95 operating system environment.
Claim 24
Dependent Claim 37 words
A profiler, according to claim 19, wherein the portion is a part of a thread and wherein the driver is called by the application each time a thread is created and each time a thread is terminated.
Claim 25
Dependent Claim 37 words
A profiler, according to claim 19, further comprising: (f) means for creating data that is accessable by the driver and the application, the data indicating an amount of time that each thread being monitored is swapped out.
Claim 26
Dependent Claim 84 words
A profiler, according to claim 23, further comprising: (g) means for initializing the deltaout parameter to zero prior to the portion being run for a first time; (h) means for incrementing the deltaout parameter by an amount of time the portion is swapped out each time the portion is swapped out; (i) means for compensating the first time stamp value by subtracting the first deltaout value therefrom; and (j) means for compensating the second time stamp value by subtracting the second deltaout value therefrom.

References Cited (Backward Citations)

US4713791A Cited
US4937780A Cited
US5371689A Cited
US5590342A Cited
US5872909A Cited
US5758184A Cited
US5732272A Cited
US5828881A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-01-17 2003-07-19 2004-01-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-01-17 2007-07-19 2008-01-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-01-17 2011-07-19 2012-01-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag