(57)【要約】【課題】動作異常が発生したと判断する基準を変更することができる。【解決手段】暴走監視装置１は、複数のプログラムと書き換え可能なデータファイル６とデータを記憶する領域とを有する記憶部３と、プログラムを実行する実行処理部２１およびプロセスのタスク量を測定する測定処理部２２を有する制御部２と、時刻を得るタイマ部４とを備え、同時期に複数のプログラムを実行可能なマルチプロセス機能を有する装置であって、測定処理部２２が測定したプロセス毎のタスク量を記憶部３に記憶させる暴走監視処理部１２と、データファイル６に記録された暴走監視周期値６１の周期で暴走監視処理部１２を機能させる周期実行処理部１１と、データファイル６に記録された暴走閾値６２と、記憶部３に記憶されたタスク量８１とその１周期前のタスク量８２との差分値である判定タスク量とを比較し、動作異常を判定する暴走判定処理部１３とを備える。【選択図】図２
2011141786.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムと書き換え可能なデータファイルとデータを記憶する領域とを有する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部を有する制御部と、時刻を得るタイマ部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するＣＰＵ監視装置であって、
前記測定処理部によって測定された前記プロセス毎のタスク量を前記記憶部に記憶させる暴走監視処理部と、
前記タイマ部から時刻を取得し、前記データファイルに記録された暴走監視周期値の周期で前記暴走監視処理部を機能させる周期実行処理部と、
前記データファイルに記録された暴走閾値と、前記記憶部に記憶されたタスク量とその１周期前のタスク量との差分値である判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理部と、
を備えることを特徴とするＣＰＵ監視装置。
【請求項２】
複数のプログラムと書き換え可能なデータファイルとを記憶する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部とを有する制御部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するＣＰＵ監視装置であって、
前記測定処理部によって測定された前記プロセス毎のタスク量を取得する暴走監視処理部と、
前記データファイルに記録された暴走閾値と、前記暴走監視処理部が取得した判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理部と、
を備えることを特徴とするＣＰＵ監視装置。
【請求項３】
前記暴走判定処理部にて前記判定タスク量が前記暴走閾値を超えたときに、当該ＣＰＵ監視装置を再起動させる中断処理部をさらに備えることを特徴とする請求項１または請求項２に記載されたＣＰＵ監視装置。
【請求項４】
複数のプログラムと書き換え可能なデータファイルとを記憶する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部を有する制御部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するコンピュータを、
前記測定処理部によって測定された前記プロセス毎のタスク量を取得する暴走監視処理手段、
前記データファイルに記録された暴走閾値と、前記暴走監視処理手段が取得した判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理手段、
として機能させることを特徴とするＣＰＵ監視プログラム。
【請求項５】
前記データファイルには暴走監視周期値が記録され、さらに、時刻を得るタイマ部を備えた前記コンピュータを、
前記タイマ部から時刻を取得し、前記暴走監視周期値の周期で前記暴走監視処理手段を機能させることを特徴とする請求項４に記載されたＣＰＵ監視プログラム。
【請求項６】
前記暴走判定処理手段にて前記判定タスク量が前記暴走閾値を超えたときに、前記コンピュータを再起動させる中断処理手段
として機能させることを特徴とする請求項４または請求項５に記載されたＣＰＵ監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ監視装置およびＣＰＵ監視プログラムに関し、特に、ＣＰＵ（Central Processing Unit）を備えるコンピュータにおいて、アプリケーションプログラムを実行中のＣＰＵのタスク量を監視するＣＰＵ監視装置およびＣＰＵ監視プログラムの技術に関する。
【背景技術】
【０００２】
従来、オペレーティングシステム（ＯＳ：Operating System）上で動作するアプリケーションプログラムが無限ループに陥ったり、資源競合の結果、ハングアップしたりするといったプログラムの動作異常を検出する異常検出プログラムが知られている。
【０００３】
ＯＳ内で管理されるプロセスディスクリプタと対応する動作情報（ＣＰＵ上で動作するプロセスの切り替え）をＯＳ側で収集し、ＯＳ上で動作する監視プロセスが、ＣＰＵ上で動作するプロセスの切り替え（以下、「コンテキストスイッチ」と言う）回数の変化を取得する。この取得したコンテキストスイッチ回数の変化と異常種別（無限ループ、ＣＰＵ待ち時間、Ｉ／Ｏ待ち時間）との関係を用いて監視対象アプリの動作異常を検出することが特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２７７１１５号公報（段落〔００４７〕〜〔００４９〕，〔００９０〕〜〔０１０１〕，図２，図９，図１０，図１１）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１における記載の発明の動作異常判定部が行う異常種別であるか否かの判定は、第Ｎ回目に検出した他発的コンテキストスイッチ回数が、直前の第Ｎ−１回目に検出した他発的コンテキストスイッチ回数と比較して変化していないときに、動作異常であると判定している（図９，図１０，図１１）。そのため、第Ｎ−１回目の検出時には、すでに動作異常が発生しており、動作異常が発生したと判定するタイミングが遅いという問題点がある。
また、従来の動作異常判定には、基準値を用いて動作異常が発生したと判断するものがあるが、その基準値は固定されているため、コンピュータが設置されたシステム環境に応じた動作異常判定を行うことができないという問題点がある。
【０００６】
本発明は、以上のような問題を解決するためになされたものであり、動作異常（暴走）が発生したと判断する基準を変更することができるＣＰＵ監視装置およびＣＰＵ監視プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するために、第１の発明は、複数のプログラムと書き換え可能なデータファイルとデータを記憶する領域とを有する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部を有する制御部と、時刻を得るタイマ部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するＣＰＵ監視装置において、前記測定処理部によって測定された前記プロセス毎のタスク量を前記記憶部に記憶させる暴走監視処理部と、前記タイマ部から時刻を取得し、前記データファイルに記録された暴走監視周期値の周期で前記暴走監視処理部を機能させる周期実行処理部と、前記データファイルに記録された暴走閾値と、前記記憶部に記憶されたタスク量とその１周期前のタスク量との差分値である判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理部とを備える構成とした。
【０００８】
また、第２の発明は、複数のプログラムと書き換え可能なデータファイルとを記憶する記憶部と、前記プログラムを実行する実行処理部および前記プログラムを実行中の前記実行処理部が処理するプロセスのタスク量を測定する測定処理部を有する制御部とを備え、同時期に複数の前記プログラムを実行可能なマルチプロセス機能を有するコンピュータを、前記測定処理部によって測定された前記プロセス毎のタスク量を取得する暴走監視処理手段、前記データファイルに記録された暴走閾値と、前記暴走監視処理手段が取得した判定タスク量とを比較し、暴走プロセスを判定する暴走判定処理手段として機能させることを特徴とするＣＰＵ監視プログラムとした。
【発明の効果】
【０００９】
本発明は、以下に示す優れた効果を奏するものである。
第１の発明および第２の発明によれば、プロセス毎のタスク量を測定し、プロセスのタスク量と暴走閾値とを比較し、暴走閾値以上になったタスク量のプロセスが暴走していると判断される。
また、第１の発明および第２の発明によれば、データファイルの暴走閾値を書き換えることができるため、プロセスが暴走していると判断する基準を自由に変更することができる。
すなわち、コンピュータが設置されたシステム環境に必要なＲＡＳＩＳ（Reliability Availability Serviceability Integrity Security）の評価に応じて暴走閾値を書き換えることができ、タスク量が暴走閾値以上になった時点で、すぐに、そのタスク量のプロセスが暴走していると判断することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明で用いられるコンピュータの内部構成を示す図である。
【図２】本発明に係る監視プログラムを、コンピュータ（暴走監視装置）が読み込むことによって、実現される機能ブロックを示す図である。
【図３】本発明に係る暴走監視装置の監視処理動作のフローチャートである。
【図４】図３に続く本発明に係る暴走監視装置の監視処理動作のフローチャートである。
【図５】本発明に係る暴走監視装置のタスク量測定処理動作のフローチャートである。
【図６】本発明に係る暴走監視装置の待機処理動作のフローチャートである。
【発明を実施するための形態】
【００１１】
次に、本発明の実施形態について、適宜、図面を参照しながら詳細に説明する。
［暴走監視装置の構成］
図１に示すように、コンピュータ（暴走監視装置１：ＣＰＵ監視装置）は、ＣＰＵで構成される制御部２と、ＲＯＭ（Read Only Memory）３ａ、ＲＡＭ（Random Access Memory）３ｂやＨＤＤ（Hard Disc Drive）３ｃから成る記憶部３と、時刻を得るタイマ部４と、データが入力される入力部５とを備える。暴走監視装置１を構成する各構成部は、各構成部間でデータの送受信が可能なように接続されている。
【００１２】
記憶部３が備えるＨＤＤ３ｃは不揮発性の記憶部であり、データの書き換えが可能な（上書き保存可能な）データファイル６と、制御部２で実行される（複数の）プログラム７とを記憶する。
そして、制御部２により、必要に応じて、データファイル６に記録されたデータや、プログラム７は読み出されて、ＲＡＭ３ｂに記憶される。
【００１３】
入力部５は、データが入力される構成部である。例えば、ユーザ（管理者）により操作されたキーボードなどからデータが入力されたり、ＣＤ−ＲＯＭ（Compact Disc ROM）やＵＳＢ（Universal Serial Bus）メモリなどの外部記憶媒体に記憶されたデータを読み取って入力されてもよい。
【００１４】
［暴走監視装置にて監視プログラム実行時の構成］
図２は、本発明に係る監視プログラムがインストールされ、記憶部に記憶された暴走監視プログラムを、コンピュータ（暴走監視装置）が読み込むことによって、実現される機能ブロックを示す図である。
【００１５】
［記憶部３］
記憶部３には、プログラム７として、監視プログラム１０と、ＯＳ７１と、複数のアプリケーションプログラム７２（７２ａ，７２ｂ，７２ｃ，・・・）とが記憶されている。
【００１６】
ＯＳ７１は、一般的なコンピュータシステム全体を管理するソフトウェアであり、コンピュータ（暴走監視装置１）の電源がＯＮとなったときに、制御部２に読み込まれ、実行される。
本実施形態では、ＯＳ７１がＬｉｎｕｘ（登録商標）である場合について説明する。
【００１７】
監視プログラム１０は、ＯＳ７１上で動作するプログラムであり、図２に示すように、制御部２に読み込まれ、実行されて、周期実行処理部１１、暴走監視処理部１２、暴走判定処理部１３、中断処理部１４として実現される。
【００１８】
アプリケーションプログラム７２は、ＯＳ７１上で動作するプログラムであり、図２に示すように、制御部２に読み込まれ、実行処理部２１として実現される。
閾値設定プログラム７３は、ＯＳ７１上で動作するプログラムであり、図２に示すように、制御部２に読み込まれ、閾値記憶処理部２３として実現される。
【００１９】
［制御部２］
制御部（ＣＰＵ）２は、例えば、ＣＰＵで構成され、プログラム７を読み込んで、プログラム７に基づいて、コンピュータ（暴走監視装置１）が備える各構成部を制御する制御部である。
制御部２は、図２に示すように、コンピュータ（暴走監視装置１）が起動すると、記憶部３からＯＳ７１を読み込んで、ＯＳ７１の基本ソフトウェアの機能を実現する。
そして、アプリケーションプログラム７２を読み込むことで実現される実行処理部２１と、実行処理部２１が実行したタスク量を測定する測定処理部２２と、監視プログラム１０を読み込むことで実現される周期実行処理部１１と、暴走監視処理部１２と、暴走判定処理部１３と、中断処理部１４と、閾値設定プログラム７３を読み込むことで実現される閾値記憶処理部２３とを備える。
【００２０】
［測定処理部２２］
測定処理部２２は、ＯＳ７１の機能を使って、実行処理部２１がアプリケーションプログラム７２の機能を実現するために処理したタスク量を測定する処理部である。例えば、ＯＳ７１がＬｉｎｕｘ（登録商標）の場合、測定処理部２２は、ＯＳ７１が収集している『/proc/stat』ファイルの情報から、全タスク量を、jiffies数で取得することができるし、『/proc/<PID>/task/<tid>/stat』（<PID>はプロセスＩＤ、<tid>はスレッドＩＤ）のファイルの情報から、<tid>に該当するスレッドＩＤのスレッド測定タスク量を、jiffies数で取得することができる。
【００２１】
［閾値記憶処理部２３］
閾値記憶処理部２３は、監視周期値６１と暴走閾値６２とを含むデータが入力部５から入力されたときに、ＯＳ７１の機能により、閾値設定プログラム７３を読み込むことで実現される処理部であり、取得した監視周期値６１と暴走閾値６２とを記憶部３のデータファイル６に書き込む（記憶させる）。このとき、データファイル６を新たに作成（更新）してもよいし、データファイル６に上書きで書き込んでもよい。このデータファイル６は、バイナリ形式やテキスト形式のコンフィグ（config）ファイルであることが望ましい。
【００２２】
監視周期値６１は、時間を示す値であり、タイマ部４から取得した時刻と比較できる値である。そして、この監視周期値６１には、後記する周期実行処理部１１の待機処理で、待機する時間が設定される。
例えば、監視周期値６１には、設定可能範囲の０〜３６０００００ミリ秒を設定することができる。そして、監視周期値６１に“０”が設定された場合には、監視を行わないこととすることもできる。
【００２３】
暴走閾値６２は、コンピュータ（暴走監視装置１）が設置されたシステム環境に必要なＲＡＳＩＳの評価と、制御部２（実行処理部２１）が処理できるプロセスのタスク量の限界値（限界タスク量）とを考慮した所定の値である。例えば、限界タスク量の８０％程度の値である。
例えば、暴走閾値６２はタスク量に基づくＣＰＵ使用率であり、暴走閾値６２には、設定可能範囲の１〜１００％を設定することができる。
【００２４】
［ＣＰＵ使用率の定義］
ここで、ＯＳ７１がＬｉｎｕｘ（商標登録）の場合において、本実施形態では、ＣＰＵ使用率はjiffies数を用いて算出する。
例えば、ＯＳ７１が、『/proc/stat』ファイルの情報から、全タスク量を、jiffies数で取得する。次にＯＳ７１は、『/proc/<PID>/task』ファイルの情報から、スレッドＩＤ（thread ID）を取得する。そして、『/proc/<PID>/task/<tid>/stat』ファイル（<PID>は抽出ＰＩＤ、<tid>はスレッドＩＤ）の情報から、<tid>に該当するスレッドＩＤのスレッド測定タスク量を、jiffies数で取得する。
ここで、ＣＰＵ使用率は、スレッド測定タスク量を、全タスク量で割り、百分率で表した値である。
【００２５】
［周期実行処理部１１］
周期実行処理部１１は、待機処理を実行する処理部であり、後記する暴走監視処理部１２または暴走判定処理部１３からの処理開始タイミングを受けて、待機処理を実行する。
待機処理を実行する周期実行処理部１１は、記憶部３のデータファイル６を読み込み、データファイル６に書き込まれた監視周期値６１を取得する。そして、周期実行処理部１１は、タイマ部４から時刻を取得して、データファイル６から監視周期値６１を取得したとき（待機開始時）から監視周期値６１の時間が経過するまで待機する。
【００２６】
［暴走監視処理部１２］
暴走監視処理部１２は、測定処理部２２に、実行処理部２１が処理するプロセスのタスク量を測定させて、プロセス毎のタスク量を取得する処理部である。
監視プログラム１０を読み込んだ制御部２により、暴走監視処理部１２は実行され、暴走監視処理部１２は、ＯＳ７１の機能を使ってＰＩＤ一覧データを取得し、タスク量測定処理を行う。ここでＰＩＤとは、アプリケーションプログラム７２を実行中の実行処理部２１が処理するプロセスそれぞれに付けられた識別子である。そして、例えば、ＯＳ７１がＬｉｎｕｘ（登録商標）の場合、暴走監視処理部１２は、『ps aux』のコマンドを実行させることで、実行処理部２１が処理するすべてのプロセスのＰＩＤを取得することができる（ＰＩＤ一覧データの取得）。
【００２７】
タスク量測定処理を実現する暴走監視処理部１２は、ＰＩＤ一覧データに含まれるＰＩＤそれぞれに対応するプロセスのタスク量（測定タスク量）を測定する。そして、暴走監視処理部１２は、すべてのＰＩＤと、それぞれのＰＩＤの測定タスク量とを対応付けた測定タスク量一覧を生成し、記憶部３に記憶させる。
暴走監視処理部１２は、このタスク量測定処理を、周期実行処理部１１の待機処理後にもう一度行って、２つの測定タスク量一覧（新測定タスク量一覧８１と前測定タスク量一覧８２）を記憶部３に記憶させる。
【００２８】
［暴走判定処理部１３］
暴走判定処理部１３は、データファイル６に記録された暴走閾値６２と、暴走監視処理部１２が取得した測定タスク量（新測定タスク量一覧８１と前測定タスク量一覧８２）とを比較し、暴走プロセスを判定する処理部である。
暴走監視処理部１２からの処理開始タイミングを受けて、暴走判定処理部１３は、データファイル６から暴走閾値６２を取得する。
次に、暴走判定処理部１３は、新測定タスク量一覧８１から、ＰＩＤと、そのＰＩＤに対応する新測定タスク量とを抽出し、さらに、前測定タスク量一覧８２から、そのＰＩＤに対応する前測定タスク量を抽出する。
【００２９】
そして、暴走判定処理部１３は新測定タスク量と前測定タスク量とから、ＰＩＤのプロセスにおけるタスク量を算出する。
ここで、ＣＰＵ使用率をタスク量とする場合、ＣＰＵ使用率は、新測定タスク量一覧８１の測定タスク量から前測定タスク量一覧８２の測定タスク量を差分した値を、新測定タスク量一覧８１の全タスク量から前測定タスク量一覧８２の全タスク量を差分した値で割ることで得られる。
【００３０】
そして、暴走判定処理部１３は、算出したタスク量（ＣＰＵ使用率）と、データファイル６から取得した暴走閾値６２とを比較する。この比較処理を、新測定タスク量一覧８１からすべてのＰＩＤを抽出するまで行い、すべてのＰＩＤを抽出したとき、処理（暴走判定処理）を終了する。
ここで、暴走判定処理における比較処理にて、暴走閾値≦ＣＰＵ使用率となったとき、暴走判定処理部１３は、抽出したＰＩＤのプロセスが暴走していると判定（暴走プロセスを判定）し、中断処理部１４に処理を移す。
【００３１】
一方、前測定タスク量一覧８２が記憶部３に存在しない場合または暴走判定処理が終了したときには、暴走判定処理部１３は、新測定タスク量一覧８１を複製（コピー）して、複製した一覧を前測定タスク量一覧８２として記憶部３に保存し、複製元の新測定タスク量一覧８１を記憶部３から削除する。そして、暴走判定処理部１３は、周期実行処理部１１に処理を移す。
【００３２】
本実施形態では、タスク量をＣＰＵ使用率としたが、単に、新測定タスク量一覧８１の測定タスク量から前測定タスク量一覧８２の測定タスク量を差分した値であっても構わない。そして、その差分値と比較可能な所定の値の暴走閾値６２であればよい。
【００３３】
［中断処理部１４］
中断処理部１４は、ＯＳ７１の機能を使って、暴走監視装置１を再起動させる処理部である。
中断処理部１４は、暴走判定処理部１３からの処理開始タイミングを受けて、暴走監視装置１を再起動させる。
【００３４】
［暴走監視装置の監視処理動作］
次に、図３および図４を参照して、暴走監視装置１の監視処理動作について説明する（適宜、図２を参照）。
以下、本実施形態では、ＯＳ７１がＬｉｎｕｘ（登録商標）である場合について説明する。
まず、制御部２は、記憶部３から監視プログラム１０を読み込む（ステップＳ１０１）。これにより、制御部２が監視プログラム１０を実行することにより、制御部２は、周期実行処理部１１、暴走監視処理部１２、暴走判定処理部１３、中断処理部１４として機能する。
【００３５】
そして、暴走監視処理部１２は、ＯＳ７１の機能を使ってＰＩＤ一覧データを取得する（ステップＳ１０２）。
次に、暴走監視処理部１２は、タスク量測定処理（図５）を実現する（ステップＳ１０３）。
当該タスク量測定処理を実現することで、暴走監視処理部１２は、ＰＩＤ一覧データに含まれるＰＩＤそれぞれに対応するプロセスのタスク量（測定タスク量）を測定する。そして、暴走監視処理部１２は、すべてのＰＩＤと、それぞれのＰＩＤの測定タスク量とを対応付けた新測定タスク量一覧８１を生成し、記憶部３に記憶させる。
【００３６】
タスク量測定処理終了後、暴走監視処理部１２は、記憶部３に前測定タスク量一覧８２が存在するか否かを判定する（ステップＳ１０４）。
当該判定は、暴走監視処理部１２が、前測定タスク量一覧８２を記憶部３から取得できたか否かで判定することとする。
【００３７】
記憶部３から前測定タスク量一覧８２を取得できなかった場合（ステップＳ１０４，Ｎｏ）、暴走監視処理部１２は、新測定タスク量一覧８１を複製（コピー）して、複製した一覧を前測定タスク量一覧８２として記憶部３に保存し、複製元の新測定タスク量一覧８１を記憶部３から削除する（ステップＳ１０５）。そして、暴走監視処理部１２は、周期実行処理部１１に処理を移す。
そして、周期実行処理部１１は待機処理（図６）を実行する（ステップＳ１０６）。待機後、周期実行処理部１１は暴走監視処理部１２に処理を移し、暴走監視処理部１２は、ステップＳ１０２の処理を再び行う。
【００３８】
一方、記憶部３から前測定タスク量一覧８２を取得できた場合（ステップＳ１０４，Ｙｅｓ）、暴走判定処理部１３に処理を移す。このとき、記憶部３には、新測定タスク量一覧８１と前測定タスク量一覧８２とが記憶されている。
まず、暴走判定処理部１３は、データファイル６から暴走閾値６２を取得する（ステップＳ１０７）。
【００３９】
暴走判定処理部１３は、新測定タスク量一覧８１から、ＰＩＤと、そのＰＩＤに対応する新測定タスク量とを抽出し、さらに、前測定タスク量一覧８２から、そのＰＩＤに対応する前測定タスク量を抽出する（ステップＳ１０８）。
そして、暴走判定処理部１３は新測定タスク量と前測定タスク量とから、ＰＩＤのプロセスにおけるＣＰＵ使用率（タスク量）を算出する（ステップＳ１０９）。
【００４０】
暴走判定処理部１３は、算出したＣＰＵ使用率と、データファイル６から取得した暴走閾値６２とを比較する（暴走閾値≦ＣＰＵ使用率）（ステップＳ１１０）。
【００４１】
暴走閾値＞ＣＰＵ使用率である場合（ステップＳ１１０，Ｎｏ）、暴走判定処理部１３は、新測定タスク量一覧８１にて他に未抽出のＰＩＤがあるか否かを判定する（ステップＳ１１１）。
すべてのＰＩＤを抽出している（未抽出のＰＩＤがない）場合（ステップＳ１１１，Ｎｏ）、暴走判定処理部１３は、新測定タスク量一覧８１を複製（コピー）して、複製した一覧を前測定タスク量一覧８２として記憶部３に保存し、複製元の新測定タスク量一覧８１を記憶部３から削除する（ステップＳ１１２）。そして、暴走判定処理部１３は、周期実行処理部１１に処理を移す。
そして、周期実行処理部１１は待機処理（図６）を実行する（ステップＳ１１３）。待機後、周期実行処理部１１は暴走監視処理部１２に処理を移す。これにより、ステップＳ１０２に戻る。
【００４２】
一方、ステップＳ１１１にて、未抽出のＰＩＤがある場合（ステップＳ１１１，Ｙｅｓ）、暴走判定処理部１３は、ステップＳ１０８の処理に戻り、新測定タスク量一覧８１から、未取得のＰＩＤと、その未取得のＰＩＤに対応する新測定タスク量とを抽出し、さらに、前測定タスク量一覧８２から、その未取得のＰＩＤに対応する前測定タスク量を抽出する。
【００４３】
一方、ステップＳ１１０にて、暴走閾値≦ＣＰＵ使用率である場合（ステップＳ１１０，Ｙｅｓ）、暴走判定処理部１３は、中断処理部１４に処理を移す。
このとき、暴走判定処理部１３は、ＰＩＤのプロセスが暴走していると判定する（暴走プロセスであると判定する）。
【００４４】
そして、中断処理部１４は、ＯＳ７１の機能を使って、暴走監視装置１を再起動させる（ステップＳ１１４）。そして、暴走監視装置１は、監視処理動作を終了する。
【００４５】
［暴走監視装置のタスク量測定処理動作］
図５を参照して、図３のステップＳ１０３における、暴走監視装置１のタスク量測定処理動作について説明する（適宜、図２ないし図４を参照）。
ここで、暴走監視処理部１２は、測定処理部２２（ＯＳ７１の機能）を使って、タスク量測定処理を実現する。
【００４６】
まず、暴走監視処理部１２は、ステップＳ１０２（図３）の処理で取得したＰＩＤ一覧データから、ＰＩＤを一つ抽出する（ステップＳ２０１）。
そして、暴走監視処理部１２は、測定処理部２２に、アプリケーションプログラム７２を実行中の実行処理部２１が処理するすべてのプロセスのタスク量（全タスク量）を測定させ、測定処理部２２から全タスク量を取得する（ステップＳ２０２）。
この全タスク量を測定する手段は、例えば、ＯＳ７１がＬｉｎｕｘ（商標登録）の場合、測定処理部２２が『/proc/stat』ファイルの情報を取得することで、全タスク量を、jiffies数で取得することができる。
【００４７】
次に、暴走監視処理部１２は、測定処理部２２に、抽出したＰＩＤ（抽出ＰＩＤ）のプロセスにおける、スレッド毎のタスク量（スレッド測定タスク量）を測定させ、測定処理部２２からスレッド測定タスク量を取得する（ステップＳ２０３）。そして、測定したすべてのスレッドのスレッド測定タスク量を合計して、抽出ＰＩＤの測定タスク量を算出する（ステップＳ２０４）。
この各測定タスク量を測定する手段は、例えば、ＯＳ７１がＬｉｎｕｘ（商標登録）の場合、『/proc/<PID>/task』情報を取得することで、スレッドＩＤ（thread ID）を取得することができる。そして、『/proc/<PID>/task/<tid>/stat』ファイル（<PID>は抽出ＰＩＤ、<tid>はスレッドＩＤ）の情報を取得する。<tid>に該当するスレッドＩＤのスレッド測定タスク量を、jiffies数で取得することができる。
【００４８】
次に、暴走監視処理部１２は、取得した全タスク量と、抽出ＰＩＤの測定タスク量とを、抽出ＰＩＤで対応付けて、記憶部３の新測定タスク量一覧８１に記憶させる（ステップＳ２０５）。
【００４９】
そして、暴走監視処理部１２は、他に未抽出のＰＩＤがあるか否かを判定する（ステップＳ２０６）。
未抽出のＰＩＤがある場合（ステップＳ２０６，Ｙｅｓ）、暴走監視処理部１２は、ステップＳ２０１の処理を実行し、ＰＩＤ一覧データから未取得のＰＩＤを抽出する。
【００５０】
一方、未抽出のＰＩＤがない場合（ステップＳ２０６，Ｎｏ）、暴走監視処理部１２は、タスク量測定処理を終了する。
以上のタスク量測定処理により、記憶部３には、ＰＩＤと測定タスク量とが対応付けられた新測定タスク量一覧８１が記憶される。
【００５１】
［暴走監視装置の待機処理動作］
図６を参照して、図３のステップＳ１０６および図４のステップＳ１１３における、暴走監視装置１の待機処理動作について説明する（適宜、図２ないし図４を参照）。
周期実行処理部１１は、記憶部３からデータファイル６を読み込み、監視周期値６１を取得し（ステップＳ３０１）、この時を待機開始時とする。
そして、周期実行処理部１１は、タイマ部４から現在の時刻を取得し（ステップＳ３０２）、ステップＳ３０１処理後の待機開始時からの経過時間が、監視周期値６１以上となったか否かを判定する（待機開始時からの経過時間≧監視周期値？）（ステップＳ３０３）
経過時間＜監視周期値６１の場合（ステップＳ３０３，Ｎｏ）、周期実行処理部１１は、再びステップＳ３０２の処理を行う。
一方、経過時間≧監視周期値６１の場合（ステップＳ３０３，Ｙｅｓ）、周期実行処理部１１は、暴走監視処理部１２に処理を移し、待機処理動作を終了する。
【００５２】
以上の動作によって、本実施形態の暴走監視装置１は、プロセス毎のタスク量を測定し（ステップＳ１０３）、プロセスのタスク量（ＣＰＵ使用率）と暴走閾値６２とを比較し（ステップＳ１１０）、暴走閾値６２以上になったタスク量のプロセスが暴走していると判断する。ここで、本実施形態の暴走監視装置１は、データファイル６の暴走閾値６２を、入力部５を介して書き換えることができるため、当該装置が設置されたシステム環境に応じて、プロセスが暴走していると判断する基準を変更することができる。
【００５３】
すなわち、データファイル６を書き換えて、暴走閾値６２を変更することで、コンピュータ（暴走監視装置１）が設置されたシステム環境に必要なＲＡＳＩＳの評価に応じてプロセスが暴走していると判断する基準を変更することができる。
【００５４】
また、ＲＡＭ３ｂやＨＤＤ３ｃで構成される記憶部３に対して、データの取得や記録ができないことなどの記憶部３の不具合によるプロセスの暴走についても、検出することができる。
【００５５】
以上、本発明の実施形態について説明したが、本発明は前記した実施形態に限定されず、適宜変更して実施することが可能である。
例えば、本実施形態では、ＯＳ７１がＬｉｎｕｘ（登録商標）である場合について説明したが、その他のＵＮＩＸ（登録商標）系のＯＳであってもよいし、Ｍｉｃｒｏｓｏｆｔ社が提供するＷｉｎｄｏｗｓ（登録商標）や、Ａｐｐｌｅ社が提供するＭａｃＯＳ（登録商標）などでもよい。そして、暴走監視装置１を含むシステム環境に適合するように適宜変更してもよい。
【００５６】
［複数のＣＰＵ］
また、例えば、暴走監視装置１には、制御部２であるＣＰＵが複数備えられていてもよい。
この場合、複数のＣＰＵのうちの１つのＣＰＵで実現される暴走監視処理部１２は、ＰＩＤ一覧データを取得する（ステップＳ１０２，図３）前に、暴走監視装置１が備えるＣＰＵの数を取得してから、ステップＳ１０２以降の処理を、それぞれのＣＰＵが実行すればよい。これにより、複数のＣＰＵが備えられていても本実施形態を実施することができる。
ここで、暴走監視装置１が備えるＣＰＵの数を取得する手段は、例えば、ＯＳ７１がＬｉｎｕｘ（商標登録）の場合、『/proc/cpuinfo』のコマンドを実行させ、『processor：』で表示されるＣＰＵの識別番号から、制御部２の数を取得することができる。
このとき、データファイル６に記録される暴走閾値６２には、ＲＡＳＩＳの評価と限界タスク量とを考慮した限界のＣＰＵ使用率（最大１００％）を、ＣＰＵの数で割った値が記録されている。例えば、４ＣＰＵの場合、設定可能範囲は１〜２５％である。ここで、限界のＣＰＵ使用率が８０％である場合、データファイル６には、暴走閾値６２として“２０”が記録されている。
【符号の説明】
【００５７】
１      暴走監視装置（ＣＰＵ監視装置）
２      制御部（ＣＰＵ）
３      記憶部
４      タイマ部
５      入力部
６      データファイル
７      プログラム
１０    監視プログラム
１１    周期実行処理部
１２    暴走監視処理部
１３    暴走判定処理部
１４    中断処理部
２１    実行処理部
２２    測定処理部
２３    閾値記憶処理部
６１    監視周期値
６２    暴走閾値
７２（７２ａ，７２ｂ，７２ｃ，・・・）  アプリケーションプログラム
７３    閾値設定プログラム
８１    新測定タスク量一覧
８２    前測定タスク量一覧
【図１】
2011141786.tif 000003
【図２】
2011141786.tif 000004
【図３】
2011141786.tif 000005
【図４】
2011141786.tif 000006
【図５】
2011141786.tif 000007
【図６】
2011141786.tif 000008