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 条
  • [21] A General-purpose Parallel and Heterogeneous Task Programming System for VLSI CAD
    Huang, Tsung-Wei
    2020 IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER AIDED-DESIGN (ICCAD), 2020,
  • [22] Alloy*: a general-purpose higher-order relational constraint solver
    Aleksandar Milicevic
    Joseph P. Near
    Eunsuk Kang
    Daniel Jackson
    Formal Methods in System Design, 2019, 55 : 1 - 32
  • [23] General-purpose controller for multiple types of magnetic bearing rotor systems
    Xu, Cheng
    Zhao, Feng
    Xu, Guxuan
    Lian, Guangkun
    ENERGY REPORTS, 2023, 9 : 345 - 354
  • [24] Blockchain as a General-Purpose Technology: Patentometric Evidence of Science, Technologies, and Actors
    Ozcan, Sercan
    Unalan, Serhan
    IEEE TRANSACTIONS ON ENGINEERING MANAGEMENT, 2022, 69 (03) : 792 - 809
  • [25] Silicon-based optoelectronics for general-purpose matrix computation: a review
    Xu, Pengfei
    Zhou, Zhiping
    ADVANCED PHOTONICS, 2022, 4 (04):
  • [26] Automating Object Transformations for Dynamic Software Updating
    Magill, Stephen
    Hicks, Michael
    Subramanian, Suriya
    McKinley, Kathryn S.
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 265 - 280
  • [27] An All-Optical General-Purpose CPU and Optical Computer Architecture
    Kissner, Michael
    Del Bino, Leonardo
    Pasler, Felix
    Caruana, Peter
    Ghalanos, George
    JOURNAL OF LIGHTWAVE TECHNOLOGY, 2024, 42 (22) : 7999 - 8013
  • [28] Accelerator: Using data parallelism to program GPUs for general-purpose uses
    Tarditi, David
    Puri, Sidd
    Oglesby, Jose
    ACM SIGPLAN NOTICES, 2006, 41 (11) : 325 - 335
  • [29] 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
  • [30] 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