US6026236A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System and method for enabling software monitoring in a computer system
Assignee: International Business Machines Corp
•
Filing: 1997-06-03
•
Granted: 2000-02-15
•
Expires: 2017-06-03
Abstract
Abstract A method and system for enabling the monitoring of software executing on a computer system. The system inserts monitor instrumentation without recompiling the source code of the program. Encapsulation of the target routine does not disrupt the relative addressing of the target routine since an instruction is simply replaced. No instructions are added to the target routine. User specified entry and exit routines are used to collect selected performance and system state data. Instrumentation code is provided to link the target routines to the user specified entry and exit routines. The standard link interface allows the entry and exit routines to be written in high level languages.
Inventors
- 👤 Michael Richard Fortin
- 👤 Robert John Urquhart
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-06 02:40
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/30; G06F11/34; G06F11/3466
Claims Analysis
Total Claims: 17
Claim 1
Independent Claim
231 words
A computer implemented method comprising: monitoring, automatically, an execution of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions, the step of monitoring further comprising the steps of: receiving a selection, from a user, of at least one of the routines to be monitored and a corresponding user supplied high level language routine from a plurality of user supplied routines for user defined performance monitoring of the selected routine; automatically performing modifications to the selected routine to replace one of said plurality of computer executable instructions, at an entry point to the selected routine, with a branch instruction causing execution to branch to a monitor process; calling automatically, from the monitor process, the selected user supplied routine as an entry monitor, selected specifically for the selected routine, to perform the user defined performance monitoring upon entry to the selected routine; automatically returning to the monitor process from the entry monitor upon completion of the entry monitor; performing, by the monitor process, a plurality of monitoring instructions common to each of the plurality of routines; executing, within the monitor process, the replaced one of said plurality of computer executable instructions of the selected routine; and returning execution control to said plurality of computer executable instructions of the selected routine after executing within the monitor process the replaced computer executable instruction.
Claim 2
Dependent Claim
231 words
A computer implemented method comprising: monitoring, automatically, an execution of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions, the step of monitoring further comprising the steps of: receiving a selection, from a user, of at least one of the routines to be monitored and a corresponding user supplied high level language routine from a plurality of user supplied routines for user defined performance monitoring of the selected routine; automatically performing modifications to the selected routine to replace one of said plurality of computer executable instructions, at an entry point to the selected routine, with a branch instruction causing execution to branch to a monitor process; calling automatically, from the monitor process, the selected user supplied routine as an entry monitor, selected specifically for the selected routine, to perform the user defined performance monitoring upon entry to the selected routine; automatically returning to the monitor process from the entry monitor upon completion of the entry monitor; performing, by the monitor process, a plurality of monitoring instructions common to each of the plurality of routines; executing, within the monitor process, the replaced one of said plurality of computer executable instructions of the selected routine; and returning execution control to said plurality of computer executable instructions of the selected routine after executing within the monitor process the replaced computer executable instruction.
Claim 3
Dependent Claim
65 words
The method of claim 1, further comprising the steps of: returning execution control to the monitor process upon completion of said plurality of computer executable instructions of the selected routine; and calling automatically, from the monitor process, a second selected user supplied routine as an exit monitor, selected specifically for the selected routine, to perform user defined performance monitoring upon exit from the selected routine.
Claim 4
Dependent Claim
22 words
The method of claim 2 further comprising determining, from the entry and exit monitor, the time spent while executing the selected routine.
Claim 5
Dependent Claim
306 words
A computer implemented method comprising: automatically monitoring an execution of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions, the step of automatically monitoring comprising; receiving a selection, from a user, of at least one of the routines to be monitored and separate corresponding user supplied high level language entry and exit routines from a plurality of user supplied entry and exit routines for performing user-defined performance monitoring for each selected one of the plurality of routines; automatically performing selected routine modifications to replace a first one of said plurality of computer executable instructions of each selected routine, at an entry point of each selected routine executing, with a branch instruction causing execution to branch to a monitor process; calling automatically, from the monitor process, the selected user supplied entry routine as an entry monitor, selected specifically for the selected routine, to perform the user defined performance monitoring upon entry to the selected routine; automatically returning to the monitor process from the entry monitor upon completion of the entry monitor; performing, by the monitor process, a plurality of monitoring instructions common to each of the plurality of routines; executing, within the monitor process, the replaced one of said plurality of computer executable instructions of the executing selected routine; returning execution control to the plurality of computer executable instructions of the executing selected routine after executing within the monitor process the replaced computer executable instruction; returning execution control to the monitor process upon completion of said plurality of computer executable instructions of the executing selected routine; and calling automatically, from the monitor process, the selected user supplied exit routine as an exit monitor, selected specifically for the executing selected routine being monitored, to perform user defined performance monitoring upon exit from the executing selected routine.
Claim 6
Dependent Claim
306 words
A computer implemented method comprising: automatically monitoring an execution of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions, the step of automatically monitoring comprising; receiving a selection, from a user, of at least one of the routines to be monitored and separate corresponding user supplied high level language entry and exit routines from a plurality of user supplied entry and exit routines for performing user-defined performance monitoring for each selected one of the plurality of routines; automatically performing selected routine modifications to replace a first one of said plurality of computer executable instructions of each selected routine, at an entry point of each selected routine executing, with a branch instruction causing execution to branch to a monitor process; calling automatically, from the monitor process, the selected user supplied entry routine as an entry monitor, selected specifically for the selected routine, to perform the user defined performance monitoring upon entry to the selected routine; automatically returning to the monitor process from the entry monitor upon completion of the entry monitor; performing, by the monitor process, a plurality of monitoring instructions common to each of the plurality of routines; executing, within the monitor process, the replaced one of said plurality of computer executable instructions of the executing selected routine; returning execution control to the plurality of computer executable instructions of the executing selected routine after executing within the monitor process the replaced computer executable instruction; returning execution control to the monitor process upon completion of said plurality of computer executable instructions of the executing selected routine; and calling automatically, from the monitor process, the selected user supplied exit routine as an exit monitor, selected specifically for the executing selected routine being monitored, to perform user defined performance monitoring upon exit from the executing selected routine.
Claim 7
Dependent Claim
194 words
A computer system, having memory and a processor, comprising: means for automatically monitoring an execution of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions; the means for monitoring further comprising: a monitor process, stored in memory, common to each of the plurality of routines, having means for replacing one of said plurality of computer executable instructions of a specified routine, at an entry to the specified routine, with a branch instruction causing execution to branch to the monitor process; means for calling, from the monitor process, a user supplied high level language entry monitor, pre-selected specifically for the specified routine, to perform user defined performance monitoring upon entry to the specified routine; means for performing, by the monitor process, a plurality of monitoring instructions common to each of the plurality of routines; means for executing, within the monitor process, the replaced one of said plurality of computer executable instructions of the specified routine; and means for returning execution control to said plurality of computer executable instructions of the specified routine after executing within the monitor process the replaced computer executable instruction.
Claim 8
Dependent Claim
194 words
A computer system, having memory and a processor, comprising: means for automatically monitoring an execution of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions; the means for monitoring further comprising: a monitor process, stored in memory, common to each of the plurality of routines, having means for replacing one of said plurality of computer executable instructions of a specified routine, at an entry to the specified routine, with a branch instruction causing execution to branch to the monitor process; means for calling, from the monitor process, a user supplied high level language entry monitor, pre-selected specifically for the specified routine, to perform user defined performance monitoring upon entry to the specified routine; means for performing, by the monitor process, a plurality of monitoring instructions common to each of the plurality of routines; means for executing, within the monitor process, the replaced one of said plurality of computer executable instructions of the specified routine; and means for returning execution control to said plurality of computer executable instructions of the specified routine after executing within the monitor process the replaced computer executable instruction.
Claim 9
Dependent Claim
69 words
The system of claim 5 further comprising: means for receiving a return execution control from the specified routine to the monitor process upon completion of said plurality of computer executable instructions of the specified routine; and means for calling, from the monitor process, a user supplied high level language exit monitor, pre-selected specifically for the specified routine, to perform user defined performance monitoring upon exit from the specified routine.
Claim 10
Dependent Claim
29 words
The system of claim 6 further comprising means for determining, from the performance monitoring performed by the entry and exit monitor, the time spent while executing the specified routine.
Claim 11
Dependent Claim
237 words
A computer system, having memory and a processor, comprising: means for automatically monitoring an execution of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions, the means for automatically monitoring comprising; means for replacing a first one of said plurality of computer executable instructions of each routine, upon entry of each routine executing, with a branch instruction causing execution to branch to the automatic monitor means; means for calling, from the monitor means, a user supplied high level language entry monitor, pre-selected specifically for the executing routine, to perform user defined performance monitoring upon entry to the executing routine; means for performing, by the monitor means, a plurality of monitoring instructions common to each of the plurality of routines; means for executing, within the monitor means, the replaced one of said plurality of computer executable instructions of the executing routine; means for returning execution control to the plurality of computer executable instructions of the executing routine after executing within the monitor means the replaced computer executable instruction; means for returning execution control to the monitor means upon completion of said plurality of computer executable instructions of the executing routine; and means for calling, from the monitor means, a user supplied high level language exit monitor, pre-selected specifically for the executing routine being monitored, to perform user defined performance monitoring upon exit from the executing routine.
Claim 12
Dependent Claim
237 words
A computer system, having memory and a processor, comprising: means for automatically monitoring an execution of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions, the means for automatically monitoring comprising; means for replacing a first one of said plurality of computer executable instructions of each routine, upon entry of each routine executing, with a branch instruction causing execution to branch to the automatic monitor means; means for calling, from the monitor means, a user supplied high level language entry monitor, pre-selected specifically for the executing routine, to perform user defined performance monitoring upon entry to the executing routine; means for performing, by the monitor means, a plurality of monitoring instructions common to each of the plurality of routines; means for executing, within the monitor means, the replaced one of said plurality of computer executable instructions of the executing routine; means for returning execution control to the plurality of computer executable instructions of the executing routine after executing within the monitor means the replaced computer executable instruction; means for returning execution control to the monitor means upon completion of said plurality of computer executable instructions of the executing routine; and means for calling, from the monitor means, a user supplied high level language exit monitor, pre-selected specifically for the executing routine being monitored, to perform user defined performance monitoring upon exit from the executing routine.
Claim 13
Dependent Claim
182 words
A computer program, on a computer usable medium, comprising: means for causing an automatic monitoring of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions; the means for causing the automatic monitoring further comprising: a monitor process, common to each of the plurality of routines, having means for causing a replacing of one of the plurality of computer executable instructions of a specified routine, at an entry to the specified routine, with a branch instruction causing execution to branch to the monitor process; means for calling, from the monitor process, a user supplied high level language entry monitor, pre-selected specifically for the specified routine, to perform user defined performance monitoring upon entry to the specified routine; means for performing a plurality of monitoring instructions common to each of the plurality of routines; means for executing, within the monitor process, the replaced one of said plurality of computer executable instructions of the specified routine; and means for returning execution control to said plurality of computer executable instructions of the specified routine.
Claim 14
Dependent Claim
182 words
A computer program, on a computer usable medium, comprising: means for causing an automatic monitoring of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions; the means for causing the automatic monitoring further comprising: a monitor process, common to each of the plurality of routines, having means for causing a replacing of one of the plurality of computer executable instructions of a specified routine, at an entry to the specified routine, with a branch instruction causing execution to branch to the monitor process; means for calling, from the monitor process, a user supplied high level language entry monitor, pre-selected specifically for the specified routine, to perform user defined performance monitoring upon entry to the specified routine; means for performing a plurality of monitoring instructions common to each of the plurality of routines; means for executing, within the monitor process, the replaced one of said plurality of computer executable instructions of the specified routine; and means for returning execution control to said plurality of computer executable instructions of the specified routine.
Claim 15
Dependent Claim
74 words
The computer program, on a computer usable medium, of claim 9 further comprising: means for receiving a return execution control from the specified routine to the monitor process upon completion of said plurality of computer executable instructions of the specified routine; and means for calling, from the monitor process, a user supplied high level language exit monitor, pre-selected specifically for the specified routine, to perform user defined monitoring upon exit from the specified routine.
Claim 16
Dependent Claim
227 words
A computer program, on a computer usable medium, comprising: means for causing an automatic monitoring of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions, the means for causing the automatic monitoring comprising; means for replacing a first one of said plurality of computer executable instructions of each routine, upon entry of each routine executing, with a branch instruction causing execution to branch to the monitor means; means for calling, from the monitor means, a user supplied high level language entry monitor, pre-selected specifically for the executing routine, to perform user defined performance monitoring upon entry to the executing routine; means for performing, by the monitor means, a plurality of monitoring instructions common to each of the plurality of routines; means for executing, within the monitor means, the replaced one of said plurality of computer executable instructions of the executing routine; means for returning execution control to the plurality of computer executable instructions of the executing routine; means for returning execution control to the monitor means upon completion of said plurality of computer executable instructions of the executing routine; and means for calling, from the monitor means, a user supplied high level language exit monitor, pre-selected specifically for the executing routine being monitored, to perform user defined performance monitoring upon exit from the executing routine.
Claim 17
Dependent Claim
227 words
A computer program, on a computer usable medium, comprising: means for causing an automatic monitoring of a plurality of routines executing on a computer system, each of the routines having a separate plurality of computer executable instructions, the means for causing the automatic monitoring comprising; means for replacing a first one of said plurality of computer executable instructions of each routine, upon entry of each routine executing, with a branch instruction causing execution to branch to the monitor means; means for calling, from the monitor means, a user supplied high level language entry monitor, pre-selected specifically for the executing routine, to perform user defined performance monitoring upon entry to the executing routine; means for performing, by the monitor means, a plurality of monitoring instructions common to each of the plurality of routines; means for executing, within the monitor means, the replaced one of said plurality of computer executable instructions of the executing routine; means for returning execution control to the plurality of computer executable instructions of the executing routine; means for returning execution control to the monitor means upon completion of said plurality of computer executable instructions of the executing routine; and means for calling, from the monitor means, a user supplied high level language exit monitor, pre-selected specifically for the executing routine being monitored, to perform user defined performance monitoring upon exit from the executing routine.
References Cited (Backward Citations)
US4866665A
Cited
US5129087A
Cited
US5715440A
Cited
US5485574A
Cited
US5539907A
Cited
US5732273A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-02-14 | 2003-08-16 | 2004-02-15 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-02-14 | 2007-08-16 | 2008-02-15 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-02-14 | 2011-08-16 | 2012-02-15 | $7700.00 | Window Closed / Lapsed |