(57)【要約】【課題】効率的に対処する可能なプロセス監視機能を有する情報処理装置を提供する。【解決手段】取得部１０６は稼動状態記憶部１０５から、稼動中の機能とその状態とを取得する。機能状態記憶部１０４には、機能を構成するプロセス間の関係、および状態ごとのプロセスの正常稼動時の状態値が記憶されている。プロセス状態共有メモリ１０３にはプロセスごとに現在の状態が書き込まれる。抽出部１０７において抽出された、現在の稼動中の機能の状態におけるプロセスの正常稼動時の状態値、および当該機能を構成するプロセスの現在の状態に基づいて、異常検出部１０８は稼動中の機能の現在の状態での、プロセスの異常を検出する。再起動処理部１０９は、当該機能を構成するプロセス間の関係と、異常が検出されたプロセスとに基づいて、再起動させるプロセスの範囲を特定し、再起動のための処理を行なう。【選択図】図２
2010165036.tif 000002
【特許請求の範囲】
【請求項１】
機能を構成するプロセス間の関係を示す情報を記憶する第１の記憶手段と、
前記機能の状態ごとに、各プロセスの正常に稼動している際の状態を示す値である状態値を正常状態値として記憶する第２の記憶手段と、
稼動中の機能と前記稼動中の機能の状態とを特定する第１の特定手段と、
前記第１の記憶手段に記憶されている前記情報に基づいて、前記稼動中の機能を構成するプロセスを特定し、前記プロセスの状態を示す状態値を取得する取得手段と、
前記稼動中の機能を構成するプロセスの状態値と、前記プロセスについての前記第２の記憶手段に記憶されている前記稼動中の機能の状態に応じた前記正常状態値とを比較することで、前記稼動中の機能を構成するプロセスの中から異常を検出する検出手段と、
前記第１の記憶手段に記憶されている前記機能を構成するプロセス間の関係と、前記検出手段で異常が検出されたプロセスとに基づいて、再起動させるプロセスの範囲を特定する第２の特定手段と、
前記第２の特定手段で特定された範囲に含まれるプロセスを再起動させるための処理を行なう再起動処理手段とを備える、プロセス監視機能を有する情報処理装置。
【請求項２】
プロセスごとに、当該プロセスの状態値を記憶する第３の記憶手段をさらに備え、
前記取得手段は、前記第３の記憶手段から前記稼動中の機能を構成するプロセスについての前記状態値を抽出する、請求項１に記載のプロセス監視機能を有する情報処理装置。
【請求項３】
稼動中の機能を示す情報と前記稼動中の機能の状態とを示す情報とを記憶する第４の記憶手段をさらに備え、
前記第１の特定手段は、前記第４の記憶手段から前記情報を取得する、請求項１または２に記載のプロセス監視機能を有する情報処理装置。
【請求項４】
前記第１の記憶手段に記憶されている前記情報は、機能を構成するプロセスの上位・下位関係を示す情報であり、
前記第２の特定手段は、前記稼動中の機能を構成するプロセスの上位・下位関係において、少なくとも、前記検出手段で異常が検出されたプロセスに連結された、前記プロセス以下のプロセスの範囲を前記再起動させる範囲と特定する、請求項１〜３のいずれかに記載のプロセス監視機能を有する情報処理装置。
【請求項５】
前記第２の特定手段は、前記再起動処理手段での再起動後の前記検出手段での検出手段に応じて前記再起動させる範囲を変更する、請求項１〜４のいずれかに記載のプロセス監視機能を有する情報処理装置。
【請求項６】
プロセス監視機能を有する情報処理装置におけるプロセス監視方法であって、
前記情報処理装置は、
機能を構成するプロセス間の関係を示す情報を記憶する第１の記憶手段と、
前記機能の状態ごとに、各プロセスの正常に稼動している際の状態を示す値である状態値を正常状態値として記憶する第２の記憶手段とを含み、
稼動中の機能と前記稼動中の機能の状態とを特定するステップと、
前記第１の記憶手段に記憶されている前記情報に基づいて、前記稼動中の機能を構成するプロセスを特定し、前記プロセスの状態を示す状態値を取得するステップと、
前記稼動中の機能を構成するプロセスの状態値と、前記プロセスについての前記第２の記憶手段に記憶されている前記稼動中の機能の状態に応じた前記正常状態値とを比較することで、前記稼動中の機能を構成するプロセスの中から異常を検出するステップと、
前記第１の記憶手段に記憶されている前記機能を構成するプロセス間の関係と、前記検出するステップで異常が検出されたプロセスとに基づいて、再起動させるプロセスの範囲を特定するステップと、
前記特定された範囲に含まれるプロセスを再起動させるための処理を行なうステップとを備える、プロセス監視方法。
【請求項７】
コンピュータにプロセス監視処理を実行させるためのプログラムであって、
前記コンピュータは、
機能を構成するプロセス間の関係を示す情報を記憶する第１の記憶手段と、
前記機能の状態ごとに、各プロセスの正常に稼動している際の状態を示す値である状態値を正常状態値として記憶する第２の記憶手段とを含み、
稼動中の機能と前記稼動中の機能の状態とを特定するステップと、
前記第１の記憶手段に記憶されている前記情報に基づいて、前記稼動中の機能を構成するプロセスを特定し、前記プロセスの状態を示す状態値を取得するステップと、
前記稼動中の機能を構成するプロセスの状態値と、前記プロセスについての前記第２の記憶手段に記憶されている前記稼動中の機能の状態に応じた前記正常状態値とを比較することで、前記稼動中の機能を構成するプロセスの中から異常を検出するステップと、
前記第１の記憶手段に記憶されている前記機能を構成するプロセス間の関係と、前記検出するステップで異常が検出されたプロセスとに基づいて、再起動させるプロセスの範囲を特定するステップと、
前記特定された範囲に含まれるプロセスを再起動させるための処理を行なうステップとを実行させる、プロセス監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はプロセス監視機能を有する情報処理装置、プロセス監視方法、およびプロセス監視プログラムに関し、特に、マルチタスクオペレーションシステムのプロセス監視を行なうプロセス監視機能を有する情報処理装置、プロセス監視方法、およびプロセス監視プログラムに関する。
【背景技術】
【０００２】
従来、マルチタスクオペレーティングシステムにおいて、プロセス監視の方法、および異常検出の方法の提案が各種行なわれている。その方法として、具体的には、（１）ウォッチドッグタイマを用いる方法、（２）被監視プロセスに問合せを行ない、応答がない場合や想定した稼働状態と異なる場合に異常と判定する方法、（３）プロセス停止回数が基準値以上になった場合に異常と判定する方法、（４）ＣＰＵ（Central Processing Unit）の高負荷状態を検出し、その原因となっているプロセスを異常と判定する方法、（５）被監視プロセスに定期的にシステムコールをさせ、コールが検出されない場合に異常と判定する方法、などが挙げられる。たとえば、特開２００１−５６７７２号公報（以下、特許文献１）は、上記（２）の方法でプロセス異常を検出し、異常と検出されたプロセスを再起動させる技術を開示している。
【０００３】
しかし、役割の異なるプロセスが混在した場合、その異常判定方法を一元化することは困難であり、精度のよい異常判定は難しい。また、被監視プロセスが正常動作している場合でも、複数プロセスから構成される機能では矛盾した（異常な）状態の場合の検出ができない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−５６７７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、マルチタスクオペレーティングシステムにおいては役割の異なるプロセスが混在する場合があるのに対して、特許文献１に開示されているように、異常検出方法は一元化されている。そのため、特許文献１に開示されているような従来の方法では、役割の異なるプロセスに適用するのが困難であり、精度よく異常を検出できない場合がある、という問題があった。
【０００６】
また、複数のプロセスから構成されている１つの機能について、特許文献１に開示されているような従来の方法では、プロセスごとの異常の検出は可能であっても、機能全体としての異常の検出を行なうものではない。そのため、各プロセスは正常に動作していると検出された場合であっても、機能全体として矛盾が生じ、異常が発生している場合にはその判定がなされない、という問題があった。
【０００７】
さらに、従来の方法では、異常が検出された場合、正常なプロセスが含まれている場合であっても、異常が検出されたプロセス、またはシステム全体のどちらかの再起動がなされてしまい、非効率である、という問題があった。
【０００８】
本発明はこのような問題に鑑みてなされたものであって、役割の異なる複数のプロセスが混在している場合に、精度よく異常を検出し、効率的に対処することが可能なプロセス監視機能を有する情報処理装置、プロセス監視方法、およびプロセス監視プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のある局面に従うと、情報処理装置はプロセス監視機能を有し、機能を構成するプロセス間の関係を示す情報を記憶する第１の記憶手段と、機能の状態ごとに、各プロセスの正常に稼動している際の状態を示す値である状態値を正常状態値として記憶する第２の記憶手段と、稼動中の機能と稼動中の機能の状態とを特定する第１の特定手段と、第１の記憶手段に記憶されている情報に基づいて、稼動中の機能を構成するプロセスを特定し、そのプロセスの状態を示す状態値を取得する取得手段と、稼動中の機能を構成するプロセスの状態値と、そのプロセスについての第２の記憶手段に記憶されている稼動中の機能の状態に応じた正常状態値とを比較することで、稼動中の機能を構成するプロセスの中から異常を検出する検出手段と、第１の記憶手段に記憶されている機能を構成するプロセス間の関係と、検出手段で異常が検出されたプロセスとに基づいて、再起動させるプロセスの範囲を特定する第２の特定手段と、第２の特定手段で特定された範囲に含まれるプロセスを再起動させるための処理を行なう再起動処理手段とを備える。
【００１０】
好ましくは、情報処理装置は、プロセスごとに、当該プロセスの状態値を記憶する第３の記憶手段をさらに備え、取得手段は、第３の記憶手段から稼動中の機能を構成するプロセスについての状態値を抽出する。
【００１１】
好ましくは、情報処理装置は、稼動中の機能を示す情報と稼動中の機能の状態とを示す情報とを記憶する第４の記憶手段をさらに備え、第１の特定手段は、第４の記憶手段から情報を取得する。
【００１２】
好ましくは、第１の記憶手段に記憶されている情報は、機能を構成するプロセスの上位・下位関係を示す情報であり、第２の特定手段は、稼動中の機能を構成するプロセスの上位・下位関係において、少なくとも、検出手段で異常が検出されたプロセスに連結された、プロセス以下のプロセスの範囲を再起動させる範囲と特定する。
【００１３】
好ましくは、第２の特定手段は、再起動処理手段での再起動後の検出手段での検出手段に応じて再起動させる範囲を変更する。
【００１４】
本発明の他の局面に従うと、プロセス監視方法はプロセス監視機能を有する情報処理装置におけるプロセス監視方法であって、情報処理装置は、機能を構成するプロセス間の関係を示す情報を記憶する第１の記憶手段と、機能の状態ごとに、各プロセスの正常に稼動している際の状態を示す値である状態値を正常状態値として記憶する第２の記憶手段とを含み、稼動中の機能と稼動中の機能の状態とを特定するステップと、第１の記憶手段に記憶されている情報に基づいて、稼動中の機能を構成するプロセスを特定し、プロセスの状態を示す状態値を取得するステップと、稼動中の機能を構成するプロセスの状態値と、そのプロセスについての第２の記憶手段に記憶されている稼動中の機能の状態に応じた正常状態値とを比較することで、稼動中の機能を構成するプロセスの中から異常を検出するステップと、第１の記憶手段に記憶されている機能を構成するプロセス間の関係と、検出するステップで異常が検出されたプロセスとに基づいて、再起動させるプロセスの範囲を特定するステップと、特定された範囲に含まれるプロセスを再起動させるための処理を行なうステップとを備える。
【００１５】
本発明のさらに他の局面に従うと、プロセス監視プログラムはコンピュータにプロセス監視処理を実行させるためのプログラムであって、コンピュータは、機能を構成するプロセス間の関係を示す情報を記憶する第１の記憶手段と、機能の状態ごとに、各プロセスの正常に稼動している際の状態を示す値である状態値を正常状態値として記憶する第２の記憶手段とを含み、稼動中の機能と稼動中の機能の状態とを特定するステップと、第１の記憶手段に記憶されている情報に基づいて、稼動中の機能を構成するプロセスを特定し、そのプロセスの状態を示す状態値を取得するステップと、稼動中の機能を構成するプロセスの状態値と、プロセスについての第２の記憶手段に記憶されている稼動中の機能の状態に応じた正常状態値とを比較することで、稼動中の機能を構成するプロセスの中から異常を検出するステップと、第１の記憶手段に記憶されている機能を構成するプロセス間の関係と、検出するステップで異常が検出されたプロセスとに基づいて、再起動させるプロセスの範囲を特定するステップと、特定された範囲に含まれるプロセスを再起動させるための処理を行なうステップとを実行させる。
【発明の効果】
【００１６】
本発明によると、役割の異なる複数のプロセスが存在する場合であっても、精度よく異常状態を検出することができる。さらに、異常の生じているプロセスを検出した場合、必要最小限のプロセスのみの再起動を行なうため、システム全体に与える影響を最小限にすることができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態にかかるＨＧＷ（ホームゲートウェイ）を含んだプロセス監視システムの構成の具体例を示す図である。
【図２】実施の形態にかかるＨＧＷでのプロセス監視機能の構成の具体例を示すブロック図である。
【図３】実施の形態にかかるＨＧＷで記憶している、機能を構成するプロセス間の関係、および機能の状態ごとの正常な稼動時のプロセスの状態値の具体例を示す図である。
【図４】実施の形態にかかるＨＧＷで記憶している、機能を構成するプロセス間の関係、および機能の状態ごとの正常な稼動時のプロセスの状態値の具体例を示す図である。
【図５】実施の形態にかかるＨＧＷで実行される、プロセス監視処理の流れの具体例を示すフローチャートである。
【図６】異常が検出されたプロセスと、再起動させるプロセスとの関係の具体的を示す図である。
【発明を実施するための形態】
【００１８】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。
【００１９】
以下の実施の形態においては、プロセス監視機能を有する情報処理装置をホームゲートウェイ（以下、ＨＧＷ）としている。しかしながら、プロセス監視機能を有する情報処理装置は当該装置に限定されない。プロセス監視機能を有する情報処理装置は、ＨＧＷの他、一般的なコンピュータや携帯電話機などであってもよい。
【００２０】
図１は、実施の形態にかかるＨＧＷ１００を含んだプロセス監視システム（以下、システム）の構成の具体例を示す図である。図１を参照して、システムにおいて、ＨＧＷ１００は、デジタルテレビジョンや、アナログ電話機や、ＩＰ（Internet Protocol）電話機などの家庭内の電子機器３００Ａ，３００Ｂ，３００Ｃ…に接続されている。ＨＧＷ１００は、インターネットを通じて他の装置からこれら電子機器３００Ａ，３００Ｂ，３００Ｃ…に送信されるパケットを中継し、またこれら電子機器３００Ａ，３００Ｂ，３００Ｃ…からインターネットを通じて他の装置に送信されるパケットを中継するための処理を行なう。
【００２１】
図２は、ＨＧＷ１００でのプロセス監視機能の構成の具体例を示すブロック図である。図２に示される各機能は、ＨＧＷ１００に含まれる図示しないＣＰＵがＲＯＭなどの記憶部に記憶されているプログラムを読み出して実行することで、主にＣＰＵに形成される機能であるが、少なくとも一部がハードウェア構成で実現されてもよい。
【００２２】
図２を参照して、ＨＧＷ１００は、ＣＰＵがアプリケーションを実行することで形成される動作システムとしてのＯＳ（Operating System）１０１と監視対象となる複数のプロセス１０２とを備える。プロセス監視機能は、プロセス状態共有メモリ１０３と、機能状態記憶部１０４と、稼動状態記憶部１０５と、取得部１０６と、抽出部１０７と、異常検出部１０８と、再起動処理部１０９とを含む。
【００２３】
プロセス１０２は、各機能を実現するためのアプリケーションを構成する各種プロセスが該当する。機能としては、ＨＧＷ１００に接続されている電子機器３００Ａ，３００Ｂ，３００Ｃ…の各々を動作させるための機能が該当する。具体的には、電子機器３００Ｂがアナログ電話機である場合、アナログ電話機である電子機器３００Ｂを動作させるための機能を構成するプロセスには、アナログ電話機を起動させる、つまりＳＩＰ（Session Initiation Protocol）でセッションを開始するプロセス、アナログの電話回線を用いて音声データの授受を行なうプロセス、およびアナログ電話機での通話を終了させるプロセスが含まれる。
【００２４】
各機能には、１以上の状態が存在する。具体的には、電子機器３００Ｂがアナログ電話機である場合、電子機器３００Ｂを動作させるための機能には、状態として、アナログ電話機である電子機器３００Ｂを待機中とする状態、およびアナログ電話機である電子機器３００Ｂを通話中とする状態が存在する。各状態は、当該機能に関連するプロセスが、予め規定された状態となることで実現される。プロセスの状態とは、たとえば、当該プロセスの実行のために占有しているＣＰＵの割合や、使用しているメモリ量などで定義される。プロセス状態共有メモリ１０３は、プロセスごとの状態を記憶するためのメモリであって、プロセス１０２が、各々、所定のタイミングで書き込む自身の稼動状態を示す情報を記憶する。以降、プロセスの稼動状態を示す情報、たとえばＣＰＵの占有率や、メモリの使用量などを示す値を「状態値」と称する。プロセス状態共有メモリ１０３に記憶されている各プロセスの状態値は、当該プロセスの現在の状態値と言える。
【００２５】
機能状態記憶部１０４は、予め、図３に示されるように、機能ごとに、構成するプロセスの情報として、当該機能を構成するプロセス間の関係、および当該機能の状態ごとの正常な稼動時のプロセスの稼動状態を示す情報である状態値を記憶している。プロセス間の関係とは、上位・下位関係を指し、具体例としては、図３に、プロセス間の関係がツリー形状で記憶される例が示されている。図３を参照して、機能ごとのプロセスの情報として、当該機能を構成するプロセスごとに、プロセスを特定する情報であるプロセスＩＤ（Process ID）、ＣＰＵの占有率（%CPU）、実メモリの使用量（RSS）、仮想メモリの使用量（VSS）、プロセス直下に位置するプロセスである子プロセスの実メモリの使用量（C_RSS）、および子プロセスの仮想メモリの使用量（C_VSS）などが記憶され、これらが、プロセスの構成に従ってツリー形状で記憶される。
【００２６】
具体的に、これらの情報を記憶する構成として、機能情報記憶部１０４は状態マップ記憶部１０４１および正常稼動状態記憶部１０４２を含む。状態マップ記憶部１０４１および正常稼動状態記憶部１０４２で記憶される情報の具体例が図４に示される。すなわち、図４を参照して、状態マップ記憶部１０４１は、機能を構成するプロセス（Ｐ１〜Ｐ４）とそれらの間の関係とを、たとえばツリー形状で記憶している。以降、状態マップ記憶部１０４１に記憶されている、機能を構成するプロセスとそれらの間の関係とを示す情報を「状態マップ」と称する。正常稼動状態記憶部１０４２は、当該機能に存在する状態ごとに、当該機能を構成する各プロセスについての、正常に稼動している場合の稼動状態値を記憶している。
【００２７】
稼動状態記憶部１０５は、稼動中の機能の情報を記憶する。稼動中の機能の情報は、ＨＧＷ１００のＣＰＵにおいて、アプリケーションが実行される際に、その実行に伴って逐次書き込まれるものであって、稼動中の機能を特定する情報、および当該機能の状態を特定する情報を含む。
【００２８】
取得部１０６は、稼動状態記憶部１０５に記憶されている情報から、現在稼動中の機能を特定する情報および当該機能の状態を特定する情報を取得し、これらを抽出部１０７に入力する。抽出部１０７は、現在稼動中の機能を構成するプロセスの状態マップを状態マップ記憶部１０４１から抽出し、さらに、現在稼動中の機能を構成するプロセスの、現在の状態についての、正常稼動状態記憶部１０４２に記憶されている状態値、つまり、正常稼動時の状態値を抽出し、異常検出部１０８に入力する。また、抽出部１０７は、現在稼動中の機能を構成するプロセスについて、プロセス状態共有メモリ１０３に記憶されている現在の状態値を抽出し、異常検出部１０８に入力する。
【００２９】
ＨＧＷ１００のＣＰＵが基本ソフトウェアであるＯＳを実行することで実現する、ハードウェアを抽象化したインタフェースをアプリケーションに提供する機能を、ここではＯＳ１０１と称する。ＯＳ１０１は、所定のタイミングで、現在ＣＰＵにおいて実行されているアプリケーションにおいて、実行しているプロセスを示す情報をプロセス情報として、異常検出部１０８に入力する。
【００３０】
異常検出部１０８は、抽出部１０７で抽出された現在稼動中の機能を構成するプロセスについての、正常稼動時の状態値をしきい値として用い、現在の状態値をしきい値と比較することで、正常に稼動していないプロセスを検出、つまり異常を検出し、異常状態であるプロセスを検出する。さらに、抽出部１０７で抽出された現在稼動中の機能を構成するプロセスについての状態マップと、ＯＳ１０１からのプロセス情報とを用いて、異常状態であるプロセスの、当該機能を構成するプロセス間の関係中での位置を検出する。検出結果は、再起動処理部１０９に入力される。再起動処理部１０９は、検出結果に基づいて当該機能を構成するプロセスのうち、再起動させるプロセスの範囲を特定し、当該範囲に含まれるプロセスを再起動させるための処理を実行する。
【００３１】
図２に示されたプロセス監視機能の構成では、ＯＳ１０１がプロセス情報を異常検出部１０８に入力するものとしているが、他の例として、ＯＳ１０１が、現在ＣＰＵにおいて実行されているアプリケーションにおいて実行している各プロセスに対して、当該アプリケーションが実現する機能を特定する情報を渡し、各プロセスが自身の状態値と共に、自身が用いられている現在稼動中の機能をプロセス状態共有メモリ１０３に書き込んでもよい。この場合、抽出部１０７は、プロセスごとに、当該プロセスが用いられている現在稼動中の機能をプロセス状態共有メモリ１０３から読取り、現在稼動中の機能を構成するプロセスの状態マップを状態マップ記憶部１０４１から抽出する。
【００３２】
図５は、ＨＧＷ１００で実行される、プロセス監視処理の流れの具体例を示すフローチャートである。図５のフローチャートに示される処理は、ＨＧＷ１００に含まれる図示しないＣＰＵがＲＯＭなどの記憶部に記憶されているプログラムを読み出し、図２に示される各機能を制御することで実現される。図５のフローチャートに示される処理は、所定のタイミング、たとえば、一定の時間間隔や、所定の操作が行なわれたタイミングなどに自動的に実行される。
【００３３】
図５を参照して、取得部１０６において稼動状態記憶部１０５から、現在の稼動中の機能を示す情報が取得される（ステップ（Ｓ）１０１）。抽出部１０７において、Ｓ１０１で取得された、現在の稼動中の機能を構成するプロセスの状態マップ、および当該機能が正常に稼動している状態での各プロセスの状態値が抽出される（Ｓ１０３）。さらに、抽出部１０７において、Ｓ１０１で取得された、現在の稼動中の機能を構成するプロセスの、現在の状態値がプロセス状態共有メモリ１０３から抽出される（Ｓ１０５）。
【００３４】
異常検出部１０８において、ＯＳ１０１から実行中のアプリケーションにおいて実行されているプロセスを示す情報を取得し（Ｓ１０７）、Ｓ１０３〜Ｓ１０７で得られた情報に基づいて、すべてのプロセスが現在稼動している機能として正常に稼動している状態であるか否かを判断することで異常を検出する（Ｓ１０９）。すなわち、異常検出部１０８は、Ｓ１０７で取得されたＣＰＵで実行しているプロセスとＳ１０５で抽出された現在の状態値と比較すること、およびＳ１０３で抽出された現在の稼動中の機能を構成するプロセスの正常稼動状態時の状態値をしきい値として、Ｓ１０５で抽出された現在の状態値と比較することで、現在稼動している機能として正常に稼動していないプロセスを検出する。
【００３５】
再起動処理部１０９は、Ｓ１０９での検出結果より、Ｓ１０３で抽出された状態マップを参照して、稼動中の機能としては正常に稼動していないと検出されたプロセスの、当該機能を構成するプロセス間の関係における位置を特定し、その位置に基づいて再起動させるプロセスの範囲を特定して（Ｓ１１１）、当該範囲に含まれるプロセスを再起動させるための処理を実行する（Ｓ１１３）。たとえば、稼動中の機能を構成するプロセスＰ１、プロセスＰ２、およびプロセスＰ３がその順で連結された構造である場合であって、図６（Ａ）に示されるように、その最下位にあるプロセスＰ３に異常が検出された場合には、Ｓ１０９で再起動処理部１０９は、再起動させるプロセスの範囲として、異常が検出されたプロセスＰ３のみを含む範囲を特定するが、図６（Ｂ）に示されるように、中間に位置するプロセスＰ２に異常が検出された場合には、Ｓ１０９で再起動処理部１０９は、異常が検出されたプロセスＰ２以降の範囲、つまりプロセスＰ２に加えて、それよりも下位に位置し、プロセスＰ２での処理を受けてさらなる処理を行なうプロセスに相当する、プロセスＰ３を含む範囲を、再起動させるプロセスの範囲として特定する。またたとえば、稼動中の機能を構成するプロセスＰ１〜Ｐ６が図６（Ｃ）に表わされたような分岐を含んだツリー形状表わされる関係である場合であって、図６（Ｃ）に示されるように、分岐の一方側の最上位に位置するプロセスＰ４に異常が検出された場合には、Ｓ１０９で再起動処理部１０９は、異常が検出されたプロセスＰ４以降の範囲、つまりプロセスＰ４に加えて、それよりも下位に位置するプロセスＰ５およびプロセスＰ６を含む範囲を再起動させるプロセスの範囲として特定する。
【００３６】
なお、上の処理が行なわれて特定された範囲に含まれるプロセスが再起動された後も、引き続きプロセス監視が続けられる。そのため、プロセスの再起動後も異常が検出された場合には、上記Ｓ１１１で特定された再起動させるプロセスの範囲が適切でない可能性が考えられる。そこで、好ましくは、再起動処理部１０９は学習機能を備えて、プロセスの再起動後も異常が検出された場合には先のＳ１１１で特定された範囲よりも広い範囲、すなわち、さらに上位側のプロセス以降の範囲を再起動させるプロセスの範囲と特定する。
【００３７】
以上の説明のように、ＨＧＷ１００では、機能状態記憶部１０４にて機能の状態ごとに、機能を構成するプロセスの正常に稼動している状態での状態値を記憶し、その状態値をしきい値として用いて、当該機能が稼動している状態での当該機能を構成するプロセスの異常を監視している。１つプロセスが複数の機能に用いられるときには、ある機能稼動時には正常な状態値であっても、他の機能稼動時には異常な状態値である場合、ということも有り得、またその逆もあり得る。具体的には、上述の、アナログ電話機で通話を行なう機能を構成するプロセスのうちのＳＩＰでセッションを開始するプロセス、およびアナログの電話回線を用いて音声データの授受を行なうプロセスに着目すると、両者のプロセスの状態値が正常値であるときには両プロセスとも正常と検出され、当該機能は正常に稼動している。前者のプロセスが待機中を示す状態値でかつ後者のプロセスが稼動中を示す状態値である場合には、いずれも、当該プロセスの状態値が正常である場合には、異常が検出されないが、アナログ電話機で通話を行なう機能の通話中の状態としては矛盾しており、異常が発生している。つまり、このように、機能の状態を考慮しないプロセスとしての正常／異常の判断だけでは、機能として矛盾が生じている場合であっても、各プロセスは正常と判断されて、当該機能の異常が正確に検出されないことも有り得る。
【００３８】
それに対して、ＨＧＷ１００では、機能の状態を考慮してプロセスの正常／異常を判断するため、稼動している機能において当該プロセスが正常であるか異常であるか、を判断することができる。
【００３９】
さらに、ＨＧＷ１００では、機能状態記憶部１０４にて機能を構成するプロセスとそれらの関係とを状態マップとして記憶し、異常が検出されたプロセスの稼動中の機能での他のプロセスとの位置関係に応じて、再起動するプロセスの範囲を特定している。
【００４０】
これらのことにより、ＨＧＷ１００では、正確に異常を検出して機能を適切に稼動させることができると共に、不必要な再起動を抑えて最小限のプロセスのみを再起動することができる。そのため、ＨＧＷ１００ではプロセス異常がシステム全体に与える影響を最小限にすることができ、効率的なシステムの稼動を実現することができる。
【００４１】
さらに、ＨＧＷ１００におけるプロセス監視方法、およびプロセス監視処理をコンピュータに実行させるプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００４２】
なお、本発明にかかるプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【００４３】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【００４４】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【００４５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００４６】
１００  ＨＧＷ、１０１  ＯＳ、１０２  プロセス、１０３  プロセス状態共有メモリ、１０４  機能状態記憶部、１０５  稼動状態記憶部、１０６  取得部、１０７  抽出部、１０８  異常検出部、１０９  再起動処理部、３００Ａ，３００Ｂ，３００Ｃ…  電子機器、１０４１  状態マップ記憶部、１０４２  正常稼動状態記憶部。
【図１】
2010165036.tif 000003
【図２】
2010165036.tif 000004
【図３】
2010165036.tif 000005
【図４】
2010165036.tif 000006
【図５】
2010165036.tif 000007
【図６】
2010165036.tif 000008