(57)【特許請求の範囲】
【請求項１】
仮想計算機上でソフトウェアがタイマをもとに処理を実行するタイマ自動制御装置において、
ソフトウェアを仮想計算機上で当該仮想計算機の速度に対応した仮想タイマに従い処理を実行する手段と、
仮想計算機上で所定の処理を実行開始するまでの待ち合わせ時間Ｔを検出して当該待ち合わせ時間Ｔが所定の閾値と比較して大きいか判別する手段と、
上記待ち合わせ時間Ｔが閾値よりも大きいと判明したときに上記仮想タイマの加速度を１にして実機上のタイマと同一に設定し、一方、上記待ち合わせ時間Ｔが閾値よりも小さいと判明したときに上記仮想タイマの加速度を当該仮想計算機の性能比の値にして仮想タイマに設定する手段と、
上記仮想タイマをもとに上記待ち合わせ時間が到来したときに割り込みを発生させて所定の処理を開始させる手段と
を備えたことを特徴とするタイマ自動制御装置。
【請求項２】
複数の仮想計算機毎に仮想タイマを設け、これら仮想計算機上での上記待ち合わせ時間Ｔの最小値が閾値よりも大きいと判明したときに各仮想タイマの加速度を１にして実機上のタイマと同一にそれぞれ設定したことを特徴とする請求項１記載のタイマ自動制御装置。
【請求項３】
コンピュータを、
ソフトウェアを仮想計算機上で当該仮想計算機の速度に対応した仮想タイマに従い処理を実行する手段、
仮想計算機上で所定の処理を実行開始するまでの待ち合わせ時間Ｔを検出して当該待ち合わせ時間Ｔが所定の閾値と比較して大きいか判別する手段、
上記待ち合わせ時間Ｔが閾値よりも大きいと判明したときに上記仮想タイマの加速度を１にして実機上のタイマと同一に設定し、一方、上記待ち合わせ時間Ｔが閾値よりも小さいと判明したときに上記仮想タイマの加速度を当該仮想計算機の性能比の値にして仮想タイマに設定する手段、
上記仮想タイマをもとに上記待ち合わせ時間が到来したときに割り込みを発生させて所定の処理を開始させる手段、
として機能させるプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、仮想計算機上でソフトウェアがタイマをもとに処理を実行するタイマ自動制御装置および記録媒体に関するものである。
【０００２】
【従来の技術】
従来、ソフトウェアには、ある一定の時間が経過したことを契機に、スケジュールされて動作する機能が多くある。これらの機能を仮想計算機上でその動作を確認する際に、実際の計算機の実行速度と当該仮想計算機のシミュレーション速度とが異なる場合、仮想計算機上で実機上で実行したと同様の動作環境でソフトウェアを実行するようにしていた。
【０００３】
【発明が解決しようとする課題】
しかしながら、仮想計算機のシミュレーション速度が実際の計算機（実機）よりも遅い環境においては、ソフトウェアが経過時間に基づいた待合せ処理を行った場合、例えば図６の（ｅ）に示すように、非常に長い待ち合わせ時間ＷＡＩＴが生じてしまうため、待ち合わせ時間のチェックや試験効率の点で大きな問題が発生した。以下図６について簡単に説明する。
【０００４】
図６は、従来技術の説明図を示す。
図６の（ａ）は、実機上のソフトウェア動作を示す。ここでは、Ａ、Ｂ、Ｃ、Ｄという処理が順次実行され、実行開始から時間Ｔ経過後に処理Ｅを実行する様子を示す。
【０００５】
図６の（ｂ）は、仮想計算機上のソフトウェア動作を示す。ここでは、仮想計算機が実機よりも速度が１／４であるので４倍の時間で実行しているが、処理Ｂ、Ｃ、Ｄが実行されないうちに、時間Ｔ’経過して処理Ｅが実行開始されてしまい、所定のテストを実行できないという問題がある。
【０００６】
図６の（ｃ）は、仮想計算機上のソフトウェア動作を示す。ここでは、仮想計算機が実機よりも速度が１／４であるので４倍の時間で実行すると共に待合せ時間Ｔ’も同様に遅くした場合であって、処理Ａ、Ｂ、Ｃ、Ｄが実行された後に時間Ｔ’経過して処理Ｅが実行開始されるが、当該時間Ｔ’が非常に長く、ここでは４倍に長くなっており、実機上に比して４倍の長い待ち時間Ｔ’の間、待つ必要が生じてしまい、テスト効率が悪くなってしまうという問題があった。
【０００７】
例えば、ある一定時間だけメッセージを表示して、その間にキー入力が無ければ自動的に処理を進めるという処理を行っている場合、図６の（ｃ）の場合には、実機上の時間の４倍の待ち時間となってしまい、非常に長い待ち時間となってしまう問題がある。また、図６の（ｂ）の場合には、前処理が実行されないうちに、メッセージが表示されてしまうという不都合が生じるという問題がある。
【０００８】
図６の（ｄ）は、実機上のソフトウェアの動作を示す。ここでは、ＴｓからＴｅまでがＷＡＩＴ時間であって、この間何も処理しないで待ち合わせる。
図６の（ｅ）は、仮想計算機上のソフトウェアの動作を示す。この場合には、仮想タイマ加速度＝１／４であって、仮想タイマが４倍に遅くなっているので、ＷＡＩＴ時間も図６の（ｄ）に比して４倍に長くなっている。
【０００９】
本発明は、これらの問題を解決するため、ソフトウェアを仮想計算機上でテストする際にタイマを自動的に最適な加減速制御を行い、ソフトウェアに対する修正やオペレータによる介入操作無しに、自動的に待ち合わせ時間を最適に加減速して容易にソフトウェアのテストなどを実施可能にすることを目的としている。
【００１０】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
図１において、ソフトウェア１は、仮想計算機上でシミュレーションする対象のソフトウェアであって、ここでは、経過時間Ｔ後にタイマ割り込みを発生するように依頼するものである。
【００１１】
タイマ加速度計算装置３は、経過時間をもとに最適なタイマ加速度を計算するものである。
仮想タイマ制御装置４は、タイマ加速度をもとに経過時間を補正した補正値（補正後の経過時間、仮想タイマの値）を生成するものである。
【００１２】
次に、動作を説明する。
仮想計算機上でソフトウェア１のシミュレーションなどを行う際に、タイマ加速度計算装置３が所定の処理を実行開始するまでの待ち合わせ時間Ｔを検出して当該待ち合わせ時間Ｔが所定の閾値と比較して大きいか判別し、待ち合わせ時間Ｔが閾値よりも大きいと判明したときに仮想タイマの加速度を１にし、一方、待ち合わせ時間Ｔが閾値よりも小さいと判明したときに仮想タイマの加速度を仮想計算機の速度に対応する所定の値にし、仮想タイマ制御装置４がタイマ加速度をもとに仮想タイマの値を生成し、タイマ割り込み制御装置２が仮想タイマの値（補正後の経過時間）が所定値を越えたときにタイマ割り込みを発生させ、ソフトウェアに通知するようにしている。
【００１３】
この際、複数の仮想計算機毎に仮想タイマを設け、これら仮想計算機上での上記待ち合わせ時間Ｔの最小値が閾値よりも小さいと判明したときに各仮想タイマの加速度を１にして実機上のタイマと同一に仮想タイマにそれぞれ設定し、これらそれぞれ設定された仮想タイマの値（補正後の経過時間）が所定値を越えたときにタイマ割り込みを発生させてそれぞれのソフトウェアに通知するようにしている。
【００１４】
従って、ソフトウェア１を仮想計算機上でテストなどする際に仮想タイマを自動的に最適な加減速制御を行うことにより、ソフトウェア１に対する修正やオペレータによる介入操作無しに、自動的に待ち合わせ時間Ｔを最適に加減速して容易にソフトウェアのテストなどを実施することが可能となる。
【００１５】
【発明の実施の形態】
次に、図１から図５を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１６】
図１は、本発明のシステム構成図を示す。
図１において、ソフトウェア１は、仮想計算機上でシミュレーションする対象のソフトウェアであって、経過時間Ｔ後にタイマ割り込みを発生するように依頼するものである。
【００１７】
タイマ割り込み制御装置２は、仮想タイマ制御装置４から通知されたタイマ加速度で補正された後の経過時間が、ソフトウェア１から依頼された経過時間になったときにタイマ割り込みでソフトウェア１に通知したりなどするものである。
【００１８】
タイマ加速度計算装置３は、通知された経過時間（待ち合わせ時間）に対して関数Ｆを適用して最適なタイマ加速度を計算するものであって、例えば経過時間（待ち合わせ時間）が所定の閾値を越えたときに加速度１としたり、それ以外のときに仮想計算機の実機との性能比に対応する加速度を算出したりなどするものである。例えば実機に比して仮想計算機の性能が１／１００であれば加速度１／１００と算出する。
【００１９】
仮想タイマ制御装置４は、タイマ加速度をもとに経過時間を補正した補正値（補正後の経過時間、仮想タイマの値）を生成するものであって、たとば加速度１／１００の場合には、補正後の経過時間はＴ・１００となる。
【００２０】
タイマ加速度表示装置５は、タイマ加速度を表示するものである。
次に、図２のフローチャートに示す手順に従い、図１の構成の動作を詳細に説明する。
【００２１】
図２は、本発明の動作説明フローチャートを示す。
図２において、Ｓ１は、タイマ割り込みを発生させるまでの経過時間を指定する。これは、図１のソフトウェア１がタイマ割り込み制御装置２に対し、タイマ割り込みを発生させるまでの経過時間Ｔを指定して依頼する。
【００２２】
Ｓ２は、経過時間＞閾値か判別する。ＹＥＳの場合には、Ｓ１で指定された経過時間Ｔが所定の閾値よりも大きくて、例えば利用者に入力するなどの余裕を与えると判明したので、Ｓ９でタイマ加速度を１に設定すると共に加速度を表示し、Ｓ４に進む。一方、Ｓ２のＮＯの場合には、Ｓ３でタイマ加速度を実機に対する仮想計算機の性能比に対応する１／４に設定し（減速指示）、Ｓ４に進む。尚、複数ＣＰＵ（仮想計算機）の場合には、それぞれの仮想計算機の経過時間のうちの最小値が閾値よりも大きいか判別し、大きいときに加速度１を設定する。それ以外は仮想計算機の実機との性能比の加速度を設定する。
【００２３】
Ｓ４は、タイマ加速度を仮想タイマ制御装置へ設定する。これは、Ｓ１ないしＳ４、およびＳ９でタイマ加速度計算装置３がタイマ加速度を設定して仮想タイマ制御装置４に通知する。
【００２４】
Ｓ５は、タイマ加速度を加速度表示装置で表示する。
Ｓ６は、補正値＝経過時間／タイマ加速度で補正値を計算する。これは、例えば経過時間Ｔ／（１／４）＝経過時間Ｔ×４を補正値として計算する。これにより、実機上の経過時間Ｔが、実機に対する仮想計算機の性能比に対応する加速度で計算して補正後の経過時間を計算する。例えば加速度が１／４のときは、補正値＝４Ｔと計算する。
【００２５】
Ｓ７は、補正値をタイマ割り込み制御装置へ通知する。
Ｓ８は、補正された経過時間を経過後にタイマ割り込みを発生し、依頼元のソフトウェア１に通知する。
【００２６】
以上によって、仮想計算機上で動作するソフトウェア１が経過時間Ｔをタイマ割り込み制御装置２に通知して依頼し、タイマ加速度計算装置３が経過時間Ｔが例えば所定の閾値を越えたときに加速度１、それ以外のときに実機に対する仮想計算機の性能比（例えば１／４）を加速度と設定し、仮想タイマ制御装置４が設定された加速度をもとに補正後の経過時間を算出し、タイマ割り込み制御装置２が補正後の経過時間が依頼を受けた経過時間を越えたときにタイマ割り込みで依頼元のソフトウェア１に通知することが可能となる。これにより、経過時間Ｔが所定閾値を越えたときは実機上の経過時間と同一の時間（例えば待ち合わせ時間）を経過したときに割り込みで通知し、一方、経過時間Ｔが閾値よりも小さいときには実機と仮想計算機の性能比の加速度で経過時間を補正し、補正後の経過時間が依頼を受けた経過時間を越えたときに割り込みで通知する。以下具体例について順次詳細に説明する。
【００２７】
図３は、本発明の動作説明図を示す。
図３の（ａ）は、実機上の時間を示す。ここでは図示のように、Ｔｅ−Ｔｓ時間（＝ＷＡＩＴ時間）後にタイマ割り込みを設定する。
【００２８】
図３の（ｂ）は、仮想計算機上のソフトウェアの動作（本発明を適用しない場合）を示す。この場合には、図３の（ａ）の実機上の時間がタイマ加速度Ｉ／４に対応して全てが４倍に長くなっている。
【００２９】
図３の（ｃ）は、仮想計算機上のソフトウェアの動作（本発明を適用した場合）を示す。この場合には、
・ＡからＴｓまでは、タイマ加速度１／４で減速し、時間が４倍に長くなっている。
【００３０】
・ＴｓからＴｅまでのＷＡＩＴ時間は、（Ｔｅ−Ｔｓ）が閾値よりも大きかったのでタイマ加速度を１に変更（既述した図２のＳ２のＹＥＳ、Ｓ９）し、実機上と同一にする。
【００３１】
以上のように、本発明の図３の（ｃ）によれば、待ち合わせ時間（Ｔｅ−Ｔｓ＝ＷＡＩＴ）が閾値以上のときに加速度を１に設定して実機と同一の時間とし、それ以外は実機と仮想計算機の性能比の加速度を設定して補正した時間を計算して設定する。これにより、タイマ加速度を常に最適に自動的に変更することが可能となる。
【００３２】
図４は、本発明の他のシステム構成図を示す。これは、ＣＰＵ毎にタイマ割り込み制御装置（１）ないし（ｎ）を設けたときの構成図である。他は同じなので説明を省略する。
【００３３】
図４において、例えばＣＰＵ（１）のタイマ割り込み制御装置（１）は、当該ＣＰＵ（１）を使用する仮想計算機上で動作するソフトウェア１から経過時間Ｔを指定したタイマ割り込みの依頼に対応して、図１ないし図３で説明したように、経過時間Ｔをもとに加速度を設定（経過時間Ｔが閾値以上のときは加速度１、それ以外のときは仮想計算機の加速度に設定）し、設定された加速度をもとに補正後の経過時間を算出し、依頼を受けた経過時間Ｔを越えたときにタイマ割り込みで該当するＣＰＵ（１）に通知する。以下図５を用いて具体例について詳細に説明する。
【００３４】
図５は、本発明の他の動作説明図を示す。これは、ＣＰＵ０、ＣＰＵ１の２台のＣＰＵの場合を示す。
図５の（ａ）は、実機上のソフトウェアの動作を示す。
【００３５】
・ＣＰＵ０は、Ｔ０ｅ−Ｔ０ｓ時間後にＣＰＵ０にタイマ割り込みを図示のように設定する。
・ＣＰＵ１は、Ｔ１ｅ−Ｔ１ｓ時間後にＣＰＵ１にタイマ割り込みを図示のように設定する。
【００３６】
図５の（ｂ）は、仮想計算機上のソフトウェアの動作（本発明を適用しない場合）を示す。
・ＣＰＵ０は、加速度１／４であるので、図５の（ａ）のＣＰＵ０の実機に比して４倍の時間と全体がなっている。
【００３７】
・ＣＰＵ１は、加速度１／４であるので、図５の（ａ）のＣＰＵ１の実機に比して４倍の時間と全体がなっている。
図５の（ｃ）は、仮想計算機上のソフトウェアの動作（本発明を適用した場合）を示す。
【００３８】
・ＣＰＵ０は、加速度１／４である。
・ＣＰＵ１は、加速度１／４である。
ここで、Ｔ０ｓ〜Ｔ１ｓまでは、ＣＰＵ１がＷＡＩＴ処理を実施していないため、待ち合わせ時間の最小値が閾値を越えておらず、加速度は１／４のままである。また、仮想タイマが加速されるのは、両ＣＰＵ０、１がともにＷＡＩＴ処理を実施かつ最小値が閾値を越えたＴ１ｓ〜Ｔ０ｅまでの区間（時間）である。
【００３９】
以上によって、ＣＰＵ０とＣＰＵ１の経過時間の最小値が閾値を越えている場合に、その経過時間（Ｔ１ｓ−Ｔ０ｅ）は加速度１とし、それ以外は仮想計算機の加速度にして補正値を算出することにより、加速度を最適に変更し、長い待ち合わせ時間のみ実機上の待ち合わせ時間と同一にすることが可能となる。
【００４０】
【発明の効果】
以上説明したように、本発明によれば、ソフトウェア１を仮想計算機上でテストなどする際に仮想タイマを自動的に最適に加減速制御する構成を採用しているため、ソフトウェア１に対する修正やオペレータによる介入操作無しに、自動的に待ち合わせ時間Ｔを最適に加減速して容易にソフトウェアのテストなどを実施できる。これらにより、
（１）  実機と比較して仮想計算機の速度が遅い環境では、
・頻繁にタイマ割り込みが発生するような通常の状態では、性能比にしたがって自動的にタイマが減速され、実機上と同様の環境でソフトウェアを実行することが可能となる。
【００４１】
・一定時間以上、タイマ割り込みが発生しないような待ち合わせ処理を実行中は、自動的にタイマが加速され、待ち時間を実機上と同様の時間に短縮することが可能となる。
（２）  実機と比較して仮想計算機の速度が速い環境では、
・頻繁にタイマ割り込みが発生するような通常の状態では、性能比にしたがって自動的にタイマが加速され、単位時間内により多くの処理を実行することが可能となる。
【００４２】
・一定時間以上、タイマ割り込みが発生しないような待ち合わせ処理を実行中は、自動的にタイマが減速され、待ち時間を実機上と同様の時間に伸長することが可能となる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の動作説明フローチャートである。
【図３】本発明の動作説明図である。
【図４】本発明の他のシステム構成図である。
【図５】本発明の他の動作説明図である。
【図６】従来技術の説明図である。
【符号の説明】
１：ソフトウェア
２：タイマ割り込み制御装置
３：タイマ加速度計算装置
４：仮想タイマ制御装置
５：タイマ加速度表示装置
【図１】
0003898332.tif 000002
【図２】
0003898332.tif 000003
【図３】
0003898332.tif 000004
【図４】
0003898332.tif 000005
【図５】
0003898332.tif 000006
【図６】
0003898332.tif 000007