Global variable migration via virtual memory overlay technique for multi-version asynchronous dynamic software update
First Claim
1. A method for managing migration of global variables on a processing system during live program updates, comprising:
- creating a shared data segment in a physical memory of the processing system;
when a first version of a program is loaded by the processing system;
allocating a logical address space for a first global variable data segment for a first version of a program and binding the first global variable data segment to the shared data segment;
assigning physical addresses in the shared data segment for a plurality of global variables referenced in the first version of the program; and
including virtual addresses in the first global variable data segment that map to the plurality of global variables;
when an update version of the program is subsequently loaded by the processing system and is executed concurrently with the first version;
allocating a logical address space for a second global variable data segment for the update version of the program and binding the second variable data segment to the shared data segment;
assigning physical addresses in the shared data segment for added global variables that are referenced in the update version and not the first version;
including virtual addresses in the second global variable data segment that map to the physical addresses in the shared data segment for common global variables referenced in both the first version and the update version, andincluding virtual addresses in the second global variable data segment that map to the physical addresses in the shared data segment for the added global variables;
wherein the first global variable data segment for the first version of the program and the second global variable data segment for the update version of the program exist concurrently, and the first and second global variable data segments each map to the common global variables stored in the shared data segment.
1 Assignment
0 Petitions
Accused Products
Abstract
System and method for managing migration of global variables on processing system during live program updates, including creating a shared data segment is created in a physical memory of the processing system, binding a logical address space of a first global variable data segment for a first version of a program to a physical address of the shared data segment, and binding a logical address space for a second global variable data segment for an update version of the program to the physical address of the shared data segment. The first global variable data segment and the second global variable data segment exist concurrently and each map to common global variables stored in the shared data segment.
-
Citations
20 Claims
-
1. A method for managing migration of global variables on a processing system during live program updates, comprising:
-
creating a shared data segment in a physical memory of the processing system; when a first version of a program is loaded by the processing system; allocating a logical address space for a first global variable data segment for a first version of a program and binding the first global variable data segment to the shared data segment; assigning physical addresses in the shared data segment for a plurality of global variables referenced in the first version of the program; and including virtual addresses in the first global variable data segment that map to the plurality of global variables; when an update version of the program is subsequently loaded by the processing system and is executed concurrently with the first version; allocating a logical address space for a second global variable data segment for the update version of the program and binding the second variable data segment to the shared data segment; assigning physical addresses in the shared data segment for added global variables that are referenced in the update version and not the first version; including virtual addresses in the second global variable data segment that map to the physical addresses in the shared data segment for common global variables referenced in both the first version and the update version, and including virtual addresses in the second global variable data segment that map to the physical addresses in the shared data segment for the added global variables; wherein the first global variable data segment for the first version of the program and the second global variable data segment for the update version of the program exist concurrently, and the first and second global variable data segments each map to the common global variables stored in the shared data segment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A processing system configured to manage migration of global variables during live program updates, comprising:
-
a processing device; a memory associated with the processing device; a non-transient storage for storing instructions that when loaded to the memory and executed by the processing device cause the processing device to; create a shared data segment in the memory; when a first version of a program is loaded by the processing system; allocate a logical address space for a first global variable data segment for a first version of a program and bind the first global variable data segment to the shared data segment; assign physical addresses in the shared data segment for a plurality of global variables referenced in the first version of the program; and include virtual addresses in the first global variable data segment that map to the plurality of global variables; when an update version of the program is subsequently loaded by the processing system and is executed concurrently with the first version; allocate a logical address space for a second global variable data segment for an update version of the program and bind the second global variable data segment to the shared data segment; assign physical addresses in the shared data segment for added global variables that are referenced in the update version and not in the first version; include virtual addresses in the second global variable data segment that map to the physical addresses in the shared data segment for common global variables referenced in both the first version and the update version, and include virtual addresses in the second global variable data segment that map to the physical addresses in the shared data segment for the added global variables; wherein the first global variable data segment for the first version of the program and the second global variable data segment for the update version of the program exist concurrently, and the first and second global variable data segments each map to the common global variables stored in the shared data segment. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer program product comprising a non-transient storage medium storing instructions managing migration of global variables on a processing system comprising instructions to cause a processing device to:
-
create a shared data segment in a physical memory of the processing system; when a first version of a program is loaded by the processing system; allocate a logical address space for a first global variable data segment for a first version of a program and bind the first global variable data segment to the shared data segment; assign physical addresses in the shared data segment for a plurality of global variables referenced in the first version of the program; and include virtual addresses in the first global variable data segment that map to the plurality of global variables; when an update version of the program is subsequently loaded by the processing system and is executed concurrently with the first version; allocate a logical address space for a second global variable data segment for an update version of the program and bind the second global variable data segment to the shared data segment; assign physical addresses in the shared data segment for added global variables that are referenced in the update version and not in the first version; include virtual addresses in the second global variable data segment that map to the physical addresses in the shared data segment for common global variables referenced in both the first version and the update version, and include virtual addresses in the second global variable data segment that map to the physical addresses in the shared data segment for the added global variables; wherein the first global variable data segment for the first version of the program and the second global variable data segment for the update version of the program exist concurrently, and the first and second global variable data segments each map to the common global variables stored in the shared data segment. - View Dependent Claims (17, 18, 19, 20)
-
Specification