Data collection and restoration for homogeneous or heterogeneous process migration
First Claim
1. A method for collecting data associated with a process having logical parameters and indirect memory references, wherein the process is in execution on a first digital computer having physical memory locations wherein the data are stored, and transforming the collected data into a machine-independent format adapted for transfer to a second digital computer which will continue execution of the process from the point at which data is collected from the first computer, wherein the first and second computers may have the same software environment or may have different software environments, and wherein the first and second computers may have identical hardware or may have different hardware;
- said method comprising the steps of;
(a) generating a memory representation data structure correlating logical parameters of the process in execution on the first computer to physical memory locations in the first computer, and correlating indirect memory references in the process to machine-independent representations of the indirect memory references;
(b) generating a type information table correlating data types associated with logical parameters of the process to physical memory locations in the first computer;
(c) searching the physical memory locations in the first computer, in accordance with the correlations in the memory representation data structure, and identifying which logical parameters will be needed to continue execution of the process on the second computer, based on the indirect memory references to logical parameters that could be used in the continued execution of the process on the second computer; and
(d) saving the values and types of the identified logical parameters of the process in a machine-independent format, based on the data in the physical memory locations of the first computer and the correlations represented by the type information table; and
saving the correlations of the memory representation data structure associated with the identified logical parameters in machine-independent format; and
saving the correlations of the indirect memory references associated with the identified logical parameters in machine-independent format.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for process migration between computers is disclosed, particularly for collecting the memory contents of a process on one computer in a machine-independent information stream, and for restoring the data content from the information stream to the memory space of a new process on a different computer. The data collection and restoration method enables sophisticated data structures such as indirect memory references to be migrated appropriately between heterogeneous computer environments.
-
Citations
14 Claims
-
1. A method for collecting data associated with a process having logical parameters and indirect memory references, wherein the process is in execution on a first digital computer having physical memory locations wherein the data are stored, and transforming the collected data into a machine-independent format adapted for transfer to a second digital computer which will continue execution of the process from the point at which data is collected from the first computer, wherein the first and second computers may have the same software environment or may have different software environments, and wherein the first and second computers may have identical hardware or may have different hardware;
- said method comprising the steps of;
(a) generating a memory representation data structure correlating logical parameters of the process in execution on the first computer to physical memory locations in the first computer, and correlating indirect memory references in the process to machine-independent representations of the indirect memory references;
(b) generating a type information table correlating data types associated with logical parameters of the process to physical memory locations in the first computer;
(c) searching the physical memory locations in the first computer, in accordance with the correlations in the memory representation data structure, and identifying which logical parameters will be needed to continue execution of the process on the second computer, based on the indirect memory references to logical parameters that could be used in the continued execution of the process on the second computer; and
(d) saving the values and types of the identified logical parameters of the process in a machine-independent format, based on the data in the physical memory locations of the first computer and the correlations represented by the type information table; and
saving the correlations of the memory representation data structure associated with the identified logical parameters in machine-independent format; and
saving the correlations of the indirect memory references associated with the identified logical parameters in machine-independent format.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14)
(a) reconstructing a memory representation data structure correlating logical parameters of the process to be executed on the second computer to physical memory locations in the second computer, and correlating the machine-independent indirect memory references to indirect memory references on the second computer;
(b) reconstructing the type information table correlating data types associated with logical parameters of the process to physical memory locations in the second computer;
(c) identifying the physical memory locations in the second computer in which to restore the values and types of the logical parameters needed to continue execution of the process on the second computer, in accordance with the correlations of the reconstructed memory representation data structure; and
(d) restoring data in the identified physical memory locations of the second computer based on the values and types of the identified logical parameters of the process in a machine-independent format and the correlations represented by the type information table.
- said method comprising the steps of;
-
7. A method as recited in claim 6, wherein said restoring step comprises restoring the value of each of the identified logical parameters only once.
-
8. A method as recited in claim 6, wherein said process is compiled from source code in a stack-based language.
-
9. A method as recited in claim 8, wherein said stack-based language comprises a language selected from the group consisting of C, C++, Pascal, Ada, and Fortran.
-
10. A method as recited in claim 1, wherein said saving step consists of saving the values, types, and correlations only of the identified logical parameters of the process.
-
12. A second digital computer programmed to restore data previously collected from a first computer in accordance with the method of claim 1;
- wherein said computer is programmed to perform the steps of;
(a) reconstructing a memory representation data structure correlating logical parameters of the process to be executed on the second computer to physical memory locations in the second computer, and correlating the machine-independent indirect memory references to indirect memory references on the second computer;
(b) reconstructing the type information table correlating data types associated with logical parameters of the process to physical memory locations in the second computer;
(c) identifying the physical memory locations in the second computer in which to restore the values and types of the logical parameters needed to continue execution of the process on the second computer, in accordance with the correlations of the reconstructed memory representation data structure; and
(d) restoring data in the identified physical memory locations of the second computer based on the values and types of the identified logical parameters of the process in a machine-independent format and the correlations represented by the type information table.
- wherein said computer is programmed to perform the steps of;
-
14. A memory storage device containing a program to restore data previously collected from a first computer in accordance with the method of claim 1;
- wherein said program is adapted to perform the following steps on the first digital computer;
(a) reconstructing a memory representation data structure correlating logical parameters of the process to be executed on the second computer to physical memory locations in the second computer, and correlating the machine-independent indirect memory references to indirect memory references on the second computer;
(b) reconstructing the type information table correlating data types associated with logical parameters of the process to physical memory locations in the second computer;
(c) identifying the physical memory locations in the second computer in which to restore the values and types of the logical parameters needed to continue execution of the process on the second computer, in accordance with the correlations of the reconstructed memory representation data structure; and
(d) restoring data in the identified physical memory locations of the second computer based on the values and types of the identified logical parameters of the process in a machine-independent format and the correlations represented by the type information table.
- wherein said program is adapted to perform the following steps on the first digital computer;
-
11. A first digital computer programmed to collect data associated with a process having logical parameters and indirect memory references, wherein the process is in execution on a first digital computer having physical memory locations wherein the data are stored, and transform the collected data into a machine-independent format adapted for transfer to a second digital computer which will continue execution of the process from the point at which data is collected from the first computer, wherein the first and second computers may have the same software environment or may have different software environments, and wherein the first and second computers may have identical hardware or may have different hardware;
- wherein said computer is programmed to perform the steps of;
(a) generating a memory representation data structure correlating logical parameters of the process in execution on the first computer to physical memory locations in the first computer, and correlating indirect memory references in the process to machine-independent representations of the indirect memory references;
(b) generating a type information table correlating data types associated with logical parameters of the process to physical memory locations in the first computer;
(c) searching the physical memory locations in the first computer, in accordance with the correlations in the memory representation data structure, and identifying which logical parameters will be needed to continue execution of the process on the second computer, based on the indirect memory references to logical parameters that could be used in the continued execution of the process on the second computer; and
(d) saving the values and types of the identified logical parameters of the process in a machine-independent format, based on the data in the physical memory locations of the first computer and the correlations represented by the type information table; and
saving the correlations of the memory representation data structure associated with the identified logical parameters in machine-independent format; and
saving the correlations of the indirect memory references associated with the identified logical parameters in machine-independent format.
- wherein said computer is programmed to perform the steps of;
-
13. A memory storage device containing a program for collecting data associated with a process having logical parameters and indirect memory references, wherein the process is in execution on a first digital computer having physical memory locations wherein the data are stored, and transforming the collected data into a machine-independent format adapted for transfer to a second digital computer which will continue execution of the process from the point at which data is collected from the first computer, wherein the first and second computers may have the same software environment or may have different software environments, and wherein the first and second computers may have identical hardware or may have different hardware;
- wherein said program is adapted to perform the following steps on the first digital computer;
(a) generating a memory representation data structure correlating logical parameters of the process in execution on the first computer to physical memory locations in the first computer, and correlating indirect memory references in the process to machine-independent representations of the indirect memory references;
(b) generating a type information table correlating data types associated with logical parameters of the process to physical memory locations in the first computer;
(c) searching the physical memory locations in the first computer, in accordance with the correlations in the memory representation data structure, and identifying which logical parameters will be needed to continue execution of the process on the second computer, based on the indirect memory references to logical parameters that could be used in the continued execution of the process on the second computer; and
(d) saving the values and types of the identified logical parameters of the process in a machine-independent format, based on the data in the physical memory locations of the first computer and the correlations represented by the type information table; and
saving the correlations of the memory representation data structure associated with the identified logical parameters in machine-independent format; and
saving the correlations of the indirect memory references associated with the identified logical parameters in machine-independent format.
- wherein said program is adapted to perform the following steps on the first digital computer;
Specification