ACM Home Page
Please provide us with feedback. Feedback
Safe and timely updates to multi-threaded programs
Full text PdfPdf (495 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation table of contents
Dublin, Ireland
SESSION: Adaptation table of contents
Pages 13-24  
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
Authors
Iulian Neamtiu  University of California, Riverside, Riverside, CA, USA
Michael Hicks  University of Maryland, College Park, College Park, MD, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 30,   Downloads (12 Months): 137,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1542476.1542479
What is a DOI?

ABSTRACT

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
 
3
4
 
5
 
6
7
8
 
9
K42. The K42 Project. http://www.research.ibm.com/K42/.
 
10
 
11
Kristis Makris and Rida Bazzi. Multi-threaded dynamic software updates using stack reconstruction. In phUSENIX ATC, 2009.
12
 
13
Iulian Neamtiu. phPractical Dynamic Software Updating. PhD thesis, University of Maryland, College Park, August 2008.
 
14
Iulian Neamtiu and Michael Hicks. Safe and timely updates to multi-threaded programs. Technical report, UC Riverside, June 2009.
15
16
17
18
 
19
 
20
C. Soules, J. Appavoo, K. Hui, et al. System support for online reconfiguration. In phUSENIX ATC, 2003.
21
22
 
23
Jean-Pierre Talpin and Pierre Jouvelot. Polymorphic type, region and effect inference. phJFP, 2, 1992.
 
24
Chris Walton. phAbstract Machines for Dynamic Computation. PhD thesis, University of Edinburgh, 2001. ECS-LFCS-01-425.


Collaborative Colleagues:
Iulian Neamtiu: colleagues
Michael Hicks: colleagues