JP4114632B2 - チェックポインティング方式及びプログラム - Google Patents

チェックポインティング方式及びプログラム Download PDF

Info

Publication number
JP4114632B2
JP4114632B2 JP2004140371A JP2004140371A JP4114632B2 JP 4114632 B2 JP4114632 B2 JP 4114632B2 JP 2004140371 A JP2004140371 A JP 2004140371A JP 2004140371 A JP2004140371 A JP 2004140371A JP 4114632 B2 JP4114632 B2 JP 4114632B2
Authority
JP
Japan
Prior art keywords
program
library
interruption point
variable
intermediate data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004140371A
Other languages
English (en)
Other versions
JP2005322078A (ja
Inventor
浩司 松岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2004140371A priority Critical patent/JP4114632B2/ja
Publication of JP2005322078A publication Critical patent/JP2005322078A/ja
Application granted granted Critical
Publication of JP4114632B2 publication Critical patent/JP4114632B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)

Description

本発明は、アプリケーションレベルのチェックポインティング方式、及び、前記チェックポインティング方式を実現するためのプログラムに関する。
近年計算機性能の向上に伴い、計算機シミュレーションが自動車の設計などに実用されるようになってきた。このような計算機シミュレーションでは扱うモデルの規模によって、結果が得られるまでに数日といった時間を必要とするものも少なくない。1つの計算結果を得るために必要とする時間が長いということは、次のような問題を生じさしめる。
第1には、中途で何らかの原因によって、計算機システムが停止した場合、それまでの結果が失われてしまう。この場合、通常、計算を最初から再実行する必要あるため、結果が得られるまでの時間が長くなってしまう。
第2には、計算の中途でより高い優先順位のジョブが発生しても、先に投入されたジョブの実行が完了するまで、計算を開始できない。これは、優先的に後から発生した優先順位の高いジョブを実行したいというユーザの意図に反する。このような問題を解決するためには、プログラムの実行を中断し、それまでの実行結果を退避し、実行を再開する時点で、退避したデータを復帰し、その時点から計算を再開すれば良い。このような手法はチェックポインティングとして周知の技術である(例えば、特許文献1〜3参照)。
チェックポインティングを実現するには、OS(Operating System)レベルでプログラムとしての計算が使用しているデータを制御用の情報を含めてすべて退避させる方式と、アプリケーションレベルでプログラムの所定の場所において実行の再開に必要なデータを明示的に退避させる2つの方式がある。
前者はアプリケーションに依存しないので、どのようなプログラムでも実行の中断や再実行が可能である。一方、後者は、プログラムに手を加える必要がある反面、プログラムの作成者が意図したポイント、多くは、反復して計算すべき計算の実行が完了し、退避あるいは復帰すべきデータが最も少なくなるポイントにおいてデータを退避あるいは復帰させるので、データの退避あるいは復帰に必要とするオーバヘッドを少なくすることができる。また、退避あるいは復帰させるデータの表現形式を任意に定めることができるので、例えば、OSの異なるシステム間でジョブを引き継ぐことも可能である。前者の方式では、データの表現形式がOSに依存し、該ジョブの引継ぎは困難である。
特開2001−92650号公報 特開2001−166966号公報 特開昭63−37429号公報
オーバヘッドの観点からアプリケーションレベルのチェックポインティング方式がより実用的と考えられるが、プログラムに手を加えなければならないといった問題がある。即ち、プログラムの何処でプログラムの実行を中断するべきかを決め、そのポイントでプログラムの実行を中断し又実行を再開するためにはどのデータを退避及び復帰させる必要があるかを判断し、明示的にそれらのデータを退避あるいは復帰させるライブラリを作成し、該ライブラリを明示的に呼び出すようにプログラムを更新しなければならない。このような作業はチェックポインティングを行おうとするアプリケーションの規模が大きかったり、プログラムの構造が複雑な場合、非常に困難な作業となる。
本発明は、アプリケーションレベルでのチェックポインティングを容易に実現可能にすることを課題としている。
また、本発明は、アプリケーションレベルでのチェックポインティングを容易に行うことを可能にするためのプログラムを提供することを課題としている。
本発明によれば、プログラムの実行を中断する位置であるプログラム中断点における実行結果を退避し、前記プログラムの実行再開時に前記退避したデータを復帰させて、前記プログラム中断点から前記プログラムを実行再開するようにしたチェックポインティング方式において、前記プログラムのプログラム中断点において退避及び復帰が必要な変数を識別する変数識別手段と、前記変数識別手段で得られた変数に関する情報から前記プログラム中断点において実行を再開するために必要とする中間データを退避及び復帰させるためのライブラリを生成する中間データ退避・復帰ライブラリ生成手段と、前記プログラムのプログラム中断点に前記ライブラリをコールするプログラムを組み込むライブラリコール生成手段とを備え、前記ライブラリをコールするプログラムが前記ライブラリをコールし、前記プログラムが前記プログラム中断点において実行再開することを特徴とするチェックポインティング方式が提供される。
変数識別手段は、プログラムのプログラム中断点において退避及び復帰が必要な変数を識別する。中間データ退避・復帰ライブラリ生成手段は、前記変数識別手段で得られた変数に関する情報から前記プログラム中断点において実行を再開するために必要とする中間データを退避及び復帰させるためのライブラリを生成する。ライブラリコール生成手段は、前記プログラムのプログラム中断点に前記ライブラリをコールするプログラムを組み込む。前記ライブラリをコールするプログラムが前記ライブラリをコールし、前記プログラムが前記プログラム中断点において実行再開する。
ここで、前記変数識別手段は、前記プログラムの実行が開始されてから最初に前記プログラム中断点に到るまでに更新される変数を識別する被初期化変数識別手段と、最初に前記プログラム中断点を通過し次に該プログラム中断点に到るまでに更新される変数を識別する更新変数識別手段とによって構成され、前記中間データ退避・復帰ライブラリ生成手段は、前記被初期化変数識別手段と前記更新変数識別手段で得られた情報から前記プログラム中断点において実行を再開するために必要とする中間データを退避及び復帰させるためのライブラリを生成するように構成してもよい。
また、前記プログラム中断点の情報は前記プログラムに組み込まれて成るように構成してもよい。
また、前記被初期化変数識別手段は、前記プログラムを解析して、指定されたプログラム中断点までに更新される変数のリストを被初期化変数リストとして被初期化変数リスト記憶手段に記憶し、前記更新変数識別手段は、前記プログラムを解析して、指定されたプログラム中断点から開始して次に該指定されたプログラム中断点に制御が戻ってくるまでに更新される変数のリストを更新変数リストとして更新変更リスト記憶手段に記憶し、前記中間データ退避・復帰ライブラリ生成手段は、前記被初期化変数リスト記憶手段に記憶された被初期化変数リストに登録されていて、かつ、前記更新変更リスト記憶手段に記憶された更新変数リストに登録された変数を、プログラムの実行を再開するために必要とする中間データとして退避するサブルーチンと中間データを復帰させるサブルーチンを生成し、中間データ退避・復帰ライブラリとして中間データ退避・復帰ライブラリ記憶手段に記憶するように構成してもよい。
また、本発明によれば、コンピュータを、プログラムの実行を中断する位置であるプログラム中断点において退避及び復帰が必要な変数を識別する変数識別手段と、前記変数識別手段で得られた変数に関する情報から前記プログラム中断点において実行を再開するために必要とする中間データを退避及び復帰させるためのライブラリを生成する中間データ退避・復帰ライブラリ生成手段と、前記プログラムのプログラム中断点に前記ライブラリをコールするプログラムを組み込むライブラリコール生成手段として機能させることを特徴とするプログラムが提供される。
コンピュータはプログラムを実行することにより、プログラムの実行を中断する位置であるプログラム中断点において退避及び復帰が必要な変数を識別する変数識別手段と、前記変数識別手段で得られた変数に関する情報から前記プログラム中断点において実行を再開するために必要とする中間データを退避及び復帰させるためのライブラリを生成する中間データ退避・復帰ライブラリ生成手段と、前記プログラムのプログラム中断点に前記ライブラリをコールするプログラムを組み込むライブラリコール生成手段として機能する。
ここで、前記変数識別手段が、前記プログラムの実行が開始されてから最初に前記プログラム中断点に到るまでに更新される変数を識別する被初期化変数識別手段と、最初に前記プログラム中断点を通過し次に該プログラム中断点に到るまでに更新される変数を識別する更新変数識別手段とによって構成され、前記中間データ退避・復帰ライブラリ生成手段が、前記被初期化変数識別手段と前記更新変数識別手段で得られた情報から前記プログラム中断点において実行を再開するために必要とする中間データを退避及び復帰させるためのライブラリを生成するように前記コンピュータを機能させるよう前記プログラムを構成してもよい。
また、前記被初期化変数識別手段が、前記プログラムを解析して、指定されたプログラム中断点までに更新される変数のリストを被初期化変数リストとして被初期化変数リスト記憶手段に記憶し、前記更新変数識別手段が、前記プログラムを解析して、指定されたプログラム中断点から開始して次に該指定されたプログラム中断点に制御が戻ってくるまでに更新される変数のリストを更新変数リストとして更新変更リスト記憶手段に記憶し、前記中間データ退避・復帰ライブラリ生成手段が、前記被初期化変数リスト記憶手段に記憶された被初期化変数リストに登録されていて、かつ、前記更新変更リスト記憶手段に記憶された更新変数リストに登録された変数を、プログラムの実行を再開するために必要とする中間データとして退避するサブルーチンと中間データを復帰させるサブルーチンを生成し、中間データ退避・復帰ライブラリとして中間データ退避・復帰ライブラリ記憶手段に記憶するように前記コンピュータを機能させるよう前記プログラムを構成してもよい。
本発明のチェックポインティング方式によれば、アプリケーションレベルのチェックポインティングを実現するために必要とするプログラムの変更を最小限にすることが可能になり、アプリケーションレベルでのチェックポインティングを容易に実現することが可能になる。
また、本発明のプログラムをコンピュータが実行することにより、アプリケーションレベルでのチェックポインティングを容易に行うことが可能になる。
先ず、本発明の実施の形態の概要を説明すると、本実施の形態に係るチェックポインティング方式は、プログラムの実行中断点(プログラム中断点)における実行結果を退避し、前記プログラムの実行再開時に前記退避したデータを復帰させて、前記実行中断点から前記プログラムを実行再開するようにしたアプリケーションレベルのチェックポインティング方式である。
本実施の形態においては、実行対象であるプログラム上でプログラムの実行を中断し再実行を開始するべき点(プログラム中断点)を指示行で指定する。被初期化変数解析手段は、プログラム中断点までに値が確定する変数を、該変数への代入関係に着目し、確定する。更に更新変数解析手段はプログラム中断点から再びプログラム中断点に制御が戻ってくる間に更新される変数を、該変数への代入に関係に着目し、確定する。プログラムの実行の中断が指示されると、プログラムの再開に必要な中間データが退避する。プログラムが再実行されると、プログラム中断点まではプログラムの実行は通常通り進む。プログラム中断点において再実行のための中間データが与えられている場合、データを置き換え、次の処理に進む。データを置き換えた時点で、プログラムを中断する前に得られた結果が反映され、プログラムの実行が中断されたにもかかわらず、プログラム上は実行が継続して行われる。
即ち、プログラム上で指示したプログラム中断点においてプログラムの実行を中断あるいは再開するために必要な中間データを退避あるいは復帰させるライブラリを生成し、そのライブラリをコールするプログラムを元のプログラム上に自動的に挿入することによりアプリケーションレベルのチェックポインティングを実現するようにしている。また、本実施の形態に係るチェックポインティング用のプログラムは、該プログラムをコンピュータに実行させることによって、前記コンピュータに前記チェックポインティング方式を実現させることを可能にするものである。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
図1は、本実施の形態に係るチェックポインティング方式の構成を示す機能ブロック図であり、コンピュータ及び該コンピュータに実行させるためのプログラムを用いて実現される機能を用いて表したブロック図である。
図1を参照すると、本発明の実施の形態は、被初期化変数識別手段1と、更新変数識別手段2と、中間データ退避・復帰ライブラリ生成手段3と、ライブラリコール生成手段4と、被初期化変数リスト記憶手段121と、更新変更リスト記憶手段211と、中間データ退避・復帰ライブラリ記憶手段321とを含んでいる。尚、被初期化変数リスト記憶手段121、更新変更リスト記憶手段211及び中間データ退避・復帰ライブラリ記憶手段321は記憶手段を構成している。
被初期化変数識別手段1は、アプリケーションレベルのチェックポインティングを可能としたいプログラム11を入力として、該プログラム11のフローを解析し、指定されたプログラム中断点までに更新される変数のリストを被初期化変数リスト12として出力し、被初期化変数リスト12を被初期化変数リスト記憶手段121に記憶する。尚、コンピュータによる実行処理の対象であるプログラム11には、予め、プログラム11実行の中断点を指示するための指示がプログラム11の所定の位置に組み込まれている。
更新変数識別手段2は、該プログラム11を入力として、該プログラム11の入れ子構造を解析し、指定されたプログラム中断点から開始して次に該指定されたプログラム中断点に制御が戻ってくるまでに更新される変数のリストを更新変数リスト21として出力し、更新変更リスト21を更新変更リスト記憶手段211に記憶する。
尚、被初期化変数識別手段1及び更新変数識別手段2は、プログラム11を解析することによって、プログラム11のプログラム中断点において退避及び復帰が必要な変数を識別する変数識別手段を構成している。
中間データ退避・復帰ライブラリ生成手段3は、前記被初期化変数リスト12に登録されていて、かつ、前記更新変数リスト21に登録された変数を、プログラムの実行を再開するために必要とする中間データ31として退避する、つまり、中間データ31として書き出すサブルーチンと復帰、つまり、中間データ31を読み込むルーチンを生成し、中間データ退避・復帰ライブラリ32として出力し、中間データ退避・復帰ライブラリ32を中間データ退避・復帰ライブラリ記憶手段321に記憶する。
ライブラリコール生成手段4は、前記プログラム11を入力として、プログラム中のプログラム中断点の指示に後続して、例えば、プログラムの中断を指示するファイルが存在した場合には、中間データ退避・復帰ライブラリ32の中間データを書き出すサブルーチンを呼び出し、プログラムの実行を停止させるコードを、また、最初にプログラムの実行が該プログラム中断点に来た時、実行の再開に必要とする中間データ31が存在する場合に該中間データ31を読み込むサブルーチンを呼び出すコードをそれぞれ埋め込み、アプリケーションレベルのチェックポインティングに対応したプログラム41として出力する。
なお、プログラムの中断を指示するファイルにより中間データを出力しプログラムの実行を中断する制御を例に挙げたが、プログラムの中断を指示する方法は問わないし、中間データを書き出す動作とプログラムを中断させる操作に分割しても何等支障はない。
図2乃至図4は、本実施の形態の動作を示す流れ図である。
以下、図1乃至図4を参照して本実施の形態の動作について詳細に説明する。
まず、被初期化変数識別手段1によりプログラム11を入力として被初期化変数リスト12を、更新変数識別手段2によりプログラム11を入力として更新変数リスト21をそれぞれ得る。被初期化変数識別手段1は、プログラム11に基づいて得た被初期化変数リスト12を被初期化変数リスト記憶手段121に記憶し又、更新変数識別手段2は、プログラム11に基づいて得た更新変数リスト21を更新変数リスト記憶手段211に記憶する。
中間データ退避・復帰ライブラリ生成手段3により被初期化変数リスト12と該新変数リスト21を入力として中間データ退避・復帰ライブラリ32を得ると同時に、ライブラリコール生成手段4によりプログラム11を入力としてアプリケーションレベルのチェックポインティングに対応したプログラム41を得、プログラム41をコンパイルし中間データ退避・復帰ライブラリ32とリンクすることにより実行形式のプログラム51を作成する。なお、中間データ退避・復帰ライブラリ生成手段3は、被初期化変数リスト12と該新変数リスト21に基づいて得た中間データ退避・復帰ライブラリ32を中間データ退避・復帰ライブラリ記憶手段321に記憶する。
実行形式のプログラム51を実行中に、プログラム実行中断の指示を受けて、プログラム51の実行を中断する必要が生じた場合には(図3参照)、中断を指示するファイルを作成すればよい。該中断を指示するファイルが作成された後初めて所定のプログラム中断点に到達した時点で、それまでの計算結果が中間データ31として出力される。中間データ31は記憶手段に記憶される。プログラム51の実行を再開する場合には、中間データ31を中間データ退避・復帰ライブラリ32の読み込みサブルーチンが認識できる場所に置き、プログラム51を通常通り実行すれば、中間データ31を作成したプログラム中断点の直後からプログラム51の実行が再開される(図4参照)。
なお、被初期化変数識別手段1を省略することも可能である。この場合、プログラム中断点から再度プログラム実行点に制御が戻るまでに更新された変数を全て中間データとして退避及び復帰する。これらの中にはプログラムの中断点からあとに初期化される変数も含まれる。これらは、原理的には、中間でデータとして退避及び復帰する必要のないもので、これらを退避及び復帰するために無駄が生じるが、プログラムの中断及び再実行の動作にはなんら影響はない。
以上述べたように、本実施の形態に係るチェックポインティング方式は、プログラムの実行中断点における実行結果を退避し、前記プログラムの実行再開時に前記退避したデータを復帰させて、前記実行中断点から前記プログラムを実行再開するようにしたチェックポインティング方式において、プログラムの実行を中断及び再開するために必要な中間データを退避及び復帰させるライブラリを生成し、前記ライブラリをコールするためのプログラムを前記プログラムに挿入することによりチェックポインティングを行い、これにより前記プログラムを再開実行するようにしている。
すなわち、本実施の形態に係るチェックポインティング方式は、プログラムの実行を中断する位置であるプログラム中断点における実行結果を退避し、前記プログラムの実行再開時に前記退避したデータを復帰させて、前記プログラム中断点から前記プログラムを実行再開するようにしたチェックポインティング方式において、前記プログラムのプログラム中断点において退避及び復帰が必要な変数を識別する変数識別手段と、前記変数識別手段で得られた変数に関する情報から前記プログラム中断点において実行を再開するために必要とする中間データを退避及び復帰させるためのライブラリを生成する中間データ退避・復帰ライブラリ生成手段と、前記プログラムのプログラム中断点に前記ライブラリをコールするプログラムを組み込むライブラリコール生成手段とを備え、前記ライブラリをコールするプログラムが前記ライブラリをコールし、前記プログラムが前記プログラム中断点において実行再開することを特徴としている。
ここで、前記変数識別手段は、前記プログラムの実行が開始されてから最初に前記プログラム中断点に到るまでに更新される変数を識別する被初期化変数識別手段1と、最初に前記プログラム中断点を通過し次に該プログラム中断点に到るまでに更新される変数を識別する更新変数識別手段2とによって構成され、中間データ退避・復帰ライブラリ生成手段3は、被初期化変数識別手段1と更新変数識別手段2で得られた変数に関する情報から前記プログラム中断点において実行を再開するために必要とする中間データを退避及び復帰させるためのライブラリを生成するようにしている。
また、前記プログラム中断点の情報はプログラム11に予め組み込まれており、前記プログラム中断点の数は適宜、1つ、あるいは、複数用いる。
また、被初期化変数識別手段1は、プログラム11のフローを解析し、指定されたプログラム中断点までに更新される変数のリストを被初期化変数リスト12として被初期化変数リスト記憶手段121に記憶するようにしている。
また、更新変数識別手段2は、プログラム11を解析し、指定されたプログラム中断点から開始して次に該指定されたプログラム中断点に制御が戻ってくるまでに更新される変数のリストを更新変数リスト21として更新変更リスト記憶手段211に記憶するようにしている。
中間データ退避・復帰ライブラリ生成手段3は、被初期化変数リスト記憶手段121に記憶された被初期化変数リスト12に登録されていて、かつ、更新変更リスト記憶手段211に記憶された更新変数リスト21に登録された変数を、プログラムの実行を再開するために必要とする中間データとして退避するサブルーチンと中間データを復帰させるサブルーチンを生成し、中間データ退避・復帰ライブラリ32として中間データ退避・復帰ライブラリ記憶手段321に記憶するようにしている。
したがって、中間データ31を退避及び復帰させる中間データ退避・復帰ライブラリ32が自動的に生成され、かつ、中断を指示するファイルを作成すれば中間データ31を出力してプログラムの実行を中断し、中間データ31があれば中間データを作成したプログラム中断点の直後からプログラムの実行を再開することができる。プログラム11の中にプログラム11の中断点のみを指定するだけで、必要のあるデータだけを退避あるいは復帰する効率の良いアプリケーションレベルのチェックポインティングを容易に実現することができる。
また、アプリケーションレベルのチェックポインティングにおいて、プログラムの実行の中断及び再実行を可能ならしめるために行う中間データの退避及び復帰をプログラム上のプログラム中断点の指示に基づき自動的に行うことが可能になる。
また、アプリケーションレベルでのチェックポインティングを容易に実現することが可能になる。
また、アプリケーションレベルのチェックポインティングをプログラムの実行を中断する点の指定を行う作業のみでよいため、アプリケーションレベルのチェックポインティングを実現するために必要とするプログラムの変更作業を極めて少なくすることができる。この結果、容易にアプリケーションレベルのチックポインティングを利用できるようになる。
また、任意のプログラムにおいて、ソース上でプログラムの実行を中断する点が明示的に指示された場合、自動的に、該プログラム中断点において退避あるいは復帰するべきデータを決定し、それらを退避あるいは復帰するライブラリを生成し、かつ該ライブラリを中断点において呼びだすプログラムを元のプログラムに自動的に組み込み、アプリケーションレベルのチェックポインティングを容易に実現できる方式を提供することが可能になる。
また、本実施の形態に係るチェックポインティング用プログラムをコンピュータが実行することにより、前記チェックポインティング方式を実現することが可能になる。したがって、アプリケーションレベルでのチェックポインティングを容易に行うことを可能にするためのプログラムを提供することが可能になる。
自動車等の設計時に使用する計算機シミュレーションシステム、ソフトウェア開発支援システム、デバッグシステム等、各種のコンピュータを用いたシステムにおけるチェックポインティング方式に適用可能である。
本発明の実施の形態の構成を示すブロック図 本発明の実施の形態の動作を示す流れ図 本発明の実施の形態の動作を示す流れ図 本発明の実施の形態の動作を示す流れ図
符号の説明
1・・・変数識別手段を構成する被初期化変数識別手段
2・・・変数識別手段を構成する更新変数識別手段
3・・・中間データ退避・復帰ライブラリ生成手段
4・・・ライブラリコール生成手段
11・・・アプリケーションレベルのチェックポインティングを可能としたいプログラム
12・・・被初期化変数リスト
21・・・更新変数リスト
31・・・中間データ
32・・・中間データ退避・復帰ライブラリ
41・・・アプリケーションレベルのチェックポインティングに対応したプログラム
51・・・実行形式のプログラム
121・・・記憶手段を構成する被初期化変数リスト記憶手段
211・・・記憶手段を構成する更新変数リスト記憶手段
321・・・記憶手段を構成する中間データ退避・復帰ライブラリ記憶手段

Claims (5)

  1. プログラムの実行を中断する位置であるプログラム中断点における実行結果を退避し、前記プログラムの実行再開時に前記退避したデータを復帰させて、前記プログラム中断点から前記プログラムを実行再開するようにしたアプリケーションレベルのチェックポインティング方式において、
    前記プログラムの構造を解析し、前記プログラムの実行が開始されてから最初に前記プログラム中断点に到るまでに更新される変数を識別する被初期化変数識別手段と、
    前記プログラムの構造を解析し、最初に前記プログラム中断点を通過し次に該プログラム中断点に到るまでに更新される変数を識別する更新変数識別手段と、
    前記被初期化変数識別手段及び前記更新変数識別手段で得られた変数のうち、共通する変数を前記プログラム中断点において実行を再開するために必要となる中間データとして退避及び復帰させるためのライブラリを生成する中間データ退避・復帰ライブラリ生成手段と、
    前記プログラムのプログラム中断点に前記ライブラリをコールするプログラムを組み込むライブラリコール生成手段とを備え、
    前記ライブラリをコールするプログラムが前記プログラム中断点において前記ライブラリをコールし、前記プログラムが前記プログラム中断点において実行再開することを特徴とするアプリケーションレベルのチェックポインティング方式。
  2. 前記プログラム中断点の情報は前記プログラムに組み込まれて成ることを特徴とする請求項記載のチェックポインティング方式。
  3. 前記被初期化変数識別手段は、前記プログラムを解析して、指定されたプログラム中断点までに更新される変数のリストを被初期化変数リストとして被初期化変数リスト記憶手段に記憶し、
    前記更新変数識別手段は、前記プログラムを解析して、指定されたプログラム中断点から開始して次に該指定されたプログラム中断点に制御が戻ってくるまでに更新される変数のリストを更新変数リストとして更新変更リスト記憶手段に記憶し、
    前記中間データ退避・復帰ライブラリ生成手段は、前記被初期化変数リスト記憶手段に記憶された被初期化変数リストに登録されていて、かつ、前記更新変更リスト記憶手段に記憶された更新変数リストに登録された変数を、プログラムの実行を再開するために必要とする中間データとして退避するサブルーチンと中間データを復帰させるサブルーチンを生成し、中間データ退避・復帰ライブラリとして中間データ退避・復帰ライブラリ記憶手段に記憶することを特徴とする請求項1または2記載のチェックポインティング方式。
  4. コンピュータを、
    実行するプログラムの構造を解析し、前記プログラムの実行が開始されてから最初にプログラムの実行を中断するプログラム中断点に到るまでに更新される変数を識別する被初期化変数識別手段と、
    前記プログラムの構造を解析し、最初に前記プログラム中断点を通過し次に該プログラム中断点に到るまでに更新される変数を識別する更新変数識別手段と、
    前記被初期化変数識別手段及び前記更新変数識別手段で得られた変数のうち、共通する変数を前記プログラム中断点において実行を再開するために必要となる中間データとして退避及び復帰させるためのライブラリを生成する中間データ退避・復帰ライブラリ生成手段と、
    前記プログラムのプログラム中断点に前記ライブラリをコールするプログラムを組み込むライブラリコール生成手段として機能させると共に、
    前記ライブラリをコールするプログラムが前記プログラム中断点において前記ライブラリをコールし、前記プログラムが前記プログラム中断点において実行再開するように機能させることを特徴とするアプリケーションレベルのチェックポインティング用プログラム。
  5. 前記被初期化変数識別手段が、前記プログラムを解析して、指定されたプログラム中断点までに更新される変数のリストを被初期化変数リストとして被初期化変数リスト記憶手段に記憶し、
    前記更新変数識別手段が、前記プログラムを解析して、指定されたプログラム中断点から開始して次に該指定されたプログラム中断点に制御が戻ってくるまでに更新される変数のリストを更新変数リストとして更新変更リスト記憶手段に記憶し、
    前記中間データ退避・復帰ライブラリ生成手段が、前記被初期化変数リスト記憶手段に記憶された被初期化変数リストに登録されていて、かつ、前記更新変更リスト記憶手段に記憶された更新変数リストに登録された変数を、プログラムの実行を再開するために必要とする中間データとして退避するサブルーチンと中間データを復帰させるサブルーチンを生成し、中間データ退避・復帰ライブラリとして中間データ退避・復帰ライブラリ記憶手段に記憶するように前記コンピュータを機能させることを特徴とする請求項記載のプログラム。
JP2004140371A 2004-05-10 2004-05-10 チェックポインティング方式及びプログラム Expired - Fee Related JP4114632B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004140371A JP4114632B2 (ja) 2004-05-10 2004-05-10 チェックポインティング方式及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004140371A JP4114632B2 (ja) 2004-05-10 2004-05-10 チェックポインティング方式及びプログラム

Publications (2)

Publication Number Publication Date
JP2005322078A JP2005322078A (ja) 2005-11-17
JP4114632B2 true JP4114632B2 (ja) 2008-07-09

Family

ID=35469311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004140371A Expired - Fee Related JP4114632B2 (ja) 2004-05-10 2004-05-10 チェックポインティング方式及びプログラム

Country Status (1)

Country Link
JP (1) JP4114632B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5537917B2 (ja) * 2009-12-04 2014-07-02 三菱電機株式会社 管理装置及びデータ処理制御装置及び管理方法及びデータ処理制御方法及びプログラム

Also Published As

Publication number Publication date
JP2005322078A (ja) 2005-11-17

Similar Documents

Publication Publication Date Title
EP1769351B1 (en) Method, software and apparatus for using application state history information when re-launching applications
US9164755B2 (en) Personal and pooled virtual machine update
JP6027020B2 (ja) プログラム状態のチェックポイントおよび復元の方法
WO2010035596A1 (ja) ファームウェア更新装置及び方法
KR100679050B1 (ko) 태스크간 빠른 문맥 교환을 위해 레지스터 문맥을 저장,복구하는 방법 및 장치
JP4873423B2 (ja) 仮想化プログラム、シミュレーション装置、仮想化方法
JP6342070B2 (ja) ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム
JP2011198363A (ja) プログラムコンパイラ、プログラム設置装置、及びプログラム設置方法
US6256751B1 (en) Restoring checkpointed processes without restoring attributes of external data referenced by the processes
CN102411519A (zh) 进程的恢复方法和装置
CN114253713A (zh) 一种基于reactor的异步批处理方法及系统
JP4114632B2 (ja) チェックポインティング方式及びプログラム
JP2001014175A (ja) ジョブ運用管理システム、ジョブ運用管理方法及び記憶媒体
JP2001014050A (ja) 情報処理装置及び記憶媒体
JP2809271B2 (ja) ジョブ再実行方式
JP6318214B2 (ja) 汎用マイクロプロセッサを用いたplcのデバッグ方法
JP2007004400A (ja) プログラム・デバッグ方法
JP6160688B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
WO2023144939A1 (ja) コンピュータ、制御方法及び制御プログラム
JP5317182B2 (ja) Pos端末、モジュールアップデート方法およびモジュールアップデートプログラム
JPH05165652A (ja) タスク切替え制御方法
CN110968494A (zh) 一种软件调试方法、装置及计算机存储介质
JP2020113244A (ja) Rtosアプリケーションデバッグ装置及びrtosアプリケーションデバッグ方法
JP2003345607A5 (ja)
JP2020052501A (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070824

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071129

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20071129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071129

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080407

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4114632

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120425

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120425

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140425

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees