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 条
  • [31] Regression verification for multi-threaded programs (with extensions to locks and dynamic thread creation)
    Sagar Chaki
    Arie Gurfinkel
    Ofer Strichman
    Formal Methods in System Design, 2015, 47 : 287 - 301
  • [32] An Architecture for Safe and Efficient Multi-threaded Robot Software
    Kazanzides, Peter
    Deguet, Anton
    Kapoor, Ankur
    2008 IEEE INTERNATIONAL CONFERENCE ON TECHNOLOGIES FOR PRACTICAL ROBOT APPLICATIONS, 2008, : 89 - 93
  • [33] Safe locking for multi-threaded Java']Java with exceptions
    Johnsen, Einar Broch
    Thi Mai Thuong Tran
    Owe, Olaf
    Steffen, Martin
    JOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMING, 2012, 81 (03): : 257 - 283
  • [34] MuTT: a Multi-Threaded Tracer for Java']Java Programs
    Liu, Dapeng
    Xu, Shaochun
    PROCEEDINGS OF THE 8TH IEEE/ACIS INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION SCIENCE, 2009, : 949 - +
  • [35] The Optimum Leakage Principle for Analyzing Multi-threaded Programs
    Chen, Han
    Malacaria, Pasquale
    INFORMATION THEORETIC SECURITY, 2010, 5973 : 177 - 193
  • [36] Complexity and information flow analysis for multi-threaded programs
    Tri Minh Ngo
    Huisman, Marieke
    EUROPEAN PHYSICAL JOURNAL-SPECIAL TOPICS, 2017, 226 (10): : 2375 - 2392
  • [37] Distributed Verification of Multi-threaded C++ Programs
    Edelkamp, Stefan
    Jabbar, Shahid
    Sulewski, Damian
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2008, 198 (01) : 33 - 46
  • [38] Study of common pitfalls in simple multi-threaded programs
    Choi, Sung-Eun
    Lewis, E. Christopher
    SIGCSE Bulletin (Association for Computing Machinery, Special Interest Group on Computer Science Education), 2000, : 325 - 329
  • [39] Interactive visualization environment of multi-threaded parallel programs
    Stein, B
    de Kergommeaux, JC
    PARALLEL COMPUTING: FUNDAMENTALS, APPLICATIONS AND NEW DIRECTIONS, 1998, 12 : 311 - 318
  • [40] Information Flow Security of Multi-Threaded Distributed Programs
    Focardi, Riccardo
    Centenaro, Matteo
    PLAS'08: PROCEEDINGS OF THE ACM SIGPLAN THIRD WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY, 2008, : 113 - 124