A Hybrid Model in Dynamic Software Updating for C

  • Mehdi Jalili
  • Saeed Parsa
  • Habib Seifzadeh
Part of the Communications in Computer and Information Science book series (CCIS, volume 59)


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.


dynamic software updating state-transfer programming language 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 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. 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. 4.
    Lee, I.: DYMOS: A Dynamic Modification System. PhD thesis, University of Wisconsin-Madison (1983)Google Scholar
  5. 5.
  6. 6.
    Gupta, D., Jalote, P.: On-line software version change using state transfer between processes. Software - Practice and Experience 23(9), 949–964 (1993)CrossRefGoogle Scholar
  7. 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)CrossRefGoogle Scholar
  8. 8.
    Ksplice: Rebootless Linux kernel security updates,
  9. 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. 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. 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. 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. 13.
    Neamtiu, I.: Practical Dynamic Software Updating for C. PhD thesis, Department of Computing Science, University of Maryland, USA (2008)Google Scholar
  14. 14.
    Hicks, M.: Dynamic Software Updating. PhD thesis, Department of Computer and Information Science, University of Pennsylvania, USA (2001)Google Scholar
  15. 15.
    Segal, M.E., Frieder, O.: On-the-fly program modification: Systems for dynamic updating. IEEE Software 10(2), 53–65 (1993)CrossRefGoogle Scholar
  16. 16.
    Organick, E.I.: The Multics System: An Examination of its Structure. MIT Press, Cambridge (1972)Google Scholar
  17. 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. 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. 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. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Mehdi Jalili
    • 1
  • Saeed Parsa
    • 2
  • Habib Seifzadeh
    • 3
  1. 1.Department of Computer EngineeringIslamic Azad University – Soofian BranchSoofianIran
  2. 2.Department of Computer EngineeringIran University of Science and TechnologyTehranIran
  3. 3.Computer Engineering FacultyIslamic Azad University- Najafabad BranchNajafabadIran

Personalised recommendations