Kitsune: Efficient, General-purpose Dynamic Software Updating for C

被引:32
作者
Hayden, Christopher M. [1 ]
Smith, Edward K. [1 ]
Denchev, Michail [1 ]
Hicks, Michael [1 ]
Foster, Jeffrey S. [1 ]
机构
[1] Univ Maryland, College Pk, MD 20742 USA
关键词
Design; Languages; dynamic software updating;
D O I
10.1145/2398857.2384635
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Dynamic software updating (DSU) systems allow programs to be updated while running, thereby permitting developers to add features and fix bugs without downtime. This paper introduces Kitsune, a new DSU system for C whose design has three notable features. First, Kitsune's updating mechanism updates the whole program, not individual functions. This mechanism is more flexible than most prior approaches and places no restrictions on data representations or allowed compiler optimizations. Second, Kitsune makes the important aspects of updating explicit in the program text, making the program's semantics easy to understand while minimizing programmer effort. Finally, the programmer can write simple specifications to direct Kitsune to generate code that traverses and transforms old-version state for use by new code; such state transformation is often necessary, and is significantly more difficult in prior DSU systems. We have used Kitsune to update five popular, open-source, single-and multi-threaded programs, and find that few program changes are required to use Kitsune, and that it incurs essentially no performance overhead.
引用
收藏
页码:249 / 264
页数:16
相关论文
共 50 条
  • [41] Contextual effects for version-consistent dynamic software updating and safe concurrent programming
    Neamtiu, Iulian
    Hicks, Michael
    Foster, Jeffrey S.
    Pratikakis, Polyvios
    [J]. ACM SIGPLAN NOTICES, 2008, 43 (01) : 37 - 49
  • [42] Improving Reliability of Dynamic Software Updating Using Runtime Recovery
    Gu, Tianxiao
    Zhao, Zelin
    Ma, Xiaoxing
    Xu, Chang
    Cao, Chun
    Lu, Jian
    [J]. 2016 23RD ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2016), 2016, : 257 - 264
  • [43] The Effects of Static Analysis for Dynamic Software Updating: An Exploratory Study
    Ahmed, Babiker Hussien
    Lee, Sai Peck
    Su, Moon Ting
    [J]. IEEE ACCESS, 2020, 8 : 35161 - 35171
  • [44] An Algebraic Approach to Formal Analysis of Dynamic Software Updating Mechanisms
    Zhang, Min
    Ogata, Kazuhiro
    Futatsugi, Kokichi
    [J]. 2012 19TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC), VOL 1, 2012, : 664 - 673
  • [45] SafeNet: A methodology for integrating general-purpose unsafe devices in safe-robot rehabilitation systems
    Vicentini, Federico
    Pedrocchi, Nicola
    Malosio, Matteo
    TosattiNational, Lorenzo Molinari
    [J]. COMPUTER METHODS AND PROGRAMS IN BIOMEDICINE, 2014, 116 (02) : 156 - 168
  • [46] μ-DSU: A Micro-Language Based Approach to Dynamic Software Updating
    Cazzola, Walter
    Chitchyan, Ruzanna
    Rashid, Awais
    Shaqiri, Albert
    [J]. COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2018, 51 : 71 - 89
  • [47] General-Purpose Computation Method of a Power Converter for Frequency Characteristics: Application to Stability Analysis of a Grid Inverter
    Takami, Yuki
    Kato, Toshiji
    Inoue, Kaoru
    [J]. IEEE JOURNAL OF EMERGING AND SELECTED TOPICS IN POWER ELECTRONICS, 2017, 5 (04) : 1466 - 1473
  • [48] General-Purpose Algorithm for Two-Material Minimum Feature Size Enforcement of Freeform Nanophotonic Devices
    Jenkins, Ronald P.
    Campbell, Sawyer D.
    Werner, Douglas H.
    [J]. ACS PHOTONICS, 2023, 10 (04): : 845 - 853
  • [49] Graphene Nanoribbon Field-Effect Transistors-Based Digital General-Purpose Input/Output Block
    Filabadi, Hadi Shirvani
    Alidash, Hossein Karimiyan
    [J]. ECS JOURNAL OF SOLID STATE SCIENCE AND TECHNOLOGY, 2020, 9 (06)
  • [50] Extension of the Stream-of-Variation Model for General-Purpose Workholding Devices: Vices and Three-Jaw Chucks
    Moliner-Heredia, Ruben
    Vicente Abellan-Nebot, Jose
    Penarrocha-Alos, Ignacio
    [J]. IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, 2022, 19 (03) : 2216 - 2228