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 条
  • [41] Threader: A Verifier for Multi-threaded Programs (Competition Contribution)
    Popeea, Corneliu
    Rybalchenko, Andrey
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, TACAS 2013, 2013, 7795 : 633 - 636
  • [42] Handling information release and erasure in multi-threaded programs
    Jiang, Li
    Ping, Lingdi
    Pan, Xuezeng
    CIS: 2007 INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY, PROCEEDINGS, 2007, : 824 - 828
  • [43] Complexity and information flow analysis for multi-threaded programs
    Tri Minh Ngo
    Marieke Huisman
    The European Physical Journal Special Topics, 2017, 226 : 2375 - 2392
  • [44] Logic of multi-threaded programs for non-interference
    Li, Qin
    Zeng, Qing-Kai
    Yuan, Zhi-Xiang
    Ruan Jian Xue Bao/Journal of Software, 2014, 25 (06): : 1143 - 1153
  • [45] Deterministic Synchronization of Multi-Threaded Programs with Operational Transformation
    Boelmann, Christopher
    Schwittmann, Lorenz
    Weis, Torben
    PROCEEDINGS OF 2014 IEEE INTERNATIONAL PARALLEL & DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW), 2014, : 381 - 390
  • [46] A study of common pitfalls in simple multi-threaded programs
    Choi, SE
    Lewis, EC
    SIGCSE 2000: PROCEEDINGS OF THE THIRTY-FIRST SIGCSE TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2000, 32 (01): : 325 - 329
  • [47] Predicate Abstraction and Refinement for Verifying Multi-Threaded Programs
    Gupta, Ashutosh
    Popeea, Corneliu
    Rybalchenko, Andrey
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 331 - 344
  • [48] Thread-specific heaps for multi-threaded programs
    Steensgaard, B
    ACM SIGPLAN NOTICES, 2001, 36 (01) : 18 - 24
  • [49] AggrePlay: Efficient Record and Replay of Multi-threaded Programs
    Pobee, Ernest
    Chan, W. K.
    ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 567 - 577
  • [50] On the Existence of Probe Effect in Multi-threaded Embedded Programs
    Song, Young Wn
    Lee, Yann-Hang
    2014 INTERNATIONAL CONFERENCE ON EMBEDDED SOFTWARE (EMSOFT), 2014,