JPH0476734A - ページ・チェックポイント処理方式 - Google Patents
ページ・チェックポイント処理方式Info
- Publication number
- JPH0476734A JPH0476734A JP2190310A JP19031090A JPH0476734A JP H0476734 A JPH0476734 A JP H0476734A JP 2190310 A JP2190310 A JP 2190310A JP 19031090 A JP19031090 A JP 19031090A JP H0476734 A JPH0476734 A JP H0476734A
- Authority
- JP
- Japan
- Prior art keywords
- page
- file
- program
- checkpoint
- saved
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Landscapes
- Retry When Errors Occur (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
C産業上の利用分野〕
本発明はページOチェックポイント処理方式、特にプロ
グラム実行中にプログラムのページ入出力を制御するペ
ージ処理方式と、チェックポイント時にプログラムのペ
ージを退避してプログラム異常終了時に直前のチェック
ポイントから実行を再開させるチェックポイントリスタ
ート処理方式〔従来の技術〕 従来のこの種のページ轡チェックポイント処理方式は、
プログラム実行中のページ処理と、チェックポイントリ
スタート処理とは独立して処理されていた。
グラム実行中にプログラムのページ入出力を制御するペ
ージ処理方式と、チェックポイント時にプログラムのペ
ージを退避してプログラム異常終了時に直前のチェック
ポイントから実行を再開させるチェックポイントリスタ
ート処理方式〔従来の技術〕 従来のこの種のページ轡チェックポイント処理方式は、
プログラム実行中のページ処理と、チェックポイントリ
スタート処理とは独立して処理されていた。
すなわち、ページ処理では、プログラム実行開始に際し
てページ退避用の退避ファイルを設け、プログラム実行
中に内容が変更されたページを主記憶装置から解放する
時にこの退避ファイルに退避し、プログラムの実行で必
要になった時この退避ファイルまたは元のプログラムフ
ァイルから主記憶装置にロードしていた。
てページ退避用の退避ファイルを設け、プログラム実行
中に内容が変更されたページを主記憶装置から解放する
時にこの退避ファイルに退避し、プログラムの実行で必
要になった時この退避ファイルまたは元のプログラムフ
ァイルから主記憶装置にロードしていた。
また、チェックポイントリスタート処理では、プログラ
ム実行開始に際してチェックポイントファイルを設けて
おき、プログラムからチーニックポイントが発行された
場合にプログラムの実行領域のページと前記退避ファイ
ルに退避されているページを全てチェックポイントファ
イルに退避しておき、プログラムが異常終了した場合に
チェックポイントファイルに退避されたページを主記憶
装置上にロードして直前のチェックポイント発行位置の
次の位置からプログラムの実行を再開していた。
ム実行開始に際してチェックポイントファイルを設けて
おき、プログラムからチーニックポイントが発行された
場合にプログラムの実行領域のページと前記退避ファイ
ルに退避されているページを全てチェックポイントファ
イルに退避しておき、プログラムが異常終了した場合に
チェックポイントファイルに退避されたページを主記憶
装置上にロードして直前のチェックポイント発行位置の
次の位置からプログラムの実行を再開していた。
なお、プログラムの実行再開に最低必要なページのみを
あらかじめ設定しておいてチェックポイント発行時には
設定されているページのみをチェックポイントファイル
に退避する方式もあった。
あらかじめ設定しておいてチェックポイント発行時には
設定されているページのみをチェックポイントファイル
に退避する方式もあった。
上述した従来のページ・チェックポイント処理方式では
、チェックポイント発行時にプログラムの全であるいは
必要なページをチェックポイントファイルに出力するた
め、チェックポイント処理時間が長く、プログラム内で
頻繁にチェックポイントを発行するとプログラムの実行
時間が延びてしまうという問題点があった。
、チェックポイント発行時にプログラムの全であるいは
必要なページをチェックポイントファイルに出力するた
め、チェックポイント処理時間が長く、プログラム内で
頻繁にチェックポイントを発行するとプログラムの実行
時間が延びてしまうという問題点があった。
特に、実行が長時間にわたるプログラムの場合、実行途
中のいづれも処理を中断させていつまでも再開できるよ
うにチェックポイントを発行することがあるが、上記問
題点のためにチェックポインド間隔を長(すると処理中
断後の再実行ではチェックポイントから処理中断までの
処理を長時間かけて再び実行しなければならず、処理時
間を一層延ばしてしまうという問題があった。
中のいづれも処理を中断させていつまでも再開できるよ
うにチェックポイントを発行することがあるが、上記問
題点のためにチェックポインド間隔を長(すると処理中
断後の再実行ではチェックポイントから処理中断までの
処理を長時間かけて再び実行しなければならず、処理時
間を一層延ばしてしまうという問題があった。
また、他プログラムと共用しているデータベースをアク
セスするプログラムでは、アクセスするデータベースペ
ージを他のプログラムからは使用できないようにロック
しており、他プログラムとのロックの掛は合いでデッド
ロックが発生した場合、片方のプログラムは異常終了し
、直前に発行したチェックポイントから処理を再実行し
なければならない。
セスするプログラムでは、アクセスするデータベースペ
ージを他のプログラムからは使用できないようにロック
しており、他プログラムとのロックの掛は合いでデッド
ロックが発生した場合、片方のプログラムは異常終了し
、直前に発行したチェックポイントから処理を再実行し
なければならない。
しかしながら、上記の問題点があって、頻繁にはチェッ
クポイントを発行することができないため、データベー
スページのロックを解除するだけの特別のチェックポイ
ントを発行することがある。
クポイントを発行することができないため、データベー
スページのロックを解除するだけの特別のチェックポイ
ントを発行することがある。
このような場合、プログラムの異常終了時にその旨の通
知を受けて直前のチェックポイントから実行を再開でき
るような特殊処理をプログラムに組込んでおかなければ
ならず、プログラムを作成する場合には十分な注意が必
要になるという欠点があった。
知を受けて直前のチェックポイントから実行を再開でき
るような特殊処理をプログラムに組込んでおかなければ
ならず、プログラムを作成する場合には十分な注意が必
要になるという欠点があった。
本発明の方式は、実行形式プログラムを一層サイズのペ
ージに分割して実行に必要なページを主記憶装置に配置
して実行するプログラムでのページ処理とチェックポイ
ント処理を行なうページ・チェックポイント処理方式に
おいて、 実行形式プログラムを格納している実行形式プログラム
ファイルと、実行形式プログラムのページを配置してプ
ログラムを実行する主記憶装置上の実行領域と、前記実
行領域の内容を複写しておくための主記憶装置上の複写
領域と、プログラムの実行によって内容が変更されたペ
ージを退避しておくための第1の退避ファイルおよび第
2の退避ファイルと、プログラム実行中のページの状態
を管理するページ管理テーブルと、前記実行形式プログ
ラムファイルや前記2つの退避ファイルと前記実行領域
との間のページ入出力を制御するページ処理手段と、前
記実行領域で実行しているプログラムからチェックポイ
ントが発行された場合に実行領域の内容を保存しかつ該
プログラムが異常終了した場合に直前に発行されたチェ
ックポイントから処理を再開させるチェックポイントリ
スタート処理手段とを有し、 前記ページ処理手段は前記ページ管理テーブルの参照と
更新をしながら、プログラムの実行開始では、前記実行
領域を確保し前記実行形式プログラムファイルからペー
ジをロードしてプログラムを実行させ、前記実行領域の
ページを解放する場合、ページの内容が一度も変更され
たことのないページおよび前記第1の退避ファイルまた
は第2の退避ファイルにページを退避した後内容変更の
ないページはそのまま解放し、内容変更されてはいるが
一度も前記第1の退避ファイルにも第2の退避ファイル
にも退避されていないページであれば前記退避ファイル
にページを退避し、既に前記第1の退避ファイルまたは
第2の退避ファイルに退避した後チェックポイントが発
行されないまま内容変更されたページであれば既に退避
してあるのと同じ前記第1の退避ファイルまたは第2の
退避ファイルにページを退避し、既に前記第1の退避フ
ァイルまたは第2の退避ファイルに退避した後チェック
ポイントが発行されて内容変更されたページであれば以
前に退避したファイルとは別の前記第2の退避ファイル
または第1の退避ファイルにページを退避し、以上の退
避の後前記実行領域上のページを解放し、プログラムの
実“行に必要なページが前記実行領域に配置されていな
い場合、その必要ページの最新の内容を格納している前
記実行形式プログラムファイル、前記第1の退避ファイ
ルまたは第2の退避ファイルからページをロードしてプ
ログラムの実行を続けさせ、前記チェックポイントリス
タート処理手段は、前記実行領域で実行しているプログ
ラムからチェックポイントが発行された場合、主記憶装
置上に前記実行領域と同一の大きさの領域を複写領域と
して確保して前記実行領域の内容を複写するとともに前
記ページ管理テーブルの内容を前記第1の退避ファイル
に退避し、チェックポイント発行以後にプログラムが異
常終了した場合、直前のチェックポイントで複写された
前記複写領域から前記実行領域に内容を複写して復元す
るとともに前記第1の退避ファイルに退避してあるペー
ジ管理テーブルを入力して復元した後直前のチェックポ
イント発行の次の位置に制御を戻してプログラムの実行
を再開させることを特徴とする。
ージに分割して実行に必要なページを主記憶装置に配置
して実行するプログラムでのページ処理とチェックポイ
ント処理を行なうページ・チェックポイント処理方式に
おいて、 実行形式プログラムを格納している実行形式プログラム
ファイルと、実行形式プログラムのページを配置してプ
ログラムを実行する主記憶装置上の実行領域と、前記実
行領域の内容を複写しておくための主記憶装置上の複写
領域と、プログラムの実行によって内容が変更されたペ
ージを退避しておくための第1の退避ファイルおよび第
2の退避ファイルと、プログラム実行中のページの状態
を管理するページ管理テーブルと、前記実行形式プログ
ラムファイルや前記2つの退避ファイルと前記実行領域
との間のページ入出力を制御するページ処理手段と、前
記実行領域で実行しているプログラムからチェックポイ
ントが発行された場合に実行領域の内容を保存しかつ該
プログラムが異常終了した場合に直前に発行されたチェ
ックポイントから処理を再開させるチェックポイントリ
スタート処理手段とを有し、 前記ページ処理手段は前記ページ管理テーブルの参照と
更新をしながら、プログラムの実行開始では、前記実行
領域を確保し前記実行形式プログラムファイルからペー
ジをロードしてプログラムを実行させ、前記実行領域の
ページを解放する場合、ページの内容が一度も変更され
たことのないページおよび前記第1の退避ファイルまた
は第2の退避ファイルにページを退避した後内容変更の
ないページはそのまま解放し、内容変更されてはいるが
一度も前記第1の退避ファイルにも第2の退避ファイル
にも退避されていないページであれば前記退避ファイル
にページを退避し、既に前記第1の退避ファイルまたは
第2の退避ファイルに退避した後チェックポイントが発
行されないまま内容変更されたページであれば既に退避
してあるのと同じ前記第1の退避ファイルまたは第2の
退避ファイルにページを退避し、既に前記第1の退避フ
ァイルまたは第2の退避ファイルに退避した後チェック
ポイントが発行されて内容変更されたページであれば以
前に退避したファイルとは別の前記第2の退避ファイル
または第1の退避ファイルにページを退避し、以上の退
避の後前記実行領域上のページを解放し、プログラムの
実“行に必要なページが前記実行領域に配置されていな
い場合、その必要ページの最新の内容を格納している前
記実行形式プログラムファイル、前記第1の退避ファイ
ルまたは第2の退避ファイルからページをロードしてプ
ログラムの実行を続けさせ、前記チェックポイントリス
タート処理手段は、前記実行領域で実行しているプログ
ラムからチェックポイントが発行された場合、主記憶装
置上に前記実行領域と同一の大きさの領域を複写領域と
して確保して前記実行領域の内容を複写するとともに前
記ページ管理テーブルの内容を前記第1の退避ファイル
に退避し、チェックポイント発行以後にプログラムが異
常終了した場合、直前のチェックポイントで複写された
前記複写領域から前記実行領域に内容を複写して復元す
るとともに前記第1の退避ファイルに退避してあるペー
ジ管理テーブルを入力して復元した後直前のチェックポ
イント発行の次の位置に制御を戻してプログラムの実行
を再開させることを特徴とする。
次に本発明の実施例について図面を参照して説明する。
第1図は、本発明の一実施例を示す構成図であり、実行
形式プログラムファイル1.ページ管理テーブル2.実
行領域3.複写領域4.退避ファイル5.退避ファイル
6、ページ処理手段7.チェックポイントリスタート処
理手段8から構成される。
形式プログラムファイル1.ページ管理テーブル2.実
行領域3.複写領域4.退避ファイル5.退避ファイル
6、ページ処理手段7.チェックポイントリスタート処
理手段8から構成される。
第2図は、ページ管理テーブル2の内容を示しており、
プログラムの各ページごとのエントリから成っている。
プログラムの各ページごとのエントリから成っている。
このページ管理テーブル2は、プログラム実行中にペー
ジ内容を変更可能か不可能かを識別する変更可/不可区
分21.ページが主記憶装置上の実行領域にロードされ
ているかいないかを識別する実行領域存在有無区分22
.変更可/不可区分21で変更可のページの内容がチェ
ックポイント間で実際に変更されたか否かを識別する内
容変更有無区分23.ページの内容が変更された後その
ページを解放しなけれはならなくなった場合に退避ファ
イルに退避するが、どの退避ファイルに退避したかを識
別する退避ファイル区分24.チェックポイント間で実
際にページを退避ファイルに退避したかを識別する退避
ファイル出力有無区分25から構成されている。
ジ内容を変更可能か不可能かを識別する変更可/不可区
分21.ページが主記憶装置上の実行領域にロードされ
ているかいないかを識別する実行領域存在有無区分22
.変更可/不可区分21で変更可のページの内容がチェ
ックポイント間で実際に変更されたか否かを識別する内
容変更有無区分23.ページの内容が変更された後その
ページを解放しなけれはならなくなった場合に退避ファ
イルに退避するが、どの退避ファイルに退避したかを識
別する退避ファイル区分24.チェックポイント間で実
際にページを退避ファイルに退避したかを識別する退避
ファイル出力有無区分25から構成されている。
なお、退避ファイル区分24以外のデータは有り/無し
の2種類の状態を示す区分データであるが、退避ファイ
ル区分24は、プログラム実行開始からゴ度も退避ファ
イルに退避していないページの場合は無し、退避したこ
とのあるページは最新の退避を行った退避ファイル5ま
たは6の合計3種類の区分データとなる。
の2種類の状態を示す区分データであるが、退避ファイ
ル区分24は、プログラム実行開始からゴ度も退避ファ
イルに退避していないページの場合は無し、退避したこ
とのあるページは最新の退避を行った退避ファイル5ま
たは6の合計3種類の区分データとなる。
第3図は、ページ処理手段7のプログラム実行開始処理
を説明するステップ図である。
を説明するステップ図である。
ステップ301では主記憶装置上に実行領域3を確保し
て実行形式プログラムファイル1よりページをロードす
る。
て実行形式プログラムファイル1よりページをロードす
る。
ステップ302ではページ管理テーブル2を初期化する
。初期化はまず実行形式プログラムファイル1のページ
情報を参照して各ページがプログラム実行中に変更可か
不可かの区分を変更可/不可区分21に設定する。次に
実行領域存在有無区分22に対しては、実行領域3にロ
ードしたページハ有す、ロードしていないページは無し
に設定する。その他の内容変更区分23.退避ファイル
区分24.退避ファイル出力有無区分25については全
て無しを設定する。
。初期化はまず実行形式プログラムファイル1のページ
情報を参照して各ページがプログラム実行中に変更可か
不可かの区分を変更可/不可区分21に設定する。次に
実行領域存在有無区分22に対しては、実行領域3にロ
ードしたページハ有す、ロードしていないページは無し
に設定する。その他の内容変更区分23.退避ファイル
区分24.退避ファイル出力有無区分25については全
て無しを設定する。
ページ管理テーブル2の初期化が終了したなら、ステッ
プ303で制御をプログラムに渡して実行を開始させる
。
プ303で制御をプログラムに渡して実行を開始させる
。
第4図は、チェックポイントリスタート処理手段8のチ
ェックポイント処理を説明するステップ図である。この
チェックポイント処理は、実行しているプログラムから
チェックポイント命令が発行されるたびに実行するもの
である。
ェックポイント処理を説明するステップ図である。この
チェックポイント処理は、実行しているプログラムから
チェックポイント命令が発行されるたびに実行するもの
である。
まず、ステップ401で実行領域3と同一サイズの複写
領域4を確保して実行領域3の内容を複写する。既に複
写領域4が確保されていれば実行領域3と同じサイズに
して複写を行う。
領域4を確保して実行領域3の内容を複写する。既に複
写領域4が確保されていれば実行領域3と同じサイズに
して複写を行う。
ステップ402では退避ファイル5に、ページ管理テー
ブル2の内容、チェックポイント命令を発行したプログ
ラム内の位置および複写領域4の主記憶装置内の位置と
サイズを退避ファイル5に退避して、プログラムの異常
発生時に再実行ができるように準備する。
ブル2の内容、チェックポイント命令を発行したプログ
ラム内の位置および複写領域4の主記憶装置内の位置と
サイズを退避ファイル5に退避して、プログラムの異常
発生時に再実行ができるように準備する。
ステップ403では、ページ管理テーブル2の内容変更
有無区分23と退避ファイル出力有無区分25を全て無
しに設定し直して処理を終了する。
有無区分23と退避ファイル出力有無区分25を全て無
しに設定し直して処理を終了する。
第5図は、ページ処理手段7のページ解放処理を説明す
るステップ図である。ページ解放処理は、実行領域3の
上のページ領域を空けて他のページのために使用できる
ようにするためのものであり、自プログラムのロードし
ていないページが必要になった場合や主記憶装置の空き
領域が不足して他プログラムのページをロードしなけれ
ばならなくなった場合に起動される。
るステップ図である。ページ解放処理は、実行領域3の
上のページ領域を空けて他のページのために使用できる
ようにするためのものであり、自プログラムのロードし
ていないページが必要になった場合や主記憶装置の空き
領域が不足して他プログラムのページをロードしなけれ
ばならなくなった場合に起動される。
まずステップ501で実行領域3に存在しているページ
の中から解放すべきページを選択する。
の中から解放すべきページを選択する。
選択の方法としては、参照・更新が最も古いページを選
択する方法や参照・更新回数の最も少ないページを選択
する方法など従来からある方法で選択する。
択する方法や参照・更新回数の最も少ないページを選択
する方法など従来からある方法で選択する。
ステップ502およびステップ503では、選択された
解放ページの変更可/不可区分21と内容変更有無区分
23を調べてその解放ページが変更不可あるいは内容変
更無しく直前のチェックポイントから内容変更無しある
いは最初のチェックポイントの前ならプログラム実行開
始から内容変更無し)の場合、ステップ509にて選択
された解放ページの解放と実行領域存在有無区分22を
無しに設定して処理を終了する。
解放ページの変更可/不可区分21と内容変更有無区分
23を調べてその解放ページが変更不可あるいは内容変
更無しく直前のチェックポイントから内容変更無しある
いは最初のチェックポイントの前ならプログラム実行開
始から内容変更無し)の場合、ステップ509にて選択
された解放ページの解放と実行領域存在有無区分22を
無しに設定して処理を終了する。
選択された解放ページの内容が変更されていた場合、ス
テップ504で解放ページの退避ファイル区分24を参
照して退避ファイルに退避したことのあるページか否か
を判定する。−度も退避ファイルに退避したことのない
ページであれば、ステップ505で解放ページを退避フ
ァイルAに退避して退避ファイル区分24を退避ファイ
ルAとし、退避ファイル出力有無区分25を有りに設定
した後、ステップ509を実行する。
テップ504で解放ページの退避ファイル区分24を参
照して退避ファイルに退避したことのあるページか否か
を判定する。−度も退避ファイルに退避したことのない
ページであれば、ステップ505で解放ページを退避フ
ァイルAに退避して退避ファイル区分24を退避ファイ
ルAとし、退避ファイル出力有無区分25を有りに設定
した後、ステップ509を実行する。
解放ページが一度以上退避フアイルに退避したことのあ
るページであればステップ50Bで解放ページの退避フ
ァイル出力有無区分25を調べ、退避ファイル出力無し
く直前のチェックポイントから退避ファイル出力無しあ
るいは最初のチェックポイント前ならプログラム実行開
始から退避ファイル出力無し)の場合、ステップ507
とステップ509を実行する。
るページであればステップ50Bで解放ページの退避フ
ァイル出力有無区分25を調べ、退避ファイル出力無し
く直前のチェックポイントから退避ファイル出力無しあ
るいは最初のチェックポイント前ならプログラム実行開
始から退避ファイル出力無し)の場合、ステップ507
とステップ509を実行する。
ステップ507では退避ファイル区分24に設定されて
いる退避ファイルとは別の退避ファイルに解放ページの
内容を退避して退避ファイル区分24を現在退避した退
避ファイルに変更するとともに退避ファイル出力有無区
分25を有りに設定する。
いる退避ファイルとは別の退避ファイルに解放ページの
内容を退避して退避ファイル区分24を現在退避した退
避ファイルに変更するとともに退避ファイル出力有無区
分25を有りに設定する。
ステップ50Bで解放ページの退避ファイル出力有無区
分25が有りの場合、ステップ508とステップ50θ
を実行する。ステップ508では、退避ファイル区分2
4に設定されている退避ファイルに解放ページの内容を
退避する。
分25が有りの場合、ステップ508とステップ50θ
を実行する。ステップ508では、退避ファイル区分2
4に設定されている退避ファイルに解放ページの内容を
退避する。
第6図は、ページ処理手段7のページ要求処理を説明す
るステップ図である。実行領域3で実行しているプログ
ラムでは、プログラムの命令を格納しているページやデ
ータを格納しているページを使用して処理を進めている
が、処理の進展に伴って実行領域3にロードされていな
いページも必要になってくる。こうした場合に必要なペ
ージの要求がなされる。
るステップ図である。実行領域3で実行しているプログ
ラムでは、プログラムの命令を格納しているページやデ
ータを格納しているページを使用して処理を進めている
が、処理の進展に伴って実行領域3にロードされていな
いページも必要になってくる。こうした場合に必要なペ
ージの要求がなされる。
ページ要求を受けたページ処理手段7では、まずステッ
プ601で要求ページのための領域を実行領域3に追加
できるか否かを調べ、追加できる場合はステップ802
で領域を追加し、追加できない場合はステップ803で
ページ解放処理を呼び出して空きページを設ける。
プ601で要求ページのための領域を実行領域3に追加
できるか否かを調べ、追加できる場合はステップ802
で領域を追加し、追加できない場合はステップ803で
ページ解放処理を呼び出して空きページを設ける。
次にステップ604で要求ページの変更可/不可区分2
1を調べ、変更不可であればステップ607を実行する
。変更可であればステップ605で要求ページの退避フ
ァイル区分24を調べ、退避ファイル区分24が無しく
プログラムの実行開始から退避されたことがない)であ
ればステップ607を実行する。
1を調べ、変更不可であればステップ607を実行する
。変更可であればステップ605で要求ページの退避フ
ァイル区分24を調べ、退避ファイル区分24が無しく
プログラムの実行開始から退避されたことがない)であ
ればステップ607を実行する。
ステップ607では、実行形式プログラムファイル1か
ら要求のページを実行領域3にロードする。ステップ6
05で退避ファイル区分24が無しでなければステップ
606で退避ファイル区分24に設定されている退避フ
ァイルから要求ページを実行領域3にロードする。最後
にステップ608でロードした要求ページの実行領域存
在有無区分22を育りに設定して処理を終了する。
ら要求のページを実行領域3にロードする。ステップ6
05で退避ファイル区分24が無しでなければステップ
606で退避ファイル区分24に設定されている退避フ
ァイルから要求ページを実行領域3にロードする。最後
にステップ608でロードした要求ページの実行領域存
在有無区分22を育りに設定して処理を終了する。
第7図は、チェックポイントリスタート処理手段8のリ
スタート処理を説明するステップ図である。
スタート処理を説明するステップ図である。
まず、ステップ701で退避ファイル5に退避してある
ページ管理テーブル2を入力して復元する。次にステッ
プ702で退避ファイル5に退避してある復元領域4の
位置とサイズを入力し、複写領域4の同一サイズの実行
領域3を確保して複写領域4の内容を複写する。ここで
確保する実行領域3はプログラムが異常終了するまで実
行していた実行領域3と同じ位置のものでも良いし、前
く別の位置に確保したものでも良い。
ページ管理テーブル2を入力して復元する。次にステッ
プ702で退避ファイル5に退避してある復元領域4の
位置とサイズを入力し、複写領域4の同一サイズの実行
領域3を確保して複写領域4の内容を複写する。ここで
確保する実行領域3はプログラムが異常終了するまで実
行していた実行領域3と同じ位置のものでも良いし、前
く別の位置に確保したものでも良い。
最後にステップ703で退避ファイル5に退避してある
チェックポイント発行位置を入力し、そのチェックポイ
ント発行位置の一つ次の命令に制御を戻してプログラム
を再実行する。
チェックポイント発行位置を入力し、そのチェックポイ
ント発行位置の一つ次の命令に制御を戻してプログラム
を再実行する。
第8図から第13図は、5個のページ11゜12.13
,14,15をもつプログラムを例として上記の処理動
作を示したものである。本例では、ページ11が内容変
更不可のページでそれ以外のページは内容変更可のペー
ジである。実行領域3は3個のページしか格納できない
サイズに固定されているものとしている。
,14,15をもつプログラムを例として上記の処理動
作を示したものである。本例では、ページ11が内容変
更不可のページでそれ以外のページは内容変更可のペー
ジである。実行領域3は3個のページしか格納できない
サイズに固定されているものとしている。
第8図は、プログラム実行開始時点の状態を示している
。実行領域3に3個のページ11.12および13がロ
ードされている。
。実行領域3に3個のページ11.12および13がロ
ードされている。
第9図は、プログラムの実行に伴ってページ12と13
の内容が変更された後、ページ14と15が要求されて
ページ12と13が退避ファイル5に退避された状態で
ある。
の内容が変更された後、ページ14と15が要求されて
ページ12と13が退避ファイル5に退避された状態で
ある。
第10図は、ページ14と15の内容が変更された後再
度ページ12が要求されてページ14が退避ファイル5
に退避され、ページ12が退避ファイル5より実行領域
3にロードそれた状態である。
度ページ12が要求されてページ14が退避ファイル5
に退避され、ページ12が退避ファイル5より実行領域
3にロードそれた状態である。
第11図は、第10図の状態でチェックポイントが発行
されて実行領域3の内容が複写領域4に複写された状態
を示している。このとき、ページ管理テーブル2の内容
、複写領域の位置とサイズおよびチェックポイント発行
の位置が退避ファイル5に退避される。
されて実行領域3の内容が複写領域4に複写された状態
を示している。このとき、ページ管理テーブル2の内容
、複写領域の位置とサイズおよびチェックポイント発行
の位置が退避ファイル5に退避される。
第12図は、第11図のチェックポイント発行後、さら
にプログラムの処理が進展した状態である。ページ12
と15の内容が変更された後再度ページ13と14が要
求され、ページ12を退避ファイル6に、ページ15を
退避ファイル5に退避してページ13と14を退避ファ
イル5から実行領域3にロードしている。ここで、退避
ファイル5のページ12′はチェックポイント時に退避
されたものである。
にプログラムの処理が進展した状態である。ページ12
と15の内容が変更された後再度ページ13と14が要
求され、ページ12を退避ファイル6に、ページ15を
退避ファイル5に退避してページ13と14を退避ファ
イル5から実行領域3にロードしている。ここで、退避
ファイル5のページ12′はチェックポイント時に退避
されたものである。
第13図は、第12図の状態でプログラムの異常が発生
しリスタートされるときの状態を示してイル。ページ管
理テーブル2は退避ファイル5から入力して復元されて
第11図のものと同じ内容となる。なお、退避ファイル
5のページ15′と退避ファイル6のページ12′は、
第11図のチェックポイント発行以後に退避されたもの
であって退避ファイルに入ってはいるがこのリスタート
時点では不要なものである。
しリスタートされるときの状態を示してイル。ページ管
理テーブル2は退避ファイル5から入力して復元されて
第11図のものと同じ内容となる。なお、退避ファイル
5のページ15′と退避ファイル6のページ12′は、
第11図のチェックポイント発行以後に退避されたもの
であって退避ファイルに入ってはいるがこのリスタート
時点では不要なものである。
以上説明したように本発明は、実行しているプログラム
の内容を退避するチェックポイントにおいて、二つの退
避ファイルと主記憶装置上の複写領域を準備してチェッ
クポイント発行時にはページ管理テーブルを退避ファイ
ルに退避するとともに実行領域の内容を複写領域に複写
するだけでチェックポイント処理を終了するものである
。
の内容を退避するチェックポイントにおいて、二つの退
避ファイルと主記憶装置上の複写領域を準備してチェッ
クポイント発行時にはページ管理テーブルを退避ファイ
ルに退避するとともに実行領域の内容を複写領域に複写
するだけでチェックポイント処理を終了するものである
。
このため、従来のチェックポイント処理方式とは違って
実行領域内のページや退避ファイル内のページを特別の
チェックポイントファイールに退避することがない。
実行領域内のページや退避ファイル内のページを特別の
チェックポイントファイールに退避することがない。
従って本発明はチェックポイント処理でのファイル入出
力がほとんど無く、チェックポイント処理時間が極めて
短くなり、チェックポイントを組込んでいるプログラム
の処理時間も短縮することができるという効果がある。
力がほとんど無く、チェックポイント処理時間が極めて
短くなり、チェックポイントを組込んでいるプログラム
の処理時間も短縮することができるという効果がある。
さらに、チェックポイント処理時間を特に注意すること
なくチェックポイントを発行できるため、プログラム作
成を容易にすることができ、頻繁にチェックポイントを
発行して異常終了発生時の再実行も速やかに行うことが
できるという効果もある。
なくチェックポイントを発行できるため、プログラム作
成を容易にすることができ、頻繁にチェックポイントを
発行して異常終了発生時の再実行も速やかに行うことが
できるという効果もある。
第1図は本発明の一実施例を示す構成図、第2図はペー
ジ管理テーブル2の内容を示す図、第3図はページ処理
手段7のプログラム実行開始処理を示すステップ図、第
4図はチェックポイントリスタート処理手段8のチェッ
クポイント処理を示すステップ図、第5図はページ処理
手段7のページ解放処理を示すステップ図、第6図はペ
ージ処理手段7のページ要求処理を示すステップ図、第
7図はチェックポイントリスタート処理手段8のリスタ
ート処理を示すステップ図、第8図から第13図は5個
のページをもつプログラムを用いた各処理後の状態を示
す図である。 1・・・実行形式プログラムファイル、2.・・・ペー
ジ管理テーブル、3・・・実行領域、4・・・複写領域
、5・・・退避ファイルA、6・・・退避ファイルB、
7・・・ページ処理手段、8・・・チェックポイントリ
スタート処理手段、21,22,23,24.25・・
・ページ管理テーブル2のデータ項目、301,302
.303・・・ページ処理手段7のプログラム実行開始
処理ステップ、401,402,403・・・チェック
ポイントリスタート処理手段8のチェックポイント処理
ステップ、501,502,503.504,505,
506,507,508゜509・・・ページ処理手段
7のページ解放処理ステップ、601,602.603
,804,805.606,607.Ei08・・・ペ
ージ処理手段7のページ要求処理ステップ、70L 7
02゜703・・・チェックポイントリスタート処理手
段8のリスタート処理ステップ。
ジ管理テーブル2の内容を示す図、第3図はページ処理
手段7のプログラム実行開始処理を示すステップ図、第
4図はチェックポイントリスタート処理手段8のチェッ
クポイント処理を示すステップ図、第5図はページ処理
手段7のページ解放処理を示すステップ図、第6図はペ
ージ処理手段7のページ要求処理を示すステップ図、第
7図はチェックポイントリスタート処理手段8のリスタ
ート処理を示すステップ図、第8図から第13図は5個
のページをもつプログラムを用いた各処理後の状態を示
す図である。 1・・・実行形式プログラムファイル、2.・・・ペー
ジ管理テーブル、3・・・実行領域、4・・・複写領域
、5・・・退避ファイルA、6・・・退避ファイルB、
7・・・ページ処理手段、8・・・チェックポイントリ
スタート処理手段、21,22,23,24.25・・
・ページ管理テーブル2のデータ項目、301,302
.303・・・ページ処理手段7のプログラム実行開始
処理ステップ、401,402,403・・・チェック
ポイントリスタート処理手段8のチェックポイント処理
ステップ、501,502,503.504,505,
506,507,508゜509・・・ページ処理手段
7のページ解放処理ステップ、601,602.603
,804,805.606,607.Ei08・・・ペ
ージ処理手段7のページ要求処理ステップ、70L 7
02゜703・・・チェックポイントリスタート処理手
段8のリスタート処理ステップ。
Claims (1)
- 【特許請求の範囲】 実行形式プログラムを一定サイズのページに分割して実
行に必要なページを主記憶装置に配置して実行するプロ
グラムでのページ処理とチェックポイント処理を行なう
ページ・チェックポイント処理方式において、 実行形式プログラムを格納している実行形式プログラム
ファイルと、実行形式プログラムのページを配置してプ
ログラムを実行する主記憶装置上の実行領域と、前記実
行領域の内容を複写しておくための主記憶装置上の複写
領域と、プログラムの実行によって内容が変更されたペ
ージを退避しておくための第1の退避ファイルおよび第
2の退避ファイルと、プログラム実行中のページの状態
を管理するページ管理テーブルと、前記実行形式プログ
ラムファイルや前記2つの退避ファイルと前記実行領域
との間のページ入出力を制御するページ処理手段と、前
記実行領域で実行しているプログラムからチェックポイ
ントが発行された場合に実行領域の内容を保存しかつ該
プログラムが異常終了した場合に直前に発行されたチェ
ックポイントから処理を再開させるチェックポイントリ
スタート処理手段とを有し、 前記ページ処理手段は前記ページ管理テーブルの参照と
更新をしながら、プログラムの実行開始では、前記実行
領域を確保し前記実行形式プログラムファイルからペー
ジをロードしてプログラムを実行させ、前記実行領域の
ページを解放する場合、ページの内容が一度も変更され
たことのないページおよび前記第1の退避ファイルまた
は第2の退避ファイルにページを退避した後内容変更の
ないページはそのまま解放し、内容変更されてはいるが
一度も前記第1の退避ファイルにも第2の退避ファイル
にも退避されていないページであれば前記退避ファイル
にページを退避し、既に前記第1の退避ファイルまたは
第2の退避ファイルに退避した後チェックポイントが発
行されないまま内容変更されたページであれば既に退避
してあるのと同じ前記第1の退避ファイルまたは第2の
退避ファイルにページを退避し、既に前記第1の退避フ
ァイルまたは第2の退避ファイルに退避した後チェック
ポイントが発行されて内容変更されたページであれば以
前に退避したファイルとは別の前記第2の退避ファイル
または第1の退避ファイルにページを退避し、以上の退
避の後前記実行領域上のページを解放し、プログラムの
実行に必要なページが前記実行領域に配置されていない
場合、その必要ページの最新の内容を格納している前記
実行形式プログラムファイル、前記第1の退避ファイル
または第2の退避ファイルからページをロードしてプロ
グラムの実行を続けさせ、前記チェックポイントリスタ
ート処理手段は、前記実行領域で実行しているプログラ
ムからチェックポイントが発行された場合、主記憶装置
上に前記実行領域と同一の大きさの領域を複写領域とし
て確保して前記実行領域の内容を複写するとともに前記
ページ管理テーブルの内容を前記第1の退避ファイルに
退避し、チェックポイント発行以後にプログラムが異常
終了した場合、直前のチェックポイントで複写された前
記複写領域から前記実行領域に内容を複写して復元する
とともに前記第1の退避ファイルに退避してあるページ
管理テーブルを入力して復元した後直前のチェックポイ
ント発行の次の位置に制御を戻してプログラムの実行を
再開させることを特徴とするページ・チェックポイント
処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2190310A JPH0476734A (ja) | 1990-07-18 | 1990-07-18 | ページ・チェックポイント処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2190310A JPH0476734A (ja) | 1990-07-18 | 1990-07-18 | ページ・チェックポイント処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0476734A true JPH0476734A (ja) | 1992-03-11 |
Family
ID=16256040
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2190310A Pending JPH0476734A (ja) | 1990-07-18 | 1990-07-18 | ページ・チェックポイント処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0476734A (ja) |
-
1990
- 1990-07-18 JP JP2190310A patent/JPH0476734A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5603020A (en) | Method for detecting file names by informing the task of the identification of the directory antecedent to the file | |
| JP4774056B2 (ja) | トランザクショナルなメモリアクセスのハイブリッドハードウェア・ソフトウェア実現のための方法及び装置 | |
| US7716249B2 (en) | Transaction and task scheduler | |
| CA1273434A (en) | Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log | |
| US9569254B2 (en) | Automatic checkpointing and partial rollback in software transaction memory | |
| US5666533A (en) | Program execution management using process enclaves which define the scope of high-level language semantics and threads improving cooperation between processes written in multiple languages | |
| US6799236B1 (en) | Methods and apparatus for executing code while avoiding interference | |
| US7774636B2 (en) | Method and system for kernel panic recovery | |
| US6233585B1 (en) | Isolation levels and compensating transactions in an information system | |
| Mueller et al. | A nested transaction mechanism for LOCUS | |
| JP4709469B2 (ja) | スレッドを明示的に中断することなく整合状態とする方法及び装置 | |
| JP2002505768A (ja) | 計算の状態を再構成する方法ならびにシステム | |
| JPH0950393A (ja) | 分散オブジェクトオペレーティング環境においてデータベースを管理する方法および装置 | |
| Hirve et al. | Hipertm: High performance, fault-tolerant transactional memory | |
| JP2005063435A (ja) | ソフトウェアフォールトを封じ込める方法およびシステム | |
| US20040133891A1 (en) | System and method for using native code interpretation to move threads to a safe state in a run-time environment | |
| EP0449660B1 (en) | A method and apparatus of generating shadow process | |
| JPH0465733A (ja) | バックアップファイル作成装置 | |
| Scargall | Fundamental Concepts of Persistent Memory Programming | |
| JPH02178855A (ja) | データベースのデッドロック処理方式 | |
| JPH06214848A (ja) | データベース管理システム | |
| Vandierendonck et al. | Hyperqueues: Design and implementation of deterministic concurrent queues | |
| Anshar et al. | Blind Write Protocol | |
| JPH03196222A (ja) | プログラム入替え方法 | |
| Moss et al. | SPICE |