(57)【要約】【課題】複数のＯＳによって各ＯＳの状態を相互に監視させ合い、障害の発生状況を詳細に記録できる障害監視システムを提供すること。【解決手段】複数のＯＳ５０、５１を動作させるプロセッサ１を有するコンピュータシステム１００において各ＯＳの状態を相互に監視させる障害監視システムを構成するＯＳ５０、５１のそれぞれは、共有メモリ２の自ＯＳ対応領域２０、２１にＯＳ５０、５１の状態を記録する自状態記録手段５００、５１０と、共有メモリ２の他ＯＳ対応領域２１、２０の記録内容を参照し、その記録内容が他ＯＳ５１、５０の所定状態を示す場合に、他ＯＳ対応領域２１、２０に所定内容を記録する他状態記録手段５０１、５１１と、自ＯＳ対応領域２０、２１の記録内容に基づいて他ＯＳ５１、５０の状態を監視する他状態監視手段５０２、５１２とを備える。【選択図】図１
2008186173.tif 000002
【特許請求の範囲】
【請求項１】
複数のオペレーティングシステムを動作させるプロセッサを有するコンピュータシステムにおいて各オペレーティングシステムの状態を相互に監視させる障害監視システムであって、
前記オペレーティングシステムは、共有メモリにおける自オペレーティングシステム対応領域に自オペレーティングシステムの状態を記録する自状態記録手段と、前記共有メモリにおける他オペレーティングシステム対応領域の記録内容を参照し、該記録内容が前記他オペレーティングシステムの所定状態を示す場合に、前記他オペレーティングシステム対応領域に所定内容を記録する他状態記録手段と、前記自オペレーティングシステム対応領域の記録内容に基づいて前記他オペレーティングシステムの状態を監視する他状態監視手段と、を備える、
ことを特徴とする障害監視システム。
【請求項２】
前記他状態記録手段は、前記自状態記録手段が前記自オペレーティングシステムの状態を記録する度に、前記他オペレーティングシステム対応領域の記録内容を参照する、
ことを特徴とする請求項１に記載の障害監視システム。
【請求項３】
前記プロセッサは、マルチコアプロセッサであり、
前記複数のオペレーティングシステムは、それぞれ異なるコアで実行される、
ことを特徴とする請求項１又は２に記載の障害監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のオペレーティングシステムによって各オペレーティングシステムの状態を相互に監視させ合い、障害の発生状況を詳細に記録できる障害監視システムに関する。
【背景技術】
【０００２】
従来、ウォッチドッグ等の専用のハードウェアを追加することなくオペレーティングシステム（以下、ＯＳ（Operating  System）とする。）の状態を監視する計算機が知られている（例えば、特許文献１参照。）。
【０００３】
この計算機は、プロセッサ上で二つの独立したＯＳ（第一及び第二ＯＳ）を動作させ、第一ＯＳの状態を監視するソフトウェアプログラムである障害監視モニタを第二ＯＳ上で実行させ、さらに、第一ＯＳと第二ＯＳとの間の通信を可能とするＯＳ間通信手段を介して第一ＯＳから第二ＯＳに送信される所定の信号に基づいて障害監視モニタに第一ＯＳにおける障害の有無を判定させる。すなわち、この計算機は、ソフトウェアである第二ＯＳにハードウェアであるウォッチドッグの機能を代用させることにより、第一ＯＳから独立した機能により、第一ＯＳの障害を監視できるようにする。
【特許文献１】特開２００１−１０１０３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の計算機は、第二ＯＳの状態を監視することができず、第二ＯＳに障害が発生した場合には、計算機全体の信頼性が損なわれることになる。障害が発生した第二ＯＳ上で動作する障害監視モニタによって第一ＯＳの状態を監視することとなるからである。
【０００５】
上述の点に鑑み、本発明は、複数のオペレーティングシステムによって各オペレーティングシステムの状態を相互に監視させ合い、障害の発生状況を詳細に記録できる障害監視システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の目的を達成するために、第一の発明に係る障害監視システムは、複数のオペレーティングシステムを動作させるプロセッサを有するコンピュータシステムにおいて各オペレーティングシステムの状態を相互に監視させる障害監視システムであって、前記オペレーティングシステムは、共有メモリにおける自オペレーティングシステム対応領域に自オペレーティングシステムの状態を記録する自状態記録手段と、前記共有メモリにおける他オペレーティングシステム対応領域の記録内容を参照し、該記録内容が前記他オペレーティングシステムの所定状態を示す場合に、前記他オペレーティングシステム対応領域に所定内容を記録する他状態記録手段と、前記自オペレーティングシステム対応領域の記録内容に基づいて前記他オペレーティングシステムの状態を監視する他状態監視手段と、を備える、ことを特徴とする。
【０００７】
また、第二の発明は、第一の発明に係る障害監視システムであって、前記他状態記録手段は、前記自状態記録手段が前記自オペレーティングシステムの状態を記録する度に、前記他オペレーティングシステム対応領域の記録内容を参照することを特徴とする。
【０００８】
また、第三の発明は、第一又は第二の発明に係る障害監視システムであって、前記プロセッサは、マルチコアプロセッサであり、前記複数のオペレーティングシステムは、それぞれ異なるコアで実行されることを特徴とする。
【発明の効果】
【０００９】
上述の手段により、本発明は、複数のオペレーティングシステムによって各オペレーティングシステムの状態を相互に監視させ合い、障害の発生状況を詳細に記録できる障害監視システムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しつつ、本発明を実施するための最良の形態の説明を行う。
【実施例】
【００１１】
図１は、本発明に係る障害監視システムを備えたコンピュータシステムの構成例を示す図である。
【００１２】
コンピュータシステム１００は、マルチコアプロセッサ１、揮発性メモリ２、不揮発性メモリ３の構成要素を有し、システムバス４を介して各構成要素間を接続する。
【００１３】
マルチコアプロセッサ１は、二以上のプロセッサコアを一個のパッケージに集積したプロセッサであり、コンピュータシステム１００は、一個のマルチコアプロセッサ１からなるマルチコアシングルプロセッサ構成を採用するが、複数個のマルチコアプロセッサからなるマルチコアマルチプロセッサ構成を採用してもよい。
【００１４】
なお、コンピュータシステム１００は、複数の機能を分散処理させてリアルタイム処理性能を向上させるため、部品点数の削減によりコストを低減させるため、或いは、省電力化を図るためにマルチコアプロセッサ１を採用するが、本発明に係る障害監視システムは、一個のシングルコアプロセッサからなるシングルコアシングルプロセッサ構成、又は、複数個のシングルコアプロセッサからなるシングルコアマルチプロセッサ構成にも適用可能である。
【００１５】
また、コンピュータシステム１００は、共有メモリを有する密結合マルチプロセッサ構成を採用するが、全てのプロセッサが対等となる対称型マルチプロセッサ構成であってもよく、プロセッサ毎に異なる処理内容が予め決定される非対称型マルチプロセッサ構成であってもよい。
【００１６】
マルチコアプロセッサ１は、第一ＣＰＵ(Central  Processing  Unit)１０、第二ＣＰＵ１１、第三ＣＰＵ１２及び第四ＣＰＵ１３の四つのＣＰＵコアを有し、第一ＣＰＵ１０に第一ＯＳ５０を実行させ、第二ＣＰＵ１１、第三ＣＰＵ１２及び第四ＣＰＵ１３の三つのＣＰＵコアに第二ＯＳ５１を実行させるマルチＯＳ構成を採用する。
【００１７】
「マルチＯＳ構成」とは、複数のＯＳをプロセッサ上で独立に動作させる構成をいい、例えば、組み込みシステム向けのＯＳとして利用されるリアルタイム処理に長けたμＩＴＲＯＮ(Micro  Industrial  TRON(The  Real-time  Operating  System  Nucleus))等のリアルタイムＯＳと、Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）といった機能が豊富な汎用ＯＳとを兼ね備えたハイブリッドＯＳがある。
【００１８】
第一ＯＳ５０及び第二ＯＳ５１は、それぞれ、リアルタイムＯＳ又は汎用ＯＳの何れであってもよく、自状態記録手段５００、５１０、他状態記録手段５０１、５１１、及び、他状態監視手段５０２、５１２をそれぞれ有する。
【００１９】
揮発性メモリ２は、高速アクセスが要求される主記憶装置として使用される半導体メモリであり、例えば、ＤＲＡＭ(Dynamic  Random  Access  Memory)やＳＲＡＭ(Static  RAM)等であって、第一ＯＳ５０及び第二ＯＳ５１によって共有される。
【００２０】
不揮発性メモリ３は、電源を切った後も記憶内容を保持できるメモリであり、例えば、フラッシュメモリ、ＦＲＡＭ(Ferroelectric  RAM)、ＭＲＡＭ（Magneto-resistive  RAM）等であって、揮発性メモリ２と同様に、第一ＯＳ５０及び第二ＯＳ５１によって共有される。なお、不揮発性メモリ３は、ハードディスク等の補助記憶装置であってもよい。
【００２１】
図２は、各種メモリの構成例を示す図であり、図２（Ａ）が揮発性メモリ２の構成例を示し、図２（Ｂ）が不揮発性メモリ３の構成例を示す。
【００２２】
揮発性メモリ２は、第一ＯＳ５０の起動状態を記憶する第一ＯＳ起動情報領域２０と、第二ＯＳ５１の起動状態を記憶する第二ＯＳ起動情報領域２１とを有する（図２（Ａ）参照。）。
【００２３】
また、不揮発性メモリ３は、第一ＯＳ５０の障害情報を記憶する第一ＯＳ障害情報領域３０と、第二ＯＳ５１の障害情報を記憶する第二ＯＳ障害情報領域３１とを有し、各障害情報領域３０、３１は、障害の発生回数を記憶する障害発生回数領域３００、３１０と、障害の内容を記憶する障害内容領域３０１、３１１と、をそれぞれ有する（図２（Ｂ）参照。）。
【００２４】
システムバス４は、ＣＰＵとメモリとを結ぶバスであり、例えば、ノースブリッジ等のチップセットとＣＰＵとを結ぶフロントサイドバス、及び、チップセットとメモリとを結ぶメモリバスで構成されてもよい。
【００２５】
次に、第一ＯＳ５０及び第二ＯＳ５１のそれぞれが有する自状態記録手段５００、５１０、他状態記録手段５０１、５１１及び他状態監視手段５０２、５１２について説明する。
【００２６】
自状態記録手段５００、５１０は、自ＯＳの状態を記録するための手段であり、例えば、第一ＯＳ５０の自状態記録手段５００は、第一ＯＳ５０の起動状態を揮発性メモリ２の第一ＯＳ起動情報領域２０に記録し、第二ＯＳ５１の自状態記録手段５１０は、第二ＯＳ５１の起動状態を揮発性メモリ２の第二ＯＳ起動情報領域２１に記録する。
【００２７】
他状態記録手段５０１、５１１は、他ＯＳの状態を記録するための手段であり、例えば、第一ＯＳ５０の他状態記録手段５０１は、揮発性メモリ２の第二ＯＳ起動情報領域２１に記録された第二ＯＳ５１の起動状態を示す値（以下、「状態値」という。）を所定の状態値に書き換え、第二ＯＳ５１の他状態記録手段５１１は、揮発性メモリ２の第一ＯＳ起動情報領域２０に記録された第一ＯＳ５０の状態値を所定の状態値に書き換える。
【００２８】
他状態監視手段５０２、５１２は、他ＯＳの状態を監視するための手段であり、例えば、第一ＯＳ５０の他状態監視手段５０２は、第二ＯＳ５１の他状態記録手段５１１によって書き換えられる第一ＯＳ起動情報領域２０の内容を監視することで、第二ＯＳ５１の起動処理における異常（以下、単に「障害」という。）を検知する。第二ＯＳ５１で障害が発生すると、第二ＯＳ５１の他状態記録手段５１１は、第一ＯＳ起動情報領域２０の内容を書き換えることができなくなり、第一ＯＳ５０は、第二ＯＳ５１による書き換えが発生しないことによって間接的に第二ＯＳ５１の障害を検知できるからである。
【００２９】
反対に、第二ＯＳ５１の他状態監視手段５１２は、第一ＯＳ５０の他状態記録手段５０１によって書き換えられる第二ＯＳ起動情報領域２１の内容を監視することで、第一ＯＳ５０の障害を検知する。
【００３０】
次に、図３を参照しながら、コンピュータシステム１００上で動作する第一ＯＳ５０及び第二ＯＳ５１が相互に相手ＯＳの起動状態を監視する処理（以下、「起動状態監視処理」とする。）について説明する。なお、図３は、起動状態監視処理の流れを示すフローチャートである。
【００３１】
最初に、コンピュータシステム１００は、第一ＣＰＵ１０を初期化した後、第一ＣＰＵ１０上で第一ＯＳ５０を起動させる。
【００３２】
第一ＯＳ５０は、起動処理を開始すると、自状態記録手段５００により揮発性メモリ２の第一ＯＳ起動情報領域２０に「起動開始」を示す状態値を記録する（ステップＳ１）。
【００３３】
このとき、第一ＯＳ５０は、監視対象である相手ＯＳ（第二ＯＳ５１）に関する情報を書き換える処理（以下、「他状態記録処理（後述）」という。）を実行させ、他状態記録手段５０１により揮発性メモリ２の第二ＯＳ起動情報領域２１に記録された、第二ＯＳ５１の状態を表す状態値を参照し、その状態値が第二ＯＳ５１の「起動開始」を示す状態値である場合、第二ＯＳ起動情報領域２１に記録された状態値を「起動開始確認」を示す状態値に書き換えるようにする。
【００３４】
なお、第一ＯＳ５０は、自状態記録手段５００により自身の状態値を第一ＯＳ起動情報領域２０に記録する度に、他状態記録処理（後述）を実行する。
【００３５】
その後、第一ＯＳ５０は、第一ＯＳ起動情報領域２０に記録された状態値を周期的に参照し、第二ＯＳ５１における他状態記録処理（後述）によって第一ＯＳ起動情報領域２０に記録された「起動開始」を示す状態値が「起動開始確認」を示す状態値に書き換えられるまで待機する（ステップＳ２）。
【００３６】
第一ＯＳ起動情報領域２０に記録された状態値が「起動開始確認」を示す状態値に書き換えられたことを検出すると（ステップＳ２のＹＥＳ）、第一ＯＳ５０は、自状態記録手段５００により第一ＯＳ起動情報領域２０に「チェックポイント１」を示す状態値を記録し（ステップＳ３）、第一ＯＳ５０における各種設定値を初期化する処理（以下、「ＯＳ初期化処理」とする。）を開始させる（ステップＳ４）。
【００３７】
一方、第一ＯＳ起動情報領域２０に記録された状態値が「起動開始確認」を示す状態値に書き換えられないまま（ステップＳ２のＮＯ）、第一ＯＳ起動情報領域２０の参照回数が所定回数を上回ると（ステップＳ５のＹＥＳ）、第一ＯＳ５０は、他状態記録手段５０１により不揮発性メモリ３の第二ＯＳ障害情報領域３１における障害発生回数領域３１０に記録された障害発生回数の値をインクリメントし（ステップＳ６）、かつ、不揮発性メモリ３の第二ＯＳ障害情報領域３１における障害内容領域３１１に障害の内容として「起動確認障害」を表す値を記録（ステップＳ７）した後、ＯＳ初期化処理を開始させる（ステップＳ４）。
【００３８】
なお、第一ＯＳ５０は、第二ＯＳ障害情報領域３１における障害内容領域３１１に障害発生時刻、第一ＯＳ５０の状態値、その他の各種設定値等を記録するようにしてもよい。後のデバッグに利用するためである。
【００３９】
また、第一ＯＳ５０は、第二ＯＳ５１に制御信号を送信し、第一ＯＳ５０が記録した第二ＯＳ５１の障害内容に対処するよう第二ＯＳ５１に障害対応処理を実行させるようにしてもよい。
【００４０】
ここで、「障害対応処理」とは、相手ＯＳで発生した障害を相手ＯＳに除去させるための処理であり、例えば、発生した障害の回数やその障害の内容に応じて相手ＯＳをリセットさせたり、再起動させたり、相手ＯＳを縮退させたり（ＯＳの一部の機能を制限し、他の一部の機能を動作させることをいい、例えば、相手ＯＳを動作させる複数のプロセッサコアのうちの一部のコアを停止させたりする。）する処理がある。
【００４１】
その後、第一ＯＳ５０は、自状態記録手段５００により第一ＯＳ起動情報領域２０に「チェックポイント２」を示す状態値を記録し（ステップＳ８）、ＯＳ初期化処理が完了したことを確認（ステップＳ９）した後、自状態記録手段５００により第一ＯＳ起動情報領域２０に「起動完了」を示す状態値を記録して（ステップＳ１０）、起動状態監視処理を終了させる。
【００４２】
また、第二ＯＳ５１による第一ＯＳ５０の起動状態監視処理は、上述した第一ＯＳ５０による第二ＯＳ５１の起動状態監視処理と同様に、上述した第一ＯＳ５０による第二ＯＳ５１の起動状態監視処理に平行かつ独立して第二ＯＳ５１上で実行される。
【００４３】
次に、図４を参照しながら、他状態記録処理について説明する。なお、図４は、他状態記録処理の流れを示すフローチャートであり、第一ＯＳ５０は、自状態記録手段５００により第一ＯＳ起動情報領域２０に第一ＯＳ５０自身の状態値を記録する度に、他状態記録処理を実行するものとする。
【００４４】
最初に、第一ＯＳ５０は、他状態記録手段５０１により揮発性メモリ２における第二ＯＳ起動情報領域２１を参照し、第二ＯＳ５１の状態値が「起動開始」を示す状態値となっているか否かを判定する（ステップＳ２０）。
【００４５】
第二ＯＳ５１の状態値が「起動開始」となっている場合（ステップＳ２０のＹＥＳ）、第一ＯＳ５０は、第二ＯＳ起動情報領域２１の状態値を「起動開始確認」を示す状態値に書き換える（ステップＳ２１）。
【００４６】
なお、第二ＯＳ５１の状態値が「起動開始」となっていない場合（ステップＳ２０のＮＯ）、第一ＯＳ５０は、第二ＯＳ起動情報領域２１の状態値をそのまま維持させるようにして他状態記録処理を終了させる。
【００４７】
また、第二ＯＳ５１による第一ＯＳ５０の他状態記録処理は、上述した第一ＯＳ５０による第二ＯＳ５１の他状態記録処理と同様に、上述した第一ＯＳ５０による第二ＯＳ５１の他状態記録処理に平行かつ独立して第二ＯＳ５１上で実行される。
【００４８】
次に、図５を参照しながら、コンピュータシステム１００上で動作する第一ＯＳ５０及び第二ＯＳ５１が相互に相手ＯＳの障害状態を監視する処理（以下、「他状態監視処理」とする。）について説明する。なお、図５は、他状態監視処理の流れを示すフローチャートであり、各ＯＳは、自身の起動処理を完了させた後、この他状態監視処理を繰り返し実行するものとする。
【００４９】
最初に、第一ＯＳ５０は、他状態監視手段５０２により揮発性メモリ２における第二ＯＳ起動情報領域２１を参照し、第二ＯＳ５１の状態値が「起動完了」を示す状態値となっているか否かを判定する（ステップＳ３０）。
【００５０】
第二ＯＳ５１の状態値が「起動完了」となっている場合（ステップＳ３０のＹＥＳ）、第一ＯＳ５０は、不揮発性メモリ３における第二ＯＳ障害情報領域３１に記録された第二ＯＳ５１の障害に関する情報（障害発生回数及び障害内容）を消去して（ステップＳ３１）、他状態監視処理を終了させる。
【００５１】
第一ＯＳ５０は、第二ＯＳ５１の起動途中に第二ＯＳ５１において障害が発生したことを検知していた場合であっても、第二ＯＳ５１が最終的に起動処理を完了させたことを検知できたからである。
【００５２】
なお、第一ＯＳ５０は、第二ＯＳ５１の状態値が「起動完了」となった場合であっても、他状態記録手段５０１により第二ＯＳ障害情報領域３１に記録された内容を消去することなく、第二ＯＳ障害情報領域３１にその内容を保持させるようにしてもよい。後のデバッグ等に利用できるようにするためである。
【００５３】
なお、第二ＯＳ５１の状態値が「起動完了」となっていない場合（ステップＳ３０のＮＯ）、第一ＯＳ５０は、ステップＳ３０の判定回数をインクリメントした後、その判定回数が所定回数未満であるとき（ステップＳ３２のＮＯ）には、一旦、他状態監視処理を終了させる。
【００５４】
一方、その判定回数が所定回数を上回るときには（ステップＳ３２のＹＥＳ）、第一ＯＳ５０は、他状態監視手段５０２により不揮発性メモリ３の第二ＯＳ障害情報領域３１における障害発生回数領域３１０に記録された障害発生回数の値をインクリメントし（ステップＳ３３）、かつ、不揮発性メモリ３の第二ＯＳ障害情報領域３１における障害内容領域３１１に、第二ＯＳ起動情報領域２１に記録された状態値を障害内容として記録する（ステップＳ３４）。
【００５５】
その後、第一ＯＳ５０は、第二ＯＳ５１に制御信号を送信し、第一ＯＳ５０が記録した第二ＯＳ５１の障害内容に対処するよう第二ＯＳ５１に障害対応処理を実行させるようにして、他状態監視処理を終了させる。
【００５６】
次に、図６を参照しながら、各ＯＳ起動情報領域に記録される状態値の遷移例について説明する。なお、図６は、第一ＯＳ起動情報領域２０に記録される状態値の遷移の一例を示す図である。また、この場合、「監視側」は、監視側ＯＳである第二ＯＳ５１を意味し、「被監視側」は、被監視側ＯＳである第一ＯＳ５０を意味する。
【００５７】
第一ＯＳ起動情報領域２０の状態は、状態値が不定値となっている初期状態Ｐ１、「起動開始」が設定された状態Ｐ２、「起動開始確認」が設定された状態Ｐ３、「チェックポイント１」が設定された状態Ｐ４、「チェックポイント２」が設定された状態Ｐ５、「起動完了」が設定された状態Ｐ６、及び、各種障害状態を示す値が設定された状態Ｐ７を有する。
【００５８】
状態Ｐ１は、コンピュータシステム１００の電源がオンされた後、又は、状態Ｐ４〜Ｐ７において監視側により被監視側の再起動が実行された後の状態であり、例えば、第一ＣＰＵ１０が初期化された後、又は、第二ＯＳ５１が第一ＯＳ５０を再起動させた後の状態である。
【００５９】
なお、監視側は、コンピュータシステム１００全体を再起動させる必要がある場合にのみ、状態Ｐ６にある被監視側（第一ＯＳ５０）の再起動を実行させる。被監視側（第一ＯＳ５０）は、正常に起動処理を完了させているからである。
【００６０】
状態Ｐ２は、状態Ｐ１において被監視側が自身の起動処理を開始させた後の状態であり、例えば、第一ＯＳ５０が自身の起動処理を開始させた状態であって、被監視側である第一ＯＳ５０により状態値の書き換えが実行される。
【００６１】
状態Ｐ３は、被監視側が状態Ｐ２にあることを監視側が確認した後の状態であり、例えば、第一ＯＳ５０が第一ＯＳ５０自身の起動処理を開始させたことを第二ＯＳ５１が確認した後の状態であって、監視側である第二ＯＳ５１により状態値の書き換えが実行される。
【００６２】
状態Ｐ４は、被監視側が状態Ｐ３にあることを被監視側自身が確認した後の状態であり、例えば、第一ＯＳ５０が第一ＯＳ５０自身の起動処理を開始させたことを第二ＯＳ５１が確認し、第一ＯＳ５０がその第二ＯＳ５１による確認をさらに確認した後の状態であって、被監視側である第一ＯＳ５０により状態値の書き換えが実行される。
【００６３】
なお、被監視側は、自身が状態Ｐ２から状態Ｐ３に移行せず所定期間にわたって状態Ｐ２に留まった場合、強制的に状態Ｐ２を状態Ｐ４に移行させ、被監視側のＯＳ初期化処理を開始するようにする。監視側の障害によって被監視側が状態Ｐ３に停滞してしまうのを防止するためである。この場合、被監視側は、監視側に障害が発生した旨を監視側ＯＳの障害情報領域に記録する。
【００６４】
これにより、コンピュータシステム１００は、起動速度が異なる複数のＯＳを同時期に起動させる場合、起動速度の遅いＯＳが起動するまで起動速度の速いＯＳの起動を待機させることなく、複数のＯＳに各ＯＳの起動状態を相互監視させながら、起動速度の速いＯＳから順番に複数のＯＳを迅速に起動させることができる。
【００６５】
状態Ｐ５は、被監視側が被監視側自身のＯＳ初期化処理を開始した状態であり、例えば、第一ＯＳ５０が第一ＯＳ５０自身のＯＳ初期化処理を開始した状態であって、被監視側である第一ＯＳ５０により状態値の書き換えが実行される。
【００６６】
状態Ｐ６は、被監視側が被監視側自身のＯＳ初期化処理を完了した後の状態であり、例えば、第一ＯＳ５０が第一ＯＳ５０自身のＯＳ初期化処理を完了した後の状態であって、被監視側である第一ＯＳ５０により状態値の書き換えが実行される。
【００６７】
状態Ｐ７は、状態Ｐ４又は状態Ｐ５において被監視側が自身の障害を検知した後の状態であり、例えば、第一ＯＳ５０が第一ＯＳ５０自身の障害を検知した場合であって、被監視側である第一ＯＳ５０により状態値の書き換えが実行される。
【００６８】
以上の構成により、コンピュータシステム１００は、プロセッサ障害、ハードウェア障害、又は、ソフトウェア障害等により搭載するＯＳに障害が発生した場合であっても、その障害を早期に検知して障害対応処理を実行させることができるので、その障害によってシステム全体の信頼性が損なわれるのを防止することができる。
【００６９】
また、コンピュータシステム１００は、各ＯＳの起動状態を詳細に記録するので、各ＯＳで発生した障害の障害発生段階を特定することができる。
【００７０】
また、コンピュータシステム１００は、各ＯＳの障害情報を不揮発性メモリ３に記録するので、コンピュータシステム１００に対する電力供給が途切れた場合であっても各ＯＳの障害情報を確実に保持することができる。
【００７１】
また、コンピュータシステム１００は、マルチコアを採用することにより、一部のコアで異常が発生した場合であっても他の正常なコアで処理を継続させることができ、各ＯＳを正常動作させる確率を高めることで障害情報の記録がより確実に行われ、障害発生原因の早期発見を実現させることができる。
【００７２】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
【００７３】
例えば、上述の実施例において、コンピュータシステム１００は、各ＯＳの起動状態を相互に監視させるが、省電力モード移行状態や通常モード移行状態等、各ＯＳにおける起動状態以外の稼働状態を相互に監視させるようにしてもよい。
【００７４】
また、上述の実施例において、コンピュータシステム１００は、第一ＯＳ５０が自状態記録手段５００により自身の状態値を第一ＯＳ起動情報領域２０に記録する度に、他状態記録処理を実行するが、第一ＯＳ５０が所定の状態値を記録した場合に限り、他状態記録処理を実行するようにしてもよく、所定周期で他状態記録処理を実行するようにしてもよい。他状態記録処理の実行タイミングに柔軟性を持たせるためである。
【００７５】
また、上述の実施例において、コンピュータシステム１００は、二つのＯＳで相互に起動状態を監視させるが、例えば、三つのＯＳを独立して起動させるコンピュータシステムにおいて、第一のＯＳに第二及び第三のＯＳの起動状態を監視させ、第二及び第三のＯＳの双方又は何れか一方に第一のＯＳの起動状態を監視させるようにしてもよい。
【００７６】
また、本発明に係る障害監視システムは、四つ以上のＯＳを起動させるコンピュータシステムにおいても同様に、監視側ＯＳと被監視側ＯＳの組み合わせを柔軟に設定することができる。
【図面の簡単な説明】
【００７７】
【図１】障害監視システムを備えたコンピュータシステムの構成例を示す図である。
【図２】各種メモリの構成例を示す図である。
【図３】起動状態監視処理の流れを示すフローチャートである。
【図４】他状態記録処理の流れを示すフローチャートである。
【図５】他状態監視処理の流れを示すフローチャートである。
【図６】ＯＳ起動情報領域に記録される状態値の遷移の一例を示す図である。
【符号の説明】
【００７８】
１      マルチコアプロセッサ
２      揮発性メモリ
３      不揮発性メモリ
４      システムバス
１０〜１３  ＣＰＵ
２０、２１  ＯＳ起動情報領域
３０、３１  ＯＳ障害情報領域
５０、５１  オペレーティングシステム
３００、３１０  障害発生回数領域
３０１、３１１  障害内容領域
５００、５１０  自状態記録手段
５０１、５１１  他状態記録手段
５０２、５１２  他状態監視手段
Ｐ１〜Ｐ７  ＯＳ起動情報の状態
【図１】
2008186173.tif 000003
【図２】
2008186173.tif 000004
【図３】
2008186173.tif 000005
【図４】
2008186173.tif 000006
【図５】
2008186173.tif 000007
【図６】
2008186173.tif 000008