物理プロセッサと、前記物理プロセッサ上で稼動する2つの論理プロセッサと、OSが配置されたメモリとを有する計算機における論理プロセッサのプロセッサ使用量の算出方法であって、前記物理プロセッサは、SimultaneousMultithreading以降SMTプロセッサであり、前記論理プロセッサは、何れか一方の論理プロセッサがアクティブなシングルタスクモードと、二つの論理プロセッサがアクティブなマルチタスクモードとの、2つの動作モードを備え、前記OSは、プロセッサ使用率モニタ手段を有し、前記プロセッサ使用率モニタ手段は、前記論理プロセッサのプロセッサ使用量の1つの算出区間を、算出対象論理プロセッサが開始から終了まで通常動作状態にあり、その間に休止状態への遷移を含まない、任意の長さの区間とし、前記算出区間を前記算出対象論理プロセッサのシングルタスクモード実行時間とマルチタスクモード実行時間とに分割し、前記算出対象論理プロセッサのシングルタスクモード実行時間と前記算出対象論理プロセッサのマルチタスクモード実行時間とを算出し、前記マルチタスクモード実行時間に既定のマルチタスクモードのプロセッサ資源割り当て比率を乗じた値と、前記シングルタスクモード実行時間とを加算し、前記加算値を、前記算出区間内の前記算出対象論理プロセッサのプロセッサ使用量とすることを特徴とする算出方法。請求項1記載の算出方法であって、前記プロセッサ使用率モニタ手段は、前記算出区間の経過時間、及び前記算出対象論理プロセッサと同じSMTプロセッサに属する相手論理プロセッサの前記算出区間内の累積休止時間をそれぞれ求め、前記累積休止時間を前記算出対象論理プロセッサのシングルタスクモード実行時間と求め、前記経過時間から前記シングルタスクモード実行時間を減算した時間を前記算出対象論理プロセッサのマルチタスクモード実行時間とすることを特徴とする算出方法。請求項1記載の算出方法であって、前記算出区間の経過時間及び前記算出区間内の前記相手論理プロセッサの累積休止時間を、論理プロセッサごとに参照可能なサイクルカウンタ、及び前記算出対象論理プロセッサと前記相手論理プロセッサの2つの論理プロセッサの間の共有データのみを用いて算出することを特徴とする算出方法。請求項1記載の算出方法であって、前記算出区間の経過時間及び前記算出区間内の前記相手論理プロセッサの累積休止時間の算出処理を、オンラインでかつ、前記算出対象論理プロセッサと前記相手論理プロセッサの間で非同期に行うことを特徴とする算出方法。請求項1記載の方法であって、前記のマルチタスクモードのプロセッサ資源割り当て比率を、所望の値に動的に変更することを特徴とする算出方法。請求項2記載の算出方法であって、前記プロセッサ使用率モニタ手段は、前記算出対象論理プロセッサの前記相手論理プロセッサの前記算出区間内の累積休止時間を求めるに際し、SMTプロセッサのそれぞれの論理プロセッサに、該論理プロセッサの休止動作開始から休止動作終了までの経過時間を累積した累積休止時間、及び最新の休止開始時刻と最新の休止終了時刻を保持し、これらのデータを前記2つの論理プロセッサの間の共有データとし、前記算出区間ごとに該開始時刻と該終了時刻を求め、算出を完了するまで保持し、前記相手論理プロセッサの累積休止時間の前記算出区間の終了時と開始時の差分を求め、プロセッサ使用量算出開始時に、離散データである前記差分の過剰分を、前記相手論理プロセッサの最新休止開始時刻と最新休止終了時刻を参照して、最新休止開始時刻が最新休止終了時刻以上であるならば、前記相手論理プロセッサを休止中とみなして最新休止開始時刻と前記算出開始時刻の差分と求め、最新休止開始時刻が最新休止終了時刻未満であるならば、前記相手論理プロセッサを通常動作中とみなしてゼロと求め、プロセッサ使用量算出終了時に、離散データである前記差分の不足分を、前記相手論理プロセッサの最新休止開始時刻と最新休止終了時刻を参照して、最新休止開始時刻が最新休止終了時刻以上であるならば、前記相手論理プロセッサを休止中とみなして、前記算出終了時刻と最新休止開始時刻の差分と求め、最新休止開始時刻が最新休止終了時刻未満であるならば、前記相手論理プロセッサを通常動作中とみなしてゼロと求め、前記差分から前記過剰分を減算しそれから前記不足分を加算することで、時刻の大小関係を用いて、前記算出区間内の前記相手論理プロセッサの累積休止時間をオンラインでかつ非同期に求める算出方法。2つの論理プロセッサを有するSMTプロセッサにおいて、論理プロセッサごとのプロセッサ使用量は、シングルスレッドプロセッサと同じように考えれば、ある標本区間における論理プロセッサの稼働時間を標本区間の経過時間で割れば求まる。この考え方では、論理プロセッサ0が標本区間中に稼動し続け、論理プロセッサ1がその間休止状態であった場合、論理プロセッサ0及びSMTプロセッサのプロセッサ使用率は50になり、SMTプロセッサは処理能力に残り50の余裕を残していることになる。しかし、SMTプロセッサは、このときは、シングルタスクモードで動作するため、論理プロセッサ0及びSMTプロセッサのプロセッサ使用率は100である。この考え方でプロセッサ使用率を算出した場合、SMTプロセッサでは処理能力の余力を過大に見積もってしまうことになる。特許文献1の従来の方法では、SMTプロセッサのそれぞれの論理プロセッサの動作状態をプロセッササイクルごとに周期的に検出して、その間のプロセッササイクルを、命令をディスパッチした論理プロセッサに配分している。この方法は、専用のハードウェア機構で実現することを想定しているが、特別なハードウェア機構を必要とせず、ソフトウェアで実現するには、この方法には次のような課題がある。ソフトウェアは、論理プロセッサの動作と独立に動作させることはできないため、ソフトウェアで実現するには、それぞれの論理プロセッサに周期的に割り込み、かつ複数の論理プロセッサの間で同期化する必要がある。周期を短くすると、正確性は上がるが、割り込み及び同期化のオーバヘッドも増えてしまう。周期を長くすると、割り込み及び同期化のオーバヘッドは減るが、正確性も下がってしまう。ソフトウェアでSMTプロセッサの論理プロセッサごとのプロセッサ使用量を算出するには別の方法が必要である。特許文献2の従来の方法では、それぞれ求めた論理プロセッサごとのSMTプロセッサ使用率と、論理プロセッサ上で動作するオペレーティングシステムのプロセスごとの論理プロセッサ使用率を乗じて、オペレーティングシステムのプロセスごとSMTプロセッサ使用率を求める方法が述べられている。ところが、この方法では、論理プロセッサごとのSMTプロセッサ使用率は、論理プロセッサのレジスタを参照して取得するのみであり、具体的な算出方法は述べられていない。現在普及しているSMTプロセッサは、2つの論理プロセッサを備えたものが多くを占めており、しかもこれらのSMTプロセッサは、SMTを考慮したプロセッサ使用量を算出する為の専用のハードウェア機構を有していない。これを考慮すると、方式がSMTプロセッサあたりの論理プロセッサ数を2つに限定するものであったとしても、ソフトウェアによってSMTプロセッサにおける論理プロセッサごとのプロセッサ使用量を算出することができれば、非常に有用である。本発明の目的は、2つの論理プロセッサを有し、シングルタスクモードとマルチタスクモードの2つの動作モードを備えたSMTプロセッサにおいて、専用のハードウェア機構を必要とせずに、論理プロセッサ、オペレーティングシステムのプロセス、及びSMTプロセッサそれぞれに関して、任意の標本区間かつ任意の区分で、SMTの動作モードを考慮したプロセッサ使用量及びプロセッサ使用率を、オンラインかつ非同期な方式で算出することである。本発明は、2つの論理プロセッサを有し、シングルタスクSTモードとマルチタスクMTモードの2つの動作モードを備えたSMTプロセッサにおいて、論理プロセッサ、オペレーティングシステムのプロセス、及びSMTプロセッサそれぞれに関して、任意の標本区間かつ任意の区分で、SMTの動作モードを考慮したプロセッサ使用量とプロセッサ使用率を、オンラインでかつ非同期な方式で算出する方法である。本発明では、論理プロセッサのプロセッサ使用量の1つの算出区間を、算出対象論理プロセッサが開始から終了まで通常動作状態にあり、その間に休止状態への遷移を含まない、任意の長さの区間とする。この算出区間を、STモード実行時間とMTモード実行時間に分割する。そして、MTモード実行時間に既定のMTモードのプロセッサ資源割り当て比率を乗じた値とSTモード実行時間の和を、算出区間内の論理プロセッサのプロセッサ使用量と求める。算出区間の経過時間、STモード実行時間、及びMTモード実行時間はそれぞれ次のように求める。経過時間、及び算出対象論理プロセッサと同じSMTプロセッサに属する相手論理プロセッサの算出区間内の累積休止時間をそれぞれ求める。そして、SMTプロセッサの動作モードを考慮し、相手論理プロセッサの累積休止時間をそのままSTモード実行時間と求め、経過時間からSTモード実行時間を減算した時間をMTモード実行時間と求める前述の相手論理プロセッサの算出区間内の累積休止時間の算出方法は、時刻の大小関係を利用して、以下のように求める。SMTプロセッサのそれぞれの論理プロセッサは、該論理プロセッサの休止動作開始から休止動作終了までの経過時間を累積した累積休止時間、及び最新の休止開始時刻と最新の休止終了時刻を保持し、前記2つの論理プロセッサの間の共有データとする。算出対象論理プロセッサは、算出区間の開始時刻と終了時刻を求め、算出を完了するまで保持する。測定対象論理プロセッサは、前記相手論理プロセッサの累積休止時間の前記算出区間の終了時と開始時の差分を求める。プロセッサ使用量算出開始時に、離散データである累積休止時間の差分の過剰分を、前記相手論理プロセッサの最新休止開始時刻と最新休止終了時刻を参照して、最新休止開始時刻が最新休止終了時刻以上であるならば、前記相手論理プロセッサを休止中とみなして最新休止開始時刻と前記算出開始時刻の差分と求め、最新休止開始時刻が最新休止終了時刻未満であるならば、前記相手論理プロセッサを通常動作中とみなしてゼロと求める。プロセッサ使用量算出終了時に、離散データである累積休止時間の差分の不足分を、前記相手論理プロセッサの最新休止開始時刻と最新休止終了時刻を参照して、最新休止開始時刻が最新休止終了時刻以上であるならば、前記相手論理プロセッサを休止中とみなして、前記算出終了時刻と最新休止開始時刻の差分と求め、最新休止開始時刻が最新休止終了時刻未満であるならば、前記相手論理プロセッサを通常動作中とみなしてゼロと求める。そして、累積休止時間の差分から過剰分を減算しそれから不足分を加算することで、算出区間内の相手論理プロセッサの累積休止時間を求める。本発明の方法を用いることにより、2つの論理プロセッサを備えたSMTプロセッサにおいて、専用のハードウェア機構を必要とすることなく、SMTプロセッサの動作モード、シングルタスクモードとマルチタスクモード、及びその遷移を考慮した、論理プロセッサごとのプロセッサ使用率及びSMTプロセッサのプロセッサ使用率を求めることができる。本発明の方法は、オンラインで非同期、かつ計算量が少ないことを特徴とする。また、本発明の累積データの補正処理は、アルゴリズムによる使用量及び使用率の算出に幅広く応用可能である。本発明を適用した一実現形態を、図面を用いて詳細に説明する。図1は本発明を適用した計算機システムの概要を示す構成図である。計算機001は、物理プロセッサ0002aと物理プロセッサ1002b、メモリ006、1つ以上のI/Oデバイス007を有する。物理プロセッサ0002aと物理プロセッサ1002bは、1つの物理プロセッサを2つのスレッドで同時並行に使用して論理的に2つのプロセッサとして稼動させる、SimultaneousMultiThreading以降SMT機能を有する。オペレーティングシステム100の視点からは、各々のスレッドは1つの論理プロセッサとして見える。したがって、本実施形態においては、物理プロセッサ0002aは論理プロセッサ0003aと論理プロセッサ1003bとして見え、物理プロセッサ1002bは論理プロセッサ2003cと論理プロセッサ3003dとして見える。論理プロセッサ0003a、1003b、2003c、及び3003dはそれぞれサイクルカウンタ004a、004b、004c、及び004dと、タイマ005a、005b、005c、及び005dを有する。ここで示した機能以外に、物理プロセッサ0002aと物理プロセッサ1002bはそれぞれ複数の処理機構と複数のレベルのキャッシュ、及び他の構成要素を備える場合があるが、本発明ではその詳細は問わない。また、本発明の効果を明確化するために、本実施形態においては、論理プロセッサ0003a、1003b、2003c、及び3003dは共にSMTを考慮した特別なカウンタは持たないとする。メモリ006は、プログラムとデータの為の揮発性領域として使用する。I/Oデバイス007は、ディスクドライブを動かすディスクコントローラや、ネットワークを通して外部の計算機システムと接続する為のネットワークインタフェースを含む。本実施形態においては、I/Oデバイス007の詳細は問わない。SMT機能を有効にした物理プロセッサ以降、SMTプロセッサと略記の特性を説明する。SMTプロセッサ上では2つの論理プロセッサが同時に有効であり、1つの物理プロセッサの使用可能な資源を取り合う。SMTプロセッサは、複数の論理プロセッサによるこの物理プロセッサ資源の動的な共有により、複数のプロセスの合計のスループットを向上させることができる。また、SMTプロセッサでは、複数のプロセスの合計の性能だけでなく、1つのプロセスの性能についても、シングルスレッドの物理プロセッサと同等を保証することができる。SMTプロセッサは、この特性を動作モードの動的な切り替えで実現する。図2は、SMTプロセッサの動作モードと、動作モードごとの論理プロセッサへの物理プロセッサ資源の割り当て比率を示した概念図である。図3は、SMTプロセッサの動作モードの遷移図である。物理プロセッサ0002aと論理プロセッサ0003a、1003bを例に取り上げる。まず、SMTプロセッサの動作モードを説明する。物理プロセッサ0002aでは、1つの論理プロセッサのみがアクティブな場合と2つの論理プロセッサ両方がアクティブな場合がある。物理プロセッサ0002aは、それぞれの場合に対してシングルタスクSTモードとマルチタスクMTモード008aという2つの動作モードを提供する。物理プロセッサ0002aの両方の論理プロセッサがアクティブではないときは、物理プロセッサ0002aは省電力モード008dに位置する。物理プロセッサ0002aのSTモードは、論理プロセッサ0003aのみがアクティブなST0モード008bと、論理プロセッサ1003bのみがアクティブなST1モード008cに分けられる。STモードでは、1つの論理プロセッサに物理プロセッサ0002aのプロセッサ資源の全てが割り当てられる。つまり、論理プロセッサあたりの物理プロセッサ資源の割り当て比率は100である。これにより、STモード動作時は、シングルスレッドの物理プロセッサと同等の性能を保証する。MTモード008aでは、論理プロセッサ0003aと論理プロセッサ1003bの2つの論理プロセッサで物理プロセッサ0002aの資源を共有する。MTモード008aでは、物理プロセッサ0002aは、未使用のプロセッサ資源を2つの論理プロセッサで埋めるように、プロセッサ資源を効率的に使用するが、片側の論理プロセッサのみがプロセッサ資源を使用してもう一方の論理プロセッサの実行が止まってしまうことのないよう、両方の論理プロセッサが資源を要求するときは公平に等分する。ここから、MTモード008a動作時の論理プロセッサ当たりの物理プロセッサ資源の割り当て比率は50と考えられる。一方、MTモード008a動作時の1つの論理プロセッサ当たりの性能は、その上で動作させるアプリケーションの種類にも依るが、一般に、シングルスレッドの物理プロセッサの約60、2つの論理プロセッサ合わせて約120を実現する。これより、MTモード008a動作時の論理プロセッサ当たりの物理プロセッサ資源の割り当て比率は60とも考えられる。割り当て比率として、どれを採用するかは、目的に応じて使い分けてもよい。次に、SMTプロセッサの動作モードの状態遷移を説明する。論理プロセッサ0003a、1003bの両方がアクティブな状態で、論理プロセッサ0003aが休止命令を発行すると、物理プロセッサ0002aはMTモード008aからST1モード008bに遷移する。残りのアクティブな論理プロセッサ1003bも休止命令を発行すると、物理プロセッサ0002aは省電力モード008dに遷移する。省電力モード008dのときに、論理プロセッサ0003aに外部割り込みが発生すると、物理プロセッサ0002aはST0モード008bに遷移する。ST0モード008bにおいて、更に論理プロセッサ1003bに外部割り込みが発生すると、MTモード008aに遷移する。論理プロセッサごとに備えるサイクルカウンタ004a、004b、004c、及び004dは、既知で一定の周波数で停止せずに動作し、全ての論理プロセッサの間で同期化する。サイクルカウンタは、既知で一定の周波数で停止せずに動作するという要件を満たすならば、少なくともシステムで一つであればよい。本実施形態において、論理プロセッサごとにサイクルカウンタを備えるとするのは、本発明を適用する代表的な計算機を実施形態とする為である。また、上述の通り、本実施形態においては、SMTを考慮したサイクルカウンタは持たないとする。また、以降、説明を直感的に分かりやすくする為に、サイクルカウンタ値を時刻と述べる。論理プロセッサごとに備えるタイマ005a、005b、005c、及び005dは、指定した時刻に外部割り込みを発生させる機能を有し、本実施形態においては、特に、プロセッサ使用率算出処理を周期的に呼び出し、プロセッサ使用率を周期的に算出する為に使用する。オペレーティングシステム100は、計算機001のハードウェア資源を管理して、アプリケーションの実行環境を提供するシステムソフトウェアである。オペレーティングシステム100が提供するアプリケーションの実行環境は、プロセスとして実現される。本実施形態において、オペレーティングシステムは特に構成要素にスケジューラ101とプロセッサ使用率モニタ102を有する。また、オペレーティングシステム100は、メモリ006上に配置される。本実施形態においては、プロセス0110a、プロセス1110b、プロセス2110c、及びプロセス3110d9の計4つのプロセスがアクティブである。プロセスは、アプリケーションを走らせる実体であり、アプリケーションに実行環境を提供する。1つの論理プロセッサ上ではただ1つのプロセスが走行する。オペレーティングシステム100は、各論理プロセッサ上で走行するプロセスを切り替え、論理プロセッサをプロセスの間で時分割共有することで、複数のプロセスが同時にアクティブであるマルチプログラミング環境を実現する。プロセスは決まった生存期間を持ち、たいていのプロセスは、アプリケーションと対応し、アプリケーションの起動と合わせて生成され、終了と共に削除される。プロセスの論理プロセッサへの割り当ては、スケジューラ101が優先度に応じて制御する。スケジューラ101は、優先度を考慮したランキュー103を用いてスケジューリングを実現する。スケジューラは、計算機システムの構成や目的に応じて多くの実現方式をとりえるが、本実施形態においては、実現方式の詳細は省略する。また、その他に、オペレーティングシステム100は、論理プロセッサ0003a、1003b、2003c、及び3003dにそれぞれアイドルプロセス0120a、アイドルプロセス1120b、アイドルプロセス2120c、及びアイドルプロセス3120dをそれぞれ対応付ける。スケジューラ101は、論理プロセッサに割り当てていないプロセスをランキュー103で管理する。スケジューラ101がプロセスを選択して論理プロセッサ上で走行させるときは、該プロセスをランキュー103から取り出す。プロセスの論理プロセッサ上での走行を中止させるときは、プロセスの論理プロセッサへの割り当てを解除し、ランキュー103に挿入する。スケジューラ101は、論理プロセッサに割り当てるプロセスが見つからなかったときに、該論理プロセッサに割り当てるプロセスが見つかるまで、該論理プロセッサ上で対応するアイドルプロセスを走行させる。アイドルプロセスが論理プロセッサ上で走行するときは、休止命令を発行して、常に論理プロセッサを休止状態に置く。シングルスレッドの物理プロセッサであれば、プロセスをどの論理プロセッサに割り当てたとしても、大きな性能差は生じないが、SMTプロセッサでは、上述の通り、割り当て先の論理プロセッサに応じて非常に大きな性能差が生じえる。SMTプロセッサを搭載した計算機システムにおいては、プロセスのスケジューリングを考慮すると共に、プロセスの論理プロセッサへの割り当てにより生じる性能差を正しく把握することが非常に重要である。本発明のプロセッサ使用率算出方式は、SMT専用の特別なハードウェアを必要とせずに、SMTを考慮したプロセッサ使用量及び使用率を算出するものである。プロセッサ使用率モニタ102は、物理プロセッサ、物理プロセッサ内の論理プロセッサ、オペレーティングシステム100のプロセスの単位でプロセッサ使用率を定期的に集計し、保持する。プロセッサ使用率は、計算機システムの稼動状況をリアルタイムに監視したり、負荷に応じてプロセッサ資源の割り当てを制御したりする為に必要である。スケジューラ101は、プロセッサ使用率モニタが集計したプロセッサ使用率をプロセススケジューリングで使用することもできるが、本実施形態では、プロセッサ使用率の用途ではなく算出に焦点をあてる為、用途については詳細を省略する。プロセッサ使用率モニタ102は、プロセスである必要はなく、外部割り込みハンドラやライブラリ関数等であってもよい。本実施形態においては、プロセッサ使用率モニタ102の実現形態は問わない。本発明の方法に入る前に、SMT無効時の従来の方法によるプロセッサ使用率の算出方法を説明する。物理プロセッサ0002aのプロセッサ使用率を例にする。図4に、従来技術におけるSMT無効時のプロセッサ使用率モニタのブロック図を示す。説明に必要な情報のみを含む。プロセッサ使用率モニタ102は、物理プロセッサ0002aに対して、累積プロセッサ使用量PP_U200、プロセッサ使用量測定開始時刻PP_TU201、プロセッサ使用率算出開始プロセッサ使用量PP_US202を有する。また、システムに対して、プロセッサ使用率算出周期UPRD203を有する。図5aのフローチャートに従い、SMT無効時の従来の方法による物理プロセッサ0002aのプロセッサ使用量算出処理を説明する。物理プロセッサ0002aの休止状態が解除され、実行を開始するときに、その時点の時刻現在時刻をプロセッサ使用量測定開始時刻PP0_TU201に保持するステップ301。物理プロセッサ0002aが実行を中断して休止命令を発行して、休止状態に遷移させるときに、その時点の時刻現在時刻からプロセッサ使用量測定開始時刻PP0_TU201を引くことで、今回のプロセッサ使用量をt2-PP0_TUと求める。求めたプロセッサ使用量を累積プロセッサ使用量PP0_U200に加算するステップ302。以上を物理プロセッサ0002aが実行を開始、終了するたびに繰り返す。図5bのフローチャートに従い、SMT無効時の従来の方法による物理プロセッサ0002aのプロセッサ使用率算出処理を説明する。タイマは、プロセッサ使用率算出の周期の度に外部割り込みを生成するように設定され、プロセッサ使用率モニタ102のプロセッサ使用率算出処理は、この外部割り込みを契機に周期的に呼び出されるものとする。プロセッサ使用率算出時刻になると、プロセッサ使用率算出開始処理が呼び出される。物理プロセッサ0002aの累積プロセッサ使用量PP0_U200を取得し、プロセッサ使用率算出開始プロセッサ使用量PP0_US202に保持するステップ303。周期UPRD203が経過して、次にプロセッサ使用率算出時刻になると、プロセッサ使用率算出終了処理が呼び出される。物理プロセッサ0002aの累積プロセッサ使用量PP0_U200を取得し、保持したプロセッサ使用率算出開始プロセッサ使用量PP0_US202で引き、プロセッサ使用量の増分をPP0_U-PP0_USと求めるステップ304。プロセッサ使用量の増分をプロセッサ使用率算出周期UPRD203で割ることで、物理プロセッサ0のプロセッサ使用率が求められるステップ305。1回のプロセッサ使用率算出処理用のタイマ割り込みで、今回のプロセッサ使用率算出終了処理と次回のプロセッサ使用率算出開始処理を続けて呼び出すことで、周期的に物理プロセッサ0002aのプロセッサ使用率を算出することができる。従来の方式を使うと、プロセッサ使用量とプロセッサ使用率を単純に求めることができるが、SMTプロセッサ有効時のプロセッサ使用量とプロセッサ使用率の算出に使おうとすると、SMTプロセッサの動作モードを考慮したものにはならない。従来の方式の問題点を論理プロセッサのプロセッサ使用率を求める例に基づき示す。図6aは、物理プロセッサ002aの論理プロセッサ0003aは走行中だが、論理プロセッサ1003bは休止状態にあることを時系列で示した概念図である。図6bは、物理プロセッサ0002aの論理プロセッサ0003aと論理プロセッサ1003bが共に走行中であることを時系列で示した概念図である。従来の方法では、図6aと図6bの両方で、論理プロセッサ0003aのプロセッサ使用率は100になる。図6aは、物理プロセッサ0002aはSTモードで動作するので従来方法で問題ないが、図6bは、物理プロセッサ0002aはMTモードで動作するので、論理プロセッサ0003aは物理プロセッサ0002aの資源の全てを使うことはできない。このときの論理プロセッサ0003aのプロセッサ使用率は、後述のMTモード時の論理プロセッサの物理プロセッサ割り当て比率MRTO190に等しくなるべきである。本発明の方法は、これを実現するものである。図7は、本実施形態におけるプロセッサ使用率モニタ102の構成図である。プロセッサ使用率モニタ102が有するブロックは、物理プロセッサ、論理プロセッサ、プロセス、システムの区分で分類される。プロセッサ使用率モニタ102は、物理プロセッサに対して、物理プロセッサごとに累積プロセッサ使用量PP_U150、及びプロセッサ使用率算出開始プロセッサ使用量PP_US151を有する。プロセッサ使用率モニタ102は、論理プロセッサに対して、論理プロセッサごとに同一物理プロセッサに属する相手論理プロセッサへのポインタ160、累積プロセッサ使用量LP_U161、累積走行時間LP_R162、累積STモード走行時間LP_SR163、プロセッサ使用量測定開始時刻LP_TU164、プロセッサ使用率算出開始プロセッサ使用量LP_US165、累積休止時間LP_H166、最新休止開始時刻LP_HS167、最新休止終了時刻LP_HE168、及び相手論理プロセッサの累積休止時間現在値LP_HP169を有する。プロセッサ使用率モニタ102は、プロセスに対して、プロセスごとに累積プロセッサ使用量PR_U180、累積走行時間PR_R181、累積STモード走行時間PR_SR182、プロセッサ使用量測定開始時刻PR_TU183、プロセッサ使用率算出開始プロセッサ使用量LP_US184、及び相手論理プロセッサの累積休止時間現在値LP_HP185を有する。プロセッサ使用率モニタ102は、システムに対して、MTモード時の論理プロセッサの物理プロセッサ資源割り当て比率MRTO190、及びプロセッサ使用率算出周期UPRD191を有する。物理プロセッサ資源割り当て比率MRTO190は、ある1つの実現形態においては50としている。特に、図7記載の情報を用いて、本実施形態における論理プロセッサのプロセッサ使用量及び使用率の算出方式を説明する。まず、本発明の方法を時系列の概念図を用いて具体的に説明する。次に、フローチャートに従って、本発明の方法のアルゴリズムを示す。図8は本実施形態における、物理プロセッサ0002がSMT有効であるときの論理プロセッサ0003aと論理プロセッサ1003bの動作を時系列で示した概念図である。論理プロセッサの動作状態について、時刻と時刻を矢印で結んだ区間は、論理プロセッサがアクティブ状態にあり、空白の区間は、論理プロセッサが休止状態にあるとする。論理プロセッサ0003aのプロセッサ使用率R0を、本発明の方法を用いて求める。本発明の方法の目的を明確に伝える為に複雑な例を取り上げる。図8では、時刻T0401から時刻T8409までの時間UPRD=T8-T0の区間を、プロセッサ使用率算出の標本区間とする。論理プロセッサ0003aと論理プロセッサ1003bが共に休止状態にあり、物理プロセッサ0は省電力状態008dにあり、論理プロセッサ1003bはこの時点で休止を開始した時刻T0401。論理プロセッサ0003aの休止状態が解除されると、物理プロセッサ0002aはST0モード008bになる時刻T1402。今度は、論理プロセッサ1003bの休止が解除されると、物理プロセッサ0002aはMTモード008aになる時刻T2403。論理プロセッサ0003aが再び休止し、物理プロセッサ0002aはST0モード008bになる時刻T3404。論理プロセッサ1003bの休止が解除されると、物理プロセッサ0002aはMTモード008aになる時刻T4405。論理プロセッサ1003bが休止すると、物理プロセッサ0002aはST0モード008bになる時刻T5406。論理プロセッサ0003aが休止すると、物理プロセッサ0002aは再び省電力モード008dになる時刻T6407。その後、論理プロセッサ1003bの休止が解除されると、物理プロセッサ0002aはST1モード008cになる時刻T7408。時刻T8409で標本区間は終わりである。論理プロセッサ0003aのプロセッサ使用量U0を求める。論理プロセッサ0003aの時刻T1402から時刻T6407までの走行時間TR0は次の通りである。TR0=T6-T1式1本発明の方法で算出する論理プロセッサ0003aのプロセッサ使用量U0は、論理プロセッサ0003aの走行時間TR0をSTモード走行時間TS0とMTモード走行時間TM0に分割し、MTモード走行時間TM0に、MTモード時の論理プロセッサの物理プロセッサ割り当て比率MRTO190を乗じた値に、ST走行時間TS0を加算することでU0=TS0TM0xMRTO式2と求められる。標本区間内では、論理プロセッサ0003aが走行したのは一度であり、その間に休止を含まない為、論理プロセッサ0003aのプロセッサ使用率R0は、求めたプロセッサ使用量U0を時間UPRD191で割ればR0=U0/UPRD式3と簡単に求めることができる。物理プロセッサ0002aの動作モードを考えると、STモード走行時間TS0は、論理プロセッサ1003bの論理プロセッサ0003aの走行時間内の合計休止時間TH1と等しい、つまりTS0=TH1式4とみなすことができる。論理プロセッサ0003aのMTモード走行時間TM0は、走行時間TR0の中に休止時間を含まないので、走行時間TR0からSTモード走行時間TS0を引くことでTM0=TR0-TS0式5と求められる。式1、式4、及び式5を用いると、論理プロセッサ0003aのプロセッサ使用量U0は次のようにも表せる。U0=TH1T6-T1-TH1xMRTO式6式6より、論理プロセッサ0003aのプロセッサ使用率R0の算出は、論理プロセッサ1003bの論理プロセッサ0003aの走行時間内の合計休止時間TH1の算出が核となる。論理プロセッサ0003aは、論理プロセッサ1003bが通常動作状態にあるか、休止状態にあるかを直接的に知ることはできない。また、論理プロセッサ1003bは、対象区間内で何度も通常動作状態と休止状態の間の遷移を繰り返すことがある。それゆえ、論理プロセッサ1003bの合計休止時間TH1を求めるには、論理プロセッサ0003aと論理プロセッサ1003bの間の協力が必要である。論理プロセッサ0003aの走行区間T1402からT6407までの間の論理プロセッサ1003bの合計休止時間TH1はTH1=T2-T1T4-T3T6-T5式7である。これより、合計休止時間TH1を求めるには、少なくともT1402からT6407までの計6回サイクルカウンタを参照して時刻を取得する必要がある。このうち、時刻T1402とT6407は、論理プロセッサ0003aの走行の開始から終了であるため、論理プロセッサ0003aのサイクルカウンタを参照すればよく、論理プロセッサ0003aと論理プロセッサ1003bの間の同期化は伴わない。しかし、時刻T2403、T3404、T4405、及びT5406は相手の論理プロセッサ1003bの休止の開始あるいは終了である。論理プロセッサ0003aは、これらの時刻を直接知ることはできない。そのため、論理プロセッサ0003aがこれらの時刻を知るには、論理プロセッサ1003bから通知するか、論理プロセッサ0003aがポーリングすることが必要である。ところが、論理プロセッサ0003aの1回の走行時間TR0は非常に短くなりえる。また、論理プロセッサ1003bの休止は、T0401とT2403、T3404とT4405、T5406とT7408の計3回以上に多く起こりえ、1回の休止時間T2-T0、T4-T3、T7-T5も非常に短くなりえる。ポーリングや論理プロセッサ間通信といった同期化処理は、高頻度で実行されると、論理プロセッサ上で実行するアプリケーションにとって非常に大きなオーバヘッドとなりえる。それゆえ実用を考えると、論理プロセッサ1003bの合計休止時間の算出に、論理プロセッサ1003bからの通知や論理プロセッサ0003aのポーリングを使うことはできない。したがって、上記の式7で単純に論理プロセッサ1003bの合計休止時間TH1を求めることはできない。工夫する必要がある。図9に、論理プロセッサ1003bの累積休止時間の増加を時系列のグラフで示す。累積休止時間は、論理プロセッサ1003bの動作に追従して連続的に更新されるならば、図9のようになる。論理プロセッサ0003aが図9のTH1を求める方法を考える。まず、図10のように、論理プロセッサ1003bの累積休止時間を、論理プロセッサ1003bが一定の時間間隔で更新していく方法が考えられる。この方法ならば、論理プロセッサ1003bは自身の累積休止時間を定期的に更新するので、論理プロセッサ0003aは、時刻T1402の走行開始時と時刻T6408の走行終了時にそれぞれ論理プロセッサ1003bの累積休止時間を参照し、その差分を求めることで、論理プロセッサ1003bの合計休止時間TH1の近似値TH1 ́が得られる。この近似値の精度を上げるには、累積休止時間の更新間隔を短くする必要があるが、論理プロセッサ1003bが休止中に累積休止時間を更新するには、そのつど休止状態を解除して起きる必要がある。しかし、論理プロセッサ1003bを起こすと、物理プロセッサ0003aはST0モード008bからMTモード008aに遷移し、論理プロセッサ0003aの性能が落ちてしまう。累積休止時間の更新間隔が長いと、近似値の精度が低く実用に耐えない。それゆえ、別の方法を考える必要がある。図11は、論理プロセッサ1003bが休止を終了するときのみ累積休止時間を更新する方法である。この方法では、論理プロセッサ0003aは、時刻T2403に、時刻T1402から開始している休止の1つ前の休止までの累積休止時間LP1_H0420を取得し、時刻T6407に、時刻T4405で終了した休止までの累積休止時間LP1_H2422を取得する。論理プロセッサ0003aは、この2つの値の差分TH1 ́TH1 ́=LP1_H2-LP1_H0式8を論理プロセッサ1003bの合計休止時間TH1の近似値として求めることができる。図11では、図10の問題や、論理プロセッサ0003aと論理プロセッサ10003bの同期化のような問題は起こらない。計算量も非常に少ない。しかし、まだ問題がある。TH1 ́は、式8を式7のように表すと次のようになる。TH1 ́=T2-T0T4-T3式9式7と式9を比較すると、近似値TH1 ́は実際の値TH1と比べて、EX1=T1-T0が過剰であり、SH1=T6-T5が不足している。この過剰分EX1と不足分SH1を補正することができれば、図11の方法は、同期化なしでかつ計算量が少なく、論理プロセッサ1003bの合計休止時間TH1を求めることができる。過剰分EX1と不足分SH1を見ると、減算元の時刻T1402とT6407は、いずれもプロセッサ使用量の算出対象の論理プロセッサ0003aのイベント時刻であり、減算先の時刻T0401とT5406は、いずれも合計休止時間の算出対象の論理プロセッサ1003bのイベント時刻である。時刻T1402は、論理プロセッサ0003aのプロセッサ使用量算出開始時刻であり、時刻T6407は、プロセッサ使用量算出終了時刻である。これに対して、時刻T0401は、論理プロセッサ1003bの休止終了時刻であり、時刻T5406は、論理プロセッサ1003bの休止開始時刻である。論理プロセッサ1003bが時刻T0401と時刻T5406を論理プロセッサ0003aが参照可能なように記録しておけば、論理プロセッサ0003aは過剰分EX1と不足分SH1を求めることができる。これを実現するのが、本発明の方式である。図12は、論理プロセッサ1003bが休止を終了するときのみ累積休止時間を更新し、更に、論理プロセッサ1003bの休止開始時刻と休止終了時刻を、論理プロセッサ0003aが参照可能なように記録する方法である。論理プロセッサ0003aは、論理プロセッサ1003bの合計休止時間TH1の近似値TH1 ́を、プロセッサ使用量U0の算出終了時に式8により求める。また、プロセッサ使用量U0の算出開始時に近似値TH1 ́の過剰分EX1を求め、算出終了時に不足分SH1を求める。以上をまとめると、次のように論理プロセッサ1003bの合計休止時間TH1が求められる。TH1=TH1 ́-EX1SH1=T3-T1T5-T4-T2-T1T7-T6=T3-T2T5-T4T7-T6論理プロセッサ1003bの合計休止時間TH1が求まれば、式6により、論理プロセッサ0003aのプロセッサ使用量U0が求められ、式3により、論理プロセッサ0003aのプロセッサ使用率R0が求められる。図12に示す方法は、プロセッサ使用量算出方式とするには、過剰分EX1と不足分SH1があるとは限らないという問題を解決する必要がある。過剰分EX1と不足分SH1が0であることがありえる。過剰分EX1と不足分SH1の有無の条件判定がそれぞれ必要である。過剰分EX1と不足分SH1の有無の条件判定処理を説明する。図13aに、過剰分EX1の有無と論理プロセッサ0003aと論理プロセッサ1003bのイベント時刻の関係を時系列で示す。論理プロセッサ0003aのプロセッサ使用量算出開始時刻Tsに、論理プロセッサ1003bの最新休止開始時刻Taが最新休止終了時刻Tbよりも大きいならば501、論理プロセッサ1003bは休止中であり、EX1=Ts-Taが、合計休止時間TH1の過剰分である。これに対して、論理プロセッサ0003aのプロセッサ使用量算出開始時刻Tsに、論理プロセッサ1003bの最新休止開始時刻Taが最新休止終了時刻Tbよりも小さいならば502、論理プロセッサ1003bは動作中であるため、過剰分EX1は0である。また、図13bに、不足分SH1の有無と論理プロセッサ0003aと論理プロセッサ1003bのイベント時刻の関係を時系列で示す。論理プロセッサ0003aのプロセッサ使用量算出終了時刻Teに、論理プロセッサ1003bの最新休止開始時刻Taが最新休止終了時刻Tbよりも大きいならば503、論理プロセッサ1003bは休止中であり、SH1=Te-Taが、合計休止時間TH1の不足分である。これに対して、論理プロセッサ0003aのプロセッサ使用量算出終了時刻Teに、論理プロセッサ1003bの最新休止開始時刻Taが最新休止終了時刻Tbよりも小さいならば504、論理プロセッサ1003bは動作中であるため、不足分SH1は0である。図12の基本方式に加えて図13aとbの条件判定を追加した、本発明の論理プロセッサのプロセッサ使用量及びプロセッサ使用率の算出方式を説明する。論理プロセッサのプロセッサ使用量及びプロセッサ使用率算出処理は、大きくは、論理プロセッサの累積休止時間更新処理、論理プロセッサの累積プロセッサ使用量更新処理、及び論理プロセッサのプロセッサ使用率算出処理からなる。論理プロセッサの累積休止時間更新処理を、図14のフローチャートに基づき説明する。物理プロセッサ0002aの論理プロセッサ0003aを例とする。論理プロセッサ0003aは、休止開始時に現在時刻t0を取得し、最新休止開始時刻LP0_HS167に格納するステップ601。論理プロセッサ0003aは、休止終了時に現在時刻を取得し、最新休止終了時刻LP0_HE168に格納するステップ602。そして、今回の休止時間LP0_HE-LP0_HSを累積休止時間LP0_H166に加算するステップ603。論理プロセッサの累積プロセッサ使用量更新処理を、図15のフローチャートに基づき説明する。物理プロセッサ0002aの論理プロセッサ0003aを例とする。論理プロセッサ0003aは走行開始時に、論理プロセッサ1003bの最新休止開始時刻LP1_HS167と最新休止終了時刻LP1_HE168を取得し、それぞれhs0とhe0に保持するステップ701。このとき、論理プロセッサ1003bの特定には、論理プロセッサごとにある、同一物理プロセッサに属する相手論理プロセッサへのポインタ160を使用する。続けて、論理プロセッサ1003bの累積休止時間LP1_H166を取得し、相手論理プロセッサの累積休止時間現在値LP0_HP169に格納するステップ702。次に、現在時刻を取得し、論理プロセッサ0003aのプロセッサ使用量測定開始時刻LP0_TU164に格納するステップ703。論理プロセッサ1003bの合計休止時間近似値TH1 ́の過剰分EX1を求める。先ほど求めたhs0とhe0を大小比較し、相手論理プロセッサの動作状態を判定するステップ704。hs0がhe0よりも大きければ、論理プロセッサ1003bは休止中であると判断し、過剰分EX1をt0-hs1と求めるステップ705。hs0がhe0よりも小さければ、論理プロセッサ1003bは実行中であると判断し、過剰分EX1を0と求めるステップ706。そして、論理プロセッサ0003aは走行を開始する。論理プロセッサ0003aは走行終了時に、論理プロセッサ1003bの最新休止開始時刻LP1_HS167と最新休止終了時刻LP1_HE168を取得し、それぞれhs1とhe1に保持するステップ707。論理プロセッサ1003bの累積休止時間LP1_H166を取得し、保存した相手論理プロセッサの累積休止時間現在値LP0_HP169との差分LP1_H-LP0_HPを論理プロセッサ1003bの合計休止時間近似値TH1 ́と求めるステップ708。次に現在時刻取得し、t1に保持するステップ709。今回の論理プロセッサ0003aの走行時間R0をt1-LP0_TUと求める。R0は、論理プロセッサ0003aの累積走行時間LP0_Rに加算するステップ710。論理プロセッサ1003bの合計休止時間近似値TH1 ́の不足分SH1を求める。hs1とhe1を大小比較し、相手論理プロセッサの動作状態を判定するステップ711。hs1がhe1よりも大きければ、論理プロセッサ1003bは休止中であると判断し、不足分SH1をt1-hs1と求めるステップ712。hs1がhe1よりも小さければ、論理プロセッサ1003bは実行中であると判断し、不足分SH1を0と求めるステップ713。論理プロセッサ1003bの合計休止時間TH1をTH1 ́-EX1SH1と求めるステップ714。論理プロセッサ1003bの合計休止時間TH1は、そのまま論理プロセッサ0003aの今回のSTモード実行時間SR0になる。SR0は、累積STモード実行時間LP0_SR163に加算するステップ715。今回の論理プロセッサ0003aのMTモード実行時間MR0をR0-SR0と求めるステップ716。そして、今回の論理プロセッサ0003aのプロセッサ使用量U0を、物理プロセッサ資源割り当て比率MRTO190を用いて、MR0×MRTOSR0と求め、論理プロセッサ0003aの累積プロセッサ使用量LP0_U161に加算するステップ717。論理プロセッサのプロセッサ使用率算出処理を、図16のフローチャートに基づき説明する。物理プロセッサ0002aの論理プロセッサ0003aを例とする。タイマは、プロセッサ使用率算出の周期UPRD191の度に外部割り込みを生成するように設定され、プロセッサ使用率モニタのプロセッサ使用率算出処理は、この外部割り込みを契機に周期的に呼び出されるものとする。プロセッサ使用率算出時刻になると、プロセッサ使用率算出開始処理が呼び出される。論理プロセッサ0003aの累積プロセッサ使用量LP0_U161を取得し、プロセッサ使用率算出開始プロセッサ使用量LP0_US165に保持するステップ801。周期UPRD191が経過して、次にプロセッサ使用率算出時刻になると、プロセッサ使用率算出終了処理が呼び出される。論理プロセッサ0003aの累積プロセッサ使用量LP0_U161を取得し、保持したプロセッサ使用率算出開始プロセッサ使用量LP0_US165で引き、プロセッサ使用量の増分ΔU0をLP0_U-LP0_USと求めるステップ802。プロセッサ使用量の増分ΔU0をプロセッサ使用率算出周期UPRD191で割ることで、論理プロセッサ0003aのプロセッサ使用率P0が求められるステップ803。1回のプロセッサ使用率算出処理用のタイマ割り込みで、今回のプロセッサ使用率算出終了処理と次回のプロセッサ使用率算出開始処理を続けて呼び出すことで、周期的に論理プロセッサ0003aのプロセッサ使用率を算出することができる。ここまでで、論理プロセッサのプロセッサ使用量とプロセッサ使用率の算出方式を説明した。SMTプロセッサ、すなわちSMT有効時の物理プロセッサのプロセッサ使用量とプロセッサ使用率は、その配下の2つの論理プロセッサのプロセッサ使用量とプロセッサ使用率をそれぞれ加算することで、容易に求めることができる。オペレーティングシステム100のプロセスのプロセッサ使用量は、前述の論理プロセッサのプロセッサ使用量の算出区間を、対象プロセスの1つの論理プロセッサ上での連続走行区間とし、これを累積していくことで求めることができる。プロセスのプロセッサ使用率は、論理プロセッサのプロセッサ使用率と全く同様にして求めることができる。また、プロセスは、論理プロセッサと異なり、走行する論理プロセッサが複数にまたがることがあるが、本実施形態では、1つの物理プロセッサの配下の2つの論理プロセッサがお互いをポイントするので、プロセスはどの論理プロセッサに移ったとしても、このポインタを利用することで、論理プロセッサの物理的位置に依らずに同じ手順で、プロセスのプロセッサ使用量を求めることができる。以上より、詳しく説明した論理プロセッサのプロセッサ使用量とプロセッサ使用率の算出方式と、物理プロセッサのプロセッサ使用量とプロセッサ使用率、並びにプロセスのプロセッサ使用量とプロセッサ使用率の算出方式には、大きな違いがないので、後者についてはこれ以上の説明を省略する。本発明のプロセッサ使用量とプロセッサ使用率の算出方式によれば、時刻の大小関係を適切に用いることで、専用の特別なハードウェア機構を必要とすることなく、論理プロセッサ、オペレーティングシステムのプロセス、及びSMTプロセッサのそれぞれに関して、任意の標本区間かつ任意の区分で、SMTの動作モードを考慮したプロセッサ使用量とプロセッサ使用率を、オンラインでかつ非同期な方式で算出することができる。本実施形態においては、特に図7の構成に基づき、これを示した。