System and method for using virtual memory for redirecting auxilliary memory operations
AssigneeMicrosoft Corporation
InventorJeffrey M. J. Noyle
Life of this patent
Estimating the term…
Abstract
A method for using virtual memory for redirecting auxiliary memory operations redirects the auxiliary memory write operations of a process to a buffer after capturing the state of the auxiliary memory at various times during the method in three buffers. After the write operations have ended, the auxiliary memory is reconstructed into one of the buffers by comparing the contents of the buffers to each other. The reconstructed memory is then available when the process next regains control of the auxiliary memory.
Claims26
A method for redirecting and reconstructing writing operations directed to a portion of a memory from a process running in a computer, comprising:
- storing a pre-redirection copy of said portion of said memory in a pre-redirection buffer and a redirection copy of the contents of said portion of said memory in a redirection buffer;
- redirecting writing operations to write data to said redirection buffer;
- storing a post-redirection copy of the contents of said portion of said memory in a post-redirection buffer after said step of redirecting writing operations;
- and
- reconstructing said portion of said memory using said pre-redirection buffer, said redirection buffer, and said post-redirection buffer.
2 The method of claim 1, where said step of reconstruction comprises, for each memory location in said portion of said memory:
- determining if the contents of the corresponding memory location of said pre-redirection buffer are different from the contents of the corresponding memory location of said post-redirection buffer;
- if said contents of said corresponding location of said pre-redirection buffer are different from said contents of said corresponding memory location of said post-redirection buffer, determining if the contents of the corresponding memory location of said redirection buffer are equal to said corresponding memory location of said pre-redirection buffer;
- and
- if said contents of said corresponding location of said pre-redirection buffer are different from said contents of said corresponding memory location of said post-redirection buffer and said contents of said corresponding memory location of said redirection buffer are equal to said corresponding memory location of said pre-redirection buffer, storing the contents of said corresponding memory location of said post-redirection buffer in the corresponding memory location of said redirection buffer.
A computer-readable medium having stored thereon a plurality of computer-executable instructions comprising instructions for performing the redirection and reconstruction of writing operations directed to a portion of a memory from a process running in a computer system, comprising:
- storing a pre-redirection copy of said portion of said memory in a pre-redirection buffer and a redirection copy of the contents of said portion of said memory in a redirection buffer;
- redirecting writing operations to write data to said redirection buffer;
- storing a post-redirection copy of the contents of said portion of said memory in a post-redirection buffer after said step of redirecting writing operations;
- and
- reconstructing said portion of said memory using said pre-redirection buffer, said redirection buffer, and said post-redirection buffer.
A system for redirecting and reconstructing writing operations directed to a portion of a memory from a process running in a computer system, comprising:
- a storage module that stores a pre-redirection buffer, a redirection buffer, and a post-redirection buffer;
- a redirection module that, sequentially, stores a copy of the contents of said portion of said memory in said pre-redirection buffer and said redirection buffer, redirects said writing operations to said redirection buffer, and stores a copy of the contents of said portion of said memory in post-redirection buffer;
- and
- a reconstruction module that reconstructs said portion of said memory using said pre-redirection buffer, said redirection buffer, and said post-redirection buffer.
A computer-readable medium adapted for use in redirecting and reconstructing writing operations directed to a portion of memory from a process running in a computer, said computer-readable medium having stored thereon one or more data structures comprising:
- a pre-redirection buffer that receives a copy of said portion of memory before redirection of said writing operations occurs;
- a post-redirection buffer that receives a copy of said portion of memory after redirection of said writing operations occurs;
- and
- a redirection buffer that receives a copy of said portion of memory before redirection of said writing operations occurs, to which writing operations are redirected, and in which reconstruction of said portion of said memory occurs.
Dependencies are inferred from the claim text.