A Hybrid Model in Dynamic Software Updating for C

The aim has been to develop a model for dynamic updating of software. A major difficulty with dynamic updating is the execution time overhead required for running the extra code embedded within the updatable version of the program. In order to resolve the difficulty, the dynamic updating model, suggested in this paper, activates the updatable version whenever updates are ready. When the updating is finished, the execution carries on with a newly updated program in which there is not any extra code for dynamic updating. Since the updatable version of the program is created at run-time, the proposed model not only increases the performance of the system, but also enables us to update programs that have been compiled and executed without any dynamic updating considerations, before. Our experimental results demonstrate the applicability and performance of the proposed model.

[1]  Ophir Frieder,et al.  On-the-fly program modification: systems for dynamic updating , 1993, IEEE Software.

[2]  Elliott I. Organick,et al.  The multics system: an examination of its structure , 1972 .

[3]  Andrew Baumann Dynamic update for operating systems , 2007 .

[4]  Manuel Oriol,et al.  Practical dynamic software updating for C , 2006, PLDI '06.

[5]  Deepak Gupta,et al.  A Formal Framework for On-line Software Version Change , 1996, IEEE Trans. Software Eng..

[6]  Robert Gray,et al.  Dynamic C++ Classes - A Lightweight Mechanism to Update Code in a Running Program , 1998, USENIX Annual Technical Conference.

[7]  Claes Wikström,et al.  Concurrent programming in ERLANG (2nd ed.) , 1996 .

[8]  Insup Lee,et al.  DYMOS: a dynamic modification system , 1983 .

[9]  Haibo Chen,et al.  Live updating operating systems using virtualization , 2006, VEE '06.

[10]  Stephen Gilmore,et al.  Dynamic ML without dynamic types , 1997 .

[11]  Gavin M. Bierman,et al.  Mutatis Mutandis: Safe and predictable dynamic software updating , 2007, TOPL.

[12]  Robert S. Fabry,et al.  How to design a system in which modules can be changed on the fly , 1976, ICSE '76.

[13]  Alessandro Orso,et al.  Gamma system: continuous evolution of software after deployment , 2002, ISSTA '02.

[14]  Andrew Schultz,et al.  OPUS: Online Patches and Updates for Security , 2005, USENIX Security Symposium.

[15]  Klaus-Peter Löhr,et al.  Dynamic Restructuring in an Experimental Operating System , 1978, IEEE Transactions on Software Engineering.

[16]  Dilma Da Silva,et al.  Providing Dynamic Update in an Operating System , 2005, USENIX Annual Technical Conference, General Track.

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

[18]  Andrew Baumann,et al.  Improving dynamic update for operating systems , 2005, SOSP '05.

[19]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[20]  Deepak Gupta,et al.  On‐line software version change using state transfer between processes , 1993, Softw. Pract. Exp..