(57)【要約】【課題】  障害発生時にＯＳが停止するその時の情報を取得することができる障害監視方法を提供する。【解決手段】  ＯＳ１０１ａは自身の異常検知時にＯＳ１０１ｂに制御を切り替える。ＯＳ１０１ｂはＣＰＵ１０４中のレジスタからＯＳ１０１ａのレジスタ情報を読み出して周辺機器１０３ｂ中のファイルシステムに書き込み、周辺機器１０３ａから周辺機器の状態情報を得て周辺機器１０３ｂ中のファイルシステムに書き込み、メモリ１０９ａ中のデータを全て読み出し、周辺機器１０３ｂ中のファイルシステムに書き込み、また、周辺機器１０３ａ中のＯＳ１０１ａのスワップ領域を周辺機器１０３ｂ中のファイルシステムに書き込む。そして、ＯＳ１０１ｂはＮＩＣ１０７を経由して外部計算機１０８に異常の発生を送信して伝える。【選択図】  図１
2005284686.tif 000002
【特許請求の範囲】
【請求項１】
監視オペレーティングシステムと、監視対象オペレーティングシステムとを含む複数のオペレーティングシステムが稼動するコンピュータにおいて、
前記監視対象オペレーティングシステムは、
自身の処理の継続が不可能な異常の発生を検知し、
前記監視オペレーティングシステムに制御を切り替え、
前記監視オペレーティングシステムは、
前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得し、記憶領域に格納する
ことを特徴とする障害監視方法。
【請求項２】
監視オペレーティングシステムと、監視対象オペレーティングシステムとを含む複数のオペレーティングシステムが稼動するコンピュータにおいて、
前記監視対象オペレーティングシステムは、
所定の時間間隔で前記監視オペレーティングシステムに制御を切り替え、
前記監視オペレーティングシステムは、
前記監視対象オペレーティングシステムの状態をチェックし、
前記監視対象オペレーティングシステムに異常が発生していることを検知した場合にのみ、
前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得し、記憶領域に格納する
ことを特徴とする障害監視方法。
【請求項３】
前記監視対象オペレーティングシステムと、前記監視オペレーティングシステムとは、各々が占有してメモリを確保し、
前記状態情報は、前記監視対象オペレーティングシステムのメモリの情報と、スワップ領域の情報とを含むことを特徴とする請求項１または請求項２に記載の障害監視方法。
【請求項４】
前記監視対象オペレーティングシステムと、前記監視オペレーティングシステムとは、各々が周辺機器を占有し、
前記状態情報は、前記監視対象オペレーティングシステムの使用する周辺機器の状態情報を含むことを特徴とする請求項１〜請求項３のいずれかに記載の障害監視方法。
【請求項５】
前記監視オペレーティングシステムは、
前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得した後で、前記監視対象オペレーティングシステムへの制御の切り替えを抑止することを特徴とする請求項１〜請求項４のいずれかに記載の障害監視方法。
【請求項６】
監視オペレーティングシステムと、監視対象オペレーティングシステムとを含む複数のオペレーティングシステムが稼動する障害監視装置において、
前記監視対象オペレーティングシステムは、
自身の処理の継続が不可能な異常の発生を検知する手段と、
前記監視オペレーティングシステムに制御を切り替える手段とを具備し、
前記監視オペレーティングシステムは、
前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得し、記憶領域に格納する手段を具備する
ことを特徴とする障害監視装置。
【請求項７】
監視オペレーティングシステムと、監視対象オペレーティングシステムとを含む複数のオペレーティングシステムが稼動する障害監視装置において、
前記監視対象オペレーティングシステムは、
所定の時間間隔で前記監視オペレーティングシステムに制御を切り替える手段を具備し、
前記監視オペレーティングシステムは、
前記監視対象オペレーティングシステムの状態をチェックする手段と、
前記監視対象オペレーティングシステムに異常が発生していることを検知した場合にのみ、前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得し、記憶領域に格納する手段と、を具備する
ことを特徴とする障害監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのＯＳの障害を監視する障害監視方法に関するものである。
【背景技術】
【０００２】
企業や官公庁における基幹業務において、コンピュータを使用することは多い。また、多くの場合、こうしたコンピュータはネットワークに接続され、他のコンピュータとデータの送受信を行っている。このようなコンピュータのオペレーティングシステム（以下、ＯＳ（Ｏｐｅｒａｔｉｏｎｇ  Ｓｙｓｔｅｍ）と略す）に何らかの障害が発生した場合には、当該コンピュータ上で稼動するアプリケーションプログラムは、ネットワークを介したほかのコンピュータとのデータの送受信自体ができなくなることがある。このようなＯＳの障害を検知するために、従来の技術では、他のコンピュータが障害監視の対象となるコンピュータへ、Ｐｉｎｇコマンド等により信号を送信し、応答が返ってくるか否かによって状態監視を行っていた。しかし、この方法では、監視対象のＯＳが通信可能な状態にあるか否かは判断できるが、監視対象のＯＳが停止している場合であっても原因を特定するためのデータを取得することはできない。また、ネットワーク障害による誤検出の可能性もある。
【０００３】
こうした問題に対して、従来の技術では、障害監視の対象となるコンピュータ上に、ＯＳを監視するソフトウェアであるエージェントを配置し、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）利用率やメモリ使用率、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）処理回数、スループット等を測定し、この測定結果を元に詳細なログを得る方法がある。しかし、この方法は監視のためのＣＰＵに関するオーバーヘッドが大きく、対象となるコンピュータの処理能力の低下を招く可能性が生じる。更に、この方法においてはＯＳに重大な障害が発生した場合には、ＯＳが停止するその時の情報を取得することができないことがある問題点がある。
【０００４】
なお、従来の技術として、特許文献１と、特許文献２および特許文献３に記載されるものが知られている。
特許文献１と特許文献２に記載の技術は、1台の計算機上に二つのＯＳとマルチＯＳ制御部を用意し、監視対象となるＯＳが、マルチＯＳ制御部を介して監視を行うＯＳへ生存信号や走行情報を送信し監視を行うものである。しかし、この技術では監視対象となるＯＳ上で稼動し、監視を行うＯＳへ情報を送信するエージェントが必要になるとともに、マルチＯＳ制御部を必要とする。このため、コンピュータの処理能力の低下を招く可能性は依然として残り、また、ＯＳが停止するその時の情報を取得することができないことがある問題点も残ったままである。
【０００５】
また、特許文献３に記載の技術は、マルチＯＳ制御部が監視対象となるＯＳの障害を検知した場合に、メモリ情報やＣＰＵ情報を取得し、外部計算機へ送信するというものである。しかし、この方法でもマルチＯＳ制御部が必要となるため、コンピュータの処理能力の低下を招く可能性は依然として残る。
【特許文献１】特開２００１−１０１０３２号公報
【特許文献２】特開２００１−１０１０３３号公報
【特許文献３】特開２００２−８２８１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は上記の事情を考慮してなされたもので、その目的は、障害発生時にＯＳが停止するその時の情報を取得することができる障害監視方法を提供することにある。
【課題を解決するための手段】
【０００７】
この発明は前述の課題を解決するためになされたもので、請求項１の発明は、監視オペレーティングシステムと、監視対象オペレーティングシステムとを含む複数のオペレーティングシステムが稼動するコンピュータにおいて、前記監視対象オペレーティングシステムは、自身の処理の継続が不可能な異常の発生を検知し、前記監視オペレーティングシステムに制御を切り替え、前記監視オペレーティングシステムは、前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得し、記憶領域に格納することを特徴とする障害監視方法である。
【０００８】
請求項２に記載の発明は、監視オペレーティングシステムと、監視対象オペレーティングシステムとを含む複数のオペレーティングシステムが稼動するコンピュータにおいて、前記監視対象オペレーティングシステムは、所定の時間間隔で前記監視オペレーティングシステムに制御を切り替え、前記監視オペレーティングシステムは、前記監視対象オペレーティングシステムの状態をチェックし、前記監視対象オペレーティングシステムに異常が発生していることを検知した場合にのみ、前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得し、記憶領域に格納することを特徴とする障害監視方法である。
【０００９】
請求項３に記載の発明は、請求項１または請求項２に記載の障害監視方法であって、前記監視対象オペレーティングシステムと、前記監視オペレーティングシステムとは、各々が占有してメモリを確保し、前記状態情報は、前記監視対象オペレーティングシステムのメモリの情報と、スワップ領域の情報とを含むことを特徴とするものである。
【００１０】
請求項４に記載の発明は、請求項１〜請求項３のいずれかに記載の障害監視方法であって、前記監視対象オペレーティングシステムと、前記監視オペレーティングシステムとは、各々が周辺機器を占有し、前記状態情報は、前記監視対象オペレーティングシステムの使用する周辺機器の状態情報を含むことを特徴とするものである。
【００１１】
請求項５に記載の発明は、請求項１〜請求項４のいずれかに記載の障害監視方法であって、前記監視オペレーティングシステムは、前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得した後で、前記監視対象オペレーティングシステムへの制御の切り替えを抑止することを特徴とするものである。
【００１２】
請求項６に記載の発明は、監視オペレーティングシステムと、監視対象オペレーティングシステムとを含む複数のオペレーティングシステムが稼動する障害監視装置において、前記監視対象オペレーティングシステムは、自身の処理の継続が不可能な異常の発生を検知する手段と、前記監視オペレーティングシステムに制御を切り替える手段とを具備し、前記監視オペレーティングシステムは、前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得し、記憶領域に格納する手段を具備することを特徴とする障害監視装置である。
【００１３】
請求項７に記載の発明は、監視オペレーティングシステムと、監視対象オペレーティングシステムとを含む複数のオペレーティングシステムが稼動する障害監視装置において、前記監視対象オペレーティングシステムは、所定の時間間隔で前記監視オペレーティングシステムに制御を切り替える手段を具備し、前記監視オペレーティングシステムは、前記監視対象オペレーティングシステムの状態をチェックする手段と、前記監視対象オペレーティングシステムに異常が発生していることを検知した場合にのみ、前記監視対象オペレーティングシステムからの制御切り替え時点での前記監視対象オペレーティングシステムの状態情報を取得し、記憶領域に格納する手段と、を具備することを特徴とする障害監視装置である。
【発明の効果】
【００１４】
請求項１または請求項６の発明によれば、監視対象のＯＳにおける障害の発生時にのみ、監視を行うＯＳに制御が切り替わるため、エージェントを使用する場合のようにＣＰＵに大きな負担をかけ続けることはなく、また、ＯＳが停止するその時の情報を取得することもできる効果がある。
【００１５】
請求項２または請求項７の発明によれば、コンピュータの管理者は従来の技術のように、エージェントやマルチＯＳ管理部を特に用意する必要がなくなる効果が得られる。
【００１６】
請求項３の発明によれば、ＯＳでの異常が見つかった際の実メモリとスワップ領域の情報が取得されるため、コンピュータの管理者などによる原因調査の役に立つ効果がある。
【００１７】
請求項４の発明によれば、ＯＳでの異常が見つかった際の周辺機器の情報が取得されるため、コンピュータの管理者などによる原因調査の役に立つ効果がある。
【００１８】
請求項５の発明によれば、ＯＳでの異常が見つかった際に不当にＯＳの切り替えが発生することを抑止するため、再び異常の発生したＯＳへ処理が切り替わり、不正な処理などを実行することを回避できる効果がある。
【発明を実施するための最良の形態】
【００１９】
図１は本実施の形態におけるコンピュータ１００の構成を表している。
ＯＳ１０１ａと、ＯＳ１０１ｂとはコンピュータ１００上で稼動するオペレーティングシステムであり、ＯＳ１０１ａの状態をＯＳ１０１ｂが監視する。
ＩＤＴ（Ｉｎｔｅｒｒｕｐｔ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｔａｂｌｅ）１０２ａはＯＳ１０１ａの割込み制御情報を格納するメモリ１０９ａ中の割込み制御テーブルである。この割込み制御情報は、例えば図７のような構造を持っている。ＩＤＴ１０２ａは割込みの種類ごとにどのような処理を行うべきかを記述している。このＩＤＴ１０２ａには、ＯＳ１０１ａからＯＳ１０１ｂへ制御を移す場合の割込みに関する情報も含まれている。
また、ＩＤＴ１０２ｂはＯＳ１０１ｂの割込み制御情報を格納するメモリ１０９ｂ中の割込み制御テーブルであり、ＩＤＴ１０２ａと同様の構造を有している。
【００２０】
メモリ１０９ａはＯＳ１０１ａがアクセスする記憶領域である。ＯＳ１０１ａはこのメモリ１０９ａ中に自身の管理するプロセスに関する情報を含むプロセス管理情報を格納する。また、メモリ１０９ｂはＯＳ１０１ｂがアクセスする記憶領域であり、ＯＳ１０１ｂはこのメモリ１０９ｂ中に自身の管理するプロセスに関する情報を含むプロセス管理情報を格納する。メモリ１０９ａと、メモリ１０９ｂは元々は連続した１個の記憶領域であったが、これを上位と下位との２つに分け、ＯＳ１０１ａと、ＯＳ１０１ｂとが各々占有して使用する。また、メモリ１０９ｂは、ＯＳ１０１ａからＯＳ１０１ｂへの制御の切り替えの際に使用され、また、ＯＳ１０１ｂの前回稼動時のレジスタの内容を含むレジスタ情報を格納する。
【００２１】
周辺機器１０３ａはネットワークボードやハードディスク装置等を含む周辺機器であり、ＯＳ１０１ａは周辺機器１０３ａを占有して使用する。また、ＯＳ１０１ａはファイルシステムを周辺機器１０３ａに含まれるハードディスク装置中に持つ。また、ＯＳ１０１ａはスワップ領域をこのファイルシステム中の一部に構築する。ＯＳ１０１ｂも同様に周辺機器１０３ｂ中にファイルシステムとスワップ領域を持つ。
【００２２】
また、メモリ１０９ｂには切り替えを抑止したＩＤＴが格納されている。この切り替えを抑止したＩＤＴは、ＩＤＴ１０２ｂ中のＯＳ１０１ｂからＯＳ１０１ａへ制御を移す場合の割込みに関する情報を除外したものである。ＯＳ１０１ｂはＩＤＴ１０２ｂの代わりに切り替えを抑止したＩＤＴを使用すると、ＯＳ１０１ｂからＯＳ１０１ａへの制御の移行が抑止されるため、ＯＳ１０１ｂ単独での処理の続行が可能となる。
また、メモリ１０９ｂには図６に示される対応テーブルが格納されている。この対応テーブルはＯＳ１０１ａに何かの異常が発生した場合のＯＳ１０１ｂの対処方法を表している。
【００２３】
ＡＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ）１０６ａ〜ｄはコンピュータ１００上で稼動するプログラムである。
ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０７は周辺機器１０３ｂに含まれるネットワークへの接続機能である。
【００２４】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０４はコンピュータ１００の中央処理装置であり、内部にレジスタを備える。また、ＣＰＵ１０４はＯＳ１０１ａや、ＯＳ１０１ｂが時間指定での割込み処理などの際にタイマ１０５を使用する。
外部計算機１０８は、コンピュータ１００の管理者が使用するネットワーク機能を備えたパソコンである。
【００２５】
次に、本実施の形態における処理の流れについて、図を参照しながら説明する。いま、図１のＯＳ１０１ａと、ＯＳ１０１ｂとは既に起動されており、ＯＳ１０１ａが現在処理を実行中である。ＯＳ１０１ｂは、ＯＳ１０１ａがＯＳ１０１ｂへ制御を渡すのを待っている状態である。以降では、ＯＳ１０１ａが自身の異常を検知し、ＯＳ１０１ｂへ通知する処理である随時監視処理と、ＯＳ１０１ｂが所定の時間間隔でＯＳ１０１ａの状態監視を行う処理である定期監視処理とについて説明する。
【００２６】
＜随時監視処理＞
図２〜図５は随時監視処理の流れを表している。いま、コンピュータ１００上でメモリ１０９ａにおいて、予期しないメモリの書き換えにより、カーネルパニック（システムのフリーズ）が発生し、ＯＳ１０１ａ自身の処理の継続ができない状態になった（図２のステップＳ０１ｂ、図３のステップＴ０３）。そこで、ＯＳ１０１ａは自身に異常が発生したことを外部計算機１０８へ通知するために、割込みを発生させて（図２のステップＳ０２）ＯＳ１０１ｂへ制御を切り替える（図２のステップＳ０４−１、図３のステップＴ０４）。
【００２７】
ＯＳ１０１ａからの制御の切り替えを受けて、ＯＳ１０１ｂは実行を再開する（図３のステップＴ０５）。このとき、ＣＰＵ１０４内のレジスタの内容はＯＳ１０１ａ実行時のままである。この状態ではＯＳ１０１ｂは処理を行えないため、図４に表す自身のレジスタ等を回復する処理を行う。ＯＳ１０１ｂはＯＳ１０１ａの異常発生時のレジスタの状態の確認のために、ＣＰＵ１０４内のレジスタを読み出し、ＯＳ１０１ａのレジスタ情報を生成してメモリ１０９ｂに書き込んで退避する（図４のステップＵ０１）。次に、ＯＳ１０１ｂはメモリ１０９ｂに予め格納していた自身のレジスタ情報を読み出し、ＣＰＵ１０４のレジスタに書き込む。これによりＯＳ１０１ｂのレジスタが回復され、ＯＳ１０１ｂは処理の実行が可能となる（図４のステップＵ０２）。
【００２８】
次に、ＯＳ１０１ｂは自身に何らかの異常が起きてＯＳ１０１ａへの切り替えが発生することを抑止するために図５に示されるＩＤＴ書き換え処理を行う。このため、ＯＳ１０１ｂはメモリ１０９ｂから切り替えを抑止したＩＤＴを読み出す。そして、ＯＳ１０１ｂは、ＯＳ１０１ａへの切り替えの発生を抑止するためにアプリケーションプログラムや周辺機器１０３ｂからの割込みを一時禁止し（図５のステップＶ０１）、ＩＤＴ１０２ｂを切り替えを抑止したＩＤＴで上書きする（図５のステップＶ０２）。これによって何か異常事態が発生した場合でも、ＯＳ１０１ａへの切り替えは行われず、ＯＳ１０１ｂは単独で処理を続行する。次に、ＯＳ１０１ｂはアプリケーションプログラムや周辺機器１０３ｂからの割込みを再び許可する（図５のステップＶ０３、図３のステップＴ０６、図２のステップＳ０９）。
【００２９】
次に、ＯＳ１０１ｂはＯＳ１０１ａの状態を確認するため、ＯＳ１０１ａの使用していた実メモリと、スワップ領域とへのアクセスを試みる。このために、ＯＳ１０１ｂはアクセス可能なメモリ領域を拡張し、メモリ１０９ａをアクセスし、メモリ１０９ａを解析してＯＳ１０１ａのメモリ情報を得る。また、ＯＳ１０１ｂはこのメモリ情報に含まれるスワップアウトされているページに関する情報を得る。これにより、ＯＳ１０１ｂはＯＳ１０１ａの使用していたスワップ領域をアクセス可能となる（図４のステップＵ０３）。
【００３０】
次に、ＯＳ１０１ｂはＯＳ１０１ａが占有していた周辺機器１０３ａに関する情報を読み出し、ＯＳ１０１ａがどのようなデバイスを使用していたのかを知る。そして、ＯＳ１０１ｂは周辺機器１０３ａの現在の状態確認のために状態情報要求を周辺機器１０３ａに出力する。周辺機器１０３ａはＯＳ１０１ｂの要求を受け、周辺機器１０３ａの状態情報を生成し、ＯＳ１０１ｂへ出力する。
ＯＳ１０１ｂは周辺機器１０３ａから状態情報を入力し、これをあらかじめメモリ１０９ｂに保持している周辺機器１０３ｂのファイルシステムへ書き込む（図３のステップＴ０７）。
【００３１】
次に、ＯＳ１０１ｂはメモリ１０９ａをアクセスして全てのデータを読み出し、周辺機器１０３ｂのファイルシステムへ書き込む。また、ＯＳ１０１ｂはＯＳ１０１ａの使用していたスワップ領域をアクセスし、全てのデータを読み出し、周辺機器１０３ｂのファイルシステムへ書き込む（図３のステップＴ０８）。ＯＳ１０１ｂは、メモリ１０９ａおよびＯＳ１０１ａのスワップ領域のサイズが大きいことがあるため、周辺機器１０３ｂのファイルシステム中に保存し、コンピュータ１００の管理者及び外部計算機１０８による調査の際の資料とする。
【００３２】
次に、ＯＳ１０１ｂはメモリ１０９ｂから図６に示される対応テーブルを読み出す。ＯＳ１０１ｂはこの対応テーブルを元にカーネルパニックの場合は、障害発生通知を送信すべきであると判断する。そこで、ＯＳ１０１ｂは“ＯＳ１０１ａ異常終了”をＮＩＣ１０７へ出力し、外部計算機１０８への送信を指示する。ＮＩＣ１０７はＯＳ１０１ｂからデータを入力し、ネットワークを経由して外部計算機１０８へ“ＯＳ１０１ａ異常終了”を送信し、併せて周辺機器１０３ｂのファイルシステムに格納した情報を送信する（図３のステップＴ１０、図２のステップＳ１０）。
【００３３】
ここで、ＯＳ１０１ｂは対応テーブルからＯＳ１０１ａの再起動が必要であると判断した場合には、ＣＰＵ１０４にＯＳ１０１ａを指定してプログラムの実行を要求し、ＯＳ１０１ａを再起動させる（図３のステップＴ０９、図２のステップＳ１１）。
外部計算機１０８はコンピュータ１００から“ＯＳ１０１ａ異常終了”を受信し、自身の表示部へこれを表示してコンピュータ１００の管理者に通知する。
【００３４】
上述の説明はＯＳ１０１ａが異常を検知した場合の処理である。ＯＳ１０１ａが正常終了した場合には（図２のステップＳ０１ｃ）、同じようにＯＳ１０１ａは割込みを発生させ（図３のステップＴ０１、図２のステップＳ０２）、ＯＳ１０１ｂへ制御を切り替える（図３のステップＴ０４、ステップＴ０５、図２のステップＳ０４−１）。ＯＳ１０１ｂは、ＯＳ１０１ａは正常終了したため、プロセス情報などを周辺機器１０３ｂのスワップ領域へ書き込む等してデータを保存することはせず、外部計算機１０８へ“ＯＳ１０１ａ正常終了”を送信する（図３のステップＴ１０）。ＯＳ１０１ａの再起動が正常に完了した場合にも（図２のステップＳ０１ａ）、ＯＳ１０１ａは割込みを発生させ（図３のステップＴ０２、図２のステップＳ０２）、ＯＳ１０１ｂへ制御を切り替えるが（図３のステップＴ０４、ステップＴ０５、図２のステップＳ０４−１）、この場合の処理もＯＳ１０１ａの正常終了と同様である。ただし、ＯＳ１０１ｂは外部計算機１０８へは“ＯＳ１０１ａ再起動”を送信する（図３のステップＴ１０）。
【００３５】
＜定期監視処理＞
図２、図４および図５は定期監視処理の流れを表している。
ＯＳ１０１ａは所定の時間間隔でＯＳ１０１ｂによる監視を受けるため、この所定の時間間隔で割込みを発生させ（図２のステップＳ０３）、ＯＳ１０１ｂを指定してＯＳの切り替えを行う（図２のステップＳ０４−２）。ＯＳ１０１ａ自身の実行を一旦停止して待機状態となる。
【００３６】
ＯＳ１０１ｂは実行を再開する（図２のステップＳ０４−１）。このとき、ＣＰＵ１０４内のレジスタの内容はＯＳ１０１ａ実行時のままである。ＯＳ１０１ｂはＯＳ１０１ａの実行状態の確認のために、ＣＰＵ１０４内のレジスタを読み出し、ＯＳ１０１ａのレジスタ情報としてメモリ１０９ｂに書き込む（図４のステップＵ０１）。次に、ＯＳ１０１ｂはメモリ１０９ｂに予め格納していた自身のレジスタ情報を読み出し、ＣＰＵ１０４のレジスタに書き込む。これによりレジスタが回復されたため、ＯＳ１０１ｂは処理の実行が可能となった（図４のステップＵ０２）。
【００３７】
次に、ＯＳ１０１ｂはＯＳ１０１ａの状態を確認するため、ＯＳ１０１ａの使用していた実メモリと、スワップ領域とへのアクセスを試みる。このために、ＯＳ１０１ｂはアクセス可能なメモリ領域を拡張し、メモリ１０９ａをアクセスし、メモリ１０９ａを解析してＯＳ１０１ａのメモリ情報を得る。また、ＯＳ１０１ｂはこのメモリ情報に含まれるスワップアウトされているページに関する情報を得る。これにより、ＯＳ１０１ｂはＯＳ１０１ａの使用していたスワップ領域をアクセス可能となる（図４のステップＵ０３）。
【００３８】
次に、ＯＳ１０１ｂはＯＳ１０１ａが占有していた周辺機器１０３ａに関する情報を読み出し、ＯＳ１０１ａがどのようなデバイスを使用していたのかを知る。そして、ＯＳ１０１ｂは周辺機器１０３ａの現在の状態確認のために状態情報要求を周辺機器１０３ａに出力する。周辺機器１０３ａはＯＳ１０１ｂの要求を受け、周辺機器１０３ａの状態情報を生成し、ＯＳ１０１ｂへ出力する。
【００３９】
ＯＳ１０１ｂは周辺機器１０３ａから状態情報を入力し、メモリ１０９ｂへ書き込み、周辺機器１０３ａの状態をチェックする。また、ＯＳ１０１ｂはメモリ１０９ａをアクセスし、プロセス管理情報を得て、ＯＳ１０１ａが管理していたプロセスの状態をチェックする。
【００４０】
ここで、ＯＳ１０１ｂは、周辺機器１０３ａの状態情報もしくはＯＳ１０１ａのメモリ情報からＯＳ１０１ａの走行に問題がないことを検知した場合には、ＯＳ１０１ａの処理継続は可能であると判断する（図２のステップＳ０５）。そこで、ＯＳ１０１ｂはＣＰＵ１０４内の全てのレジスタを読み出し、自身のレジスタ情報としてメモリ１０９ｂに書き込み、また、ＯＳ１０１ａのレジスタ情報をメモリ１０９ｂから読み出し、ＣＰＵ１０４のレジスタに書き込む。そして、ＯＳ１０１ｂはＯＳ１０１ａを指定してＯＳの切り替えを開始する。
これによりＯＳ１０１ｂは実行を一旦停止して待機状態とし、ＯＳ１０１ａの処理を再開する（図２のステップＳ０６）。
【００４１】
また、ここで、ＯＳ１０１ｂがＯＳ１０１ａに何らかの問題が発生していることを検知したとする。このとき、ＯＳ１０１ｂはコンピュータ１００の管理者による調査のためにＯＳ１０１ａの使用していたメモリの情報が必要になると判断し、メモリ１０９ａをアクセスして全てのデータを読み出し、周辺機器１０３ｂのファイルシステムへ書き込む。また、ＯＳ１０１ｂはＯＳ１０１ａの使用していた周辺機器１０３ａ中のスワップ領域をアクセスし、全てのデータを読み出し、周辺機器１０３ｂのファイルシステムへ書き込む（図２のステップＳ０５）。
【００４２】
次に、ＯＳ１０１ｂはＯＳ１０１ａに何らかの異常が起きてＯＳ１０１ａへの切り替えが発生することを抑止するために図５に示されるＩＤＴ書き換え処理を行う。このため、ＯＳ１０１ｂはメモリ１０９ｂから切り替えを抑止したＩＤＴを読み出す。そして、ＯＳ１０１ｂは、ＯＳ１０１ａへの切り替えの発生を抑止するためにアプリケーションプログラムや周辺機器１０３ｂからの割込みを一時禁止し（図５のステップＶ０１）、ＩＤＴ１０２ｂを切り替えを抑止したＩＤＴで上書きする（図５のステップＶ０２）。これによって何か異常事態が発生した場合でも、ＯＳ１０１ａへの切り替えは行われず、ＯＳ１０１ｂは単独で処理を続行する。次に、ＯＳ１０１ｂはアプリケーションプログラムや周辺機器１０３ｂからの割込みを再び許可する（図５のステップＶ０３、図２のステップＳ０９）。
【００４３】
次に、ＯＳ１０１ｂはメモリ１０９ｂから図６に示される対応テーブルを読み出す。ＯＳ１０１ｂはこの対応テーブルを元にＯＳ１０１ａのネットワーク断の場合は障害発生通知を送信すべきであると判断する。そこで、ＯＳ１０１ｂは“ＯＳ１０１ａ異常あり”をＮＩＣ１０７へ出力し、外部計算機１０８への送信を指示する。ＮＩＣ１０７はＯＳ１０１ｂからデータを入力し、ネットワークを経由して外部計算機１０８へ“ＯＳ１０１ａ異常あり”を送信する（図２のステップＳ１０）。
【００４４】
さらに、ＯＳ１０１ｂは対応テーブルからＯＳ１０１ａの再起動も必要であると判断すると、メモリ１０９ｂに書き込んで退避したＩＤＴ１０２ｂを読み出し、ＩＤＴ１０２ｂに上書きする。そして、ＯＳ１０１ｂはＣＰＵ１０４内の全てのレジスタを読み出し、自身のレジスタ情報としてメモリ１０９ｂに書き込み、ＯＳ１０１ｂはＯＳ１０１ａを指定してＣＰＵ１０４に再起動を要求する。
ＣＰＵ１０４はＯＳ１０１ｂの要求を受けてＯＳ１０１ｂの実行を一旦停止して待機状態とし、ＯＳ１０１ａを再起動する（図２のステップＳ１１）。
【００４５】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、ＩＤＴはインテル（登録商標）社のプロセッサにおいて採用されているデータ構造であるが、類似の割込み制御テーブルは他社のプロセッサにおいても広く採用されるものであり、このため、本実施の形態をＩＤＴ以外の割込み制御テーブルに適用しても良い。即ち、本実施の形態はインテル（登録商標）社のプロセッサ以外においても適用できるものである。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施の形態におけるコンピュータのブロック図である。
【図２】本発明の実施の形態におけるコンピュータのフローチャートである。
【図３】本発明の実施の形態におけるコンピュータのフローチャートである。
【図４】本発明の実施の形態におけるコンピュータのフローチャートである。
【図５】本発明の実施の形態におけるコンピュータのフローチャートである。
【図６】本発明の実施の形態におけるコンピュータの使用する対応テーブルを表す図である。
【図７】本発明の実施の形態におけるコンピュータの使用するＩＤＴを表す図である。
【符号の説明】
【００４７】
１００…コンピュータ
１０１ａ…ＯＳ（監視対象オペレーティングシステム）
１０１ｂ…ＯＳ（監視オペレーティングシステム）
１０２ａ、１０２ｂ…ＩＤＴ
１０３ａ、１０３ｂ…周辺機器
１０４…ＣＰＵ
１０５…タイマ
１０６ａ、１０６ｂ、１０６ｃ、１０６ｄ…ＡＰ
１０７…ＮＩＣ
１０８…外部計算機
１０９ａ、１０９ｂ…メモリ
【図１】
2005284686.tif 000003
【図２】
2005284686.tif 000004
【図３】
2005284686.tif 000005
【図４】
2005284686.tif 000006
【図５】
2005284686.tif 000007
【図６】
2005284686.tif 000008
【図７】
2005284686.tif 000009