Safe and Timely Dynamic Updates for Multi-threaded Programs

被引:32
|
作者
Neamtiu, Iulian [1 ]
Hicks, Michael [1 ]
机构
[1] Univ Calif Riverside, Riverside, CA 92521 USA
来源
PLDI'09 PROCEEDINGS OF THE 2009 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION | 2009年
关键词
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 条
  • [21] Quantitative Security Analysis for Multi-threaded Programs
    Ngo, Tri Minh
    Huisman, Marieke
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2013, (117): : 34 - 48
  • [22] Compositional Termination Proofs for Multi-threaded Programs
    Popeea, Corneliu
    Rybalchenko, Andrey
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, TACAS 2012, 2012, 7214 : 237 - 251
  • [23] Reduction for Compositional Verification of Multi-Threaded Programs
    Popeea, Corneliu
    Rybalchenko, Andrey
    Wilhelm, Andreas
    2014 FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD), 2014, : 187 - 194
  • [24] A generic approach to the security of multi-threaded programs
    Mantel, H
    Sabelfeld, A
    14TH IEEE COMPUTER SECURITY FOUNDATIONS WORKSHOP, PROCEEDINGS, 2001, : 126 - 142
  • [25] Effective verification of confidentiality for multi-threaded programs
    Ngo, Tri Minh
    Stoelinga, Marielle
    Huisman, Marieke
    JOURNAL OF COMPUTER SECURITY, 2014, 22 (02) : 269 - 300
  • [26] Analyzing the Impact of Change in Multi-threaded Programs
    Chatterjee, Krishnendu
    de Alfaro, Luca
    Raman, Vishwanath
    Sanchez, Cesar
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, PROCEEDINGS, 2010, 6013 : 293 - +
  • [27] Sound Predictive Fuzzing for Multi-threaded Programs
    Guo, Yuqi
    Liang, Zheheng
    Zhu, Shihao
    Wang, Jinqiu
    Yang, Zijiang
    Shen, Wuqiang
    Zhang, Jinbo
    Cai, Yan
    2023 IEEE 47TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE, COMPSAC, 2023, : 810 - 819
  • [28] Lost in abstraction: Monotonicity in multi-threaded programs
    Kaiser, Alexander
    Kroening, Daniel
    Wahl, Thomas
    INFORMATION AND COMPUTATION, 2017, 252 : 30 - 47
  • [29] Reducing the Impact of Intensive Dynamic Memory Allocations in Parallel Multi-Threaded Programs
    Langr, Daniel
    Kocicka, Martin
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2020, 31 (05) : 1152 - 1164
  • [30] Regression verification for multi-threaded programs (with extensions to locks and dynamic thread creation)
    Chaki, Sagar
    Gurfinkel, Arie
    Strichman, Ofer
    FORMAL METHODS IN SYSTEM DESIGN, 2015, 47 (03) : 287 - 301