(57)【要約】  複数のＣＰＵを備えるマルチＣＰＵシステムにおいて、稼動しているプログラムの異常を検出する異常状態検出部と、前記異常状態検出部により異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する復旧部と、を備えることを特徴とするマルチＣＰＵシステム。
2008111124.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵを備えるマルチＣＰＵシステムにおいて、  稼動しているプログラムの異常を検出する異常状態検出部と、  前記異常状態検出部により異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する復旧部と、  を備えることを特徴とするマルチＣＰＵシステム。
【請求項２】
複数のＣＰＵを備えるマルチＣＰＵシステムにおける異常検出及び自動復旧方法であって、  稼動しているプログラムの異常を検出し、  前記異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する  ことを特徴とする異常検出及び自動復旧方法。
【請求項３】
複数のＣＰＵを備えるマルチＣＰＵシステムにおいて実行されるプログラムであって  稼動しているプログラムの異常を検出する機能と、  前記異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する機能と、  を前記マルチＣＰＵシステムに実現させるプログラム。
【請求項４】
前記検出される異常は排他獲得異常を含み、排他獲得してからの時間が特定値以上のとき、前記稼動しているプログラムは異常であると判定することを特徴とする請求項３に記載のプログラム。
【請求項５】
前記排他獲得時及び前記排他獲得解除時に前記特定値を生成するのに用いるデータを収集することを特徴とする請求項４に記載のプログラム。
【請求項６】
前記検出される異常は割り込み異常を含み、割り込み禁止を行ってからの時間が特定値以上のとき、前記稼動しているプログラムは異常であると判定することを特徴とする請求項３乃至５のいずれか１つに記載のプログラム。
【請求項７】
前記割り込み禁止時及び当該割り込み禁止解除時に前記特定値を生成するのに用いるデータを収集することを特徴とする請求項３乃至６のいずれか１つに記載のプログラム。
【請求項８】
事前にデータの復旧に用いるデータを備え、当該事前にデータの復旧に用いるデータを用いて前記データを復旧可能なとき、前記データを復旧することを特徴とする請求項３乃至７のいずれか１つに記載のプログラム。
【請求項９】
前記復旧は、前記データから復旧が必要なデータを抽出し、当該抽出したデータに前記データの復旧に用いるデータを用いて行うことを特徴とする請求項９に記載のプログラム。
【請求項１０】
前記異常が検出されたとき、前記稼動しているプログラムが稼動しているＣＰＵ以外のＣＰＵに復旧処理を依頼することを特徴とする請求項３乃至９のいずれか１つに記載のプログラム。
【請求項１１】
事前にデータの復旧に用いるプログラムを備え、当該事前にデータの復旧に用いるプログラムを用いて前記データを復旧可能なとき、前記データを復旧することを特徴とする請求項３乃至１０のいずれか１つに記載のプログラム。
【請求項１２】
前記データの復旧に用いるプログラムは、復旧するデータ間にリンクが存在するとき、当該リンクを辿って前記データを復旧することを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記判断の結果、復旧が可能でない場合にはシステムダウンを行うことを特徴とする請求項３乃至１２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、複数のＣＰＵを備えるマルチＣＰＵシステムに関し、さらに詳しくはマルチＣＰＵシステムにおける自システムの異常検出及び検出した異常の自動復旧の技術に関する。
【背景技術】
【０００２】  コンピュータシステムでは処理速度が高速化し、それに伴いシステムの信頼性の向上が課題となっている。  そのため、システムの異常発生時にシステムをダウンさせることなく、システムを安定稼動させる技術が必要とされる。【０００３】  システムを安定稼動させるものとしては、複数のＣＰＵを備えるマルチＣＰＵシステムが考えられる。  マルチＣＰＵシステムにおける異常発生検出についての技術としては、以下のものが提案されている。【０００４】  特許文献１は、プロセッサ単位で動作を監視するものである。特許文献１では、プロセッサ間を通信機構で接続し、１つのプロセッサからデータを送信し、他プロセッサからの反応の有無を監視することにより異常検出を行っている。【０００５】  また特許文献２は、１命令単位でシステムの動作異常を監視・復旧する技術を開示するものである。特許文献２では、自プロセッサの異常発生を監視し、リセットにより復旧できる場合は、自動リセット発生回路及び異常要因保存回路によりリセット行って、プロセッサを再起動する方式が開示されている。【０００６】  しかし上記した２つの特許文献の方式には、以下のような問題点がある。  特許文献１の場合、プロセッサ間のデータ通信によりプロセッサを監視している。そのために、異常発生要因が生じてからシステム異常と認識されるまでに、分単位の時間の遅延が生じる。【０００７】  特許文献１の方式では、システム異常と認識された後に原因調査用の情報が採取されるので、調査用情報は異常発生要因が生じた時点から変化している。そのため、採取した調査用情報からは原因調査が難しい。よって調査期間が長期化する傾向があり、時には原因が究明できないこともある。【０００８】  システム監視の時間精度（分若しくは秒単位）とＣＰＵの持つ時間精度（ナノ単位）とでは大きな差があるために、システムの状態が変化して異常発生要因が生じた時点の状態を把握することが難しく、原因究明までに時間を要する。【０００９】  ＣＰＵの状態変化をログ情報として採取する技術もあるが、この方式においてもログ情報の容量制限などから有効な調査情報の採取ができないことがある。  特許文献２の場合、監視・復旧する単位が１命令であり、ファームウェアを再起動することにより異常状態から復旧できる場合、リセットをかけて再起動する方式である。【００１０】  この特許文献２の方式では、監視・復旧する単位が１命令であるので、ＯＳ（オペレーティングシステム）部分のプログラム異常などを検出するのは困難である。  以上を踏まえ、本発明は、ＯＳ部分でのプログラム異常などで顕在化した異常現象を早期に検出することが可能なシステム及び方法を提供することを課題とする。【００１１】  また検出した異常内容を判断して復旧可能な場合、自動的に復旧することが可能なシステム及び方法を提供することを課題とする。  更には異常を検出した場合、原因調査に有効な情報を確実に採取・退避することが可能なシステム及び方法を提供することを課題とする。【特許文献１】特開平１１−３２８１３１号公報
【特許文献２】特開平０２−１１４３６４号公報
【発明の開示】
【００１２】  本発明は、複数のＣＰＵを備えるマルチＣＰＵシステムを前提とし、異常状態検出部及び復旧部を備える。  異常状態検出部は、稼動しているプログラムの異常を検出する。
【００１３】  前記異常状態検出部により異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する。
【００１４】  この構成により、プログラム異常が発生すると、それを検出し、自動的に復旧することができる。  また本発明は、マルチＣＰＵシステムにおける異常検出及び自動復旧方法やマルチＣＰＵシステムで実行されるプログラムもその範囲に含む。
【図面の簡単な説明】
【００１５】
【図１】本実施形態が前提とするマルチＣＰＵシステムによる情報処理装置の概略構成を示す図である。
【図２】マルチＣＰＵシステムに搭載されているＯＳの構成例を示す図である。
【図３】本実施形態におけるＯＳによる処理動作の概要を示す図である。
【図４】割り込みの禁止状態を監視する場合のデータ採取処理と異常検出の基準データ生成処理の関連図である。
【図５】ＣＰＵ間の排他制御状態を監視する場合のデータ採取処理と異常検出の基準データ生成処理の関連図である。
【図６】割り込みの禁止状態を監視する場合の異常状態検出処理の概要を示す図である。
【図７】ＣＰＵの排他制御解除忘れなどの異常が発生した場合、異常状態検出処理の概要を示す図である。
【図８】復旧処理プログラムによって行われる処理内容を示す図である。
【図９】発生した異常内容の判別方法についての説明図である。
【図１０】発生した異常内容の復旧方法を示す図である。
【図１１】制御表の復旧方法の例を示す図である。
【図１２】プログラムが実行待ちの場合において、同じ制御表の間のリンク関係が壊された場合についての制御表の復旧方法の例を示す図である。
【図１３】同じ制御表の間に、複数のリンク関係が存在する場合の制御表の復旧方法の例を示す図である。
【図１４】エミュレータ部による処理１のデータ採取・異常状態検出部による処理内容を示すフローチャートである。
【図１５】エミュレータ部による処理２のデータ採取・異常状態検出部による処理内容を示すフローチャートである。
【図１６Ａ】図１４、図１５に示したで採取データを格納する格納域の構成例を示す図である。
【図１６Ｂ】各採取データ格納域の構成を示す図である。
【図１７】エミュレータ部による処理２でデータ採取・異常状態検出部が行なう異常検出基準データ生成処理の内容を示すフローチャートである。
【図１８】異常検出基準データ生成処理で用いられる制御表の例を示す図である。
【図１９】エミュレータ部の処理１でデータ採取・異常状態検出部が行う異常状態検出処理を示すフローチャートである。
【図２０】図１９のステップＳ４２で行われる直近に行われた排他獲得の時点からの経過時間を算出処理において、直近の排他獲得を行ったＣＰＵを示す図である。
【図２１】エミュレータ部で実行される処理２でデータ採取・異常状態検出部が行う異常状態検出処理を示すフローチャートである。
【図２２】図２１のステップＳ５２で行われる排他獲得の時点からの経過時間を算出処理において、排他獲得を行ったＣＰＵを示す図である。
【図２３】時間割り込みプログラムによる処理を示すフローチャートである。
【図２４】図２３のフローチャートで示す処理で事象が排他獲得を行っている採取データの格納域を説明する図である。
【図２５】復旧処理プログラムによる復旧処理の処理フローを示すフローチャートである。
【図２６】処理対象の制御表の自動復旧不可のチェックの説明図である。
【図２７】処理対象の制御表の復旧の要否のチェックの説明図である。
【図２８】処理対象の制御表の復旧処理の説明図である。
【図２９Ａ】復旧処理プログラムが持つ識別ポインタを示す図である。
【図２９Ｂ】復旧処理プログラムが持つ識別ポインタの構成例を示す図である。
【図３０】本実施形態のマルチＣＰＵシステムによる情報処理装置のシステム構成例を示す図である。
【図３１】記憶媒体の例を示す図である。
【発明を実施するための最良の形態】
【００１６】  以下に図面を参照しながら本発明の一実施形態について説明する。  図１は、本実施形態が前提とするマルチＣＰＵシステムによる情報処理装置の概略構成を示す図である。【００１７】  同図に示すように、本情報処理装置では、複数のＣＰＵ２−１〜２−ｌが共有メモリ１を共有する構成となっている。また各ＣＰＵ２−１〜２−ｌは、ＣＰＵ間の通信路３を介して互いにやり取りを行うことができる。【００１８】  図２は、図１のマルチＣＰＵシステムに搭載されているＯＳの構成例を示す図である。同図は、ＯＳの全構成要素を示すものではなく、本実施形態に関連のある機能部分のみを示している。【００１９】  同図では、ＯＳ１１は、スケジューリング部１２、時間割り込みプログラム１４、復旧処理プログラム１５、及びエミュレータ部１６を有している。  スケジューリング部１２は、他ＣＰＵからの要求等や、入出力装置からの割り込み要求、タイマーによる時間割り込み等を外部から受け付け、ＯＳ１１上で起動している事象ごとのプログラム１３−１〜１３−ｍや時間割り込みプログラム１４に、発生した事象を割り振る。時間割り込みプログラム１４は、定周期で発生する時間割り込みで起動されるプログラムである。復旧処理プログラム１５は、異常が発生したＣＰＵの自動復旧を司るものである。エミュレータ部１６は、他の情報処理装置の機能の模倣を行うためのエミュレータである。なお図２においては、構成を簡略に示すためにエミュレータ部１６を備える構成となっているが、本実施形態におけるＯＳにおいてはエミュレータ部１６は必須の構成要件ではないので、本実施形態におけるＯＳはエミュレータ部１６を備えなくても良い。【００２０】  本実施形態のＯＳでは、プログラム異常の検出及び自動復旧を実現するために、復旧処理プログラム１５を備え、また時間割り込みプログラム１４に異常状態を検出する異常状態検出部２１及びエミュレータ部１６にデータ採取・異常状態検出部２２を備えている。【００２１】  このうちデータ採取・異常状態検出部２２は、平常動作時におけるプログラムの動作データ採取機能、プログラム異常を検出するための基準データ生成機能及びプログラム異常を検出する機能を備えている。【００２２】  プログラム異常と判断するための基準値は、大きな値とした場合検出の精度が悪くなり、小さな値とした場合誤認する可能性が高くなるので、人が設定することは困難である。  本実施形態のＯＳでは、エミュレータ部１６のデータ採取・異常状態検出部２２に平常時におけるプログラムの動作データ採取機能とプログラム異常を検出するための基準データ生成機能を設けることにより、人が設定することなくシステムが自動的に最適な値の基準値を生成することができる。【００２３】  また本実施形態におけるＯＳは、プログラム異常を検出した場合には、異常が検出されたＣＰＵ以外の他のＣＰＵに割り込みをかけ、そのＣＰＵに復旧処理を依頼する。このように異常が発生したＣＰＵ以外のＣＰＵが復旧処理を行うよう構成することで、異常を検出したＣＰＵ自身が復旧処理を行うための機能を追加する必要がなくなる。よって、ＯＳに対して既存のプログラム論理を変更する必要がない。【００２４】  また本実施形態のＯＳは、復旧処理プログラム１５を設けることにより、検出した異常の自動復旧機能を備える。復旧機能は、異常内容の判別処理と自動復旧処理から構成され、自動復旧処理は、異常発生箇所と異常内容に対応した復旧用プログラム（復旧用データ）を装備できる機能を持つ。この復旧処理プログラム１５を備えることにより、異常発生箇所と異常内容に応じた最適の復旧処理が可能となる。【００２５】  次に本実施形態のＯＳによる動作説明を行う。  図３は、本実施形態におけるＯＳによる処理動作の概要を示す図である。  本実施形態のＯＳ１１上でユーザプログラム１３を実行する際、ＯＳ１１では（１）エミュレータ部１６による処理１、（２）エミュレータ部１６による処理２、（３）割り込みプログラム１４による処理、が（１）−＞（２）−＞（３）−＞（１）・・・の順に実行される。【００２６】  （１）  エミュレータ部１６による処理１  割り込みを禁止にし、またＣＰＵ間の排他制御を獲得するなどの資源の獲得処理を行う。またデータ採取・異常状態検出部２２により制御に必要となるデータの採取処理と異常検出処理を行う。【００２７】  （２）  エミュレータ部１６による処理２  割り込み禁止を解除し、またＣＰＵ間の排他制御を解放するなどの資源の解放処理を行う。またデータ採取・異常状態検出部２２により、制御に必要となるデータ採取処理、異常検出を認識するための基準データの生成処理及び異常検出処理を行う。【００２８】  （３）  時間割り込みプログラム１４による処理  時刻の更新、プログラムへの経過時間の通知などによる時間割り込みが発生した場合の処理を行う。また異常状態検出部２１による異常検出処理を行う。【００２９】  上記（１）〜（３）の異常状態検出処理で、一定時間内に排他制御の獲得ができなかったとき、または割り込み禁止が解除されなかった場合、異常が発生したものと判断して、検出した異常内容に対応した（４）復旧処理を要求する。【００３０】  （４）  復旧処理  復旧処理は、復旧処理プログラム１５によって行われるもので、異常内容の判別処理と自動復旧処理から構成される。【００３１】  異常内容の判別処理は、異常を検出した場所と異常内容から自動復旧の可否を判断する。自動復旧処理は、異常内容の判別処理の判断結果が自動復旧可能な場合、異常検出したところのログ情報採取と復旧処理を行う。そして自動復旧が不可能な場合、原因調査に必要な情報を退避した後、システムをダウンさせる。【００３２】  なお検出した異常内容の種類から復旧処理を行うＣＰＵが決定される。  次に図３に示したデータ採取処理と異常検出の基準データ生成処理について説明する。  図４に割り込みの禁止状態を監視する場合のデータ採取処理と異常検出の基準データ生成処理の関連図を示す。【００３３】  同図において、ユーザプログラム１３からＯＳ１１に対して要求が発生すると、その要求を実行するため、ＯＳ１１では、割り込みの禁止、要求に対する処理、割り込み禁止の解除、ユーザプログラム１３への復帰命令が実行される。【００３４】  このときＯＳ１１では、（１）割り込みが禁止されたときのデータの採取処理が、割り込みの禁止開始時に上記したエミュレータ部１６による処理１で実行され、（２）割り���みの禁止が解除されたときのデータの採取処理が、割り込みの禁止解除時に上記したエミュレータ部１６による処理２で実行され、（３）エミュレータ部１６による処理２で異常検出の基準データの生成処理が行われる。【００３５】  （１）割り込みが禁止されたときのデータの採取処理では、採取したログ情報は、ＣＰＵ毎に設けられた採取領域Ａに保存され、（２）割り込みの禁止が解除されたときのデータの採取処理では、採取したログ情報はＣＰＵ毎に設けられた採取領域Ｂに保存される。【００３６】  （３）異常検出の基準データの生成処理では、（１）割り込みが禁止されたときのデータの採取処理及び（２）割り込みの禁止が解除されたときのデータの採取処理で採取したデータ（採取領域Ａ、Ｂ内に記憶されているログ情報）から割り込み禁止時間の実績値を算出する。この処理で、正常にシステムが動作しているときの割り込み禁止時間の最大値を計測する。そしてこの最大値を異常検出の基準データとする。【００３７】  次に図５にＣＰＵ間の排他制御状態を監視する場合のデータ採取処理と異常検出の基準データ生成処理の関連図を示す。  同図において、ユーザプログラム１３からＯＳ１１に対して要求が発生すると、その要求を実行するため、ＯＳ１１では割り込みの禁止、ＣＰＵの排他制御獲得命令の発行、ＣＰＵの排他制御解除命令の発行、割り込み禁止の解除、ユーザプログラム１３への復帰命令が実行される。【００３８】  このとき、ＯＳでは、（１）ＣＰＵの排他制御の獲得命令が実行されたときのデータの採取処理が、割り込みの禁止開始後のＣＰＵ排他制御獲得命令発行時にエミュレータ部１６による処理１で実行され、（２）ＣＰＵの排他制御の解除命令が実行されたときのデータの採取処理が、割り込みの禁止解除時にエミュレータ部１６による処理２で実行され、（３）エミュレータ部１６による処理２で異常検出の基準データの生成処理が行われる。【００３９】  （１）ＣＰＵの排他制御の獲得命令が実行されたときのデータの採取処理では、採取したログ情報は、ＣＰＵ毎に設けられた採取領域Ｃに保存され、（２）ＣＰＵの排他制御の解除命令が実行されたときのデータの採取処理では、採取したログ情報はＣＰＵ毎に設けられた採取領域Ｄに保存される。【００４０】  （３）異常検出の基準データの生成処理では、（１）ＣＰＵの排他制御の獲得命令が実行されたときのデータの採取処理及び（２）ＣＰＵの排他制御の解除命令が実行されたときのデータの採取処理で採取したデータ（採取領域Ｃ、Ｄ内に記憶されているログ情報）から割り込み禁止時間の実績値を算出する。この処理で、正常にシステムが動作しているときの割り込み禁止時間の最大値を計測する。そしてこの最大値を異常検出の基準データとする。【００４１】  次にデータ採取処理で採取されるデータの種類について説明する。  データ採取処理では、「異常発生を認識するための基準データ生成」と「トラブル調査の情報収集」のために、以下の情報を採取する。・ユーザプログラムを実行した時間、実行ＣＰＵ番号・実行した命令コード、命令アドレス、命令の実行結果・実行命令が参照したメモリの内容・各レジスタの値・その他（実行中プログラムを特定するための情報）【００４２���  （３）異常検出の基準データ生成処理は、「異常発生を認識するための基準データ」を生成するために、資源ごとに「資源の獲得」から「資源の解放」までの時間を算出し、その最大値を抽出する。そしてこの最大値を異常検出の基準データとする。【００４３】  ここで異常検出の基準値として最大値を用いるのは、各処理の所要時間は、システムの負荷により変化するので、最大値以外を採用した場合、正常・異常の判断を誤認する可能性が高くなるためである。【００４４】  なおＩＰＬ直後などの基準データを求めるためのサンプルデータ数が少ない時点では、基準データの信頼度が低いので、サンプルデータ数が一定量を超えるまでは、異常状態検出処理を抑止する。【００４５】  次に図３に示した異常状態検出処理について説明する。  図６及び図７は、異常状態検出処理の概要を示す図である。  図６は、割り込みの禁止状態を監視する場合を示す図である。【００４６】  同図は、ＯＳ１１のミスで、割り込み禁止状態でループしたときや、割り込み禁止解除を行わなかったときなどの異常が発生した場合の概要を示している。  ＯＳ１１のミスなどで割り込み禁止状態のままループした場合、または、割り込み禁止解除を行わなかった場合、ハードウェアからの時間経過の割り込みが発生したときに、時間割り込みプログラム１４の異常状態検出部２１は「割り込みが禁止された時点からの経過時間」と「異常検出の基準値」の比較し、異常発生を検出し、異常が検出されたら復旧処理を依頼する。またハードウェアからの時間経過割り込みが発生しなくなった場合は、従来の方式でシステムダウンさせる。【００４７】  なお、サンプルデータ数が少ないときなど「異常検出の基準値」が有効になってない時点では、チェック処理は行わない。  次にＣＰＵ間の排他制御状態を監視する場合の異常状態検出処理について説明する。【００４８】  ＣＰＵの排他制御解除忘れなどの異常が発生した場合の概要図を図７に示す。  ＯＳプログラムのミスなどでＣＰＵの排他制御解除忘れの状態が発生した場合、以降永久にＣＰＵ排他制御の獲得ができなくなる。【００４９】  ＣＰＵ排他制御の獲得ができなかったとき、エミュレータ部１６による処理１では以下のａ）方式とｂ）方式を併用して異常発生を検出する。  ａ）「ＣＰＵ排他制御が獲得された時点からの経過時間」と「異常検出の基準値」の比較  ｂ）「最初にＣＰＵの排他制御ができなかった時点からの経過時間」と「異常検出の基準値」の比較  異常検出の基準値は、以下の値を採用する。【００５０】  基準値＝最大値×安全係数・最大値は、異常検出の基準データ生成処理で抽出した値。・安全係数は、過渡的にシステム負荷が高くなったケースで、通常時の値では、正常・異常の判断を誤認する可能性があるために用いる。安全係数の適切値は、２〜４の範囲と考えられる。【００５１】  なおａ）方式のみ異常検出を行った場合、ＣＰＵ排他制御用の領域が何らかの要因で壊されてＣＰＵ排他制御の獲得ができなくなったとき、異常が検出できない。またｂ）方式のみで異常検出を行った場合では、ａ）方式に比べて検出精度が悪くなる。よってａ）方式とｂ）方式を併用する。【００５２】  上記したａ）、ｂ）の方式による異常検出で、経過時間が「異常検出の基準値」を超えた場合、エミュレータ部１６のデータ採取・異常状態検出部２２は、システムの異常と判断し、割り込み情報に異常個所と異常内容を設定して、他のＣＰＵ割り込みを発生させる。また自ＣＰＵで復旧可能な場合には、自ＣＰＵの復旧処理プログラム１５に復旧を依頼する。なお、「異常検出の基準値」が有効になってない時点では、チェック処理は行わない。【００５３】  復旧処理を依頼するＣＰＵが、特定ＣＰＵに集中してＣＰＵ負荷を増加させないために、割り込み先のＣＰＵは、以下の方式で決める。  割り込み先のＣＰＵ番号＝自ＣＰＵ番号＋１  自ＣＰＵ番号が最終番号のときは、ＣＰＵ番号＝０とし、サイクリックにＣＰＵを決定する。【００５４】  次に復旧処理について説明する。  図８は復旧処理プログラム１５によって行われる処理内容を示す図である。  復旧処理プログラム１５によって行われる処理は、異常内容の判別処理３１、システムダウン処理３２、自動復旧処理３３に分けることができる。【００５５】  以下に各処理の詳細を説明する。  異常内容の判別処理３１は、他ＣＰＵからの割り込みが発生した場合、通知される割り込み情報から自動復旧が可否をチェックし、自動復旧が不可能な場合、システムダウン処理３２に制御を渡す。そして自動復旧が可能な場合、自動復旧処理３３に制御を渡す。【００５６】  システムダウン処理３２は、通知される割り込み情報、データ採取処理で採取した情報を退避した後に、従来のシステムダウン処理を行う。  このとき退避される割り込み情報、データ採取処理で採取した情報は、原因調査の有効な情報となる。【００５７】  自動復旧処理３３では、他ＣＰＵから通知された割り込み情報を元に、関連する制御表の内容を復旧する。  復旧の仕方としては、割り込み禁止状態の監視時間オーバーを検出した場合は、例えば割り込みを発生させた他ＣＰＵの状態を確認し、ＯＳプログラム以外が動作中または何も実行していない状態であれば、割り込み禁止状態を解除してシステム運用を継続し、ＯＳプログラムが動作中の場合は、システムをダウンさせる。【００５８】  またＣＰＵ排他制御状態の監視時間オーバーを検出した場合は、例えば他ＣＰＵから通知された割り込み情報とデータ採取処理で採取した情報から復元するデータ（制御表の種別）を特定し、復旧する。【００５９】  また後述する制御表間のリンクの復旧処理等プログラムの論理でデータの復旧が必要な場合、各データに対応する復旧プログラム３４を用いて自動復旧処理を行う。  次に異常内容の判別処理３１の詳細内容を説明する。【００６０】  通知された割り込み情報からの自動復旧可否の判断方法としては、まず他ＣＰＵから通知された割り込み情報から関連する制御表を特定する。  具体的には、命令コード、命令アドレス、命令の実行結果、実行命令が参照したメモリの内容、各レジスタの値（制御表の位置アドレス）等のデータ採取処理で採取した情報などから対象とする制御表を特定する。【００６１】  そしてこの制御表を用いて、異常内容の判別を行う。  図９は、発生した異常内容の判別方法についての説明図である。  異常内容の判別処理３１では、検出した異常内容の種別と採取した情報４１から復旧対象とする制御��を決定する。【００６２】  そして復旧対象とする制御表の実際の内容４２と、比較するデータのマスクパターン４３とのＡＮＤ（論理積）を取り、結果を正しい制御表４４の内容と比較し、両者が一致するかどうかから任意の場所の異常内容のチェックを行う。【００６３】  対象とする制御表の内容から自動復旧可否のチェックは、以下の方法が考えられる。１）比較するデータのマスクパターン４３を自動復旧可のものと自動復旧不可のものの２つ持つ方法  方法１）では、自動復旧可のマスクパターン４３及び自動復旧不可のマスクパターンとデータを比較して自動復旧の可否のチェックを行う。２）異常発生の内容で判断する方法  方法２）では、異常発生箇所が特定の個所であれば、制御表の復旧が可能と判断する。【００６４】  例えば、異常発生箇所が排他制御用作業域、復旧用デ−タが存在する、などの特定の箇所のみであれば、復旧可と判断する。  あるいは異常発生箇所が定数域のみであれば、復旧可と判断する、または異常発生の箇所数で判断する、等の方法が考えられる。【００６５】  次にシステムダウン処理３２の詳細について説明する。  本実施形態におけるシステムダウン処理３２は、従来行われている処理と同様、メモリダンプ情報の採取、データベース情報の退避、システム停止情報の退避等を行う。【００６６】  次に自動復旧処理３３の詳細について説明する。  対象とする制御表の復旧方法には、以下の方法がある。  プログラムで参照する制御表の内容は、定数となる部分と変数となる部分が存在し、以下の方法で復元が可能である。・一般的な定数の値は、制御表の種別ごとの復旧用データを自動復旧処理３３が持つことで復元が可能となる。・定数値がアドレス値の場合は、復旧用プログラムを持つことで他制御表内のデータを用いて復元できるケースが多い。・変数の値は、自動復旧処理３３が持つ復旧用プログラムを用い、他制御表との整合性を考慮して復元する。また変数の値は、制御表の内容を初期状態に戻すことにより復旧可能な場合もあるので、状態に応じた適宜な復旧処理を行う。【００６７】  図１０は発生した異常内容の復旧方法を示す図である。  自動復旧処理３３では、異常内容の判別処理３１で検出した異常発生箇所から、復旧パターンを決定する。【００６８】  制御表内の定数となる部分は、実際の制御表の内容５５と復旧不要部分データのマスクパターン５２のＡＮＤを取った結果に対して正しい制御表の内容５３とＯＲ（論理和）を取ることにより復旧データが生成できる。【００６９】  制御表内のアドレス情報の定数となる部分と、変数となる部分は、制御表ごとの復旧処理プログラム５４と復旧用データを持ち、これらを用いることで復旧が可能である。  例えば主要な制御表アドレスなどの数が限定できる情報は、通常用と復旧用の２つの情報を持つことにより復旧が可能となる。なお、復旧用の情報は、プログラムミスなどによって破壊されにくいメモリ位置に配置する。【００７０】  次に制御表間にリンクが張られた制御表の内容の復旧例を示す。なお本処理は、復旧用プログラムによって行われる。  ＣＰＵによる排他制御解除忘れによる異常が発生した場合や、排他制御により制御している制御表の内容に異常がある場合、制御表を復��した後に、ＣＰＵ排他制御の解除を行う。【００７１】  制御表の内容に異常がない場合、ＣＰＵ排他制御の解除を行う。  制御表の復旧方法の例を図１１に示す。  同図は、プログラムが実行中の場合において、異なる制御表の間のリンク関係が壊された場合を示している。【００７２】  ×印が示されているリンク６１部分を異常と判断した場合は、実行中のタスクで用いられている制御表を示すタスクポインタ６３の値からリンク６１を復旧できる。また×印が示されているリンク６２部分が異常と判断した場合は、実行中のプログラムのプログラムポインタ６４の値からリンク６２を復旧することができる。【００７３】  またプログラムが実行待ちの場合において、同じ制御表の間のリンク関係が壊された場合についての制御表の復旧方法の例を図１２に示す。  同図において、×印で示したリンク６５部分を異常と判断した場合は、リンクを（１）−＞（２）−＞（３）と辿ってゆくことにより、リンク６５を復旧することができる。【００７４】  次に同じ制御表の間に、複数のリンク関係が存在する場合の例を図１３に示す。なお本例は、排他制御におけるデットロック監視機能を備え、また排他獲得待ちキューで待つ要求は、待ちキューアドレス７１を持つことを前提とする。【００７５】  同図において、×印のリンク７２部分が異常と判断した場合は、デッドロック監視キュー７３からリンクされている要求を（１）−＞（２）−＞（３）−＞（４）−＞（５）−＞（６）（図中の太い点線矢印）とサーチし、排他獲得待ちキューＡで待っていた要求を抽出することにより排他獲得待ちキューＡのリンク情報７２を復旧することができる。【００７６】  次に割り込み禁止解除忘れにより異常が発生した場合の制御表の復帰について説明する。  割り込み禁止解除忘れにより異常が発生した場合、若しくは直前に割り込み禁止状態としたプログラムが使用する制御表の内容に異常がある場合、制御表内の情報を復旧した後に割り込み禁止の解除を行う。制御表の内容に異常がない場合、そのまま割り込み禁止の解除を行う。【００７７】  制御表の復旧方法は、上記したＣＰＵの排他制御解除忘れの場合と同様の方法で復旧する。  なお割り込み禁止の設定と解除は、ＣＰＵが持つ制御レジスタの内容を更新することで実現できる。【００７８】  図１４は、エミュレータ部１６による処理１のデータ採取・異常状態検出部２２による処理内容を示すフローチャートである。同図の処理は、データ採取処理を中心に記載されている。【００７９】  同図において処理が開始されると、まずステップＳ１として現在使用中の採取データのポインタから、データ採取処理で採取する採取データの格納位置として次の採取データ格納領域を検出する。そしてステップＳ２で採取データをその格納位置に格納する。【００８０】  そしてステップＳ３として格納域に現在使用中かどうかを示すフラグをＯＮに設定して使用中であることを表示し、処理を終了する。  図１５は、エミュレータ部１６による処理２のデータ採取・異常状態検出部２２による処理内容を示すフローチャートである。同図の処理も、データ採取処理を中心に記載されている。【００８１】  同図において処理が開始されると、まずステップＳ１１として、各��納領域の現在使用中かどうかを示すフラグを調べて現在使用中（ＯＮ）の格納領域が存在することを確認し、図１４のステップＳ１で求めた格納領域内に採取データを格納する。【００８２】  そしてステップＳ１２として格納域に使用中を表示しているフラグをリセット（ＯＦＦ）し、処理を終了する。  図１６Ａ及び図１６Ｂは、図１４、図１５に示した処理１及び処理２で採取データを格納する格納域の構成例を示す図である。【００８３】  図１６Ａに示す採取データの格納域は、複数用意された格納域がサイクリックに使用される構成を有している。そして現在使用する位置の採取データの格納域は、データ採取・異常状態検出部２２が持つ現在使用中の採取データの格納域のポインタで指定されており、格納が終わるとポインタは次の格納域を指定するよう構成されている。【００８４】  図１６Ｂに各採取データ格納域の構成を示す。  各格納域は、次の格納域へのポインタとなるアドレスと処理１用の格納域（領域Ａ）、処理２用の格納域（領域Ｂ）及び現在使用中かどうかを示すフラグ（不図示）を備えている。【００８５】  データ採取処理により採取され、この格納域に格納されるデータには、対象プログラムを実行した時間、実行したＣＰＵのＣＰＵ番号、実行命令コード、実行命令アドレス、実行命令の実行結果、実行命令が参照したメモリの内容、各レジスタの値及び実行中プログラムを特定するための情報(実行中タスク、実行中プロセス、起動要因(割り込み種別など)が記憶される。【００８６】  図１７は、エミュレータ部１６による処理２でデータ採取・異常状態検出部２２が行なう異常検出基準データ生成処理の内容を示すフローチャートである。  同図の処理が開始されると、まずステップＳ２１として対象プログラムによる処理に要した時間を算出する。具体的には、排他制御を獲得してから排他制御を解除するまでの時間、若しくは割り込みを禁止してから禁止を解除するまでの時間を算出する。【００８７】  次に本処理では、ステップＳ２２として監視機能が有効であるかどうかの判断を行い、有効であれば（ステップＳ２２、Ｙ）、ステップＳ２３としてステップＳ２１で算出した時間が最大値を超えたかどうかを判断し、最大値を超えていれば（ステップＳ２３、Ｙ）ステップＳ２４として最大値の値をステップＳ２１で算出した値に変更し、ステップＳ２５として変更した値を元に基準値を算出した後、処理を終了する。またステップＳ２３においてステップＳ２１で算出した時間が最大値を超えていなければ（ステップＳ２３、Ｎ）、ステップＳ２４、Ｓ２５の処理をスキップして本処理を終了する。【００８８】  ステップＳ２２において、監視機能が無効と判断したとき（ステップＳ２２、Ｎ）、ステップＳ２６としてステップＳ２１で算出した時間が最大値を超えたかどうか判断し、最大値を超えていたならば（ステップＳ２６、Ｙ）、ステップＳ２７としてその値に最大値の値を変更し、最大値を超えていなければ（ステップＳ２６、Ｎ）、ステップＳ２７の最大値の変更処理をスキップする。【００８９】  次にステップＳ２８として監視機能を有効にするかどうかを判断し、有効にするのならば（ステップＳ２８、Ｙ）、ステップＳ２９として基準データを算出してか���ステップＳ３０として監視機能を有効とした後、本処理を終了する。またステップＳ２８において監視機能を有効にしないのならば（ステップＳ２８、Ｎ）、そのまま本処理を終了する。【００９０】  図１８は、図１７に示した異常検出基準データ生成処理で用いられる制御表の例を示す図である。  同図の制御表には、状態表示域、監視機能を開始する時点の検出用作業域、採取データの最大値域、及び異常の判断の基準データ域を記憶している。【００９１】  状態表示域は、監視機能を有効とするか否かの情報を記憶するものであり、図１７のステップＳ２２では、この状態表示域の設定状態を調べることにより監視機能が有効かどうかを判断する。またステップＳ３０では、この状態表示域の設定を書き換えることにより監視機能を有効とする。監視機能を開始する時点の検出用作業域は、監視機能を開始する時点を判断するために用いる作業域である。この判断の仕方としては、例えば採取したデータ数をカウントし、一定数を超えたとき、監視機能を開始したり、あるいはＩＰＬ完了時からの経過時間を監視し、一定時間経過したとき、監視機能を開始したりする。採取データの最大値域は、採取データの最大値を記憶しておく領域で、ステップＳ２３、Ｓ２６でこれまでの最大値を超えたと判断されたとき、ステップＳ２４、Ｓ２７で更新される。異常の判断の基準データ域は、ステップＳ２５、Ｓ２９で算出した異常の判断の基準データを記憶する格納位置を示すポインタ値を記憶する領域である。【００９２】  図１９は、エミュレータ部１６の処理１でデータ採取・異常状態検出部２２が行う異常状態検出処理を示すフローチャートである。同図は排他処理に対する異常検出を行った場合を例として示している。【００９３】  同図において、排他獲得に成功した場合（ステップＳ４１、Ｎ）、本処理は終了する。  ステップＳ４１において排他獲得に失敗すると（ステップＳ４１、Ｙ）、まずステップＳ４２として直近に行われた排他獲得の時点からの経過時間を算出する。【００９４】  そしてこの経過時間が基準値を超えていたならば（ステップＳ４３、Ｙ）、ステップＳ４４として、通知情報を作成し他ＣＰＵに異常状態を検出したことを通知した後本処理を終了する。またステップＳ４３で経過時間が基準値を超えていなければ（ステップＳ４３、Ｎ）、経過時間が基準値を超えるまで待つため、ステップＳ４４をスキップして本処理を終了する。【００９５】  図２０は、図１９のステップＳ４２で行われる直近に行われた排他獲得の時点からの経過時間を算出処理において、直近の排他獲得を行ったＣＰＵを示す図である。  本実施形態のシステムは、マルチＣＰＵシステムなので、エミュレータ部１６による処理１で行われるデータ採取・異常状態検出部２２で実行される異常状態検出処理では、直近で排他獲得を行ったＣＰＵの候補は、複数存在する。【００９６】  例えば図２０に示すようなＣＰＵ０、ＣＰＵ１及びＣＰＵ２の３つのＣＰＵを備えるシステムにおいて、ＣＰＵ０が異常状態を検出しても、直近に排他獲得が行われた時点のデータの格納位置はＣＰＵ０による採取データの格納領域８１−０、ＣＰＵ１による採取データの格納領域８１−１、及びＣＰＵ２による採取データの格��領域８１−２の３つが考えられる。【００９７】  処理１で行われる異常状態検出処理では、これらの全てのデータを処理の対象として、ステップＳ４２の経過時間の算出処理を行う。  図２１は、エミュレータ部１６で実行される処理２でデータ採取・異常状態検出部２２が行う異常状態検出処理を示すフローチャートである。同図は排他処理に対する異常検出を行った場合を例として示している。【００９８】  同図において、まずステップＳ５１として本処理を行うＣＰＵによって排他獲得が行われているかどうかを判断し、排他獲得が行われていなければ（ステップＳ５１、Ｎ）、ステップＳ５５として保守用情報をメモリに退避した後本処理を終了する。【００９９】  ステップＳ５１において、排他獲得が行われていたならば（ステップＳ５１、Ｙ）、ステップＳ５２として排他獲得時点からの経過時間を算出する。  そしてその経過時間が基準値を超えていたならば（ステップＳ５３、Ｙ）、ステップＳ５４として、通知情報を作成し他ＣＰＵに異常状態を検出したことを通知、または保守用情報を退避した後本処理を終了する。またステップＳ５３において経過時間が基準値を超えていなければ（ステップＳ５３、Ｎ）、経過時間が基準値を超えるまで待つため、ステップＳ５４をスキップして本処理を終了する。【０１００】  なおステップＳ５４、Ｓ５５で退避する保守用情報は、例えば発生した異常内容を表わす情報、実行した時間、実行ＣＰＵ番号、実行命令コード、実行命令アドレス、実行命令の実行結果、実行命令が参照したメモリの内容、各レジスタの値、実行中プログラムを特定するための情報(実行中タスク、実行中プロセス、起動要因(割り込み種別など))などである。【０１０１】  図２２は、図２１のステップＳ５２で行われる排他獲得の時点からの経過時間を算出処理において、排他獲得を行ったＣＰＵを示す図である。  データ採取・異常状態検出部２２で実行される処理２で行われる異常状態検出処理では、直近で排他獲得を行ったＣＰＵは１つであるので、直近に行われた排他獲得のデータの格納数も１つとなる。【０１０２】  例えば図２２に示すようなＣＰＵ０、ＣＰＵ１及びＣＰＵ２の３つのＣＰＵを備えるシステムにおいて、ＣＰＵ０が異常状態を検出すると、直近に排他獲得が行われた時点のデータの格納位置はＣＰＵ０による採取データの格納領域８２となる。【０１０３】  図２３は、時間割り込みプログラム１４による処理を示すフローチャートである。なお同図のフローチャートは排他処理を例にして示している。  時間割り込みプログラム１４による処理では、特定のＣＰＵの負荷が高くなることを防ぐために、ＣＰＵ毎に自ＣＰＵの制御範囲のチェックを行っている。【０１０４】  同図において処理が開始されると、まずステップＳ６１として自ＣＰＵが排他獲得中の事象があるかどうかを判断し、排他獲得中の事象がなければ（ステップＳ６１、Ｎ）、本処理を終了する。【０１０５】  ステップＳ６１において、排他獲得中の事象があれば（ステップＳ６１、Ｙ）、ステップＳ６２として直近の排他獲得時点からの経過時間を算出する。  そしてステップＳ６２で算出した経過時間が基準値を超えていたならば（ステップＳ６３、Ｙ）、ステップＳ６４として通知情報を作成し他ＣＰＵに異常状態を検出したことを通知した後本処理を終了する。【０１０６】  またステップＳ６３において、経過時間が基準値を超えていなければ（ステップＳ６３、Ｎ）、ステップＳ６５として排他獲得中の全事象のチェックを完了したかどうかを調べ、全事象のチェックが完了していなければ（ステップＳ６５、Ｎ）、ステップＳ６２に処理を戻してその事象に対してステップＳ６２、Ｓ６３の処理を行い、事象のチェックが完了していれば（ステップＳ６５、Ｙ）、本処理を終了する。【０１０７】  図２４は、図２３の時間割り込みプログラム１４による処理を示すフローチャートでの事象が排他獲得を行っている採取データの格納域を説明する図である。  データ採取処理では、採取データの格納域を図２４に示すようにサイクリックに構成し、現在使用中の格納域をポインタ８４で指定している。【０１０８】  図２３のフローチャートで示す時間割り込みプログラム１４を実行しているＣＰＵが、複数の排他制御を行っている場合、対象処理の事象が複数存在することになり、採取データの格納数も複数になる。【０１０９】  図２４では、格納域８３−１、８３−２の２つの格納域が処理対象の事象による格納域になっている。  図２５は、復旧処理プログラム１５による復旧処理の処理フローを示すフローチャートである。【０１１０】  同図の処理が開始されると、まずステップＳ７１として処理対象の制御表の排他獲得を行う。このとき処理対象の制御表が既に排他獲得状態にあるときは、排他獲得処理を行わない。【０１１１】  次にステップＳ７２として、処理対象の制御表が自動復旧不可かどうかチェックする。このチェックの方法についての詳細は後述する。  ステップＳ７２のチェックの結果、処理対象の制御表が自動復旧不可の場合（ステップＳ７３、Ｙ）、ステップＳ８０として処理対象の制御表の排他獲得状態を解除後、システムダウンして処理を終了する。【０１１２】  ステップＳ７２のチェックの結果、処理対象の制御表が自動復旧可能な場合（ステップＳ７３、Ｎ）、次にステップＳ７４として処理対象の制御表の復旧の要否のチェックを行う。このチェックの方法についての詳細は後述する。【０１１３】  ステップＳ７４のチェックの結果、処理対象の制御表の復旧が必要ならば（ステップＳ７５、Ｙ）、処理をステップＳ７６に移し、復旧が必要でないならば（ステップＳ７５、Ｎ）、処理をステップＳ７９に移す。【０１１４】  ステップＳ７６では、制御表の復旧処理を行う。この制御表の復旧処理の詳細は後述する。  ステップＳ７６の御情報の復旧処理が終了後、復旧用プログラムが存在するかどうかを調べ、存在するならば（ステップＳ７７、Ｙ）、ステップＳ７８として対応する復旧プログラムを呼び出して実行し、復旧プログラムが存在しないならば（ステップＳ７７、Ｎ）、処理をステップＳ７９に移す。【０１１５】  ステップＳ７９では処理対象の制御表の排他獲得を解除し、本処理を終了する。  なお、図１９、図２１及び図２３のフローチャートは、排他検出の場合を例としてあげているが、割り込みの解放異常の検出の場合は、経過時間の算出を割り込み禁止を行った時点からカウントする以外、図１９、図２１及び図２３のフローチャートの基本的な動作処理構成は同じである。【０１１６】  次に図２５のステップＳ７２で行われる処理対象の制御表の自動復旧不可のチェックについて説明する。  図２６は、処理対象の制御表の自動復旧不可のチェックの説明図である。【０１１７】  自動復旧不可のチェックでは、実制御表の内容９１と比較するデータのマスクパターン９２のＡＮＤの結果と、正しい制御表の内容９３を比較する。そして比較の結果両者が一致する場合自動復旧可能と判断し、逆に両者が等しくない場合、自動復旧不可と判断する。【０１１８】  なお、実制御表の内容９１とマスクパターン９２のＡＮＤの結果が全て０の場合、これを正しい制御表の内容９３と比較するのを中止することによって、正しい制御表の内容９３を後述する復旧の要否に用いる正しい制御表の内容１０３と共用することができ、これらを記憶するのに必要なメモリ量を軽減することができる。【０１１９】  同図においては、実制御表の内容９１の９４部分とマスクパターン９２の９５部分のＡＮＤの結果は、正しい制御表の内容９３の９６部分と一致し、他の部分は全て“０”となる。全て“０”となっている部分は正しい制御表の内容９３との比較をしないので、図２６の例では自動復旧可能となる。【０１２０】  次に図２５のステップＳ７４で行われる制御表の復旧の要否のチェックについて説明する。  図２７は、処理対象の制御表の復旧の要否のチェックの説明図である。【０１２１】  復旧の要否のチェックでは、定数等制御表内の自動復旧が可能な値が破壊されていないかをチェックする。  チェックの仕方としては、実制御表の内容１０１と自動復旧可能な領域を抽出するマスクパターン１０２のＡＮＤを行い、ＡＮＤの結果と正しい制御表の内容１０３とを比較することにより、任意の領域の値をチェックすることができる。なお上述したようにこの正しい制御表の内容１０３は、図２６に示した制御表の自動復旧不可のチェックに用いられる正しい制御表の内容９３と同じ内容の情報として構成することができる。【０１２２】  図２７では、実制御表の内容１０１とマスクパターン１０２のＡＮＤの結果が正しい制御表の内容が一致するので自動復旧は不要である。  次に図２５のステップＳ７６で行われる制御表の復旧処理について説明する。【０１２３】  図２８は、処理対象の制御表の復旧処理の説明図である。  制御表の復旧処理では、実制御表の内容１１１と復旧不要部分のマスクパターン１１２でＡＮＤを取り、これと正しい制御表の内容１１３とでＯＲを取ることにより、復旧データが生成される。【０１２４】  復旧不要部分のマスクパターン１１２は、復旧を行うビットには“０”がまた復旧不要なビットには“１”が設定されており、復旧不要部分のマスクパターン１１２とＡＮＤを取ると復旧を行う部分が“０”となる。よって復旧不要部分のマスクパターン１１２とのＡＮＤの結果と、正しい制御表の内容１１３とでＯＲを取ることにより、復旧データが生成される。【０１２５】  なお実制御表の内容１１１を復元する場合、排他制御用のデータは、排他制御用のデータ以外の実制御表の内容１１１の復元が完了した後に復元する。図２８の場合、１１４部分が排他制御用のデータに該当し、この部分を最後に“８０００”から“００００”に書き換える。【０１２６】  なお正しい制御表の内容１１３は、復旧処理プログラム１５が固定値として保持する、対象となる制御表生成時に生成する、あるいは復旧処理プログラム１５が他の制御表を参照して生成するプログラムを保持する等の方法によって生成することが考えられる。【０１２７】  あるいは制御表の復旧処理として対象制御表を再作成する方法を用いても良い。  図２９Ａは、復旧処理プログラム１５が持つ識別ポインタを示す図である。  識別ポインタ１２１−１〜１２１−ｎは、検出される異常の種類毎に設けられ、復旧処理プログラム１５は、他ＣＰＵから復旧依頼と共に通知される異常の種類に対応した識別ポインタ１２１−１〜１２１−ｎを用いて、上記した復旧処理に必要な正しい制御表の内容１２２、復旧用プログラム１２３、及びマスクパターン１２４等のデータを得る。【０１２８】  図２９Ｂに識別ポインタ１２１の構成例を示す。  同図の識別ポインタ１２１には、検出した異常の識別コード、処理対象リソースについての情報、処理対象のリソース（制御表）へのアドレス、自動復旧不可の検出に用いるマスクパターンデータへのアドレス、復旧の要否の検出に用いるマスクパターンデータへのアドレス、復旧不要部分の抽出に用いるマスクパターンデータへのアドレス、復旧用データ（正しい制御表の内容）へのアドレス、及び復旧用プログラムのエントリアドレスを情報として保持している。【０１２９】  復旧処理プログラムは、他のＣＰＵから復旧処理の依頼があると、その異常の種類に基づいて識別ポインタ１２１を選択し、この識別ポインタを用いて復旧処理に用いる各種マスクパターンやプログラム等を得る。【０１３０】  図３０は、本実施形態のマルチＣＰＵシステムによる情報処理装置のシステム構成例を示す図である。  同図の情報処理装置は、複数のＣＰＵ１３１−１〜１３１−ｏ、ＲＡＭ等の主記憶装置１３２、ハードディスク等の補助記憶装置１３３、ディスプレイ、キーボード、ポインティングデバイス等の入出力装置（Ｉ／Ｏ）１３４、モデム等のネットワーク接続装置１３５、及びディスク、磁気テープなどの可搬記憶媒体から記憶内容を読み出す媒体読み取り装置１３６を有し、これらが互いにバス１３８により接続される構成を備えている。そして各構成要素は、バス１３８を介して互いにデータのやり取りを行う。【０１３１】  複数のＣＰＵ１３１−１〜１３１−ｏは、主記憶装置１３２及び補助記憶装置１３３を共有メモリとしている。そして複数のＣＰＵ１３１−１〜１３１−ｏは、主記憶装置１３２及び補助記憶装置１３３上のプログラム（ＯＳ）を実行することにより、図１４、図１５、図１７、図１９、図２１及び図２３に示したフローチャートの処理を実現する。【０１３２】  図３０の情報処理装置では、媒体読み取り装置１３６により磁気テープ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ等の記憶媒体１３７に記憶されているプログラム、データを読み出し、これを主記憶装置１３２または補助記憶装置１３３にロードする。そしてこのプログラムやデータを複数のＣＰＵ１３１−１〜１３１−ｏが実行したり用いたりすることにより、上述したフローチャート処理をソフトウエア的に実現する。【��１３３】  また、図３０の情報処理装置では、フレキシブルディスク等の記憶媒体７７を用いてアプリケーションソフトの交換が行われる場合がある。よって、本発明は、マルチＣＰＵシステムや異常検出及び自動復旧方法に限らず、コンピュータにより使用されたときに、上述した本発明の実施形態の機能をコンピュータに行なわせるためのコンピュータ読み出し可能な記憶媒体７７として構成することもできる。【０１３４】  この場合、「記憶媒体」には、例えば図３１に示されるように、ＣＤ−ＲＯＭ、フレキシブルディスク（あるいはＭＯ、ＤＶＤ、リムーバブルハードディスク等であってもよい）等の媒体駆動装置１４７に脱着可能な可搬記憶媒体１４６や、ネットワーク回線１４３経由で送信される外部の装置（サーバ等）内の記憶部（データベース等）１４２、あるいは情報処理装置１４１の本体１４４内のメモリ（ＲＡＭ又はハードディスク等）１４５等が含まれる。可搬記憶媒体１４６や記憶部（データベース等）１４２に記憶されているプログラムは、本体１４４内のメモリ（ＲＡＭ又はハードディスク等）１４５にロードされて、実行される。【０１３５】  また、既に説明したＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記憶媒体には、上記に例として挙げたものの他にも、例えば、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標）やＡＯＤ（Ａｄｖａｎｃｅｄ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）などの青色レーザーを用いた次世代光ディスク記憶媒体、赤色レーザーを用いるＨＤ−ＤＶＤ９、青紫色レーザーを用いるＢｌｕｅ  Ｌａｓｅｒ  ＤＶＤなど、今後開発される種々の大容量記憶媒体を用いて本発明を実施することも可能である。【０１３６】  以上説明したように本発明は、利用者の手を煩わせることなく、かつ、既存のＯＳプログラム論理を変更することなく、精度の高いプログラム異常の検出機構ができる。  プログラム異常を検出した場合、原因調査に用いることができる精度の高い有効な情報が採取できるので、原因調査が容易となり、調査期間の短縮と原因究明率向上が図れる。【０１３７】  また、復旧用プログラムを備えることにより、異常発生箇所と異常内容に応じた最適の復旧処理が追加可能となるので、異常パターンデータの集積とともに、自動的に復旧できるケースが増加し、システムの耐性を向上させることができる。
【図１】
2008111124.tif 000003
【図２】
2008111124.tif 000004
【図３】
2008111124.tif 000005
【図４】
2008111124.tif 000006
【図５】
2008111124.tif 000007
【図６】
2008111124.tif 000008
【図７】
2008111124.tif 000009
【図８】
2008111124.tif 000010
【図９】
2008111124.tif 000011
【図１０】
2008111124.tif 000012
【図１１】
2008111124.tif 000013
【図１２】
2008111124.tif 000014
【図１３】
2008111124.tif 000015
【図１４】
2008111124.tif 000016
【図１５】
2008111124.tif 000017
【図１６Ａ】
2008111124.tif 000018
【図１６Ｂ】
2008111124.tif 000019
【図１７】
2008111124.tif 000020
【図１８】
2008111124.tif 000021
【図１９】
2008111124.tif 000022
【図２０】
2008111124.tif 000023
【図２１】
2008111124.tif 000024
【図２２】
2008111124.tif 000025
【図２３】
2008111124.tif 000026
【図２４】
2008111124.tif 000027
【図２５】
2008111124.tif 000028
【図２６】
2008111124.tif 000029
【図２７】
2008111124.tif 000030
【図２８】
2008111124.tif 000031
【図２９Ａ】
2008111124.tif 000032
【図２９Ｂ】
2008111124.tif 000033
【図３０】
2008111124.tif 000034
【図３１】
2008111124.tif 000035
【手続補正書】
【提出日】平成21年6月4日(2009.6.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のＣＰＵを備えるマルチＣＰＵシステムにおいて、
稼動しているプログラムの異常を検出する異常状態検出部と、
前記異常状態検出部により異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する復旧部と、
を備えることを特徴とするマルチＣＰＵシステム。
【請求項２】
複数のＣＰＵを備えるマルチＣＰＵシステムにおける異常検出及び自動復旧方法であって、
稼動しているプログラムの異常を検出し、
前記異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する
ことを特徴とする異常検出及び自動復旧方法。
【請求項３】
複数のＣＰＵを備えるマルチＣＰＵシステムにおいて実行されるプログラムであって
稼動しているプログラムの異常を検出する機能と、
前記異常が検出されたとき、当該検出された異常の内容に基づいて異常となっているデータの復旧可能かどうかを判断し、復旧可能なとき前記データを復旧する機能と、
を前記マルチＣＰＵシステムに実現させるプログラム。
【請求項４】
事前にデータの復旧に用いるデータを備え、当該事前にデータの復旧に用いるデータを用いて前記データを復旧可能なとき、前記データを復旧することを特徴とする請求項３に記載のプログラム。
【請求項５】
前記異常が検出されたとき、前記稼動しているプログラムが稼動しているＣＰＵ以外のＣＰＵに復旧処理を依頼することを特徴とする請求項３または４に記載のプログラム。
【国際調査報告】
2008111124.tif 000036
2008111124.tif 000037
2008111124.tif 000038
2008111124.tif 000039