(57)【要約】【課題】複数のタスクを有するソフトウェアにおいて、各タスクの実実行時間を、簡便な構成、低処理負荷、少量のメモリで算出して記録可能なタスク実行時間記録装置、方法、及びプログラムを提供する。【解決手段】タスク実行時間記録装置は、タスクの起動データもしくは終了データが発生した際に、この直前に発生したデータの発生時刻をタイミングデータとして記憶するタイミング記憶部３００と、起動データが発生する毎に、タイミングデータと起動したタスクの起動時刻とを用いて、中断されるタスクの実行時間を算出する第１の実行時間算出部４２０と、終了データが発生する毎に、タイミングデータと該終了したタスクの終了時刻とを用いて、終了したタスクの実行時間を算出する第２の実行時間算出部４３０と、第１及び第２の実行時間算出部４２０，４３０による算出結果を用いて各タスクの実実行時間を算出する実実行時間算出部４１０とを備える。【選択図】図１
2008310748.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを有するソフトウェアの各タスクの実行時間を記録するタスク実行時間記録装置であって、
各タスクの起動データの発生時の時刻である起動時刻、及び該起動したタスクの種類を、起動情報としてそれぞれ検出する起動情報検出部と、
各タスクの終了データの発生時の時刻である終了時刻を、終了情報としてそれぞれ検出する終了情報検出部と、
タスクの起動データもしくは終了データが発生した際に、タスクの起動データ及び終了データのうち直前に発生したデータの発生時刻を、タイミングデータとして記憶するタイミングデータ記憶部と、
タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがある場合、前記タイミングデータ記憶部に記憶されたタイミングデータと、該起動したタスクの起動時刻とを用いて、該中断されるタスクの実行時間を算出する第１の実行時間算出部と、
タスクの終了データが発生する毎に、前記タイミングデータ記憶部に記憶されたタイミングデータと、該終了したタスクの終了時刻とを用いて、該終了したタスクの実行時間を算出する第２の実行時間算出部と、
前記第１及び第２の実行時間算出部による算出結果を用いて、各タスクの実実行時間を算出する実実行時間算出部と
を備えることを特徴とするタスク実行時間記録装置。
【請求項２】
請求項１記載のタスク実行時間記録装置において、
タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがない場合は、該起動したタスクの種類を最下層とし、中断されるタスクがある場合は、該中断されるタスクの種類の上に該起動したタスクの種類を積み上げることによって生成される、タスク種類階層を生成するタスク種類階層生成部と、
タスクの終了データが発生する毎に、前記タスク種類階層生成部により生成されたタスク種類階層の最上位のタスクの種類を削除するタスク種類削除部とを備え、
前記第２の実行時間算出部で、終了したタスクの種類を特定する際に、前記タスク種類削除部により削除されたタスクの種類を終了したタスクとして特定することを特徴とするタスク実行時間記録装置。
【請求項３】
複数のタスクを有するソフトウェアの各タスクの実行時間を記録するタスク実行時間記録方法であって、
各タスクの起動データの発生時の時刻である起動時刻、及び該起動したタスクの種類を、起動情報としてそれぞれ検出する起動情報検出ステップと、
各タスクの終了データの発生時の時刻である終了時刻を、終了情報としてそれぞれ検出する終了情報検出ステップと、
タスクの起動データもしくは終了データが発生した際に、タスクの起動データ及び終了データのうち直前に発生したデータの発生時刻を、タイミングデータとして記憶するタイミング記憶ステップと、
タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがある場合、前記タイミングデータ記憶ステップで記憶されたタイミングデータと、該起動したタスクの起動時刻とを用いて、該中断されるタスクの実行時間を算出する第１の実行時間算出ステップと、
タスクの終了データが発生する毎に、前記タイミングデータ記憶ステップで記憶されたタイミングデータと、該終了したタスクの終了時刻とを用いて、該終了したタスクの実行時間を算出する第２の実行時間算出ステップと、
前記第１及び第２の実行時間算出ステップによる算出結果を用いて、各タスクの実実行時間を算出する実実行時間算出ステップと
を備えることを特徴とするタスク実行時間記録方法。
【請求項４】
複数のタスクを有するソフトウェアの各タスクの実行時間を記録する処理をコンピュータに実行させるタスク実行時間記録用プログラムであって、
各タスクの起動データの発生時の時刻である起動時刻、及び該起動したタスクの種類を、起動情報としてそれぞれ検出する起動情報検出処理と、
各タスクの終了データの発生時の時刻である終了時刻を、終了情報としてそれぞれ検出する終了情報検出処理と、
タスクの起動データもしくは終了データが発生した際に、タスクの起動データ及び終了データのうち直前に発生したデータの発生時刻を、タイミングデータとして記憶するタイミング記憶処理と、
タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがある場合、前記タイミングデータ記憶処理により記憶されたタイミングデータと、該起動したタスクの起動時刻とを用いて、該中断されるタスクの実行時間を算出する第１の実行時間算出処理と、
タスクの終了データが発生する毎に、前記タイミングデータ記憶処理により記憶されたタイミングデータと、該終了したタスクの終了時刻とを用いて、該終了したタスクの実行時間を算出する第２の実行時間算出処理と、
前記第１及び第２の実行時間算出処理による算出結果を用いて、各タスクの実実行時間を算出する実実行時間算出処理と
を前記コンピュータに実行させる機能を備えることを特徴とするタスク実行時間記録用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のタスクを有するソフトウェアの各タスクの実行時間を記録する装置に関する。
【背景技術】
【０００２】
従来、複数のタスクを有するソフトウェアの検証において、不正動作の有無や処理完了要件の未達などの確認に、処理実行時間が使用されている。この処理実行時間を算出する手法としては、共通タイマを使用して測定対象タスクの処理の開始から終了までの処理実行時間を算出する手法や、個々のタスク毎に実際の実行時間（実実行時間）を算出する手段を設け、個々のタスク毎の実実行時間を算出する手法が挙げられる。
【０００３】
詳細には、共通タイマを使用して処理実行時間を算出する手法として、例えば、常時カウントを行なう共通時刻計測タイマの値を測定対象タスクによる処理の開始時と終了時に記録し、その差分を処理実行時間とする手法が挙げられる。この手法では、構成が簡便で計測のための処理負荷も小さいが、測定対象タスクの実行中に他のタスクが割り込んで実行された場合、他のタスクの実行時間も含まれた時間が測定対象とされてしまい、測定対象タスクが実際に実行されている時間が算出できない。
【０００４】
一方、実実行時間を算出する手法として、例えば、個々のタスク毎にタイマを備え、タスクの中断時にはそのタイマを停止し、中断終了（復帰）時にはタイマを再起動することにより、個々のタスクの実行時間を計測する手法が挙げられる。この手法では、タスクが中断された時間を排除し、個々のタスクが実際に処理された時間のみを計測できるが、計測のための手段をタスク毎に備えねばならず、加えてタスクの中断・復帰を監視する必要があり、計測のための処理負荷が大きくなってしまう。
【０００５】
そこで、１つの時刻計測タイマで個々のタスク毎の実実行時間を算出する技術が提案されている（例えば、特許文献１を参照）。この特許文献１の装置では、タスクの開始から終了まで、そのタスクの開始及び終了時刻と、そのタスクの中断をする他の高優先度タスクの切り替え時刻とを記録し、開始から終了までの時間から、高優先度タスクの実行時間を優先度の高い順に減じていくことにより、それぞれのタスクの実実行時間を算出する。
【特許文献１】特開２００２−３２３９８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の装置では、タスクの開始から終了まで、そのタスクの開始及び終了時刻と、そのタスクに割り込む他の高優先度タスクの切り替え時刻を全て記録してから、高優先度タスクの処理時間を減じていく手法のため、タスクの開始から終了までに割り込まれるタスクの数が多くなる場合、時刻を記憶するメモリ量が大きくなってしまうという問題があった。
【０００７】
本発明は、上記事情に鑑み、複数のタスクを有するソフトウェアにおいて、各タスクの実実行時間を、簡便な構成、低処理負荷、少量のメモリで算出して記録することができるタスク実行時間記録装置、タスク実行時間記録方法、及びタスク実行時間記録用プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するために、本発明のタスク実行時間記録装置は、複数のタスクを有するソフトウェアの各タスクの実行時間を記録するタスク実行時間記録装置であって、各タスクの起動データの発生時の時刻である起動時刻、及び該起動したタスクの種類を、起動情報としてそれぞれ検出する起動情報検出部と、各タスクの終了データの発生時の時刻である終了時刻を、終了情報としてそれぞれ検出する終了情報検出部と、タスクの起動データもしくは終了データが発生した際に、タスクの起動データ及び終了データのうち直前に発生したデータの発生時刻を、タイミングデータとして記憶するタイミングデータ記憶部と、タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがある場合、前記タイミングデータ記憶部に記憶されたタイミングデータと、該起動したタスクの起動時刻とを用いて、該中断されるタスクの実行時間を算出する第１の実行時間算出部と、タスクの終了データが発生する毎に、前記タイミングデータ記憶部に記憶されたタイミングデータと、該終了したタスクの終了時刻とを用いて、該終了したタスクの実行時間を算出する第２の実行時間算出部と、前記第１及び第２の実行時間算出部による算出結果を用いて、各タスクの実実行時間を算出する実実行時間算出部とを備えることを特徴とする（第１発明）。
【０００９】
第１発明のタスク実行時間記録装置において、複数のタスクを有するソフトウェアでは、タスクの割り込み（タスクが起動して実行中の他のタスクが中断される）・復帰（割り込んだタスクが終了して、中断されていた他のタスクの実行が再開される）によりタスクの切り替えが行なわれる。各タスクの起動の際には起動データが発生し、起動情報検出部により各タスクの起動時刻及び起動したタスクの種類が起動情報として検出される。また、各タスクの終了の際には終了データが発生し、終了情報検出部により各タスクの終了時刻が終了情報として検出される。このとき、ソフトウェアでは割り込みに対する復帰は一意に発生する。すなわち、測定対象のタスクが他のタスクの割り込みにより中断された場合（タスクの切り替えが行われた場合）、測定対象のタスクを中断した他のタスクの起動時刻が、測定対象のタスクの中断時刻となると共に、測定対象のタスクを中断した他のタスクの終了時刻が、測定対象のタスクの再開時刻となる。
【００１０】
そこで、タイミングデータ記憶部により、タスクの起動データもしくは終了データが発生した際に、タスクの起動データ及び終了データのうち直前に発生したデータの発生時刻を、タイミングデータとして記憶する。そして、第１の実行時間算出部は、タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがある場合、タイミングデータと該起動したタスクの起動時刻とを用いて、該中断されるタスクの実行時間を算出する。すなわち、この場合、タイミングデータは、中断されるタスクの起動時刻もしくは再開時刻を示している。よって、タイミングデータと起動したタスクの起動時刻（タスクの切り替え時刻）とを用いて、起動もしくは再開されてから中断されるまでの、該中断されるタスクの実行時間を逐次、容易に算出することができる。
【００１１】
また、第２の実行時間算出部は、タスクの終了データが発生する毎に、タイミングデータと該終了したタスクの終了時刻とを用いて、該終了したタスクの実行時間を算出する。すなわち、この場合、タイミングデータは、終了したタスクの起動時刻もしくは再開時刻を示している。よって、タイミングデータと終了したタスクの終了時刻（タスクの切り替え時刻）とを用いて、起動もしくは再開されてから終了されるまでの、該終了したタスクの実行時間を逐次、容易に算出することができる。
【００１２】
すなわち、各タスクの起動時刻及び終了時刻を計測するだけで、第１及び第２の実行時間算出部により、各タスクの実行時間が逐次算出される。そして、第１及び第２の実行時間算出部の算出結果を用いて、実実行時間算出部により、他のタスクに中断された時間を排除した各タスクの実際の実行時間（実実行時間）が算出される。このとき、第１及び第２の実行時間算出部により、各タスクの実行時間が逐次算出されているので、各タスクの起動時刻及び終了時刻を全て記録しておくことなく、各タスクの実実行時間を算出することが可能である。
【００１３】
従って、各タスク毎にタイマを設けたり、各タスクの起動時刻及び終了時刻を全て記録しておくことなく、各タスクの実実行時間を、タスクの切り替え時刻とそのタイミングデータのみを用いて容易に算出することが可能である。よって、本発明によれば、複数のタスクを有するソフトウェアにおいて、各タスクの実実行時間を、簡便な構成、低処理負荷、少量のメモリで算出して記録することができる。
【００１４】
また、第１発明のタスク実行時間記録装置において、タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがある場合は、該中断されるタスクの種類の上に該起動したタスクの種類を積み上げ、中断されるタスクがない場合は、該起動したタスクの種類を最下層とすることによって生成される、タスク種類階層を生成するタスク種類階層生成部と、タスクの終了データが発生する毎に、前記タスク種類階層生成部により生成されたタスク種類階層の最上位のタスクの種類を削除するタスク種類削除部とを備え、前記第２の実行時間算出部で、終了したタスクの種類を特定する際に、前記タスク種類削除部により削除されたタスクの種類を終了したタスクとして特定することが好ましい（第２発明）。
【００１５】
すなわち、割り込み・復帰によりタスクの切り替えが行なわれ、割り込みに対する復帰が一意に発生することから、起動されているタスクを、タスク種類階層として適切に表現し得る。そして、このタスク種類階層において、タスク種類削除部により削除されたタスクの種類から、終了したタスクが容易に特定される。
【００１６】
次に、本発明のタスク実行時間記録方法は、複数のタスクを有するソフトウェアの各タスクの実行時間を記録するタスク実行時間記録方法であって、各タスクの起動データの発生時の時刻である起動時刻、及び該起動したタスクの種類を、起動情報としてそれぞれ検出する起動情報検出ステップと、各タスクの終了データの発生時の時刻である終了時刻を、終了情報としてそれぞれ検出する終了情報検出ステップと、タスクの起動データもしくは終了データが発生した際に、タスクの起動データ及び終了データのうち直前に発生したデータの発生時刻を、タイミングデータとして記憶するタイミング記憶ステップと、タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがある場合、前記タイミングデータ記憶ステップで記憶されたタイミングデータと、該起動したタスクの起動時刻とを用いて、該中断されるタスクの実行時間を算出する第１の実行時間算出ステップと、タスクの終了データが発生する毎に、前記タイミングデータ記憶ステップで記憶されたタイミングデータと、該終了したタスクの終了時刻とを用いて、該終了したタスクの実行時間を算出する第２の実行時間算出ステップと、前記第１及び第２の実行時間算出ステップによる算出結果を用いて、各タスクの実実行時間を算出する実実行時間算出ステップとを備えることを特徴とする（第３発明）。
【００１７】
第３発明のタスク実行時間記録方法によれば、第１発明のタスク実行時間記録装置に関して説明したように、各タスクの起動時刻及び終了時刻を計測するだけで、タスクの切り替え時刻とそのタイミングデータのみを用いて、第１及び第２の実行時間算出ステップにより、各タスクの実行時間が逐次算出される。そして、各タスクの起動時刻及び終了時刻を全て記録しておくことなく、第１及び第２の実行時間算出ステップの算出結果を用いて、実実行時間算出ステップにより、他のタスクに中断された時間を排除した各タスクの実実行時間が算出される。従って、各タスク毎にタイマを設けたり、各タスクの起動時刻及び終了時刻を全て記録しておくことなく、各タスクの実実行時間を、タスクの切り替え時刻とそのタイミングデータのみを用いて容易に算出することが可能である。よって、本発明によれば、複数のタスクを有するソフトウェアにおいて、各タスクの実実行時間を、簡便な構成、低処理負荷、少量のメモリで算出して記録することができる。
【００１８】
次に、本発明のタスク実行時間記録用プログラムは、複数のタスクを有するソフトウェアの各タスクの実行時間を記録する処理をコンピュータに実行させるタスク実行時間記録用プログラムであって、各タスクの起動データの発生時刻である起動時刻、及び該起動したタスクの種類を、起動情報としてそれぞれ検出する起動情報検出処理と、各タスクの終了データの発生時刻である終了時刻を、終了情報としてそれぞれ検出する終了情報検出処理と、タスクの起動データもしくは終了データが発生した際に、タスクの起動データ及び終了データのうち直前に発生したデータの発生時刻を、タイミングデータとして記憶するタイミング記憶処理と、タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがある場合、前記タイミングデータ記憶処理により記憶されたタイミングデータと、該起動したタスクの起動時刻とを用いて、該中断されるタスクの実行時間を算出する第１の実行時間算出処理と、タスクの終了データが発生する毎に、前記タイミングデータ記憶処理により記憶されたタイミングデータと、該終了したタスクの終了時刻とを用いて、該終了したタスクの実行時間を算出する第２の実行時間算出処理と、前記第１及び第２の実行時間算出処理による算出結果を用いて、各タスクの実実行時間を算出する実実行時間算出処理とを前記コンピュータに実行させる機能を有することを特徴とする（第４発明）。
【００１９】
第４発明のタスク実行時間記録用プログラムによれば、第１発明のタスク実行時間記録装置に関して説明した効果を奏し得る処理をコンピュータに実行させることができる。
【発明を実施するための最良の形態】
【００２０】
本発明のタスク実行時間記録装置の一実施形態について、図１〜図４を用いて説明する。図１は、本実施形態のタスク実行時間記録装置の機能ブロック図であり、図２は、図１のタスク実行時間記録装置の測定対象であるソフトウェアにおけるタスク切り替えを示す説明図であり、図３，図４は、図２のタスク切り替えにおけるタスク種類階層データの例を示す説明図である。
【００２１】
図１に示すように、本実施形態のタスク実行時間記録装置は、測定対象となるソフトウェアが搭載されているコンピュータ（ＣＰＵ，ＲＯＭ，ＲＡＭ，Ｉ／Ｏ等からなる）１により構成されている。なお、タスク実行時間記録装置は、ソフトウェアが搭載されているコンピュータ１と通信可能に接続された他のコンピュータにより構成されていてもよい。コンピュータ１は、例えば車両（図示せず）に搭載され、当該車両の動作を制御するＥＣＵや、ナビゲーション装置等を構成する。
【００２２】
タスク実行時間記録装置は、マルチタスクソフトウェア（複数のタスクを有するソフトウェア）の各タスクの実実行時間を記録する。このタスク実行時間記録装置は、その機能として、タスク切り替え部１０、時刻計測タイマ１１０、起動情報検出部１２０、終了情報検出部１３０、タスク種類階層生成部２２０、タスク種類階層記憶部２１０、タスク種類削除部２３０、タイミングデータ記憶部３００、実実行時間算出部４１０、第１の実行時間算出部４２０、第２の実行時換算出部４３０、測定結果データ記憶部５００、及び読み出し器６００を備えている。これらの各機能は、１つのコンピュータにより構成されていてもよく、複数の独立したコンピュータにより構成されていてもよい。
【００２３】
また、これらの各機能は、コンピュータ１のメモリに予め実装されたプログラムをコンピュータ１により実行することにより実現される。このプログラムは、本発明のタスク実行時間記録用プログラムを含んでいる。なお、当該プログラムはＣＤ−ＲＯＭ等の記録媒体を介してメモリに格納されてもよい。或いは、当該プログラムは外部のサーバからネットワークや人工衛星を介して配信または放送され、車両等に搭載された通信機器により受信された上でメモリに格納されてもよい。
【００２４】
タスク切り替え部１０は、ソフトウェアの有する複数のタスクの起動や終了を行い、各タスクを切り替える。タスクの起動や終了の際に、タスクの起動データや終了データがそれぞれ発生される。このタスク切り替え部１０は、測定対象であるソフトウェア内に組み込まれている。
【００２５】
時刻計測タイマ１１０は、タスク切り替え部１０により行われる各タスクの起動時刻や終了時刻を計測する。起動時刻は、タスク切り替え部１０によりタスクが起動された際に発生される各タスクの起動データの発生時の時刻である。また、終了時刻は、タスク切り替え部１０によりタスクが終了された際に発生される各タスクの終了データの発生時の時刻である。
【００２６】
起動情報検出部１２０は、タスクの起動データが発生する毎に、時刻計測タイマ１１０により計測されるタスクの起動時刻、及び該起動したタスクの種類を、起動情報としてそれぞれ検出する。具体的には、起動情報検出部１２０は、タスクの起動タイミングで時刻計測タイマ１１０から得られる時刻とその起動タスクの種類を識別する記号からなる起動情報を起動信号として出力する。
【００２７】
終了情報検出部１３０は、タスクの終了データが発生する毎に、時刻計測タイマ１１０により計測されるタスクの終了時刻を終了情報としてそれぞれ検出する。具体的には、終了情報検出部１３０は、タスクの終了タイミングで時刻計測タイマ１１０から得られる時刻とその終了したタスクの種類を識別する記号からなる終了情報を終了信号として出力する。
【００２８】
タスク種類階層生成部２２０は、タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがない場合は、該起動したタスクの種類を最下層とし、中断されるタスクがある場合は、該中断するタスクの種類の上に該起動したタスクの種類を積み上げることによって生成される、タスク種類階層を生成する。具体的には、タスク階層生成部２２０は、起動情報検出部１２０から入力される起動信号に基づいて、タスク種類階層データを生成し、該生成したデータをタスク種類階層記憶部２１０に記憶させる。これと共に、タスク種類階層生成部２２０は、生成したデータを該起動信号に含まれる起動時刻と併せて第１の実行時間算出部４２０に出力する。
【００２９】
タスク種類削除部２３０は、タスクの終了データが発生する毎に、タスク種類階層生成部２２０により生成されたタスク種類階層の最上位のタスクの種類を削除する。具体的には、タスク種類削除部２３０は、終了情報検出部１３０から入力される終了信号に基づいて、タスク種類階層記憶部２１０からタスク種類階層データを読み出し、タスク種類階層データの最上位のタスクの種類を削除対象データとして、これを削除したデータを生成し、該生成したデータをタスク種類階層記憶部２１０に記憶させる。これと共に、タスク種類削除部２３０は、削除対象データ（削除されたタスクの種類）を該終了信号に含まれる終了時刻と併せて第２の実行時間算出部４３０に出力する。
【００３０】
タイミングデータ記憶部３００は、タスクの起動データもしくは終了データが発生した際に、タスクの起動データ及び終了データのうち直前に発生したデータの発生時刻を、タイミングデータとして記憶する。すなわち、タイミングデータ記憶部３００は、直前に発生したデータがタスクの起動データであれば該起動データの発生時刻（起動時刻）をタイミングデータとして記憶し、直前に発生したデータがタスクの終了データであれば該終了データの発生時刻（終了時刻）をタイミングデータとして記憶する。具体的には、タイミングデータ記憶部３００には、起動情報検出部１１０及び終了情報検出部１２０から出力される信号が、信号発生タイミングに応じて入力される。タイミングデータ記憶部３００は、この入力信号を用い、データ入力タイミングの直前の入力データの時刻情報をタイミングデータとし、第１及び第２の実行時間算出部４２０，４３０に出力する。
【００３１】
第１の実行時間算出部４２０は、タスクの起動データが発生する毎に、該起動により中断されるタスクがあるか否かを判断し、中断されるタスクがある場合、タイミングデータ記憶部３００に記憶されたタイミングデータと、該起動したタスクの起動時刻とを用いて、中断されるタスクの実行時間を算出する。このとき、第１の実行時間算出部４２０は、タスク種類階層生成部２２０から出力されるタスク種類階層データから、中断されるタスクがあるか否かを判断すると共に、中断されるタスクの種類を特定する。
【００３２】
第２の実行時間算出部４３０は、タスクの終了データが発生する毎に、タイミングデータ記憶部３００に記憶されたタイミングデータと、該終了したタスクの終了時刻とを用いて、該終了したタスクの実行時間を算出する。このとき、第２の実行時間算出部４３０は、タスク種類削除部２３０により削除されたタスクの種類を終了したタスクとして特定する。
【００３３】
実実行時間算出部４１０は、第１実行時間算出部４２０による算出結果と、第２の実行時間算出部４３０とによる算出結果を用いて、各タスクの実実行時間を算出する。実実行時間算出部４１０により算出された実実行時間は、各タスクの実実行時間の測定結果データとして、測定結果データ記憶部５００に記憶される。そして、測定結果データ記憶部５００に記憶された測定結果データは、読み出し器６００を介して読み出される。
【００３４】
なお、タスク種類階層記憶部２１０、タイミングデータ記憶部３００、及び測定結果データ記憶部５００は、ＲＡＭ，ＨＤＤ等の記憶装置である。
【００３５】
次に、本実施形態のタスク実行時間記録装置の作動（タスク実行時間記録処理）について説明する。以下では、測定対象であるマルチタスクソフトウェアにおいて、タスク切り替え部１０により図２のようにタスクの切り替えが発生した場合を例にして説明する。図２の例において、測定対象であるマルチタスクソフトウェアは、タスクA，B，Cの３種類のタスクを有しており、これらのタスクの優先順位は高い順にタスクC，B，Aである。そして、図２において、横軸は時間を示し、図２の下段から順に、タスクAの実行状態、タスクBの実行状態、タスクCの実行状態が示されている。なお、図２において、各タスクが実際に実行されている時間をハッチングを付して示している。
【００３６】
まず、図２に示すタスクの切り替えの例について説明する。このタスクの切り替え例では、アイドル状態からタスクAが実行され、このタスクAは実行途中にタスクBにより２回中断されている。また、タスクAを１回目に中断したタスクBは、さらにタスクCにより中断されている。タスクAの終了後は、アイドル状態からタスクBが実行され、このタスクBは実行途中にタスクCにより中断されている。
【００３７】
このタスクの切り替えの例では、タスクAの開始から終了までの時間はt8-t1 であるが、タスクAを実際に処理している時間（実実行時間）は、(t2-t1)+(t6-t5)+(t8-t7) である。同様に、タスクBの実実行時間は、(t3-t2)+(t5-t4) 及びt7-t6 及び(t10-t9)+(t12-t11) である。また、タスクCの実実行時間は、t4-t3 及びt11-t10 である。
【００３８】
ここで、本実施形態では、起動情報検出部１２０は、起動信号として、起動を示すS、タスクの名前、起動時刻を連続して出力する。また、終了情報検出部１３０は、終了信号として、終了を示すE、タスクの名前、終了時刻を連続して出力する。そして、タイミングデータ記憶部３００には、起動情報検出部１２０及び終了情報検出部１３０から出力される信号が、信号発生タイミングに応じて入力される。
【００３９】
例えば、起動情報検出部１２０が、図２のタスク切り替えに応じて出力する起動信号は、
｛SA,t1,SB,t2,SC,t3,SB,t6,SB,t9,SC,t10｝
となる。また、終了情報検出部１３０が、図２のタスク切り替えに応じて出力する終了信号は、
｛EC,t4,EB,t5,EB,t7,EA,t8,EC,t11,EB,t12｝
となる。そして、タイミングデータ記憶部３００に、図２のタスク切り替えに応じて入力される信号は、
｛SA,t1,SB,t2,SC,t3,EC,t4,EB,t5,SB,t6,EB,t7,EA,t8,SB,t9,SC,t10,EC,t11,EB,t12｝
となる。
【００４０】
次に、タスク実行時間記録処理について、図２の例を用いて具体的に説明する。まず、時刻t1で、タスク切り替え部１０によりタスクAが起動されて起動データが発生し、起動情報検出部１２０は、タスクAの起動時刻として時刻計測タイマ１１０から時刻情報t1を取得する。そして、起動情報検出部１２０は、タスクの種類が識別できる信号とその起動時刻｛SA,t1｝を起動信号として出力する。この出力される起動信号は、タスク種類階層生成部２２０とタイミングデータ記憶部３００に入力される。タスク階層生成部２２０は、タスクAにより中断されるタスクがないため、タスクAを最下層とした階層構造を生成し、タスク種類階層記憶部２１０に記憶させる。また、タイミングデータ記憶部３００は、直前に発生したデータがないためタイミングデータを記憶しない。なお、タスクAにより中断されるタスクがないため、第１の実行時間算出部４２０により実行時間算出は行なわれない。
【００４１】
次に、時刻t2で、タスク切り替え部１０によりタスクBが起動され起動データが発生してタスクAが中断され、起動情報検出部１２０は、タスクBの起動時刻として時刻計測タイマ１１０から時刻情報t2を取得する。そして、起動情報検出部１２０は、タスクの種類が識別できる信号とその起動時刻｛SB,t2｝を起動信号として出力する。この出力される起動信号は、タスク種類階層生成部２２０とタイミングデータ記憶部３００に入力される。
【００４２】
タスク階層生成部２２０は、タスク種類階層記憶部２１０からタスク種類階層データを読み出し、タスクBの起動により中断されるタスクとしてタスクAがあることを判断し、タスクAの上位にタスクBを積み上げたタスク種類階層データを生成する。このタスク種類階層データにより、起動しているタスクA,Bが適切に表現される。このタスク種類階層データはタスク種類階層記憶部２１０に記憶されると共に、第１の実行時間算出部４２０に起動時刻t2と併せて出力される。また、タイミングデータ記憶部３００は、タイミングデータとして直前の起動データの発生時刻t1を記憶する。
【００４３】
第１の実行時間算出部４２０は、タスク種類階層生成部２２０から出力されるタスク種類階層データから、タスクBの起動により中断されるタスクとしてタスクAがあることを判断する。そして、第１の実行時間算出部４２０は、タイミングデータ記憶部３００に記憶されたタイミングデータt1と、起動したタスクBの起動時刻t2とを用いて、中断されるタスクAの実行時間t2−t1 を算出する。これにより、タイミングデータとタスクの切り替え時刻のみを用いて、起動してから中断されるまでの、該中断されるタスクAの実行時間が容易に算出される。そして、第１の実行時間算出部４２０は、タスクAの実行時間としてt2-t1 を実実行時間算出部４１０に出力する。
【００４４】
次に、時刻t3で、タスク切り替え部１０によりタスクCが起動され起動データが発生してタスクBが中断され、時刻t2と同様の処理が行われる。すなわち、起動情報検出部１２０は、｛SC,t3｝を起動信号として出力する。タスク階層生成部２２０は、タスクCの起動により中断されるタスクとしてタスクBがあることを判断し、タスクBの上位にタスクCを積み上げたタスク種類階層データを生成する。このとき、図３に例示するようなタスク種類階層データが生成される。また、タイミングデータ記憶部３００は、タイミングデータとして直前の起動データの発生時刻t2を記憶する。第１の実行時間算出部４２０は、タイミングデータt2と、起動したタスクCの起動時刻t3とを用いて、中断されるタスクBの実行時間t3-t2 を算出する。これにより、タイミングデータとタスクの切り替え時刻のみを用いて、起動してから中断されるまでの、該中断されるタスクBの実行時間が容易に算出される。そして、第１の実行時間算出部４２０は、タスクBの実行時間としてt3-t2 を実実行時間算出部４１０に出力する。
【００４５】
次に、時刻t4で、タスク切り替え部１０によりタスクCが終了されて終了データが発生し、終了情報検出部１３０は、タスクCの終了時刻として時刻計測タイマ１１０から時刻情報t4を取得する。そして、終了情報検出部１３０は、タスクの種類が識別できる信号とその終了時刻を終了信号｛EC,t4｝として出力する。この出力される終了信号は、タスク種類削除部２３０とタイミングデータ記憶部３００に入力される。
【００４６】
タスク種類削除部２３０は、タスク種類階層記憶部２１０からタスク種類階層データを読み出し、その最上位タスクであるタスクCを削除したデータを、タスク種類階層データとしてタスク種類階層記憶部３００に記憶させる。このとき、図４に例示するようなタスク種類階層データがタスク種類階層記憶部３００に記憶される。削除されたタスクCを表す削除対象データは、第２の実行時間算出部４３０に終了時刻t4と併せて出力される。また、タイミングデータ記憶部３００は、直前の起動データの発生時刻t3をタイミングデータとして出力する。
【００４７】
第２の実行時間算出部４３０は、タスクの終了時刻t4及びタイミングデータt3より実行時間t4-t3を算出する。これにより、タイミングデータとタスクの切り替え時刻のみを用いて、起動してから終了されるまでの、該終了されるタスクCの実行時間が容易に算出される。そして、第２の実行時間算出部４３０は、この値をタスク種類削除部２３０が削除したタスクCの実行時間として実実行時間算出部４１０に出力する。実実行時間算出部４１０は、第２の実行時間算出部４３０の算出結果から、タスクCの実実行時間t3-t2を算出する。これにより、各タスクの起動時刻及び終了時刻を全て記録しておくことなく、タスクCの実実行時間が容易に算出される。
【００４８】
次に、時刻t5で、タスク切り替え部１０によりタスクBが終了されて終了データが発生し、時刻t4と同様の処理が行われる。すなわち、終了情報検出部１３０は、終了信号｛EB,t5｝を出力する。タスク種類削除部２３０は、タスク種類階層記憶部２１０よりタスク種類階層データを読み出し、その最上位タスクであるタスクBを削除したデータを、タスク種類階層データとしてタスク種類階層記憶部２１０に記憶させる。タイミングデータ記憶部３００は、直前の終了データの発生時刻t4をタイミングデータとして記憶する。そして、第２の実行時間算出部４３０は、タスクの終了時刻t5及びタイミングデータt4より実行時間t5-t4を算出する。これにより、タイミングデータとタスクの切り替え時刻のみを用いて、再開してから終了されるまでの、該終了されるタスクBの実行時間が容易に算出される。そして、第２の実行時間算出部４３０は、この値をタスク種類削除部２３０が削除したタスクBの実行時間として実実行時間算出部４１０に出力する。実実行時間算出部４１０は、タスクCの起動により算出されたタスクBの起動から中断までの実行時間t3-t2 と、タスクBの終了により算出された再開から終了までの実行時間t5-t4 から、タスクBの実実行時間(t3-t2)+(t5-t4) を算出する。これにより、各タスクの起動時刻及び終了時刻を全て記録しておくことなく、タスクBの実実行時間が容易に算出される。
【００４９】
以下、時刻t6〜t12で、同様な処理によりタスク切り替えの信号（起動信号・終了信号）とタイミングデータのみから、それぞれのタスクの実実行時間を算出することができる。そして、算出された実実行時間は、測定結果データとして測定結果データ記憶部５００に記憶され、読み出し器２００を介して読み出すことが可能となる。
【００５０】
以上の処理により、１つの時刻計測タイマ１１０を用いて、各タスクA,B,Cの起動時刻および終了時刻を全て記録しておくことなく、各タスクA,B,Cの実実行時間を、タスクの切り替え時刻とそのタイミングデータのみを用いて容易に算出することができる。従って、本発明によれば、複数のタスクを有するソフトウェアの各タスクの実実行時間を、簡便な構成、低処理負荷、少量のメモリで算出して記録することができる。
【００５１】
なお、本実施形態では、第１の実行時間算出部４２０は、中断されるタスクの種類を、タスク種類階層生成部２２０から出力されるタスク種類階層データから特定しているが、他の実施形態として、タイミングデータ記憶部３００に、タイミングデータとして、タスクの起動データ及び終了データのうち直前に発生したデータの発生時刻に加えて、該タスクの種類を記憶させ、この記憶されたタスクの種類から、中断されるタスクの種類を特定してもよい。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態であるタスク実行時間記録装置の機能ブロック図。
【図２】図１のタスク実行時間記録装置の測定対象であるソフトウェアにおけるタスク切り替えを示す説明図。
【図３】図２のタスク切り替えにおけるタスク種類階層データの例を示す説明図。
【図４】図２のタスク切り替えにおけるタスク種類階層データの他の例を示す説明図。
【符号の説明】
【００５３】
１０…タスク切り替え部、１１０…時刻計測タイマ、１２０…起動情報検出部、１３０…終了情報検出部、２１０…タスク種類階層記憶部、２２０…タスク種類階層生成部、２３０…タスク種類削除部、３００…タイミングデータ記憶部、４１０…実実行時間算出部、４２０…第１の実行時間算出部、４３０…第２の実行時間算出部、５００…測定結果データ記憶部、６００…読み出し器。
【図１】
2008310748.tif 000003
【図２】
2008310748.tif 000004
【図３】
2008310748.tif 000005
【図４】
2008310748.tif 000006