Publication | Closed Access
Immediate multi-threaded dynamic software updates using stack reconstruction
102
Citations
23
References
2009
Year
Unknown Venue
Software updates traditionally required applications to be stopped and restarted. Recent works proposed techniques and tools for runtime updates without the need for stop-ping and restarting applications. Such techniques rely on statically determining quiescent points where the global sys-tem state is consistent. However, quiescent points may be conservatively computed or may not occur frequently dur-ing the lifetime of an application resulting in an indefinite delay of runtime updates. Examples of applications with infrequent quiescent points include computationally-bound applications that spend most of their execution in loops, recursive applications, and multi-threaded applications. We introduce and implement a general approach that allows up-dates to be applied at almost any point during application execution. Unlike other existing approaches, our approach applies to multi-nested long-lived loops, recursive functions, multi-threaded applications, and applications actively re-ceiving data from a network socket. At the heart of our approach is a stack reconstruction technique that ensures that all functions on the call stack are updated at the same time, thereby obviating the need to wait for quiescent points to occur. Our updating system, UpStare, compiles appli-cations specifically with the capability to reconstruct their stack and does not depend on static source code type-safety analysis. Additionally it permits execution continuation to proceed from a drastically different algorithm while reusing existing program state.
| Year | Citations | |
|---|---|---|
Page 1
Page 1