JP5212357B2 - マルチcpu異常検出復旧システム、方法及びプログラム - Google Patents

マルチcpu異常検出復旧システム、方法及びプログラム Download PDF

Info

Publication number
JP5212357B2
JP5212357B2 JP2009503756A JP2009503756A JP5212357B2 JP 5212357 B2 JP5212357 B2 JP 5212357B2 JP 2009503756 A JP2009503756 A JP 2009503756A JP 2009503756 A JP2009503756 A JP 2009503756A JP 5212357 B2 JP5212357 B2 JP 5212357B2
Authority
JP
Japan
Prior art keywords
abnormality
program
data
cpu
recovery
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
JP2009503756A
Other languages
English (en)
Other versions
JPWO2008111124A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008111124A1 publication Critical patent/JPWO2008111124A1/ja
Application granted granted Critical
Publication of JP5212357B2 publication Critical patent/JP5212357B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、複数のCPUを備えるマルチCPUシステムに関し、さらに詳しくはマルチCPUシステムにおける自システムの異常検出及び検出した異常の自動復旧の技術に関する。
コンピュータシステムでは処理速度が高速化し、それに伴いシステムの信頼性の向上が課題となっている。
そのため、システムの異常発生時にシステムをダウンさせることなく、システムを安定稼動させる技術が必要とされる。
システムを安定稼動させるものとしては、複数のCPUを備えるマルチCPUシステムが考えられる。
マルチCPUシステムにおける異常発生検出についての技術としては、以下のものが提案されている。
特許文献1は、プロセッサ単位で動作を監視するものである。特許文献1では、プロセッサ間を通信機構で接続し、1つのプロセッサからデータを送信し、他プロセッサからの反応の有無を監視することにより異常検出を行っている。
また特許文献2は、1命令単位でシステムの動作異常を監視・復旧する技術を開示するものである。特許文献2では、自プロセッサの異常発生を監視し、リセットにより復旧できる場合は、自動リセット発生回路及び異常要因保存回路によりリセット行って、プロセッサを再起動する方式が開示されている。
しかし上記した2つの特許文献の方式には、以下のような問題点がある。
特許文献1の場合、プロセッサ間のデータ通信によりプロセッサを監視している。そのために、異常発生要因が生じてからシステム異常と認識されるまでに、分単位の時間の遅延が生じる。
特許文献1の方式では、システム異常と認識された後に原因調査用の情報が採取されるので、調査用情報は異常発生要因が生じた時点から変化している。そのため、採取した調査用情報からは原因調査が難しい。よって調査期間が長期化する傾向があり、時には原因が究明できないこともある。
システム監視の時間精度(分若しくは秒単位)とCPUの持つ時間精度(ナノ単位)とでは大きな差があるために、システムの状態が変化して異常発生要因が生じた時点の状態を把握することが難しく、原因究明までに時間を要する。
CPUの状態変化をログ情報として採取する技術もあるが、この方式においてもログ情報の容量制限などから有効な調査情報の採取ができないことがある。
特許文献2の場合、監視・復旧する単位が1命令であり、ファームウェアを再起動することにより異常状態から復旧できる場合、リセットをかけて再起動する方式である。
この特許文献2の方式では、監視・復旧する単位が1命令であるので、OS(オペレーティングシステム)部分のプログラム異常などを検出するのは困難である。
以上を踏まえ、本発明は、OS部分でのプログラム異常などで顕在化した異常現象を早期に検出することが可能なシステム及び方法を提供することを課題とする。
また検出した異常内容を判断して復旧可能な場合、自動的に復旧することが可能なシステム及び方法を提供することを課題とする。
更には異常を検出した場合、原因調査に有効な情報を確実に採取・退避することが可能なシステム及び方法を提供することを課題とする。
特開平11−328131号公報 特開平02−114364号公報
本発明は、複数のCPUを備えるマルチCPUシステムを前提とし、異常状態検出部及び復旧部を備える。
異常状態検出部は、稼動しているプログラムの異常を検出する。
前記異常状態検出部により異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する。
この構成により、プログラム異常が発生すると、それを検出し、自動的に復旧することができる。
また本発明は、マルチCPUシステムにおける異常検出及び自動復旧方法やマルチCPUシステムで実行されるプログラムもその範囲に含む。
本実施形態が前提とするマルチCPUシステムによる情報処理装置の概略構成を示す図である。 マルチCPUシステムに搭載されているOSの構成例を示す図である。 本実施形態におけるOSによる処理動作の概要を示す図である。 割り込みの禁止状態を監視する場合のデータ採取処理と異常検出の基準データ生成処理の関連図である。 CPU間の排他制御状態を監視する場合のデータ採取処理と異常検出の基準データ生成処理の関連図である。 割り込みの禁止状態を監視する場合の異常状態検出処理の概要を示す図である。 CPUの排他制御解除忘れなどの異常が発生した場合、異常状態検出処理の概要を示す図である。 復旧処理プログラムによって行われる処理内容を示す図である。 発生した異常内容の判別方法についての説明図である。 発生した異常内容の復旧方法を示す図である。 制御表の復旧方法の例を示す図である。 プログラムが実行待ちの場合において、同じ制御表の間のリンク関係が壊された場合についての制御表の復旧方法の例を示す図である。 同じ制御表の間に、複数のリンク関係が存在する場合の制御表の復旧方法の例を示す図である。 エミュレータ部による処理1のデータ採取・異常状態検出部による処理内容を示すフローチャートである。 エミュレータ部による処理2のデータ採取・異常状態検出部による処理内容を示すフローチャートである。 図14、図15に示したで採取データを格納する格納域の構成例を示す図である。 各採取データ格納域の構成を示す図である。 エミュレータ部による処理2でデータ採取・異常状態検出部が行なう異常検出基準データ生成処理の内容を示すフローチャートである。 異常検出基準データ生成処理で用いられる制御表の例を示す図である。 エミュレータ部の処理1でデータ採取・異常状態検出部が行う異常状態検出処理を示すフローチャートである。 図19のステップS42で行われる直近に行われた排他獲得の時点からの経過時間を算出処理において、直近の排他獲得を行ったCPUを示す図である。 エミュレータ部で実行される処理2でデータ採取・異常状態検出部が行う異常状態検出処理を示すフローチャートである。 図21のステップS52で行われる排他獲得の時点からの経過時間を算出処理において、排他獲得を行ったCPUを示す図である。 時間割り込みプログラムによる処理を示すフローチャートである。 図23のフローチャートで示す処理で事象が排他獲得を行っている採取データの格納域を説明する図である。 復旧処理プログラムによる復旧処理の処理フローを示すフローチャートである。 処理対象の制御表の自動復旧不可のチェックの説明図である。 処理対象の制御表の復旧の要否のチェックの説明図である。 処理対象の制御表の復旧処理の説明図である。 復旧処理プログラムが持つ識別ポインタを示す図である。 復旧処理プログラムが持つ識別ポインタの構成例を示す図である。 本実施形態のマルチCPUシステムによる情報処理装置のシステム構成例を示す図である。 記憶媒体の例を示す図である。
以下に図面を参照しながら本発明の一実施形態について説明する。
図1は、本実施形態が前提とするマルチCPUシステムによる情報処理装置の概略構成を示す図である。
同図に示すように、本情報処理装置では、複数のCPU2−1〜2−lが共有メモリ1を共有する構成となっている。また各CPU2−1〜2−lは、CPU間の通信路3を介して互いにやり取りを行うことができる。
図2は、図1のマルチCPUシステムに搭載されているOSの構成例を示す図である。同図は、OSの全構成要素を示すものではなく、本実施形態に関連のある機能部分のみを示している。
同図では、OS11は、スケジューリング部12、時間割り込みプログラム14、復旧処理プログラム15、及びエミュレータ部16を有している。
スケジューリング部12は、他CPUからの要求等や、入出力装置からの割り込み要求、タイマーによる時間割り込み等を外部から受け付け、OS11上で起動している事象ごとのプログラム13−1〜13−mや時間割り込みプログラム14に、発生した事象を割り振る。時間割り込みプログラム14は、定周期で発生する時間割り込みで起動されるプログラムである。復旧処理プログラム15は、異常が発生したCPUの自動復旧を司るものである。エミュレータ部16は、他の情報処理装置の機能の模倣を行うためのエミュレータである。なお図2においては、構成を簡略に示すためにエミュレータ部16を備える構成となっているが、本実施形態におけるOSにおいてはエミュレータ部16は必須の構成要件ではないので、本実施形態におけるOSはエミュレータ部16を備えなくても良い。
本実施形態のOSでは、プログラム異常の検出及び自動復旧を実現するために、復旧処理プログラム15を備え、また時間割り込みプログラム14に異常状態を検出する異常状態検出部21及びエミュレータ部16にデータ採取・異常状態検出部22を備えている。
このうちデータ採取・異常状態検出部22は、平常動作時におけるプログラムの動作データ採取機能、プログラム異常を検出するための基準データ生成機能及びプログラム異常を検出する機能を備えている。
プログラム異常と判断するための基準値は、大きな値とした場合検出の精度が悪くなり、小さな値とした場合誤認する可能性が高くなるので、人が設定することは困難である。
本実施形態のOSでは、エミュレータ部16のデータ採取・異常状態検出部22に平常時におけるプログラムの動作データ採取機能とプログラム異常を検出するための基準データ生成機能を設けることにより、人が設定することなくシステムが自動的に最適な値の基準値を生成することができる。
また本実施形態におけるOSは、プログラム異常を検出した場合には、異常が検出されたCPU以外の他のCPUに割り込みをかけ、そのCPUに復旧処理を依頼する。このように異常が発生したCPU以外のCPUが復旧処理を行うよう構成することで、異常を検出したCPU自身が復旧処理を行うための機能を追加する必要がなくなる。よって、OSに対して既存のプログラム論理を変更する必要がない。
また本実施形態のOSは、復旧処理プログラム15を設けることにより、検出した異常の自動復旧機能を備える。復旧機能は、異常内容の判別処理と自動復旧処理から構成され、自動復旧処理は、異常発生箇所と異常内容に対応した復旧用プログラム(復旧用データ)を装備できる機能を持つ。この復旧処理プログラム15を備えることにより、異常発生箇所と異常内容に応じた最適の復旧処理が可能となる。
次に本実施形態のOSによる動作説明を行う。
図3は、本実施形態におけるOSによる処理動作の概要を示す図である。
本実施形態のOS11上でユーザプログラム13を実行する際、OS11では(1)エミュレータ部16による処理1、(2)エミュレータ部16による処理2、(3)割り込みプログラム14による処理、が(1)−>(2)−>(3)−>(1)・・・の順に実行される。
(1) エミュレータ部16による処理1
割り込みを禁止にし、またCPU間の排他制御を獲得するなどの資源の獲得処理を行う。またデータ採取・異常状態検出部22により制御に必要となるデータの採取処理と異常検出処理を行う。
(2) エミュレータ部16による処理2
割り込み禁止を解除し、またCPU間の排他制御を解放するなどの資源の解放処理を行う。またデータ採取・異常状態検出部22により、制御に必要となるデータ採取処理、異常検出を認識するための基準データの生成処理及び異常検出処理を行う。
(3) 時間割り込みプログラム14による処理
時刻の更新、プログラムへの経過時間の通知などによる時間割り込みが発生した場合の処理を行う。また異常状態検出部21による異常検出処理を行う。
上記(1)〜(3)の異常状態検出処理で、一定時間内に排他制御の獲得ができなかったとき、または割り込み禁止が解除されなかった場合、異常が発生したものと判断して、検出した異常内容に対応した(4)復旧処理を要求する。
(4) 復旧処理
復旧処理は、復旧処理プログラム15によって行われるもので、異常内容の判別処理と自動復旧処理から構成される。
異常内容の判別処理は、異常を検出した場所と異常内容から自動復旧の可否を判断する。自動復旧処理は、異常内容の判別処理の判断結果が自動復旧可能な場合、異常検出したところのログ情報採取と復旧処理を行う。そして自動復旧が不可能な場合、原因調査に必要な情報を退避した後、システムをダウンさせる。
なお検出した異常内容の種類から復旧処理を行うCPUが決定される。
次に図3に示したデータ採取処理と異常検出の基準データ生成処理について説明する。
図4に割り込みの禁止状態を監視する場合のデータ採取処理と異常検出の基準データ生成処理の関連図を示す。
同図において、ユーザプログラム13からOS11に対して要求が発生すると、その要求を実行するため、OS11では、割り込みの禁止、要求に対する処理、割り込み禁止の解除、ユーザプログラム13への復帰命令が実行される。
このときOS11では、(1)割り込みが禁止されたときのデータの採取処理が、割り込みの禁止開始時に上記したエミュレータ部16による処理1で実行され、(2)割り込みの禁止が解除されたときのデータの採取処理が、割り込みの禁止解除時に上記したエミュレータ部16による処理2で実行され、(3)エミュレータ部16による処理2で異常検出の基準データの生成処理が行われる。
(1)割り込みが禁止されたときのデータの採取処理では、採取したログ情報は、CPU毎に設けられた採取領域Aに保存され、(2)割り込みの禁止が解除されたときのデータの採取処理では、採取したログ情報はCPU毎に設けられた採取領域Bに保存される。
(3)異常検出の基準データの生成処理では、(1)割り込みが禁止されたときのデータの採取処理及び(2)割り込みの禁止が解除されたときのデータの採取処理で採取したデータ(採取領域A、B内に記憶されているログ情報)から割り込み禁止時間の実績値を算出する。この処理で、正常にシステムが動作しているときの割り込み禁止時間の最大値を計測する。そしてこの最大値を異常検出の基準データとする。
次に図5にCPU間の排他制御状態を監視する場合のデータ採取処理と異常検出の基準データ生成処理の関連図を示す。
同図において、ユーザプログラム13からOS11に対して要求が発生すると、その要求を実行するため、OS11では割り込みの禁止、CPUの排他制御獲得命令の発行、CPUの排他制御解除命令の発行、割り込み禁止の解除、ユーザプログラム13への復帰命令が実行される。
このとき、OSでは、(1)CPUの排他制御の獲得命令が実行されたときのデータの採取処理が、割り込みの禁止開始後のCPU排他制御獲得命令発行時にエミュレータ部16による処理1で実行され、(2)CPUの排他制御の解除命令が実行されたときのデータの採取処理が、割り込みの禁止解除時にエミュレータ部16による処理2で実行され、(3)エミュレータ部16による処理2で異常検出の基準データの生成処理が行われる。
(1)CPUの排他制御の獲得命令が実行されたときのデータの採取処理では、採取したログ情報は、CPU毎に設けられた採取領域Cに保存され、(2)CPUの排他制御の解除命令が実行されたときのデータの採取処理では、採取したログ情報はCPU毎に設けられた採取領域Dに保存される。
(3)異常検出の基準データの生成処理では、(1)CPUの排他制御の獲得命令が実行されたときのデータの採取処理及び(2)CPUの排他制御の解除命令が実行されたときのデータの採取処理で採取したデータ(採取領域C、D内に記憶されているログ情報)から割り込み禁止時間の実績値を算出する。この処理で、正常にシステムが動作しているときの割り込み禁止時間の最大値を計測する。そしてこの最大値を異常検出の基準データとする。
次にデータ採取処理で採取されるデータの種類について説明する。
データ採取処理では、「異常発生を認識するための基準データ生成」と「トラブル調査の情報収集」のために、以下の情報を採取する。
・ユーザプログラムを実行した時間、実行CPU番号
・実行した命令コード、命令アドレス、命令の実行結果
・実行命令が参照したメモリの内容
・各レジスタの値
・その他(実行中プログラムを特定するための情報)
(3)異常検出の基準データ生成処理は、「異常発生を認識するための基準データ」を生成するために、資源ごとに「資源の獲得」から「資源の解放」までの時間を算出し、その最大値を抽出する。そしてこの最大値を異常検出の基準データとする。
ここで異常検出の基準値として最大値を用いるのは、各処理の所要時間は、システムの負荷により変化するので、最大値以外を採用した場合、正常・異常の判断を誤認する可能性が高くなるためである。
なおIPL直後などの基準データを求めるためのサンプルデータ数が少ない時点では、基準データの信頼度が低いので、サンプルデータ数が一定量を超えるまでは、異常状態検出処理を抑止する。
次に図3に示した異常状態検出処理について説明する。
図6及び図7は、異常状態検出処理の概要を示す図である。
図6は、割り込みの禁止状態を監視する場合を示す図である。
同図は、OS11のミスで、割り込み禁止状態でループしたときや、割り込み禁止解除を行わなかったときなどの異常が発生した場合の概要を示している。
OS11のミスなどで割り込み禁止状態のままループした場合、または、割り込み禁止解除を行わなかった場合、ハードウェアからの時間経過の割り込みが発生したときに、時間割り込みプログラム14の異常状態検出部21は「割り込みが禁止された時点からの経過時間」と「異常検出の基準値」の比較し、異常発生を検出し、異常が検出されたら復旧処理を依頼する。またハードウェアからの時間経過割り込みが発生しなくなった場合は、従来の方式でシステムダウンさせる。
なお、サンプルデータ数が少ないときなど「異常検出の基準値」が有効になってない時点では、チェック処理は行わない。
次にCPU間の排他制御状態を監視する場合の異常状態検出処理について説明する。
CPUの排他制御解除忘れなどの異常が発生した場合の概要図を図7に示す。
OSプログラムのミスなどでCPUの排他制御解除忘れの状態が発生した場合、以降永久にCPU排他制御の獲得ができなくなる。
CPU排他制御の獲得ができなかったとき、エミュレータ部16による処理1では以下のa)方式とb)方式を併用して異常発生を検出する。
a)「CPU排他制御が獲得された時点からの経過時間」と「異常検出の基準値」の比較
b)「最初にCPUの排他制御ができなかった時点からの経過時間」と「異常検出の基準値」の比較
異常検出の基準値は、以下の値を採用する。
基準値=最大値×安全係数
・最大値は、異常検出の基準データ生成処理で抽出した値。
・安全係数は、過渡的にシステム負荷が高くなったケースで、通常時の値では、正常・異常の判断を誤認する可能性があるために用いる。安全係数の適切値は、2〜4の範囲と考えられる。
なおa)方式のみ異常検出を行った場合、CPU排他制御用の領域が何らかの要因で壊されてCPU排他制御の獲得ができなくなったとき、異常が検出できない。またb)方式のみで異常検出を行った場合では、a)方式に比べて検出精度が悪くなる。よってa)方式とb)方式を併用する。
上記したa)、b)の方式による異常検出で、経過時間が「異常検出の基準値」を超えた場合、エミュレータ部16のデータ採取・異常状態検出部22は、システムの異常と判断し、割り込み情報に異常個所と異常内容を設定して、他のCPU割り込みを発生させる。また自CPUで復旧可能な場合には、自CPUの復旧処理プログラム15に復旧を依頼する。なお、「異常検出の基準値」が有効になってない時点では、チェック処理は行わない。
復旧処理を依頼するCPUが、特定CPUに集中してCPU負荷を増加させないために、割り込み先のCPUは、以下の方式で決める。
割り込み先のCPU番号=自CPU番号+1
自CPU番号が最終番号のときは、CPU番号=0とし、サイクリックにCPUを決定する。
次に復旧処理について説明する。
図8は復旧処理プログラム15によって行われる処理内容を示す図である。
復旧処理プログラム15によって行われる処理は、異常内容の判別処理31、システムダウン処理32、自動復旧処理33に分けることができる。
以下に各処理の詳細を説明する。
異常内容の判別処理31は、他CPUからの割り込みが発生した場合、通知される割り込み情報から自動復旧が可否をチェックし、自動復旧が不可能な場合、システムダウン処理32に制御を渡す。そして自動復旧が可能な場合、自動復旧処理33に制御を渡す。
システムダウン処理32は、通知される割り込み情報、データ採取処理で採取した情報を退避した後に、従来のシステムダウン処理を行う。
このとき退避される割り込み情報、データ採取処理で採取した情報は、原因調査の有効な情報となる。
自動復旧処理33では、他CPUから通知された割り込み情報を元に、関連する制御表の内容を復旧する。
復旧の仕方としては、割り込み禁止状態の監視時間オーバーを検出した場合は、例えば割り込みを発生させた他CPUの状態を確認し、OSプログラム以外が動作中または何も実行していない状態であれば、割り込み禁止状態を解除してシステム運用を継続し、OSプログラムが動作中の場合は、システムをダウンさせる。
またCPU排他制御状態の監視時間オーバーを検出した場合は、例えば他CPUから通知された割り込み情報とデータ採取処理で採取した情報から復元するデータ(制御表の種別)を特定し、復旧する。
また後述する制御表間のリンクの復旧処理等プログラムの論理でデータの復旧が必要な場合、各データに対応する復旧プログラム34を用いて自動復旧処理を行う。
次に異常内容の判別処理31の詳細内容を説明する。
通知された割り込み情報からの自動復旧可否の判断方法としては、まず他CPUから通知された割り込み情報から関連する制御表を特定する。
具体的には、命令コード、命令アドレス、命令の実行結果、実行命令が参照したメモリの内容、各レジスタの値(制御表の位置アドレス)等のデータ採取処理で採取した情報などから対象とする制御表を特定する。
そしてこの制御表を用いて、異常内容の判別を行う。
図9は、発生した異常内容の判別方法についての説明図である。
異常内容の判別処理31では、検出した異常内容の種別と採取した情報41から復旧対象とする制御表を決定する。
そして復旧対象とする制御表の実際の内容42と、比較するデータのマスクパターン43とのAND(論理積)を取り、結果を正しい制御表44の内容と比較し、両者が一致するかどうかから任意の場所の異常内容のチェックを行う。
対象とする制御表の内容から自動復旧可否のチェックは、以下の方法が考えられる。
1)比較するデータのマスクパターン43を自動復旧可のものと自動復旧不可のものの2つ持つ方法
方法1)では、自動復旧可のマスクパターン43及び自動復旧不可のマスクパターンとデータを比較して自動復旧の可否のチェックを行う。
2)異常発生の内容で判断する方法
方法2)では、異常発生箇所が特定の個所であれば、制御表の復旧が可能と判断する。
例えば、異常発生箇所が排他制御用作業域、復旧用デ−タが存在する、などの特定の箇所のみであれば、復旧可と判断する。
あるいは異常発生箇所が定数域のみであれば、復旧可と判断する、または異常発生の箇所数で判断する、等の方法が考えられる。
次にシステムダウン処理32の詳細について説明する。
本実施形態におけるシステムダウン処理32は、従来行われている処理と同様、メモリダンプ情報の採取、データベース情報の退避、システム停止情報の退避等を行う。
次に自動復旧処理33の詳細について説明する。
対象とする制御表の復旧方法には、以下の方法がある。
プログラムで参照する制御表の内容は、定数となる部分と変数となる部分が存在し、以下の方法で復元が可能である。
・一般的な定数の値は、制御表の種別ごとの復旧用データを自動復旧処理33が持つことで復元が可能となる。
・定数値がアドレス値の場合は、復旧用プログラムを持つことで他制御表内のデータを用いて復元できるケースが多い。
・変数の値は、自動復旧処理33が持つ復旧用プログラムを用い、他制御表との整合性を考慮して復元する。また変数の値は、制御表の内容を初期状態に戻すことにより復旧可能な場合もあるので、状態に応じた適宜な復旧処理を行う。
図10は発生した異常内容の復旧方法を示す図である。
自動復旧処理33では、異常内容の判別処理31で検出した異常発生箇所から、復旧パターンを決定する。
制御表内の定数となる部分は、実際の制御表の内容55と復旧不要部分データのマスクパターン52のANDを取った結果に対して正しい制御表の内容53とOR(論理和)を取ることにより復旧データが生成できる。
制御表内のアドレス情報の定数となる部分と、変数となる部分は、制御表ごとの復旧処理プログラム54と復旧用データを持ち、これらを用いることで復旧が可能である。
例えば主要な制御表アドレスなどの数が限定できる情報は、通常用と復旧用の2つの情報を持つことにより復旧が可能となる。なお、復旧用の情報は、プログラムミスなどによって破壊されにくいメモリ位置に配置する。
次に制御表間にリンクが張られた制御表の内容の復旧例を示す。なお本処理は、復旧用プログラムによって行われる。
CPUによる排他制御解除忘れによる異常が発生した場合や、排他制御により制御している制御表の内容に異常がある場合、制御表を復旧した後に、CPU排他制御の解除を行う。
制御表の内容に異常がない場合、CPU排他制御の解除を行う。
制御表の復旧方法の例を図11に示す。
同図は、プログラムが実行中の場合において、異なる制御表の間のリンク関係が壊された場合を示している。
×印が示されているリンク61部分を異常と判断した場合は、実行中のタスクで用いられている制御表を示すタスクポインタ63の値からリンク61を復旧できる。また×印が示されているリンク62部分が異常と判断した場合は、実行中のプログラムのプログラムポインタ64の値からリンク62を復旧することができる。
またプログラムが実行待ちの場合において、同じ制御表の間のリンク関係が壊された場合についての制御表の復旧方法の例を図12に示す。
同図において、×印で示したリンク65部分を異常と判断した場合は、リンクを(1)−>(2)−>(3)と辿ってゆくことにより、リンク65を復旧することができる。
次に同じ制御表の間に、複数のリンク関係が存在する場合の例を図13に示す。なお本例は、排他制御におけるデットロック監視機能を備え、また排他獲得待ちキューで待つ要求は、待ちキューアドレス71を持つことを前提とする。
同図において、×印のリンク72部分が異常と判断した場合は、デッドロック監視キュー73からリンクされている要求を(1)−>(2)−>(3)−>(4)−>(5)−>(6)(図中の太い点線矢印)とサーチし、排他獲得待ちキューAで待っていた要求を抽出することにより排他獲得待ちキューAのリンク情報72を復旧することができる。
次に割り込み禁止解除忘れにより異常が発生した場合の制御表の復帰について説明する。
割り込み禁止解除忘れにより異常が発生した場合、若しくは直前に割り込み禁止状態としたプログラムが使用する制御表の内容に異常がある場合、制御表内の情報を復旧した後に割り込み禁止の解除を行う。制御表の内容に異常がない場合、そのまま割り込み禁止の解除を行う。
制御表の復旧方法は、上記したCPUの排他制御解除忘れの場合と同様の方法で復旧する。
なお割り込み禁止の設定と解除は、CPUが持つ制御レジスタの内容を更新することで実現できる。
図14は、エミュレータ部16による処理1のデータ採取・異常状態検出部22による処理内容を示すフローチャートである。同図の処理は、データ採取処理を中心に記載されている。
同図において処理が開始されると、まずステップS1として現在使用中の採取データのポインタから、データ採取処理で採取する採取データの格納位置として次の採取データ格納領域を検出する。そしてステップS2で採取データをその格納位置に格納する。
そしてステップS3として格納域に現在使用中かどうかを示すフラグをONに設定して使用中であることを表示し、処理を終了する。
図15は、エミュレータ部16による処理2のデータ採取・異常状態検出部22による処理内容を示すフローチャートである。同図の処理も、データ採取処理を中心に記載されている。
同図において処理が開始されると、まずステップS11として、各格納領域の現在使用中かどうかを示すフラグを調べて現在使用中(ON)の格納領域が存在することを確認し、図14のステップS1で求めた格納領域内に採取データを格納する。
そしてステップS12として格納域に使用中を表示しているフラグをリセット(OFF)し、処理を終了する。
図16A及び図16Bは、図14、図15に示した処理1及び処理2で採取データを格納する格納域の構成例を示す図である。
図16Aに示す採取データの格納域は、複数用意された格納域がサイクリックに使用される構成を有している。そして現在使用する位置の採取データの格納域は、データ採取・異常状態検出部22が持つ現在使用中の採取データの格納域のポインタで指定されており、格納が終わるとポインタは次の格納域を指定するよう構成されている。
図16Bに各採取データ格納域の構成を示す。
各格納域は、次の格納域へのポインタとなるアドレスと処理1用の格納域(領域A)、処理2用の格納域(領域B)及び現在使用中かどうかを示すフラグ(不図示)を備えている。
データ採取処理により採取され、この格納域に格納されるデータには、対象プログラムを実行した時間、実行したCPUのCPU番号、実行命令コード、実行命令アドレス、実行命令の実行結果、実行命令が参照したメモリの内容、各レジスタの値及び実行中プログラムを特定するための情報(実行中タスク、実行中プロセス、起動要因(割り込み種別など)が記憶される。
図17は、エミュレータ部16による処理2でデータ採取・異常状態検出部22が行なう異常検出基準データ生成処理の内容を示すフローチャートである。
同図の処理が開始されると、まずステップS21として対象プログラムによる処理に要した時間を算出する。具体的には、排他制御を獲得してから排他制御を解除するまでの時間、若しくは割り込みを禁止してから禁止を解除するまでの時間を算出する。
次に本処理では、ステップS22として監視機能が有効であるかどうかの判断を行い、有効であれば(ステップS22、Y)、ステップS23としてステップS21で算出した時間が最大値を超えたかどうかを判断し、最大値を超えていれば(ステップS23、Y)ステップS24として最大値の値をステップS21で算出した値に変更し、ステップS25として変更した値を元に基準値を算出した後、処理を終了する。またステップS23においてステップS21で算出した時間が最大値を超えていなければ(ステップS23、N)、ステップS24、S25の処理をスキップして本処理を終了する。
ステップS22において、監視機能が無効と判断したとき(ステップS22、N)、ステップS26としてステップS21で算出した時間が最大値を超えたかどうか判断し、最大値を超えていたならば(ステップS26、Y)、ステップS27としてその値に最大値の値を変更し、最大値を超えていなければ(ステップS26、N)、ステップS27の最大値の変更処理をスキップする。
次にステップS28として監視機能を有効にするかどうかを判断し、有効にするのならば(ステップS28、Y)、ステップS29として基準データを算出してからステップS30として監視機能を有効とした後、本処理を終了する。またステップS28において監視機能を有効にしないのならば(ステップS28、N)、そのまま本処理を終了する。
図18は、図17に示した異常検出基準データ生成処理で用いられる制御表の例を示す図である。
同図の制御表には、状態表示域、監視機能を開始する時点の検出用作業域、採取データの最大値域、及び異常の判断の基準データ域を記憶している。
状態表示域は、監視機能を有効とするか否かの情報を記憶するものであり、図17のステップS22では、この状態表示域の設定状態を調べることにより監視機能が有効かどうかを判断する。またステップS30では、この状態表示域の設定を書き換えることにより監視機能を有効とする。監視機能を開始する時点の検出用作業域は、監視機能を開始する時点を判断するために用いる作業域である。この判断の仕方としては、例えば採取したデータ数をカウントし、一定数を超えたとき、監視機能を開始したり、あるいはIPL完了時からの経過時間を監視し、一定時間経過したとき、監視機能を開始したりする。採取データの最大値域は、採取データの最大値を記憶しておく領域で、ステップS23、S26でこれまでの最大値を超えたと判断されたとき、ステップS24、S27で更新される。異常の判断の基準データ域は、ステップS25、S29で算出した異常の判断の基準データを記憶する格納位置を示すポインタ値を記憶する領域である。
図19は、エミュレータ部16の処理1でデータ採取・異常状態検出部22が行う異常状態検出処理を示すフローチャートである。同図は排他処理に対する異常検出を行った場合を例として示している。
同図において、排他獲得に成功した場合(ステップS41、N)、本処理は終了する。
ステップS41において排他獲得に失敗すると(ステップS41、Y)、まずステップS42として直近に行われた排他獲得の時点からの経過時間を算出する。
そしてこの経過時間が基準値を超えていたならば(ステップS43、Y)、ステップS44として、通知情報を作成し他CPUに異常状態を検出したことを通知した後本処理を終了する。またステップS43で経過時間が基準値を超えていなければ(ステップS43、N)、経過時間が基準値を超えるまで待つため、ステップS44をスキップして本処理を終了する。
図20は、図19のステップS42で行われる直近に行われた排他獲得の時点からの経過時間を算出処理において、直近の排他獲得を行ったCPUを示す図である。
本実施形態のシステムは、マルチCPUシステムなので、エミュレータ部16による処理1で行われるデータ採取・異常状態検出部22で実行される異常状態検出処理では、直近で排他獲得を行ったCPUの候補は、複数存在する。
例えば図20に示すようなCPU0、CPU1及びCPU2の3つのCPUを備えるシステムにおいて、CPU0が異常状態を検出しても、直近に排他獲得が行われた時点のデータの格納位置はCPU0による採取データの格納領域81−0、CPU1による採取データの格納領域81−1、及びCPU2による採取データの格納領域81−2の3つが考えられる。
処理1で行われる異常状態検出処理では、これらの全てのデータを処理の対象として、ステップS42の経過時間の算出処理を行う。
図21は、エミュレータ部16で実行される処理2でデータ採取・異常状態検出部22が行う異常状態検出処理を示すフローチャートである。同図は排他処理に対する異常検出を行った場合を例として示している。
同図において、まずステップS51として本処理を行うCPUによって排他獲得が行われているかどうかを判断し、排他獲得が行われていなければ(ステップS51、N)、ステップS55として保守用情報をメモリに退避した後本処理を終了する。
ステップS51において、排他獲得が行われていたならば(ステップS51、Y)、ステップS52として排他獲得時点からの経過時間を算出する。
そしてその経過時間が基準値を超えていたならば(ステップS53、Y)、ステップS54として、通知情報を作成し他CPUに異常状態を検出したことを通知、または保守用情報を退避した後本処理を終了する。またステップS53において経過時間が基準値を超えていなければ(ステップS53、N)、経過時間が基準値を超えるまで待つため、ステップS54をスキップして本処理を終了する。
なおステップS54、S55で退避する保守用情報は、例えば発生した異常内容を表わす情報、実行した時間、実行CPU番号、実行命令コード、実行命令アドレス、実行命令の実行結果、実行命令が参照したメモリの内容、各レジスタの値、実行中プログラムを特定するための情報(実行中タスク、実行中プロセス、起動要因(割り込み種別など))などである。
図22は、図21のステップS52で行われる排他獲得の時点からの経過時間を算出処理において、排他獲得を行ったCPUを示す図である。
データ採取・異常状態検出部22で実行される処理2で行われる異常状態検出処理では、直近で排他獲得を行ったCPUは1つであるので、直近に行われた排他獲得のデータの格納数も1つとなる。
例えば図22に示すようなCPU0、CPU1及びCPU2の3つのCPUを備えるシステムにおいて、CPU0が異常状態を検出すると、直近に排他獲得が行われた時点のデータの格納位置はCPU0による採取データの格納領域82となる。
図23は、時間割り込みプログラム14による処理を示すフローチャートである。なお同図のフローチャートは排他処理を例にして示している。
時間割り込みプログラム14による処理では、特定のCPUの負荷が高くなることを防ぐために、CPU毎に自CPUの制御範囲のチェックを行っている。
同図において処理が開始されると、まずステップS61として自CPUが排他獲得中の事象があるかどうかを判断し、排他獲得中の事象がなければ(ステップS61、N)、本処理を終了する。
ステップS61において、排他獲得中の事象があれば(ステップS61、Y)、ステップS62として直近の排他獲得時点からの経過時間を算出する。
そしてステップS62で算出した経過時間が基準値を超えていたならば(ステップS63、Y)、ステップS64として通知情報を作成し他CPUに異常状態を検出したことを通知した後本処理を終了する。
またステップS63において、経過時間が基準値を超えていなければ(ステップS63、N)、ステップS65として排他獲得中の全事象のチェックを完了したかどうかを調べ、全事象のチェックが完了していなければ(ステップS65、N)、ステップS62に処理を戻してその事象に対してステップS62、S63の処理を行い、事象のチェックが完了していれば(ステップS65、Y)、本処理を終了する。
図24は、図23の時間割り込みプログラム14による処理を示すフローチャートでの事象が排他獲得を行っている採取データの格納域を説明する図である。
データ採取処理では、採取データの格納域を図24に示すようにサイクリックに構成し、現在使用中の格納域をポインタ84で指定している。
図23のフローチャートで示す時間割り込みプログラム14を実行しているCPUが、複数の排他制御を行っている場合、対象処理の事象が複数存在することになり、採取データの格納数も複数になる。
図24では、格納域83−1、83−2の2つの格納域が処理対象の事象による格納域になっている。
図25は、復旧処理プログラム15による復旧処理の処理フローを示すフローチャートである。
同図の処理が開始されると、まずステップS71として処理対象の制御表の排他獲得を行う。このとき処理対象の制御表が既に排他獲得状態にあるときは、排他獲得処理を行わない。
次にステップS72として、処理対象の制御表が自動復旧不可かどうかチェックする。このチェックの方法についての詳細は後述する。
ステップS72のチェックの結果、処理対象の制御表が自動復旧不可の場合(ステップS73、Y)、ステップS80として処理対象の制御表の排他獲得状態を解除後、システムダウンして処理を終了する。
ステップS72のチェックの結果、処理対象の制御表が自動復旧可能な場合(ステップS73、N)、次にステップS74として処理対象の制御表の復旧の要否のチェックを行う。このチェックの方法についての詳細は後述する。
ステップS74のチェックの結果、処理対象の制御表の復旧が必要ならば(ステップS75、Y)、処理をステップS76に移し、復旧が必要でないならば(ステップS75、N)、処理をステップS79に移す。
ステップS76では、制御表の復旧処理を行う。この制御表の復旧処理の詳細は後述する。
ステップS76の御情報の復旧処理が終了後、復旧用プログラムが存在するかどうかを調べ、存在するならば(ステップS77、Y)、ステップS78として対応する復旧プログラムを呼び出して実行し、復旧プログラムが存在しないならば(ステップS77、N)、処理をステップS79に移す。
ステップS79では処理対象の制御表の排他獲得を解除し、本処理を終了する。
なお、図19、図21及び図23のフローチャートは、排他検出の場合を例としてあげているが、割り込みの解放異常の検出の場合は、経過時間の算出を割り込み禁止を行った時点からカウントする以外、図19、図21及び図23のフローチャートの基本的な動作処理構成は同じである。
次に図25のステップS72で行われる処理対象の制御表の自動復旧不可のチェックについて説明する。
図26は、処理対象の制御表の自動復旧不可のチェックの説明図である。
自動復旧不可のチェックでは、実制御表の内容91と比較するデータのマスクパターン92のANDの結果と、正しい制御表の内容93を比較する。そして比較の結果両者が一致する場合自動復旧可能と判断し、逆に両者が等しくない場合、自動復旧不可と判断する。
なお、実制御表の内容91とマスクパターン92のANDの結果が全て0の場合、これを正しい制御表の内容93と比較するのを中止することによって、正しい制御表の内容93を後述する復旧の要否に用いる正しい制御表の内容103と共用することができ、これらを記憶するのに必要なメモリ量を軽減することができる。
同図においては、実制御表の内容91の94部分とマスクパターン92の95部分のANDの結果は、正しい制御表の内容93の96部分と一致し、他の部分は全て“0”となる。全て“0”となっている部分は正しい制御表の内容93との比較をしないので、図26の例では自動復旧可能となる。
次に図25のステップS74で行われる制御表の復旧の要否のチェックについて説明する。
図27は、処理対象の制御表の復旧の要否のチェックの説明図である。
復旧の要否のチェックでは、定数等制御表内の自動復旧が可能な値が破壊されていないかをチェックする。
チェックの仕方としては、実制御表の内容101と自動復旧可能な領域を抽出するマスクパターン102のANDを行い、ANDの結果と正しい制御表の内容103とを比較することにより、任意の領域の値をチェックすることができる。なお上述したようにこの正しい制御表の内容103は、図26に示した制御表の自動復旧不可のチェックに用いられる正しい制御表の内容93と同じ内容の情報として構成することができる。
図27では、実制御表の内容101とマスクパターン102のANDの結果が正しい制御表の内容が一致するので自動復旧は不要である。
次に図25のステップS76で行われる制御表の復旧処理について説明する。
図28は、処理対象の制御表の復旧処理の説明図である。
制御表の復旧処理では、実制御表の内容111と復旧不要部分のマスクパターン112でANDを取り、これと正しい制御表の内容113とでORを取ることにより、復旧データが生成される。
復旧不要部分のマスクパターン112は、復旧を行うビットには“0”がまた復旧不要なビットには“1”が設定されており、復旧不要部分のマスクパターン112とANDを取ると復旧を行う部分が“0”となる。よって復旧不要部分のマスクパターン112とのANDの結果と、正しい制御表の内容113とでORを取ることにより、復旧データが生成される。
なお実制御表の内容111を復元する場合、排他制御用のデータは、排他制御用のデータ以外の実制御表の内容111の復元が完了した後に復元する。図28の場合、114部分が排他制御用のデータに該当し、この部分を最後に“8000”から“0000”に書き換える。
なお正しい制御表の内容113は、復旧処理プログラム15が固定値として保持する、対象となる制御表生成時に生成する、あるいは復旧処理プログラム15が他の制御表を参照して生成するプログラムを保持する等の方法によって生成することが考えられる。
あるいは制御表の復旧処理として対象制御表を再作成する方法を用いても良い。
図29Aは、復旧処理プログラム15が持つ識別ポインタを示す図である。
識別ポインタ121−1〜121−nは、検出される異常の種類毎に設けられ、復旧処理プログラム15は、他CPUから復旧依頼と共に通知される異常の種類に対応した識別ポインタ121−1〜121−nを用いて、上記した復旧処理に必要な正しい制御表の内容122、復旧用プログラム123、及びマスクパターン124等のデータを得る。
図29Bに識別ポインタ121の構成例を示す。
同図の識別ポインタ121には、検出した異常の識別コード、処理対象リソースについての情報、処理対象のリソース(制御表)へのアドレス、自動復旧不可の検出に用いるマスクパターンデータへのアドレス、復旧の要否の検出に用いるマスクパターンデータへのアドレス、復旧不要部分の抽出に用いるマスクパターンデータへのアドレス、復旧用データ(正しい制御表の内容)へのアドレス、及び復旧用プログラムのエントリアドレスを情報として保持している。
復旧処理プログラムは、他のCPUから復旧処理の依頼があると、その異常の種類に基づいて識別ポインタ121を選択し、この識別ポインタを用いて復旧処理に用いる各種マスクパターンやプログラム等を得る。
図30は、本実施形態のマルチCPUシステムによる情報処理装置のシステム構成例を示す図である。
同図の情報処理装置は、複数のCPU131−1〜131−o、RAM等の主記憶装置132、ハードディスク等の補助記憶装置133、ディスプレイ、キーボード、ポインティングデバイス等の入出力装置(I/O)134、モデム等のネットワーク接続装置135、及びディスク、磁気テープなどの可搬記憶媒体から記憶内容を読み出す媒体読み取り装置136を有し、これらが互いにバス138により接続される構成を備えている。そして各構成要素は、バス138を介して互いにデータのやり取りを行う。
複数のCPU131−1〜131−oは、主記憶装置132及び補助記憶装置133を共有メモリとしている。そして複数のCPU131−1〜131−oは、主記憶装置132及び補助記憶装置133上のプログラム(OS)を実行することにより、図14、図15、図17、図19、図21及び図23に示したフローチャートの処理を実現する。
図30の情報処理装置では、媒体読み取り装置136により磁気テープ、フレキシブルディスク、CD−ROM、MO等の記憶媒体137に記憶されているプログラム、データを読み出し、これを主記憶装置132または補助記憶装置133にロードする。そしてこのプログラムやデータを複数のCPU131−1〜131−oが実行したり用いたりすることにより、上述したフローチャート処理をソフトウエア的に実現する。
また、図30の情報処理装置では、フレキシブルディスク等の記憶媒体77を用いてアプリケーションソフトの交換が行われる場合がある。よって、本発明は、マルチCPUシステムや異常検出及び自動復旧方法に限らず、コンピュータにより使用されたときに、上述した本発明の実施形態の機能をコンピュータに行なわせるためのコンピュータ読み出し可能な記憶媒体77として構成することもできる。
この場合、「記憶媒体」には、例えば図31に示されるように、CD−ROM、フレキシブルディスク(あるいはMO、DVD、リムーバブルハードディスク等であってもよい)等の媒体駆動装置147に脱着可能な可搬記憶媒体146や、ネットワーク回線143経由で送信される外部の装置(サーバ等)内の記憶部(データベース等)142、あるいは情報処理装置141の本体144内のメモリ(RAM又はハードディスク等)145等が含まれる。可搬記憶媒体146や記憶部(データベース等)142に記憶されているプログラムは、本体144内のメモリ(RAM又はハードディスク等)145にロードされて、実行される。
また、既に説明したCD−ROMやDVD−ROM等の記憶媒体には、上記に例として挙げたものの他にも、例えば、Blu−ray Disc(登録商標)やAOD(Advanced Optical Disc)などの青色レーザーを用いた次世代光ディスク記憶媒体、赤色レーザーを用いるHD−DVD9、青紫色レーザーを用いるBlue Laser DVDなど、今後開発される種々の大容量記憶媒体を用いて本発明を実施することも可能である。
以上説明したように本発明は、利用者の手を煩わせることなく、かつ、既存のOSプログラム論理を変更することなく、精度の高いプログラム異常の検出機構ができる。
プログラム異常を検出した場合、原因調査に用いることができる精度の高い有効な情報が採取できるので、原因調査が容易となり、調査期間の短縮と原因究明率向上が図れる。
また、復旧用プログラムを備えることにより、異常発生箇所と異常内容に応じた最適の復旧処理が追加可能となるので、異常パターンデータの集積とともに、自動的に復旧できるケースが増加し、システムの耐性を向上させることができる。

Claims (11)

  1. 複数のCPUを備えるマルチCPUシステムにおいて、
    CPUにより実行中のプログラムの、資源の獲得から解放までの時間に基づいて判断される異常を検出する異常状態検出部と、
    前記異常状態検出部により異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する復旧部と、
    を備えることを特徴とするマルチCPUシステム。
  2. 複数のCPUを備えるマルチCPUシステムにおける異常検出及び自動復旧方法であって、
    CPUにより実行中のプログラムの、資源の獲得から解放までの時間に基づいて判断される異常を検出し、
    前記異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する
    ことを特徴とする異常検出及び自動復旧方法。
  3. 複数のCPUを備えるマルチCPUシステムにおいて実行されるプログラムであって
    CPUにより実行中のプログラムの、資源の獲得から解放までの時間に基づいて判断される異常を検出する機能と、
    前記異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する機能と、
    を前記マルチCPUシステムに実現させるプログラム。
  4. 事前にデータの復旧に用いるデータを備え、当該事前にデータの復旧に用いるデータを用いて前記データを復旧可能なとき、前記データを復旧することを特徴とする請求項3に記載のプログラム。
  5. 前記異常が検出されたとき、前記稼動しているプログラムが稼動しているCPU以外のCPUに復旧処理を依頼することを特徴とする請求項3または4に記載のプログラム。
  6. 前記異常状態検出部は、前記プログラムの異常を、資源の獲得から解放までの時間が基準値よりも長いこと検出することを特徴とする請求項1に記載のマルチCPUシステム。
  7. 前記プログラムの異常を検出する機能は、資源の獲得から解放までの時間が基準値よりも長いことを検出すること特徴とする請求項3に記載のプログラム。
  8. 前記検出される異常は排他獲得異常を含み、排他獲得してからの時間が特定値以上のとき、前記稼動しているプログラムは異常であると判定することを特徴とする請求項3に記載のプログラム。
  9. 前記排他獲得時及び排他獲得解除時に前記特定値を生成するのに用いるデータを収集することを特徴とする請求項8に記載のプログラム。
  10. 前記検出される異常は割り込み異常を含み、割り込み禁止を行ってからの時間が特定値以上のとき、前記稼動しているプログラムは異常であると判定することを特徴とする請求項3、請求項8又は請求項9のいずれか1つに記載のプログラム。
  11. 前記割り込み禁止時及び当該割り込み禁止解除時に前記特定値を生成するのに用いるデータを収集することを特徴とする請求項3、請求項8、請求項9又は請求項10のいずれか1つに記載のプログラム。
JP2009503756A 2007-03-12 2007-03-12 マルチcpu異常検出復旧システム、方法及びプログラム Expired - Fee Related JP5212357B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/000211 WO2008111124A1 (ja) 2007-03-12 2007-03-12 マルチcpu異常検出復旧システム、方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2008111124A1 JPWO2008111124A1 (ja) 2010-06-24
JP5212357B2 true JP5212357B2 (ja) 2013-06-19

Family

ID=39759075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009503756A Expired - Fee Related JP5212357B2 (ja) 2007-03-12 2007-03-12 マルチcpu異常検出復旧システム、方法及びプログラム

Country Status (3)

Country Link
US (1) US8074123B2 (ja)
JP (1) JP5212357B2 (ja)
WO (1) WO2008111124A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5504876B2 (ja) * 2009-12-24 2014-05-28 日本電気株式会社 プロセス異常復旧装置及びプロセス異常復旧方法
US8850262B2 (en) 2010-10-12 2014-09-30 International Business Machines Corporation Inter-processor failure detection and recovery
WO2012053110A1 (ja) * 2010-10-22 2012-04-26 富士通株式会社 障害監視装置、障害監視方法及びプログラム
CN103150224B (zh) * 2013-03-11 2015-11-11 杭州华三通信技术有限公司 用于提高启动可靠性的电子设备及方法
US10459782B2 (en) * 2017-08-31 2019-10-29 Nxp Usa, Inc. System and method of implementing heartbeats in a multicore system
JP2019179395A (ja) * 2018-03-30 2019-10-17 オムロン株式会社 異常検知システム、サポート装置および異常検知方法
US11693727B2 (en) * 2021-03-08 2023-07-04 Jpmorgan Chase Bank, N.A. Systems and methods to identify production incidents and provide automated preventive and corrective measures
CN114218075B (zh) * 2021-11-25 2024-04-19 中国航空综合技术研究所 机载设备测试性试验实施样本库生成方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0384640A (ja) * 1989-08-29 1991-04-10 Fujitsu Ltd 障害情報通知方式
JPH04365145A (ja) * 1991-06-13 1992-12-17 Hitachi Ltd メモリ障害処理方法
JPH11338838A (ja) * 1998-05-22 1999-12-10 Nagano Nippon Denki Software Kk マルチプロセッサシステムにおける障害情報のパラレルダンプ採取方法及び方式
JP2002007218A (ja) * 2000-06-21 2002-01-11 Hitachi Eng Co Ltd メモリ照合方式
JP2002132743A (ja) * 2000-10-27 2002-05-10 Nec Corp メモリアクセス監視装置、メモリアクセス監視方法およびメモリアクセス監視用プログラムを記録した記録媒体
JP2004164113A (ja) * 2002-11-11 2004-06-10 Nec Micro Systems Ltd マルチcpuのリセット回路およびリセット方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0748198B2 (ja) 1988-10-25 1995-05-24 株式会社ピーエフユー マルチプロセッサシステム
JPH04160642A (ja) * 1990-10-25 1992-06-03 Nec Corp コンピュータシステム
JPH0667901A (ja) * 1992-08-21 1994-03-11 Fuji Facom Corp リンクリスト履歴保存装置
JPH06214889A (ja) * 1993-01-20 1994-08-05 Hitachi Ltd 主記憶領域破壊検出方法
JPH0926888A (ja) * 1995-07-13 1997-01-28 Hitachi Ltd 排他制御装置
US5875342A (en) * 1997-06-03 1999-02-23 International Business Machines Corporation User programmable interrupt mask with timeout
DE19827430C2 (de) * 1997-07-22 2001-07-12 Siemens Ag Überwachungsverfahren zur Erkennung von Endlosschleifen und blockierten Prozessen in einem Rechnersystem
JP2908430B1 (ja) 1998-05-14 1999-06-21 九州日本電気ソフトウェア株式会社 マルチプロセッサシステムのホストプロセッサ監視装置および監視方法
US6393590B1 (en) * 1998-12-22 2002-05-21 Nortel Networks Limited Method and apparatus for ensuring proper functionality of a shared memory, multiprocessor system
US6301676B1 (en) * 1999-01-22 2001-10-09 Sun Microsystems, Inc. Robust and recoverable interprocess locks
US6898696B1 (en) * 1999-06-14 2005-05-24 International Business Machines Corporation Method and system for efficiently restoring a processor's execution state following an interrupt caused by an interruptible instruction
US6658595B1 (en) * 1999-10-19 2003-12-02 Cisco Technology, Inc. Method and system for asymmetrically maintaining system operability
US20040078681A1 (en) * 2002-01-24 2004-04-22 Nick Ramirez Architecture for high availability using system management mode driven monitoring and communications
US6961874B2 (en) * 2002-05-20 2005-11-01 Sun Microsystems, Inc. Software hardening utilizing recoverable, correctable, and unrecoverable fault protocols
US7162714B2 (en) * 2002-05-22 2007-01-09 American Power Conversion Corporation Software-based watchdog method and apparatus
JP2004259146A (ja) * 2003-02-27 2004-09-16 Nippon Telegr & Teleph Corp <Ntt> 閾値自動設定方法及びシステム
US7219264B2 (en) * 2003-05-09 2007-05-15 Tekelec Methods and systems for preserving dynamic random access memory contents responsive to hung processor condition
US7162666B2 (en) * 2004-03-26 2007-01-09 Emc Corporation Multi-processor system having a watchdog for interrupting the multiple processors and deferring preemption until release of spinlocks
JP2006338605A (ja) * 2005-06-06 2006-12-14 Denso Corp プログラム異常監視方法及びプログラム異常監視装置
US7546487B2 (en) * 2005-09-15 2009-06-09 Intel Corporation OS and firmware coordinated error handling using transparent firmware intercept and firmware services
US7191098B1 (en) * 2005-09-22 2007-03-13 International Business Machines Corporation Automatic detection of excessive interrupt-disabled operating system code
US7702889B2 (en) * 2005-10-18 2010-04-20 Qualcomm Incorporated Shared interrupt control method and system for a digital signal processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0384640A (ja) * 1989-08-29 1991-04-10 Fujitsu Ltd 障害情報通知方式
JPH04365145A (ja) * 1991-06-13 1992-12-17 Hitachi Ltd メモリ障害処理方法
JPH11338838A (ja) * 1998-05-22 1999-12-10 Nagano Nippon Denki Software Kk マルチプロセッサシステムにおける障害情報のパラレルダンプ採取方法及び方式
JP2002007218A (ja) * 2000-06-21 2002-01-11 Hitachi Eng Co Ltd メモリ照合方式
JP2002132743A (ja) * 2000-10-27 2002-05-10 Nec Corp メモリアクセス監視装置、メモリアクセス監視方法およびメモリアクセス監視用プログラムを記録した記録媒体
JP2004164113A (ja) * 2002-11-11 2004-06-10 Nec Micro Systems Ltd マルチcpuのリセット回路およびリセット方法

Also Published As

Publication number Publication date
US8074123B2 (en) 2011-12-06
JPWO2008111124A1 (ja) 2010-06-24
US20090307526A1 (en) 2009-12-10
WO2008111124A1 (ja) 2008-09-18

Similar Documents

Publication Publication Date Title
JP5212357B2 (ja) マルチcpu異常検出復旧システム、方法及びプログラム
EP2431876B1 (en) Method and device for exception handling in embedded system
US7716520B2 (en) Multi-CPU computer and method of restarting system
US5815651A (en) Method and apparatus for CPU failure recovery in symmetric multi-processing systems
US20100185895A1 (en) Failure-specific data collection and recovery for enterprise storage controllers
JPH0820965B2 (ja) プログラムの実行を続行する方法
US20170147422A1 (en) External software fault detection system for distributed multi-cpu architecture
US9411661B2 (en) Deadlock avoidance
JP2010086364A (ja) 情報処理装置、動作状態監視装置および方法
JP5224038B2 (ja) コンピュータ装置、コンピュータ装置の運用継続方法及びプログラム
US20080133975A1 (en) Method for Running a Computer Program on a Computer System
JP5440073B2 (ja) 情報処理装置,情報処理装置の制御方法および制御プログラム
KR102141620B1 (ko) 멀티 프로세스/멀티 스레드에서 사용하는 공유 메모리에 대한 원자성 위반 결함 탐지 방법 및 장치
JPH02294739A (ja) 障害検出方式
EP0654737A1 (en) Method and apparatus for controlling command retry
JP2015106226A (ja) 二重化システム
JPH09204205A (ja) プログラム制御システム
WO2010038280A1 (ja) 仮想計算機システム及びデッドロック解除方法
JPH01134637A (ja) 情報処理システムのストール監視方式
JP2574938B2 (ja) システム起動方式
JP2922981B2 (ja) タスクの実行継続方法
JP5504876B2 (ja) プロセス異常復旧装置及びプロセス異常復旧方法
CN117632564A (zh) 一种基于容器和对象模型操作系统的全局健康管理方法及系统
JP2009020545A (ja) コンピュータの異常監視装置
JP2010224908A (ja) 情報処理装置およびデータ修復方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120608

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121217

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121225

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: 20130129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130211

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees