System and method for enabling software monitoring in a...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06263488

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to measuring the performance of computer systems. More particularly, it relates to the introduction of system monitoring routines to software operating on a computer system. Still more particularly, the present invention relates to computer implemented methods and computer apparatus for enabling a computer system to collect information during the execution of software on that computer system.
2. Background and Related Art
Computer system performance, e.g. the speed of operation or the throughput of a system, is a function of the computer system hardware and the efficiency of the software used on the system. Performance can be enhanced by ensuring that the software is efficiently written to most effectively use the hardware or by modifying the hardware to enhance certain software function.
The identification of performance problems requires an ability to monitor the execution of software on a particular hardware system and to be able to identify those sections of the software that are consuming inordinate amounts of hardware resource. For example, the execution of a software program can be monitored to determine how much processing time is spent in each subroutine.
Tracing program execution and monitoring execution adds significant overhead to program execution. Thus, most software does not include monitoring function in its basic form. Software developers may add instructions to the software to monitor selected portions, but these instructions are typically removed before the final version is shipped to customers or placed in regular use.
Introduction of an existing program onto new hardware or perception of performance problems in new software may create a requirement to monitor software that does not contain any inherent monitoring capability. This creates a need to “instrument” the software to measure performance. Instrumentation of software refers to the process of enabling the software to be monitored at selected points to capture significant system state data at those points.
Historically, instrumentation of software was accomplished by modifying the source code for the software to include monitoring instructions, recompiling the source code, and then executing the modified software. The approach has the disadvantages of requiring access to source code (which may not be available for commercially purchased software), and being error prone if the person modifies the code incorrectly. In addition, this form of instrumentation may introduce performance problems itself causing the results to be misleading.
A second approach to instrumentation uses special purpose hardware to record access to certain computer system functions. A special monitor is connected to the computer to record changes in the physical state of the machine, e.g. when a signal is received on a certain line or when certain memory addresses are accessed. This approach has the disadvantage of requiring the special purpose hardware. It is also limited to those functions that cause a recognizable physical change to the hardware. The approach is costly and not generally applicable.
Yet another approach has been suggested in U.S. Pat. No. 5,193,180 to Hastings. Hastings seeks to monitor memory access by expanding the program code to include specific monitoring instructions. Hastings avoids the need for source code by expanding relocatable binary files. However, the files to be expanded must have a full symbol table available because of the movement of relative locations due to the expansion. The technique is also not applicable to situations where the symbol table has been stripped from an executable object to save storage space. Finally, Hastings cannot be applied to an object already loaded into memory for execution due to the need to recalculate relative addresses.
Still another approach is suggested in commonly assigned application Ser. No. 07/662,251, entitled “System and Method for Computer System Profiling.” This method is non-invasive and does not require modifying the code being monitored. The system and method are implemented in a software program that samples instruction addresses to be executed by the system. Summarization of the number of times an address is referenced and correlation to the source code causing generation of that instruction provides statistics on the time the program spends in certain sections of code. This approach has the disadvantage of being limited to estimating time spent in code sections and not allowing collection of other system state information. It also requires the source code to be available to generate an assembly listing for address to code correlation.
A technical problem therefore exists to provide a means of instrumenting a program for user defined performance monitoring without access to the program source code and without requiring special purpose hardware monitors.
SUMMARY OF THE INVENTION
The present invention is directed to providing a system and method for enabling monitoring of software performance without requiring access to the software source code.
The present invention is directed to a method for monitoring a computer system executing at least one software program having a plurality of computer executable instructions, the method comprising the steps of: replacing one of the plurality of computer executable instructions with an instruction causing execution to branch to a monitor process; performing the monitor process; executing the replaced one of the plurality of computer executable instructions; and returning execution control to the plurality of computer executable instructions.
It is therefore an object of the invention to provide a system and method for efficiently instrumenting software designed to operate on a computer system.
It is yet another objective to provide a system and method that enables instrumenting of software without requiring access to the software source code and without recompilation.
It is yet another objective of the invention to provide a system and method for instrumenting software after that software has been loaded for execution in a computer system.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of a preferred embodiment of the invention, as illustrated in the accompanying drawing wherein like reference numbers represent like parts of the invention.


REFERENCES:
patent: 4866665 (1989-09-01), Haswell-Smith
patent: 4937740 (1990-06-01), Agarwal et al.
patent: 5047919 (1991-09-01), Sterling et al.
patent: 5129087 (1992-07-01), Will
patent: 5193180 (1993-03-01), Hastings
patent: 5297274 (1994-03-01), Jackson
patent: 5313616 (1994-05-01), Cline et al.
patent: 5485574 (1996-01-01), Bolosky et al.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and method for enabling software monitoring in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for enabling software monitoring in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for enabling software monitoring in a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2552678

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.