(57)【要約】【課題】より正確なＣＰＵ使用率を算出するシステムを提供すること。【解決手段】ＣＰＵ１１が、アプリケーション毎に生成されるアイドルタスクのうちの１つを測定対象タスクとして登録する測定対象タスク登録機能と、ＣＰＵ１１がアイドル状態の時に登録されたアイドルタスクの実行時間を測定するアイドルタスク測定機能と、測定された各アイドルタスクの実行時間に基づいて当該アイドルタスク毎に対応する各アプリケーションによるＣＰＵ１１の使用率を算出する使用率算出機能とを備え、測定対象タスク登録機能が、アプリケーション毎のアイドルタスクの生成あるいは削除を監視し、当該アイドルタスクの生成あるいは削除を検出した際に、存在するアイドルタスクのうちＣＰＵ１１において処理される優先順位が最も低いものを測定対象タスクとして登録する。【選択図】        図３
2004264954.tif 000002
【特許請求の範囲】
【請求項１】
２以上のアプリケーションが組み込まれ、当該アプリケーションによる処理を実行するＣＰＵを実装した装置にて、前記アプリケーションによるＣＰＵの使用率を測定するシステムであって、
前記ＣＰＵが、前記アプリケーション毎に生成されるアイドルタスクのうちの１つを測定対象タスクとして登録する測定対象タスク登録機能と、前記ＣＰＵがアイドル状態の時に前記登録されたアイドルタスクの実行時間を測定するアイドルタスク測定機能と、前記測定された各アイドルタスクの実行時間に基づいて当該アイドルタスク毎に対応する前記各アプリケーションによる前記ＣＰＵの使用率を算出する使用率算出機能とを備え、
前記測定対象タスク登録機能が、前記アプリケーション毎の前記アイドルタスクの生成あるいは削除を監視し、当該アイドルタスクの生成あるいは削除を検出した際に、存在するアイドルタスクのうち前記ＣＰＵにおいて処理される優先順位が最も低いものを前記測定対象タスクとして登録する、ことを特徴とするＣＰＵ使用率測定システム。
【請求項２】
２つのアプリケーションが組み込まれ、当該アプリケーションによる処理を実行するＣＰＵを実装した装置にて、前記アプリケーションによるＣＰＵの使用率を測定するシステムであって、
前記ＣＰＵがアイドル状態の時に実行されるアイドルタスクを、前記２つのアプリケーション毎にそれぞれ設定すると共に、当該各アイドルタスクに、前記ＣＰＵにおいて優先的に処理される順序を表す優先順位を設定し、
前記ＣＰＵが、前記２つのアイドルタスクが存在するときに優先順位の高い前記アイドルタスクがタスク遅延して優先順位の低い前記アイドルタスクを実行するタスク遷移機能と、前記アプリケーション毎に生成されるアイドルタスクのうちの１つを測定対象タスクとして登録する測定対象タスク登録機能と、前記ＣＰＵがアイドル状態の時に前記登録されたアイドルタスクの実行時間を測定するアイドルタスク測定機能と、前記測定されたアイドルタスクの実行時間に基づいて当該アイドルタスク毎に対応する前記各アプリケーションによる前記ＣＰＵの使用率を算出する使用率算出機能とを備え、
前記測定対象タスク登録機能が、前記アプリケーション毎の前記アイドルタスクの生成あるいは削除を監視し、当該アイドルタスクの生成あるいは削除を検出した際に、存在するアイドルタスクのうち前記ＣＰＵにおいて処理される優先順位が最も低いものを前記測定対象タスクとして登録する、ことを特徴とするＣＰＵ使用率測定システム。
【請求項３】
前記使用率算出機能は、前記優先順位の高いアイドルタスクに対応するアプリケーションによるＣＰＵ使用率を算出する際に、前記優先順位の低いアイドルタスクの走行時間をも考慮してＣＰＵ使用率を算出する、ことを特徴とする請求項２記載のＣＰＵ使用率測定システム。
【請求項４】
前記２つのアプリケーションのうち、一方はハードウェアと共同してプラットフォームとして作動するファームウェアであると共に、他方は前記ファームウェア上で作動するアプリケーションであり、
前記一方のアプリケーションによるアイドルタスクの優先順位よりも、前記他方のアプリケーションによるアイドルタスクの優先順位の方が低い、ことを特徴とする請求項２又は３記載のＣＰＵ使用率測定システム。
【請求項５】
前記ＣＰＵを実装した装置に、ネットワークを介してユーザ端末を接続すると共に、
前記ＣＰＵが有するアイドルタスク測定機能と使用率算出機能とは、前記ユーザ端末からＣＰＵ使用率の測定要求を受信した後に作動することを特徴とする請求項２，３又は４記載のＣＰＵ使用率測定システム。
【請求項６】
前記ネットワークは、無線通信によるものであることを特徴とする請求項５記載のＣＰＵ使用率測定システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵ使用率測定装置にかかり、特に、複数のアプリケーションが組み込まれたコンピュータにてＣＰＵの使用率を測定する装置に関する。
【０００２】
【従来の技術】
従来より、ＣＰＵの使用率は、アイドルタスクの走行時間から算出できることが知られている。かかるＣＰＵ使用率測定方法に関して、以下に示す特許文献１に開示されている。従来から用いられているＣＰＵの測定方法を、図８を参照して説明する。
【０００３】
図８は、ＣＰＵの使用状況、すなわち、ＣＰＵにて実行されているタスクの状況を示す図である。横軸には時間を取り、縦軸にはタスクの優先度を取っている。この図に示すように、ＣＰＵではタスクがある場合には、その優先順位順にタスクが実行されていく。そして、何もイベントが発生しないとき、すなわち、ＣＰＵがアイドル状態のときには、アイドルタスクという優先順位が最下位のタスクがコールされて実行される。但し、このアイドルタスクは、何も処理を行わないタスクである。
【０００４】
従って、ＣＰＵ使用率を測定する測定時間のうち、アイドルタスクが走行している時間を測定することで、当該アイドルタスクが走行していない通常のタスクが走行している時間を算出することができる。そして、このような通常のタスクが走行している時間の割合、すなわち、具体的には、次式を用いることで、ＣＰＵ使用率を算出することができる。
ＣＰＵ使用率＝（測定時間−アイドルタスク走行時間）／測定時間
【０００５】
しかし、コンピュータに複数のアプリケーションが組み込まれている場合には、それぞれのアプリケーション毎にアイドルタスクが生成され、これにより、あるアイドルタスクを上述したように測定したのでは、正確なアイドル時間を測定することができず、ＣＰＵ使用率を測定することができない。そのような事例として、例えば、無線基地局装置に、２つのアプリケーションが組み込まれているような事例を考える。ここでは、２つのアプリケーションとしては、無線基地局装置であるハードウェアのファームウェアとしてあらかじめ組み込まれているアプリケーションＡと、当該アプリケーションＡに実装されて作動するアプリケーションＢとを考える。そして、それぞれのアプリケーションＡ，Ｂが生成するアイドルタスクが存在する。
【０００６】
このような場合に、アプリケーションの開発は、アプリケーションＡの設計とアプリケーションＢの設計とを別々の企業で平行して開発が進められる場合があり、アプリケーションＡの設計者はアプリケーションＢがどのような優先順位（Ｐｒｉｏｒｉｔｙ）のタスクを生成してくるのかを予測できない。アプリケーションＡを開発する上では、ソフトウェアのＣＰＵ使用率測定は不可欠であり、アプリケーションＢとリンクした場合の使用率とアプリケーションＢとリンクしていないアプリケーションＡ単体での使用率の両方の測定結果を知る必要がある。
【０００７】
ところが、ＣＰＵ使用率測定対象のアイドルタスクをアプリケーションＡで生成する優先度最下位のアイドルタスクにする決定してしまっている設計では、単にアイドルタスクの走行時間でＣＰＵ使用率を算出する場合に、アプリケーションＢ側が測定対象のアイドルタスクよりも低い優先度のタスクを生成してしまうと、正確なＣＰＵ使用率が算出できないことになる。
【０００８】
具体的には、組み込みソフトなどの場合は、アプリケーションＡ単体の動作だけでなく別のアプリケーションＢとリンクさせるため、リンクさせたアプリケーションＢによりアプリケーションＡのアイドルタスクＡよりも低い優先順位（Ｐｒｉｏｒｉｔｙ）のタスクが生成されてしまうケースがあることから、アプリケーションＡのアイドルタスクの動作としては、一般のアイドルタスクとは異なりタスク遅延させる動作を持たせてる（何もイベントが発生しない時にコールされることは普通のアイドルタスクと同じ）。このようにタスク遅延させる動作を持たせることでアイドルタスクＡよりも下位タスクが存在する場合でもそれら下位タスクにタスク遷移させるように設計されている場合がある。すると、アプリケーションＡの優先順位（Ｐｒｉｏｒｉｔｙ）最下位タスクであるアイドルタスクＡをＣＰＵ使用率の測定対象タスクに決めてしまっている場合に、アプリケーションＡ単体のＣＰＵ使用率を算出することには問題ないが（タスク遅延の動作を入れている分、ＣＰＵ使用率は若干高い値となるが、ほぼ妥当な値が得られる）、アプリケーションＢとリンクさせている場合はソフト起動後にアイドルタスクＡよりも優先順位の低い別のアイドルタスクＢが生成されてしまうケースがあり、この時アイドルタスクＡはアイドルタスクＢにタスク遷移させようと動作するため、アイドルタスクＡはまったく走行できなくなってしまうことにあり、ソフトのＣＰＵ使用率を算出できなくなってしまう。
【０００９】
但し、上述のようなマルチタスクの場合に、各タスクによるＣＰＵ使用率を測定する方法が、以下に示す特許文献２に開示されている。この特許文献２では、各タスク毎に識別番号（ＩＤ）を割り当て、当該ＩＤを用いて各タスクの実行時間を測定して、それぞれのＣＰＵ使用率を算出する、というものである。
【００１０】
【特許文献１】
特開昭６０−２７９６０号公報
【特許文献２】
特開平１０−１１３３３号公報
【００１１】
【発明が解決しようとする課題】
しかしながら、上記従来例には、以下のような不都合があった。すなわち、各タスクにＩＤを割り当て、これらが発生したことを検出し、かかる実行時間を測定することは、常に正確な監視処理を実行しなければならず、また、処理自体も複雑となる。
【００１２】
また、各タスクにＩＤを割り当てて各タスクの実行時間を監視することは、アプリケーションの数自体は多くなくても、タスク自体の数は膨大となり、アプリケーション毎のＣＰＵ使用率を算出するには、やはり処理が複雑となってしまう。
【００１３】
【発明の目的】
本発明は、上記従来例の有する不都合を改善し、特に、相互に協同して作動する複数のアプリケーションが組み込まれているコンピュータであっても、より正確なＣＰＵ使用率を算出するシステムを提供することを、その目的とする。
【００１４】
【課題を解決するための手段】
そこで、本発明では、２以上のアプリケーションが組み込まれ、当該アプリケーションによる処理を実行するＣＰＵを実装した装置にて、アプリケーションによるＣＰＵの使用率を測定するシステムであって、ＣＰＵが、アプリケーション毎に生成されるアイドルタスクのうちの１つを測定対象タスクとして登録する測定対象タスク登録機能と、ＣＰＵがアイドル状態の時に登録されたアイドルタスクの実行時間を測定するアイドルタスク測定機能と、測定された各アイドルタスクの実行時間に基づいて当該アイドルタスク毎に対応する各アプリケーションによるＣＰＵの使用率を算出する使用率算出機能とを備えている。そして、測定対象タスク登録機能が、アプリケーション毎のアイドルタスクの生成あるいは削除を監視し、当該アイドルタスクの生成あるいは削除を検出した際に、存在するアイドルタスクのうちＣＰＵにおいて処理される優先順位が最も低いものを測定対象タスクとして登録する、という構成を採っている。
【００１５】
また、特に、２つのアプリケーションが組み込まれ、当該アプリケーションによる処理を実行するＣＰＵを実装した装置にて、アプリケーションによるＣＰＵの使用率を測定するシステムであって、ＣＰＵがアイドル状態の時に実行されるアイドルタスクを、２つのアプリケーション毎にそれぞれ設定すると共に、当該各アイドルタスクに、ＣＰＵにおいて優先的に処理される順序を表す優先順位を設定し、ＣＰＵが、２つのアイドルタスクが存在するときに優先順位の高い前記アイドルタスクがタスク遅延して優先順位の低い前記アイドルタスクを実行するタスク遷移機能と、アプリケーション毎に生成されるアイドルタスクのうちの１つを測定対象タスクとして登録する測定対象タスク登録機能と、ＣＰＵがアイドル状態の時に登録されたアイドルタスクの実行時間を測定するアイドルタスク測定機能と、測定されたアイドルタスクの実行時間に基づいて当該アイドルタスク毎に対応する各アプリケーションによるＣＰＵの使用率を算出する使用率算出機能とを備え、測定対象タスク登録機能が、アプリケーション毎のアイドルタスクの生成あるいは削除を監視し、当該アイドルタスクの生成あるいは削除を検出した際に、存在するアイドルタスクのうちＣＰＵにおいて処理される優先順位が最も低いものを前記測定対象タスクとして登録する、という構成を採っている。
【００１６】
そして、使用率算出機能は、優先順位の高いアイドルタスクに対応するアプリケーションによるＣＰＵ使用率を算出する際に、優先順位の低いアイドルタスクの走行時間をも考慮してＣＰＵ使用率を算出する、こととすると望ましい。
【００１７】
このような構成にすることにより、まず、アイドルタスクが２つ存在している場合であっても、いずれのアイドルタスクが測定対象であるかがその生成時あるいは削除時に登録される。そして、登録されたアイドルタスクの走行時間が測定されて、これに基づいて当該アイドルタスクに対応する方のアプリケーションのＣＰＵ使用率を算出することができる。
【００１８】
従って、いずれかのアイドルタスクが生成あるいは削除された時に、測定対象であるアイドルタスクを設定するが、この際に優先順位の最も低いアイドルタスク、すなわち、常に走行されうるアイドルタスクが測定対象として登録されるため、アイドルタスクの走行時間の測定漏れが無くなり、より正確に各アプリケーションのＣＰＵ使用率を測定することができる。
【００１９】
特に、２つのアプリケーションが組み込まれた状態であっても、優先順位の低いアイドルタスクが走行した場合は当該アイドルタスクに対応するアプリケーションが作動していないことはもちろんのこと、優先順位の高いアイドルタスクに対応するアプリケーションも作動していないため、上記優先順位の低いアイドルタスクの走行時間をも考慮することで、一方のアプリケーションによるＣＰＵ使用率を測定することができる。
【００２０】
また、２つのアプリケーションのうち、一方はハードウェアと共同してプラットフォームとして作動するファームウェアであると共に、他方はファームウェア上で作動するアプリケーションであり、一方のアプリケーションによるアイドルタスクの優先順位よりも、他方のアプリケーションによるアイドルタスクの優先順位の方が低い、こととすると望ましい。
【００２１】
これにより、装置の起動時には、必ず一方のアプリケーションであるファームウェアが作動するため、当該起動時にはファームウェアによるアイドルタスクを測定対象タスクとして登録する。そして、その後、ファームウェア上で作動する他方のアプリケーションによるアイドルタスクの生成・削除が生じた際に優先順位が最下位のアイドルタスクを測定対象タスクに登録することで、必ず走行されるアイドルタスクが測定対象として登録されるため、測定されるＣＰＵ使用率の正確性の向上を図ることができる。
【００２２】
さらに、ＣＰＵを実装した装置に、ネットワークを介してユーザ端末を接続すると共に、ＣＰＵが有するアイドルタスク測定機能と使用率算出機能とは、ユーザ端末からＣＰＵ使用率の測定要求を受信した後に作動する、という構成にしてもよく、ネットワークを、無線通信によるものとしてもよい。
【００２３】
これにより、ユーザからのＣＰＵ使用率測定要求後、一定時間における装置のＣＰＵ使用率が測定されるため、ユーザが必要なときに装置のＣＰＵ使用率を測定することができる。また、無線基地局装置などの無線通信により接続された装置についても測定対象とすることができる。
【００２４】
【発明の実施の形態】
〈第１の実施形態〉
以下、本発明の第１の実施形態について、図１乃至図７を参照して説明する。図１は、本発明であるＣＰＵ使用率測定システムを構成する装置を示す概略図である。図２は、ＣＰＵ使用率測定システムである装置の構成を示すブロック図である。図３は、ＣＰＵにおけるタスクの走行状況を示すタイムチャートである。図４乃至図７は、本システムの動作を示すフローチャートである。
【００２５】
（構成）
本発明であるＣＰＵ使用率測定システムは、ＣＰＵが実装された所定の装置によって構成されている。特に、当該装置のＣＰＵに組み込まれて構築される種々の機能にて構成されている。
【００２６】
例えば、図１（ａ）に示すように、ＣＰＵ使用率測定システムである所定の装置は、ＴＡなどの通信機器１（ネットワーク接続機器）であって、ＣＰＵを搭載している。そして、この機器には、Ｅｔｈｅｒｎｅｔ（登録商標）のインタフェースを備えており、当該Ｅｔｈｅｒｎｅｔ（登録商標）及びＬＡＮケーブル２を介してパーソナルコンピュータなどのユーザ端末３に接続されている。従って、通信機器１とユーザ端末３とは、相互に信号の送受信を行うことができる。また、通信機器１には、電話回線４が接続されていて、これによりユーザ端末３がインターネット網にアクセス可能となる。
【００２７】
そして、本発明は、通信機器１に実装されているＣＰＵの使用率を測定するシステムであって、具体的には、通信機器１上で走行するアプリケーションによるＣＰＵの使用率を測定するものである。但し、本発明における測定対象であるＣＰＵは、通信機器１に実装されているものに限られない。すなわち、測定対象であるＣＰＵが実装されている装置は、プリンタなど、他の機器であってもよい。また、当該装置は、必ずしもユーザ端末３に接続されていることに限定されない。
【００２８】
（通信機器）
そして、この通信機器１には、あらかじめ２つのアプリケーションが組み込まれている。すなわち、実装されているＣＰＵは、これらアプリケーションによるタスクを実行するものである。具体的には、図１（ｂ）に示すように、２つのアプリケーションのうち、一方のアプリケーションＡ（１０ａ）は通信機器１であるハードウェア１０と共同してプラットフォームとして作動するファームウェアであり、また、他方のアプリケーションＢ（１０ｂ）はファームウェア上で作動するアプリケーションである。従って、アプリケーションＡ（１０ａ）はファームウェアであるため、通信機器１が起動すると当該アプリケーションＡが共に起動して、当該アプリケーションＡの所定のタスクが作動可能となる。また、アプリケーションＢ（１０ｂ）は、アプリケーションＡ上で作動するため、アプリケーションＡは、アプリケーションＢとリンクされた状態となっている。
【００２９】
ここで、アプリケーションＡとアプリケーションＢには、それぞれＣＰＵがアイドル状態の時に実行されるアイドルタスクが設定されている。すなわち、アプリケーションＡに対応するアイドルタスクＩＴＡ（１０ａａ）が設定されており、また、アプリケーションＢに対応するアイドルタスクＩＴＢ（１０ｂｂ）が設定されている。そして、これらアイドルタスクＩＴＡ，ＩＴＢには、それぞれ、ＣＰＵにおいて優先的に処理される順序を表す優先順位（Ｐｒｉｏｒｉｔｙ）が設定されている。一般的には、アイドルタスクには、優先順位が最下位に設定されており、何もイベントが発生しないときにコールされて処理は何も行わないタスクである。但し、本実施形態では２つのアイドルタスクがあるため、特に、アプリケーションＡ（１０ａ）に対応するアイドルタスクＩＴＡ（１０ａａ）の優先順位よりも、アプリケーションＢ（１０ｂ）に対応するアイドルタスクＩＴＢ（１０ｂｂ）の優先順位の方が低く設定されている。
【００３０】
そして、上記のように設定され、両アイドルタスクＩＴＡ，ＩＴＢが存在している場合にＣＰＵにて何もイベントが発生しなかったときには、本実施形態では、優先順位の低いアイドルタスクＩＴＢ（１０ｂｂ）が実行されるよう設定されている。これに関しては後述する。
【００３１】
ここで、通信機器１のハードウェア構成を図２に示す。この図に示すように、通信機器１は、所定の演算処理能力を有し、当該機器自体の動作を制御するＣＰＵ１１と、タスクの実行時間などを計測するタイマ１２と、ＣＰＵ１１にて実行される所定のプログラムや所定のデータを記憶するＲＯＭ１３と、ＣＰＵ１１にて演算された値などを一時的に記憶しておくＲＡＭ１４と、ＬＡＮケーブル２及び電話回線４などのケーブルが接続可能な接続端子１５と、を含む種々の要素にて構成されている。
【００３２】
具体的には、ＣＰＵ１１は上述したように、通信機器１自体に組み込まれているアプリケーションＡ，Ｂを実行して機器自体の動作を制御する演算手段であると共に、本発明であるＣＰＵ使用率測定システム自体としても機能する。すなわち、後述するＣＰＵ使用率測定用プログラムを実行して、各機能を当該ＣＰＵ内に構築するものである。
【００３３】
また、ＲＯＭ１３は書き換え可能なＥＥＰＲＯＭなどの不揮発メモリにて形成されており、上述したアプリケーションＡ，Ｂ用プログラムや、ＣＰＵ使用率測定用プログラム、さらには、各アプリケーションに対するアイドルタスクＩＴＡ，ＩＴＢや上記ＣＰＵ測定用プログラムによるタスクの優先順位に関する情報などを記憶している。
【００３４】
そして、上記ＣＰＵ測定用プログラムがＣＰＵ１１に組み込まれることにより、当該ＣＰＵ１１には以下のような機能が実現される。すなわち、２つのアイドルタスクが存在するときに優先順位の高いアイドルタスクがタスク遅延して優先順位の低いアイドルタスクを実行するタスク遷移機能と、アプリケーション毎に生成されるアイドルタスクのうちの１つを測定対象タスクとして登録する測定対象タスク登録機能と、ＣＰＵがアイドル状態の時に登録されたアイドルタスクの実行時間を測定するアイドルタスク測定機能と、測定されたアイドルタスクの実行時間に基づいて当該アイドルタスク毎に対応する各アプリケーションによるＣＰＵの使用率を算出する使用率算出機能とが実行される。
【００３５】
具体的に上記機能を、図３のタスクの動作状況を示すタイムチャートを参照して詳細に説明する。まず、タスク遷移機能は、アプリケーションＡのアイドルタスクＩＴＡを、一般のアイドルタスクとは異なりタスク遅延させる動作を持たせている。但し、アイドルタスクＩＴＡは、ＣＰＵに何もイベントが発生しないときにコールされる点に関しては、通常のアイドルタスクと変わらない。このようにすることで、図３の符号Ｔ１の区間終了のときには何らイベントが発生していないのでアイドルタスクＩＴＡがコールされるが、符号Ｔ２に示すようにタスク遅延の時間が経過した後に、ようやくアイドルタスクＩＴＡが実行される（符号Ｔ３に示す区間）。そして、矢印Ｐ１に示すように、アプリケーションＢによるタスクのイベントが発生し、アイドルタスクＩＴＢが存在している場合には、符号Ｔ５に示す区間の終了後、アイドルタスクＩＴＡがコールされるが、当該アイドルタスクＩＴＡよりも優先度の低いアイドルタスクＩＴＢが存在するため、符号Ｔ６区間ではアイドルタスクＩＴＢが実行されることとなる。すなわち、タスクがＩＴＢに遷移したこととなる。
【００３６】
また、測定対象タスク登録機能は、アプリケーションＡ又はＢのいずれかに対応するアイドルタスクＩＴＡ又はＩＴＢのうち１つを、ＣＰＵ使用率の測定対象としてＲＡＭ１４などに登録するが、このとき、アプリケーション毎のアイドルタスクの生成あるいは削除を監視し、当該アイドルタスクの生成あるいは削除を検出した際に、存在するアイドルタスクのうちＣＰＵにおいて処理される優先順位が最も低いものを測定対象タスクとして登録するよう作動する。例えば、図３に示すように、矢印Ｐ１にてアプリケーションＢによるタスクのイベントが発生すると、当該アプリケーションＢのアイドルタスクＩＴＢが存在することとなり、このとき、アイドルタスクＩＴＢの生成を検出した当該機能は、現在測定対象タスクとして登録されているアイドルタスクＩＴＡと、アイドルタスクＩＴＢとの優先順位の比較を行う。すると、アイドルタスクＩＴＢの方が優先順位が低いので、当該アイドルタスクＩＴＢを測定対象タスクとして登録する。
【００３７】
すると、従来のままでは、符号Ｔ５区間では測定対象タスクはＩＴＡのままであり、符号Ｔ６区間にてアイドルタスクＩＴＢの走行時間を測定することができないが、上述のようにすることにより、アイドルタスクの測定漏れを抑制することができ、複数のアプリケーションが組み込まれている場合であっても、正確にＣＰＵ使用率を測定することができる。
【００３８】
なお、アイドルタスク測定機能は、従来例におけるＣＰＵ使用率測定システムにおける場合とほぼ同様に作動し、アイドルタスクＩＴＡ又はＩＴＢの走行時間を測定する。例えば、タイマ１２を用いてあらかじめ定められた測定時間を測定し、その間のアイドルタスクの走行回数をカウントし、かかる値から走行時間を算出する。なお、カウント数は、ＲＡＭ１４などに記憶される。このとき、このアイドルタスク測定機能自体は優先順位が比較的高く設定されていて、後述するようにユーザ端末３などから測定要求があると実行されて、上記アイドルタスクのカウント数を０に初期化し、測定を開始する。すなわち、この機能は、測定開始のトリガーとなるだけであって、その後は、他のタスクやアイドルタスクが実行される。
【００３９】
また、使用率算出機能は、あらかじめ定められた測定時間中に、アプリケーションＡ又はＢによってＣＰＵがどれほどの割合で使用されていたかを算出するが、基本的には、以下の式にて算出される。
ＣＰＵ使用率＝（測定時間−アイドルタスク走行時間）／測定時間
すなわち、測定期間経過後に、その間のアイドルタスクＩＴＡ又はＩＴＢの走行時間を算出して、その合計を測定時間から差し引き、これを測定時間で割ることにより、ＣＰＵ１１の使用割合を算出することができる。
【００４０】
このとき、アプリケーションＡによるＣＰＵの使用率を算出する場合に、アプリケーションＢのアイドルタスクＩＴＢが走行する際には当然にアプリケーションＡも作動していないわけであるから、アイドルタスクＩＴＡとＩＴＢの走行時間の和を測定時間から引くことで、より正確なアプリケーションＡによるＣＰＵ使用率を算出することができる。
【００４１】
また、上述したアイドルタスク測定機能及び使用率算出機能は、ユーザ端末３からＣＰＵ使用率の測定要求を受信した後に作動する。より具体的には、通信機器１のＣＰＵ１１は、ユーザ端末３から測定要求を受けた後から、一定時間の測定時間が経過した後に、アイドルタスクが走行した時間をアイドルタスク用カウンタ（カウンタ数）などから測定し、これを基にＣＰＵ使用率を算出する。そして、ユーザ端末３に対して算出したＣＰＵ使用率の値をＬＡＮケーブル２を介して通知する。
【００４２】
（動作）
次に、本システムにおける動作を、図３のタイムチャート及び図４乃至図７のフローチャートを参照して説明する。
【００４３】
まず、通信機器１の電源を入れると、アプリケーションＡ，Ｂが起動し（ステップＳ１）、当該機器１が作動状態となる。特に、アプリケーションＡに関しては、機器１自体であるハードウェア１０と協同して作動するファームウェアであるため、起動時から所定のタスクが生成されている（ステップＳ２）。従って、所定のタスクが終了した時に実行されるアイドルタスクＩＴＡも生成されて走行可能状態となる。そして、このアプリケーションＡのアイドルタスクＩＴＡは、アプリケーションＡ上で作動するアプリケーションＢのタスクが生成されていなくても、すなわち、アプリケーションＢがアプリケーションＡとリンクしていなくても生成されるため、これを初期の測定対象タスクとして登録しておく（ステップＳ３）。なお、アプリケーションＡのタスクが生成された直後であって、アプリケーションＢのタスクが生成されていない場合には、当然にアプリケーションＡのアイドルタスクＩＴＡが優先順位最下位のタスクとなる。
【００４４】
その後、タスクの生成・削除の監視を開始する（ステップＳ４）。具体的には、アプリケーションＢからタスクの生成・削除イベントがあるか否かを監視する（ステップＳ５）。そして、タスク生成イベントがあった場合には（ステップＳ５にて肯定判断、及び、ステップＳ６にて肯定判断）、図５の符号１に進む。一方、イベントがあったとしても、削除イベントである場合には（ステップＳ５にて肯定判断、及び、ステップＳ６にて否定判断）、図６の符号２に進む。なお、アプリケーションＢにてタスク生成イベントがあった場合とは、例えば図３では矢印Ｐ１時点を指し、タスク削除イベントがあった場合とは、図３では矢印Ｐ２時点を指す。
【００４５】
図５に示すように、アプリケーションＢからタスク生成のイベントが発生した場合には、まず、アプリケーションＡのアイドルタスクＩＴＡよりも優先順位の低いタスクが生成されたか否かを調べる（ステップＳ１１）。生成された場合には（ステップＳ１１にて肯定判断）、生成されたタスクの中で優先順位が最下位のタスクを検索するが（ステップＳ１２）、本実施形態では、アプリケーションＢのアイドルタスクＩＴＢがそれに該当するため、当該アイドルタスクＩＴＢをＣＰＵ使用率測定対象タスクとして登録する（ステップＳ１３）。この測定対象タスクに関する情報は、例えば、通信機器１内のＲＡＭ１４に記憶しておく。一方、アイドルタスクＩＴＡよりも優先順位の低いタスクがない場合には（ステップＳ１１にて否定判断）、測定対象タスクは変更せず（ステップＳ１４）、当該測定対象タスクはアイドルタスクＩＴＡのままである。なお、上述したように、本実施形態ではタスク生成イベントの発生は、図３では矢印Ｐ１の時点であり、その後の測定対象タスクは、アプリケーションＢのアイドルタスクＩＴＢとなる（ステップＳ１３）。
【００４６】
また、アプリケーションＢからタスク削除のイベントが発生した場合には（図４のステップＳ６にて否定判断）、図６に示すように、まず、ＣＰＵ使用率測定対象タスクが削除されたか否かを調べ（ステップＳ２１）、削除された場合には（ステップＳ２１で肯定判断）、現在、測定対象タスクとして登録されているアイドルタスクＩＴＡよりも優先順位の低いタスクがあるか否かを調べる（ステップＳ２２）。そして、存在する場合は、その中で最も低い優先順位のタスク、すなわち、アプリケーションＢのアイドルタスクＩＴＢを測定対象タスクとして登録する（ステップＳ２３）。一方、存在しない場合には、アイドルタスクＩＴＡが測定対象タスクとして登録される（ステップＳ２４）。また、ステップＳ２１で、測定対象タスクが削除されていない場合には、測定対象タスクの変更はない（ステップＳ２５）。なお、本実施形態では、アプリケーションＢからタスク削除イベントが発生した場合とは、例えば図３の矢印Ｐ２の時点であり、その後の測定対象タスクは、アプリケーションＡのアイドルタスクＩＴＡとなる（ステップＳ２４）。
【００４７】
そして、上述したＣＰＵ使用率を算出する上で測定対象となるアイドルタスクの登録処理は、ユーザ端末３から使用率測定要求の情報が送信されるまで、繰り返される。すなわち、タスクの生成・削除の度に、そのとき存在する優先順位が最下位のアイドルタスクが測定対象タスクとなる。その後、ユーザ端末３から使用率測定要求が送信された場合には、実際にＣＰＵ使用率の測定を開始する。その様子を、図７に示す。
【００４８】
まず、ユーザ端末３からＣＰＵ使用率の測定要求が送信されると、あらかじめ定められた測定時間の計測が開始される（ステップＳ３１）。続いて、測定時間中に、上述したように、測定対象タスクとして登録されているアイドルタスクが走行すると（ステップＳ３２にて肯定判断）、かかるアイドルタスクの処理により、アイドルタスクカウンタがインクリメントされる（ステップＳ３３）。なお、このカウンタ値は、アイドルタスク毎に用意されていて、それぞれ測定時間の計測開始に初期化される。そして、測定時間が経過するまで（ステップＳ３４にて否定判断）、アイドルタスクの走行時間が、上記カウンタ値がインクリメントされることによって計測される。
【００４９】
そして、計測時間が経過すると（ステップＳ３４にて肯定判断）、アイドルタスク走行カウンタ値から、測定時間内におけるそれぞれのアプリケーションＡ，Ｂ毎のアイドルタスクＩＴＡ，ＩＴＢの走行時間が算出される（ステップＳ３５）。そして、これを基に、それぞれのアプリケーションのＣＰＵ使用率が算出され（ステップＳ３６）、算出結果がユーザ端末３に通知される（ステップＳ３７）。
【００５０】
このようにすることにより、２つのアプリケーションが相互にリンクして作動し、アイドルタスクが２つ存在している場合であっても、いずれのアイドルタスクが測定対象であるかがその生成時あるいは削除時に登録され、そして、登録されたアイドルタスクの走行時間が測定されて、これに基づいて当該アイドルタスクに対応する方のアプリケーションのＣＰＵ使用率を算出することができる。従って、いずれかのアイドルタスクが生成あるいは削除時に、測定対象であるアイドルタスクを設定するが、この際に優先順位の最も低いアイドルタスク、すなわち、常に走行されうるアイドルタスクが測定対象として登録されるため、アイドルタスクの走行時間の測定漏れが無くなり、より正確に各アプリケーションのＣＰＵ使用率を測定することができる。
【００５１】
特に、本実施形態のようなアプリケーションの場合には、装置の起動時には、必ず一方のアプリケーションであるファームウェアが作動するため、当該起動時にはファームウェアによるアイドルタスクを測定対象タスクとして登録し、そして、ファームウェア上で作動する他方のアプリケーションによるアイドルタスクの生成・削除が生じた際に優先順位が最下位のアイドルタスクを測定対象タスクに登録することで、必ず走行されるアイドルタスクが測定対象として登録されるため、測定されるＣＰＵ使用率の正確性の向上を図ることができる。
【００５２】
ここで、上記実施形態においては、２つのアプリケーションが、ＣＰＵを実装している装置に組み込まれている場合を例示したが、必ずしもこれに限定されない。さらに多くのアプリケーションが組み込まれている場合であっても、タスクの生成・削除を監視して、そのようなイベントが生じたときに測定対象タスクを優先度が最下位のものに変更することにより、上述したようより正確なＣＰＵ使用率の測定を実現することができる。
【００５３】
〈第２の実施形態〉
以下、本発明の第２の実施形態について説明する。本実施形態においては、上述した図１に示す通信機器１が、無線基地局装置といったユーザ端末に無線通信にて接続された機器である。すなわち、図１の符号２に示すＬＡＮケーブルは備えられていない。そして、この無線基地局装置には、当然ことながらＣＰＵが実装されており、上述した通信機器と同様にファームウェアであるアプリケーションＡ及びこの上で作動する別のアプリケーションＢが組み込まれている。そして、上述したＣＰＵ使用率測定システム自体も、組み込まれている。
【００５４】
このようにすることにより、第１の実施形態同様に、ユーザ端末に無線通信にて接続されている機器についても、当該無線通信を介して測定要求をすることで、ＣＰＵ使用率の測定結果を得ることができる。
【００５５】
【発明の効果】
本発明は、以上のように構成され機能するので、これによると、アイドルタスクが２つ存在している場合であっても、いずれのアイドルタスクが測定対象であるかがその生成時あるいは削除時に登録され、当該登録されたアイドルタスクの走行時間が測定されて、これに基づいて当該アイドルタスクに対応する方のアプリケーションのＣＰＵ使用率を算出することができ、従って、常に走行されうるアイドルタスクが測定対象として登録されるため、アイドルタスクの走行時間の測定漏れが無くなり、より正確に各アプリケーションのＣＰＵ使用率の測定を簡単な処理にて実現できる、という従来にない優れた効果を有する。
【図面の簡単な説明】
【図１】図１は、本発明であるＣＰＵ使用率測定システムを構成する装置を示す概略図である。図１（ａ）は、当該装置がユーザ端末に接続されている場合の外観の概略図を示し、図１（ｂ）は、装置に組み込まれているアプリケーションの様子を示す模式図である。
【図２】図１に開示したＣＰＵ使用率測定システムである装置の構成を示すブロック図である。
【図３】本実施形態のＣＰＵにおけるタスクの走行状況を示すタイムチャートである。
【図４】本発明であるシステムの動作を示すフローチャートである。
【図５】本発明であるシステムの動作を示すフローチャートであり、図４に示す符号１の続きである。
【図６】本発明であるシステムの動作を示すフローチャートであり、図４に示す符号２の続きである。
【図７】本発明であるシステムの動作を示すフローチャートであり、実際にＣＰＵ使用率測定時の動作を示す。
【図８】従来のＣＰＵ使用率測定方法を説明するために例示したタスクの走行状況を示すタイムチャートである。
【符号の説明】
１  通信装置（ＣＰＵ使用率測定対象装置）
２  ＬＡＮケーブル
３  ユーザ端末
４  電話回線
１１  ＣＰＵ
１２  タイマ
１３  ＲＯＭ
１４  ＲＡＭ
【図１】
2004264954.tif 000003
【図２】
2004264954.tif 000004
【図３】
2004264954.tif 000005
【図４】
2004264954.tif 000006
【図５】
2004264954.tif 000007
【図６】
2004264954.tif 000008
【図７】
2004264954.tif 000009
【図８】
2004264954.tif 000010