*** Welcome to piglix ***

Dynamic software updating


In computer science, dynamic software updating (DSU) is a field of research pertaining to upgrading programs while they are running. DSU is not currently widely used in industry. However, researchers have developed a wide variety of systems and techniques for implementing DSU. These systems are commonly tested on real-world programs.

Current operating systems and programming languages are typically not designed with DSU in mind. As such, DSU implementations commonly either utilize existing tools, or implement specialty compilers. These compilers preserve the semantics of the original program, but instrument either the source code or object code to produce a dynamically updateable program. Researchers compare DSU-capable variants of programs to the original program to assess safety and performance overhead.

Any running program can be thought of a tuple , where is the current program state and is the current program code. Dynamic software updating systems transform a running program to a new version . In order to do this, the state must be transformed into the representation expects. This requires a state transformer function. Thus, DSU transforms a program to . An update is considered valid if and only if the running program can be reduced to a point tuple that is reachable from the starting point of the new version of the program, .


...
Wikipedia

...