A Framework for Practical Dynamic Software Updating

被引:8
|
作者
Chen, Gang [1 ,2 ]
Jin, Hai [1 ]
Zou, Deqing [1 ]
Liang, Zhenkai [3 ]
Zhou, Bing Bing [4 ]
Wang, Hao [1 ]
机构
[1] Huazhong Univ Sci & Technol, Sch Comp Sci & Technol, Serv Comp Technol & Syst Lab, Cluster & Grid Comp Lab, Wuhan 430074, Peoples R China
[2] Wuhan Second Ship Design & Res Inst, Wuhan, Peoples R China
[3] Natl Univ Singapore, Sch Comp, Dept Comp Sci, Singapore 117548, Singapore
[4] Univ Sydney, Ctr Distributed & High Performance Comp, Sch Informat Technol, Sydney, NSW 2006, Australia
基金
美国国家科学基金会;
关键词
Dynamic software updating; stack updating; patching;
D O I
10.1109/TPDS.2015.2430854
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Dynamic software updating (DSU) enables a program to be patched on the fly without being shutdown. This paper addresses the practicality problem of the recent research on DSU systems, and presents Replus, a new DSU system that balances practicality and functionality. Replus aims to retain backward binary compatibility and support multi-threaded programs. In addition, it does not require customers to have developer-level software knowledge. More importantly, without specific compiler support, Replus can patch programs that are difficult to be updated at runtime, as well as programs that may incur an indefinite delay in DSU. The key technique of our solution is to update the stack elements for the patched program using two new mechanisms: Immediate Stack Updating, which immediately updates the stack of a thread, and timely stack updating, which only updates the stack frames of the necessary functions without affecting others. Replus also develops an Instruction Level Updating mechanism, which is more efficient for certain security patches. We used popular server applications as test suites to evaluate the effectiveness of Replus. The experimental results demonstrated that Replus can successfully update all the test suites with negligible impact on application performance.
引用
收藏
页码:941 / 950
页数:10
相关论文
共 50 条
  • [1] Practical dynamic software updating for C
    Neamtiu, Iulian
    Hicks, Michael
    Stoyle, Gareth
    Oriol, Manuel
    ACM SIGPLAN NOTICES, 2006, 41 (06) : 72 - 83
  • [2] Dynamic software updating
    Hicks, M
    Moore, JT
    Nettles, S
    ACM SIGPLAN NOTICES, 2001, 36 (05) : 13 - 23
  • [3] Dynamic software updating
    Hicks, M
    Nettles, S
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2005, 27 (06): : 1049 - 1096
  • [4] Challenges in Dynamic Software Updating
    Mlinaric, Danijel
    TEM JOURNAL-TECHNOLOGY EDUCATION MANAGEMENT INFORMATICS, 2020, 9 (01): : 117 - 128
  • [5] A survey of dynamic software updating
    Seifzadeh, Habib
    Abolhassani, Hassan
    Moshkenani, Mohsen Sadighi
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2013, 25 (05) : 535 - 568
  • [6] Formalizing class dynamic software updating
    Zhang, Shi
    Huang, LinPeng
    QSIC 2006: SIXTH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE, PROCEEDINGS, 2006, : 403 - +
  • [7] Towards Practical Release-Level Dynamic Software Updating on Stock Java']Java Evaluating an Efficient and Safely Programmable Java']Java Dynamic Updating System
    Neumann, Martin Alexander
    COMPANION PROCEEDINGS OF THE 2016 ACM SIGPLAN INTERNATIONAL CONFERENCE ON SYSTEMS, PROGRAMMING, LANGUAGES AND APPLICATIONS: SOFTWARE FOR HUMANITY (SPLASH COMPANION'16), 2016, : 24 - 26
  • [8] Automating Object Transformations for Dynamic Software Updating
    Magill, Stephen
    Hicks, Michael
    Subramanian, Suriya
    McKinley, Kathryn S.
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 265 - 280
  • [9] Dynamic software updating: a systematic mapping study
    Ahmed, Babiker Hussien
    Lee, Sai Peck
    Su, Moon Ting
    Zakari, Abubakar
    IET SOFTWARE, 2020, 14 (05) : 468 - 481
  • [10] State of the art of dynamic software updating in Java
    Gregersen, Allan Raundahl
    Rasmussen, Michael
    Jørgensen, Bo Nørregaard
    Communications in Computer and Information Science, 2014, 457 : 99 - 113