(57)【要約】  プロセス監視装置は、周期的に通信データ（４１）を送信する送信プロセス（２０）と、送信された通信データ（４１）を受信する受信プロセス（３０）とを備える。受信プロセス（３０）は、基準間隔毎に監視データ（４２）をメモリ（１２）に書き込む監視スレッド（３２）を備える。送信プロセス（２０）は、メモリ（１２）から監視データ（４２）を取得する取得スレッド（２２）と、監視データ（４２）を付加データ（４３）として、通信データ（４１）とともに受信プロセス（３０）に送信する送信スレッド（２１）とを備える。監視スレッド（３２）は、付加データ（４３）が何回前に生成された監視データ（４２）であるかに応じて、送信プロセス（２０）の状態を判定する。
2017130331.tif 000002
【特許請求の範囲】
【請求項１】
周期的に通信データを送信する送信プロセスと、前記送信プロセスによって送信された通信データを受信する受信プロセスとを備え、
前記受信プロセスは、
基準間隔毎に監視データを生成し、生成した監視データをメモリに出力する監視スレッド
を備え、
前記送信プロセスは、
前記メモリから前記監視データを取得する取得スレッドと、
前記取得スレッドによって取得された前記監視データを付加データとして、前記通信データとともに前記受信プロセスに送信する送信スレッドと
を備え、
前記監視スレッドは、前記送信スレッドによって送信された前記付加データが、何回前に生成された前記監視データであるかに応じて、前記送信プロセスの状態を判定するプロセス監視装置。
【請求項２】
前記監視スレッドは、前記送信プロセスが異常であると判定した場合、前記送信プロセスに変更情報を送信し、
前記送信プロセスは、さらに、
前記変更情報が送信されると、前記取得スレッドの動作優先度を徐々に上げる制御スレッド
を備える請求項１に記載のプロセス監視装置。
【請求項３】
前記送信スレッドは、前記変更情報が送信された後、前記通信データを送信する場合には、前記動作優先度を示す優先度情報を付加して送信する
請求項２に記載のプロセス監視装置。
【請求項４】
前記監視スレッドは、前記送信プロセスが異常であると判定した後、前記送信プロセスが正常であると判定した場合、前記送信プロセスに終了情報を送信する
請求項２又は３に記載のプロセス監視装置。
【請求項５】
前記取得スレッドは、初期状態では、前記送信プロセスで動作するスレッド中、最も低い動作優先度で動作する
請求項１から４までのいずれか１項に記載のプロセス監視装置。
【請求項６】
前記基準間隔は、前記送信プロセスが前記通信データを送信する周期以内の間隔である
請求項１から５までのいずれか１項に記載のプロセス監視装置。
【請求項７】
前記プロセス監視装置では、前記送信プロセスが複数動作し、
前記基準間隔は、前記送信プロセスそれぞれが前記通信データを送信する周期の最大公約数である
請求項１から６までのいずれか１項に記載のプロセス監視装置。
【請求項８】
前記監視スレッドは、前記監視データとして、生成の度に異なる値を生成する
請求項１から７までのいずれか１項に記載のプロセス監視装置。
【請求項９】
周期的に通信データを送信する送信プロセスと、前記送信プロセスによって送信された通信データを受信する受信プロセスとを備えるプロセス監視装置におけるプロセス監視方法であり、
前記受信プロセスで動作する監視スレッドが、基準間隔毎に監視データを生成し、生成した監視データをメモリに出力し、
前記送信プロセスで動作する取得スレッドが、前記メモリから前記監視データを取得し、
前記送信プロセスで動作する送信スレッドが、前記取得スレッドによって取得された前記監視データを付加データとして、前記通信データとともに前記受信プロセスに送信し、
前記監視スレッドが、前記送信スレッドによって送信された前記付加データが、何回前に生成された前記監視データであるかに応じて、前記送信プロセスの状態を判定するプロセス監視方法。
【請求項１０】
周期的に通信データを送信する送信プロセスと、前記送信プロセスによって送信された通信データを受信する受信プロセスとをコンピュータに実行させ、
前記受信プロセスは、
基準間隔毎に監視データを生成し、生成した監視データをメモリに出力する監視スレッド
を備え、
前記送信プロセスは、
前記メモリから前記監視データを取得する取得スレッドと、
前記取得スレッドによって取得された前記監視データを付加データとして、前記通信データとともに前記受信プロセスに送信する送信スレッドと
を備え、
前記監視スレッドは、前記送信スレッドによって送信された前記付加データが、何回前に生成された前記監視データであるかに応じて、前記送信プロセスの状態を判定するプロセス監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータにおけるプロセスの異常を監視する技術に関する。
【背景技術】
【０００２】
カーナビゲーションシステムといったコンピュータでは、様々なセンサを活用したアプリケーションがアプリケーション間の通信を行う通信プロセスを用いて複雑に動作する。
このコンピュータでは、定期的な通信が発生するセンサデータの周期性が損なわれた場合と、周期性は損なわれていないが通信されるセンサデータが不正となった場合とには、センサデータの受信側の通信プロセスである受信プロセスは正しい処理ができず障害となる。このとき、障害の原因が受信プロセスにあるのか、センサデータの送信側の通信プロセスである送信プロセスにあるのかの判断が難しい。また、原因が送信プロセスにあると判断された場合、送信プロセスのどのスレッドが影響しているかを受信プロセスが把握することが難しい。
そのため、発生した障害の原因解析において、送信プロセスにある原因を受信プロセスが知ることができず、受信プロセスにて原因解析に時間がかかってしまった。【０００３】
特許文献１には、送信プロセス及び受信プロセスとは別に、監視プロセスを動作させ、監視プロセス間で通信を行うことにより、動作状況を監視することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５７９４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、実際に通信を行うプロセスとは別に、監視プロセスを動作させるためプロセス数が増加してしまい、管理が煩雑になってしまう。また、監視プロセスには他のプロセスよりも高い信頼性を確保する必要があるが、複雑に動作する通信プロセスを監視する監視プロセスは規模が巨大になり、高い信頼性を確保することが難しい。
この発明は、簡便な方法により、受信プロセス側で送信プロセスの異常を検出可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るプロセス監視装置は、
周期的に通信データを送信する送信プロセスと、前記送信プロセスによって送信された通信データを受信する受信プロセスとを備え、
前記受信プロセスは、
基準間隔毎に監視データを生成し、生成した監視データをメモリに出力する監視スレッド
を備え、
前記送信プロセスは、
前記メモリから前記監視データを取得する取得スレッドと、
前記取得スレッドによって取得された前記監視データを付加データとして、前記通信データとともに前記受信プロセスに送信する送信スレッドと
を備え、
前記監視スレッドは、前記送信スレッドによって送信された前記付加データが、何回前に生成された前記監視データであるかに応じて、前記送信プロセスの状態を判定する。
【発明の効果】
【０００７】
この発明では、受信プロセスで動作する監視スレッドにより、送信スレッドによって送信された付加データが、何回前に生成された監視データであるかに応じて、送信プロセスの状態が判定される。そのため、送信プロセス及び受信プロセスとは別に監視プロセスを動作させることなく、受信プロセス側で送信プロセスの異常を検出可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るプロセス監視装置１０の構成図。
【図２】実施の形態１に係るプロセス１１１の説明図。
【図３】実施の形態１に係る送信プロセス２０及び受信プロセス３０の基本動作を示す処理フロー図。
【図４】実施の形態１に係る監視データ４２の説明図。
【図５】送信プロセス２０が正常な場合の実施の形態１に係る送信プロセス２０及び受信プロセス３０の動作を示す処理フロー図。
【図６】送信プロセス２０が異常な場合の実施の形態１に係る送信プロセス２０及び受信プロセス３０の動作を示す処理フロー図。
【図７】実施の形態２に係るプロセス１１１の説明図。
【図８】実施の形態２に係る送信プロセス２０が異常と判定された場合の動作を示す処理フロー図。
【図９】実施の形態２に係る図８のステップＳ２１３からステップＳ２１５が繰り返し実行される間の動作を示す処理フロー図。
【図１０】実施の形態３に係るプロセス１１１の説明図。
【図１１】実施の形態３に係る送信プロセス２０の倍率の説明図。
【図１２】実施の形態３に係る送信プロセス２０の閾値の説明図。
【発明を実施するための形態】
【０００９】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係るプロセス監視装置１０の構成を説明する。
プロセス監視装置１０は、コンピュータである。
プロセス監視装置１０は、プロセッサ１１と、メモリ１２と、外部記憶装置１３と、周辺装置１４とのハードウェアを備える。プロセッサ１１は、信号線１５，１６，１７を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１０】
プロセス監視装置１０は、複数のプロセス１１１を備える。各プロセス１１１は、複数のスレッド１１２を備える。各プロセス１１１は、ＯＳ１１３上で動作する。
外部記憶装置１３には、各プロセス１１１とＯＳ１１３とを実現するプログラムが記憶されている。ＯＳ１１３のプログラムは、メモリ１２にロードされ、プロセッサ１１に読み込まれて実行される。そして、各プロセス１１１のプログラムがメモリ１２にロードされ、プロセッサ１１に読み込まれ、プロセッサ１１によってＯＳ１１３上で実行される。これによって、プロセス１１１が備える各スレッド１１２が実行される。
【００１１】
プロセッサ１１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１１は、具体的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ１２は、具体的には、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
外部記憶装置１３は、具体的には、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、外部記憶装置１３は、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬記憶媒体であってもよい。
周辺装置１４は、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）レシーバ、ジャイロセンサといった装置である。ＧＰＳレシーバは、ＧＰＳ衛星から測位データを乗せた電波を受信するための装置である。ジャイロセンサは、角速度を基に加速度を検出するための装置である。
【００１２】
図２を参照して、実施の形態１に係るプロセス１１１の構成を説明する。
プロセス１１１は、送信プロセス２０と、受信プロセス３０とを備える。送信プロセス２０は、周辺装置１４から周期的に通信データ４１を取得して、取得した通信データ４１を受信プロセス３０に送信するプロセスである。受信プロセス３０は、送信プロセス２０によって送信された通信データ４１を受信し、処理を行うプロセスである。
通信データ４１は、具体的には、周辺装置１４がＧＰＳレシーバであれば測位データであり、周辺装置１４がジャイロセンサであれば加速度である。
【００１３】
送信プロセス２０は、送信スレッド２１と、取得スレッド２２とを含む複数のスレッド１１２を備える。送信スレッド２１は、取得スレッド２２によって取得された監視データ４２を付加データ４３として、通信データ４１とともに受信プロセス３０に送信するスレッド１１２である。取得スレッド２２は、基準間隔毎にメモリ１２から監視データ４２を取得するスレッド１１２である。取得スレッド２２は、送信プロセス２０が備える複数のスレッド１１２の中で最低の動作優先度で動作するスレッド１１２である。
受信プロセス３０は、受信スレッド３１と、監視スレッド３２とを含む複数のスレッド１１２を備える。受信スレッド３１は、送信スレッド２１によって送信された通信データ４１及び付加データ４３を受信するスレッド１１２である。監視スレッド３２は、基準間隔毎に監視データ４２を生成し、生成した監視データ４２をメモリ１２に出力するスレッド１１２である。監視スレッド３２は、送信スレッド２１によって送信された付加データ４３が、何回前に生成された監視データ４２であるかに応じて、送信プロセス２０の状態を判定するスレッド１１２である。
監視データ４２は、生成される度に異なる値となるデータである。実施の形態１では、監視データ４２は、生成される度に１を加算されるインクリメントデータである。
なお、実施の形態１では、監視データ４２をメモリ１２に出力するとした。しかし、監視データ４２は、プロセッサ１１内に設けられたキャッシュメモリ又はレジスタといった他の種別のメモリの共有領域に出力されてもよい。
【００１４】
＊＊＊動作の説明＊＊＊
図２から図６を参照して、実施の形態１に係るプロセス監視装置１０の動作を説明する。
実施の形態１に係るプロセス監視装置１０の動作は、実施の形態１に係るプロセス監視方法に相当する。また、実施の形態１に係るプロセス監視装置１０の動作は、実施の形態１に係るプロセス監視プログラムの処理に相当する。
【００１５】
図２から図４を参照して、実施の形態１に係る送信プロセス２０及び受信プロセス３０の基本動作を説明する。
送信プロセス２０及び受信プロセス３０は、ステップＳ１０１からステップＳ１０３の処理を基準間隔毎に繰り返す。基準間隔は、送信プロセス２０が通信データ４１を送信する周期以内の間隔である。実施の形態１では、基準間隔は、送信プロセス２０が通信データ４１を送信する周期と同じ間隔とする。
【００１６】
ステップＳ１０１で監視スレッド３２が、監視データ４２を生成する。具体的には、監視スレッド３２が、現在の監視データ４２に１を加算して監視データ４２を生成する。そして、ステップＳ１０２で監視スレッド３２が、ステップＳ１０１で生成された監視データ４２をメモリ１２に出力する。具体的には、監視スレッド３２が、メモリ１２において送信プロセス２０及び受信プロセス３０がアクセス可能な共有領域に監視データ４２を書き込む。
すると、ステップＳ１０３で取得スレッド２２が、メモリ１２からステップＳ１０２で出力された監視データ４２を取得する。具体的には、取得スレッド２２が、共有領域から監視データ４２を読み出す。
【００１７】
ここでは、図４に示すように、１回目のステップＳ１０１では、監視データ４２として、値００１である監視データ４２Ａが生成される。２回目のステップＳ１０１では、監視データ４２として、値００２である監視データ４２Ｂが生成される。３回目のステップＳ１０１では、監視データ４２として、値００３である監視データ４２Ｃが生成される。
【００１８】
図２と図４と図５とを参照して、送信プロセス２０が正常な場合の実施の形態１に係る送信プロセス２０及び受信プロセス３０の動作を説明する。
ステップＳ１０１で監視スレッド３２が、監視データ４２Ａを生成し、ステップＳ１０２で監視スレッド３２が、ステップＳ１０１で生成された監視データ４２Ａをメモリ１２に出力する。ステップＳ１０３で取得スレッド２２が、メモリ１２からステップＳ１０２で出力された監視データ４２Ａを取得する。
【００１９】
ステップＳ１０４で送信スレッド２１が、ステップＳ１０３で取得された監視データ４２Ａを取得する。具体的には、ステップＳ１０３で取得スレッド２２が、メモリ１２の送信プロセス２０用の領域に監視データ４２を書き込んでおき、ステップＳ１０４で送信スレッド２１が読み出す。ステップＳ１０５で送信スレッド２１が、ステップＳ１０４で取得された監視データ４２Ａを付加データ４３として、通信データ４１に付加する。ステップＳ１０６で送信スレッド２１が、付加データ４３を付加した通信データ４１を受信プロセス３０に送信する。具体的には、送信スレッド２１が、付加データ４３を付加した通信データ４１をプロセス間通信により、受信プロセス３０に受け渡す。
【００２０】
ステップＳ１０７で受信スレッド３１が、ステップＳ１０６で送信された通信データ４１を受信し、ステップＳ１０８で、受信スレッド３１がステップＳ１０７で受信された通信データ４１から付加データ４３を取り出す。ステップＳ１０９で、受信スレッド３１が、付加データ４３を監視スレッド３２に受け渡して、送信プロセス２０の状態のチェックを依頼する。
【００２１】
ステップＳ１１０で監視スレッド３２が、ステップＳ１０９で受け渡された付加データ４３に基づき、送信プロセス２０の状態をチェックする。
具体的には、監視スレッド３２が、付加データ４３が何回前に生成された監視データ４２であるかに応じて、送信プロセス２０の状態を判定する。実施の形態１では、付加データ４３が直近２回に生成された監視データ４２である場合には、送信プロセス２０は正常であるとし、付加データ４３がそれ以前に生成された監視データ４２である場合には、送信プロセス２０は異常であるとする。そこで、実施の形態１では、監視スレッド３２は、付加データ４３の値と、直近の監視データ４２の値との差が０又は１であれば、送信プロセス２０は正常であると判定し、差が２以上であれば、送信プロセス２０は異常であると判定する。
言い換えると、監視スレッド３２は、付加データ４３が何回前に生成された監視データ４２であるかにより、送信プロセス２０の遅延時間を特定する。そして、特定された遅延時間が規定値内の場合には、送信プロセス２０は正常であると判定し、遅延時間が規定値を超えた場合には、送信プロセス２０は異常であると判定する。遅延時間が規定値を超えた場合、通信データ４１が周期的に正しく送信されていない可能性があるためである。
図５では、付加データ４３は、直近に生成された監視データ４２Ａである。そのため、付加データ４３の値と、直近に生成された監視データ４２Ａの値との差は０である。したがって、送信プロセス２０は正常であると判定される。
【００２２】
図２と図４と図６とを参照して、送信プロセス２０が異常な場合の実施の形態１に係る送信プロセス２０及び受信プロセス３０の動作を説明する。
ステップＳ１０１で監視スレッド３２が、監視データ４２Ａを生成し、ステップＳ１０２で監視スレッド３２が、ステップＳ１０１で生成された監視データ４２Ａをメモリ１２に出力する。ステップＳ１０３で取得スレッド２２が、メモリ１２からステップＳ１０２で出力された監視データ４２を取得する。
基準間隔を空けて、再びステップＳ１０１で監視スレッド３２が、監視データ４２Ｂを生成し、ステップＳ１０２で監視スレッド３２が、ステップＳ１０１で生成された監視データ４２Ｂをメモリ１２に出力する。しかし、図６では、送信プロセス２０のプロセッサ１１の使用率が異常になり、送信プロセス２０で動作するスレッド１１２の中で最低の動作優先度である取得スレッド２２は、十分に動作できない状態である。そのため、ステップＳ１０３で取得スレッド２２は監視データ４２Ｂを取得できない。
基準間隔を空けて、再びステップＳ１０１で監視スレッド３２が、監視データ４２Ｃを生成し、ステップＳ１０２で監視スレッド３２が、ステップＳ１０１で生成された監視データ４２Ｃをメモリ１２に出力する。しかし、図６では、ステップＳ１０３で取得スレッド２２は監視データ４２Ｃを取得できない。
【００２３】
ステップＳ１０４で送信スレッド２１が、ステップＳ１０３で取得された監視データ４２Ａを取得する。ここでは、監視データ４２Ｂ及び監視データ４２Ｃは取得できていないため、直近で取得された監視データ４２は監視データ４２Ａである。ステップＳ１０５で送信スレッド２１が、ステップＳ１０４で取得された監視データ４２Ａを付加データ４３として、通信データ４１に付加する。ステップＳ１０６で送信スレッド２１が、付加データ４３を付加した通信データ４１を受信プロセス３０に送信する。
【００２４】
ステップＳ１０７で受信スレッド３１が、ステップＳ１０６で送信された通信データ４１を受信し、ステップＳ１０８で、受信スレッド３１がステップＳ１０７で受信された通信データ４１から付加データ４３を取り出す。ステップＳ１０９で、受信スレッド３１が、付加データ４３を監視スレッド３２に受け渡して、送信プロセス２０の状態のチェックを依頼する。
【００２５】
ステップＳ１１０で監視スレッド３２が、ステップＳ１０９で受け渡された付加データ４３に基づき、送信プロセス２０の状態をチェックする。
図６では、付加データ４３は、２回前に生成された監視データ４２Ａである。そのため、付加データ４３の値と、直近に生成された監視データ４２Ｃの値との差は２である。したがって、送信プロセス２０は異常であると判定される。監視スレッド３２は、送信プロセス２０が異常であると判定した場合、ログに記録するとともに、縮退運転への移行処理を実行する。
【００２６】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係るプロセス監視装置１０では、受信プロセス３０が、基準間隔毎に監視データ４２をメモリ１２に出力し、送信プロセス２０に取得される。そして、受信プロセス３０が、送信プロセス２０から受信した監視データ４２である付加データ４３と、直近の監視データ４２とを比較する。これにより、プロセス監視装置１０では、送信プロセス２０及び受信プロセス３０とは別に監視プロセスを動作させることなく、受信プロセス３０が送信プロセス２０の異常を検出可能となる。
【００２７】
特に、実施の形態１に係るプロセス監視装置１０では、取得スレッド２２を送信プロセス２０で動作するスレッド１１２の中で最低の優先度で動作させる。そのため、送信プロセス２０に何らかの障害が発生すると、取得スレッド２２に初めに影響が出る可能性が高い。そのため、送信プロセス２０の異常を早期に検出可能となる。
【００２８】
また、異常が検出された場合に、ログに記録することにより、異常の原因の特定及び切り分けが容易になる。
【００２９】
なお、上記説明では、あるプロセス１１１を送信プロセス２０とし、別のプロセス１１１を受信プロセス３０とした。しかし、あるプロセス１１１が送信プロセス２０かつ受信プロセス３０であり、また別のプロセス１１１が送信プロセス２０かつ受信プロセス３０である場合もある。つまり、２つのプロセス１１１が互いに通信データ４１を送信し合う関係の場合もある。
この場合には、２つのプロセス１１１が両方とも、送信スレッド２１及び取得スレッド２２と、受信スレッド３１及び監視スレッド３２とを備え、互いに状態を監視し合えばよい。
【００３０】
実施の形態２．
実施の形態２では、異常が検出された場合に、取得スレッド２２の優先度を変更する点が実施の形態１と異なる。実施の形態２では、この異なる点について説明する。
【００３１】
＊＊＊構成の説明＊＊＊
図７を参照して、実施の形態２に係るプロセス１１１の構成を説明する。
送信プロセス２０は、図２に示すスレッド１１２に加え、制御スレッド２３を備える。制御スレッド２３は、監視スレッド３２から変更情報４４が送信されると、監視スレッド３２から終了情報４６が送信されるまで、取得スレッド２２の動作優先度を徐々に上げるスレッド１１２である。制御スレッド２３は、送信プロセス２０で動作するスレッド１１２の中で、最高の動作優先度で動作するスレッド１１２である。
【００３２】
送信スレッド２１は、変更情報４４が送信された後、通信データ４１を送信する場合には、動作優先度を示す優先度情報４５を通信データ４１に付加して送信する。
【００３３】
監視スレッド３２は、送信プロセスが異常であると判定した場合、送信プロセス２０に変更情報４４を送信する。また、監視スレッド３２は、送信プロセス２０が異常であると判定した後、送信プロセス２０が正常であると判定した場合、送信プロセス２０に終了情報４６を送信する。
【００３４】
＊＊＊動作の説明＊＊＊
図７から図９を参照して、実施の形態２に係るプロセス監視装置１０の動作を説明する。
実施の形態２に係るプロセス監視装置１０の動作は、実施の形態２に係るプロセス監視方法に相当する。また、実施の形態２に係るプロセス監視装置１０の動作は、実施の形態２に係るプロセス監視プログラムの処理に相当する。
【００３５】
図７から図９を参照して、送信プロセス２０が異常な場合の実施の形態２に係る送信プロセス２０及び受信プロセス３０の動作を説明する。
まず、図８を参照して、送信プロセス２０が異常と判定された場合の動作を説明する。図８に示すステップＳ２０１からステップＳ２１０の動作は、図６に示すステップＳ１０１からステップＳ１１０の動作と同じである。つまり、ステップＳ２１０で監視スレッド３２は、送信プロセス２０が異常であると判定する。
【００３６】
送信プロセス２０が異常であると判定されると、ステップＳ２１１で監視スレッド３２が、送信プロセス２０に変更情報４４を送信する。ステップＳ２１２で制御スレッド２３が、ステップＳ２１１で送信された変更情報４４を受信し、ステップＳ２１３で制御スレッド２３が、取得スレッド２２の動作優先度を１つ高くする。
ステップＳ２１４で制御スレッド２３が、基準時間だけ待って、ステップＳ２１５で制御スレッド２３が、終了情報４６を受信したか否かを判定する。基準時間は、送信プロセス２０が通信データ４１を送信する周期よりも長い時間である。制御スレッド２３が基準時間待っている間も、周期的に送信プロセス２０から受信プロセス３０へ通信データ４１が送信され続ける。
制御スレッド２３は、終了情報４６を受信していない場合、処理をステップＳ２１３に戻して、取得スレッド２２の動作優先度をさらに１つ高くする。一方、制御スレッド２３は、終了情報４６を受信した場合、処理をステップＳ２１６に進めて、取得スレッド２２の動作優先度を標準の優先度である最低に戻す。
【００３７】
取得スレッド２２の動作優先度を１つずつ高くしていくと、障害が発生しているスレッド１１２よりも動作優先度が高くなった時点で、取得スレッド２２が監視データ４２を正常に取得できるようになる。そのため、取得スレッド２２の動作優先度が、障害が発生しているスレッド１１２の動作優先度よりも高くなるまで、図８のステップＳ２１３からステップＳ２１５が繰り返し実行されることになる。
【００３８】
次に、図９を参照して、図８のステップＳ２１３からステップＳ２１５が繰り返し実行される間の動作を説明する。ステップＳ２０１からステップＳ２１０の動作は、図５に示すステップＳ１０１からステップＳ１１０の動作と同じである。つまり、ステップＳ２１０で監視スレッド３２は、送信プロセス２０が正常であると判定する。
但し、ステップＳ２０４では、送信スレッド２１は、監視データ４２だけでなく、取得スレッド２２の動作優先度を示す優先度情報４５も取得する。具体的には、送信スレッド２１は、監視データ４２を読み出す際、取得スレッド２２から優先度情報４５を取得する。
送信プロセス２０が正常であると判定されると、図９のステップＳ２１７で監視スレッド３２が、取得スレッド２２に終了情報４６を送信し、ステップＳ２１８で制御スレッド２３が、終了情報４６を受信する。すると、ステップＳ２１９で制御スレッド２３が終了状態に遷移し、図８のステップＳ２１５で終了情報４６を受信したと判定され、ステップＳ２１６で動作優先度が最低に戻される。
【００３９】
＊＊＊実施の形態２の効果＊＊＊
以上のように、実施の形態２に係るプロセス監視装置１０では、送信プロセス２０が異常であると判定されると、取得スレッド２２の動作優先度が徐々に高くされる。そして、障害が発生しているスレッド１１２の動作優先度よりも取得スレッド２２の動作優先度が高くなった時点で、取得スレッド２２が監視データ４２を正常に取得できるようになる。そのため、受信プロセス３０は、正常であると判定した付加データ４３とともに受信した優先度情報４５が示す優先度よりも１段階低い動作優先度のスレッド１１２に障害が発生していると特定することができる。
【００４０】
また、監視スレッド３２が送信プロセス２０に終了情報４６を送信する。そのため、送信プロセス２０は、終了情報４６を受信した時点の動作優先度よりも１段階低い動作優先度のスレッド１１２に障害が発生していると特定することができる。
【００４１】
実施の形態３．
実施の形態１，２では、受信プロセス３０が送信プロセス２０の状態を監視した。つまり、監視するプロセス１１１と監視されるプロセス１１１とが１対１の関係であった。実施の形態３では、受信プロセス３０が複数の送信プロセス２０の状態を監視する点が実施の形態１，２と異なる。つまり、実施の形態３では、監視するプロセス１１１と監視されるプロセス１１１とが１対Ｎ（Ｎは２以上の整数）の関係である点が実施の形態１，２と異なる。実施の形態３では、この異なる点を説明する。
なお、実施の形態３では、実施の形態１に対して機能追加した構成を説明する。しかし、実施の形態２に対して同様に機能追加することも可能である。
【００４２】
＊＊＊構成の説明＊＊＊
図１０を参照して、実施の形態３に係るプロセス１１１の構成を説明する。
プロセス１１１は、複数の送信プロセス２０と、受信プロセス３０とを備える。各送信プロセス２０は、周辺装置１４から周期的に通信データを取得して、取得した通信データ４１を受信プロセス３０に送信するプロセスである。ここで、周期は、送信プロセス２０毎に定められる。受信プロセス３０は、各送信プロセス２０によって送信された通信データ４１を受信し、処理を行うプロセスである。
【００４３】
＊＊＊動作の説明＊＊＊
図３と図５と図１０と図１１と図１２とを参照して、実施の形態３に係るプロセス監視装置１０の動作を説明する。
実施の形態３に係るプロセス監視装置１０の動作は、実施の形態３に係るプロセス監視方法に相当する。また、実施の形態３に係るプロセス監視装置１０の動作は、実施の形態３に係るプロセス監視プログラムの処理に相当する。
【００４４】
図３に示すように、受信プロセス３０は、各送信プロセス２０との間で、ステップＳ１０１からステップＳ１０３の処理を基準間隔毎に繰り返す。実施の形態３では、基準間隔は、送信プロセス２０毎に定められた周期の最大公約数とする。
具体的には、送信プロセス２０として、送信プロセス２０Ｙと送信プロセス２０Ｚとがあるとする。そして、送信プロセス２０Ｙの周期は６ｍｓ（ミリ秒）であり、送信プロセス２０Ｚの周期は９ｍｓであるとする。この場合、基準間隔は、３ｍｓとなる。
【００４５】
図５のステップＳ１１０で、監視スレッド３２は、各送信プロセス２０の状態を判定する。この際、監視スレッド３２は、各送信プロセス２０について、“その送信プロセス２０の周期／基準間隔”を倍率とする。そして、監視スレッド３２は、付加データ４３の値と、監視データ４２の値との差が基準値以内であれば正常とする場合に、基準値に倍率を乗じた値を閾値とする。
基準値は、上記の通り、付加データ４３の値と、監視データ４２の値との差と比較され、正常と判定されるか否かの基準となる値であり、予め定められメモリ１２等に記憶された値である。実施の形態１では、付加データ４３の値と、直近の監視データ４２の値との差が０又は１であれば、正常であると判定された。つまり、実施の形態１では、差が１以内であれば正常と判定されたため、基準値は１であった。
具体的には、図１１に示すように、送信プロセス２０Ｙであれば、倍率は“６ｍｓ／３ｍｓ”なので、２になる。また、送信プロセス２０Ｚであれば、倍率は“９ｍｓ／３ｍｓ”なので、３になる。実施の形態１では、基準値が１だったので、実施の形態３でも基準値を１とすると、図１２に示すように、送信プロセス２０Ｙの閾値は２となり、送信プロセス２０Ｚの閾値は３となる。なお、基準値は、送信プロセス２０毎に設定してもよい。
そして、監視スレッド３２は、付加データ４３の値と、直近の監視データ４２の値との差が閾値以下であれば、送信プロセス２０は正常であると判定し、差が閾値より大きい場合には、送信プロセス２０は異常であると判定する。
【００４６】
＊＊＊実施の形態３の効果＊＊＊
以上のように、実施の形態３に係るプロセス監視装置１０では、１つの受信プロセス３０が複数の送信プロセス２０の状態を監視することができる。これにより、複数の送信プロセス２０の状態を監視する場合であっても、複雑なプロセスの設置が不要となり、簡便な構成で送信プロセス２０の状態の監視を実現することができる。
【符号の説明】
【００４７】
１０  プロセス監視装置、１１  プロセッサ、１２  メモリ、１３  外部記憶装置、１４  周辺装置、１５，１６，１７  信号線、１１１  プロセス、１１２  スレッド、１１３  ＯＳ、２０，２０Ｙ，２０Ｚ  送信プロセス、２１  送信スレッド、２２  取得スレッド、２３  制御スレッド、３０  受信プロセス、３１  受信スレッド、３２  監視スレッド、４１  通信データ、４２，４２Ａ，４２Ｂ，４２Ｃ  監視データ、４３  付加データ、４４  変更情報、４５  優先度情報、４６  終了情報。
【図１】
2017130331.tif 000003
【図２】
2017130331.tif 000004
【図３】
2017130331.tif 000005
【図４】
2017130331.tif 000006
【図５】
2017130331.tif 000007
【図６】
2017130331.tif 000008
【図７】
2017130331.tif 000009
【図８】
2017130331.tif 000010
【図９】
2017130331.tif 000011
【図１０】
2017130331.tif 000012
【図１１】
2017130331.tif 000013
【図１２】
2017130331.tif 000014
【国際調査報告】
2017130331.tif 000015
2017130331.tif 000016