チェックポイント
SuzKiti:ぐるぐるこめんと
チェックポイント ...
- プロセスの状態をファイルにセーブして、セーブした時点から実行が可能な
ようにすること。チェックポイント という場合は、セーブした時点で
処理を続行し、プロセスがアボートしたりシステムをrebootした場合
セーブした時点からやりなおせることも 機能に含む。
ただし、同時には実行できなくとも良い。
( pid 等 いくつかのシステムリソースを予約したり すると 同時に実行できなくなる。)
この機能は何のための機能かというと、長期間実行される 数値演算のためのもの。
ジョブという概念の中で、そのなかの 複数のプロセスが 使用するリソース
が閉じているというような条件を付ければ、
使用中のファイルもセーブすることにより、
このようなチェックポイント機能をサポートすることは技術的には可能。
また、このような性質のものなのであるので、セーブしたファイルを他のマシンに
もっていって動かすようなこと(プロセスマイグレーション/ジョブマイグレーション)
も可能なはずである。
プロセスマイグレーション
- TCP コネクションの引き継ぎというのは、OSの対応はそんなに難しいことでは
ないかも知れない。元マシンでは、単に該当パケットを無視すれば良い。
そうすると再送されてくるから、新しいマシンで引き取ればよい。
新しいマシンで引き取ることができる状態にするのが難しそうだが..やって
できないレベルではないかも。パケットを送る側も 気にしないで良いんじゃないか。
マシン内で、lo 使って 通信していた場合は ... なんか面倒そうだ。
リダイレクションみたいな概念を入れないといけないのかな?
dump機能?
- 自分で実行状態を ファイルにセーブして、
処理が続行できる機能? emacs とか perl とか? は、実行形式のファイルとして
セーブする。インタープリターやエミュレーターといったものは、
こういうものを作りやすい...と思う。まったく条件を付けずに、
普通のプログラムでもそれができるようにするのは、上で説明したような
問題があってほとんど無理。
API を制限して、そのなかで 上のようなことをできる ライブラリだけを使う。
... といった 条件を付ければ、少し汎用的なものが作れるかも知れない。
たぶんそんなものは、使いにくいからだれも使わず、必要なら自分で実装する
... みたいなことになりがち。
前置きがながくなったけども、このページは、こういう類の話で、
なにかおもいついたら、書くところ。
(最終更新 Thu Mar 30 19:18:20 2006)