Tracking program states when replacing running program modules using dynamic linking

It would be possible to provide uninterrupted service for 24 hours a day if it were possible to replace a program module without having to terminate processes which are providing services. We thus propose a method for controlling replacement of a program module while running. An essential condition for replacing a program module is that no processes be currently executing the program module. It is therefore necessary to track the execution state of the program module by processes. If our replacement method is considered from a practical standpoint, then it is undesirable to create an application program that need be aware of state tracking. However, a problem with conventional state tracking methods has been that the object files, executable files, and the source code of the application program need to be re-created in order for the state to be capable of being tracked. In the present paper, therefore, we propose a method that makes it possible to track state without having to re-create these files and code, by making it a prerequisite that dynamic linking be used as the method for creating the application program, and using the dynamic linking function. In particular, we demonstrate a method whereby during execution of an application program, the dynamic linker automatically detects calls and returns among program modules, which are triggers for transitions in execution state. The proposed method also shows a way to reduce the processing overhead accompanying state tracking. Furthermore, through a process of implementation and assessment, we demonstrate that our proposed method, when contrasted with a conventional method, does not require the creation of an application program that is aware of state tracking, and has a lower effective processing overhead associated with state tracking. © 2006 Wiley Periodicals, Inc. Syst Comp Jpn, 37(10): 22– 34, 2006; Published online in Wiley InterScience (www.interscience.wiley.com). DOI 10.1002/scj.20522

[1]  Hiroshi Yoshida,et al.  Operating System SXO for Continuous Operation , 1992, IFIP Congress.

[2]  Nacho Navarro,et al.  DITools: Application-level Support for Dynamic Extension and Flexible Composition , 2000, USENIX Annual Technical Conference, General Track.

[3]  L. Nagamatsu Runtime software reorganization by traditional OS features , 2000, Proceedings International Symposium on Principles of Software Evolution.

[4]  Scott Nettles,et al.  Dynamic software updating , 2001, PLDI '01.