(57)【要約】【課題】システム稼動時におけるメモリリーク発生を確実に検出可能とすることにより、システムの安定稼動を実現する。【解決手段】コンピュータ本体の現在の空きメモリ容量を読み出し（Ｓ２０１）、現在の空きメモリ容量が、前回値以下であり（Ｓ２０２のＮＯ、Ｓ２０３のＮＯ）、変化カウンタのカウント値が予め設定された規定値より多い場合（Ｓ２０４のＮＯ）には、メモリリーク検出と判定し、メモリリーク検出を示すアラーム信号を出力する（Ｓ２０５）。変化カウンタのカウント値が規定値以下である場合（Ｓ２０４のＮＯ）には、変化カウンタをカウントアップし（Ｓ２０６）、現在の空きメモリ容量が前回値より多い場合（Ｓ２０２のＮＯ）には、変化カウンタをクリアする（Ｓ２０７）。現在の空きメモリ容量を前回値として記録して（Ｓ２０８）、２４時間処理を停止した（Ｓ２０９）後、翌日の同時刻にメモリリーク検出処理を再開する。【選択図】図２
2008003945.tif 000002
【特許請求の範囲】
【請求項１】
対象システムの監視制御を行う主制御装置を構成するコンピュータ本体とこのコンピュータ本体の内部異常を検出する異常監視装置を備えた監視制御システムのコンピュータ管理方法において、
前記異常監視装置により、
前記コンピュータ本体のメモリの変化状況を監視して、メモリリークを検出した場合にメモリリーク検出を示すアラームを出力するメモリリーク検出処理を行う
ことを特徴とする監視制御システムのコンピュータ管理方法。
【請求項２】
前記異常監視装置により、
前記コンピュータ本体の起動時に、このコンピュータ本体の現時点での総メモリ容量を検出し、検出された総メモリ容量に対して予め設定されたメモリ確保比率のメモリ容量を動的データ領域として確保するダミープログラムをコンピュータ本体上で起動させる初期化処理を行い、
前記メモリリーク検出処理は、
前記コンピュータ本体の空きメモリ容量が、総メモリ容量に対して予め設定された空きメモリ比率以下に低下したか否かをチェックして、空きメモリ比率以下に低下した場合に、容量不足を示すアラームを出力すると共に前記ダミープログラムが動作していればこのダミープログラムを停止する空きメモリ容量チェック処理を含む
ことを特徴とする請求項１に記載の監視制御システムのコンピュータ管理方法。
【請求項３】
前記メモリリーク検出処理は、
前記コンピュータ本体の空きメモリ容量が、総メモリ容量に対して予め設定された第１の空きメモリ比率以下に低下したか否かをチェックして、第１の空きメモリ比率以下に低下した場合に、容量不足を示すアラームを出力すると共に前記ダミープログラムを停止する第１の空きメモリ容量チェック処理と、
前記ダミープログラムの停止後、前記コンピュータ本体の空きメモリ容量が、総メモリ容量に対して予め設定された第２の空きメモリ比率以下に低下したか否かをチェックして、第２の空きメモリ比率以下に低下した場合に、容量不足を示すアラームを出力する第２の空きメモリ容量チェック処理を含む
ことを特徴とする請求項２に記載の監視制御システムのコンピュータ管理方法。
【請求項４】
前記メモリ確保比率は１０％、前記空きメモリ比率は５％である
ことを特徴とする請求項２または請求項３に記載の監視制御システムのコンピュータ管理方法。
【請求項５】
前記初期化処理は、検出された総メモリ容量に対して予め設定されたメモリリーク除外比率のメモリ容量をメモリリーク除外定数として設定する処理を含み、
前記メモリリーク検出処理は、前記コンピュータ本体の空きメモリ容量の変化量が、前期メモリリーク除外定数以上である場合に、メモリリークではなく通常の容量変化であると判断する処理を含む
ことを特徴とする請求項２乃至請求項４のいずれか１項に記載の監視制御システムのコンピュータ管理方法。
【請求項６】
前記メモリリーク除外比率は１％である
ことを特徴とする請求項５に記載の監視制御システムのコンピュータ管理方法。
【請求項７】
対象システムの監視制御を行う主制御装置を構成するコンピュータ本体とこのコンピュータ本体の内部異常を検出する異常監視装置を備えた監視制御システムにおいて、
前記異常監視装置は、
前記コンピュータ本体のメモリの変化状況を監視して、メモリリークを検出した場合にメモリリーク検出を示すアラームを出力するメモリリーク検出手段を有する
ことを特徴とする監視制御システム。
【請求項８】
対象システムの監視制御を行う主制御装置を構成するコンピュータ本体とこのコンピュータ本体の内部異常を検出する異常監視装置を備えた監視制御システムの異常監視装置に使用されるコンピュータ管理プログラムにおいて、
前記異常監視装置により、
前記コンピュータ本体のメモリの変化状況を監視して、メモリリークを検出した場合にメモリリーク検出を示すアラームを出力するメモリリーク検出処理を行わせる
ことを特徴とする監視制御システムのコンピュータ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象システムの監視制御を行う監視制御システムにおいて、システムの安定稼動を確保するための技術に関するものである。
【背景技術】
【０００２】
従来、各種システムの監視制御を行う監視制御システムにおいては、主制御装置をコンピュータにより構成し、対象システムに応じたプログラムを用いて各種の処理を実現している。このような監視制御システムにおいては、監視制御システム自体の信頼性を高める観点から、主制御装置を構成するコンピュータに、コンピュータ本体の内部異常をハードウェアにより検出する異常監視装置を内蔵させたものが存在している（例えば、特許文献１参照）。
【０００３】
具体的に、産業用の監視制御システムに使用される近年の産業用コンピュータにおいては、コンピュータ本体の内部異常を検出するために、ＲＡＳ機能と総称される異常監視装置が装備されている。ここで、ＲＡＳ機能とは、コンピュータシステムの信頼性(Reliability)、可用性(Availability)、保守性(Serviceability)の向上を目的とした機能の総称である。このようなＲＡＳ機能としては、例えば、プログラム動作不可状態を検知するためのウォッチドッグタイマー（ＷＤＴ）機能等が知られている。
【特許文献１】特開２００４−３３４５４８
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、コンピュータに実装されている一次記憶領域（以下メモリ）を利用してプログラムは動作するが、プログラム上の不備や想定外の動作により動的に確保したメモリの開放を行わず、利用可能なメモリ容量が不足してしまうことがある。この現象は、一般的に、メモリリークと呼ばれている。
【０００５】
このメモリリークが発生した場合、特定のプログラムの動作が停止するのみでなく、ＯＳを含めたコンピュータシステム全体のプログラムの動作が停止してしまう場合がある。そのため、監視制御システムに使用されるコンピュータにおいてこのメモリリークが発生すると、本来の目的であるシステム監視制御が実施できなくなる可能性がある。
【０００６】
これに対し、コンピュータ制御システムのプログラミングの分野においては、従来、プログラム毎にメモリリークを発生させない仕組みやロジックの組み方およびデバッグ方法等が、コンパイラメーカや各種デバッガプログラム開発メーカ等により発表されている。しかし、メモリリークを発生させないように注意して作成したプログラムであっても、プログラム検証ではメモリリークの発生が発見できないまま、システム稼動以降にメモリリーク発生に至る場合がある。
【０００７】
すなわち、メモリリークは個々のプログラムの完成度に起因している問題であり、十分なプログラム検証を実施していれば防げる人的要因不適合であるが、実際上は、概して、十分なプログラム検証を実施することは困難である。
【０００８】
まず、プログラム開発者は、自身が開発したプログラムを含めたシステム全体の検証において、メモリリークを含めた各種の問題が発生しないことを検証するが、現実的には、異常処理全てのロジックをスルーした検査ができない場合や、ロジック分岐点における全ての条件設定ができない場合が多く、開発者自身のロジック目視検査による検証を実施する場合が多い。
【０００９】
また、コンピュータ制御システムにおいては、２４時間３６５日連続稼働を実施しているシステムがある。このようなシステムでは、プログラム検証に費やした時間をはるかに超えた長時間の連続動作が要求されるので、カレンダーの操作ではなく実時間として長時間経過することによるメモリリークの発生を検証することは、現実的に困難な場合が多い。
【００１０】
そしてまた、最近は、開発者の自製プログラムのみでシステムを構成することはほぼ皆無で、ＯＳを含めた購入プログラムとの組み合わせを余儀なくされている。そのような複数のプログラムを組み合わせたシステムにおいて、動作試験のみでメモリリークの発生を検証することは困難である。
【００１１】
以上のように、プログラム検証時にメモリリークの発生を確実に検証することは困難であるため、監視制御システムのコンピュータにおいても、十分なプログラム検証を行うことができないまま、システム稼動以降にメモリリークが発生し、本来の目的であるシステム監視制御が実施できなくなる可能性がある。
【００１２】
これに対して、ＲＡＳ機能の一つとして知られている前述したウォッチドッグタイマー（ＷＤＴ）機能は、対象のプログラムが動作不可に陥り、特定時間内に応答ができないことを検知するのみであるため、そのプログラム動作不可状態が、メモリリーク発生によるものであるのか、あるいは、それ以外のプログラム異常であるかを区別することはできない。
【００１３】
本発明は、上記のような従来技術の課題を解決するために提案されたものであり、その目的は、システム稼動時におけるメモリリーク発生を確実に検出可能とすることにより、システムの安定稼動を実現する監視制御システムとそのコンピュータ管理方法およびプログラムを提供することである。
【課題を解決するための手段】
【００１４】
本発明は、上記の目的を達成するために、コンピュータ本体のメモリの変化状況を監視してメモリリークを検出し、アラームを出力することにより、システム稼動時におけるメモリリーク発生を確実に検出して、システム運用管理者に警告を促すことができるようにしたものである。
【００１５】
すなわち、本発明の監視制御システムのコンピュータ管理方法は、対象システムの監視制御を行う主制御装置を構成するコンピュータ本体とこのコンピュータ本体の内部異常を検出する異常監視装置を備えた監視制御システムのコンピュータ管理方法において、異常監視装置により、コンピュータ本体のメモリの変化状況を監視して、メモリリークを検出した場合にメモリリーク検出を示すアラームを出力するメモリリーク検出処理を行うことを特徴としている。
【００１６】
また、本発明の監視制御システムおよびコンピュータ管理プログラムは、上記のコンピュータ管理方法の特徴をシステムおよびプログラムの観点からそれぞれ把握したものである。
【発明の効果】
【００１７】
本発明によれば、システム稼動時におけるメモリリーク発生を確実に検出可能であるため、システムの安定稼動を実現する監視制御システムとそのコンピュータ管理方法およびプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１８】
［第１の実施形態］
［システム構成］
図１は、本発明を適用した監視制御システムの第１の実施形態を示すブロック図である。この図１に示すように、本実施形態の監視制御システム１００は、対象システム２００の監視制御を行う主制御装置を構成するコンピュータ本体１１０と、コンピュータ本体１１０の内部異常を検出するＲＡＳ機能装置（異常監視装置）１２０から構成されている。
【００１９】
コンピュータ本体１１０は、ＣＰＵ１１１、メモリ１１２、補助記憶装置１１３、インタフェース１１４、等のハードウェア資源と、補助記憶装置１１３に保存された監視制御用プログラム１１５およびデータ１１６等のソフトウェア資源から構成されている。
【００２０】
ＲＡＳ機能装置１２０は、ＲＡＳ処理部１２１、ＲＡＳメモリ１２２、コンピュータ本体１１０の状態を検出する状態検出部１２３、コンピュータ本体１１０のハードウェアを制御するハードウェア制御部１２４、入出力部１２５等のハードウェア資源と、ＲＡＳメモリ１２２に記憶されたコンピュータ管理用プログラム１２６およびＲＡＳデータ１２７等のソフトウェア資源から構成されている。
【００２１】
ここで、状態検出部１２３は、ウォッチドッグタイマー（ＷＤＴ）等を含む既存の状態検出部１２３ａに、コンピュータ本体１１０のメモリ１１２のメモリ容量を読み出すメモリ容量読み出し部１２３ｂとメモリ容量の減少回数をカウントする変化カウンタ１２３ｃを追加したハードウェア資源であり、また、入出力部１２５は、信号入出力部１２５ａとアラーム信号生成部１２５ｂを含む。一方、コンピュータ管理用プログラム１２６は、本発明に従って監視制御システムのコンピュータ管理用に特化されたプログラムである。
【００２２】
ＲＡＳ機能装置１２０には、以上のような資源により、コンピュータ本体１１０のメモリ１１２の変化状況を監視して、メモリリークを検出した場合にメモリリーク検出を示すアラームを出力するメモリリーク検出手段１３０が構成されている。
【００２３】
［システム稼動時の動作］
以上のような第１の実施形態に係る監視制御システム１００の稼動時において、主制御装置を構成するコンピュータ本体１１０は、補助記憶装置１１３に保存されている監視制御用プログラム１１５をメモリ１１２上の作業領域で動作させ、ＣＰＵ１１１により監視制御用の処理を実行する。このようなシステム稼動時において、ＲＡＳ機能装置１２０に構成されたメモリリーク検出手段１３０は、メモリリーク検出処理を行う。
【００２４】
［メモリリーク検出処理］
図２は、第１の実施形態のメモリリーク検出手段１３０によるメモリリーク検出処理を示すフローチャートである。
【００２５】
この図２に示すように、メモリリーク検出手段１３０は、メモリ容量読出部１２３ｂにより、コンピュータ本体１１０のメモリ１１２における現在の空きメモリ容量を読み出し（Ｓ２０１）、現在の空きメモリ容量が、前回値以下である場合（Ｓ２０２のＮＯ、Ｓ２０３のＮＯ）には、変化カウンタ１２３ｃのカウント値が予め設定された規定値以下であるか否かを判断する（Ｓ２０４）。この場合、規定値の具体的な値は自由に選択可能であるが、例えば、規定値「６０カウンタ」と設定できる。
【００２６】
変化カウンタ１２３ｃのカウント値が規定値より多い場合（Ｓ２０４のＮＯ）には、メモリリーク検出と判定し、アラーム信号生成部１２５ｂによりメモリリーク検出を示すアラーム信号を生成して、信号入出力部１２５ａからアラーム信号の出力を行う（Ｓ２０５）。この場合、アラーム出力の方式は、画面やＬＥＤ等によるアラームメッセージの視覚的表示、アラーム音出力やアラームメッセージ音声出力等、システム運用管理者端末等の外部機器への送信等、適宜選択・組合せ可能である。
【００２７】
一方、変化カウンタ１２３ｃのカウント値が規定値以下である場合（Ｓ２０４のＹＥＳ）には、変化カウンタ１２３ｃをカウントアップする（Ｓ２０６）。また、現在の空きメモリ容量が前回値より多い場合（Ｓ２０２のＹＥＳ）には、変化カウンタ１２３ｃをクリアする（Ｓ２０７）。
【００２８】
そして、メモリリーク検出のアラーム信号を出力した（Ｓ２０５）後、変化カウンタ１２５ｃをカウントアップまたはクリアした（Ｓ２０６、Ｓ２０７）後、あるいは、現在の空きメモリ容量が前回値と変わらない場合（Ｓ２０３のＹＥＳ）は、現在の空きメモリ容量を前回値として記録して（Ｓ２０８）、２４時間処理を停止した（Ｓ２０９）後、翌日の同時刻にメモリリーク検出処理を再開する。
【００２９】
［作用効果］
以上のような第１の実施形態によれば、システム運用上、コンピュータ本体の空きメモリ領域が減少する傾向が発生した場合に、アラームを出力し、システム運用管理者に警告を促すことが可能となる。
【００３０】
すなわち、前述したように、プログラム検証を十分実施したプログラムにおいても、検討外のタイミングが発生する場合や長時間の連続運転時に想定していない組み合わせのロジックを通過してしまう可能性があり、メモリ開放を実施しないケースがあるが、本実施形態によれば、メモリリークが発生した場合でもシステムダウンに至る前に予め運転管理者に警報を促すことができる。したがって、システム運転開始後に本実施形態のメモリリーク検出処理を実施することにより、システム停止に至る以前にメモリリーク要因を調査して対応を図ることが可能となり、システムの安定稼動を実現し、システムの信頼性を確保することができる。
【００３１】
また、コンピュータ本体上の特定のプログラムでメモリリークの検出を実施するのではなく、コンピュータシステムに付随するＲＡＳ機能装置で実現することにより、システム中の特定のアプリケーションの不適合のみを検出するのではなく、システム全体の安全性、信頼性の確保が可能となる。
【００３２】
［第２の実施形態］
［システム構成］
図３は、本発明を適用した監視制御システムの第２の実施形態を示すブロック図である。この図３に示すように、本実施形態の監視制御システム１００は、第１の実施形態における監視制御システム１００のコンピュータ本体１１０に、ダミープログラム１１７を追加し、メモリリーク検出手段１３０によりこのダミープログラム１１７を起動・停止するように構成したものである。なお、他の構成は、第１の実施形態と同様である。
【００３３】
［システム稼動時の動作］
以上のような第２の実施形態に係る監視制御システム１００の稼動時において、主制御装置を構成するコンピュータ本体１１０は、補助記憶装置１１３に保存されている監視制御用プログラム１１５をメモリ１１２上で動作させ、ＣＰＵ１１１により監視制御用の処理を実行する。この場合、システム稼動開始時には、図４に示すようなメモリリーク検出手段１３０による初期化処理により、コンピュータ本体１１０におけるメモリ１１２上の作業領域の一部は、メモリ容量確保用のダミープログラム１１７により動的データ領域として確保される。
【００３４】
［初期化処理］
図４は、第２の実施形態のメモリリーク検出手段１３０による初期化処理を示すフローチャートである。
【００３５】
この図４に示すように、メモリリーク検出手段１３０は、システム稼動開始時において、メモリ容量読出部１２３ｂにより、コンピュータ本体１１０のメモリ１１２における現在の総メモリ容量を読み出し（Ｓ４０１）、総メモリ容量に対して予め設定されたメモリ確保比率のメモリ容量を動的データ領域として確保するダミープログラム１１７を起動する（Ｓ４０２）。この場合、メモリ確保比率の具体的な値は自由に設定可能であるが、例えば、図４に示すように、現在の総メモリ容量の１０％と設定できる。
【００３６】
なお、ダミープログラム１１７の起動に当たっては、メモリ確保関数（例えば、malloc）は、領域を確保しただけでは実メモリを取得しない場合があるため、乱数データを全領域に設定する。
【００３７】
［メモリリーク検出処理］
図５は、第２の実施形態のメモリリーク検出手段１３０によるメモリリーク検出処理を示すフローチャートである。
【００３８】
この図５に示すメモリリーク検出処理において、現在の空きメモリ容量を読み出し、現在の空きメモリ容量が前回値より低下した場合に、変化カウンタ１２３ｃのカウント値が規定値より多ければメモリリーク検出と判定してアラーム信号の出力を行い、あるいは、変化カウンタ１２５ｃをカウントアップまたはクリアするまでの一連の処理（Ｓ５０１〜Ｓ５０７）は、符号の下一桁が等しい図２の一連の処理（Ｓ２０１〜Ｓ２０７）と同様である。
【００３９】
本実施形態におけるメモリリーク検出処理においては、この一連の処理（Ｓ５０１〜Ｓ５０７）に続いて、空きメモリ容量チェック処理（Ｓ５１０）を行う。この空きメモリ容量チェック処理（Ｓ５１０）において、メモリリーク検出手段１３０は、現在の空きメモリ容量が総メモリ容量に対して予め設定された空きメモリ比率より低下したか否かをチェックする（Ｓ５１１）。この場合、空きメモリ比率の具体的な値は自由に設定可能であるが、例えば、図５に示すように、現在の総メモリ容量の５％と設定できる。
【００４０】
そして、現在の空きメモリ容量が空きメモリ比率よりも低下した場合（Ｓ５１１のＮＯ）には、メモリリーク検出手段１３０は、アラーム信号生成部１２５ｂにより、メモリ総容量不足を示すアラーム信号を生成して、信号入出力部１２５ａからアラーム信号の出力を行うと共に、コンピュータ本体１１０上でダミープログラム１１７が動作していれば、ハードウェア制御部１２４によりこのダミープログラム１１７を停止する（Ｓ５１２）。
【００４１】
この場合、メモリ総容量不足を示すアラーム出力の方式は、メモリリーク検出時におけるアラーム出力と同様に、画面やＬＥＤ等によるアラームメッセージの視覚的表示、アラーム音出力やアラームメッセージ音声出力等、システム運用管理者端末等の外部機器への送信等、適宜選択・組合せ可能である。
【００４２】
そして、この空きメモリ容量チェック処理（Ｓ５１０）を行った後は、現在の空きメモリ容量を前回値として記録して（Ｓ５０８）、２４時間処理を停止した（Ｓ５０９）後、翌日の同時刻にメモリリーク検出処理を再開する。
【００４３】
［作用効果］
以上のような第２の実施形態によれば、第１の実施形態と同様の作用効果に加えて、さらに次のような作用効果が得られる。
【００４４】
まず、第２の実施形態によれば、システム稼働開始時に予め特定のメモリ領域を確保するダミープログラムを動作させ、メモリリーク発生によるメモリ枯渇発生時には、ダミープログラムを終了させる。このように、メモリ減少が発生した場合に一定量のメモリ領域を確保していたダミープログラムを終了させることにより、メモリ領域を開放することが可能となる。
【００４５】
この場合、ダミープログラムにより確保されていたメモリ領域分は、その後不正プログラムに利用されることには変わりないが、コンピュータ本体のＯＳが必要とするメモリ領域を一時的に増やすことにより、メモリ枯渇によるシステム停止に至るまでの時間を、十分に確保することができる。したがって、システムをより安定に稼動することができる。
【００４６】
また、メモリ確保比率や空きメモリ比率の具体的な値は、自由に設定可能である。例えば、第２の実施形態においては、ダミープログラムの動作中・停止後の区別なしに、同じ空きメモリ比率を用いて空きメモリ容量チェック処理を行ったが、変形例として、空きメモリ容量チェック処理において、ダミープログラムの動作中における第１の空きメモリ比率とダミープログラムの停止後における第２の空きメモリ比率とを異なる値に設定してもよい。
【００４７】
いずれの場合でも、メモリ確保比率や空きメモリ比率の具体的な値は、過小の値では十分な効果が得られない一方で、過度に大きい値とすることは無駄であるため、一般的には、メモリ確保比率を１０％、空きメモリ比率を５％とすることが望ましい。
【００４８】
［第３の実施形態］
本発明を適用した監視制御システムの第３の実施形態として、第２の実施形態と同じ構成の図３に示す監視制御システムにより、図４と図５の処理に代えて、図６と図７に示すように、通常の運用処理によるメモリ変化を考慮した初期化処理とメモリリーク検出処理を行ってもよい。以下には、これらの処理について説明する。
【００４９】
［初期化処理］
図６は、第３の実施形態のメモリリーク検出手段１３０による初期化処理を示すフローチャートである。
【００５０】
この図６に示すように、第３の実施形態の初期化処理において、現在の総メモリ容量を読み出し（Ｓ６０１）、総メモリ容量に対して予め設定されたメモリ確保比率のメモリ容量を動的データ領域として確保するダミープログラム１１７を起動する（Ｓ６０２）点は、図４の初期化処理と同様である。本実施形態においては、さらに、通常の運用処理によるメモリ変化を考慮する観点から、総メモリ容量に対して予め設定されたメモリリーク除外比率のメモリ容量をメモリリーク除外定数として設定する（Ｓ６０３）。
【００５１】
なお、メモリ確保比率やメモリリーク除外比率の具体的な値は自由に設定可能であるが、本実施形態においては、一例として、メモリ確保比率については、図４の初期化処理と同様に、現在の総メモリ容量の１０％と設定しており、また、メモリリーク除外比率については、現在の総メモリ容量の１％と設定している。一般的には、これらの値が望ましい。
【００５２】
［メモリリーク検出処理］
図７は、第３の実施形態のメモリリーク検出手段１３０によるメモリリーク検出処理を示すフローチャートである。
【００５３】
この図７に示すメモリリーク検出処理において、現在の空きメモリ容量を読み出し、現在の空きメモリ容量を前回値と比較するまでの処理（Ｓ７０１〜Ｓ７０３）は、符号の下一桁が等しい図５の一連の処理（Ｓ５０１〜Ｓ５０３）と同様である。
【００５４】
本実施形態におけるメモリリーク検出処理においては、この一連の処理（Ｓ７０１〜Ｓ７０３）に続いて、現在の空きメモリ容量の前回値からの変化量をメモリリーク除外定数と比較する（Ｓ７２０）点のみが、図５のメモリリーク検出処理と異なる点である。そして、メモリリーク除外定数よりも変化量が少ない場合（Ｓ７２０のＮＯ）には、通常の運用処理によるメモリ変化でないと判定して、変化カウンタのカウント値の判定（Ｓ７０４）に進む。
【００５５】
これに対して、メモリリーク除外定数以上の変化がある場合（Ｓ７２０のＹＥＳ）には、通常の運用処理によるメモリ変化と判定して、空きメモリ容量チェック処理（Ｓ７１０）を行う。この空きメモリ容量チェック処理（Ｓ７１０）は、図５の空きメモリ容量チェック処理（Ｓ７１０）と同様の処理である。
【００５６】
［作用効果］
以上のような第３の実施形態によれば、第１、第２の実施形態と同様の作用効果に加えて、さらに次のような作用効果が得られる。
【００５７】
まず、第３の実施形態によれば、メモリリーク検出処理において、メモリリークとメモリリーク以外の要因でメモリが枯渇している現象を振り分けることができるため、メモリリーク以外の要因の場合は、メモリリーク検出を示すアラーム出力を行わないようにすることができる。
【００５８】
すなわち、メモリリークのような発見が困難な現象は、長い時間をかけてメモリが減少していくケースが多い。本実施形態における処理は、この事実に基づくものであり、長期間に亘ってメモリが徐々に減少している場合はメモリリークと判定し、短時間のメモリ減少（変動）ではメモリリークではないと判定して、メモリリーク検出のアラーム出力を行うことはない。
【００５９】
しかしながら、メモリリーク以外の要因であっても、プログラムミスによるメモリ減少が連続的に発生してメモリ枯渇に至る場合もあり、このようなメモリ枯渇自体はコンピュータシステムにおいてシステム全体のプログラム動作停止などの重要な問題に繋がるケースが多い。本実施形態においては、そのようなメモリ枯渇が発生した場合には、空きメモリ容量チェック処理によりそのメモリ枯渇を検出し、メモリ総容量不足を示すアラームを出力することにより、メモリリーク以外のメモリ枯渇についても、システム運用管理者に警告を促すことができる。
【００６０】
以上のように、本実施形態においては、一時的なメモリ減少変化の場合は、メモリリーク検出のアラーム出力を行わないため、実際のシステム運用において誤警報の可能性を減らすことができる。ただし、プログラムミスによるメモリ減少が連続的に発生してしまうような場合を想定し、メモリ枯渇が発生した場合にも、メモリ総容量不足を示すアラームを出力することにより、プログラム停止に至る前にシステム運用管理者に警告を促すことが可能となる。したがって、システムをより安定に稼動することができる。
【００６１】
［他の実施形態］
なお、本発明は、前述した実施形態に限定されるものではなく、本発明の範囲内で他にも多種多様な変形例が実施可能である。例えば、コンピュータ本体、ＲＡＳ機能装置やメモリリーク検出手段等の具体的な構成は、ハードウェア資源とソフトウェア資源の両方に亘って自由に選択可能である。また、メモリリーク検出処理やそのための初期化処理の具体的な手順は自由に選択可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明を適用した監視制御システムの第１の実施形態を示すブロック図。
【図２】第１の実施形態のメモリリーク検出手段によるメモリリーク検出処理を示すフローチャート。
【図３】本発明を適用した監視制御システムの第２、第３の実施形態を示すブロック図。
【図４】第２の実施形態のメモリリーク検出手段による初期化処理を示すフローチャート。
【図５】第２の実施形態のメモリリーク検出手段によるメモリリーク検出処理を示すフローチャート。
【図６】第３の実施形態のメモリリーク検出手段による初期化処理を示すフローチャート。
【図７】第３の実施形態のメモリリーク検出手段によるメモリリーク検出処理を示すフローチャート。
【符号の説明】
【００６３】
１００…監視制御システム
１１０…コンピュータ本体（主制御装置）
１１１…ＣＰＵ
１１２…メモリ
１１３…補助記憶装置
１１４…インタフェース
１１５…監視制御用プログラム
１１６…データ
１１７…ダミープログラム
１２０…ＲＡＳ機能装置
１２１…ＲＡＳ処理部
１２２…ＲＡＳメモリ
１２３…状態検出部
１２３ａ…既存の状態検出部
１２３ｂ…メモリ容量読出部
１２３ｃ…変化カウンタ
１２４…ハードウェア制御部
１２５…入出力部
１２５ａ…信号入出力部
１２５ｂ…アラーム信号生成部
１２６…コンピュータ管理用プログラム
１２７…データ
１３０…メモリリーク検出手段
２００…対象システム
【図１】
2008003945.tif 000003
【図２】
2008003945.tif 000004
【図３】
2008003945.tif 000005
【図４】
2008003945.tif 000006
【図５】
2008003945.tif 000007
【図６】
2008003945.tif 000008
【図７】
2008003945.tif 000009