Patent US3060480A successfully refreshed from Google Patents.
Patent US5963740A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5963740A Expired / Lapsed US ⏱️ 0.0 years remaining

System for monitoring computer system performance

Assignee: Hewlett Packard Development Co LP
•
Filing: 1997-11-21
•
Granted: 1999-10-05
•
Expires: 2017-11-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A program for monitoring computer system performance includes a collection of source code modules in the form of a high level language. Each of the source code modules is compiled into a corresponding object code module. The object code modules are assembled into machine dependent code. The machine code is translated into a program module in the form of a machine independent register translation language. The program module is partitioned into basic program components. The basic program components include procedures, basic blocks within procedures, and instructions within basic blocks. Fundamental instrumentation routines identify, locate, and modify specific program components to be monitored. The modified basic program components are converted to an instrumented machine executable code to be executed in the computer system so that performance data can be collected while the program is executing in the computer.

Inventors

  • 👤 Amitabh Srivastava
  • 👤 Robert Alan Eustace

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 12:59
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604; G06F11/3612; G06F11/30; G06F11/34; G06F11/3466; G06F2201/00; G06F2201/865

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 106 words
A computer implemented method for modifying a program, the program including first instructions to be executed in a computer system having a memory, comprising the steps of: processing the program in a compiler; translating the first instructions of the program received from the compiler into a program module of an intermediate language; modifying the program module by including at least one additional instruction to transfer control to a user analysis routine to monitor performance in the program module, wherein the user analysis routine does not share procedures or data with the program module; and generating from the modified program module a modified program having second instructions.
Claim 2
Dependent Claim 106 words
A computer implemented method for modifying a program, the program including first instructions to be executed in a computer system having a memory, comprising the steps of: processing the program in a compiler; translating the first instructions of the program received from the compiler into a program module of an intermediate language; modifying the program module by including at least one additional instruction to transfer control to a user analysis routine to monitor performance in the program module, wherein the user analysis routine does not share procedures or data with the program module; and generating from the modified program module a modified program having second instructions.
Claim 3
Dependent Claim 34 words
The method of claim 1 further comprising the step of: partitioning the program module into a plurality of basic components, the basic components including procedures of the program, and the procedures including basic blocks.
Claim 4
Dependent Claim 52 words
The method of claim 1 further comprising the step of: constructing, in a memory of the computer system, a flow graph for each procedure and a program call graph, the procedure flow graphs indication the execution flow within each procedure, the program call graph to indicate the execution flow among the procedures.
Claim 5
Dependent Claim 39 words
The method of claim 3 further comprising the step of: tracing an execution flow through the plurality of basic program components using the procedure flow graphs and the program call graph to identify a particular basic component to modify.
Claim 6
Dependent Claim 39 words
The method of claim 4 further comprising the step of: wherein the additional instruction is a call instruction to the user analysis routine, the call instruction being executed when the specific program component is executed in the computer system.
Claim 7
Dependent Claim 19 words
The method of claim 1 further comprising the step of: combining the user analysis routine with the modified program.
Claim 8
Dependent Claim 32 words
The method of claim 1 wherein a first hardware architecture is associated with the first machine dependent executable instructions, and a second hardware architecture is associated with the second machine executable instructions.
Claim 9
Dependent Claim 107 words
A computer implemented method for modifying a program module in the form of instructions of an intermediate machine readable language produced by a translator into machine dependent executable instructions to be carried out in a computer system comprising the steps of: modifying the program module by partitioning the program module into basic program components, and including at least one additional instruction to transfer control to a user analysis routine to monitor performance in at least one of the basic program components, wherein the user analysis routine does not share procedures or data with the program module; and generating machine dependent executable instructions from the modified program module.
Claim 10
Dependent Claim 107 words
A computer implemented method for modifying a program module in the form of instructions of an intermediate machine readable language produced by a translator into machine dependent executable instructions to be carried out in a computer system comprising the steps of: modifying the program module by partitioning the program module into basic program components, and including at least one additional instruction to transfer control to a user analysis routine to monitor performance in at least one of the basic program components, wherein the user analysis routine does not share procedures or data with the program module; and generating machine dependent executable instructions from the modified program module.
Claim 11
Dependent Claim 39 words
The method of claim 8 wherein the step of modifying the program module includes partitioning the program modules into the basic program components and tracing an execution flow through such program components to deduce structural and execution flow information.
Claim 12
Dependent Claim 15 words
The method of claim 9 wherein the step of tracing is accomplished using navigational routines.
Claim 13
Dependent Claim 29 words
The method of claim 9 wherein the step of modifying the program module further includes locating a program component to be monitored during tracing using the deduced structural information.
Claim 14
Dependent Claim 56 words
The method of claim 11 wherein the step of modifying the program module further includes inserting a call instruction in the located program to be monitored, the call instruction to transfer execution control to a user analysis routine to monitor the program component to be monitored during execution of such program component in the computer system.
Claim 15
Dependent Claim 142 words
A computer implemented method for modifying a program module produced by a translator in the form an intermediate machine readable language having instructions independent of computer hardware architecture into machine dependent executable instructions to be carried out in a computer system comprising: partitioning the linked code module into basic program components; tracing an execution flow through the basic program components using navigational routines to deduce structural and flow information; locating program components to be monitored during the tracing step using the deduced structural information; and inserting a call instruction in the located program component to be monitored, the call instruction for transferring execution control to a user analysis routine to monitor the program component to be monitored during execution of the program component in the computer system, wherein the user analysis routine does not share procedures or data with the program module.
Claim 16
Dependent Claim 142 words
A computer implemented method for modifying a program module produced by a translator in the form an intermediate machine readable language having instructions independent of computer hardware architecture into machine dependent executable instructions to be carried out in a computer system comprising: partitioning the linked code module into basic program components; tracing an execution flow through the basic program components using navigational routines to deduce structural and flow information; locating program components to be monitored during the tracing step using the deduced structural information; and inserting a call instruction in the located program component to be monitored, the call instruction for transferring execution control to a user analysis routine to monitor the program component to be monitored during execution of the program component in the computer system, wherein the user analysis routine does not share procedures or data with the program module.
Claim 17
Independent Claim 135 words
A method of modifying a computer program formed of machine dependent executable instructions, comprising the steps of: translating the machine dependent executable instructions into a program module in an intermediate language; partitioning the program module into a plurality of basic program components; tracing an execution flow through the plurality of basic program components using navigational routines; while tracing the execution flow through the plurality of basic program components, modifying the plurality of basic program components by inserting a call instruction to transfer execution control to a user analysis routine when a specific program component is executed in the computer system, wherein the user analysis routine does not share procedures or data with the program module; and generating instrumented machine dependent executable code from the modified plurality of basic program components after inserting the call instruction.
Claim 18
Independent Claim 135 words
A method of modifying a computer program formed of machine dependent executable instructions, comprising the steps of: translating the machine dependent executable instructions into a program module in an intermediate language; partitioning the program module into a plurality of basic program components; tracing an execution flow through the plurality of basic program components using navigational routines; while tracing the execution flow through the plurality of basic program components, modifying the plurality of basic program components by inserting a call instruction to transfer execution control to a user analysis routine when a specific program component is executed in the computer system, wherein the user analysis routine does not share procedures or data with the program module; and generating instrumented machine dependent executable code from the modified plurality of basic program components after inserting the call instruction.
Claim 19
Independent Claim 76 words
A method of modifying a computer program formed of machine dependent executable code, comprising the steps of: translating the machine dependent executable code into machine independent executable code; inserting a call instruction referencing a user analysis routine into the machine independent executable code, wherein the user analysis routine does not share procedures or data with the program module; and generating modified machine dependent executable code from the machine independent executable code which includes the call instruction.
Claim 20
Independent Claim 76 words
A method of modifying a computer program formed of machine dependent executable code, comprising the steps of: translating the machine dependent executable code into machine independent executable code; inserting a call instruction referencing a user analysis routine into the machine independent executable code, wherein the user analysis routine does not share procedures or data with the program module; and generating modified machine dependent executable code from the machine independent executable code which includes the call instruction.

References Cited (Backward Citations)

US5313614A Cited
US5551015A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-10-04 2003-04-05 2003-10-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-10-04 2007-04-05 2007-10-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-10-04 2011-04-05 2011-10-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag