(57)【特許請求の範囲】
【請求項１】
障害兆候が現れるときのタスクの動作状態を示す複数種類の状態データを含む障害兆候パターンと障害の発生を回避する処理である障害回避手段を対応付けてタスクごとに複数記憶する記憶装置と、
障害兆候の有無を判定するタスクの複数種類の状態データを取得し、取得された複数種類の状態データと、このタスクの前記障害兆候パターンに含まれる複数種類の状態データとの一致率を算出し、前記一致率が最大値となる前記障害兆候パターンに対応する前記障害回避手段を実行する演算装置と、
を備えることを特徴とする障害回避処理装置。
【請求項２】
請求項１に記載の障害回避処理装置であって、
前記演算装置は、
障害兆候の有無を判定するタスクの複数種類の状態データを取得し、取得された複数種類の状態データと、このタスクの前記障害兆候パターンに含まれる複数種類の状態データとの一致率を算出し、前記一致率の最大値が障害の兆候の有無を判定するしきい値である障害判定しきい値よりも大きいか否かを判定するタスク動作状態判定処理部と、
前記一致率の最大値が前記障害判定しきい値よりも大きいと判定された場合、前記一致率が最大値となる前記障害兆候パターンに対応する前記障害回避手段を実行する障害回避処理部と、
を有することを特徴とする障害回避処理装置。
【請求項３】
請求項２に記載の障害回避処理装置であって、
前記タスク動作状態判定処理部は、
前記一致率の最大値が、障害兆候の有無を判定する頻度を変更するか否かを判定するしきい値である測定頻度変更しきい値以上、且つ、前記障害判定しきい値以下の場合、障害兆候の有無を判定する頻度を上昇する
ことを特徴とする障害回避処理装置。
【請求項４】
請求項３に記載の障害回避処理装置であって、
前記タスク動作状態判定処理部は、
前記一致率の最大値が、前記測定頻度変更しきい値より小さい場合、前記障害兆候の有無を判定する頻度をタスク毎に設定する
ことを特徴とする障害回避処理装置。
【請求項５】
請求項１に記載の障害回避処理装置であって、
前記記憶装置は、
障害原因と前記障害回避手段を１対１で対応付けて格納する障害回避処理インデックステーブルと、
前記障害兆候パターンと前記障害原因に対応する前記障害回避手段を実行したときに障害の発生が回避される割合を示す障害原因回避率を１対多で対応付けて格納し、前記障害原因と障害原因回避率を１対１で対応付けて格納する障害兆候パターンテーブルと、
を記憶し、
前記演算装置は、
障害兆候の有無を判定するタスクの複数種類の状態データを取得し、取得された複数種類の状態データと、このタスクの前記障害兆候パターンに含まれる複数種類の状態データとの一致率を算出するタスク動作状態判定処理部と、
前記一致率が最大値となる前記障害兆候パターンに対応する前記障害原因回避率の中から最大値を求め、前記障害原因回避率の最大値に対応する前記障害原因を特定し、特定した障害原因に対応する前記障害回避手段を実行する障害回避処理部を有する
ことを特徴とする障害回避処理装置。
【請求項６】
請求項５に記載の障害回避処理装置であって、
前記演算装置は、
前記障害回避手段を実行した後に、障害が回避されたか否かを判定し、その判定結果に基づいて、前記障害原因回避率を更新する障害兆候パターン登録処理部を有する
ことを特徴とする障害回避処理装置。
【請求項７】
請求項６に記載の障害回避処理装置であって、
前記障害兆候パターン登録処理部は、
実行した前記障害原因回避手段により障害が回避された場合、
最大値をとった前記障害原因回避率を増加し、
実行した前記障害原因回避手段により障害が回避されなかった場合、
最大値をとった前記障害原因回避率を減少する、
ことを特徴とする障害回避処理装置。
【請求項８】
障害兆候が現れるときのタスクの動作状態を示す複数種類の状態データを含む障害兆候パターンと障害の発生を回避する処理である障害回避手段を対応付けてタスクごとに複数記憶する記憶装置を備えた障害回避処理装置に用いられる障害回避方法であって、
障害兆候の有無を判定するタスクの複数種類の状態データを取得する取得工程と、
取得された複数種類の状態データと、このタスクの前記障害兆候パターンに含まれる複数種類の状態データとの一致率を算出する算出工程と、
前記一致率が最大値となる前記障害兆候パターンに対応する前記障害回避手段を実行する実行工程と、
を有することを特徴とする障害回避方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害回避処理装置及び障害回避方法に関する。
【背景技術】
【０００２】
近年、ネットワーク技術の発展によって、距離的な隔たりをほとんど感じさせることなく情報のやりとりが可能となり、私たちの社会に大きな変革をもたらしている。こうした社会の中で、システムが停止すると社会問題にまで発展してしまう鉄道や送電などの分野においても、近年ではネットワークを利用したシステム化が進んでいる。
【０００３】
このような時代背景から、伝送制御システムのようにタイムクリティカル性が要求されるオンラインシステムにおける監視制御装置では、信頼性がより重要な問題となってきている。
【０００４】
本技術分野の背景技術として、特開平９−１３８７０２号公報（特許文献１）がある。この公報には、「電子計算機内のマンマシンインターフェース処理（プロセス）の優先度を自動で切り替えるか手動で切り替えるかを運転員が選択することのできる自動／手動切替手段１０２と、電子計算機が自動でプロセスの優先度を切り替えようとする時に優先度切り替えの判断材料となる計算機負荷を一定周期で測定し、切り替えるタイミングを判断する計算機負荷測定手段１０３と、運転員が手動でプロセスの優先度を切り替えることのできる、又、電子計算機が自動でプロセスの優先度を切り替える優先度切替手段１０４と、各プロセスの優先度を保存する優先度保存手段１０５とから構成したシステム監視装置」が記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１３８７０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の特許文献１のシステム監視装置では、装置の高い応答性を確保する点に関しては有効であるが、自動/手動切換え手段において、過去に発生した障害のパターンを記憶することで障害発生の兆候を事前に検知して障害を防止することは困難である。
【０００７】
また、上記の特許文献１のシステム監視装置では、電子計算機が自動でプロセスの優先度を切り替えようとする時に優先度切り替えの判断材料となる計算機負荷を一定周期で測定し、切り替えるタイミングを判断する。
【０００８】
このようなシステム監視装置では、例えば、障害兆候の検知の際に、ＣＰＵの負荷率の異常に対しては有効であるが、他の原因に対しては監視しておらずＣＰＵの負荷率だけでは不十分である。また、自動／手動切換え手段においては予め設定しておいた優先度に切り替えることはできるが、例えば、どのタスクが問題となっているのかを特定し、検知した障害を回避することも困難である。
【０００９】
そこで、本発明の目的は、障害発生の兆候を事前に検知して障害を防止することができる障害回避処理装置及び障害回避方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明は、障害兆候が現れるときのタスクの動作状態を示す複数種類の状態データを含む障害兆候パターンと障害の発生を回避する処理である障害回避手段を対応付けてタスクごとに複数記憶する記憶装置と、障害兆候の有無を判定するタスクの複数種類の状態データを取得し、取得された複数種類の状態データと、このタスクの前記障害兆候パターンに含まれる複数種類の状態データとの一致率を算出し、前記一致率が最大値となる前記障害兆候パターンに対応する前記障害回避手段を実行する演算装置とを備える。
【発明の効果】
【００１１】
本発明によれば、障害発生の兆候を事前に検知して障害を防止することができる。
【００１２】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置の概略構成図である。
【図２】図１に示すタスク動作状態テーブルの構成図である。
【図３】図１に示す障害兆候パターンテーブルの構成図である。
【図４】図１に示す障害判定しきい値テーブルの構成図である。
【図５】図１に示す障害回避処理インデックステーブルの構成図である。
【図６】本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置の演算装置が障害兆候判定処理を実行するタイミングを説明するための図である。
【図７】本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置の演算装置が実行する障害兆候判定処理のフローチャートである。
【図８】本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置の演算装置が実行するタスク動作状態判定処理のフローチャートである。
【図９】本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置の演算装置が実行する障害回避処理のフローチャートである。
【図１０】本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置の演算装置が実行する障害兆候パターン登録処理のフローチャートである。
【図１１】あるタイミングにおいて障害兆候パターン登録処理を実行する前の障害兆候パターンテーブルと障害兆候パターン登録処理を実行した後の障害兆候パターンテーブルの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図１〜図１１を用いて本発明の実施形態を説明する。以下では、本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置を例にして説明する。監視制御装置は、例えば、電力プラントに設置される子局装置を監視し、制御する。子局装置は、監視制御装置の制御下、電力量などを調整する。
【００１５】
最初に、図１を用いて、監視制御装置の構成を説明する。図１は、本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置１００の概略構成図である。
【００１６】
監視制御装置１００は、演算装置１、入力装置２、出力装置３、記憶装置４及び通信装置５、バス６を備える。演算装置１、入力装置２、出力装置３、記憶装置４及び通信装置５は、バス６に接続される。
【００１７】
演算装置１は、ＣＰＵ（Central Processing Unit）などで構成され、種々の演算を行う。入力装置２は、キーボード、マウスなどで構成され、入力された情報を演算装置１に供給する。出力装置３は、ディスプレイなどで構成され、演算装置１の制御下、種々の情報を表示する。記憶装置４は、ＨＤＤ（Hard Disk Drive）、メモリなどで構成され、種々の情報を記憶する。通信装置５は、通信インタフェースなどで構成され、演算装置１の制御下、種々の情報を送受信する。通信装置５は、通信ネットワーク３００を介して電力プラント２００に設置された子局装置２０１に接続される。
【００１８】
ここで、記憶装置４は、タスク動作状態テーブル４０、障害兆候パターンテーブル５０、障害判定しきい値テーブル６０、障害回避処理インデックステーブル７０及びプログラム８０を備える。演算装置１は、プログラム８０を実行することにより、障害兆候の有無を判定し、障害を回避する。具体的には、演算装置１は、障害の兆候を判定する障害兆候判定処理部１０、タスクの動作状態を判定するタスク動作状態判定処理部１１、障害を回避する障害回避処理部１２、障害兆候パターンを登録する障害兆候パターン登録処理部１３として機能する。障害兆候判定処理部１０は、タスク動作状態判定処理部１１、障害回避処理部１２及び障害兆候パターン登録処理部１３を含む。演算装置１の動作及び機能の詳細については、図７〜１０を用いて後述する。
【００１９】
次に、図２〜図５を用いて、記憶装置４に記憶された各種テーブルの構成を説明する。
【００２０】
図２は、タスク動作状態テーブル４０の構成図である。タスク動作状態テーブル４０は、実行中のタスクのタスク名（タスク識別子）ごとに、タスクの動作状態を示す複数種類の状態データとして、ＣＰＵ負荷率、ヒープ使用率及びタスク実行時間を格納する。ここで、ＣＰＵ負荷率は、単位時間において、実行中のタスクが演算装置１（ＣＰＵ）を占有している時間の割合を意味する。ヒープ使用率は、ＯＳから割り当てられたヒープメモリに対して、実行中のタスクが使用しているヒープメモリの割合を意味する。タスク実行時間は、演算装置１がタスクの実行を開始してから修了するまでの時間を意味する。タスク動作状態テーブル４０は、障害兆候判定処理部１０の動作ごとに更新される。なお、図２では、演算装置１がタスクＡ、タスクＢ、・・・、タスクＮを実行しているときにサンプリングされた、ＣＰＵ負荷率、ヒープ使用率及びタスク実行時間を例示している。
【００２１】
図３は、障害兆候パターンテーブル５０の構成図である。障害兆候パターンテーブル５０は、障害を識別するユニークな障害ＩＤ（Identifier）ごとに、障害兆候パターン及び障害原因回避率を格納する。ここで、障害兆候パターンは、障害兆候が現れるときのタスクの動作状態を示す複数種類の状態データとして、ＣＰＵ負荷率、ヒープ使用率及びタスク実行時間を含む。
【００２２】
一方、障害原因回避率は、障害原因が処理渋滞の場合の障害原因回避率、障害原因がヒープメモリの枯渇の場合の障害原因回避率及び障害原因が処理順序違反の場合の障害原因回避率を含む。したがって、障害兆候パターンテーブル５０は、障害原因と障害原因回避率を１対１で対応付けて格納することになる。例えば、図３の障害ＩＤ＝１のレコードでは、障害原因「処理渋滞」と障害原因回避率「４０％」が１対１で対応付けて格納される。また、図３の障害ＩＤ＝１のレコードでは、障害原因「ヒープメモリの枯渇」と障害原因回避率「４０％」が１対１で対応付けて格納される。さらに、図３の障害ＩＤ＝１のレコードでは、障害原因「処理順序違反」と障害原因回避率「２０％」が１対１で対応付けて格納される。ここで、障害兆候パターンテーブル５０は、１つの障害兆候パターンと、３つの障害原因回避率を対応付けて格納している。したがって、障害兆候パターンテーブル５０は、障害兆候パターンと障害原因回避率を１対多で対応付けて記憶することになる。
【００２３】
障害原因回避率は、障害原因に対応する障害回避手段を実行したときに障害の発生が回避される割合を意味する。障害原因回避率は、障害回避手段を実行するたびに更新される。本実施形態では、初期状態において、障害原因回避率はすべて０％であるが、障害回避手段が複数回実行されることにより、図３に示すように、障害原因回避率が更新される。障害原因回避率の更新の詳細については、図１０及び図１１を用いて後述する。
【００２４】
図４は、障害判定しきい値テーブル６０の構成図である。障害判定しきい値テーブル６０は、タスク名ごとに、測定頻度変更しきい値及び障害判定しきい値を格納する。ここで、演算装置１は、測定頻度変更しきい値に基づいて、障害兆候の有無を判定する「頻度」を変更する。また、演算装置１は、障害判定しきい値に基づいて、障害兆候の有無を判定する。演算装置１が実行する処理の詳細については、後述する。なお、図４では、タスクＡ、タスクＢ、・・・、タスクＮごとの測定頻度変更しきい値及び障害判定しきい値を例示している。
【００２５】
図５は、障害回避処理インデックステーブル７０の構成図である。障害回避処理インデックステーブル７０は、障害原因を識別するユニークな障害原因ＩＤ（Identifier）ごとに、障害原因及び障害回避手段を格納する。本実施形態では、障害原因として、処理渋滞、ヒープメモリの枯渇及び処理順序違反が格納される。ここで、処理渋滞はＣＰＵ負荷率が高い場合の障害原因である。ヒープメモリの枯渇は、ヒープ使用率が高い場合の障害原因である。処理順序違反は、タスク実行時間が長い場合の障害原因である。
【００２６】
また、本実施形態では、障害回避手段として、優先度変更処理の先頭アドレス、ヒープメモリデフラグ処理の先頭アドレス、後タスク遅延処理の先頭アドレスが格納される。演算装置１は、処理渋滞に起因する障害の兆候があるときに、優先度変更処理を実行することにより、ＯＳが提供しているマクロを呼び出して、ＣＰＵ負荷率が高いタスクの実行優先順位のレベルを下げる。演算装置１は、ヒープメモリの枯渇に起因する障害の兆候があるときに、ヒープメモリデフラグ処理を実行することにより、解放されなかったヒープメモリを解放して使用可能領域を増やす。演算装置１は、処理順序違反に起因する障害の兆候があるときに、後タスク遅延処理を実行することにより、タスク実行時間が長いタスクの後に実行されるべきタスクの実行タイミングを遅らせて、強制終了を避ける。
【００２７】
障害回避処理インデックステーブル７０は、障害原因と障害回避手段を１対１で対応付けて格納する。例えば、図５の障害原因ＩＤ＝１のレコードでは、障害原因「処理渋滞」と障害回避手段「優先度変更処理の先頭アドレス」が１対１で対応付けて格納される。ここで、図３に示す障害兆候パターンテーブル５０は、障害兆候パターンと障害原因回避率を１対多で対応付けてタスク毎に複数格納（記憶）する。また、障害兆候パターンテーブル５０は、障害原因と障害原因回避率を１対１で対応付けて格納する。したがって、障害兆候パターンと障害回避手段は１対多でタスク毎に複数記憶されることになる。演算装置１は、障害兆候パターンに対応する障害回避手段のいずれかを実行する。
【００２８】
次に、図６〜図１０を用いて、本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置１００の動作を説明する。
【００２９】
最初に、図６を用いて、監視制御装置１００の演算装置１が障害兆候判定処理を実行するタイミングを説明する。なお、演算装置１は、障害兆候判定処理を実行することにより、障害兆候の有無を判定し、障害を回避する。
【００３０】
図６は、本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置１００の演算装置１が障害兆候判定処理の動作タイミングを説明するための図である。なお、図６（Ａ）〜（Ｄ）の横軸は時間ｔを示し、右側に向かって時間が進行する。
【００３１】
図６（Ａ）は、タスクＡの動作タイミングを示すタイムチャートである。図６（Ａ）の縦軸は、タスクＡの動作のＯＮ／ＯＦＦを示す。図６（Ａ）の例では、時間ｔ２でタスクＡの動作がＯＮ（開始）となり、時間ｔ３でタスクＡの動作がＯＦＦ（終了）となる。
【００３２】
図６（Ｂ）は、タスクＢの動作タイミングを示すタイムチャートである。図６（Ｂ）の縦軸は、タスクＢの動作のＯＮ／ＯＦＦを示す。図６（Ｂ）の例では、時間ｔ４でタスクＢの動作がＯＮ（開始）となり、時間ｔ５でタスクＢの動作がＯＦＦ（終了）となる。
【００３３】
図６（Ｃ）は、障害兆候判定処理の動作タイミングを示すタイムチャートである。図６（Ｃ）の縦軸は、障害兆候判定処理の動作のＯＮ／ＯＦＦを示す。図６（Ｃ）の例では、時間ｔ３で障害兆候判定処理の動作がＯＮ（開始）となり、時間ｔ３１で障害兆候判定処理の動作がＯＦＦ（終了）となる。また、時間ｔ５で障害兆候判定処理の動作がＯＮ（開始）となり、時間ｔ５１で障害兆候判定処理の動作がＯＦＦ（終了）となる。
【００３４】
ここで、図６（Ａ）〜図６（Ｃ）に示すように、初期状態では、障害兆候判定処理は各タスクの動作が終了するタイミングで実行される。
【００３５】
図６（Ｄ）は、障害兆候判定処理を実行する頻度が上昇した場合における、障害兆候判定処理の動作タイミングを示すタイムチャートである。図６（Ｄ）の縦軸は、障害兆候判定処理の動作のＯＮ／ＯＦＦを示す。図６（Ｄ）の例では、時間ｔ２１で障害兆候判定処理の動作がＯＮ（開始）となり、時間ｔ２２で障害兆候判定処理の実行がＯＦＦ（終了）となる。また、時間ｔ３で障害兆候判定処理の動作がＯＮ（開始）となり、時間ｔ３１で障害兆候判定処理の動作がＯＦＦ（終了）となる。続いて、時間ｔ４１で障害兆候判定処理の動作がＯＮ（開始）となり、時間ｔ４２で障害兆候判定処理の動作がＯＦＦ（終了）となる。また、時間ｔ５で障害兆候判定処理の動作がＯＮ（開始）となり、時間ｔ５１で障害兆候判定処理の動作がＯＦＦ（終了）となる。
【００３６】
ここで、演算装置１は、一定の条件を満たした場合、障害兆候判定処理の実行頻度（測定頻度）を上昇させるようになっている。図６（Ｄ）の例では、実行頻度が上昇した結果、図６（Ｃ）の場合に加え、タスクの実行中において障害兆候判定処理が実行される。ただし、この場合、タスク実行時間は確定していないため、タスク動作状態テーブル４０のタスク実行時間は更新されない。なお、図６（Ｄ）の例では、タスクＡとタスクＢにおいて、障害兆候判定処理の実行頻度がともに上昇した場合を示しているが、演算装置１は、タスク毎に障害兆候判定処理の実行頻度を上昇してもよい。
【００３７】
次に、図７を用いて、監視制御装置１００の演算装置１（障害兆候判定処理部１０）が実行する障害兆候判定処理を説明する。以下、説明を簡単にするため、あるタスクＡについて障害兆候判定処理を実行する場合を例にして説明する。
【００３８】
図７は、本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置１００の演算装置１が実行する障害兆候判定処理のフローチャートである。障害兆候判定処理は、サブルーチンとして、タスクの動作状態を判定するタスク動作状態判定処理（ステップＳ１）、障害を回避する障害回処理（ステップＳ３）、障害兆候パターンを登録する障害兆候パターン登録処理（ステップＳ４）を含む。
【００３９】
最初に、演算装置１は、タスク動作状態判定処理を呼び出して実行する（ステップＳ１）。タスク動作状態判定処理では、演算装置１は、タスク動作状態テーブル４０と障害兆候パターンテーブル５０を比較して、障害判定しきい値テーブル６０のしきい値（測定頻度変更しきい値、障害判定しきい値）に基づいて、タスクの動作状態を判定する。タスク動作状態判定処理の詳細については、図８を用いて後述する。
【００４０】
演算装置１は、障害の兆候の有無を判定する（ステップＳ２）。障害の兆候がないと判定した場合（ステップＳ２；ＮＯ）、演算装置１は、障害兆候判定処理を終了する。
【００４１】
一方、障害の兆候があると判定した場合（ステップＳ２；ＹＥＳ）、演算装置１は、障害回避処理を呼び出して実行する（ステップＳ３）。障害回避処理では、演算装置１は、過去の障害回避処理の統計情報に基づいて、障害回避処理インデックステーブル７０を使用して障害原因に対応する障害回避手段を実行する。障害回避処理の詳細については、図９を用いて後述する。
【００４２】
続いて、演算装置１は、障害兆候パターン登録処理を呼び出して実行する（ステップＳ４）。障害兆候パターン登録処理では、演算装置１は、障害回避処理の実行結果から障害兆候パターンテーブル５０を更新し、自己学習を行う。障害兆候パターン登録処理の詳細については、図１０を用いて後述する。
【００４３】
次に、図８を用いて、監視制御装置１００の演算装置１（タスク動作状態判定処理部１１）が実行するタスク動作状態判定処理を説明する。図８は、本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置１００の演算装置１が実行するタスク動作状態判定処理のフローチャートである。
【００４４】
最初に、演算装置１は、タスク動作状態の測定値（状態データ）をタスク動作状態テーブル４０から取得する（ステップＳ１１）。演算装置１は、障害兆候パターンを障害兆候パターンテーブル５０から取得する（ステップＳ１２）。演算装置１は、ステップＳ１１で取得したタスク動作状態の測定値とステップＳ１２で取得した障害兆候パターンとを比較する（ステップＳ１３）。
【００４５】
演算装置１は、比較結果から次の式（１）を用いて障害兆候パターンの一致率（Ｐ）を算出する（ステップＳ１４）。ここで、タスク動作状態テーブル４０のＣＰＵ負荷率、ヒープ使用率、タスク実行時間をそれぞれ、ａ１、ｂ１、ｃ１とし、障害兆候パターンテーブル５０のＣＰＵ負荷率、ヒープ使用率、タスク実行時間をそれぞれ、ａ２、ｂ２、ｃ２とする。
【００４６】
【数１】
0005797602.tif 000002
【００４７】
ここで、ステップＳ１１〜ステップＳ１４までの動作を、図２に示すタスク動作状態テーブル４０及び図３に示す障害兆候パターンテーブル５０を用いて具体的に説明する。以下では、説明を簡単にするため、演算装置１が、タスクＡについてタスク動作状態判定処理を実行する場合を例にして説明する。
【００４８】
演算装置１は、タスク動作状態テーブル４０のタスク名＝タスクＡのレコードを参照し、タスク動作状態の測定値として、ＣＰＵ負荷率＝３０％、ヒープ使用率＝２０％及びタスク実行時間２０ｍｓを取得する（ステップＳ１１）。
【００４９】
演算装置１は、障害兆候パターンテーブル５０の障害ＩＤ＝１のレコードを参照し、障害兆候パターンを取得する（ステップＳ１２）。このとき取得された障害兆候パターンは、ＣＰＵ負荷率＝７０％、ヒープ使用率＝４０％、タスク実行時間＝２００ｍｓを含む。
【００５０】
演算装置１は、ステップＳ１１で取得したタスク動作状態の測定値とステップＳ１２で取得した障害兆候パターンとを比較する（ステップＳ１３）。
【００５１】
演算装置１は、比較結果から式（１）を用いて障害兆候パターンの一致率（Ｐ）を算出する（ステップＳ１４）。具体的な数値を当てはめると、ａ１＝３０％、ｂ１＝２０％、ｃ１＝２０ｍｓ、ａ２＝７０％、ｂ２＝４０％、ｃ２＝２００ｍｓであり、Ｐ＝０．２７８となる。
【００５２】
ただし、タスク動作状態テーブル４０及び障害兆候パターンテーブル５０のＣＰＵ負荷率、ヒープ使用率、タスク実行時間のいずれか１つが０又はＮ／Ａ（Not Applicable）である場合、残りの２項目の相乗平均を一致率とする。
【００５３】
例えば、図３に示す障害兆候パターンテーブル５０の障害ＩＤ＝２のレコードでは、タスク実行時間がＮ／Ａであり、Ｐ＝ｓｑｒｔ（（ａ１／ａ２）×（ｂ１／ｂ２））となる。具体的な数値を当てはめると、ａ１＝３０％、ｂ１＝２０％、ａ２＝４０％、ｂ２＝８０％であり、Ｐ＝０．４３３となる。なお、ｓｑｒｔ（ｘ）はｘの平方根を戻り値とする関数である。
【００５４】
また、タスク動作状態テーブル４０及び障害兆候パターンテーブル５０のＣＰＵ負荷率、ヒープ使用率、タスク実行時間のいずれか２つが０又はＮ／Ａ（Not Applicable）である場合、残りの１項目の値を一致率とする。
【００５５】
例えば、図３に示す障害兆候パターンテーブル５０の障害ＩＤ＝３のレコードでは、ＣＰＵ負荷率及びヒープ使用率がＮ／Ａであり、Ｐ＝ｃ１／ｃ２となる。具体的な数値を当てはめると、ｃ１＝２０ｍｓ、ｃ２＝１００ｍｓであり、Ｐ＝０．２となる。
【００５６】
図８に戻り、演算装置１は、すべての障害兆候パターンと比較したか否かを判定する（ステップＳ１５）。演算装置１は、すべての障害兆候パターンと比較していないと判定した場合（ステップＳ１５；ＮＯ）、ステップＳ１２に処理を戻す。
【００５７】
一方、演算装置１は、すべての障害兆候パターンと比較したと判定した場合（ステップＳ１５；ＹＥＳ）、ステップＳ１４で算出した一致率の最大値を求める（ステップＳ１６）。
【００５８】
ここで、ステップＳ１６の動作を、図２に示すタスク動作状態テーブル４０のタスク名＝タスクＡのレコード及び図３に示す障害兆候パターンテーブル５０の障害ＩＤ＝１，２，３のレコードを用いて具体的に説明する。なお、説明を簡単にするため、障害兆候パターンテーブル５０は、障害ＩＤ＝１，２，３のレコードのみ格納していると仮定する。
【００５９】
障害ＩＤ＝１，２，３の障害兆候パターンに対して、ステップＳ１４において算出した一致率（Ｐ）は、前述したように、それぞれ、０．２７８、０．４３３、０．２となる。したがって、演算装置１は、一致率の最大値として、０．４３３を特定する（求める）。
【００６０】
図８に戻り、演算装置１は、ステップＳ１６で算出した一致率の最大値が障害判定しきい値テーブル６０の測定頻度変更しきい値よりも小さいか否かを判定する（ステップＳ１７）。ここで、測定頻度変更しきい値は、図７に示す障害兆候判定処理を実行する頻度を上昇するか否かを判定するしきい値である。
【００６１】
一致率の最大値が測定頻度変更しきい値よりも小さいと判定した場合（ステップＳ１７；ＹＥＳ）、演算装置１は、障害兆候判定処理の実行頻度をタスク毎に設定し（ステップＳ１８）、呼び出し元の障害兆候判定処理にリターンする。具体的には、演算装置１は、障害兆候判定処理をタスクの実行終了時に１回のみ実行するように実行頻度を設定して、呼び出し元の障害兆候判定処理にリターンする。
【００６２】
例えば、ステップＳ１６で示したケースでは、一致率の最大値が０．４３（４３％）であり、図４に示す障害判定しきい値テーブル６０では、タスクＡについて、測定頻度変更しきい値、障害判定しきい値は、それぞれ、８０％、９０％である。この場合、演算装置１は、一致率（Ｐ）の最大値「４３％」が測定頻度変更しきい値「８０％」より小さいと判定し（ステップＳ１７；ＹＥＳ）、ステップＳ１８の処理によりタスクＡについて障害兆候判定処理の実行頻度をタスクの実行終了時に１回のみ実行するように実行頻度を設定する。
【００６３】
ここで、演算装置１は、例えば、一致率（Ｐ）の最大値が測定頻度変更しきい値以上であり（ステップＳ１７；ＮＯ）、且つ、障害判定しきい値以下であると判定した場合に（ステップＳ１９；ＮＯ）、すべてのタスクについて障害兆候判定処理の実行頻度を上昇する（ステップＳ２０で後述する）。しかし、一致率（Ｐ）が測定頻度変更しきい値より小さいと判定した場合（ステップＳ１７；ＹＥＳ）、演算装置１は、ステップＳ１８の処理によりタスクＡについて障害兆候判定処理の実行頻度を元に戻すことになる。一方、演算装置１は、すべてのタスクについて障害兆候判定処理の実行頻度を上昇していない場合も、ステップＳ１８の処理によりタスクＡの実行頻度を元に戻す。この場合、実質的に、実行頻度に変化はない。これにより、ＣＰＵの負荷を抑制することができる。
【００６４】
一方、演算装置１は、一致率の最大値が測定頻度変更しきい値以上であると判定した場合（ステップＳ１７；ＮＯ）、一致率の最大値が障害判定しきい値テーブル６０の障害判定しきい値よりも大きいか否かを判定する（ステップＳ１９）。ここで、障害判定しきい値は、障害の兆候の有無を判定するしきい値である。
【００６５】
一致率の最大値が障害判定しきい値以下であると判定した場合（ステップＳ１９；ＮＯ）、演算装置１は、すべてのタスクについて障害兆候判定処理の実行頻度を上昇し（ステップＳ２０）、呼び出し元の障害兆候判定処理にリターンする。具体的には、例えば、図６（Ｄ）で説明したように、実行頻度を上昇する。この場合、１つのタスクに対して障害兆候判定処理が実行される回数は２回となる。これにより、障害が発生する前に障害を回避する可能性が高まる。なお、ステップＳ２０において、すでに障害兆候判定処理の実行頻度が上昇している場合は、演算装置１はその実行頻度をさらに上昇させることはない。この場合、ステップＳ２０の前後で実行頻度は変化しない。
【００６６】
ステップＳ１９において、一致率の最大値が障害判定しきい値よりも大きいと判定した場合（ステップＳ１９；ＹＥＳ）、すなわち、障害の兆候があると判定した場合、呼び出し元の障害兆候判定処理にリターンする。なお、この場合、図７に示す障害兆候判定処理において、障害の兆候があるため、ステップＳ２でＹＥＳとなり、障害回避処理が実行される（ステップＳ３）。
【００６７】
次に、図９を用いて、監視制御装置１００の演算装置１（障害回避処理部１２）が実行する障害回避処理を説明する。図９は、本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置１００の演算装置１が実行する障害回避処理のフローチャートである。
【００６８】
最初に、演算装置１は、障害兆候パターンテーブル５０から一致率が最大値となる障害兆候パターンを取得する（ステップＳ２１）。なお、一致率の最大値は、図８のステップＳ１６で算出されたものである。演算装置１は、取得した障害兆候パターンに対応する障害原因回避率の中から最大値を求める（ステップＳ２２）。
【００６９】
例えば、図３に示す障害兆候パターンテーブル５０において、障害ＩＤ＝２のレコードの障害兆候パターンの一致率（Ｐ）が最大値であったと仮定する。この場合、演算装置１は、障害ＩＤ＝２のレコードの障害兆候パターンを取得する（ステップＳ２１）。障害ＩＤ＝２のレコードにおいて、取得した障害兆候パターンに対応する障害原因は「処理渋滞」、「ヒープメモリの枯渇」、「処理順序違反」の３つある。また、障害原因「処理渋滞」に対応する障害原因回避率は４０％であり、障害原因「ヒープメモリの枯渇」に対応する障害原因回避率は６０％であり、障害原因「処理順序違反」に対応する障害原因回避率は、０％である。したがって、演算装置１は、取得した障害兆候パターンに対応する障害原因回避率の中から障害原因回避率の最大値として、６０％を特定する（求める）。
【００７０】
図９に戻り、演算装置１は、障害原因回避率の中に、最大値が同じものがないか否か判定する（ステップＳ２３）。
【００７１】
演算装置１は、障害原因回避率の中に、最大値が同じものがあると判定した場合（ステップＳ２３；ＮＯ）、状態データごとの一致率を算出し、最大値を求める（ステップＳ２４）。具体的には、演算装置１は、次の式（２）〜式（４）を用いて、状態データごとの一致率として、ＣＰＵ負荷率の一致率（Ｘ）、ヒープ使用率の一致率（Ｙ）、タスク実行時間の一致率（Ｚ）を個別に算出し、その中から最大値を求める。ここで、ａ１、ｂ１、ｃ１、ａ２、ｂ２、ｃ２は、式（１）で用いたものと同一である。ＣＰＵ負荷率の一致率（Ｘ）は、障害兆候パターンテーブル５０のヒープ使用率及びタスク実行時間がＮ／Ａである場合の障害兆候パターンの一致率（Ｐ）に該当する。また、ヒープ使用率の一致率（Ｙ）は、障害兆候パターンテーブル５０のＣＰＵ負荷率及びタスク実行時間がＮ／Ａである場合の障害兆候パターンの一致率（Ｐ）に該当する。さらに、タスク実行時間の一致率（Ｚ）は、障害兆候パターンテーブル５０のＣＰＵ負荷率及びヒープ使用率がＮ／Ａである場合の障害兆候パターンの一致率（Ｐ）に該当する。
【００７２】
【数２】
0005797602.tif 000003
【００７３】
【数３】
0005797602.tif 000004
【００７４】
【数４】
0005797602.tif 000005
【００７５】
演算装置１は、ステップＳ２５に処理を進め、状態データごとの一致率が最大値となる障害原因に対応する障害回避手段の先頭アドレスを障害回避処理インデックステーブル７０から取得する（ステップＳ２５）。
【００７６】
例えば、図３に示す障害兆候パターンテーブル５０において、障害ＩＤ＝１のレコードの障害兆候パターンの一致率（Ｐ）が最大値であったと仮定する。この場合、演算装置１は、障害ＩＤ＝１のレコードの障害兆候パターンを取得する（ステップＳ２１）。障害ＩＤ＝１のレコードにおいて、障害原因「処理渋滞」に対応する障害原因回避率は４０％であり、障害原因「ヒープメモリの枯渇」に対応する障害原因回避率は４０％であり、障害原因「処理順序違反」に対応する障害原因回避率は２０％である。したがって、障害原因回避率の最大値は４０％であるが、障害原因回避率が４０％となるものは２つある。このため、演算装置１は、障害原因回避率の最大値に対応する障害原因を特定し、特定した障害原因に対応する障害回避手段を１つだけに特定することができない。そこで、演算装置１は、次のようにして障害回避手段を１つだけに特定する。
【００７７】
演算装置１は、障害原因回避率の中に、最大値が同じものがあると判定する（ステップＳ２３；ＮＯ）。続いて、演算装置１は、状態データごとの一致率を算出し、最大値を求める（ステップＳ２４）。具体的には、ａ１＝３０％、ｂ１＝２０％、ｃ１＝２０ｍｓ、ａ２＝７０％、ｂ２＝４０％、ｃ２＝２００ｍｓであり、Ｘ＝０．４２９、Ｙ＝０．５、Ｚ＝０．１となる。演算装置１は、状態データごとの一致率（Ｘ，Ｙ，Ｚ）の中から最大値として、Ｙ＝０．５を求める（ステップＳ２４）。
【００７８】
ここで、演算装置１は、ＣＰＵ負荷率の一致率（Ｘ）が最大値となる場合、障害回避処理インデックステーブル７０から障害原因「処理渋滞」に対応する障害回避手段「優先度変更処理」の先頭アドレスを取得する。演算装置１は、ヒープ使用率の一致率（Ｙ）が最大値となる場合、障害回避処理インデックステーブル７０から障害原因「ヒープメモリの枯渇」に対応する障害回避手段「ヒープメモリデフラグ処理」の先頭アドレスを取得する。演算装置１は、タスク実行時間の一致率（Ｚ）が最大値となる場合、障害回避処理インデックステーブル７０から障害原因「処理順序違反」に対応する障害回避手段「後タスク遅延処理」の先頭アドレスを取得する。
【００７９】
上記の例では、ヒープ使用率の一致率（Ｙ）が最大値となるため、演算装置１は、障害回避処理インデックステーブル７０から障害原因「ヒープメモリの枯渇」に対応する障害回避手段「ヒープメモリデフラグ処理」の先頭アドレスを取得する（ステップＳ２５）。
【００８０】
図９に戻り、ステップＳ２３において、障害原因回避率の中に、最大値が同じものがないと判定した場合（ステップＳ２３；ＹＥＳ）、演算装置１は、障害原因回避率の最大値に対応する障害原因を特定し、特定した障害原因に対応する障害回避手段の先頭アドレスを障害回避処理インデックステーブル７０から取得する（ステップＳ２５）。
【００８１】
例えば、図３に示す障害兆候パターンテーブル５０において、障害ＩＤ＝２のレコードの障害兆候パターンの一致率（Ｐ）が最大値であったと仮定する。この場合、演算装置１は、障害ＩＤ＝２のレコードの障害兆候パターンを取得する（ステップＳ２１）。処理ＩＤ＝２のレコードにおいて、障害原因「処理渋滞」に対応する障害原因回避率は４０％であり、障害原因「ヒープメモリの枯渇」に対応する障害原因回避率は６０％であり、障害原因「処理順序違反」に対応する障害原因回避率は０％である。演算装置１は、障害原因回避率の最大値「６０％」に対応する障害原因「ヒープメモリの枯渇」を特定し、特定した障害原因「ヒープメモリの枯渇」に対応する障害回避手段「ヒープメモリデフラグ処理」の先頭アドレスを障害回避処理インデックステーブル７０から取得する（ステップＳ２５）。
【００８２】
図９に戻り、演算装置１は、取得した先頭アドレスにおいて定義される障害回避手段を実行し（ステップＳ２６）、呼び出し元の障害兆候判定処理にリターンする。なお、この後、図７に示す障害兆候判定処理において、障害兆候パターン登録処理が実行される（ステップＳ４）。これにより、統計上、最も有効な障害回避手段を実行することができるので、障害の発生を的確に抑制することができる。
【００８３】
次に、図１０を用いて、監視制御装置１００の演算装置１（障害兆候パターン登録処理部１３）が実行する障害兆候パターン登録処理を説明する。図１０は、本発明の実施形態である障害回避処理装置を組み込んだ監視制御装置１００の演算装置１が実行する障害兆候パターン登録処理のフローチャートである。ここで、障害兆候パターン登録処理が実行される要因は２つある。１つ目は、障害兆候判定処理の中でサブルーチンとして呼び出されて実行される場合であり、２つ目は、タスクが障害の発生により強制終了した際に、ＯＳから実行される場合である。２つ目のケースでは、新規の障害兆候パターンが障害兆候パターンテーブル５０に登録される。例えば、強制終了したときのＣＰＵ使用率、ヒープ使用率、タスク実行時間がそれぞれ、７０％、２０％、Ｎ／Ａの場合、演算装置１は、障害兆候パターン登録処理がＯＳから実行されることにより、これらの状態データで構成される障害兆候パターンを新規の障害兆候パターンとして登録する。なお、この障害兆候パターンに対応する障害原因回避率はすべて０％となる。
【００８４】
最初に、演算装置１は、障害が回避されたか否かを判定する（ステップＳ３１）。障害が回避されたと判定した場合（ステップＳ３１；ＹＥＳ）、演算装置１は、次の式（５）を用いて、対象障害原因回避率（Ｑ）を設定し（ステップＳ３７）、ステップＳ３５に処理を進める。
【００８５】
【数５】
0005797602.tif 000006
【００８６】
ここで、ｋ、Ｎは、それぞれ対象障害原因復帰成功回数、障害回避手段実行回数である。対象障害原因回避率（Ｑ）は、障害回避手段が実行された障害原因に対する障害原因回避率を意味する。ステップＳ３７により、Ｑは増加する。これは、この障害原因回避率の障害原因に対応する障害回避手段を実行することにより、障害が回避されたことから、この障害回避手段が有効であることを示す。
【００８７】
一方、障害が回避されないと判定した場合（ステップＳ３１；ＮＯ）、演算装置１は、タスク動作状態判定処理を実行済であるか否かを判定する（ステップＳ３２）。タスク動作状態判定処理を実行済でないと判定した場合（ステップＳ３２；ＮＯ）、すなわち、タスクが強制終了し、障害兆候パターン登録処理がＯＳから実行された場合、演算装置１は、強制終了したときの状態データを新規の障害兆候パターンとして、障害兆候パターンテーブル５０に登録し（ステップＳ３３）、呼び出し元（ＯＳ）にリターンする。
【００８８】
ステップＳ３２において、タスク動作状態判定処理を実行済であると判定した場合（ステップＳ３２；ＹＥＳ）、演算装置１は、次の式（６）を用いて、対象障害原因回避率（Ｑ）を設定する（ステップＳ３４）。ここで、ｋ、Ｎは式（５）で用いたものと同一である。
【００８９】
【数６】
0005797602.tif 000007
【００９０】
ここで、ステップＳ３４により、Ｑは減少する。これは、この障害原因回避率の障害原因に対応する障害回避手段を実行することにより、障害が回避されなかったことから、この障害回避手段が有効でないことを示す。
【００９１】
続いて、演算装置１は、次の式（７）を用いて、対象外障害原因回避率（Ｒ）を設定する（ステップＳ３５）。ここで、ｍは、対象外障害原因復帰回数である。Ｎは式（５）で用いたものと同一である。対象外障害原因回避率（Ｒ）は、障害回避手段が実行されなかった障害原因に対する障害原因回避率を意味する。
【００９２】
【数７】
0005797602.tif 000008
【００９３】
例えば、「処理渋滞」に対応する障害回避手段を実行したにもかかわらず、障害が発生した場合、演算装置１は、「ヒープメモリの枯渇」の障害原因回避率を、式（７）を用いて算出した値に設定する。
【００９４】
ここで、ステップＳ３４により、対象外障害原因に対応する障害回避手段が実行されなかったにもかかわらず、Ｒが減少する。これは、この障害回避手段が有効でないことを示すことにもなるが、式６のＱの方がＲより小さくなる。したがって、相対的には、図８のステップＳ１６において、この対象外障害原因回避率（Ｒ）が最大値となる可能性は式６の対象障害原因回避率（Ｑ）より大きくなる。
【００９５】
演算装置１は、ステップＳ３５を他の障害原因にも適用し、障害兆候パターンテーブル５０を更新し（ステップＳ３６）、呼び出し元の障害兆候判定処理にリターンする。上記ステップＳ３５で説明した例では、演算装置１は、「処理順序違反」の障害原因回避率を、式（７）を用いて算出した値に設定する。これにより、障害兆候パターンテーブル５０の障害原因回避率が更新され、演算装置１は有効な障害回避手段を自己学習することができる。なお、ステップＳ３７〜ステップＳ３６によって更新された障害原因回避率の合計は１００％となる。これについては、図１０及び図１１を用いて後述する。
【００９６】
次に、図１０及び図１１を用いて、障害兆候パターン登録処理によって障害兆候パターンテーブル５０の障害原因回避率がどのように更新されるかを説明する。図１１は、あるタイミングにおいて障害兆候パターン登録処理を実行する前の障害兆候パターンテーブル５０Ａと障害兆候パターン登録処理を実行した後の障害兆候パターンテーブル５０Ｂの一例を示す図である。
【００９７】
ここで、図１１に示すように、障害兆候パターンテーブル５０Ａの障害ＩＤ＝１のレコードにおいて、障害原因「障害渋滞」に対応する障害原因回避率をｘ１／１００、障害原因「ヒープメモリの枯渇」に対応する障害原因回避率をｙ１／１００、障害原因「処理順序違反」に対応する障害原因回避率をｚ１とし、障害回避手段実行回数＝１００であるとする。また、ｘ１＋ｙ１＋ｚ１＝１００とする。
【００９８】
一方、障害兆候パターンテーブル５０Ｂの障害ＩＤ＝１のレコードにおいて、障害原因「障害渋滞」に対応する障害原因回避率をＲ１、障害原因「ヒープメモリの枯渇」に対応する障害原因回避率をＱ、障害原因「処理順序違反」に対応する障害原因回避率をＲ２とする。以下、障害原因「ヒープメモリの枯渇」に対応する障害原因回避手段を実行した場合を例にして、障害が回避された場合と障害が回避されなかった場合に分けて説明する。
【００９９】
（障害が回避された場合）
障害が回避された場合、図１０のステップＳ３７により、Ｑ＝（ｙ１＋１）／（１００＋１）、ステップＳ３５により、Ｒ１＝ｘ１／（１００＋１）、ステップＳ３６により、Ｒ２＝ｚ１／（１００＋１）となる。したがって、Ｒ１＋Ｑ＋Ｒ２＝（ｘ１＋ｙ１＋ｚ１＋１）／１０１となる。ｘ１＋ｙ１＋ｚ１＝１００であるから、Ｒ１＋Ｑ＋Ｒ２＝１０１／１０１＝１００％となる。
【０１００】
（障害が回避されなかった場合）
障害が回避されなかった場合、図１０のステップＳ３４により、Ｑ＝（ｙ１−１）／（１００＋１）、ステップＳ３５により、Ｒ１＝ｘ１／（１００＋１）、ステップＳ３６により、Ｒ２＝ｚ１／（１００＋１）となる。したがって、Ｒ１＋Ｑ＋Ｒ２＝（ｘ１＋ｙ１＋ｚ１−１）／１０１となる。ｘ１＋ｙ１＋ｚ１＝１００であるから、Ｒ１＋Ｑ＋Ｒ２＝９９／１０１＝９８％となる。
【０１０１】
以上、説明したように、演算装置１は、タスク動作状態の測定値との一致率が高い障害兆候パターンに対応する障害回避手段を実行する。このため、障害発生の兆候を事前に検知して障害を防止することができる。
【０１０２】
また、障害の兆候がある程度認められると判定した場合、演算装置１は、障害兆候判定処理の実行頻度を上昇する。このため、障害が発生する前に障害を回避する可能性が高まる。
【０１０３】
さらに、演算装置１は、障害原因回避率の最大値に対応する障害原因を特定し、特定した障害原因に対応する障害回避手段を実行する。このため、統計上、最も有効な障害回避手段を実行することができ、障害の発生を的確に抑制することができる。
【０１０４】
また、新しい障害兆候パターンが登録されることにより、或いは、障害回避手段が実行されることにより、統計情報が蓄積される。このため、演算装置１は有効な障害回避手段を自己学習することができる。これにより、システムの動作時間が経過するにつれてシステムの信頼性の向上が期待できる。
【０１０５】
なお、従来、ＣＰＵ負荷率以外の原因による障害兆候を検知できないという課題があった。本実施形態によれば、障害兆候の検知の際に、ＣＰＵ負荷率だけでなく、ヒープ使用率、タスク実行時間を監視するので、障害兆候を広く検知することができる。
【０１０６】
また、従来、どのタスクが問題となっているかを特定し、検知した障害兆候に応じた障害回避手段を実行し、障害の発生を回避することができないという課題があった。本実施形態によれば、それぞれのタスクの実行が終了するタイミングで、障害兆候判定処理が実行される。したがって、どのタスクが問題となっているかを特定し、検知した障害兆候に応じた障害回避手段を実行し、障害の発生を回避することができる。
【０１０７】
なお、本発明は上記記載した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、またある実施例の構成に他の実施例の構成を加えることも可能である。
【０１０８】
上記実施形態では、タスク動作状態テーブル４０は、状態データとして、ＣＰＵ負荷率、ヒープ使用率及びタスク実行時間を格納するが、状態データの種類及び数は任意である。
【０１０９】
上記実施形態では、障害兆候パターンテーブル５０は、障害兆候が現れるときの状態データとして、ＣＰＵ負荷率、ヒープ使用率及びタスク実行時間を含むが、状態データの種類及び数は任意である。ただし、状態データの種類及び数は、タスク動作状態テーブル４０と障害兆候パターンテーブル５０において同じである必要がある。
【０１１０】
上記実施形態では、障害兆候判定処理の実行頻度を上昇すると、１つのタスクに対して２回、障害兆候判定処理が実行されるが、実行回数は任意である。また、障害兆候判定処理が実行されるタイミングも任意である。
【符号の説明】
【０１１１】
１…演算装置
２…入力装置
３…出力装置
４…記憶装置
５…通信装置
６…バス
１０…障害兆候判定処理部
１１…タスク動作状態判定処理部
１２…障害回避処理部
１３…障害兆候パターン登録処理部
４０…タスク動作状態テーブル
５０、５０Ａ、５０Ｂ…障害兆候パターンテーブル
６０…障害判定しきい値テーブル
７０…障害回避処理インデックステーブル
８０…プログラム
１００…監視制御装置
２００…電力プラント
２０１…子局装置
３００…通信ネットワーク
【図１】
0005797602.tif 000009
【図２】
0005797602.tif 000010
【図３】
0005797602.tif 000011
【図４】
0005797602.tif 000012
【図５】
0005797602.tif 000013
【図６】
0005797602.tif 000014
【図７】
0005797602.tif 000015
【図８】
0005797602.tif 000016
【図９】
0005797602.tif 000017
【図１０】
0005797602.tif 000018
【図１１】
0005797602.tif 000019