Demonic memory for process histories

  • Authors:
  • P. R. Wilson;T. G. Moher

  • Affiliations:
  • Human-Computer Interaction Laboratory, Dept. of Electrical Engineering and Computer Science, University of Illinois at Chicago, Box 4348 (M/C 154), Chicago, IL;Human-Computer Interaction Laboratory, Dept. of Electrical Engineering and Computer Science, University of Illinois at Chicago, Box 4348 (M/C 154), Chicago, IL

  • Venue:
  • PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
  • Year:
  • 1989

Quantified Score

Hi-index 0.00

Visualization

Abstract

Demonic memory is a form of reconstructive memory for process histories. As a process executes, its states are regularly checkpointed, generating a history of the process at low time resolution. Following the initial generation, any prior state of the process can be reconstructed by starting from a checkpointed state and re-executing the process up through the desired state, thereby exploiting the redundancy between the states of a process and the description of that process (i.e., a computer program).The reconstruction of states is automatic and transparent. The history of a process may be examined as though it were a large two-dimensional array, or address space-time, with a normal address space as one axis and steps of process time as the other. An attempt to examine a state that is not physically stored triggers a “demon” which reconstructs that memory state before access is allowed.Regeneration requires an exact description of the original execution of the process. If the original process execution depends on non-deterministic events (e.g., user input), these events are recorded in an exception list, and are replayed at the proper points during re-execution.While more efficient than explicitly storing all state changes, such a checkpointing system is still prohibitively expensive for many applications; each copy (or snapshot) of the system's state may be very large, and many snapshots may be required. Demonic memory saves both space and time by using a virtual copy mechanism. (Virtual copies share unchanging data with the objects that they are copies of, only storing differences from a prototype or original [MiBK86].) In demonic memory, the snapshot at each checkpoint is a virtual copy of the preceding checkpoint's snapshot. Hence it is called a virtual snapshot. In order to make the virtual snapshot mechanism efficient, state information is initially saved in relatively large units of space and time, on the order of pages and seconds, with single-word/single-step regeneration undertaken only as needed. This permits the costs of indexing and lookup operations to be amortized over many locations.