Abstract

An approach to dynamically updating a computer program, i.e., updating while it is executing, is presented. Dynamic updating is crucial in applications where the cost of stopping and restarting the program makes doing so impractical. The presented system works with programs written in procedural languages such as Pascal and C. It is assumed that computer programs are written in a top-down manner consistent with good software engineering practices. Also assumed is that the underlying computer system logically provides a network-wide sparse virtual address space. Using these assumptions, it is possible to update computer programs with minimum interruption to the running program. By partitioning the address space into a number of version spaces, the handling of multiple simultaneous updates is possible. This allows one update to begin before previous updates complete. Via appropriate mapping mechanisms, old versions of procedures may call new procedures and maintain consistency. An overview of the design and implementation of a working prototype updating system is discussed and a sample updating session is illustrated.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call