JP2010009296A - ソフトウェア動作監視装置およびソフトウェア動作監視方法 - Google Patents
ソフトウェア動作監視装置およびソフトウェア動作監視方法 Download PDFInfo
- Publication number
- JP2010009296A JP2010009296A JP2008167467A JP2008167467A JP2010009296A JP 2010009296 A JP2010009296 A JP 2010009296A JP 2008167467 A JP2008167467 A JP 2008167467A JP 2008167467 A JP2008167467 A JP 2008167467A JP 2010009296 A JP2010009296 A JP 2010009296A
- Authority
- JP
- Japan
- Prior art keywords
- task
- information
- log
- software
- monitoring
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】ソフトウェア動作を監視するにあたって、タスクの実行状態を確実に監視すること。異常発生原因を迅速に究明すること。実際の運用時にMPUの性能が低下するのを防ぐこと。
【解決手段】IDレジスタ21は、起動されたタスクに付されている識別情報IDを格納する。IDには、自タスクの前に実行されるタスクを特定する情報が含まれている。制御部23は、今回起動されたタスクのIDとその前に起動された前回タスクのIDに基づいて、タスクの起動順序が正常であるか否かをハードウェアで監視する。ログレジスタ群22は、IDとともにこの監視結果の情報をログ情報として時系列に記憶する。ソフトウェアの実行状態に異常が発生し、タイマ監視部25がウォッチドッグタイマ24のタイムアウトを検出すると、ログレジスタ群22から記録部12にログ情報が退避される。
【選択図】図1
【解決手段】IDレジスタ21は、起動されたタスクに付されている識別情報IDを格納する。IDには、自タスクの前に実行されるタスクを特定する情報が含まれている。制御部23は、今回起動されたタスクのIDとその前に起動された前回タスクのIDに基づいて、タスクの起動順序が正常であるか否かをハードウェアで監視する。ログレジスタ群22は、IDとともにこの監視結果の情報をログ情報として時系列に記憶する。ソフトウェアの実行状態に異常が発生し、タイマ監視部25がウォッチドッグタイマ24のタイムアウトを検出すると、ログレジスタ群22から記録部12にログ情報が退避される。
【選択図】図1
Description
この発明は、ソフトウェア動作監視装置およびソフトウェア動作監視方法に関する。
従来、マルチタスク構成のコンピュータプログラムを実行する場合におけるデバッグ技術に関して、次のような情報処理装置がある。この情報処理装置は、タスクを識別するタスク識別情報と、該タスクが所定状態となった場合に停止させる少なくとも1つの停止対象タスクを識別する停止対象タスク識別情報と、を対応付けて記憶する記憶部と、前記タスクが前記所定状態となったことを検出するタスク状態管理部と、前記所定状態検出手段により前記所定状態となったことが検出された場合に、該所定状態となったタスクと対応付けて記憶される前記停止対象タスクを停止させる停止用タスクと、を含むことを特徴とする(例えば、特許文献1参照。)。
しかしながら、前記特許文献1に開示された技術では、タスクの実行状態を実行中の別のタスクで監視するため、ソフトウェアの実行が暴走した場合、タスクの監視を正常に行うことができないという問題点がある。タスクの監視を正常に行えないと、停止用タスクを起動してソフトウェア全体の実行を停止させることができないという問題点がある。また、実際の運用時に異常が発生した場合には、タスクの情報など、発生原因を調べるのに必要な情報を取得することができないため、異常発生後、直ちに原因究明作業を開始することができないという問題点がある。また、実際の運用時には、マイクロプロセッサ(MPU:Micro Processing Unit)でのソフトウェアの実行速度が遅くなり、著しく性能が低下することが考えられる。また、停止用タスクのデバックに多大な工数が発生するという問題点がある。
この発明は、上述した従来技術による問題点を解消するため、タスクの実行状態を確実に監視することができるソフトウェア動作監視装置およびソフトウェア動作監視方法を提供することを目的とする。また、異常発生原因を迅速に究明することができるソフトウェア動作監視装置およびソフトウェア動作監視方法を提供することを目的とする。また、実際の運用時にマイクロプロセッサの性能が低下するのを防ぐことができるソフトウェア動作監視装置およびソフトウェア動作監視方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、このソフトウェア動作監視装置およびソフトウェア動作監視方法は、ソフトウェアを構成する複数のタスクに、自タスクを識別する情報および自タスクの前に実行されるタスクを特定する情報を含む識別情報を予め付与しておき、ソフトウェアの実行時にタスクが起動されるたびに、そのタスクの識別情報とその前に起動されたタスクの識別情報に基づいて、タスクの起動順序が正常であるか否かを監視することを要件とする。この監視結果を、タスクの識別情報とともにログ情報として記憶するようにしてもよい。また、ソフトウェアの実行状態に異常を検出したときに、不揮発性メモリなどの電源オフ後も情報を保持可能な媒体にログ情報を記録するようにしてもよい。
このソフトウェア動作監視装置およびソフトウェア動作監視方法によれば、ソフトウェアの実行状態をハードウェアで監視するので、ソフトウェアの実行が暴走した場合でも、タスクの動作を監視することができる。また、実際の運用時に異常が発生した場合、ログ情報を取得することによって、直ちに異常発生の原因究明作業を開始することができる。また、実際の運用時に、マイクロプロセッサがタスク動作の監視に関与しないので、マイクロプロセッサの負荷が軽減される。
このソフトウェア動作監視装置およびソフトウェア動作監視方法によれば、タスクの実行状態を確実に監視することができるという効果を奏する。また、異常発生原因を迅速に究明することができるという効果を奏する。また、実際の運用時にマイクロプロセッサの性能が低下するのを防ぐことができるという効果を奏する。
以下に添付図面を参照して、このソフトウェア動作監視装置およびソフトウェア動作監視方法の好適な実施の形態を詳細に説明する。
(ソフトウェア動作監視装置の概略の説明)
図1は、実施の形態にかかるソフトウェア動作監視装置の概略を示すブロック図である。図1に示すように、ソフトウェア動作監視装置(以下、監視装置とする)10は、ID監視部11および記録部12を備えている。ID監視部11は、IDレジスタ21、ログレジスタ群22、制御部23、ウォッチドッグタイマ24およびタイマ監視部25を備えている。ソフトウェアを構成する複数のタスクには、それぞれ、識別情報(以下、ID(Identifier)とする)が予め付与されている。このIDには、自タスクを識別する情報(以下、自己情報とする)と、自タスクの直前に実行されるタスクを特定する情報(以下、直前情報とする)が含まれている。
図1は、実施の形態にかかるソフトウェア動作監視装置の概略を示すブロック図である。図1に示すように、ソフトウェア動作監視装置(以下、監視装置とする)10は、ID監視部11および記録部12を備えている。ID監視部11は、IDレジスタ21、ログレジスタ群22、制御部23、ウォッチドッグタイマ24およびタイマ監視部25を備えている。ソフトウェアを構成する複数のタスクには、それぞれ、識別情報(以下、ID(Identifier)とする)が予め付与されている。このIDには、自タスクを識別する情報(以下、自己情報とする)と、自タスクの直前に実行されるタスクを特定する情報(以下、直前情報とする)が含まれている。
ソフトウェアの実行時にタスクが起動されるたびに、そのタスクに付されているIDがIDレジスタ21に格納される。制御部23は、今回起動されたタスクのIDとその前に起動された前回タスクのIDに基づいて、タスクの起動順序が正常であるか否かを監視する。この監視結果は、IDとともにログ情報としてログレジスタ群22に時系列に記憶される。ソフトウェアの実行状態に異常が発生し、タイマ監視部25がウォッチドッグタイマ24のタイムアウトを検出すると、ログ情報は、ログレジスタ群22から記録部12に退避される。
(ソフトウェア動作監視装置の詳細な構成の説明)
図2は、ソフトウェア動作監視装置の構成を示すブロック図である。図2に示すように、ID監視部11は、上述した各機能ブロックの他に、アドレスデコード部26、分周器27、アンドゲート28および第3インターフェース部29を備えている。ID監視部11は、特に限定しないが、例えばFPGA(Field Programmable Gate Array)などのハードウェアで構成されている。
図2は、ソフトウェア動作監視装置の構成を示すブロック図である。図2に示すように、ID監視部11は、上述した各機能ブロックの他に、アドレスデコード部26、分周器27、アンドゲート28および第3インターフェース部29を備えている。ID監視部11は、特に限定しないが、例えばFPGA(Field Programmable Gate Array)などのハードウェアで構成されている。
アドレスデコード部26は、監視対象であるソフトウェア42を実行するマイクロプロセッサ(MPU)41から与えられるアドレス信号a1をデコードして、マイクロプロセッサ41のアクセス先を特定するセレクト信号およびアドレス信号を生成する。分周器27は、外部クロック源43から送られてくるクロック信号を分周してカウントアップ信号を生成する。ウォッチドッグタイマ24は、そのカウントアップ信号によりカウントアップされる。アンドゲート28は、マイクロプロセッサ41で起動されたタスクのIDがIDレジスタ21に書き込まれるときに、クリア信号を生成する。ウォッチドッグタイマ24は、そのクリア信号により初期値に設定される。タイマ監視部25は、ウォッチドッグタイマ24のタイムアウトを検出すると、障害通知信号を出力する。
IDレジスタ21は、マイクロプロセッサ41によりタスクが起動されるたびに、マイクロプロセッサ41から送られてくるIDを格納し、制御部23へ転送する。制御部23は、前回IDレジスタ31、最新IDレジスタ32、判定部33、第2インターフェース部34および第1インターフェース部35を備えている。最新IDレジスタ32は、IDレジスタ21から送られてくるIDを格納する。前回IDレジスタ31は、IDレジスタ21から最新IDレジスタ32にIDが送られてくると、それまで最新IDレジスタ32に格納されていたIDを格納する。
つまり、最新IDレジスタ32には、直近に起動された最新タスクのID(以下、最新IDとする)が格納され、前回IDレジスタ31には、その1回前に起動された前回タスクのID(以下、前回IDとする)が格納される。ただし、初回に起動されるタスクのIDは、前回IDレジスタ31に格納される。判定部33は、最新IDの直前情報と前回IDの自己情報を比較し、前回IDの自己情報が最新IDの直前情報に含まれていればタスクの起動順序が正常(OK)であると判定し、含まれていなければタスクの起動順序が異常(NG)であると判定する。
第2インターフェース部34は、監視装置10から、監視装置10に接続される検出装置44へログ情報を転送する際の仲介をする。検出装置44は、タイマ監視部25からの障害通知信号を受信して、マイクロプロセッサ41でのソフトウェアの実行に障害が発生したことを検出する装置である。ユーザは、端末46を操作することにより、WAN(Wide Area Network)やLAN(Local Area Network)などのネットワーク45を介して検出装置44を遠隔操作し、ログレジスタ群22または記録部12からログ情報を取得することができる。
第1インターフェース部35は、最新IDレジスタ32に格納されている最新IDと、その最新IDに対する判定部33の判定結果の情報を、両者を対応付けてログレジスタ群22へ転送する際の仲介をする。また、第1インターフェース部35は、第2インターフェース部34へ、ログレジスタ群22から読み出されたログ情報または第3インターフェース部29を介して記録部12から読み出されたログ情報を転送する際の仲介をする。
ログレジスタ群22は、第1インターフェース部35から送られてくる、最新IDおよびそれ対する起動順序の判定結果の情報を時系列に記憶する。図3は、ログレジスタ群の構成の一例を示す説明図である。図3に示すように、ログレジスタ群22は、複数のレジスタ51,52,53,54で構成されている。これらのレジスタ51,52,53,54には、例えばID56と、それに対応する起動順序の判定結果を示すフラグ(判定フラグ)57のデータが、例えばアドレスの若い順から格納される。そして、ログレジスタ群22の全てのレジスタにデータが格納されると、再び、アドレスが最も若いレジスタ51からアドレスの若い順にデータが格納される。なお、起動順序の判定結果がNGである場合には、NG判定時の時刻情報(タイムスタンプ)、マイクロプロセッサ41や周辺デバイスのレジスタ情報などを一緒に格納するようにしてもよい。
第3インターフェース部29は、ログレジスタ群22から記録部12へログ情報を転送する際の仲介をする。また、第3インターフェース部29は、記録部12から第1インターフェース部35へログ情報を転送する際の仲介をする。また、第3インターフェース部29は、記録部12からマイクロプロセッサ41へログ情報を転送する際の仲介をする。つまり、マイクロプロセッサ41は、第3インターフェース部29を介して記録部12からログ情報を読み出すことができる。また、マイクロプロセッサ41は、ログレジスタ群22を選択することによって、ログレジスタ群22からもログ情報を読み出すことができる。
記録部12は、不揮発性メモリで構成されており、第3インターフェース部29を介してログレジスタ群22から送られてくるログ情報を記録する。図4は、記録部に記録される情報の一例を示す説明図である。図4に示すように、記録部12には、例えば装置種別や装置版数やソフト版数などの装置基本情報61、IDおよびそれに対応する判定フラグ(OK)からなるID判定OK時の情報62、並びにIDおよびそれに対応する判定フラグ(NG)からなるID判定NG時の情報63が記録される。図示例のように、ID判定NG時の情報63として、NG判定時の時刻情報(タイムスタンプ)、マイクロプロセッサ41や周辺デバイスのレジスタ情報、その他の障害解析に有効な情報などを一緒に記録するようにしてもよい。これらNG判定時の付加情報は、障害要因を分析する際のスピード化に寄与する。
(ID付与方法の説明)
図5は、タスクの起動順序の一例を示す説明図である。図6は、図5に示すタスクの起動順序に基づいてIDを付与した例を示す説明図である。これらの図に示すように、IDにおいて、最上位の値は、自己情報であり、自タスクのタスク番号(図5の各タスクの末尾に付された数字)を示す。タスク番号に続く下位の値は、直前情報であり、自タスクの直前に起動されるべきタスクのタスク番号を示す。例えば、IDが「1000」である場合、「1」がタスク番号であり、「000」は直前に起動されるタスクがないことを示す。つまり、タスク番号が1であるタスク1は、先頭のタスクである。また、IDが「2159」である場合には、「2」がタスク番号であり、「159」が直前に起動されるべきタスクのタスク番号である。従って、タスク2は、タスク1、タスク5またはタスク9からアクセスされるが、それ以外のタスクからはアクセスされないことになる。
図5は、タスクの起動順序の一例を示す説明図である。図6は、図5に示すタスクの起動順序に基づいてIDを付与した例を示す説明図である。これらの図に示すように、IDにおいて、最上位の値は、自己情報であり、自タスクのタスク番号(図5の各タスクの末尾に付された数字)を示す。タスク番号に続く下位の値は、直前情報であり、自タスクの直前に起動されるべきタスクのタスク番号を示す。例えば、IDが「1000」である場合、「1」がタスク番号であり、「000」は直前に起動されるタスクがないことを示す。つまり、タスク番号が1であるタスク1は、先頭のタスクである。また、IDが「2159」である場合には、「2」がタスク番号であり、「159」が直前に起動されるべきタスクのタスク番号である。従って、タスク2は、タスク1、タスク5またはタスク9からアクセスされるが、それ以外のタスクからはアクセスされないことになる。
(ID判定方法の説明)
図7は、ID判定方法を説明するためのログ情報の一例を示す説明図である。図7には、例えば、タスク3、タスク4、タスク5、タスク2、タスク8、タスク5、・・・の順に起動された場合に、ログレジスタ群22に格納されたログ情報が示されている。この例では、アドレス0x04のIDが「4300」であるので、このタスク4の直前に起動されるべきタスクは、タスク3のみである。アドレス0x00のIDが「3200」であるので、タスク4の直前に起動されたタスクは、タスク3である。従って、この2つのタスクの間の起動順序は正常であるので、ID判定OKである。従って、タスク4に対する判定フラグは「0000」である。一方、アドレス0x14のIDは「5400」であるので、このタスク5の直前に起動されるべきタスクは、タスク4のみである。しかし、アドレス0x10のIDは「8270」であるので、タスク5の直前に起動されたタスクは、タスク8である。従って、この2つのタスクの間の起動順序は異常であるので、ID判定NGとなり、タスク5に対する判定フラグは「8000」となる。
図7は、ID判定方法を説明するためのログ情報の一例を示す説明図である。図7には、例えば、タスク3、タスク4、タスク5、タスク2、タスク8、タスク5、・・・の順に起動された場合に、ログレジスタ群22に格納されたログ情報が示されている。この例では、アドレス0x04のIDが「4300」であるので、このタスク4の直前に起動されるべきタスクは、タスク3のみである。アドレス0x00のIDが「3200」であるので、タスク4の直前に起動されたタスクは、タスク3である。従って、この2つのタスクの間の起動順序は正常であるので、ID判定OKである。従って、タスク4に対する判定フラグは「0000」である。一方、アドレス0x14のIDは「5400」であるので、このタスク5の直前に起動されるべきタスクは、タスク4のみである。しかし、アドレス0x10のIDは「8270」であるので、タスク5の直前に起動されたタスクは、タスク8である。従って、この2つのタスクの間の起動順序は異常であるので、ID判定NGとなり、タスク5に対する判定フラグは「8000」となる。
(正常時の動作の説明)
図8および図9は、それぞれ、実施の形態にかかるソフトウェア動作監視装置の正常時の動作を説明するシーケンス図およびタイミングチャートである。まず、正常動作時に関係のある信号について、図2を参照しながら説明する。図9において、アドレス信号a1、データ信号d1および書き込み制御信号w1は、マイクロプロセッサ41からアドレスデコード部26に与えられる。セレクト信号s3、データ信号d2および書き込み制御信号w2は、アドレスデコード部26からIDレジスタ21に与えられる。データ信号d3は、IDレジスタ21から前回IDレジスタ31または最新IDレジスタ32に与えられる。セレクト信号s6、アドレス信号a6、データ信号d6および書き込み制御信号w6は、第1インターフェース部35からログレジスタ群22に与えられる。
図8および図9は、それぞれ、実施の形態にかかるソフトウェア動作監視装置の正常時の動作を説明するシーケンス図およびタイミングチャートである。まず、正常動作時に関係のある信号について、図2を参照しながら説明する。図9において、アドレス信号a1、データ信号d1および書き込み制御信号w1は、マイクロプロセッサ41からアドレスデコード部26に与えられる。セレクト信号s3、データ信号d2および書き込み制御信号w2は、アドレスデコード部26からIDレジスタ21に与えられる。データ信号d3は、IDレジスタ21から前回IDレジスタ31または最新IDレジスタ32に与えられる。セレクト信号s6、アドレス信号a6、データ信号d6および書き込み制御信号w6は、第1インターフェース部35からログレジスタ群22に与えられる。
図8および図9に示すように、初回のタスクが起動されると、マイクロプロセッサ41は、IDレジスタ21のアドレス(アドレス信号a1)と初回のタスクのID(データ信号d1)をアサートした後、書き込み制御信号w1をアサートする。アドレスデコード部26は、IDレジスタ21への書き込みであることを判定し、データを取り込む(ステップS1)。そして、アドレスデコード部26は、IDレジスタ21に対して、セレクト信号s3、データ信号d2および書き込み制御信号w2をアサートして、IDレジスタ21に初回のタスクのIDを書き込む(ステップS2)。
このとき、アンドゲート28に入力するセレクト信号s3と書き込み制御信号w2がともにアサートされており、アンド条件を満たすので、アンドゲート28はクリア信号をアサートする。それによって、ウォッチドッグタイマ24が初期値に戻る(ステップS3)。また、IDレジスタ21は、データ信号d3により初回のタスクのIDを制御部23へ転送する(ステップS4)。制御部23は、最初のIDの書き込みであることを判断して、このIDを前回IDレジスタ31に書き込む(ステップS5)。
2回目のタスクが起動されると、初回の場合と同様にして、ウォッチドッグタイマ24が初期値に戻り、マイクロプロセッサ41から制御部23へIDが転送される(ステップS6〜ステップS9)。制御部23は、IDを最新IDレジスタ32に書き込む(ステップS10)。次いで、判定部33は、前回IDレジスタ31および最新IDレジスタ32からそれぞれ前回IDおよび最新IDを読み出し、上述したID判定方法によりタスクの起動順序が正常であるか否かを判定する(ステップS11)。そして、制御部23は、最新IDレジスタ32に格納されている最新IDと判定部33による判定結果の情報を対応付け、それをデータ信号d6としてアサートするとともに、セレクト信号s6およびログレジスタ群22の先頭アドレス(アドレス信号a6)をアサートする。さらに、制御部23は、書き込み制御信号w6をアサートして、ログレジスタ群22にIDとそれに対応する判定結果の情報を書き込む(ステップS12)。
次いで、制御部23は、最新IDレジスタ32に格納されている最新IDを前回IDレジスタ31へ移動させる(ステップS13)。そして、制御部23は、次回のログレジスタ群22へのデータの書き込みに備えて、ログレジスタ群22のアドレスを自動更新する(ステップS14)。3回目以降のタスクの起動については、2回目の場合と同様である。
(障害発生時の動作の説明)
図10および図11は、それぞれ、実施の形態にかかるソフトウェア動作監視装置の障害発生時の動作を説明するシーケンス図およびタイミングチャートである。まず、障害発生時に関係のある信号について、図2を参照しながら説明する。図11において、ログレジスタ群22からログ情報を読み出す際には、セレクト信号s6、アドレス信号a6および読み出し制御信号r6は、第1インターフェース部35からログレジスタ群22に与えられる。また、読み出したログ情報を記録部12へ転送する際には、セレクト信号s7、アドレス信号a6および書き込み制御信号w6は、第1インターフェース部35から第3インターフェース部29に与えられる。そのどちらのタイミングにおいても、データ信号d6は、ログレジスタ群22から第3インターフェース部29に与えられる。セレクト信号s8、アドレス信号a8、データ信号d8および書き込み制御信号w8は、第3インターフェース部29から記録部12に与えられる。
図10および図11は、それぞれ、実施の形態にかかるソフトウェア動作監視装置の障害発生時の動作を説明するシーケンス図およびタイミングチャートである。まず、障害発生時に関係のある信号について、図2を参照しながら説明する。図11において、ログレジスタ群22からログ情報を読み出す際には、セレクト信号s6、アドレス信号a6および読み出し制御信号r6は、第1インターフェース部35からログレジスタ群22に与えられる。また、読み出したログ情報を記録部12へ転送する際には、セレクト信号s7、アドレス信号a6および書き込み制御信号w6は、第1インターフェース部35から第3インターフェース部29に与えられる。そのどちらのタイミングにおいても、データ信号d6は、ログレジスタ群22から第3インターフェース部29に与えられる。セレクト信号s8、アドレス信号a8、データ信号d8および書き込み制御信号w8は、第3インターフェース部29から記録部12に与えられる。
図10および図11に示すように、n回目のタスクが起動された後に、ソフトウェアの実行状態に異常が発生したとする。この異常発生によって、ウォッチドッグタイマ24が初期値に戻らない場合、タイマ監視部25は、カウンタオーバーフロー(OVF)を検出し、制御部23に対して障害通知信号をアサートする(ステップS21)。制御部23は、ログレジスタ群22の先頭アドレス(アドレス信号a6)、セレクト信号s6および読み出し制御信号r6をアサートして、ログレジスタ群22からログ情報(データ信号d6)を読み出す(ステップS22)。
続いて、制御部23は、セレクト信号s6および読み出し制御信号r6をネゲートした後、セレクト信号s7および書き込み制御信号w6をアサートして、ログ情報を第3インターフェース部29へ転送する(ステップS23)。第3インターフェース部29は、記録部12の先頭アドレス(アドレス信号a8)、ログ情報(データ信号d8)およびセレクト信号s8をアサート後、書き込み制御信号w8をアサートして、記録部12にログ情報を書き込む(ステップS24)。以後、ログレジスタ群22および記録部12のアドレスを自動更新しながら、ステップS22〜ステップS24を繰り返して全てのログ情報をログレジスタ群22から記録部12へ転送し、記録する。なお、障害通知信号のアサートをトリガとする以外にも、ユーザが端末46を操作することにより、あるいはマイクロプロセッサ41からの指示により、ログレジスタ群22から記録部12へログ情報を退避させることができる。
(ログ情報の遠隔読み出し動作の説明)
図12および図13は、それぞれ、実施の形態にかかるソフトウェア動作監視装置からログ情報を読み出す動作を説明するシーケンス図およびタイミングチャートである。まず、記録部12からのログ情報の遠隔読み出し時に関係のある信号について、図2を参照しながら説明する。図13において、アドレス信号a9および読み出し制御信号r9は、検出装置44から第2インターフェース部34に与えられる。データ信号d9は、第2インターフェース部34から検出装置44に与えられる。アドレス信号a10および読み出し制御信号r10は、第2インターフェース部34から第1インターフェース部35に与えられる。データ信号d10は、第1インターフェース部35から第2インターフェース部34に与えられる。セレクト信号s7、アドレス信号a6および読み出し制御信号r6は、第1インターフェース部35から第3インターフェース部29に与えられる。データ信号d6は、第3インターフェース部29から第1インターフェース部35に与えられる。セレクト信号s8、アドレス信号a8および読み出し制御信号r8は、第3インターフェース部29から記録部12に与えられる。データ信号d8は、記録部12から第3インターフェース部29に与えられる。
図12および図13は、それぞれ、実施の形態にかかるソフトウェア動作監視装置からログ情報を読み出す動作を説明するシーケンス図およびタイミングチャートである。まず、記録部12からのログ情報の遠隔読み出し時に関係のある信号について、図2を参照しながら説明する。図13において、アドレス信号a9および読み出し制御信号r9は、検出装置44から第2インターフェース部34に与えられる。データ信号d9は、第2インターフェース部34から検出装置44に与えられる。アドレス信号a10および読み出し制御信号r10は、第2インターフェース部34から第1インターフェース部35に与えられる。データ信号d10は、第1インターフェース部35から第2インターフェース部34に与えられる。セレクト信号s7、アドレス信号a6および読み出し制御信号r6は、第1インターフェース部35から第3インターフェース部29に与えられる。データ信号d6は、第3インターフェース部29から第1インターフェース部35に与えられる。セレクト信号s8、アドレス信号a8および読み出し制御信号r8は、第3インターフェース部29から記録部12に与えられる。データ信号d8は、記録部12から第3インターフェース部29に与えられる。
図12および図13に示すように、ユーザが端末46を操作して、記録部12からログ情報を読み出そうとすると、検出装置44は、端末46からの読み取り指示を認識する(ステップS31)。そして、検出装置44は、記録部12の先頭アドレス(アドレス信号a9)をアサートした後、読み出し制御信号r9をアサートして、第2インターフェース部34へログ情報の読み取りを要求する(ステップS32)。第2インターフェース部34は、アドレス信号a10および読み出し制御信号r10をアサートして、第1インターフェース部35へログ情報の読み取りを要求する(ステップS33)。第1インターフェース部35は、アドレス信号a6、セレクト信号s7および読み出し制御信号r6をアサートして、第3インターフェース部29へログ情報の読み取りを要求する(ステップS34)。第3インターフェース部29は、アドレス信号a8、セレクト信号s8および読み出し制御信号r8をアサートして、記録部12へログ情報の読み取りを要求する(ステップS35)。
そして、第3インターフェース部29は、記録部12からログ情報(データ信号d8)を読み出す(ステップS36)。記録部12からのログ情報(データ信号d8)の出力確定後に、第3インターフェース部29は、読み出し制御信号r8をネゲートし、第1インターフェース部35へログ情報(データ信号d6)を出力する(ステップS37)。第1インターフェース部35は、ログ情報(データ信号d6)の出力確定後に、読み出し制御信号r6をネゲートし、第2インターフェース部34へログ情報(データ信号d10)を出力する(ステップS38)。第2インターフェース部34は、ログ情報(データ信号d10)の出力確定後に、読み出し制御信号r10をネゲートし、検出装置44へログ情報(データ信号d9)を出力する(ステップS39)。検出装置44は、ログ情報(データ信号d9)の出力確定後に、読み出し制御信号r9をネゲートし、ログ情報を一時蓄積する。以後、検出装置44は、記録部12からログ情報を読み出すためのアドレスを自動更新しながら、ステップS32〜ステップS39を繰り返して全てのログ情報を記録部12から読み出し、読み出したログ情報を一括した結果報告を端末46へ転送する(ステップS40)。
なお、ステップS34で、第1インターフェース部35がセレクト信号s7の代わりにセレクト信号s6をアサートしてログレジスタ群22を選択すれば、記録部12からではなく、ログレジスタ群22からログ情報を読み出すことができる。また、マイクロプロセッサ41は、アドレスデコード部26を介してセレクト信号s4によりログレジスタ群22を選択し、アドレス信号a4によりログレジスタ群22の先頭アドレスを指定することによって、ログレジスタ群22からログ情報を読み出すことができる。さらに、マイクロプロセッサ41は、アドレスデコード部26を介してセレクト信号s5により第3インターフェース部29を選択し、アドレス信号a4により記録部12の先頭アドレスを指定することによって、記録部12からログ情報を読み出すことができる。
以上の構成において、ID監視部11は監視手段としての機能を有する。また、記録部12は記録手段としての機能を有する。また、ログレジスタ群22はログ記憶手段としての機能を有する。第3インターフェース部29は、監視手段から記録手段へのログ転送手段としての機能を有する。
以上説明したように、本実施の形態によれば、ID監視部11がハードウェアで構成されているので、ソフトウェアの実行状態をハードウェアで監視することができる。従って、ソフトウェアの実行が暴走した場合でも、タスクの動作を監視することができる。従って、タスクの実行状態を確実に監視することができる。また、実際の運用時に異常が発生した場合、例えばユーザが端末46を操作してログ情報を取得することによって、直ちに異常発生の原因究明作業を開始することができる。従って、異常発生原因を迅速に究明することができる。また、実際の運用時に、マイクロプロセッサ41がタスク動作の監視に関与しないので、マイクロプロセッサ41の負荷が軽減される。従って、実際の運用時にマイクロプロセッサ41の性能が低下するのを防ぐことができる。また、記録部12にログ情報を退避することによって、電源断やリセット時にログ情報が消滅するのを回避することができる。また、ログ情報を記録しておくことによって、ソフトウェアの実行状態に異常が発生してウォッチドッグタイマ24がタイムアウトした場合や、その他の原因による障害が発生した場合に、その原因となるタスクを容易に特定することができる。これらの効果は、実際の運用時に限らず、ソフトウェアのデバッグ時にも、有効である。また、実際の運用中でも、ユーザが端末46を操作してログ情報を取得することによって、障害に至らぬ程度の軽微な不具合を認識して対処することが可能となるので、監視対象装置の信頼性の向上に寄与する。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)自タスクを識別する情報および自タスクの前に実行されるタスクを特定する情報を含む識別情報が付された複数のタスクから構成されるソフトウェアの動作を監視するソフトウェア動作監視装置であって、
今回起動されたタスクに付されている前記識別情報とその前に起動された前回タスクに付されている前記識別情報に基づいて、タスク起動順序を監視する監視手段、を備えることを特徴とするソフトウェア動作監視装置。
今回起動されたタスクに付されている前記識別情報とその前に起動された前回タスクに付されている前記識別情報に基づいて、タスク起動順序を監視する監視手段、を備えることを特徴とするソフトウェア動作監視装置。
(付記2)起動されたタスクの前記識別情報を起動順にログ情報として記憶するログ記憶手段、をさらに備えることを特徴とする付記1に記載のソフトウェア動作監視装置。
(付記3)前記ログ情報には、前記監視手段によるタスク起動順序の監視結果の情報が前記識別情報に対応付けられて含まれていることを特徴とする付記2に記載のソフトウェア動作監視装置。
(付記4)前記ログ情報を記録する不揮発性の記録手段と、前記ソフトウェアの実行状態に異常を検出したときに前記監視手段から前記記録手段へ前記ログ情報を転送する手段と、をさらに備えることを特徴とする付記2または3に記載のソフトウェア動作監視装置。
(付記5)ネットワークに接続された他装置と前記監視手段の間で、前記監視手段から前記他装置へ前記ログ情報を転送する際の仲介をするインターフェース、をさらに備えることを特徴とする付記2〜4のいずれか一つに記載のソフトウェア動作監視装置。
(付記6)前記監視手段は、前記ソフトウェアを実行している処理装置へ前記ログ情報を転送する手段、をさらに備えることを特徴とする付記2〜5のいずれか一つに記載のソフトウェア動作監視装置。
(付記7)自タスクを識別する情報および自タスクの前に実行されるタスクを特定する情報を含む識別情報が付された複数のタスクから構成されるソフトウェアの実行時に、今回起動されたタスクに付されている前記識別情報とその前に起動された前回タスクに付されている前記識別情報に基づいて、タスク起動順序を監視することを特徴とするソフトウェア動作監視方法。
10 ソフトウェア動作監視装置
11 監視手段
12 記録手段
22 ログ記憶手段
29 監視手段から記録手段へのログ転送手段
11 監視手段
12 記録手段
22 ログ記憶手段
29 監視手段から記録手段へのログ転送手段
Claims (5)
- 自タスクを識別する情報および自タスクの前に実行されるタスクを特定する情報を含む識別情報が付された複数のタスクから構成されるソフトウェアの動作を監視するソフトウェア動作監視装置であって、
今回起動されたタスクに付されている前記識別情報とその前に起動された前回タスクに付されている前記識別情報に基づいて、タスク起動順序を監視する監視手段、
を備えることを特徴とするソフトウェア動作監視装置。 - 起動されたタスクの前記識別情報を起動順にログ情報として記憶するログ記憶手段、
をさらに備えることを特徴とする請求項1に記載のソフトウェア動作監視装置。 - 前記ログ情報には、前記監視手段によるタスク起動順序の監視結果の情報が前記識別情報に対応付けられて含まれていることを特徴とする請求項2に記載のソフトウェア動作監視装置。
- 前記ログ情報を記録する不揮発性の記録手段と、
前記ソフトウェアの実行状態に異常を検出したときに前記監視手段から前記記録手段へ前記ログ情報を転送する手段と、
をさらに備えることを特徴とする請求項2または3に記載のソフトウェア動作監視装置。 - 自タスクを識別する情報および自タスクの前に実行されるタスクを特定する情報を含む識別情報が付された複数のタスクから構成されるソフトウェアの実行時に、今回起動されたタスクに付されている前記識別情報とその前に起動された前回タスクに付されている前記識別情報に基づいて、タスク起動順序を監視することを特徴とするソフトウェア動作監視方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008167467A JP2010009296A (ja) | 2008-06-26 | 2008-06-26 | ソフトウェア動作監視装置およびソフトウェア動作監視方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008167467A JP2010009296A (ja) | 2008-06-26 | 2008-06-26 | ソフトウェア動作監視装置およびソフトウェア動作監視方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010009296A true JP2010009296A (ja) | 2010-01-14 |
Family
ID=41589719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008167467A Withdrawn JP2010009296A (ja) | 2008-06-26 | 2008-06-26 | ソフトウェア動作監視装置およびソフトウェア動作監視方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010009296A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011177390A (ja) * | 2010-03-02 | 2011-09-15 | Sophia Co Ltd | 遊技機 |
US20120185858A1 (en) * | 2011-01-19 | 2012-07-19 | Kabushiki Kaisha Toshiba | Processor operation monitoring system and monitoring method thereof |
CN103136475A (zh) * | 2011-11-29 | 2013-06-05 | 姚纪卫 | 一种检查计算机病毒的方法和装置 |
JP2014092860A (ja) * | 2012-11-01 | 2014-05-19 | Toshiba Corp | タスク実行順診断装置 |
US9690269B2 (en) | 2011-12-16 | 2017-06-27 | Autonetworks Technologies, Ltd. | Controller and process monitoring method including monitoring of process execution sequence |
WO2018163342A1 (ja) * | 2017-03-09 | 2018-09-13 | 日本電気株式会社 | 異常検知装置、異常検知方法および異常検知プログラム |
CN112416673A (zh) * | 2020-11-13 | 2021-02-26 | 宁波拓普集团股份有限公司 | 一种前后触发型周期运行任务的硬件监控装置及方法 |
-
2008
- 2008-06-26 JP JP2008167467A patent/JP2010009296A/ja not_active Withdrawn
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011177390A (ja) * | 2010-03-02 | 2011-09-15 | Sophia Co Ltd | 遊技機 |
US20120185858A1 (en) * | 2011-01-19 | 2012-07-19 | Kabushiki Kaisha Toshiba | Processor operation monitoring system and monitoring method thereof |
CN102693176A (zh) * | 2011-01-19 | 2012-09-26 | 株式会社东芝 | 处理器动作检查***及其检查方法 |
CN103136475A (zh) * | 2011-11-29 | 2013-06-05 | 姚纪卫 | 一种检查计算机病毒的方法和装置 |
US9690269B2 (en) | 2011-12-16 | 2017-06-27 | Autonetworks Technologies, Ltd. | Controller and process monitoring method including monitoring of process execution sequence |
JP2014092860A (ja) * | 2012-11-01 | 2014-05-19 | Toshiba Corp | タスク実行順診断装置 |
WO2018163342A1 (ja) * | 2017-03-09 | 2018-09-13 | 日本電気株式会社 | 異常検知装置、異常検知方法および異常検知プログラム |
JPWO2018163342A1 (ja) * | 2017-03-09 | 2019-12-26 | 日本電気株式会社 | 異常検知装置、異常検知方法および異常検知プログラム |
US11496507B2 (en) | 2017-03-09 | 2022-11-08 | Nec Corporation | Abnormality detection device, abnormality detection method and abnormality detection program |
CN112416673A (zh) * | 2020-11-13 | 2021-02-26 | 宁波拓普集团股份有限公司 | 一种前后触发型周期运行任务的硬件监控装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010009296A (ja) | ソフトウェア動作監視装置およびソフトウェア動作監視方法 | |
US20140068350A1 (en) | Self-checking system and method using same | |
US20080016415A1 (en) | Evaluation system and method | |
US20200033928A1 (en) | Method of periodically recording for events | |
JP4659643B2 (ja) | ロギングシステム | |
US8245085B2 (en) | Dump output control apparatus and dump output control method | |
US9009537B2 (en) | Diagnostic data capture in a computing environment | |
JP2006338445A (ja) | 異常情報格納装置 | |
JP6177461B2 (ja) | 監視レコーダ及びその起動方法 | |
JP5133649B2 (ja) | 電子機器およびメモリ管理プログラム | |
JP6880961B2 (ja) | 情報処理装置、およびログ記録方法 | |
JP5504604B2 (ja) | Ram診断装置 | |
JP2009211625A (ja) | 情報処理装置の起動ログ保存方法 | |
JP5627414B2 (ja) | 動作ログ収集システム及びプログラム | |
JP2009223714A (ja) | 演算回路及び演算回路の異常解析方法 | |
CN113874802B (zh) | 控制***、可编程逻辑控制器以及信息处理方法 | |
JP2014146074A (ja) | 制御装置、ログ格納方法及び制御プログラム | |
JP2008257405A (ja) | 計算機動作情報記録装置 | |
JP2012256279A (ja) | 情報処理装置および方法、並びにプログラム | |
JP2019526108A (ja) | 診断データキャプチャ | |
JP6201921B2 (ja) | マイクロコンピュータ | |
JP6680979B2 (ja) | テスト支援プログラム、テスト支援装置及びテスト支援方法 | |
JP2021189864A (ja) | 車両用電子制御装置及び車両制御方法 | |
JP5447841B2 (ja) | 情報処理装置、デバッグ情報取得方法、およびデバッグ情報取得プログラム | |
JP5818831B2 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110906 |