2011-01-11 9 views
0

this SuperUser questionを参照してください。要約すると、VMソフトウェアを使用すると、(VMイメージ全体を保存することによって)任意のアプリケーションの状態を保存できます。任意のアプリケーション状態を保存するためのアプリケーションの作成

Windows用のソフトウェアを作成して、任意のアプリケーション状態を保存してリロードすることは可能でしょうか?もしそうなら(そしておそらくそう)、それは何を伴いますか?

可能であれば、私はC#のような高水準言語でこれを実装しようと考えています。私は何か他のものを使用した場合、メモリレジスタをダンプして(またはアプリケーションメモリブロック全体をダンプして)どこかのファイルにダンプし、どこかにリフレッシュ状態に戻す必要があると思います。

どうすればこのことを構築できますか?

+0

"Windows用のソフトウェアを作成して、任意のアプリケーションの状態を保存してリロードすることは可能でしょうか?もしそうならば(おそらくそう)、何が伴いますか? - はい、それはVMと呼ばれています! VMがニーズを満たしていないのはなぜですか?また、アプリケーションの状態を保存する必要があるのはなぜですか? –

+0

そして、管理された言語(http://en.wikipedia.org/wiki/Java_PC)でVMを実装することは可能です。だから、質問が世話をするように見える。 –

+0

VMはOSを内部で実行します。私はそのようなオーバーヘッドを探しているわけではありません。終了時に状態をネイティブに保存しないプログラムがいくつかありますが、その状態を保存したいと思っています。それが私の後です。確かに、私は素人のWindowsを使用して、VMの中に自分の「本当の」コンピュータを置くことができました。しかし、それはリソース(メモリ/ CPU)の無駄であるようです。 – ashes999

答えて

1

これは起こりそうにないでしょう。特にC#ではそうではありません。管理されたコードの低レベルの要件に対処することはほとんど不可能です。実際に単一のプロセスを保存するだけではなく、仮想マシン全体の状態を保存することは、マシンメモリ全体をダンプし、一貫したディスクイメージを確保するだけです。

単一のプロセスを復元すると、プロセスが参照するオブジェクト(カーネル空間でファイル/メモリ/ mutex /ハンドルなど)が参照されているものも含め、すべての共有オブジェクトがロードされます。これはWindowsの内部を深く掘り下げることを意味します。

私が言っていることは、可能ですが、その努力はとてつもないものであり、価値がないと思われます。

+0

mutex、スレッド、ファイルハンドルなどを割り引いても、私はあなたが正しいと思います。それは価値があるより多くの仕事です。 – ashes999

関連する問題