Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Baumann, A.: Dynamic Update for Operating Systems. PhD thesis, Department of Computer Science and Engineering, University of New South Wales, Australia (2007)
Fabry, R.S.: How to design a system in which modules can be changed on the fly. In: Proceedings of the 2nd ICSE, San Francisco, CA, USA, pp. 470–476 (1976)
Goullon, H., Isle, R., Lohr, K.P.: Dynamic restructuring in an experimental operating system. In: Proceedings of the 3rd ICSE, Atlanta, GA, USA, pp. 295–304 (1978)
Lee, I.: DYMOS: A Dynamic Modification System. PhD thesis, University of Wisconsin-Madison (1983)
GNU Debugger, http://www.gnu.org/software/gdb/documentation/
Gupta, D., Jalote, P.: On-line software version change using state transfer between processes. Software - Practice and Experience 23(9), 949–964 (1993)
Gupta, D., Jalote, P., Barua, G.: A formal framework for on-line software version change. IEEE Transactions on Software Engineering 22(2), 120–131 (1996)
Ksplice: Rebootless Linux kernel security updates, http://web.mit.edu/ksplice/
Baumann, A., Heiser, G., Appavoo, J., Silva, D.D., Krieger, O., Wisniewski, R.W., Kerr, J.: Providing dynamic update in an operating system. In: USENIX Annual Technical Conference, General Track, pp. 279–291 (2005)
Chen, H., Chen, R., Zhang, F., Zang, B., Yew, P.C.: Live updating operating systems using virtualization. In: VEE 2006: Proceedings of the 2nd international conference on Virtual execution environments, New York, NY, USA, pp. 35–44 (2006)
Neamtiu, I., Hicks, M., Stoyle, G., Oriol, M.: Practical dynamic software updating for C. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, Ottawa, Canada (2006)
Hjalmtysson, G., Gray, R.: Dynamic C++ classes—a lightweight mechanism to update code in a running program. In: Proceedings of the 1998 Annual USENIX Technical Conference, pp. 65–76 (1998)
Neamtiu, I.: Practical Dynamic Software Updating for C. PhD thesis, Department of Computing Science, University of Maryland, USA (2008)
Hicks, M.: Dynamic Software Updating. PhD thesis, Department of Computer and Information Science, University of Pennsylvania, USA (2001)
Segal, M.E., Frieder, O.: On-the-fly program modification: Systems for dynamic updating. IEEE Software 10(2), 53–65 (1993)
Organick, E.I.: The Multics System: An Examination of its Structure. MIT Press, Cambridge (1972)
Altekar, G., Bagrak, I., Burstein, P., Schultz, A.: OPUS: Online patches and updates for security. In: Proceedings of the 14th USENIX Security Symposium, Baltimore, MD, USA, pp. 287–302 (2005)
Armstrong, J., Virding, R., Wikstrom, C., Williams, M.: Concurrent Programming in ERLANG, 2nd edn., vol. 9, pp. 121–123. Prentice Hall, Englewood Cliffs (1996)
Gilmore, S., Kírlí, D., Walton, C.: Dynamic ML without dynamic types. Technical Report ECS-LFCS-97-378, Department of Computer Science, The University of Edinburgh (1997)
Stoyle, G., Hicks, M., Bierman, G., Sewell, P., Neamtiu, I.: Mutatis Mutandis: Safe and predictable dynamic software updating. In: Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Long Beach, USA (2005)
Orso, A., Liang, D., Harrold, M.J., Lipton, R.: Gamma system: Continuous evolution of software after deployment. In: Proc. of the International Symposium on Software Testing and Analysis, pp. 65–69 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jalili, M., Parsa, S., Seifzadeh, H. (2009). A Hybrid Model in Dynamic Software Updating for C. In: Ślęzak, D., Kim, Th., Kiumi, A., Jiang, T., Verner, J., Abrahão, S. (eds) Advances in Software Engineering. ASEA 2009. Communications in Computer and Information Science, vol 59. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-10619-4_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-10619-4_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-10618-7
Online ISBN: 978-3-642-10619-4
eBook Packages: Computer ScienceComputer Science (R0)