JPH0991159A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JPH0991159A
JPH0991159A JP24953795A JP24953795A JPH0991159A JP H0991159 A JPH0991159 A JP H0991159A JP 24953795 A JP24953795 A JP 24953795A JP 24953795 A JP24953795 A JP 24953795A JP H0991159 A JPH0991159 A JP H0991159A
Authority
JP
Japan
Prior art keywords
input
thread
lock
output
request
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
Application number
JP24953795A
Other languages
English (en)
Inventor
Kazunori Sekido
一紀 関戸
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP24953795A priority Critical patent/JPH0991159A/ja
Publication of JPH0991159A publication Critical patent/JPH0991159A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】非決定性が含まれない入出力要求などを直ちに
入出力装置に発行することによってその応答時間を飛躍
的に短縮させる計算機システムを提供する。 【解決手段】スレッドが入出力要求を発行したときに、
ロック操作記録部3に記録されたロック操作を参照して
このスレッドが直列実行可能であるか否かを判定する再
現性判定部4と、直列実行可能であると判定したとき
に、その入出力要求を即座に入出力装置に対して発行す
るとともに入力装置から渡されたデータを保持しておく
入力データ保持部6とを具備し、チェックポイントロー
ルバック機能により計算機システムの状態が所定のチェ
ックポイントに復旧された際、直列実行可能と判定され
たスレッドが入力要求を発行したときには、この入力要
求に対応したデータを入力データ保持部6から引き渡
し、出力要求を発行したときには、実際の出力を行なわ
ずに出力完了として処理することを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、チェックポイン
トロールバック機能を有したフォールトトレラントの計
算機システムに係り、特に非決定性を含まない入出力要
求およびロック獲得順序を再現可能な入出力要求を次の
チェックポイント取得を待機せずに即座に発行すること
により、耐障害性を損なうことなく入出力処理の応答時
間を飛躍的に短縮させる計算機システムに関する。
【0002】
【従来の技術】近年、計算機システムの普及がめざまし
く、高信頼性とともに耐障害性が強く要求されてきてい
る。そして、この耐障害性を実現する機能の一つにチェ
ックポイントロールバック機能が存在する。ここで、こ
のチェックポイントロールバック機能を有したフォール
トトレラント計算機システムについて説明する。なお、
この計算機については「文献 IEEE.Computer,Vol 26,No
2"」に詳しいので、ここでは後述する本発明に関係する
部分のみを簡単に説明する。
【0003】フォールトトレラント計算機(FTマシ
ン)とは、たとえばハードウェアに故障が発生した場合
であっても、その際に実行中であった処理を継続するこ
とのできる計算機をいう。普通の計算機では、ハードウ
ェアに故障が発生すると、プロセッサやメモリの状態お
よび内容が保証されなくなるので、その時点で停止せざ
るをえなかった。しかし、チェックポイントロールバッ
ク(CP&RB)方式のFTマシンでは、故障が検出さ
れた時点で、事前に採取しておいた、故障が発生する前
の正しい状態にプロセッサやメモリの状態および内容を
戻し、その故障を取り除いてから再実行する。なお、こ
こでいうチェックポイントとは、故障が起きた時に戻っ
て再実行できることを保証した状態をいう。すなわち、
CP&RB方式のFTマシンでは、チェックポイントを
適宜採取しながら通常の処理を進めることにより、いつ
故障が起こっても再実行できるようにしている。
【0004】
【発明が解決しようとする課題】まず、CP&RB方式
のFTマシンにおける入出力処理について考える。先に
述べたように、CP&RB方式のFTマシンでは、故障
が起こった時点で直前のチェックポイントまで戻り、そ
こから再実行が行なわれる。このため、入出力要求が発
生した際、即時にその入出力要求を入出力装置に引き渡
していたのでは、チェックポイントから再実行したとき
に、同じ要求が2度処理されてしまうことになる。さら
に、非決定性があると、再実行したときに障害発生時と
まったく同じ動作を保証することができなくなり、障害
前とは違った入出力要求が入出力装置に引き渡される場
合もありうることになる。
【0005】ここで、非決定性について図19を参照し
て説明する。ここでは、図19に示したように、2台の
CPUがプログラムを並列に実行する場合を考える。な
お、図19において、「lock」および「unloc
k」で囲まれた命令は、一時期には1台のCPUしか実
行できないことを意味する。この例では、CPU1が先
に「lock」するか、CPU2が先に「lock」す
るかの2通りを示しており、図19に示したように、前
者の場合には、CPU1からは5が、CPU2からは7
が出力され、後者の場合には、CPU1およびCPU2
の両方から6が出力され、どちらが先に「lock」す
るかによって出力される結果が異なる。さらに、どちら
が先に「lock」するかはそのときの状況により決定
され、プログラムの中で規定されていない。したがっ
て、同じ状態で実行させてもそのときの状況により違う
結果が出力される。このような性質を非決定性という。
複数のCPUをもつ計算機にはほとんどこの非決定性が
ある。
【0006】また、入出力要求は、一度入出力装置に送
られてしまうと、入出力装置はその要求を実行してしま
い、後からそれをキャンセルすることはできない。たと
えば、他の計算機へメッセージを送信する要求が実行さ
れると、そのメッセージは相手の計算機へ渡ってしま
い、後から送らなかったことにするなどといったことは
できない。したがって、CP&RB方式のFTマシンで
は、すべての入出力装置への要求(入出力要求)は、チ
ェックポイントを採取して、状態が確定した後でしか入
出力装置に渡されなかった。
【0007】このため、プログラムから見た入出力時間
は、実際の入出力時間にチェックポイントまでの時間が
加算されてしまうため、普通の計算機よりも応答時間が
長くなってしまうという問題があった。また、チェック
ポイント直後にそれまで待たされていた要求が一度に引
き渡されるので、普通の計算機よりも入出力処理が集中
してしまい、処理時間も長くかかってしまうという問題
があった。
【0008】この発明は、このような実情に鑑みてなさ
れたものであり、非決定性が含まれない入出力要求、お
よびロック獲得順序を再現可能である入出力要求を判別
し、これらの入出力要求を即座に入出力装置に発行する
ことによって耐障害性を損なうことなく入出力処理の応
答時間を飛躍的に短縮させる計算機システムを提供する
ことを目的とする。
【0009】
【課題を解決するための手段】本発明の計算機システム
は、チェックポイントロールバック機能を有してなるフ
ォールトトレラント計算機システムにおいて、前記計算
機システムにて実行されるスレッドのスケジューリング
順序を記録する実行順序記録手段と、前記スレッドが行
なったロック操作を記録するロック操作記録手段と、前
記スレッドが入出力要求を発行したときに、前記ロック
操作記録手段に記録されたロック操作を参照してこのス
レッドが他のスレッドとの間で依存関係をもつことなく
直列実行可能であるか否かを判定する再現性判定手段
と、前記再現性判定手段が直列実行可能であると判定し
たときに、その入出力要求を即座に入出力装置に対して
発行するとともに、この入出力要求が入力要求であった
際に入力装置から渡されたデータを保持しておく入力デ
ータ保持手段と、前記直列実行可能と判定されたスレッ
ドそれぞれが発行した入出力要求の順序を記録する入出
力記録手段と、前記チェックポイントロールバック機能
により前記計算機システムの状態が所定のチェックポイ
ントに復旧された際、前記実行順序記録手段に記録され
たスケジューリング順序および前記ロック操作記録手段
に記録されたロック操作にしたがって前記スレッドを再
実行させ、前記直列実行可能と判定されたスレッドが入
力要求を発行したときには、前記入出力記録手段を参照
してこの入力要求に対応したデータを前記入力データ保
持手段から引き渡し、出力要求を発行したときには、実
際の出力を行なわずに出力完了として処理する回復処理
手段とを具備することを特徴とする。
【0010】この計算機システムによれば、実行中のス
レッドが入出力要求を発行したときに、再現性判定手段
が、このスレッドが他のスレッドとの間で依存関係をも
つことなく直列実行可能であるか否かを判定する。たと
えば、同時に実行中の他のスレッドが獲得中または過去
に獲得したロックを獲得する場合などは、他のスレッド
との間で依存関係をもつこととなり、直列実行は不可能
であると判定される。この判定は、ロック操作記録手段
が記録する各スレッドのロック操作に基づいて行なわれ
る。
【0011】ここで、直列実行可能と判定されると、入
力データ保持手段は、この入出力要求を次のチェックポ
イント取得を待機せずに即座に入出力装置に対して発行
する。また、この入出力要求が入力要求であった場合に
は、入力装置から渡されるデータを保持しておく。
【0012】一方、計算機システムに障害が発生する
と、計算機システムは、チェックポイントロールバック
機能により所定のチェックポイント取得時(ほとんどの
場合、直前に取得されたチェックポイント取得時)にそ
の状態が復旧される。ここで、回復処理手段は、実行順
序記録手段に記録されたスケジューリング順序およびロ
ック操作記録手段に記録されたロック操作にしたがって
スレッドを再実行させるが、直列実行可能と判定され、
チェックポイント取得を待機せずに入出力要求を発行済
みであるスレッドについての入出力要求については、入
力要求の場合はデータ保持手段に保持されたデータを引
き渡し、出力要求の場合には実際の出力を行なわずに出
力完了として処理する。
【0013】これにより、非決定性を含まない入出力要
求については、次のチェックポイント取得を待機するこ
となく即座に入出力装置に対し発行されることになり、
また非決定性を含まない出力要求が、たとえばプリンタ
への出力などであったようなときに、障害発生時と復旧
時とで同じデータが印字されてしまうようなことがなく
なり、耐障害性を損なうことなく入出力処理の応答時間
を飛躍的に短縮させることとなる。
【0014】また、本発明の計算機システムは、通常稼
働時に、前記スレッドがロックの獲得を要求した際、前
記実行順序記録手段および前記ロック操作記録手段に記
録された情報を参照して、このロック獲得により直列実
行可能性が保証されなくなる場合には、直列実行可能に
なるまでそのスレッドの実行をロック獲得前で待機させ
ることを特徴とする。
【0015】この計算機システムによれば、たとえばあ
るスレッドが、同時に実行中の他のスレッドが獲得中ま
たは過去に獲得したロックの獲得を要求した際に、この
スレッドの実行を、その他のスレッドの実行が終了する
まで待機させる。すなわち、直列実行可能性が保証され
なくなるようなロックの獲得が要求された場合には、直
列実行可能になるまでそのスレッドの実行を待機させ
る。
【0016】これにより、常に全スレッドが直列実行可
能な状態に保たれることとなり、障害回復処理時には、
障害時と同様の順序でスレッドが実行されることとな
る。また、本発明の計算機システムは、前記ロック操作
記録手段が、前記スレッドがロック獲得を要求したとき
に、そのロック獲得を待機させることによるロック獲得
順序の制御が可能か否かを記録する手段をさらに備え、
前記再現性判定手段が、前記スレッドが入出力要求を発
行したときに、前記ロック操作記録手段に記録された情
報から直列実行が不可能な場合であってもロック獲得順
序を制御することにより再現が可能か否かを判定する手
段をさらに備え、前記回復処理手段が、前記ロック操作
記録手段の情報から故障が発生したときと同じ順序でロ
ックが獲得されるように前記スレッドのロック獲得を制
御する手段をさらに備えてなることを特徴とする。
【0017】この計算機システムによれば、たとえばあ
るスレッドがロックの獲得を要求したときに、ロック操
作記録手段が、このロックの獲得を待機させることが可
能かどうか、すなわち、このロックの獲得を待機させて
システム全体として矛盾が発生しないかどうかを判定し
て、その判定結果を格納しておく。そして、再現性判定
手段が、スレッドが入出力要求を発行したときに、ロッ
ク操作記録手段に記録された情報から直列実行が不可能
な場合であってもロック獲得順序を制御することにより
再現が可能か否かを判定する。
【0018】ここで、再現可能と判定されたとき、入力
データ保持手段は、この入出力要求を次のチェックポイ
ント取得を待機せずに即座に入出力装置に対して発行す
る。また、この入出力要求が入力要求であった場合に
は、入出力装置から送信されるデータを保持しておく。
【0019】一方、計算機システムに障害し、所定のチ
ェックポイントから再実行する際、回復処理手段は、実
行順序記録手段に記録されたスケジューリング順序およ
びロック操作記録手段に記録されたロック操作にしたが
ってスレッドを再実行させ、かつ、これらスレッドのロ
ック獲得順序を制御する。
【0020】これにより、直列実行可能な場合に加え、
直列実行が不可能な場合であっても、ロック獲得順序の
制御が可能なスレッドの入出力要求については即座に入
出力装置に対し発行されることになり、さらなる応答時
間の短縮が図られることとなる。
【0021】
【発明の実施の形態】以下、図面を参照して本発明の実
施形態を説明する。 (第1実施形態)図1は本発明の第1実施形態に係るC
P&RB方式のFTマシンの機能構成を示すブロック図
である。
【0022】図1に示したように、同実施形態における
FTマシンは、従来のFTマシン1に加えて、スレッド
のスケジューリング順序を記録する実行順序記録部2
と、各スレッドが行なうロック操作を記録するロック操
作記録部3と、スレッドが入出力要求を発行したとき
に、これまでに行なってきたロック操作を調べて直列実
行可能性を判定する再現性判定部4とが設けられ、通常
処理での直列実行可能なスレッドの入出力要求の入出力
装置への発行制御に用いられる。また、直列実行可能な
各スレッドを発行する入出力要求の順序を記録する入出
力順序記録部5と、入力装置から渡されたデータを状態
が確定するまで保持する入力データ保持部6とが設けら
れ、障害からの回復処理における故障したケースと同じ
入出力要求が発行されるようにスレッドの実行を制御す
るのに用いられる。
【0023】FTマシン1は、CP&RB方式の計算機
であり、図2に示したように、普通の計算機11を構成
する各種機能要素のほかに、従来の技術で述べたよう
に、故障が起きた時に戻って再実行できることを保証し
た状態であるチェックポイントを適宜採取しながら処理
を進めて、故障が検出された時点で以前に採取しておい
た故障が起きる前の状態にプロセッサやメモリを戻し、
故障を取り除いてから再実行するチェックポイント&ロ
ールバック部12と、すべての入出力装置への要求(入
出力要求)をチェックポイントが採取され状態が確定す
るまで保持する入出力要求保持部13とから構成され
る。
【0024】実行順序記録部2は、スレッドのスケジュ
ーリング順序を記録するものである。たとえば、P1〜
P4の4つのプロセッサが、図3(a)に示したように
T1〜T11のスレッドを実行した場合、この実行順序
記録部2は、図3(b)に示したような実行記録を作成
する。記録の各項目は、プロセッサ番号と実行を始めた
スレッド番号とから構成され、このリスト記録をたどる
ことによりスレッドの実行順序だけでなく同時に実行さ
れたスレッドを見つけることができる。また、実行する
スレッドが「idle」となっているのは、プロセッサ
がアイドル状態であることを示している。なお、スレッ
ドT2、T3およびT4のように、一度入出力待ちにな
った後で再度実行された場合は、それぞれT2′、T
3′およびT4′の番号をつけて別のスレッドとして扱
う。このT2とT2′とではスレッド自身のロックが共
通でスレッド間の実行順序はわかるので、このようにし
ても問題はない。なお、これらのスレッドは入出力要求
が発行されるまで、プリエンプションなどにより途中で
止まらないものとする。
【0025】ロック操作記録部3は、スレッドが行なう
ロック操作を記録するものである。たとえば、同時に実
行されているT1〜T4の4つのスレッドが、図4
(a)に示したようにL1〜L8のロックを獲得した場
合、このロック操作記録部3は、図4(b)に示すよう
なロック操作の記録を作成する。記録の各項目は、スレ
ッド番号と獲得したロック番号とから構成され、このリ
スト記録をたどることによりロック操作の順序だけでな
く、直列実行可能かどうかの判定も行なえる。
【0026】再現性判定部4は、スレッドが入出力要求
を発行するときに、これまでに行なったきたロック操作
を調べてこのスレッドの直列実行可能性を判定するもの
である。ここで、直列実行可能性とは、1台のプロセッ
サでスレッド単位に再現できる実行順序が存在すること
を意味する。先に述べたように、マルチプロセッサの計
算機では複数のスレッドが同時に実行され、非決定性が
あるため同じ状態を再現することが難しいが、直列実行
可能性がある場合には1台のプロセッサでスレッド単位
に再実行することで同じ状態を再現できる。
【0027】たとえば、2つのスレッドT1およびT2
が、同時にロックL1,L2を操作する場合を考える。
このとき、ロック操作の流れは図5(a)〜(f)に示
す6通りの内のいずれかであり、(a)および(b)の
場合には直列実行可能であるが(c)、(d)、(e)
および(f)の場合は直列実行可能とはならない。なぜ
ならば、(a)の場合にはスレッドT1を先に実行させ
てスレッドT2をその後に実行させることで、(b)の
場合にはT2を先に実行させてT1をその後に実行させ
ることで、同じロック操作を再現できる。しかし、
(c)、(d)、(e)および(f)の場合には、同じ
ロック操作を再現する実行順序がない。一般に、2つ以
上のスレッド間の共通データはロックを獲得してからア
クセスされるので、同じロック操作を再現すれば共通デ
ータも同じ状態になる。ここで、ロック操作の記録から
直列実行可能性を判定する際の動作手順を説明する。
【0028】図6は同実施形態に係る直列実行可能性を
判定する際の動作手順を説明するためのフローチャート
である。まず、ロック操作記録にあるすべてのロックに
ついて、ロック操作からスレッドの実行順序を求める
(図6のステップA1)。たとえば、図5(a)〜
(f)に示した例では、ロック操作記録部3で作成され
るロック操作の記録は図7(a)〜(f)に示すように
なり、それから求まるロック毎のスレッド実行順序は図
8(a)〜(f)となる。この場合は(a)〜(f)の
いずれの場合でも全ロックがスレッド単位で順序付けで
きるため(図6のステップA2のY)、次のステップに
進む。
【0029】ここで、図9に順序付けできない例を示
す。図9(a)に示すようにロック操作が行なわれた場
合、ロック操作記録は図9(b)のようになり、スレッ
ドT1を先にしてもスレッドT2を先にしても正しくは
ならない。よって、スレッド単位の順序付けができない
ことになる(図6のステップA2のN)。
【0030】次に、各ロックに対して求められたスレッ
ドの実行順序をすべて満たす実行順序を求める(図6の
ステップA3)。図5に示した例では、ロックL1およ
びL2のスレッド実行順序が図8に示したようになり、
(a)〜(d)の場合はロックL1およびロックL2の
スレッド実行順序が同じであるので、次のステップへ進
む(図6のステップA4のY)。一方、(e)および
(f)の場合には、ロックL1およびL2の両方を満た
すスレッドの実行順序はないので(図6のステップA4
のN)、直列実行不可能と判定することができる(図6
のステップA8)。
【0031】そして、上で求めた実行順序でスレッドを
実行させた時のロック操作の順序を再構成する(図6の
ステップA5)。たとえば図5の例では、(a)および
(c)の場合にはスレッドT1を先にスレッドT2を後
に、(b)および(d)の場合にはスレッドT2を先に
スレッドT1を後に実行するので、図10に示したよう
なロック操作が再構成される。この結果をもとのロック
操作の記録(図7)と比較すると(図6のステップA
6)、(c)および(d)はロック操作の順序が一致し
ないので直列実行不可能と判定し(図6のステップA
8)、(a)および(b)は一致するので直列実行可能
と判定する(図6のステップA7)。
【0032】入出力記録部5は、直列実行可能な各スレ
ッドが発行する入出力要求を記録するものである。たと
えば、同時に実行されているT1〜T4の4つのスレッ
ドがO1〜O5の出力要求とI1〜I6の入力要求とを
図11(a)に示したような順番で発行した場合、この
入出力記録部5は、図11(b)に示すような入出力の
記録を作成する。記録の各項目は、スレッド番号と発行
した入力または出力要求番号とから構成され、このリス
ト記録をたどることにより故障直前までに発行した入出
力要求がすべて分かる。
【0033】入力データ保持部6は、入力装置から渡さ
れたデータを故障回復処理まで保持するものである。一
度入力装置から取り出したデータは、主メモリ内にしか
残っていないので、故障が起きてロールバックしてしま
うとそのデータも忘れてしまう。そこで、故障からの回
復時に同じデータを供給するため、入力要求番号とその
とき渡されたデータを保持している次に、同実施形態の
動作手順について説明する。
【0034】同実施形態のFTマシン1上で実行される
スレッドは、図12に示したフローチャートにしたがっ
て通常の入出力処理を行なう。まず、入出力要求を発行
するスレッドが直前のチェックポイント後に操作したロ
ックの集合を求める(図12のステップB1)。
【0035】次に、このロックの集合をチェックポイン
ト後に操作するスレッドの集合を求める(図12のステ
ップB2)。さらに、求まったスレッドの集合がチェッ
クポイント後に操作する新しいロックの集合を求める
(図12のステップB3)。新しいロック集合とステッ
プB1で求めたロック集合とを比較し、ロック集合が増
えた場合にはステップB2〜B3を繰り返す(図12の
ステップB4)。
【0036】ロック集合が増えなくなると、入出力要求
を発行するスレッドの再現性に影響を与えるスレッドの
集合が求まる。そこで、この求まったスレッド集合がす
べて直列実行可能かを調べる(図12のステップB
5)。そして、もし、すべてのスレッドが直列実行可能
な場合には、故障が起きチェックポイントから再実行し
ても同じ状態を再現できるので、入出力要求を直ちに発
行する(図12のステップB7)。1つでも直列実行で
きないスレッドがあれば、従来通り入出力要求をチェッ
クポイントまで待たせる(図12のステップB8)。
【0037】また、同実施形態における故障回復処理
は、故障を取り除き直前のチェックポイントへ状態を戻
してから図13に示すフローチャートにしたがって行な
う。まず、通常の入出力処理で、図12のステップB7
で要求を直ちに発行したスレッドの集合を入出力記録部
5の記録をもとに作成する(図13のステップC1)。
【0038】次に、スレッドの集合から通常処理と同様
にして、入出力要求を発行するスレッドの再現性に影響
を与えるスレッドの集合を求める(図13のステップC
2,C3,C4,C5)。このとき、求まったスレッド
集合は、すべて直列実行可能であるので、スレッドの実
行順序を求める(図13のステップC6)。最後に、こ
の求まった実行順序でスレッドを1つずつ直列に実行さ
せる(図13のステップC7)。
【0039】さらに、図13のステップC7の実行中に
入出力要求が発生した場合には、図14に示すフローチ
ャートにしたがって入出力処理を行なう。まず、回復処
理のスレッドの直列実行中に発行する入出力要求を調べ
(図14のステップD1)、もし、入力要求ならば(図
14のステップD2のY)、対応する入力要求が入出力
記録手段5にあるか確認し(図14のステップD3)、
入力データ保持部6に保持されている対応するデータを
入力要求の応答として返す(図14のステップD4)。
一方、出力要求ならば(図14のステップD2のN)、
対応する出力要求が入出力記録部5にあるか確認して出
力要求を完了する(図14のステップD5)。
【0040】ここで、従来の技術で問題になった図19
のプログラムを、同実施形態の計算機システムで実行す
る場合を考える。いま、プログラムがスレッドT1およ
びT2により、図15(a)に示すように、スレッドT
1が先にスレッドT2が後にロックを獲得したとする。
このとき、実行順序記録部2では、図15(b)の実行
記録が、ロック操作記録部3では図15(c)の操作記
録が作成される。したがって、スレッドT1が出力要求
O1を発行するとき、図12に示したフローチャートに
したがって処理すると、スレッドT1を先にT2を後に
実行することで直列実行可能であるので、チェックポイ
ントまで待たずに直に要求を発行する。スレッドT2が
出力要求O2を発行するときも同様にすぐに要求を発行
する。さらに、出力要求O1およびO2を発行した後で
故障が発生してチェックポイントから再実行した場合で
も、図13で示したフローチャートにしたがって処理す
ると、スレッドT1を先に実行しスレッドT2を後に実
行するので、故障した場合と同じ状態を再現できる。ま
た、回復処理における入出力処理は、図14に示したフ
ローチャートにしたがって処理すると、出力要求O1,
O2は入出力記録で確認するだけで出力装置には発行さ
れないので、回復処理で入出力装置の状態を変えること
もない。すなわち、出力要求O1およびO2をチェック
ポイントまで待機させずに発行しても従来の技術のよう
な問題は発生しない。
【0041】以上のことから、同実施形態の計算機シス
テムによれば、直列実行可能であるスレッドの入出力要
求を判定するとともに、故障回復時に故障したケースと
同じ入出力要求を発行するように制御することにより、
大部分の入出力要求を直ちに入出力装置に発行すること
が可能となる。入出力要求が直ちに入出力装置に発行さ
れれば、プログラムから見た入出力時間は、普通の計算
機より同じ応答時間になり、普通の計算機よりも入出力
処理が集中してしまう問題も発生しなくなり、CP&R
B方式のFTマシンで問題となるシステム性能の低下を
回避できる。 (第2実施形態)次に、本発明の第2実施形態について
説明する。
【0042】同実施形態では、第1実施形態で説明した
CP&RB方式のFTマシンと同様の構成であるものと
してその説明を省略する。ただし、同実施形態では、ロ
ック操作のときに、ロック操作記録部3の記録を調べて
このロック獲得により直列実行が不可能になる危険性が
ある場合に、直列実行可能になるまでスレッドの実行を
待たせる機能が設けられる。
【0043】第1実施形態における入出力処理方式で
は、直列実行可能かを入出力要求を発行する時点で判定
しているのみであり、チェックポイントから時間が経つ
にしたがって直列実行不可能なスレッドが増えてくる
と、直ちに発行できる入出力要求が少なくなってしま
う。そこで、ロック操作を行なうときに、ロック操作記
録部3の記録を調べて、このロック獲得により直列実行
が不可能になる危険性がある場合には、直列実行可能に
なるまでスレッドの実行を待たせることにより、直ちに
発行できる入出力要求が少なくなるのを回避するのが同
実施形態における入出力の処理方式である。
【0044】ここで、同実施形態の動作原理について説
明する。図16に同実施形態でのロック操作の様子を示
す。第1実施形態では、図16(a)に示すように、2
つのスレッドT1およびT2がロックL1およびL2を
連続して操作した後で、出力要求O1およびO2を発行
した場合、両スレッドはともに直列実行不可能になって
しまう。しかし、図16(b)のように、スレッドT2
がロックL1を獲得するときに、実行順序記録部2とロ
ック操作記録部3との記録からこのロックをアクセスし
たスレッドT1がいまだ実行中かどうかを調査して(実
行中の場合は直列実行が不可能になる危険性がある)、
スレッドT1が停止するまで待たせることにより、直列
実行可能性を確保することができる。なお、スレッドT
1の停止を待っている間は、プロセッサP2は他のスレ
ッドを実行しても構わない。
【0045】このように、第2実施形態に係る計算機シ
ステムによれば、直列実行可能なスレッドを増やすこと
ができ、直ちに発行できる入出力要求が減少するのを防
ぐことができる。したがって、チェックポイント間隔が
長くなってもCP&RB方式のFTマシンで問題となる
システム性能の低下を回避できる。 (第3実施形態)次に、本発明の第3実施形態について
説明する。同実施形態も、前述した第1実施形態にて説
明したCP&RB方式のFTマシンと同様の構成である
ものとしてその説明を省略する。ただし、同実施形態で
は、ロック操作記録部3はロック獲得のときにそのロッ
クを獲得する前でスレッドを止めて獲得順序を制御可能
であるかどうかを記録する機能を有しているものとす
る。また、再現性判定部4は、スレッドが入出力要求を
発行するときにこれまでに行なったロック操作を調べ
て、直列実行が不可能でもロック獲得順序を制御するこ
とでロック獲得順序を再現できるかを判定する機能を有
しているものとする。
【0046】第1実施形態における入出力処理方式で
は、故障回復時にスレッド単位の直列実行により状態を
再現することを仮定し、その可能性を判定しているのみ
である。しかし、実際には故障回復時にスレッドの途中
で処理を止めて、他のスレッドを実行することも可能な
場合がある。そこで、ロック操作記録部3は、ロック獲
得のときにそのロックを獲得する前でスレッドを止めて
獲得順序を制御できるかどうかを記録するとともに、故
障回復においてロック操作記録部3の情報と同じ順序で
ロックが獲得されるように、スレッドを途中で止めなが
ら処理を進めることにより、状態を再現できる場合を増
やすのが同実施形態における入出力処理方式である。
【0047】ここで、同実施形態の動作原理について説
明する。図17(a)〜(d)に示すようにロック操作
が行なわれた場合、第1実施例では直列実行不可能と判
断されスレッドT1およびT2が発行する入出力要求は
チェックポイントまで待たされていた。しかし、同実施
形態では、スレッドT1およびT2がロックL2を操作
するときに、ロック操作の前でスレッドを止めても問題
がないことを調べ、その旨を記録する機能をロック操作
記録部3が備えている。これにより、図17(a)〜
(d)それぞれの下段に示したようなロック操作記録が
残されることになる。ここで、(W)はこのロックの前
でスレッドを止めても問題ないことを示している。な
お、割り込み禁止状態などでは、スレッドを途中で止め
て他のスレッド実行したときに矛盾が発生する場合があ
る。そこで、同実施形態の入出力処理方式では、このロ
ック獲得前で停止できるといった情報を使用して、スレ
ッドが入出力要求を発行するときに、これまでに行なっ
たロック操作を調べて、直列実行が不可能でもロック獲
得順序を制御することでロック獲得順序を再現できるか
を判定し、ロック獲得順序を再現して状態できる場合に
は直ちに入出力要求を発行する。また、故障回復では、
図18に示すように、ロック獲得順序がロック操作記録
部3の記録と一致するようにスレッドを止めながら実行
し、故障が起きたケースと同じ状態を再現する。
【0048】このように、同実施例に係る計算機システ
ムによれば、状態を再現可能なロック操作の状況を増や
し、直ちに発行できる入出力要求を増やすことができ
る。したがって、CP&RB方式のFTマシンで問題と
なるシステム性能の低下を第1実施例よりもさらに回避
することができる。
【0049】
【発明の効果】以上詳述したように、本発明の計算機シ
ステムによれば、直列実行可能か、またはロック獲得順
序を再現可能であるスレッドの入出力要求を判別すると
ともに、故障回復時には故障したケースと同じ入出力要
求を発行するように制御することにより、大部分の入出
力要求を直ちに入出力装置に発行することが可能とな
る。入出力要求が直ちに入出力装置に発行されれば、プ
ログラムから見た入出力時間は、普通の計算機とほぼ同
じ応答時間になり、普通の計算機よりも入出力処理が集
中してしまう問題も発生しなくなる。したがって、CP
&RB方式のFTマシンにおける大きな欠点がほぼ解決
でき、通常の計算機との性能的互換性を達成することが
できる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るCP&RB方式の
FTマシンの機能構成を示すブロック図。
【図2】第1実施形態に係るCP&RB方式のFTマシ
ンの論理的構成図。
【図3】第1実施形態に係る実行順序記録部の動作例を
示す図。
【図4】第1実施形態に係るロック操作記録部の動作例
を示す図。
【図5】第1実施形態に係るロック操作の流れを示す
図。
【図6】第1実施形態に係る直列実行可能性を判定する
際の動作手順を説明するためのフローチャート。
【図7】第1実施形態に係るロック操作の記録を示す
図。
【図8】第1実施形態に係るロック毎のスレッド実行順
序を示す図。
【図9】第1実施形態に係るロックでのスレッド実行順
序がない場合を示す図。
【図10】第1実施形態に係る再構成されたロック操作
順序を示す図。
【図11】第1実施形態に係る入出力記録部の記録を示
す図。
【図12】第1実施形態に係る通常処理における入出力
処理の手順を示すフローチャート。
【図13】第1実施形態に係る回復処理の手順を示すフ
ローチャート。
【図14】第1実施形態に係る回復処理における入出力
処理の手順を示すフローチャート。
【図15】第1実施形態において従来技術の例を実行し
た場合を示す図。
【図16】第2実施形態に係るロック操作を示す図。
【図17】第3実施形態に係るロック操作を示す図。
【図18】第3実施形態に係る回復処理を示す図。
【図19】マルチプロセッサにおける非決定性を示す
図。
【符号の説明】
1…FTマシン、2…実行順序記録部、3…ロック操作
記録部、4…再現性判定部、5…入出力記録部、6…入
力データ保持部、7…入出力装置、11…普通の計算
機、12…チェックポイントロールバック部、13…入
出力要求保持部。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 チェックポイントロールバック機能を有
    してなるフォールトトレラント計算機システムにおい
    て、 前記計算機システムにて実行されるスレッドのスケジュ
    ーリング順序を記録する実行順序記録手段と、 前記スレッドが行なったロック操作を記録するロック操
    作記録手段と、 前記スレッドが入出力要求を発行したときに、前記ロッ
    ク操作記録手段に記録されたロック操作を参照してこの
    スレッドが他のスレッドとの間で依存関係をもつことな
    く直列実行可能であるか否かを判定する再現性判定手段
    と、 前記再現性判定手段が直列実行可能であると判定したと
    きに、その入出力要求を即座に入出力装置に対して発行
    するとともに、この入出力要求が入力要求であった際に
    入力装置から渡されたデータを保持しておく入力データ
    保持手段と、 前記直列実行可能と判定されたスレッドそれぞれが発行
    した入出力要求の順序を記録する入出力記録手段と、 前記チェックポイントロールバック機能により前記計算
    機システムの状態が所定のチェックポイントに復旧され
    た際、前記実行順序記録手段に記録されたスケジューリ
    ング順序および前記ロック操作記録手段に記録されたロ
    ック操作にしたがって前記スレッドを再実行させ、前記
    直列実行可能と判定されたスレッドが入力要求を発行し
    たときには、前記入出力記録手段を参照してこの入力要
    求に対応したデータを前記入力データ保持手段から引き
    渡し、出力要求を発行したときには、実際の出力を行な
    わずに出力完了として処理する回復処理手段とを具備す
    ることを特徴とする計算機システム。
  2. 【請求項2】 通常稼働時に、前記スレッドがロックの
    獲得を要求した際、前記実行順序記録手段および前記ロ
    ック操作記録手段に記録された情報を参照して、このロ
    ック獲得により直列実行可能性が保証されなくなる場合
    には、直列実行可能になるまでそのスレッドの実行をロ
    ック獲得前で待機させることを特徴とする請求項1記載
    の計算機システム。
  3. 【請求項3】 前記ロック操作記録手段は、前記スレッ
    ドがロック獲得を要求したときに、そのロック獲得を待
    機させることによるロック獲得順序の制御が可能か否か
    を記録する手段をさらに備え、前記再現性判定手段は、
    前記スレッドが入出力要求を発行したときに、前記ロッ
    ク操作記録手段に記録された情報から直列実行が不可能
    な場合であってもロック獲得順序を制御することにより
    再現が可能か否かを判定する手段をさらに備え、前記回
    復処理手段は、前記ロック操作記録手段の情報から故障
    が発生したときと同じ順序でロックが獲得されるように
    前記スレッドのロック獲得を制御する手段をさらに備え
    てなることを特徴とする請求項1記載の計算機システ
    ム。
JP24953795A 1995-09-27 1995-09-27 計算機システム Pending JPH0991159A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24953795A JPH0991159A (ja) 1995-09-27 1995-09-27 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24953795A JPH0991159A (ja) 1995-09-27 1995-09-27 計算機システム

Publications (1)

Publication Number Publication Date
JPH0991159A true JPH0991159A (ja) 1997-04-04

Family

ID=17194469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24953795A Pending JPH0991159A (ja) 1995-09-27 1995-09-27 計算機システム

Country Status (1)

Country Link
JP (1) JPH0991159A (ja)

Similar Documents

Publication Publication Date Title
JP3675802B2 (ja) 計算の状態を再構成する方法ならびにシステム
JP3072048B2 (ja) 計算機システムおよび計算機システムのソフトウェア故障回復方法
US5065311A (en) Distributed data base system of composite subsystem type, and method fault recovery for the system
US7516361B2 (en) Method for automatic checkpoint of system and application software
US5815651A (en) Method and apparatus for CPU failure recovery in symmetric multi-processing systems
US6058491A (en) Method and system for fault-handling to improve reliability of a data-processing system
JPH0465414B2 (ja)
JPH06342396A (ja) 共有データのアクセスを直列化する方法及び装置
JPH07117903B2 (ja) 障害回復方法
JPH0812618B2 (ja) 再試行及びチェックポイント設定によるエラー回復装置及び方法
US5450590A (en) Authorization method for conditional command execution
KR100304319B1 (ko) 시간 지연 이중화 기술을 구현하는 장치 및 방법
JPH05210555A (ja) ゼロ時間データ・バックアップ・コピーの方法及び装置
JP3301992B2 (ja) 電源故障対策を備えたコンピュータシステム及びその動作方法
US6092084A (en) One system of a multisystem environment taking over log entries owned by another system
US6076095A (en) Method of one system of a multisystem environment taking over log entries owned by another system
JP2000293391A (ja) 大規模メモリシステム管理方法および装置
JPH0991159A (ja) 計算機システム
JP2000298594A (ja) フォールトトレラント制御方法および冗長コンピュータシステム
JP2001109635A (ja) 障害対処方法及びコンピュータシステム読み取り可能な記録媒体
JPH10187616A (ja) 状態記録再現方法、ならびに同方法を実現する計算機システム、及び同方法がプログラムされ記憶されるメモリ装置
JPH02266457A (ja) 処理の継続実行方法
JPH06282496A (ja) 二重化共有メモリにおける排他制御命令のリカバリ方法
JP2712819B2 (ja) 二重化ファイルの動的コピー制御方式
JPH07168730A (ja) チェックポイント採取方式