On line software version change using state transfer between processes
Software—Practice & Experience
DYMOS: A dynamic modification system
SIGSOFT '83 Proceedings of the ACM SIGSOFT/SIGPLAN software engineering symposium on High-level debugging
Practical dynamic software updating for C
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
OPUS: online patches and updates for security
SSYM'05 Proceedings of the 14th conference on USENIX Security Symposium - Volume 14
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
Reboots are for hardware: challenges and solutions to updating an operating system on the fly
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
Hi-index | 0.00 |
Dynamic software update is often achieved by relinking functions of an executing program. However, this approach can lead to unpredictable execution and undesirable behavior, even when type-safety is ensured. This paper presents a language model for single-threaded programs to address this issue. Programs still use functions, but the unit of update is the whole program. A new language construct called a stage is introduced that encapsulates any part of a program along with its execution. Stages are linked together via routes, and an update is effected by making the execution flow switch to the new program version by resetting routes.