JP3822449B2 - スタック保存方法、スタック保存プログラム及び高信頼計算機システム - Google Patents
スタック保存方法、スタック保存プログラム及び高信頼計算機システム Download PDFInfo
- Publication number
- JP3822449B2 JP3822449B2 JP2001090771A JP2001090771A JP3822449B2 JP 3822449 B2 JP3822449 B2 JP 3822449B2 JP 2001090771 A JP2001090771 A JP 2001090771A JP 2001090771 A JP2001090771 A JP 2001090771A JP 3822449 B2 JP3822449 B2 JP 3822449B2
- Authority
- JP
- Japan
- Prior art keywords
- stack
- page
- information
- checkpoint
- current
- 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
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Description
【発明の属する技術分野】
本発明は、プライマリコンピュータとバックアップコンピュータの2台のコンピュータで構成され、プライマリコンピュータで実行されるプロセスのチェックポイント情報を適宜バックアップコンピュータに転送することにより、プライマリコンピュータの障害発生時には、このチェックポイント情報をもとにプライマリコンピュータで実行されていたプロセスの処理をバックアップコンピュータに引き継ぐことを可能とした高信頼計算機システムに係り、特にスタック情報が効率的に保存可能なスタック保存方法及び、スタック保存プログラム及び高信頼計算機システムに関する。
【0002】
【従来の技術】
従来から、プライマリコンピュータとバックアップコンピュータの2台のコンピュータで構成され、プライマリコンピュータで実行されるプロセスのチェックポイント情報を適宜バックアップコンピュータに転送する高信頼計算機システムが知られている。この種のシステムでは、プライマリコンピュータの障害発生時には、当該プライマリコンピュータからバックアップコンピュータに転送されていたチェックポイント情報をもとにして、プロセスをバックアップコンピュータで復元することにより、プライマリコンピュータで実行されていたプロセスの処理を即座にバックアップコンピュータに引き継ぐことを可能としている。
【0003】
さて、米国特許“Checkpointing Computer System Having Duplicated Files for Executing Process and Method for Managing the Duplicated Files for Restoring the Process”(USP5907673)や、論文「分散チェックポイント方式との組合せによりフォールトトレラントシステムを実現する分散レプリケーション方式」(電子情報通信学会論文誌 D-1 Vol.J82-D-1 No3 pp.496-507 1999年3月)で記述されているような高信頼計算機システムにおいてプロセスのチェックポイント情報を採取する場合、メモリ及びデータセクション情報は、一般にそのサイズが大きくなるため、領域全体を保存すると性能劣化を引き起こすことになる。そこで、この種の高信頼計算機システムでは、前回のチェックポイント採取時から更新されたページのみを新しいチェックポイント情報として保存する差分保存方式を採用するのが一般的である。
【0004】
差分保存方式とは、最初のチェックポイント採取時のみ保存対象領域全体を保存し、以降のチェックポイントでは、前回のチェックポイント採取時からの更新ページのみを保存する方法である。この方法は、領域全体を保存する方法に比べて、一般にはるかに保存する情報を少なくすることができる。
【0005】
差分保存方式を実現するためには、保存対象領域全体にライトプロテクトをかけ、書き込みによりエクセプション(exception:例外処理)を発生したページ情報を記録しておく必要がある。
【0006】
差分保存されたチェックポイント情報から領域全体の情報を復元するためには、最初のチェックポイントで保存した全体情報に対して、以降のチェックポイントで保存した差分情報をマージしていけばよい。
【0007】
スタック(スタック情報)の保存に際しても、チェックポイント採取時の性能劣化を防ぐためには、差分保存することが望ましい。しかしスタックに対して差分保存方式を適用するためにスタック全体にライトプロテクトをかけた場合、エクセプション発生時にエクセプションハンドラに跳ぶための準備として、カレントスタックにアクセス(書き込みアクセス)するときに更にエクセプションが発生してしまう。つまり、ダブルフォールトとなってしまう。この場合、正常なエクセプション処理を行えなくなってしまう。
【0008】
このため従来は、スタックに対してはメモリやデータセクションと同じような差分保存方式を適用することができず、スタック全体を保存せざるを得なかった。
【0009】
【発明が解決しようとする課題】
上記したように、プライマリコンピュータで実行されるプロセスのチェックポイント情報を差分保存方式により採取して適宜バックアップコンピュータに転送する従来の高信頼計算機システムでは、スタックの保存についてはメモリやデータセクションと同じような差分保存方式を適用することができないことから、スタック全体を保存するのが一般的であった。
【0010】
通常、スタックサイズは余り大きくならないため、差分保存方式を適用せずにスタック全体の保存を行っても性能に対する影響は少ないとされていた。
【0011】
ところが、プログラマが、例えば“alloca( )”等のAPI(Application Program Interface)を使用してスタック領域上に大きなメモリ領域を割り当てた場合、スタックサイズは割り当てられたメモリサイズに依存して大きくなるため、チェックポイント採取毎にスタック領域全体を保存していては大きな性能劣化につながることになる。なお、“alloca( )”で表されるフォーマットの関数の例として、“void *alloca(size t size)”のように表現される関数がある。この関数は、sizeで示されるサイズのメモリ領域を、呼び出した関数のスタックフレーム上に割り当て、そのアドレスを返すというものである。ここで割り当てられたメモリ領域は、呼び出した関数が終了するときに自動的に解放される。
【0012】
このように従来は、スタックの保存について差分保存方式を適用せずにスタック領域全体を保存していたため、スタック領域上に大きなメモリ領域を割り当てた場合には、大きな性能劣化を招くという問題があった。
【0013】
本発明は上記事情を考慮してなされたものでその目的は、スタック保存に際し、前回のチェックポイント採取時からの差分情報のみを保存することを可能にすることにより、スタックサイズが大きくなった場合におけるチェックポイント処理の性能劣化を防ぐことができるスタック保存方法及び、スタック保存プログラム及び高信頼計算機システムを提供することにある。
【0014】
【課題を解決するための手段】
本発明は、プライマリコンピュータで実行されているプロセスのチェックポイント情報を適宜バックアップコンピュータに転送することにより、プライマリコンピュータの障害発生時には、このチェックポイント情報をもとにしてプロセスをバックアップコンピュータで復元することが可能な高信頼計算機システムにおけるプライマリコンピュータで適用されるスタック保存方法であって、最初のチェックポイント採取時にスタック領域上のスタック情報全体を保存するステップと、2回目以降のチェックポイント採取時毎に、スタック領域上の前回のチェックポイント採取時以降に更新されたページを差分情報として保存するステップと、スタック情報全体または更新ページを保存した際、スタック領域上のカレントスタックが存在するページを更新ページとして記録すると共に、スタック領域上の残りのページにライトプロテクトをかけるステップと、スタック領域上のライトプロテクトがかかっているページへの書き込みが発生した場合に、ライトエクセプション処理により当該ページを更新ページとして記録すると共に当該ページのライトプロテクトを外すステップとを備えたことを特徴とする。
【0015】
このような構成においては、カレントスタックには常にライトプロテクトがかかっていない状態を保持しつつ、その他のスタックフレームにはライトプロテクトがかけられる。このため、エクセプション発生時にカレントスタックにアクセス(書き込みアクセス)するときに更にエクセプションが発生するというダブルフォールトの恐れはない。また、ライトプロテクトがかかったページへの書き込みが発生した場合には、(エクセプションハンドラの)ライトエクセプション処理により当該ページが更新ページとして記録され、しかもライトエクセプション処理が発生しないカレントスタックが存在するページは、残りのページにライトプロテクトをかける際に、無条件で更新ページとして記録されるため、前回のチェックポイントから更新されたページを識別でき、これによりチェックポイント採取時には、スタック情報に関して、当該前回のチェックポイントから更新されたページ(記録されている更新ページ)のみを保存する差分保存が可能となる。
【0016】
ここで、カレントスタックが切り替わった場合には、切り替え後の新たなカレントスタックが存在するページのうち、ライトプロテクトがかかっているページのライトプロテクトを外すと共に、当該ページを更新ページとして記録するためのカレントスタック管理ルーチンを実行するとよい。
【0017】
このようにすると、カレントスタックが切り替わってもダブルフォールトの発生を防止でき、前回のチェックポイントから更新されたページのみを保存する差分保存を可能とする。
【0018】
また、スタック情報全体または更新ページを保存した際には、スタック領域上の各スタックフレームに設定されている、カレントスタックが切り替わったときに実行されるインストラクションアドレスを指す各第1のインストラクションポインタ(IPi)をカレントスタック管理ルーチンの実行アドレスを指す第2のインストラクションポインタ(IPx)に変更して、元の各第1のインストラクションポインタを保存するとよい。また、カレントスタックが切り替わった直後には、切り替え前のカレントスタック上のIPxの指すアドレスにジャンプし、カレントスタック管理ルーチンの実行終了時には、切り替え前のカレントスタック上の上記保存されているIPiの指すアドレスにジャンプするとよい。
【0019】
このような構成においては、カレントスタックが切り替わった直後には、変更されたPxの指定するカレントスタック管理ルーチンが実行されて、当該ルーチンの実行後に本来のIPiの指すルーチンが実行される。
【0020】
また本発明は、2回目以降のチェックポイント採取時毎に、今回のチェックポイント採取時のスタックサイズと前回のチェックポイント採取時のスタックサイズとを比較し、今回のチェックポイント採取時のスタックサイズの方が小さい場合には、記録されている更新ページのうち、今回のチェックポイント採取時のスタック領域に含まれているページのみを保存し、今回のチェックポイント採取時のスタックサイズの方が大きい場合には、記録されている更新ページと、前回のチェックポイント採取時から増加したページとを保存するようにしたことを特徴とする。
このような構成においては、不要なページの保存が発生するのを防止できる。
【0021】
以上のスタック保存方法に係る本発明は、当該方法を適用する高信頼計算機システムにおけるプライマリコンピュータで実行されるプログラム(スタック保存プログラム)に係る発明としても成立し、また高信頼計算機システムに係る発明としても成立する。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【0023】
図1は本発明の一実施形態に係る高信頼計算機システムの構成を示すブロック図である。
図1のシステムは、相互接続されたプライマリコンピュータ10とバックアップコンピュータ20との2台のコンピュータで構成される。コンピュータ10,20は、それぞれ外部記憶装置18,28を備えている。プライマリコンピュータ10は稼動側コンピュータであり、バックアップコンピュータ20は待機側コンピュータである。
【0024】
図1のシステムにおいて、プライマリコンピュータ10は、当該コンピュータ10で実行されるプロセスのチェックポイント情報を矢印30で示すように適宜バックアップコンピュータ20に転送する。バックアップコンピュータ20は、プライマリコンピュータ10の障害発生時には、プライマリコンピュータ10からバックアップコンピュータ20に転送されていたチェックポイント情報をもとにして、プロセスを復元することにより、プライマリコンピュータ10で実行されていたプロセスの処理を即座に引き継ぐ。
【0025】
本実施形態の特徴は、プライマリコンピュータ10でのチェックポイント採取に、メモリ及びデータセクション情報は勿論、スタック(スタック情報)についても、差分保存方式を適用している点である。
【0026】
そこでプライマリコンピュータ10は、スタック(スタック情報)を差分保存方式で保存可能なように、スタック情報管理部11、更新ページ管理部12、エクセプションハンドラ13、カレントスタック管理部14、IP変更部15、IP管理部16及びスタックサイズ記録部17の各機能ブロックを有している。これらの機能ブロックは、プライマリコンピュータ10(のCPU)がスタック情報を差分保存方式で保存可能とする所定のプログラム(スタック保存プログラム)を実行することにより実現される。
【0027】
スタック情報管理部11は、各チェックポイントでスタック情報を保存すると共に、保存したスタック情報をページ単位で管理する。つまりスタック情報管理部11は、各チェックポイントで保存したスタックのページ情報を管理する。
【0028】
更新ページ管理部12は、現在利用されているスタック、つまりカレントスタックが存在するページ以外のスタック領域にライトプロテクトをかけ、前回のチェックポイント採取時から更新されたページを記録する。
【0029】
エクセプションハンドラ13は、スタックへの書き込みによるページ更新に起因して発生するライトエクセプション(書き込み例外処理)を実行する。
カレントスタック管理部14は、カレントスタックが切り替わった(移動した)ときに、新たなカレントスタックが存在するぺージの属性を調べ、ライトプロテクトがかかっている場合はそれを外す。
【0030】
IP変更部15は、カレントスタックが切り替わったときに実行されるインストラクションアドレス(命令アドレス)を示している各スタックフレーム上のインストラクションポインタ(IP)を書き換えて、カレントスタック管理部14の実行アドレス(の指す特定ルーチン)にジャンプさせる。
【0031】
IP管理部16は、IP変更部15によって書き換えられた(変更された)IPとそのIPに対応するスタックフレームの対応関係を管理し、カレントスタック管理部14の実行直後に、IP変更部15によって書き換えられたIPを元の値に戻す。
スタックサイズ記録部17は、チェックポイント採取時のスタックサイズを記録する。
【0032】
次に、図1のシステム内のプライマリコンピュータ10でのチェックポイント採取時におけるスタック保存について、図2乃至図4の動作説明図、並びに図5乃至図8のフローチャートを参照して説明する。なお、以下の説明では、CP(i)はi番目(i=1,2,3…)のチェックポイントを表しているものとする。
【0033】
(1)最初のチェックポイントであるCP(1)では、スタック情報管理部11は、図2(a)において矢印202で示すようにスタック領域201全体を保存する(ステップS1)。なお、この時点では、スタック領域201には、スタックフレーム#1,#2,#3,#4…が積まれており、スタックフレーム#1がカレントスタックになっているものとする。ここで、スタックフレーム#1,#2,#3,#4…の境界は必ずしもページ境界に一致しない。また、各スタックフレーム#1,#2,#3,#4…には、それぞれ、そのスタックフレームに対応する関数を実行し終った直後に実行されるコードのインストラクションポインタ(第1のインストラクションポインタ)IP1,IP2,IP3,IP4…が格納されている。
【0034】
(2)CP(1)でスタック領域201全体を保存すると、IP変更部15によって、各スタックフレーム#1,#2,#3,#4…上のIP1,IP2,IP3,IP4…を、図2(b)において矢印203で示すように、カレントスタック管理部14の実行アドレスを指す特定インストラクションポインタ(第2のインストラクションポインタ)IPxに書き換える(変更する)(ステップS2)。このとき、変更前のIP1,IP2,IP3,IP4…を、図2(b)において矢印204で示すようにIP管理部16に保存する。
【0035】
また、カレントスタックが存在するページ(ここではページ#1)を更新ページとして、図2(b)において矢印205で示すように更新ページ管理部12に記録(登録)する(ステップS3)。そしてスタック領域201のうち、カレントスタックが存在するページ(#1)以外のページ領域(ここでは、ページ#2,#3,#4…の領域)には、更新ページ管理部12により、図2(b)において矢印206で示すようにライトプロテクト(ハッチングが施されている部分)をかける(ステップS4)。また更新ページ管理部12により、ライトエクセプションをハンドルするためのエクセプションハンドラ13を、図2(b)において矢印207で示すように設定する(ステップS5)。このときのスタック全体のサイズを、図2(b)において矢印208で示すようにスタックサイズ記録部17に記録する。
【0036】
(3)ここで、スタック領域201上でライトプロテクトがかけられている領域内のぺージ#P、例えばページ#4への書き込み要求が、図3(a)において矢印301で示すように発生したものとする(ステップS11)。この場合、ライトエクセプションが発生して、図3(a)において矢印302で示すようにエクセプションハンドラ13が起動される(ステップS12)。すると、エクセプションハンドラ13により、図3(a)において矢印303で示すように更新ページ管理部12が起動される。更新ページ管理部12は、書き込み要求が発生したページ#4の情報を更新ページの情報として図3(a)において矢印304で示すように登録し、当該ページ#4のライトプロテクトを図3(a)において矢印305で示すように外す(ステップS13)。
【0037】
(4)次に、実行中の関数が終了して、図3(b)において矢印306で示すようにカレントスタックがスタックフレーム#1から直前のスタックフレーム#2に切り替わった(移動した)ものとする(ステップS21)。この場合、カレントスタック切り替え直後に、元のカレントスタック(スタックフレーム#1)上のIPxの指すアドレス、即ちカレントスタック管理部14の実行アドレスに、図3(b)において矢印207で示すようにジャンプする(ステップS22)。
【0038】
するとカレントスタック管理部14では、新しいカレントスタックが存在するスタック領域201上のページ、即ち新しいカレントスタックになるスタックフレーム#2が存在する3つのページ#1,#2,#3の属性を調べて、図3(b)において矢印308で示すように更新ページ管理部12に通知し、ライトプロテクトのかかっているページ#2,#3を更新ページとして図3(b)において矢印309で示すように当該更新ページ管理部12に記録する(ステップS23)。このステップS23ではまた、更新ページ管理部12に記録したスタック領域201上のページ#2,#3のライトプロテクトを、図3(b)において矢印310で示すように外す。その後、カレントスタック管理部14は、図3(b)において矢印311で示すようにIP管理部16に保存された元のカレントスタック#1上の本来のIP(IP1)を参照し、図3(b)において矢印312で示すように当該IP(IP1)の指すアドレスにジャンプする(ステップS24)。
【0039】
(5)次のCP(2)では基本的に、更新ページ管理部12に登録(記録)されているページを直前のCP(1)からの差分情報として、スタック情報管理部11により保存する。但し、そのときのスタックサイズが、CP(1)でスタックサイズ記録部17に記録したスタックサイズよりも大きいか否かで、以下に述べるように保存対象が異なる。
【0040】
まず、上記(4)の直後にCP(2)が採取された場合、スタックサイズは図4(a)に示すように、図2に示したCP(1)のスタックサイズ以下になる(ステップS31)。ここでは、図4(a)に示す領域401に対応するスタックフレーム#1、つまり元のカレントスタックのサイズ分が、前回のCP(1)からの減少分となる。このときは、更新ページ管理部12に記録されている更新ページ(ページ#1,#4,#2,#3)のうち、今回のCP(2)のスタック領域に含まれるぺージ、即ちページ#2,#3,#4のみを、図4(a)において符号402で示すようにチェックポイント情報として保存する(ステップS32)。つまり、CP(2)のスタック領域から外れるページ#1は、図4(a)において矢印403で示すように保存対象外となる。
【0041】
一方、上記(4)以降、幾つかの関数コールが実行されて、例えば図4(b)に示すように、スタックフレーム#2の上に新たにスタックフレーム#5,#6が積まれた後にCP(2)が採取された場合、スタックサイズは図2に示したCP(1)よりも大きくなる(ステップS31)。ここでは、図4(b)に示す領域404に対応するスタックフレーム#6、つまり新たなカレントスタックのサイズ分が、前回のCP(1)からの増加分となる。また、領域405に対応するスタックフレーム#5及び#6が、上記(4)以降、つまり図3(b)の状態以降にスタック領域に積まれた分となる。このときは、更新ページ管理部12に記録されているページ#1,#2,#3,#4、及びCP(1)から増加したページ#6を、図4(b)において矢印406で示すようにチェックポイント情報として保存する(ステップS33)。
【0042】
(6)この後、上記ステップS2〜S4と同様のステップS34〜S36が、上記(2)に相当する処理として行われ、更に上記(3),(4)の処理が行われる。
【0043】
(7)CP(3)以降は、上記(5),(6),(3),(4)が繰り返される。
【0044】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0045】
【発明の効果】
以上詳述したように本発明によれば、カレントスタックには常にライトプロテクトがかかっていない状態を保持しつつ、その他のスタックフレームにはライトプロテクトをかけることにより、更新されたページの識別を可能にし、これによりチェックポイント採取時には、前回のチェックポイントから更新されたページのみを保存する差分保存が適用可能となる。よって、本発明によれば、スタックサイズが大きくなった場合でも、性能劣化を引き起こさずにスタック情報を保存することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る高信頼計算機システムの構成を示すブロック図。
【図2】同実施形態における最初のチェックポイント採取時のスタック保存の動作説明図。
【図3】同実施形態においてスタック上のライトプロテクトがかかっているページへの書き込み要求が発生した場合と、カレントスタックが移動した場合の動作説明図。
【図4】同実施形態における2回目以降のチェックポイント採取時のスタックの差分保存の動作説明図。
【図5】最初のチェックポイント採取時のスタック保存の処理手順を説明するためのフローチャート。
【図6】スタック上のライトプロテクトがかかっているページへの書き込み要求が発生した場合の処理手順を説明するためのフローチャート。
【図7】カレントスタックが移動する際の処理手順を説明するためのフローチャート。
【図8】2回目以降のチェックポイント採取時のスタックの差分保存の手順を説明するためのフローチャート。
【符号の説明】
10…プライマリコンピュータ
20…バックアップコンピュータ
11…スタック情報管理部
12…更新ページ管理部
13…エクセプションハンドラ
14…カレントスタック管理部
15…IP変更部
16…IP管理部
17…スタックサイズ記録部
Claims (7)
- プライマリコンピュータで実行されているプロセスのチェックポイント情報を適宜バックアップコンピュータに転送することにより、プライマリコンピュータの障害発生時には、このチェックポイント情報をもとにしてプロセスをバックアップコンピュータで復元することが可能な高信頼計算機システムにおける前記プライマリコンピュータで適用されるスタック保存方法であって、
最初のチェックポイント採取時にスタック領域上のスタック情報全体を保存するステップと、
2回目以降のチェックポイント採取時毎に、前記スタック領域上の前回のチェックポイント採取時以降に更新されたページを差分情報として保存するステップと、
前記スタック情報全体または前記更新ページを保存した際、前記スタック領域上のカレントスタックが存在するページを更新ページとして記録すると共に、前記スタック領域上の残りのページにライトプロテクトをかけるステップと、
前記スタック領域上の前記ライトプロテクトがかかっているページへの書き込みが発生した場合に、ライトエクセプション処理により当該ページを更新ページとして記録すると共に当該ページのライトプロテクトを外すステップと
を具備することを特徴とするスタック保存方法。 - 前記カレントスタックが切り替わった場合に、切り替え後の新たなカレントスタックが存在するページのうち、ライトプロテクトがかかっているページのライトプロテクトを外すと共に、当該ページを更新ページとして記録するためのカレントスタック管理ルーチンを実行するステップを更に具備することを特徴とする請求項1記載のスタック保存方法。
- 前記スタック情報全体または前記更新ページを保存した際、前記スタック領域上の各スタックフレームに設定されている、カレントスタックが切り替わったときに実行されるインストラクションアドレスを指す各第1のインストラクションポインタを前記カレントスタック管理ルーチンの実行アドレスを指す第2のインストラクションポインタに変更して、元の前記各第1のインストラクションポインタを保存するステップと、
前記カレントスタックが切り替わった直後に、切り替え前のカレントスタック上の前記第2のインストラクションポインタの指すアドレスにジャンプするステップと
前記カレントスタック管理ルーチンの実行終了時に、前記切り替え前のカレントスタック上の前記保存されているインストラクションポインタの指すアドレスにジャンプするステップと
を更に具備することを特徴とする請求項2記載のスタック保存方法。 - 2回目以降のチェックポイント採取時毎に、今回のチェックポイント採取時のスタックサイズと前回のチェックポイント採取時のスタックサイズとを比較するステップとを更に具備し、
前記更新されたページを保存するステップでは、今回のチェックポイント採取時のスタックサイズの方が小さい場合には、記録されている更新ページのうち、今回のチェックポイント採取時のスタック領域に含まれているページのみを保存対象更新ページとして保存し、今回のチェックポイント採取時のスタックサイズの方が大きい場合には、記録されている更新ページと、前回のチェックポイント採取時から増加したページとを保存対象更新ページとして保存する
ことを特徴とする請求項2記載のスタック保存方法。 - プライマリコンピュータで実行されているプロセスのチェックポイント情報を適宜バックアップコンピュータに転送することにより、プライマリコンピュータの障害発生時には、このチェックポイント情報をもとにしてプロセスをバックアップコンピュータで復元することが可能な高信頼計算機システムにおける前記プライマリコンピュータで実行されるスタック保存プログラムであって、
前記プライマリコンピュータに、
最初のチェックポイント採取時にスタック領域上のスタック情報全体を保存するステップと、
2回目以降のチェックポイント採取時毎に、スタック領域上の前回のチェックポイント採取時以降に更新されたページを差分情報として保存するステップと、
前記スタック情報全体または前記更新ページを保存した際、前記スタック領域上のカレントスタックが存在するページを更新ページとして記録すると共に、前記スタック領域上の残りのページにライトプロテクトをかけるステップと、
前記スタック領域上の前記ライトプロテクトがかかっているページへの書き込みが発生した場合に、ライトエクセプション処理により当該ページを更新ページとして記録すると共に当該ページのライトプロテクトを外すステップと
を実行させるためのスタック保存プログラム。 - プライマリコンピュータで実行されているプロセスのチェックポイント情報を適宜バックアップコンピュータに転送することにより、プライマリコンピュータの障害発生時には、このチェックポイント情報をもとにしてプロセスをバックアップコンピュータで復元することが可能な高信頼計算機システムにおいて、
前記プライマリコンピュータは、
スタック領域上のスタック情報をページ単位で管理するスタック情報管理手段であって、最初のチェックポイント採取時には前記スタック領域上のスタック情報全体を保存し、2回目以降のチェックポイント採取時には、前記スタック領域上の前回のチェックポイント採取時以降に更新されたページを差分情報として保存するスタック情報管理手段と、
前回のチェックポイント採取時から更新されたページを記録する更新ページ管理手段であって、前記スタック情報管理手段により前記スタック情報全体または前記更新ページが保存された際に、前記スタック領域上のカレントスタックが存在するページを更新ページとして記録すると共に、前記スタック領域上の残りのページにライトプロテクトをかける更新ページ管理手段と、
前記スタック領域上の前記ライトプロテクトがかかっているページへの書き込みが発生した場合に起動されて、前記更新ページ管理手段により当該ページを更新ページとして記録すると共に当該ページのライトプロテクトを外すエクセプションハンドラと
を具備することを特徴とする高信頼計算機システム。 - 前記プライマリコンピュータは、
前記カレントスタックが切り替わった場合に起動されて、前記更新ページ管理手段により、切り替え後の新たなカレントスタックが存在するページのうち、ライトプロテクトがかかっているページのライトプロテクトを外すと共に、当該ページを更新ページとして記録するカレントスタック管理手段と、
前記スタック情報管理手段により前記スタック情報全体または前記更新ページが保存された際に、前記スタック領域上の各スタックフレームに設定されている、カレントスタックが切り替わったときに実行されるインストラクションアドレスを指す各第1のインストラクションポインタを前記カレントスタック管理手段を起動するための実行アドレスを指す第2のインストラクションポインタに変更するインストラクションポインタ変更手段と、
前記インストラクションポインタ変更手段による変更前の元の前記各第1のインストラクションポインタを対応するスタックフレームと対応付けて保存して、カレントスタックが切り替わった際に切り替え前のカレントスタック上の前記第2のインストラクションポインタの指定により起動された前記カレントスタック管理手段の実行終了時に、当該カレントスタック上の前記保存されているインストラクションポインタの指すアドレスにジャンプさせるインストラクションポインタ管理手段と
を更に具備することを特徴とする請求項6記載の高信頼計算機システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001090771A JP3822449B2 (ja) | 2001-03-27 | 2001-03-27 | スタック保存方法、スタック保存プログラム及び高信頼計算機システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001090771A JP3822449B2 (ja) | 2001-03-27 | 2001-03-27 | スタック保存方法、スタック保存プログラム及び高信頼計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002287998A JP2002287998A (ja) | 2002-10-04 |
JP3822449B2 true JP3822449B2 (ja) | 2006-09-20 |
Family
ID=18945510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001090771A Expired - Fee Related JP3822449B2 (ja) | 2001-03-27 | 2001-03-27 | スタック保存方法、スタック保存プログラム及び高信頼計算機システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3822449B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7340574B2 (en) * | 2005-08-30 | 2008-03-04 | Rockwell Automation Technologies, Inc. | Method and apparatus for synchronizing an industrial controller with a redundant controller |
-
2001
- 2001-03-27 JP JP2001090771A patent/JP3822449B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002287998A (ja) | 2002-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5974426A (en) | Device and method for data recovery in a file system | |
US7325159B2 (en) | Method and system for data recovery in a continuous data protection system | |
JP4363676B2 (ja) | コンピュータシステム | |
US7246211B1 (en) | System and method for using file system snapshots for online data backup | |
US5043871A (en) | Method and apparatus for database update/recovery | |
US7650533B1 (en) | Method and system for performing a restoration in a continuous data protection system | |
JP4248510B2 (ja) | 計算機システム、ディスク装置およびデータ更新制御方法 | |
KR100238925B1 (ko) | 비휘발성 메모리를 갖는 복원 가능 디스크 제어 시스템 | |
JP2003223287A (ja) | 記憶装置、この記憶装置のバックアップ方法及びプログラム | |
JP2007133471A (ja) | ストレージ装置及びスナップショットのリストア方法 | |
KR20170054767A (ko) | 데이터베이스 관리 시스템 및 그의 데이터 변경 및 복구 방법 | |
US7165160B2 (en) | Computing system with memory mirroring and snapshot reliability | |
US20050262033A1 (en) | Data recording apparatus, data recording method, program for implementing the method, and program recording medium | |
JPH10326220A (ja) | ファイルシステムおよびファイル管理方法 | |
JP4159506B2 (ja) | 階層記憶装置、その復旧方法、及び復旧プログラム | |
JP3822449B2 (ja) | スタック保存方法、スタック保存プログラム及び高信頼計算機システム | |
JPH06149485A (ja) | データ完結性保証処理方法 | |
JPH033046A (ja) | ログ記録管理方式 | |
JP2513060B2 (ja) | 故障回復型計算機 | |
JPS62245348A (ja) | データベース更新方法 | |
JP3043662B2 (ja) | データバックアップ方式 | |
JP2001188690A (ja) | コンピュータシステム及びチェックポイント情報保存方法 | |
US7890798B1 (en) | Computer cluster with second-node instance of application having access to state snapshot of first-node instance of application | |
JPS63132351A (ja) | メモリデ−タベ−ス処理装置 | |
JP3463696B2 (ja) | オンラインガーベッジコレクション処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040915 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060531 |
|
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: 20060620 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060622 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130630 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |