| Safe and timely updates to multi-threaded programs |
| Full text |
Pdf
(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 |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 30, Downloads (12 Months): 137, Citation Count: 1
|
|
|
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
|
Gautam Altekar , Ilya Bagrak , Paul Burstein , Andrew Schultz, OPUS: online patches and updates for security, Proceedings of the 14th conference on USENIX Security Symposium, p.19-19, July 31-August 05, 2005, Baltimore, MD
|
 |
2
|
|
| |
3
|
Andrew Baumann , Jonathan Appavoo , Robert W. Wisniewski , Dilma Da Silva , Orran Krieger , Gernot Heiser, Reboots are for hardware: challenges and solutions to updating an operating system on the fly, 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference, p.1-14, June 17-22, 2007, Santa Clara, CA
|
 |
4
|
Haibo Chen , Rong Chen , Fengzhe Zhang , Binyu Zang , Pen-Chung Yew, Live updating operating systems using virtualization, Proceedings of the 2nd international conference on Virtual execution environments, June 14-16, 2006, Ottawa, Ontario, Canada
[doi> 10.1145/1134760.1134767]
|
| |
5
|
|
| |
6
|
|
 |
7
|
Tim Harris , Simon Marlow , Simon Peyton-Jones , Maurice Herlihy, Composable memory transactions, Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 15-17, 2005, Chicago, IL, USA
[doi> 10.1145/1065944.1065952]
|
 |
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
|
Iulian Neamtiu , Michael Hicks , Gareth Stoyle , Manuel Oriol, Practical dynamic software updating for C, Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, June 11-14, 2006, Ottawa, Ontario, Canada
|
 |
17
|
Iulian Neamtiu , Michael Hicks , Jeffrey S. Foster , Polyvios Pratikakis, Contextual effects for version-consistent dynamic software updating and safe concurrent programming, Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 07-12, 2008, San Francisco, California, USA
|
 |
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.
|
|