Active DSU: Dynamic Software Updates for Active Functions

被引:0
作者
Stromback, Filip [1 ]
Varro, Daniel [1 ]
机构
[1] Linkoping Univ, Linkoping, Sweden
来源
PROCEEDINGS OF THE 2024 ACM SIGPLAN INTERNATIONAL SYMPOSIUM ON NEW IDEAS, NEW PARADIGMS, AND REFLECTIONS ON PROGRAMMING AND SOFTWARE, ONWARD! 2024 | 2024年
关键词
dynamic software updating; live programming; active functions; stack rewriting;
D O I
10.1145/3689492.3690046
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Dynamic Software Updating (DSU) is a technique for updating programs without restarting them. It is useful in systems that provide live programming or in system with high availability needs. As a common limitation, existing DSU systems cannot update active functions. Hence, they are unable to update long-running functions, such as the main loop in a web server, or a state machine in an embedded system implemented as a loop. Updating active functions is challenging as it requires updating local variables and control flow to create a consistent state in the new version of the function. In this paper, we propose Active DSU, which updates the call stack to migrate data and control flow of active functions without the need to wait for the program to reach a particular state beforehand. This is achieved by replacing return addresses with stubs to avoid moving other stack frames on the call stack. Active DSU can migrate control flow automatically without input from the programmer in most cases.
引用
收藏
页码:26 / 37
页数:12
相关论文
共 22 条
  • [1] [Anonymous], 2009, P 2 INT WORKSH HOT T, DOI DOI 10.1145/1656437
  • [2] Arnold J, 2009, EUROSYS'09: PROCEEDINGS OF THE FOURTH EUROSYS CONFERENCE, P187
  • [3] ISLUS: An Immediate and Safe Live Update System for C Program
    Chen, Zhikun
    Qiang, Weizhong
    [J]. 2017 IEEE SECOND INTERNATIONAL CONFERENCE ON DATA SCIENCE IN CYBERSPACE (DSC), 2017, : 267 - 274
  • [4] Automating Live Update for Generic Server Programs
    Giuffrida, Cristiano
    Iorgulescu, Clin
    Tamburrelli, Giordano
    Tanenbaum, Andrew
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2017, 43 (03) : 207 - 225
  • [5] Low-disruptive dynamic updating of Java']Java applications
    Gu, Tianxiao
    Cao, Chun
    Xu, Chang
    Ma, Xiaoxing
    Zhang, Linghao
    Lu, Jian
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2014, 56 (09) : 1086 - 1098
  • [6] Gu Tianxiao, 2018, LEIBNIZ INT P INFORM, V109
  • [7] Kitsune: Efficient, General-Purpose Dynamic Software Updating for C
    Hayden, Christopher M.
    Saur, Karla
    Smith, Edward K.
    Hicks, Michael
    Foster, Jeffrey S.
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 36 (04): : 1 - 38
  • [8] Dynamic software updating
    Hicks, M
    Moore, JT
    Nettles, S
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (05) : 13 - 23
  • [9] PSU: A Framework for Dynamic Software Updates in Multi-threaded C-Language Programs
    Karpoff, Marcus
    Amaral, Jose Nelson
    Wang, Kai-Ting Amy
    Ho, Rayson
    Dobry, Brice
    [J]. 2020 IEEE 32ND INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD 2020), 2020, : 233 - 240
  • [10] Automating Object Transformations for Dynamic Software Updating
    Magill, Stephen
    Hicks, Michael
    Subramanian, Suriya
    McKinley, Kathryn S.
    [J]. ACM SIGPLAN NOTICES, 2012, 47 (10) : 265 - 280