Patent ID: 7788661

Claim:
A method of applying patches to a first computer program concurrently with its execution on a computer system, the method comprising the steps of: preparing a replacement computer program replacing said first computer program, said first computer program including a plurality of old static data variables, said replacement computer program including said plurality of old static data variables and at least one new static data variable not included in said first computer program, to create a replacement executable code load; loading the replacement executable code load to a reserved memory area of said computer system while the first computer program is executing; relocating each static data variable included in said replacement computer program while the first computer program is executing, wherein relocating comprises, with respect to each said static data variable included in said replacement computer program, (a) if the respective static data variable is an old static data variable, then associating each reference to the respective static data variable in the replacement computer program with a respective memory address in said computer system currently allocated to the respective static data variable for use by said first computer program, and (b) if the respective static data variable is a new static data variable, then allocating a respective unused memory address in said computer system to the respective static data variable and associating each reference to the respective static data variable in the replacement computer program with the respective unused memory address allocated to the respective static data variable; bringing the computer system into a state where temporary data are irrelevant for the execution of the first computer program; and switching the computer system to stop executing the first computer program and begin executing the replacement computer program, said switching being performed after said loading the replacement executable code load and said locating each static data variable included in said replacement computer program.