US2006136503A1PendingUtilityA1

Dynamic seamless reconfiguration of executing parallel software

43
Assignee: ELMENDORF PETER CPriority: Feb 26, 2001Filed: Jan 24, 2006Published: Jun 22, 2006
Est. expiryFeb 26, 2021(expired)· nominal 20-yr term from priority
G06F 8/656Y10S707/99957
43
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method is described for dynamic stitching of a new module of executable code in a parallel processing environment, where access to a data object is shared by the new module and another module previously loaded. A new data object is created for shared access by the new module and by the other module; a data freshness indicator is updated in accordance therewith. A pointer value for the data pointer associated with the other module is modified, thereby terminating reference to an old data object previously accessed and substituting reference to the new data object. A second data freshness indicator is updated in accordance with access by the other module to the new data object. The old data object is deleted when a comparison between freshness indicators shows that access to the old data object is no longer required.

Claims

exact text as granted — not AI-modified
1 - 7 . (canceled)  
     
     
         8 . A method for performing dynamic stitching of a new module of executable code in a parallel processing environment, where said new module and another module previously loaded include accessing code which when executed causes access to a data object, the method comprising the steps of: 
 receiving an instruction to load the new module;    preventing initiation of access to the data object when the instruction is received, while permitting continued access to the data object in progress when the instruction is received;    loading the new module after said continued access is concluded; and    permitting initiation of access to the data object after said loading is performed.    
     
     
         9 . The method of  claim 8  wherein said loading step further comprises modifying the data object.  
     
     
         10 . The method of  claim 8 , further comprising the steps of: 
 establishing a usage counter associated with the data object;    incrementing said usage counter when access to the data object is initiated prior to said preventing step;    decrementing said usage counter when access to the data object is concluded prior to said preventing step;    changing a value of said usage counter to the negative thereof when said instruction is received;    incrementing the negative value when a continued access to the data object is concluded;    comparing the value of said usage counter with a predetermined value to determine whether all said continued access is concluded; and    resetting the value of said usage counter when all said continued access is concluded.    
     
     
         11 . The method of  claim 10 , wherein the value of said usage counter and said predetermined value are atomic data, so that said incrementing, decrementing, changing, comparing and resetting are atomic operations.  
     
     
         12 . The method of  claim 10 , wherein said loading and permitting steps are performed after said resetting step.  
     
     
         13 . The method of  claim 10 , wherein a negative value of said usage counter indicates that initiation of access to the data object is prevented, and a value of said usage counter equal to said predetermined value indicates that initiation of access to the data object may be resumed.  
     
     
         14 . The method of  claim 8 , wherein said preventing comprises blocking invocation of the accessing code, and said permitting continued access to the data object comprises permitting continued execution of the accessing code.  
     
     
         15 . A method for unloading a target module of executable code in a parallel processing environment, where the target module and another module share access to a data object, said access being performed using a data pointer associated with the target module and having a pointer value, and where the target module and the other module comprise a context having a freshness indicator associated therewith, the method comprising the steps of: 
 receiving an instruction to unload the target module;    preventing initiation of access to the target module when the instruction is received, while permitting continued access to the target module in progress when the instruction is received;    updating the freshness indicator;    deleting old data associated with the target module in accordance with an updated value of the freshness indicator;    modifying the pointer value after all access to the target module is concluded, thereby terminating reference to the data object by the target module; and    unloading the target module.    
     
     
         16 . The method of  claim 15 , wherein said preventing comprises blocking invocation of the code in the target module, and said permitting comprises permitting continued execution of the code in the target module.  
     
     
         17 . The method of  claim 15 , wherein the old data has a freshness value associated therewith, and said deleting is performed in accordance with said freshness value being not greater than the updated value of the freshness indicator.  
     
     
         18 - 24 . (canceled)  
     
     
         25 . A computer-readable storage medium having stored therein instructions for performing a method for performing dynamic stitching of a new module of executable code in a parallel processing environment, where said new module and another module previously loaded include accessing code which when executed causes access to a data object, the method comprising the steps of: 
 receiving an instruction to load the new module;    preventing initiation of access to the data object when the instruction is received, while permitting continued access to the data object in progress when the instruction is received;    loading the new module after said continued access is concluded; and    permitting initiation of access to the data object after said loading is performed.    
     
     
         26 . The computer-readable storage medium of  claim 25 , wherein said loading step further comprises modifying the data object.  
     
     
         27 . The computer-readable storage medium of  claim 25 , wherein the method further comprises the steps of: 
 establishing a usage counter associated with the data object;    incrementing said usage counter when access to the data object is initiated prior to said preventing step;    decrementing said usage counter when access to the data object is concluded prior to said preventing step;    changing a value of said usage counter to the negative thereof when said instruction is received;    incrementing the negative value when a continued access to the data object is concluded;    comparing the value of said usage counter with a predetermined value to determine whether all said continued access in concluded; and    resetting the value of said usage counter when all said continued access is concluded.    
     
     
         28 . The computer-readable storage medium of  claim 27 , wherein the value of said usage counter and said predetermined value are atomic data, so that said incrementing, decrementing, changing, comparing and resetting are atomic operations.  
     
     
         29 . The computer-readable storage medium of  claim 27 , wherein said loading and permitting steps are performed after said resetting step.  
     
     
         30 . The computer-readable storage medium of  claim 27 , wherein a negative value of said usage counter indicates that initiation of access to the data object is prevented, and a value of said usage counter equal to said predetermined value indicates that initiation of access to the data object may be resumed.  
     
     
         31 . The computer-readable storage medium of  claim 25 , wherein said preventing comprises blocking invocation of the accessing code, and said permitting continued access to the data object comprises permitting continued execution of the accessing code.  
     
     
         32 . A computer-readable storage medium having stored therein instructions for performing a method for unloading a target module of executable code in a parallel processing environment, where the target module and another module share access to a data object, said access being performed using a data pointer associated with the target module and having a pointer value, and where the target module and the other module comprise a context having a freshness indicator associated therewith, the method comprising the steps of: 
 receiving an instruction to unload the target module;    preventing initiation of access to the target module when the instruction is received, while permitting continued access to the target module in progress when the instruction is received;    updating the freshness indicator;    deleting old data associated with the target module in accordance with an updated value of the freshness indicator;    modifying the pointer value after all access to the target module is concluded, thereby terminating reference to the data object by the target module; and    unloading the target module.    
     
     
         33 . The computer-readable storage medium of  claim 32 , wherein said preventing comprises blocking invocation of the code in the target module, and said permitting comprises permitting continued execution of the code in the target module.  
     
     
         34 . The computer-readable storage medium of  claim 32 , wherein the old data has a freshness value associated therewith, and said deleting is performed in accordance with said freshness value being not greater than the updated value of the freshness indicator.  
     
     
         35 - 41 . (canceled)  
     
     
         42 . A computer program product embodying instructions for performing a method for performing dynamic stitching of a new module of executable code in a parallel processing environment, where said new module and another module previously loaded include accessing code which when executed causes access to a data object, the method comprising the steps of: 
 receiving an instruction to load the new module;    preventing initiation of access to the data object when the instruction is received, while permitting continued access to the data object in progress when the instruction is received;    loading the new module after said continued access is concluded; and    permitting initiation of access to the data object after said loading is performed.    
     
     
         43 . The computer program product of  claim 42 , wherein said loading step further comprises modifying the data object.  
     
     
         44 . The computer program product of  claim 42 , wherein the method further comprises the steps of: 
 establishing a usage counter associated with the data object;    incrementing said usage counter when access to the data object is initiated prior to said preventing step;    decrementing said usage counter when access to the data object is concluded prior to said preventing step;    changing a value of said usage counter to the negative thereof when said instruction is received;    incrementing the negative value when a continued access to the data object is concluded;    comparing the value of said usage counter with a predetermined value to determine whether all said continued access is concluded; and    resetting the value of said usage counter when all said continued access is concluded.    
     
     
         45 . The computer program product of  claim 44 , wherein the value of said usage counter and said predetermined value are atomic data, so that said incrementing, decrementing, changing, comparing and resetting are atomic operations.  
     
     
         46 . The computer program product of  claim 44 , wherein said loading and permitting steps are performed after said resetting step.  
     
     
         47 . The computer program product of  claim 44 , wherein a negative value of said usage counter indicates that initiation of access to the data object is prevented, and a value of said usage counter equal to said predetermined value indicates that initiation of access to the data object may be resumed.  
     
     
         48 . The computer program product of  claim 42 , wherein said preventing comprises blocking invocation of the accessing code, and said permitting continued access to the data object comprises permitting continued execution of the accessing code.  
     
     
         49 . A computer program product embodying instructions for performing a method for unloading a target module of executable code in a parallel processing environment, where the target module and another module share access to a data object, said access being performed using a data pointer associated with the target module and having a pointer value, and where the target module and the other module comprise a context having a freshness indicator associated therewith, the method comprising the steps of: 
 receiving an instruction to unload the target module;    preventing initiation of access to the target module when the instruction is received, while permitting continued access to the target module in progress when the instruction is received;    updating the freshness indicator;    deleting old data associated with the target module in accordance with an updated value of the freshness indicator;    modifying the pointer value after all access to the target module is concluded, thereby terminating reference to the data object by the target module; and    unloading the target module.    
     
     
         50 . The computer program product of  claim 49 , wherein said preventing comprises blocking invocation of the code in the target module, and said permitting comprises permitting continued execution of the code in the target module.  
     
     
         51 . The computer program product of  claim 49 , wherein the old data has a freshness value associated therewith, and said deleting is performed in accordance with said freshness value being not greater than the updated value of the freshness indicator.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.