6

すべての変数とプログラムの現在の状態をファイルにダンプしてから、別のコンピューターに復元することは可能ですか?!
私が Python または Ruby で小さなプログラムを持っているとしましょう。特定の条件が与えられると、現在のすべての変数と現在の状態がファイルにダンプされます。
後で、別のマシンに再度ロードして、そこに戻ることができました。
VMスナップショット機能のようなもの。
このような質問をここで見ましたが、Java 関連で、現在の JVM を保存し、別の JVM で再度実行します。ほとんどの人は、そのようなものは何もないと言いましたが、テラコッタだけが何かを持っていましたが、まだ完全ではありませんでした. ありがとうございました。

私が達成しようとしていることを明確にするために:
2 つ以上の Raspberry Pi が与えられた場合、Pi nº1 でソフトウェアを実行しようとしていますが、それで何か違うことをする必要がある場合は、ソフトウェアを Pi nº2 に移動する必要があります。データ損失なし、わずかな休憩時間のみ。
など、無制限の数のマシンに。

4

3 に答える 3

2

私が車輪を再発明しようとしていたその継ぎ目。
このリンクを確認してください:
http://en.wikipedia.org/wiki/Application_checkpointing#DMTCP

http://www.linuxscrew.com/2007/10/17/cryopid-freeze-and-unfreeze-processes-in-linux/

于 2012-12-20T14:02:43.733 に答える
1

良い質問。

Smalltalk では、はい。

実際、Smalltalk では、プログラム全体をダンプして再起動することが、プログラムを保存して共有する唯一の方法です。ソースファイルはなく、ゼロからプログラムを開始する方法はありません。したがって、Smalltalk では、機能を無料で入手できます。

Smalltalk VM は、ファイルやインターネット接続を再度開くなど、再起動後に外部リソースを復元するために各オブジェクトを登録できるフックを提供します。また、たとえば、ダンプが異なるエンディアンを持つマシンに移動された場合に、整数配列がそのフックに登録され、値のエンディアンが変更されます。

これは、設計上再開可能なダンプをサポートしていない言語でこれを達成することがどれほど難しいか (またはそうでないか) についての予感を与えるかもしれません。

残念ながら、他のすべての言語は、それほど生きていません。いくつかの Lisp 実装を除いて、メモリ ダンプからの再開をサポートする言語を私は知りません。

これは逃した機会です。

于 2012-12-10T22:41:55.717 に答える
0

最近の Esug カンファレンスで Mariano が Pharo Smalltalk で Fuel (オブジェクトのシリアライゼーション) を使用する方法を実演しているのを見たことがあります。シリアル化されていないオブジェクトにヒットしない限り、デバッグと実行を続けることができます。Squeak smalltalkは Pi で実行されます。画像を保存するだけで十分な場合、これは簡単です。ただし、ARM 用のより高速な JITting VM をまだ待っています (Google Summer of Code プログラムの一部)。

于 2012-12-13T11:43:09.037 に答える