Safe and Timely Dynamic Updates for Multi-threaded Programs

被引:32
|
作者
Neamtiu, Iulian [1 ]
Hicks, Michael [1 ]
机构
[1] Univ Calif Riverside, Riverside, CA 92521 USA
关键词
dynamic software updating; update safety; update timeliness; multi-threading;
D O I
10.1145/1542476.1542479
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Many dynamic updating systems have been developed that enable a program to be patched while it runs, to fix bugs or add new features. This paper explores techniques for supporting dynamic updates to multi-threaded programs, focusing on the problem of applying an update in a timely fashion while still producing correct behavior. Past work has shown that this tension of safety versus timeliness can be balanced for single-threaded programs. For multi-threaded programs, the task is more difficult because myriad thread interactions complicate understanding the possible program states to which a patch could be applied. Our approach allows the programmer to specify a few program points (e.g., one per thread) at which a patch may be applied, which simplifies reasoning about safety. To improve timeliness, a combination of static analysis and run-time support automatically expands these few points to many more that produce behavior equivalent to the originals. Experiments with thirteen realistic updates to three multi-threaded servers show that we can safely perform a dynamic update within milliseconds when more straightforward alternatives would delay some updates indefinitely.
引用
收藏
页码:13 / 24
页数:12
相关论文
共 50 条
  • [1] Safe and Timely Dynamic Updates for Multi-threaded Programs
    Neamtiu, Iulian
    Hicks, Michael
    ACM SIGPLAN NOTICES, 2009, 44 (06) : 13 - 24
  • [2] 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
    2020 IEEE 32ND INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD 2020), 2020, : 233 - 240
  • [3] Dynamic deadlock analysis of multi-threaded programs
    Bensalem, Saddek
    Havelund, Klaus
    HARDWARE AND SOFTWARE VERIFICATION AND TESTING, 2006, 3875 : 208 - 223
  • [4] A Dynamic Logic for deductive verification of multi-threaded programs
    Beckert, Bernhard
    Klebanov, Vladimir
    FORMAL ASPECTS OF COMPUTING, 2013, 25 (03) : 405 - 437
  • [5] Security Check for Multi-threaded Programs
    Tri Minh Ngo
    Tuan Van Nguyen
    2016 IEEE SIXTH INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND ELECTRONICS (ICCE), 2016, : 465 - 470
  • [6] Information Declassification for Multi-Threaded Programs
    Zhu, Hao
    Zhuang, Yi
    Chen, Xiang
    APPLIED MATHEMATICS & INFORMATION SCIENCES, 2014, 8 (04): : 1911 - 1916
  • [7] A Basis for Verifying Multi-threaded Programs
    Rustan, K.
    Leino, M.
    Mueller, Peter
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2009, 5502 : 378 - 393
  • [8] Information leakage of multi-threaded programs
    Noroozi, Ali A.
    Karimpour, Jaber
    Isazadeh, Ayaz
    COMPUTERS & ELECTRICAL ENGINEERING, 2019, 78 : 400 - 419
  • [9] Probabilistic noninterference for multi-threaded programs
    Sabelfeld, A
    Sands, D
    13TH IEEE COMPUTER SECURITY FOUNDATIONS WORKSHOP, PROCEEDINGS, 2000, : 200 - 214
  • [10] Causal Termination of Multi-threaded Programs
    Kupriyanov, Andrey
    Finkbeiner, Bernd
    COMPUTER AIDED VERIFICATION, CAV 2014, 2014, 8559 : 814 - 830