History cache
- 1 December 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGARCH Computer Architecture News
- Vol. 22 (5) , 11-18
- https://doi.org/10.1145/192537.192541
Abstract
Reverse execution provides access to old states of an executing process. An application of reverse execution can be found in program debugging. When an error is detected, its cause is often hidden in the history of the process. In such situations, it is important to be able to recover and examine past states of the process. Numerous other applications of reverse execution are found in programming environments, in fault-tolerant computing and in speculative computation.Since processes are in general irreversible, the history must be saved in order to provide reverse execution. The main problem in dealing with the history is the amount of data generated. This paper describes a new approach to reverse execution based on a history cache which compacts the history. The performance of the history cache is measured on a simulator. The history cache can compact the history by more than an order of magnitude. Efficient support for reverse execution enables many new techniques such as a generic undo operation, a real-time checkpoint, and fast backtracking.Keywords
This publication has 23 references indexed in Scilit:
- Efficient local search with conflict minimization: a case study of the n-queens problemIEEE Transactions on Knowledge and Data Engineering, 1994
- Design and evaluation of the rollback chip: special purpose hardware for Time WarpIEEE Transactions on Computers, 1992
- A retargetable compiler for ANSI CACM SIGPLAN Notices, 1991
- PROVIDE: a process visualization and debugging environmentIEEE Transactions on Software Engineering, 1988
- A formal approach to undo operations in programming languagesACM Transactions on Programming Languages and Systems, 1986
- Virtual timeACM Transactions on Programming Languages and Systems, 1985
- Towards monolingual programming environmentsACM Transactions on Programming Languages and Systems, 1985
- User Recovery and Reversal in Interactive SystemsACM Transactions on Programming Languages and Systems, 1984
- Backtrack programming techniquesCommunications of the ACM, 1975
- Reversible executionCommunications of the ACM, 1973