الأحد، 8 يونيو 2008


Feedback
Dynamic software updating
Full text
Pdf (1.44 MB)
Source
ACM SIGPLAN Notices archiveVolume 36 , Issue 5 (May 2001) table of contents
Pages: 13 - 23
Year of Publication: 2001
ISSN:0362-1340 Also published in ...
Authors
Michael Hicks
Computer and Information Science Department, University of Pennsylvania
Jonathan T. Moore
Computer and Information Science Department, University of Pennsylvania
Scott Nettles
Electrical and Computer Engineering Department, University of Texas at Austin
Publisher
ACM New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4, Downloads (12 Months): 39, Citation Count: 24
Additional Information:
abstract references cited by index terms collaborative colleagues peer to peer
Tools and Actions:
Review this Article Save this Article to a Binder Display Formats: BibTex EndNote ACM Ref
DOI Bookmark:
Use this link to bookmark this Article: http://doi.acm.org/10.1145/381694.378798What is a DOI?
ABSTRACT
Many important applications must run continuously and without interruption, yet must be changed to fix bugs or upgrade functionality. No prior general-purpose methodology for dynamic updating achieves a practical balance between flexibility, robustness, low overhead, and ease of use.
We present a new approach for C-like languages that provides type-safe dynamic updating of native code in an extremely flexible manner (code, data, and types may be updated, at programmer-determined times) and permits the use of automated tools to aid the programmer in the updating process. Our system is based on dynamic patches that both contain the updated code and the code needed to transition from the old version to the new. A novel aspect of our patches is that they consist of verifiable native code (e.g. Proof-Carrying Code [17] or Typed Assembly Language [16]), which is native code accompanied by annotations that allow on-line verification of the code's safety. We discuss how patches are generated mostly automatically, how they are applied using dynamic-linking technology, and how code is compiled to make it updateable.
To concretely illustrate our system, we have implemented a dynamically-updateable web server, FlashEd. We discuss our experience building and maintaining FlashEd. Performance experiments show that for FlashEd, the overhead due to updating is typically less than 1%.

ليست هناك تعليقات: