Skip to main content

A Hybrid Model in Dynamic Software Updating for C

  • Conference paper
Book cover Advances in Software Engineering (ASEA 2009)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Baumann, A.: Dynamic Update for Operating Systems. PhD thesis, Department of Computer Science and Engineering, University of New South Wales, Australia (2007)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. Lee, I.: DYMOS: A Dynamic Modification System. PhD thesis, University of Wisconsin-Madison (1983)

    Google Scholar 

  5. GNU Debugger, http://www.gnu.org/software/gdb/documentation/

  6. Gupta, D., Jalote, P.: On-line software version change using state transfer between processes. Software - Practice and Experience 23(9), 949–964 (1993)

    Article  Google Scholar 

  7. 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)

    Article  Google Scholar 

  8. Ksplice: Rebootless Linux kernel security updates, http://web.mit.edu/ksplice/

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. Neamtiu, I.: Practical Dynamic Software Updating for C. PhD thesis, Department of Computing Science, University of Maryland, USA (2008)

    Google Scholar 

  14. Hicks, M.: Dynamic Software Updating. PhD thesis, Department of Computer and Information Science, University of Pennsylvania, USA (2001)

    Google Scholar 

  15. Segal, M.E., Frieder, O.: On-the-fly program modification: Systems for dynamic updating. IEEE Software 10(2), 53–65 (1993)

    Article  Google Scholar 

  16. Organick, E.I.: The Multics System: An Examination of its Structure. MIT Press, Cambridge (1972)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Armstrong, J., Virding, R., Wikstrom, C., Williams, M.: Concurrent Programming in ERLANG, 2nd edn., vol. 9, pp. 121–123. Prentice Hall, Englewood Cliffs (1996)

    Google Scholar 

  19. 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)

    Google Scholar 

  20. 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)

    Google Scholar 

  21. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics