Dynamic Software Updates: A VM-centric Approach

被引:19
|
作者
Subramanian, Suriya [1 ]
Hicks, Michael [2 ]
McKinley, Kathryn S. [1 ]
机构
[1] Univ Texas Austin, Austin, TX 78712 USA
[2] Univ Maryland, College Pk, MD 20742 USA
关键词
Languages; Experimentation; Reliability; dynamic software updating; virtual machine technology; garbage collection;
D O I
10.1145/1543135.1542478
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software evolves to fix bugs and add features. Stopping and restarting programs to apply changes is inconvenient and often costly. Dynamic software updating (DSU) addresses this problem by updating programs while they execute, but existing DSU systems for managed languages do not support many updates that occur in practice and are inefficient. This paper presents the design and implementation of JVOLVE, a DSU-enhanced Java VM. Updated programs may add, delete, and replace fields and methods anywhere within the class hierarchy. JVOLVE implements these updates by adding to and coordinating VM classloading, just-in-time compilation, scheduling, return barriers, on-stack replacement, and garbage collection. JVOLVE is safe: its use of bytecode verification and VM thread synchronization ensures that an update will always produce type-correct executions. JVOLVE is flexible: it can support 20 of 22 updates to three open-source programs-Jetty web server, JavaE-mailServer, and CrossFTP server-based on actual releases occurring over 1 to 2 years. JVOLVE is efficient: performance experiments show that JVOLVE incurs no overhead during steady-state execution. These results demonstrate that this work is a significant step towards practical support for dynamic updates in virtual machines for managed languages.
引用
收藏
页码:1 / 12
页数:12
相关论文
共 50 条
  • [21] Decentralized Coordination of Dynamic Software Updates in the Internet of Things
    Weissbach, Martin
    Taing, Nguonly
    Wutzler, Markus
    Springer, Thomas
    Schill, Alexander
    Clarke, Siobhan
    2016 IEEE 3RD WORLD FORUM ON INTERNET OF THINGS (WF-IOT), 2016, : 171 - 176
  • [22] VM/SOFTWARE ENGINEERING
    NICOLAS, B
    VEILLON, A
    ELECTRICAL COMMUNICATION, 1987, 61 (04): : 453 - 458
  • [23] DynOpVm: VM-Based Software Obfuscation with Dynamic Opcode Mapping
    Cheng, Xiaoyang
    Lin, Yan
    Gao, Debin
    Jia, Chunfu
    APPLIED CRYPTOGRAPHY AND NETWORK SECURITY, ACNS 2019, 2019, 11464 : 155 - 174
  • [24] PASTA: Synthesizing Object State Transformers for Dynamic Software Updates
    Zhao, Zelin
    Jiang, Yanyan
    Xu, Chang
    Gu, Tianxiao
    Ma, Xiaoxing
    2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2021), 2021, : 211 - 212
  • [25] TOAST: Automated Testing of Object Transformers in Dynamic Software Updates
    Ze-Lin Zhao
    Di Huang
    Xiao-Xing Ma
    Journal of Computer Science and Technology, 2022, 37 : 50 - 66
  • [26] Dynamic software updates for parallel high-performance applications
    Kim, Dong Kwan
    Tilevich, Eli
    Ribbens, Calvin J.
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2011, 23 (04): : 415 - 434
  • [27] JavA']JavAdaptor: Unrestricted Dynamic Software Updates for Java']Java
    Pukall, Mario
    Grebhahn, Alexander
    Schroeter, Reimar
    Kaestner, Christian
    Cazzola, Walter
    Goetz, Sebastian
    2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, : 989 - 991
  • [28] TOAST: Automated Testing of Object Transformers in Dynamic Software Updates
    Zhao, Ze-Lin
    Huang, Di
    Ma, Xiao-Xing
    JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY, 2022, 37 (01) : 50 - 66
  • [29] Formalizing Consistent Dynamic Updates for Component-based Software
    Xu, Xiaohui
    Zhang, Yi
    2013 3RD INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND NETWORK TECHNOLOGY (ICCSNT), 2013, : 292 - 296
  • [30] Architecture Centric Approach to Enhance Software Testing Management
    Li, Fu-Shiau
    Ma, Wei-Ming
    Chao, Architect
    ISDA 2008: EIGHTH INTERNATIONAL CONFERENCE ON INTELLIGENT SYSTEMS DESIGN AND APPLICATIONS, VOL 1, PROCEEDINGS, 2008, : 654 - 659