JP5365273B2 - 情報処理システム、監視方法及び監視プログラム - Google Patents

情報処理システム、監視方法及び監視プログラム Download PDF

Info

Publication number
JP5365273B2
JP5365273B2 JP2009057633A JP2009057633A JP5365273B2 JP 5365273 B2 JP5365273 B2 JP 5365273B2 JP 2009057633 A JP2009057633 A JP 2009057633A JP 2009057633 A JP2009057633 A JP 2009057633A JP 5365273 B2 JP5365273 B2 JP 5365273B2
Authority
JP
Japan
Prior art keywords
execution
monitoring
processes
dependency
section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009057633A
Other languages
English (en)
Other versions
JP2010211574A (ja
Inventor
剛 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009057633A priority Critical patent/JP5365273B2/ja
Publication of JP2010211574A publication Critical patent/JP2010211574A/ja
Application granted granted Critical
Publication of JP5365273B2 publication Critical patent/JP5365273B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理システム、監視方法及び監視プログラムに関する。
様々な情報処理システムにおいて、正常に動作することが求められている。特に、車載組み込みシステムでは、誤動作が人命に関わるため、高信頼性、高堅牢性や高い動作予測性等が要求されている。このような要求を満たすためには、システムが正常動作しているかどうかを監視する必要がある。
特許文献1には、情報処理システムが正常に稼働しているときの監視データの相関関係と、最新の監視データとを比較することにより、情報処理システムに現在発生している障害を検知し、情報処理システムに異常が発生したときの監視データの相関関係と、最近得られた監視データの相関関係との類似性から情報処理システムに将来発生する可能性のある障害を予測する技術が開示されている。
しかし、特許文献1に開示の技術は、マルチCPU(Central Processing Unit)システムに関するものではない。
また、特許文献2には、第一のプロセスが第二のプロセスを呼び出す処理を実際にした際に収集した情報と、第二のプロセスが第一のプロセスから呼び出され処理を開始した際に収集した情報とから第一のプロセスと第二のプロセスの連動状態を解析することにより、分散システムで各ノード上のプロセスが協調して処理を進める場合の全体の動作を解析することが可能となる技術が開示されている。
さらに、特許文献3には、各タスク内のジョブ毎の手続き間の実行順序制約と手続き間の依存関係から求めたジョブ間の実行順序制約を各タスク毎に持たせ、タスク毎にこの実行順序制約を基に実行制御させることにより、複数のジョブの同時実行時にも逐次的にジョブを実行した場合と同一の結果を効率よくかつ確実に得ることができる技術が開示されている。
さらにまた、特許文献4には、並列プログラムを利用したリアルタイムシステムにおいて並列プログラムの実行中に時間計測ルーチンによって得られた時刻情報と判定条件を基に実行時間を計算して時間制約条件を検証するように構成することにより、要求仕様として設定された時間制約条件をみたしているかを正確にかつ効率よく検証することができる技術が開示されている。
しかし、特許文献2乃至4に開示の技術は、いずれもシステムの監視に関するものではない。
特開2005−327261号公報 特開平07−152704号公報 特開平09−114693号公報 特開平11−242614号公報
システムが正常動作しているかどうかを監視する方法として、システムの正常動作時におけるシステムの動作に関するトレースデータを採取し、採取したトレースデータに基づいて、正常動作時のプロセスの実行状況を解析し、解析した情報を用いて、運用時のシステムの動作を監視する方法が考えられる。
このような方法において、トレースデータを採取する場合に、基板にトレースデータ採取用のインタフェースを実装し、このインタフェースを介して、外部機器にトレースデータを抽出し、抽出したトレースデータをシステムの外部において、解析する方法が考えられるが、コスト及びセキュリティの観点から実際に運用するシステムに適用することは好ましくない。
また、今後マルチCPU化によるCPU数の増加が進むにつれて、採取する情報量は増加し、そのトレースデータを外部に抽出するためのインタフェースには膨大な帯域が要求されることとなる。そのため、上述の方法では、実現が困難になることが考えられる。
他方、システムの正常動作時におけるOS(Operating System)におけるプロセスのスケジューリング状況に基づいて高精度な解析を行い、かつ、解析から監視までの処理が全て自動化された監視方法は提案されていない。
以上に説明したように、車載組み込みシステムにおいては、システムが正常動作しているかどうかを監視する必要があるという問題がある。
本発明の目的は、上述のような問題を解決するためになされたものであり、システムが正常動作しているかどうかを監視することができる情報処理システム、監視方法及び監視プログラムを提供することにある。
本発明にかかる情報処理システムは、複数のプロセスを実行する第1のCPUと、前記第1のCPUによって実行される複数のプロセスを監視する第2のCPUとを備えた情報処理システムであって、前記第2のCPUにおいて動作し、前記複数のプロセスの実行状況に基づいて、前記複数のプロセスの相互間の依存関係を抽出する解析部と、前記第2のCPUにおいて動作し、前記解析部によって抽出された依存関係に基づいて、前記複数のプロセスの動作の異常を検出する監視部とを備えたものである。
本発明にかかる監視方法は、第1のCPUによって実行される複数のプロセスを第2のCPUから監視する監視方法であって、前記複数のプロセスの実行状況に基づいて、前記複数のプロセスの相互間の依存関係を抽出するステップと、前記複数のプロセスを監視する場合に、前記依存関係に基づいて、前記複数のプロセスの動作の異常を検出するステップとを備えたものである。
本発明にかかる監視プログラムは、第1のCPUによって実行される複数のプロセスを第2のCPUから監視する監視方法であって、前記複数のプロセスの実行状況に基づいて、前記複数のプロセスの相互間の依存関係を抽出するステップと、前記複数のプロセスを監視する場合に、前記依存関係に基づいて、前記複数のプロセスの動作の異常を検出するステップとを前記第2のCPUに実行させるものである。
本発明により、システムが正常動作しているかどうかを監視することができる情報処理システム、監視方法及び監視プログラムを提供することができる。
本発明の実施の形態にかかる解析監視システムの概要を示す概念図である。 本発明の実施の形態にかかる解析監視システムの構成図である。 本発明の実施の形態にかかる解析監視システムの解析フェーズにおいて動作する要素を示す概念図である。 本発明の実施の形態にかかる解析監視システムの監視フェーズにおいて動作する要素を示す概念図である。 本発明の実施の形態にかかる解析フェーズにおける処理概要を示す図である。 本発明の実施の形態にかかる一時依存木データの生成処理のフローチャートである。 本発明の実施の形態にかかる依存木データの一例を示す図である。 本発明の実施の形態にかかる依存木データの生成処理のフローチャートである。 本発明の実施の形態にかかる監視フェーズにおける処理概要を示す図である。 本発明の実施の形態にかかる監視フェーズにおける処理概要を示す図である。 本発明の実施の形態にかかる監視フェーズにおける処理概要を示す図である。 本発明の実施の形態にかかる監視フェーズにおける処理概要を示す図である。 本発明の実施の形態にかかる監視フェーズにおける処理概要を示す図である。 本発明の実施の形態にかかる監視処理のフローチャートである。
以下、図面を参照して本発明の実施の形態について説明する。
まず、図1を参照して、本実施の形態にかかる解析監視システムの概要について説明する。図1は、本実施の形態にかかる解析監視システムの概要を示す概念図である。
解析監視システムは、プロセス70、71、72を実行するCPU80、解析部60及び監視部61を動作させるCPU81を備える。
解析部60は、プロセス70、71、72の実行状況に基づいて、プロセス70、71、72の相互間の依存関係を抽出する。
監視部61は、プロセス70、71、72を監視する場合に、解析部60が抽出した依存関係に基づいて、プロセス70、71、72の動作の異常を検出する。
プロセス70、71、72は、任意のプログラムを動作させたものであり、所定の処理を実行する。なお、プロセス数は、本実施の形態に例示した数に限られない。
CPU80、81は、それぞれがシングルコアCPUであってもよく、マルチコアCPUに含まれるCPUコアであってもよい。なお、CPU数は、本実施の形態に例示した数に限られない。
続いて、本実施の形態にかかる解析監視システムの処理の概要について説明する。
まず、解析部60は、プロセス70、71、72の実行状況に基づいて、プロセス70、71、72の相互間の依存関係を抽出する。
次に、監視部61は、プロセス70、71、72を監視する場合に、解析部60が抽出した依存関係を取得し、取得した依存関係に基づいて、プロセス70、71、72の動作の異常を検出する。
続いて、図2、3、4を参照して、本実施の形態にかかる解析監視システムについて詳細に説明する。図2は、本実施の形態にかかる解析監視システムの構成図であり、図3、4は、本実施の形態にかかる解析監視システムの概念図である。
解析監視システムは、図1に示すように、スケジューリング実行部1、実行依存検知部2、依存データ整形部3、監視実行部4、一時依存木データ5及び依存木データ6を有している。また、解析監視システムは、図2及び3に示すように、スケジューリング実行部1を動作させるCPU40、41、42、実行依存検知部2と依存データ整形部3を動作させるCPU43、監視実行部4を動作させるCPU44及び一時依存木データ5と依存木データ6を格納するDRAM(Dynamic Random Access Memory)50を備える。なお、CPU40、41、42は、複数の任意のプロセスを動作させるが、それらのプロセスについては図示を省略している。また、それらのプロセスは、スケジューリング実行部1に含まれる。なお、実行依存検知部2と依存データ整形部3を動作させるCPU43と、監視実行部4を動作させるCPU44は、同一のCPUであってもよい。
スケジューリング実行部1は、複数のプロセスのスケジューリングを行うとともに、これらのプロセスを実行する。スケジューリング実行部1は、スケジューリングによって、実行可能状態となったプロセスのリストである実行キュー(図示せず)の制御を行う。スケジューリング実行部1は、例えば、OSのスケジューラにより構成される。
実行依存検知部2は、複数のプロセスの実行状況に基づいて、複数のプロセスの相互間の依存関係を抽出する。また、実行依存検知部2は、抽出した依存関係を示す一時依存木データ5を生成し、生成した一時依存木データ5をDRAM50に格納する。
依存データ整形部3は、DRAM50に格納される一時依存木データ5を取得し、取得した一時依存木データ5を整形して依存木データ6を生成する。そして、依存データ整形部3は、生成した依存木データ6をDRAM50に格納する。実行依存検知部2及び依存データ整形部3は、解析部として機能する。
監視実行部4は、DRAM50に格納される依存木データ6に基づいて、複数のプロセスの動作の異常を検出する。監視実行部4は、監視部として機能する。
実行依存検知部2、依存データ整形部3及び監視実行部4は、例えば、OSにおける機能の一部として実装する。
CPU40、41、42、43、44は、それぞれがシングルコアCPUであってもよく、マルチコアCPUに含まれるCPUコアであってもよい。なお、CPU数は、本実施の形態に例示した数に限られない。
DRAM50は、実行依存検知部2又は実行依存検知部2において行われる処理に影響しない速度で、一時依存木データ5もしくは依存木データ6の格納もしくは取得が行える記憶装置であればどのようなものであってもよい。DRAM50は、記憶部に相当する。
本実施の形態にかかる解析監視システムは、その動作が2段階のフェーズに分かれる。2段階のフェーズは、システムの正常動作を解析して依存木データ6を生成する解析フェーズと、生成した依存木データ6に基づいてシステムを監視し、異常動作を検出する監視フェーズに分かれる。図3、4を参照して、本実施の形態にかかる各フェーズの概要について説明する。
解析フェーズでは、図3に示すように、実行依存検知部2は、スケジューリング実行部1における割り込みの発生、プロセスの生成、実行キューの出入り及びプロセスが実行する処理の実行時間を監視し、各プロセスの相互間の依存関係を示す一時依存木データ5を生成する。
依存データ整形部3は、依存木データ6を管理しており、実行依存検知部2が生成する一時依存木データ5を取得し、取得した一時依存木データ5から依存木データ6を生成するとともに、同様の依存木データ6が重複することのないようにDRAM50に格納する。なお、依存データ整形部3は、高い応答性で動作する必要がある実行依存検知部2の処理の合間に動作するように、実行依存検知部2よりも実行優先度を低く設定することが好ましい。
このように解析フェーズでは、プロセスを実行するCPU40、41、42とは異なるCPU43によって動作させている実行依存検知部2が正常動作時の各プロセスのスケジューリング状況を監視することにより、正常動作時における各プロセスの相互間の依存関係を示す依存木データ6を生成している。
また、DRAM50には、実行依存検知部2から依存データ整形部3への依存木データ5の受け渡すためのFIFO(First In First Out)バッファを用意することにより、DRAM50の容量が許す限り依存データ整形部3における動作の遅延が可能である。さらに、実行依存検知部2と依存データ整形部3は、並行動作が可能であるため、CPU43を複数にして、実行依存検知部2と依存データ整形部3を別々のCPUによって並行動作させることにより、高速化が可能である。
監視フェーズでは、図4に示すように、監視実行部4がスケジューリング実行部1における割り込みの発生、実行キューの出入り及びプロセスの処理の実行時間を監視することにより、解析フェーズにおいて生成した依存木データ6と一致する動作が行われているかどうかを判断する。そして、監視実行部4は、依存木データ6に登録されていないタイミングでのプロセスの起床や実行時間の遅延を検出することで異常を検出する。
このように、監視フェーズでは、言い換えると、運用動作時では、正常動作時の依存木データ6に基づいて、スケジューリング実行部1の動作を監視実行部4が監視することにより、異常動作を検出する。
続いて、図3、5〜8を参照して、本実施の形態にかかる解析フェーズの詳細について説明する。図3に示すように、解析フェーズの目的は、スケジューリング実行部1における動作を監視および解析し、解析により生成した一時依存木データ5を整形することにより、監視フェーズにおいて利用可能な依存木データ6を生成することである。この一連の処理概要を図5に示す。
まず、実行依存検知部2における処理について説明する。
図5(a)は、スケジューリング実行部1において実行するプロセスの処理の一例を示す図である。ここで、スケジューリング実行部1において実行する各プロセスの起床から休止までの処理を1つのセクション90、91、92、93、94とする。図5(a)における各プロセスは、各セクション90、91、92、93、94における"起床"のタイミングで実行可能状態となり、実行キューに登録される。また、各セクション90、91、92、93、94における"実行開始"以降から"休止"までの区間は、プロセスに実行権が付与され、各セクションにおいてプロセスが処理を実行する区間を示す。
まず、実行依存検知部2は、実行キューを監視し、スケジューリング実行1において割り込みが発生し、発生した割り込みに応じて、起床させられたプロセスAの実行キューへの登録を検出する。それにより、実行依存検知部2は、セクション90を検出する。
次に、実行依存検知部2は、同様に実行キューを監視することで、セクション90の実行中に実行が開始されたセクション91、92を検出する。この場合、実行依存検知部2は、検出したセクション91、92は、実行中のセクション90に依存する、つまり、検出したセクション91、92は、実行中のセクション90と相互に依存関係があると判断する。その理由は、このような場合、一般的に、プロセスAのセクション90における処理、例えば、ロックの解除やプロセス間のメッセージ送信などの処理をトリガとして、セクション91、92が実行されているためである。そして、実行依存検知部2は、セクション90とセクション91、92との相互間に依存関係を示す枝を張ることにより、図5(b)に示すような一時依存木データ5を生成していく。
ここで、本実施の形態では、プロセスを実行するCPU40、41、42が複数あるため、セクション90以外にも実行中のセクションがある可能性があるが、その場合は、ロックの解除やプロセス間のメッセージ送信を行ったプロセス(ここでは、プロセスA)をOSが認識しているため、それに基づいて判断を行うことで依存するセクションの特定が可能である。
以降、同様にして、依存関係が検出されなくなるまでの全てのセクション90、91、92、93、94が実行されると、図5(b)に示すような1つの一時依存木データ5が生成される。
そして、実行依存検知部2は、生成した一時依存木データ5を依存データ整形部3に渡すため、DRAM50のFIFOバッファに格納する。
続いて、図6を参照して、以上に説明した一時依存木データ5の生成処理の詳細について説明する。図6は、本実施の形態にかかる一時依存木データ5の生成処理のフローチャートである。なお、図6では、S10〜S14は、スケジューリング実行部1における処理を示しており、S100〜S106は、実行依存検知部2における処理を示している。
まず、スケジューリング実行部1は、実行可能状態となったプロセスを実行キューに登録する(S10)。
実行依存検知部2は、実行キューを監視して、実行可能状態に移行したプロセスの実行キューへの登録を検出する。これにより、実行が開始されたセクションを検出し、検出したセクションを先頭として登録した作成中依存木を作成する(S100)。ここで、作成中依存木とは、依存木に登録されている各セクションの実行が完了していない木である。また、セクションの実行の完了は、そのセクションが対象としているプロセスが実行キューから除去されたときに完了と判断する。
次に、スケジューリング実行部1は、実行キューに登録された実行可能状態のプロセスに実行権を付与してプロセスを実行し、現在実行中のセクションにおける処理を実行する(S11)。
次に、実行依存検知部2は、プロセスの実行中にスケジューリング実行部1が新たなプロセスを実行可能状態に移行させて実行キューに登録した場合(S12)、その登録要因を判断する(S101)。
新たなプロセスの登録要因が起動要因である場合、実行依存検知部2は、この実行キューの登録において検出したセクションを先頭として登録した作成中依存木を作成する(S103)。ここで、起動要因とは、依存関係によって1つに繋げることのできる新たな一連のセクションの実行が開始されたと判断するプロセスの登録要因である。本実施の形態では、例えば、外部割り込みやプロセス生成システムコール等を起動要因とする。つまり、ステップS10における実行キューの登録も起動要因によるものとなる。
一方、新たなプロセスの登録要因が起動要因以外である場合、実行依存検知部2は、現在実行中のセクションにおける処理に応じたプロセスの起床であると判断し、実行中のセクションに依存関係を持たせて検出したセクションを作成中依存木に登録する(S102)。つまり、実行依存検知部2は、検出したセクションは、現在実行中のセクションと依存関係があると判断している。
次に、実行依存検知部2は、スケジューリング実行部1が現在実行中のプロセスの実行を終了した場合(S13)、それによって実行が完了したセクションの実行時間を登録する(S104)。ここで、実行時間とは、セクションにおける処理の実行時間である。なお、実行時間は、これに限られず、例えば、セクションの実行時間を登録するようにしてもよい。
次に、実行依存検知部2は、この段階で作成中依存木に登録されている全てのセクションの実行が完了しているか、つまり、実行が完了したセクションに依存するセクションが作成中依存木に登録されており、それに対応するプロセスが実行キューに登録されているかどうかを判断する(S105)。
全てのセクションの実行が完了している場合、実行依存検知部2は、その依存中依存木の作成は完了したものと判断し、一時依存木データ5として、依存データ整形部3に渡すために、DRAM50のFIFOバッファに格納する(S106)。
全てのセクションの実行が完了していない場合は、スケジューリング実行部1は、実行キューに登録されている次のプロセスを実行する(S14、S11)。
続いて、依存データ整形部3における処理について説明する。
依存データ整形部3は、図5(b)に例示するような一時依存木データ5に基づいて、図5(c)に例示するような監視フェーズで使用する依存木データ6を生成する。ここで、依存データ整形部3が実施する処理は、時分割スケジューリング方式による分断されたセクションの統合、ループ処理の検出および既存の依存木データ6との重複登録の回避である。
依存データ整形部3が生成する依存木データ6は、図7に例示するように、起動要因と、それに応じて依存関係を有しながら実行される一連のセクションとを示す情報からなる。言い換えると、一連のセクションとは、依存関係によって1つに繋げることのできるセクションの集まりである。1つのセクションを示す1項目は、プロセス毎に一意に決まるプロセスID及びセクション毎に一意に決まるセクション番号を含んだセクションID、依存先セクションID、実行開始プログラムカウンタ値および実行時間を含み、これらが実行キューに登録された順番に並んでいる。つまり、実行依存検知部2は、これらの情報を含めて、一時依存木データ5を生成している。ここで、実行開始プログラムカウンタ値は、プロセスがそのセクションにおける処理を開始するプログラムカウンタ値であり、ループ処理の検出、依存木データ6の重複検出に使用される。
続いて、図8を参照して、以上に説明した依存木データ6の生成処理の詳細について説明する。図8は、本実施の形態にかかる依存木データ6の生成処理のフローチャートである。
まず、依存データ整形部3は、一時依存木データ5を記録したFIFOバッファから一時依存木データ5を1つ取得する(S200)。
次に、依存データ整形部3は、一時依存木データ5に依存先セクションIDが同じセクションIDを示す2つ以上のセクションがある場合は、それらを1つのセクションにする(S201、S202)。時分割スケジューリング方式のように所定の時間によりプロセスの実行権が切り替えられている場合、本質的には1つのセクションとなるべきものが、一時依存木データ5では分割されてしまうことがある。このような場合、依存先セクションIDが同じとなる2つ以上のセクションが一時依存木データ5にできてしまうため、それらのセクションを1つに結合する。つまり、実行依存検知部2では、時分割スケジューリングの切り替えによる実行キューの登録を検出した場合、実行中のプロセスと同じプロセスが実行キューに登録された場合は、新たに作成中依存木に追加するセクションの依存先セクションとして、実行中のセクションの依存先セクションと同じセクションを格納していることとなる。なお、結合により生成するセクションの実行開始プログラムカウンタ値には、結合する2つ以上のセクションのうち、一時依存木データ5において最も先頭のセクションにおける値を使用し、実行時間には、結合する2つ以上のセクションの実行時間を加算した値を使用する。
次に、依存データ整形部3は、ループ処理を検出する(S203)。ここでは、依存データ整形部3は、各セクションの実行開始プログラムカウンタ値を実行キューに登録された順番に並べたときに、同様の数列が繰り返される部分を1つのループ処理にまとめる。図7における"外部割込みA"を起動要因として、セクション"プロセスB−1"から始まる依存木データ6に、その一例が示されている。ここでは、セクション"プロセスB−2""プロセスA−1"における処理がループすることを示している。なお、セクションに代わり、ループを示している情報には、ループ回数などのループに関する情報を格納してもよい。
次に、依存データ整形部3は、DRAM50に格納している依存木データ6に同様の依存木データ6があるかどうかを検索する(S204、S205)。
同様の依存木データ6がある場合、具体的には、各セクションの実行開始プログラムカウンタ値が同じ、つまり、同じ依存木の形状であり、各セクションの実行時間が近く、その差が所定の閾値内に収まる依存木データ6がある場合、依存データ整形部3は、これら2つの依存木データ6を統合し、1つの依存木データ6としてDRAM50に格納する(S206)。このとき、各セクションの実行時間は、それぞれの平均値を算出して、算出した平均値を実行時間として格納する。
同じ依存木データ6がない場合、依存データ整形部3は、生成した依存木データ6をDRAM50に格納する。
このようにして、依存データ整形部3が、セクションの統合、ループ処理の検出および既存の依存木データ6との重複登録の回避を行うことにより、DRAM50に格納するデータ量を削減することができる。
なお、依存木データ6は、上述のように動的に解析したものだけでなく、ユーザが作成して直接DRAM50に登録するようにしてもよい。
続いて、図4、7、9〜14を参照して、本実施の形態にかかる監視フェーズの詳細について説明する。図4に示すように、監視フェーズの目的は、スケジューリング実行部1における動作と、依存木データ6に示す正常動作とを比較することにより異常を検出することである。監視フェーズでは、起動要因及び実行されるセクションに応じて、解析フェーズで生成した依存木データ6からスケジューリング実行部1における動作に適合する依存木データ6を選択していく。そして、1つも適合する依存木データ6がないことを検出した場合に異常と判断する。その監視の一連の処理概要を図9〜13に示す。なお、ここでは、図7に例示した依存木データ6がDRAM50に格納されている場合について例示する。
まず、図9では、外部割込みAが起動要因として発生した状況を示している。依存木データ6は起動要因毎にまとめてDRAM50に格納されており、監視実行部4は、実行する可能性のあるセクションが格納された監視対象依存木リストとして、外部割込みAを起動要因として示している依存木データ6を選択する。ここで、監視対象依存木リストとは、依存木データ6のうち、その時点において、これから実行される一連のセクションが適合する可能性のある依存木データ6のことである。
次に、図10では、起動要因によりプロセスAが実行キューに登録され、セクション"プロセスA−1"の実行が開始された状況を示している。そのため、監視実行部4は、監視対象依存木リストのうち、最初にプロセスAによって実行されるセクションを示している監視対象依存木だけを監視対象依存木リストとして残す。
次に、図11では、プロセスAの実行により、プロセスCが起床されて実行キューに登録されるとともに、外部割込みBが起動要因として発生し、それに応じてプロセスDが実行キューに登録された状況を示している。監視実行部4は、外部割込みB及びプロセスDに応じた新たな監視対象依存木リストを選択する。このように、監視実行部4は、起動要因である外部割込みBによって新たな監視対象が発生した場合、それに応じた新たな監視対象既存木リストを生成する。また、監視実行部4は、プロセスがどちらの監視対象依存木リストに関係しているかを明確にするために、実行キューに登録されたプロセスをいずれかの監視対象依存木リストと対応付ける。
ここで、起動要因以外によって実行キューに登録されたプロセスが対応付けられる監視対象依存木リストは、そのプロセスが実行キューに登録されたときに現在実行中のプロセスが対応付けられている監視対象依存木リストである。このときに、実行キューに登録されたプロセスは、現在実行中のセクションに依存するセクションの実行開始に伴って、実行キューに登録されていることになるからである。なお、複数のプロセスが並行して実行されている場合は、既に述べたように、実行キューに登録されたプロセスを起床したプロセスをOSが認識しているため、それに基づいてプロセスの特定が可能である。
一方、起動要因により、依存木データ6の先頭となるセクションの実行が開始され、プロセスが実行キューに登録された場合は、現在実行中のプロセスとは関係なく、その起動要因によって生成された監視対象依存木リストに対応付けられる。
次に、正常動作が行われた場合には、現在実行中のセクション"プロセスA−1"に依存するセクション"プロセスC−1"における処理を実行するプロセスCが次に実行キューに登録されるプロセスとなる。図11では、プロセスCが実行キューに登録されているため、監視実行部4は、正常動作であると判断する。
次に、図12では、スケジューリング実行部1においてプロセスCの実行が開始された状態を示している。監視実行部4は、先に実行していたセクション"プロセスA−1"の次のセクションがプロセスCを示している監視対象依存木のみを監視対象依存木リストとして残す。また、実行完了したセクションも監視対象から除外する。正常動作時には、このまま全てのセクションを除外するまで進む。
一方、監視実行部4は、図13に示すように、監視対象依存木リストにないプロセスの実行キューへの登録や、監視対象依存木リストに登録されている実行時間と比較して、プロセスによるセクションにおける処理の実行時間が長い場合、異常として検出する。なお、監視実行部4は、異常を検出した場合に、監視対象依存木リストや実行キューに登録された監視対象依存木リストにないプロセス等の異常に関する情報を、例えば、メモリもしくはHDD(Hard Disc Drive)等の任意の記憶装置(図示せず)や、例えば、CRT(Cathode Ray Tube)、プラズマディスプレイ、液晶ディスプレイ等の任意の表示装置(図示せず)に出力するようにしてもよい。
続いて、図14を参照して、以上に説明した監視処理の詳細について説明する。図14は、本実施の形態にかかる監視処理のフローチャートである。なお、図14では、S30〜S34は、スケジューリング実行部1における処理を示しており、S300〜S306は、実行依存検知部2における処理を示している。
まず、スケジューリング実行部1は、起動要因が発生すると、それに応じて実行可能状態となったプロセスを実行キューに登録する(S30)。
監視実行部4は、起動要因に応じてプロセスが実行キューに登録された場合、監視対象依存木リストを生成する(S300)。このとき、監視実行部4は、起動要因と、それに応じて実行キューに登録されるプロセスが判明しているため、それらに適合する依存木データ6を選択して、監視対象依存木リストを生成する。
次に、スケジューリング実行部1は、実行キューに登録された実行可能状態のプロセスに実行権を付与してプロセスを実行し、セクションにおける処理を実行する(S31)。
次に、監視実行部4は、プロセスの実行中にスケジューリング実行部1が新たなプロセスを実行可能状態に移行させて実行キューに登録した場合(S32)、その登録要因を判断する(S301)。
新たなプロセスの登録要因が起動要因である場合、監視実行部4は、新たなプロセスと、その起動要因に適合する依存木データ6を選択し、監視対象依存木リストを作成する(S302)。
一方、新たなプロセスの登録要因が起動要因以外である場合、監視実行部4は、実行中のプロセスと対応付けられている監視対象依存木リストを検索し、監視対象依存木リスト内に、現在実行中のセクションに依存関係のあるセクションが示しているプロセスと、新たなプロセスとが一致する監視対象依存木があるかどうかを判断する(S303)。
一致するものがあった場合、もしくは、現在実行中のプロセスと実行キューに登録されたプロセスが同じ場合、つまり、時分割スケジューリングによる切り替えが行われた場合、監視実行部4は、正常と判断する。
一致するものがない場合、監視実行部4は、異常が発生したと判断する。
ここで、さらに監視対象依存木の実行開始プログラムカウンタ値と、プロセスの実行によって行われるセクションにおける処理の実行開始プログラムカウンタ値とが一致するかどうかも判断することにより、高い精度で異常を検出するようにしてもよい。
また、監視実行部4は、現在実行中のプロセスの実行時間が、監視対象依存木リストに残っている監視対象依存木の現在実行中のセクションに対応する実行時間のうち、最も長いものを超えた場合にも異常が発生したと判断する(S304)。ここで、最も長いものとしている理由は、監視対象依存木が複数残っている場合は、それぞれの監視対象依存木に現在実行中のセクションに対応する実行時間があるためである。なお、実行時間は、監視対象依存木の実行時間と、現在実行中のプロセスの実行時間との差が所定の閾値を超えた場合に異常が発生したと判断するようにしてもよい。
次に、スケジューリング実行部1が現在実行中のプロセスの実行を終了した場合(S33)、監視実行部4は、そのプロセスに対応付けられている監視対象依存木リストが一つだけの依存木になっており、かつ、その全てのセクションが実行されているかどうかを判断する(S305)。なお、プロセスの実行を終了したことは、実行キューからプロセスが除かれた状態を検出することにより、判断することができる。
監視対象依存木リストが一つだけの依存木になっており、かつ、その全てのセクションが実行されている場合、監視実行部4は、その一連のセクションの実行を正常に終了したと判断する。
それ以外の場合は、監視実行部4は、スケジューリング実行部1が実行キューに登録されている次のプロセスを実行した場合に(S34)、監視対象依存木リストから、そのプロセスに適合しない監視対象依存木を削除し(S306)、処理を継続する。
以上に説明したように、本実施の形態によれば、複数のプロセスの実行状況に基づいて、複数のプロセスの相互間の依存関係を抽出して、抽出した依存関係に基づいて、複数のプロセスの動作の異常を検出することにより、システムが正常動作しているかどうかを監視することを可能としている。
さらに、本実施の形態によれば、外部機器や外部とのインタフェース等を必要とせず、運用時の環境のままで、システムの監視を行うことが可能である。また、これにより、外部機器や外部インタフェースを実装することによる、コストの増加やセキュリティ上の問題も発生することがなくなる。
さらにまた、本実施の形態によれば、システムの解析を行って監視用データを自動生成し、自動生成した監視用データを用いてシステムの監視を行うことにより、システムの解析からその監視までを全て自動化して行うことが可能である。
また、本実施の形態によれば、異常発生時には、監視実行部が出力した情報を参照することにより、直前までの一連のシステムの動作を把握することが可能である。
さらに、本実施の形態によれば、プロセスのスケジューリング状況に基づいて、解析及び監視を行っているため、高精度な監視を行うことが可能となる。
なお、本発明は上述した実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、本実施の形態では、プロセスの起床から休止までの処理であるセクションの相互間の依存関係を抽出しているが、プロセスに関する依存関係であれば、これに限られない。例えば、セクションにおいてプロセスが実行する処理について、相互間の依存関係を管理するようにしてもよい。
以上に説明した本発明にかかる解析監視システムは、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をシステムもしくは装置に供給し、システムあるいは装置の有するコンピュータ又はCPU、MPU(Micro Processing Unit)がこのプログラムを実行することによって、構成することが可能である。
また、このプログラムは様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、BD(Blu-ray Disc)、ROM(Read Only Memory)カートリッジ、バッテリバックアップ付きRAM(Random Access Memory)メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジを含む。また、通信媒体には、電話回線の有線通信媒体、マイクロ波回線の無線通信媒体を含み、インターネットも含まれる。
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているOSもしくはアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
1 スケジューリング実行部
2 実行依存検知部
3 依存データ整形部
4 監視実行部
5 一時依存木データ
6 依存木データ
40、41、42、43、44、80、81 CPU
50 DRAM
60 解析部
61 監視部
70、71、72 プロセス

Claims (9)

  1. 複数のプロセスを実行する第1のCPUと、前記第1のCPUによって実行される複数のプロセスを監視する第2のCPUとを備えた情報処理システムであって、
    前記第2のCPUにおいて動作し、前記複数のプロセスのスケジューリング状況に基づいて、前記複数のプロセスの起床から休止までの処理であるセクションの相互間の依存関係として、任意のセクションの実行に応じて実行されるセクションを抽出する解析部と、
    前記第2のCPUにおいて動作し、前記解析部によって抽出された依存関係に基づいて、前記解析部が抽出した任意のセクションの実行に応じて実行されるセクションと、前記任意のセクションの実行に応じて実行されるセクションとが一致するかどうかを比較することにより、前記複数のプロセスの動作の異常を検出する監視部とを備えた情報処理システム。
  2. 前記解析部は、さらに前記セクションにおいてプロセスが実行する処理の実行時間を抽出し、
    前記監視部は、さらに前記実行時間も一致するかどうかを比較することにより、前記異常を検出する請求項に記載の情報処理システム。
  3. 前記情報処理システムは、さらに前記解析部による抽出内容を格納する記憶部を備え、
    前記解析部は、前記依存関係によって1つに繋げることのできる一連のセクションのそれぞれに関連付けて前記抽出内容を依存関係情報として前記記憶部に格納し、
    前記監視部は、前記記憶部に格納された依存関係情報に基づいて、前記比較を行う請求項又はに記載の情報処理システム。
  4. 前記解析部は、前記記憶部に同様の依存関係情報を2つ含まないように格納する請求項に記載の情報処理システム。
  5. 前記解析部は、前記一連のセクションのうち、時分割スケジューリング方式によって分割されたセクションを1つのセクションにまとめた依存関係情報を格納する請求項又はに記載の情報処理システム。
  6. 前記解析部は、さらに前記セクションにおいてプロセスが実行する処理の実行開始プログラムカウンタ値を抽出し、前記一連のセクションのうち、同じ実行開始プログラムカウンタ値の変化が繰り返されるセクションを1つにまとめた依存関係情報を格納する請求項乃至のいずれか1項に記載の情報処理システム。
  7. 前記監視部は、さらに前記実行開始プログラムカウンタ値も一致するかどうかを比較することにより、前記異常を検出する請求項に記載の情報処理システム。
  8. 第1のCPUによって実行される複数のプロセスを第2のCPUから監視する監視方法であって、
    前記複数のプロセスのスケジューリング状況に基づいて、前記複数のプロセスの起床から休止までの処理であるセクションの相互間の依存関係として、任意のセクションの実行に応じて実行されるセクションを抽出するステップと、
    前記複数のプロセスを監視する場合に、前記依存関係に基づいて、前記抽出した任意のセクションの実行に応じて実行されるセクションと、前記任意のセクションの実行に応じて実行されるセクションとが一致するかどうかを比較することにより、前記複数のプロセスの動作の異常を検出するステップとを備えた監視方法。
  9. 第1のCPUによって実行される複数のプロセスを第2のCPUから監視するための監視プログラムであって、
    前記複数のプロセスのスケジューリング状況に基づいて、前記複数のプロセスの起床から休止までの処理であるセクションの相互間の依存関係として、任意のセクションの実行に応じて実行されるセクションを抽出するステップと、
    前記複数のプロセスを監視する場合に、前記依存関係に基づいて、前記抽出した任意のセクションの実行に応じて実行されるセクションと、前記任意のセクションの実行に応じて実行されるセクションとが一致するかどうかを比較することにより、前記複数のプロセスの動作の異常を検出するステップとを前記第2のCPUに実行させる監視プログラム。
JP2009057633A 2009-03-11 2009-03-11 情報処理システム、監視方法及び監視プログラム Expired - Fee Related JP5365273B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009057633A JP5365273B2 (ja) 2009-03-11 2009-03-11 情報処理システム、監視方法及び監視プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009057633A JP5365273B2 (ja) 2009-03-11 2009-03-11 情報処理システム、監視方法及び監視プログラム

Publications (2)

Publication Number Publication Date
JP2010211574A JP2010211574A (ja) 2010-09-24
JP5365273B2 true JP5365273B2 (ja) 2013-12-11

Family

ID=42971647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009057633A Expired - Fee Related JP5365273B2 (ja) 2009-03-11 2009-03-11 情報処理システム、監視方法及び監視プログラム

Country Status (1)

Country Link
JP (1) JP5365273B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228440A (zh) * 2016-12-13 2018-06-29 比亚迪股份有限公司 Cpu程序指针的检测方法和装置
US11932269B2 (en) 2020-05-28 2024-03-19 Mitsubishi Electric Corporation Control system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6390208B2 (ja) * 2014-06-27 2018-09-19 富士通株式会社 監視対象プログラムの選択方法、監視対象選択プログラム及び監視対象選択装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250186A (ja) * 1992-03-05 1993-09-28 Toshiba Corp タスク生成スケジューリング方式
JPH064318A (ja) * 1992-06-19 1994-01-14 Matsushita Electric Works Ltd エラー検出方式
JP4376587B2 (ja) * 2003-10-21 2009-12-02 株式会社エヌ・ティ・ティ・データ アクセス履歴記録装置及びアクセス制御装置
JP4562568B2 (ja) * 2005-03-28 2010-10-13 富士通テン株式会社 異常検出プログラムおよび異常検出方法
JP2008191878A (ja) * 2007-02-02 2008-08-21 Ricoh Co Ltd 遠隔診断・障害対応システム、遠隔診断・障害対応装置、遠隔診断・障害対応指示装置、遠隔診断・障害対応方法、及び遠隔診断・障害対応プログラム
JP2009048358A (ja) * 2007-08-17 2009-03-05 Nec Corp 情報処理装置及びスケジューリング方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228440A (zh) * 2016-12-13 2018-06-29 比亚迪股份有限公司 Cpu程序指针的检测方法和装置
US11932269B2 (en) 2020-05-28 2024-03-19 Mitsubishi Electric Corporation Control system

Also Published As

Publication number Publication date
JP2010211574A (ja) 2010-09-24

Similar Documents

Publication Publication Date Title
JP6669156B2 (ja) アプリケーション自動制御システム、アプリケーション自動制御方法およびプログラム
US8516499B2 (en) Assistance in performing action responsive to detected event
JP6260130B2 (ja) ジョブ遅延検知方法、情報処理装置、およびプログラム
EP2613285A1 (en) Complex event processing apparatus and complex event processing method
JP6064734B2 (ja) ワークフロー制御プログラム、装置および方法
JP4562568B2 (ja) 異常検出プログラムおよび異常検出方法
JP6037320B2 (ja) プログラム、コンピュータ可読記録媒体、コンピューティングデバイスのアクション候補を予測する目的でコンピュータにより実施される方法、及び、アプリケーションのアクティビティを予測する装置
JP5102823B2 (ja) 総テスト時間を最小にするようにテストシナリオを最適化するテスト支援装置、テスト装置、テスト支援方法及びコンピュータプログラム
JPWO2009104344A1 (ja) Itシステムの挙動測定・解析システム、およびその方法
JP2007323193A (ja) 性能負荷異常検出システム、性能負荷異常検出方法、及びプログラム
JP2007334716A (ja) 運用管理システム、監視装置、被監視装置、運用管理方法及びプログラム
JP2008310748A (ja) タスク実行時間記録装置、タスク実行時間記録方法、及びタスク実行時間記録用プログラム
US8732525B2 (en) User-coordinated resource recovery
JP5623557B2 (ja) 診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム
JP5365273B2 (ja) 情報処理システム、監視方法及び監視プログラム
JP4992740B2 (ja) マルチプロセッサシステム、障害検出方法および障害検出プログラム
JP5495310B2 (ja) 情報処理装置、障害解析方法及び障害解析プログラム
JP6880961B2 (ja) 情報処理装置、およびログ記録方法
JP6375200B2 (ja) 計算機システムの異常予兆検出装置および方法
US10241884B2 (en) Information processing apparatus and method for collecting performance data
JP7263206B2 (ja) 情報処理システム、情報処理システムの制御方法、情報処理装置、及びプログラム
JP4627275B2 (ja) 監視プログラム、監視方法、および、監視装置
JP2008204013A (ja) スレッド動作異常検知方法、マルチスレッドシステム
JP2008204011A (ja) マルチスレッドシステム、スレッド動作異常検知方法
JP2011179996A (ja) システム診断装置、システム診断方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130725

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130826

R150 Certificate of patent or registration of utility model

Ref document number: 5365273

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees