Application program interface for dynamic instrumentation of a heterogeneous program in a distributed environment
First Claim
1. A computerized system comprising:
- a processing unit;
a system memory coupled to the processing unit through a system bus;
a computer-readable medium coupled to the processing unit through a system bus;
a hierarchical intermediate representation for a heterogeneous program in the system memory;
a transformation process that is configured to execute in the processing unit and that is configured to modify the hierarchical intermediate representation to create a modified intermediate representation associated with the heterogeneous program;
a dynamic modification process that is configured to execute in the processing unit; and
an application program interface that is configured to be executed from the computer-readable medium by the processing unit, wherein the dynamic modification process is configured to call the application program interface to cause the processing unit to modify the system memory associated with the heterogeneous program running in the system memory based on the modified intermediate representation.
2 Assignments
0 Petitions
Accused Products
Abstract
Described is an application program interface (API) that enables dynamic modification to applications executing in a heterogeneous distributed computing environment. The application program interface includes a navigation function, a query function, a thread management function, and a modifier function. The navigation function returns program information for a local or remote computer (i.e., specified computing device). The query function returns information about a program on the specified computing device. The thread management function controls execution of other programs on the specified computing device. The modifier function modifies a system memory on the specified computing device that stores the heterogeneous program. The API works in conjunction with a hierarchical intermediate representation of the heterogeneous program such that pre-defined program tools can modify the intermediate representation and write these modifications to the specified computing device while the heterogeneous program remains operational.
89 Citations
20 Claims
-
1. A computerized system comprising:
-
a processing unit; a system memory coupled to the processing unit through a system bus; a computer-readable medium coupled to the processing unit through a system bus; a hierarchical intermediate representation for a heterogeneous program in the system memory; a transformation process that is configured to execute in the processing unit and that is configured to modify the hierarchical intermediate representation to create a modified intermediate representation associated with the heterogeneous program; a dynamic modification process that is configured to execute in the processing unit; and an application program interface that is configured to be executed from the computer-readable medium by the processing unit, wherein the dynamic modification process is configured to call the application program interface to cause the processing unit to modify the system memory associated with the heterogeneous program running in the system memory based on the modified intermediate representation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 20)
-
-
8. An application program interface embodied on a computer-readable medium for execution on a computer in conjunction with a hierarchical intermediate representation of a heterogeneous program, the application program interface comprising:
-
a navigation function that returns program information for a specified computing device; a query function that returns information about a program on the specified computing device; a thread management function for controlling execution of other programs on the specified computing device; and a modifier function for modifying the heterogeneous program residing in a system memory on the specified computing device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An application program interface embodied on a computer-readable medium for execution on a computer, the application program interface comprising:
-
a first set of functions for creating a hierarchical internal representation of a heterogeneous program and for modifying the hierarchical internal representation to create a modified internal representation; and a second set of functions for dynamically modifying a system memory in which the heterogeneous program is executing, the system memory being modified based on the modified internal representation of the heterogeneous program. - View Dependent Claims (16, 17, 18)
-
-
19. A computer-readable medium having computer-executable instructions stored thereon to provide an interface to a hierarchical intermediate representation of a heterogeneous program comprising:
-
an instruction application interface exposed by an instruction element in the hierarchy for navigating, querying, modifying, translating, and committing an inspection in the intermediate representation; a block application interface exposed by a block element in the hierarchy for navigating, querying, modifying, and committing a block in the intermediate representation; a procedure application interface exposed by a procedure element in the hierarchy for navigating, querying, modifying, and committing a procedure in the intermediate representation; a program application interface exposed by a program element in the hierarchy for modifying and querying the intermediate representation for the heterogeneous program; and a system application interface exposed by a system element in the hierarchy for determining the program element available on a computing device.
-
Specification