(57)【要約】【課題】  障害発生の外部通知並びにメモリダンプの確実性を高めたコンピュータシステムを提供することを目的とする。【解決手段】  障害発生時に、実行される障害時メインプログラムと、障害時メインプログラムの実行中に障害が発生した場合に、実行される障害時サブプログラムとを備え、障害時メインプログラムは、情報伝達媒体を介して接続される外部装置に対して、障害発生を通知する障害通知機能と、揮発性メモリ２に格納されている内容を不揮発性メモリ３へ複写する第１のメモリダンプ機能とを備え、障害時サブプログラムは、揮発性メモリ２に格納されている内容及び前記障害時メインプログラムを不揮発性メモリ３へ複写する第２のメモリダンプ機能を備えている。【選択図】      図１
2006040001.tif 000002
【特許請求の範囲】
【請求項１】
障害発生時に、実行される障害時メインプログラムと、
前記障害時メインプログラムの実行中に障害が発生した場合に、実行される障害時サブプログラムとを備え、
前記障害時メインプログラムは、情報伝達媒体を介して接続される外部装置に対して、障害発生を通知する障害通知機能及び揮発性メモリに格納されている内容を不揮発性メモリへ複写する第１のメモリダンプ機能を備え、
前記障害時サブプログラムは、前記揮発性メモリに格納されている内容及び前記障害時メインプログラムを前記不揮発性メモリへ複写する第２のメモリダンプ機能を備えるコンピュータシステム。
【請求項２】
前記障害時メインプログラム及び前記障害時サブプログラムは、障害が発生する前から揮発性メモリの所定のメモリ領域に格納されている請求項１に記載のコンピュータシステム。
【請求項３】
前記通常動作時において、前記障害時メインプログラム及び前記障害時サブプログラムが格納されているメモリ領域は、内容の書き換えから保護されている請求項２に記載のコンピュータシステム。
【請求項４】
情報伝達媒体を介して接続される外部装置に対して、障害発生を通知する障害通知機能及び揮発性メモリに格納されている内容を不揮発性メモリへ複写する第１のメモリダンプ機能を備える障害時メインプログラムと、前記揮発性メモリに格納されている内容及び前記障害時メインプログラムを前記不揮発性メモリへ複写する第２のメモリダンプ機能を備える障害時サブプログラムとを備えるコンピュータシステムにおいて、
障害発生時に、前記障害時メインプログラムを実行し、前記障害時メインプログラムの実行中に障害が発生した場合には、前記障害時サブプログラムを実行するメモリダンプ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害通知機能及びメモリダンプ機能を備えるコンピュータシステムに係り、特に、障害時に実行する障害時プログラムを複数備えることにより、メモリダンプの確実性を高めたコンピュータシステムに関するものである。
【背景技術】
【０００２】
従来、コンピュータシステムにおいて、障害が発生した場合には、主記憶装置の内容を外部記憶装置に退避させるメモリダンプを実施し、障害の原因解析に役立てる手法が取られている。
このようなメモリダンプ機能を備えたコンピュータシステムとして、例えば、特開平９−８１４６７号公報（特許文献１）に示されるものがある。
上記特許文献１には、コンピュータシステムに異常が発生した場合には、メモリの内容を複写し、そのまま格納するメモリダンプ装置と、メモリダンプ装置によりメモリダンプされた情報から障害解析を行う障害解析装置と、障害解析の結果などを通信回線を介してシステム保守センタへ送信する通信部とを備えたコンピュータシステムが開示されている。
【特許文献１】特開平９−８１４６７号公報（段落［０００９］〜［００１９］、及び図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１の発明では、メモリダンプを行っている最中に、障害が再度発生してしまうと、メモリダンプを完全に実行することができなくなるため、障害解析を実施することができない。
更に、メモリダンプ情報に基づいて障害解析を行った後に、保守センタなどの外部機器に対して障害発生通知がなされるため、通知が迅速になされないという不都合も生ずる。
また、このようなタイムラグの問題を解消するために、障害発生通知処理とメモリダンプ処理とを並行処理することも考えられる。
しかしながら、障害発生箇所が通信に関連する箇所であった場合には、障害発生通知処理の実行中に、エラーが発生してしまい、結局、メモリダンプ処理を完全に実行することができないこととなる。
【０００４】
本発明は、上記問題を解決するためになされたもので、障害発生の外部通知並びにメモリダンプの確実性を高めたコンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は以下の手段を採用する。
本発明は、障害発生時に、実行される障害時メインプログラムと、前記障害時メインプログラムの実行中に障害が発生した場合に、実行される障害時サブプログラムとを備え、前記障害時メインプログラムは、情報伝達媒体を介して接続される外部装置に対して、障害発生を通知する障害通知機能及び揮発性メモリに格納されている内容を不揮発性メモリへ複写する第１のメモリダンプ機能を備え、前記障害時サブプログラムは、前記揮発性メモリに格納されている内容及び前記障害時メインプログラムを前記不揮発性メモリへ複写する第２のメモリダンプ機能を備えるコンピュータシステムを提供する。
【０００６】
本発明によれば、障害発生時には、障害時メインプログラムが実行されるので、情報伝達媒体を介して接続される外部の装置へ障害発生を通知させることが可能となるとともに、揮発性メモリに格納されている情報を不揮発性メモリへ退避させることが可能となる。
更に、上記障害時メインプログラムの実行時において、障害が発生した場合においても、障害時サブプログラムが実行されるので、再度の障害発生などに対しても、揮発性メモリに格納されている情報及び上記障害時メインプログラムを不揮発性メモリへ退避させることが可能となる。
障害発生時とは、例えば、メモリの不正アクセスによりＣＰＵ例外が発生した場合や、ＷＤＴ（Watch Dog Timer）タイムアウトによりプログラムの暴走が検知され、ＮＭＩ（Non Maskable Interrupt）が発生した場合などをいう。
メモリダンプとは、主記憶装置（ＲＡＭ等の揮発性メモリ）の内容を、不揮発性メモリである二次記憶装置に保存する処理である。一般のメモリダンプでは、コンピュータシステムが障害によって停止する際に、主記憶装置内の全てのデータが、ハードディスク装置（ＨＤＤ）などの二次記憶装置に出力される。このようにして、保存されたデータ（メモリダンプデータ）は、主に、障害内容の解析に役立てられる。
情報伝達媒体とは、有線、無線を問わず、情報を外部装置へ伝達する媒体をいう。
【０００７】
本発明のコンピュータシステムにおいて、前記障害時メインプログラム及び前記障害時サブプログラムは、障害が発生する前から揮発性メモリの所定のメモリ領域に格納されていることが好ましい。
更に、コンピュータシステムの通常動作時において、前記障害時メインプログラム及び前記障害時サブプログラムが格納されているメモリ領域は、内容の書き換えから保護されていることが好ましい。
【０００８】
このように、予め障害時メインプログラム及び障害時サブプログラムを揮発性メモリ内の所定のメモリ領域に格納しておくことにより、障害発生時に不揮発性メモリからこれらのプログラムを読み出して実行する処理手順を省略することが可能となるので、障害発生時における対応を迅速に行うことができる。
また、コンピュータシステムの通常動作時において、前記障害時メインプログラム及び前記障害時サブプログラムが格納されているメモリ領域は、内容の書き換えから保護されているので、一度揮発性メモリに書き込まれた情報は上書き等されることなく、揮発性メモリに保持されることが可能となる。
例えば、ページング等のメモリ保護機能により、内容の書き換えから保護することが可能となる。
本発明のコンピュータシステムは、例えば、火力プラント制御装置等の２４時間起動され、重大な情報を取り扱うものとして採用されるのに適している。
【０００９】
本発明は、情報伝達媒体を介して接続される外部装置に対して、障害発生を通知する障害通知機能及び揮発性メモリに格納されている内容を不揮発性メモリへ複写する第１のメモリダンプ機能を備える障害時メインプログラムと、前記揮発性メモリに格納されている内容及び前記障害時メインプログラムを前記不揮発性メモリへ複写する第２のメモリダンプ機能を備える障害時サブプログラムとを備えるコンピュータシステムにおいて、障害発生時に、前記障害時メインプログラムを実行し、前記障害時メインプログラムの実行中に障害が発生した場合には、前記障害時サブプログラムを実行するメモリダンプ方法を提供する。
【００１０】
このメモリダンプ方法によれば、障害発生時には、障害時メインプログラムを実行することで、情報伝達媒体を介して接続される外部の装置へ障害発生を通知させることが可能となるとともに、揮発性メモリに格納されている情報を不揮発性メモリへ退避させることが可能となる。
更に、上記障害時メインプログラムの実行時において、障害が発生した場合には、障害時サブプログラムを実行するので、再度の障害発生などに対しても、揮発性メモリに格納されている情報及び上記障害時メインプログラムを不揮発性メモリへ退避させることが可能となる。
【発明の効果】
【００１１】
本発明のコンピュータシステムによれば、障害時メインプログラムだけでなく、障害時サブプログラムを備えているので、再度の障害発生に対しても揮発性メモリ内の情報を不揮発性メモリへ退避させることが可能となり、より確実にメモリダンプを実行することができる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明にかかるコンピュータシステムの一実施形態について、図面を参照して説明する。
図１は、本実施形態に係るコンピュータシステムの概略構成を示したブロック図である。
図１に示すように、本実施形態に係るコンピュータシステムは、当該システムの制御中枢となるＣＰＵ１、図示しないＲＯＭ（Read
Only Memory）などに格納されている各種プログラムが展開され、作業領域などとして使用される揮発性メモリ２、障害発生時において揮発性メモリ２の内容が格納される不揮発性メモリ３、ネットワーク（情報伝達媒体）を介して接続されている外部装置（図示略）との間で情報の授受を行うための通信部４を主な構成として備えている。
【００１３】
上記揮発性メモリ２は、例えば、ＲＡＭ（Random Access Memory）などであり、後述する第１のメモリ領域２１、第２のメモリ領域２２、第３のメモリ領域２３を備えている。
上記第１のメモリ領域２１は、当該コンピュータシステムの通常動作時において、各種プログラムの実行ルーチンやデータなどが書き込まれ、いわゆる作業領域として使用される。
第２のメモリ領域２２は、後述の障害時メインプログラムの格納及び動作領域である。
第３のメモリ領域２３は、後述の障害時サブプログラムの格納及び動作領域である。
第２のメモリ領域２２及び第３のメモリ領域２３は、当該コンピュータシステムの通常動作中は、ページング等のメモリ保護機能により、ＣＰＵ１による内容の書き換えが禁止されている。これにより、障害時メインプログラム及び障害時サブプログラムを常に揮発性メモリ２に保持することが可能となる。
不揮発性メモリ３は、例えば、ハードディスク装置（ＨＤＤ）などであり、上記障害時メインプログラムの実行、或いは、障害時サブプログラムの実行により、揮発性メモリ２内の内容が書き込まれる。
通信部４は、ＣＰＵ１の命令に従い、障害発生通知を行う。
【００１４】
障害メインプログラムは、ネットワークを介して接続される外部装置（図示略）に対して、障害発生を通知する障害通知機能と、揮発性メモリ２の第１のメモリ領域２１の内容を不揮発性メモリ３へ書き込む第１のメモリダンプ機能とを備えている。
また、障害時サブプログラムは、第１のメモリ領域２１に格納されている情報及び第２のメモリ領域２２に格納されている障害時メインプログラムを不揮発性メモリ３へ書き込む第２のメモリダンプ機能を備えている。
【００１５】
次に、上記構成からなるコンピュータシステムの動作について、図１及び図２を参照して説明する。
まず、コンピュータシステムの起動時において、ＣＰＵ１は、図示しないＲＯＭなどに格納されている障害時メインプログラム並びに障害時サブプログラムを読み出して、揮発性メモリ２の第２のメモリ領域２２及び第３のメモリ領域２３にそれぞれ書き込む。
その後、ＣＰＵ１は、オペレーションシステムなどの各種プログラムを起動し、種々の処理を実行する。
次に、通常動作中に、オペレーションシステムやハードウェアなどに障害が発生することにより、ＣＰＵ例外などが発生した場合には、ＣＰＵ１は、揮発性メモリ２内の第２のメモリ領域２２に格納されている障害時メインプログラムを実行する（図２のステップＳＰ１）。
【００１６】
ＣＰＵ１は、この障害時メインプログラムを実行することにより、障害通知処理とメモリダンプ処理を平行して行う（ステップＳＰ２）。
これにより、通信部４を経由して障害が外部装置へ通知されるとともに、揮発性メモリ２の第１のメモリ領域２２の内容が不揮発性メモリ３に複写され、保存される。
この間、障害時サブプログラムが格納されている第３のメモリ領域２３については、未だ内容の書き換えから保護されている。
【００１７】
続いて、上記障害時メインプログラムの実行中に、再度障害が発生した場合には（ステップＳＰ３において「YES」）、ＣＰＵ１は、第３のメモリ領域２３に格納されている障害時サブプログラムを実行する（ステップＳＰ４）。
これにより、揮発性メモリ２の第１のメモリ領域２１の内容及び第２のメモリ領域２２の内容が不揮発性メモリ３に複写され、保存される（ステップＳＰ５）。
そして、上記障害時メインプログラム又は障害時サブプログラムが正常に終了した場合には、自動リセットを動作させることにより、コンピュータシステムを自動的に起動させる。
【００１８】
そして、不揮発性メモリ３に退避させた障害発生時におけるデータなどについては、当該コンピュータシステムの再起動後に読み出す、或いは、通信回線などにより接続される他の外部装置から読み出すことにより、障害発生の解析に利用することが可能となる。
【００１９】
以上述べてきたように、本実施形態に係るコンピュータシステムによれば、障害時メインプログラムだけでなく、障害時サブプログラムを備えているので、障害時メインプログラムが実行されている最中に、再度、何らかの障害が発生した場合においても、障害時サブプログラムを実行することにより、メモリダンプを実現することができる。これにより、メモリダンプの確実性を高めることができるという効果を奏する。
【００２０】
また、障害時サブプログラムに障害通知機能を持たせないこととしたので、初回の障害発生箇所が通信に関連する箇所であった場合でも、メモリダンプ処理を確実に行うことが可能となる。
つまり、初回の障害発生箇所が通信に関連する箇所であった場合、障害時サブプログラムにも障害通知機能を持たせてしまうと、この障害通知機能のプログラム実行時において再度のエラーが発生し、障害時サブプログラムも正常に終了させることができなくなってしまう。従って、上述のように、メモリダンプ処理のみを持たせることにより、このような不都合を回避することができる。
【００２１】
また、障害時サブプログラムは、揮発性メモリ２の第２のメモリ領域２２に格納されている障害時メインプログラムについてもメモリダンプの対象としているので、障害時メインプログラム自体に起因する障害発生についても、その解析することが可能となる。
【００２２】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
第１に、上記不揮発性メモリ３は、それ自体単独でコンピュータシステム内に設けられていても良いし、一般的によく利用されるＨＤＤ（Hard Disk Drive）などの中に領域割り当てされていてもよい。
第２に、障害時メインプログラム及び障害時サブプログラムは、メモリダンプの対象となっている揮発性メモリ内に、通常の作業領域とは分離されたメモリ領域に格納されていてもよいし、また、その他の揮発性メモリに格納されていても良い。
第３に、不揮発性メモリ３へのデータ保存は、ファイル形式でも、そのままのイメージファイルでもよく、圧縮ファイルとイメージファイルとを含む形で保存されていても良い。
第４に、メモリダンプ処理などが正常に終了した場合には、上述のように、自動的に再起動させる他、例えば、手動リセット待ちの状態となり、再度の起動を待つようにしても良い。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係るコンピュータシステムの概略構成を示す図である。
【図２】本発明の一実施形態に係るコンピュータシステムにより実現される障害時の処理内容を示すフローチャートである。
【符号の説明】
【００２４】
１  ＣＰＵ
２  揮発性メモリ
３  不揮発性メモリ
４  通信部
２１  第１のメモリ領域
２２  第２のメモリ領域
２３  第３のメモリ領域
【図１】
2006040001.tif 000003
【図２】
2006040001.tif 000004