Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1997-05-28
2001-02-13
Coulter, Kenneth R. (Department: 2758)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C709S241000
Reexamination Certificate
active
06189145
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to a method of applying patches to computer program code concurrently with its execution on a machine and, more particularly, to a method of applying such concurrent patches to the logical partition manager of a logically partitioned system.
2. Description of the Related Art
Logically partitioned computer systems are well known in the art. Examples of such logically partitioned systems are described in U.S. Pat. No. 4,564,903 (Guyette et al.), U.S. Pat. No. 4,843,541 (Bean et al.), and U.S. Pat. No. 5,564,040 (Kubala), incorporated herein by reference. Commercial embodiments of logically partitioned systems include those sold by the assignee of this application under the trademarks Processor Resource/Systems Manager and PR/SM.
Logical partitioning allows the establishment of a plurality of system images within a single physical computer system. Each system image, in turn, is capable of operating as if it were a separate and independent computer system. That is, each logical partition can be independently reset, initially loaded with an operating system that is potentially different for each logical partition, and operate with different software programs using different input/output (I/O) devices. Logical partitioning is in common use today because it provides its users with flexibility to change the number of logical partitions in use and the amount of physical system resources assigned to each partition, in some cases while the entire system continues to operate.
Computer users have long had a need for continuous non-disrupted operation. Activation of logical partition manager patches has, until now, required a power-on reset (POR), thereby disrupting system operation. It would be desirable, however, to have a means for applying program patches to logical partition manager code concurrently with its execution.
The copending application of K. U. Chang et al., Ser. No. 08/550,121, still pending filed Oct. 27, 1995, entitled “Concurrent Patch to Logical Partition Manager of a Logically Partitioned System” and incorporated herein by reference, discloses a method of replacing a current version of a program module with a replacement version of the module concurrently with the execution of the program on a computer system. For each entry point within the current version of said module to which the program may make address reference, a corresponding entry point within the replacement version of the module is determined. While execution of the program is suspended, each address reference in the program to an entry point within the current version of the module is replaced with an address reference to the corresponding entry point within the replacement version of the module. Execution of the program is resumed when each address reference to the current module has been replaced with one to the replacement module.
The invention described in the copending application of Chang et al. permits the application of concurrent patches to program code such as the code of a logical partition manager. However, a significant subset of potential fixes that could be made to the logical partition manager of a logically partitioned system cannot be applied concurrently. These problem fixes, which can now be made only via disruptive patch, require as part of their implementation execution of such tasks as storage allocation or table initialization. The concurrent patch procedure described in the Chang et al. application is limited by the requirement that these functions be performed only during the initialization phase of the logical partition manager. Because of this limitation, patches requiring, for example, storage allocation prior to their application must either be patched disruptively or have their activation delayed until after an initialization of the logical partition manager subsequent to patch application.
SUMMARY OF THE INVENTION
The present invention is an enhancement of the system described in the copending Chang et al. application, Ser. No. 08/550,121 still pending.
In accordance with the present invention, at the end of the application of a concurrent patch to a program such as a logical partition manager, a patch initialization module is invoked. This new module is called after all changed address constants have been updated and before gathered central processors are released to do other work.
The patch initialization module performs functions such as storage allocation, table initialization, and feature detection that are performed prior to the application of any given concurrently applied patch. The developer of a concurrent patch to a program replicates, in this new module, those portions of the patch which add or change functions performed by the initialization phase of the patched program.
A bit vector is maintained which governs the execution of the new functions being added to the patch initialization module. Any code added to this new module is executed only once per instantiation of the program being patched.
All the bits in the bit vector are initialized to zero. Each patch which requires a function performed updates the bit vector so that subsequently applied patches will bypass execution of the initialization code associated with the patch. Thus, when the initialization portion of a patch is executed, the pertinent bit is set so that subsequent execution (as might occur with another concurrent patch session) is precluded. The accompanying changes to the initialization phase of the patched program incorporate an updated bit vector where any bits for applied patches (which include changes to the initialization phase of the patched program) are set.
The present invention thus increases the scope of patches that can be applied concurrently, over and above those possible in the system described in Chang et al.
REFERENCES:
patent: 4028679 (1977-06-01), Divine
patent: 4028683 (1977-06-01), Divine et al.
patent: 4028684 (1977-06-01), Divine et al.
patent: 4141068 (1979-02-01), Mager et al.
patent: 4319343 (1982-03-01), Powell
patent: 4542453 (1985-09-01), Patrick et al.
patent: 4564903 (1986-01-01), Guyette et al.
patent: 4603399 (1986-07-01), Cheek et al.
patent: 4843541 (1989-06-01), Bean et al.
patent: 5204960 (1993-04-01), Smith et al.
patent: 5339430 (1994-08-01), Lundin et al.
patent: 5359730 (1994-10-01), Marron
patent: 5367683 (1994-11-01), Brett
patent: 5379429 (1995-01-01), Hirasawa et al.
patent: 5410703 (1995-04-01), Nilsson et al.
patent: 5421017 (1995-05-01), Scholz et al.
patent: 5481713 (1996-01-01), Wetmore et al.
patent: 5537598 (1996-07-01), Kukula et al.
patent: 5594857 (1997-01-01), King et al.
patent: 5613133 (1997-03-01), Bell et al.
patent: 2 043 308 (1979-08-01), None
patent: 3-192947 (1991-08-01), None
patent: 7-152575 (1995-06-01), None
patent: WO 94/27219 (1994-11-01), None
“A Compiler for Program Patches” by A. Marron, Research Disclosure, Nov. 1992, No. 343, Kenneth Mason Publications Ltd., England.
“Attributed Transformational Code Generation for Dynamic Compilers” by Boyland et al., Code Generation-Concepts, Tool, Techniques, Proceedings of The International Workshop—1992, pp. 227-254.
Bellin, Jr. Richard A.
Kubala Jeffrey P.
Siegel Ira G.
Coulter Kenneth R.
International Business Machines - Corporation
Kinnaman, Jr. William
LandOfFree
Concurrent patch to logical partition manager of a logically... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Concurrent patch to logical partition manager of a logically..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Concurrent patch to logical partition manager of a logically... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2581106