次に、本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る装置評価システムの構成を表すブロック構成図である。本発明の第1の実施形態に係る装置評価システムS1は、情報処理装置100と、ディスク装置200と、テープ装置300とを備える。
情報処理装置100は、サーバやワークステーション、パーソナルコンピュータなどのコンピュータ装置である。
ディスク装置200およびテープ装置300は、情報処理装置100に接続される周辺装置である。
ディスク装置200は、ハードディスクドライブ装置である。
テープ装置300は、磁気テープ媒体に対するデータの書き込みおよび読み取りを行う装置である。
以降の説明においては、見た目上の動作速度を速くする対象の周辺装置を「評価対象装置」と称する。本発明の実施形態においては、テープ装置300を評価対象装置とし、ディスク装置200を評価対象外の装置とする。なお、本発明においては、評価対象装置は装置の種類には依存しない。すなわち、評価対象装置および評価対象外の装置のいずれにおいても、装置の種類はテープ装置あるいはディスク装置に限らず、何であってもよい。
第1の実施形態における装置評価装置Sにおいては、情報処理装置100で動作する、評価対象装置を使用する全てのアプリケーションソフトウェアの動作速度を遅くすることにより、相対的に、アプリケーションソフトウェアから見た評価対象装置の見た目上の動作速度を高速化する。このことにより、評価対象装置を、I/Oが高速化された新装置と見なして擬似的な評価を行うことが可能になる。アプリケーションソフトウェアは、通常、オペレーティングシステムのようにシステム空間で動作する「システムプロセス」ではなく、ユーザ空間で動作する「ユーザプロセス」である。コンピュータで動作するアプリケーションソフトウェアの動作速度を遅くするということは、言い換えると、コンピュータで動作する全てのユーザプロセスの動作速度を遅くすると言うことである。
情報処理装置100は、ディスク装置使用プロセス110と、テープ装置使用プロセス120と、動作倍率定義表130と、遅延対象外プロセス一覧表140と、オペレーティングシステム150と、ハードウェア時計160とを備える。
ディスク装置使用プロセス110およびテープ装置使用プロセス120は、プロセスと呼ばれることもある。
ディスク装置使用プロセス110は、ディスク装置200への非同期I/Oを発行するユーザプロセスである。
テープ装置使用プロセス120は、テープ装置300への非同期I/Oを発行するユーザプロセスである。
ディスク装置使用プロセス110およびテープ装置使用プロセス120は、オペレーティングシステムのシステムコールを呼び出すことにより、周辺装置へのI/O発行要求を行う。ディスク装置使用プロセス110およびテープ装置使用プロセス120は、プロセス間通信や共有メモリ,SOCKET通信,セマフォなどによってお互いに連携して動作する。
図2は、動作倍率定義表130の内容を示す図である。動作倍率定義表130は、評価対象装置(ここではテープ装置300)がより高速なI/O速度を有する新装置に置換される際に、新装置ではどの種類のI/Oが何倍高速化されるかを、新装置の仕様に従って事前に定義する表である。動作倍率定義表130は、評価対象装置を表わす対象装置と、装置に対するI/Oの種別と、これら評価対象装置およびI/O種別に対応する動作倍率とを含む。なお、図2の「テープ装置」とは、テープ装置300を表わしている。
図3は、遅延対象外プロセス一覧表140の内容を示す図である。遅延対象外プロセス一覧表140は、例外的に動作速度を遅くさせないユーザプロセスがある場合に、このようなプロセス(遅延対象外プロセス)の一覧を事前に定義する表である。遅延対象外プロセスの例としては、ネットワーク経由で外部システムと連携して処理を行うプロセスなどが挙げられる。すなわち、動作速度を遅くすることによる不具合(例えば、外部システム側の処理のタイムアウト)を回避する必要があるプロセスなどである。図3を参照すると、遅延対象外プロセス一覧表140は、プロセスを識別するための情報として、プロセスID(IDentifier)を使用している。
オペレーティングシステム150は、情報処理装置100で動作するオペレーティングシステムである。
ハードウェア時計160は、情報処理装置100のハードウェアに実装された時計である。ハードウェア時計160は、ソフトウェアのタイマ管理において使用されるために、一定時間間隔ごとにソフトウェア側に通知を行う。
オペレーティングシステム150は、ディスク装置用デバイスドライバ151と、テープ装置用デバイスドライバ152と、システムコール処理部153と、システムコール管理表154と、システムコール管理部155と、システムコール遅延部156と、動作速度遅延部157と、タイマ管理部158と、タイマ管理表159とを含む。
システムコール管理部155は、I/O管理部と呼ばれることもある。システムコール遅延部156は、I/O遅延部と呼ばれることもある。
システムコール処理部153は、ユーザプロセスから呼び出されたシステムコールを処理したり、応答結果を返却したりする機能を有する。システムコール処理部153は、オペレーティングシステム150の既存の機能であってもよい。
ディスク装置用デバイスドライバ151は、ユーザプロセスから呼び出されたI/Oシステムコールを受けてシステムコール処理部153がディスク装置200へI/Oを行う際に使用される。
テープ装置用デバイスドライバ152は、ユーザプロセスから呼び出されたI/Oシステムコールを受けてシステムコール処理部153がテープ装置300へI/Oを行う際に使用される。
システムコール管理部155は、ユーザプロセスとシステムコール処理部153との間で、I/O発行要求などのシステムコールの呼び出しや、I/O完了通知などのシステムコールの応答を検出する。この検出に応じて、システムコール管理部155は、速度調整の開始あるいは終了の通知を行う。
また、システムコール管理部155は、動作速度遅延部157に、速度調整の開始あるいは終了を通知する。また、システムコール管理部155は、動作速度遅延部157に、速度調整における動作倍率の変更を通知する。
また、システムコール管理部155は、システムコール遅延部156に、遅延対象時間と、動作倍率と、プロセスIDを通知する。
システムコール管理表154は、システムコール管理部155によって検出されたシステムコールに関する情報を記録する表である。図4は、システムコール管理表154の内容を示す図である。システムコール管理部155は、システムコール管理表154に、各システムコールを呼び出したプロセスIDと、システムコールの種別と、システムコールの開始時刻(呼び出し時の時刻)および終了時刻(応答時の時刻)とを記録する。図4を参照すると、ディスク装置からのread(読み込み)と、ディスク装置へのwrite(書き込み)と、テープ装置からのreadのI/Oを要求するシステムコールのエントリが記録されている。
システムコール管理表154に登録されている、完了済みのエントリ(終了時刻が登録されているエントリ)は、削除されてもよい。例えば、定期的に、システムコール管理表154に登録されている完了済みのエントリを削除する処理が実行されてもよい。
なお、オペレーティングシステム150によっては、システムコール管理表154と同等の情報を統計情報として保持している場合がある。このような場合、この保持されている情報がシステムコール管理表154の代わりに用いられてもよい。
動作速度遅延部157は、情報処理装置100で実行されるプロセスの動作速度を遅くする。動作速度遅延部157は、システムコール管理部155から速度調整の開始あるいは終了の通知を受けることに応じて、各ユーザプロセスの速度調整を開始あるいは終了する。また、動作速度遅延部157は、システムコール管理部155から動作倍率の変更の通知を受けることに応じて、各ユーザプロセスの速度調整における動作倍率を変更する。また、動作速度遅延部157は、各ユーザプロセスの速度調整の開始あるいは終了に合わせて、タイマ管理部158に対して速度調整の開始あるいは終了を通知する。さらに、動作速度遅延部157は、速度調整の開始時および動作倍率の変更時においては、動作倍率の通知もタイマ管理部158に対して行う。ユーザプロセスの速度調整においては、動作速度遅延部157は、CPU(Central Processing Unit)が有するステップ実行機能を使用することにより、各ユーザプロセスの命令を実行するごとに例外を発生させる。このことにより、動作速度遅延部157は、ユーザプロセスの動作速度の遅延を行う。また、例外処理においては、NOP(No OPeration)命令を用いて任意の数の余分なステップを実行することにより、プロセスの実行速度を任意の倍率に調整する。ただし、動作速度遅延部157は、遅延対象外プロセス一覧表140に定義されているユーザプロセスに対しては速度調整を行わない。
動作速度遅延部157がユーザプロセスの動作速度を遅くすることにより、ユーザプロセスに対する、評価対象装置の見た目上の動作速度が相対的に速くなる。
システムコール遅延部156は、システムコール管理部155から遅延対象時間と、動作倍率と、プロセスIDの通知を受けると、通知を待ち合わせる時間を算出する。そして、システムコール遅延部156は、この算出した時間の間待ち合わせた後、通知されたプロセスIDが示すプロセスに対し、システムコール管理部155が検出したシステムコール(I/O完了通知)を通知する。上述の通知を待ち合わせる時間は、例えば、通知された遅延対象時間と動作倍率を掛け合わせることによって算出されてもよい。
速度調整中において、システムコール遅延部156が評価対象外装置からのI/O完了通知を遅延させることにより、ユーザプロセスの動作速度が遅くなったために評価対象外装置の見た目上の動作速度が速くなることが防止される。上述の通知を待ち合わせる時間は、評価対象外装置のユーザプロセスに対する相対的な動作速度が速度調整を行わない場合と同じになるように算出される。
タイマ管理部158は、各プロセスが設定,使用するタイマを管理する。なお、タイマとは、残り時間が設定され、時間の経過につれて残り時間が減算されることにより、所定の時間経過を計測する機能を指す。タイマは、計時部と呼ばれることもある。具体的には、タイマ管理部158は、ハードウェア時計160からの割り込み処理によって定期的に呼び出されることにより、各プロセスが設定したタイマの残り時間を減算する。そして、速度調整中においては、速度調整の対象であるユーザプロセスのタイマの残り時間を減算する場合、ハードウェア時計160から時間を読み取る処理を動作倍率に基づいて定期的にスキップする。このスキップ処理により、タイマ管理部158は、速度調整の対象であるユーザプロセスのタイマの残り時間を減少させる速度を遅くする。すなわち、速度調整中においては、タイマ管理部158は、タイマの減算処理を遅延させる。ただし、タイマ管理部158は、遅延対象外プロセス一覧表140に定義されているユーザプロセスが設定したタイマについてはスキップ処理(タイマの減算処理の遅延)を行わない。
速度調整中において、タイマ管理部158が、ユーザプロセスのタイマの減算処理を速度調整の動作倍率に基づいて遅延させることにより、遅くなっているユーザプロセスの動作速度とタイマの減算処理の不整合(意図しないタイムアウトなど)が防止される。
タイマ管理表159は、タイマ管理表158が各プロセスのタイマを管理するために使用する表である。予め、タイマを設定する際には、各プロセスは、プロセスIDと、残り時間と、速度調整対象かどうかをタイマ管理表159に登録する。図7は、タイマ管理表159の内容を示す図である。タイマ管理表159は、設定されている各タイマについて、それぞれ、設定元のプロセスIDと、タイマの残り時間と、当該プロセスが速度調整の対象かどうか、を記録する。
図5は、システムコール管理部155の動作を表わすフローチャートである。以下、図5を参照して、システムコール管理部155がシステムコールの呼び出しあるいは応答を検出した場合の動作について説明する。
最初に、システムコール管理部155がシステムコールの呼び出しあるいは応答を検出する(ステップS501)。まず、システムコールの呼び出しであった場合(ステップS502において「呼び出し」)について説明する。
I/O要求などのシステムコールの呼び出しであった場合、システムコール管理部155は、システムコールを呼び出したプロセスが速度調整対象外かどうかを判定する(ステップS503)。具体的には、システムコール管理部155は、システムコールを呼び出したプロセスが遅延対象外プロセス一覧表に記載されているかどうか、すなわち遅延対象外プロセスであるかどうかを判定する。
システムコールを呼び出したプロセスが速度調整対象外であった場合(ステップS503において「YES」)、システムコール管理部155は、検出したシステムコールをシステムコール処理部153に通知し(ステップS509)、処理を終了する。
システムコールを呼び出したプロセスが速度調整対象外ではなかった場合、すなわち速度調整の対象であった場合(ステップS503において「NO」)、システムコール管理部155は、システムコール管理表154に新たなエントリを作成し、開始時刻(システムコール呼び出し時の時刻)を登録する(ステップS504)。また、システムコール管理部155は、システムコールを呼び出したプロセスIDと、システムコールの種別とを、開始時刻と併せて登録する。
次に、システムコール管理部155は、動作倍率定義表130を参照することにより、評価対象装置と、I/O種別毎の動作倍率の情報を取得する(ステップS505)。そして、システムコール管理部155は、速度調整が行われている最中であるかどうかを判定する(ステップS506)。この判定は、システムコール管理表154を参照し、評価対象装置に対して発行されたI/Oであり、かつ完了していないI/O(終了時刻が登録されていないエントリ)の有無を確認することによって行われてもよい。あるいは、この判定は、動作速度遅延部157に速度調整中であるかどうかを問い合わせることにより行ってもよい。
速度調整が行われている最中である場合(ステップS506において「YES」)、システムコール管理部155は、検出したシステムコールをシステムコール処理部153に通知し(ステップS509)、処理を終了する。
速度調整が行われている最中ではない場合(ステップS506において「NO」)、システムコール管理部155は、検出したシステムコールが評価対象装置に対するI/Oの発行であるかどうかを判定する(ステップS507)。この判定は、検出したシステムコールがI/Oの対象としている周辺装置が、動作倍率定義表130に評価対象装置として記載されているか否かを確認することによって行われてもよい。
検出したシステムコールが評価対象装置に対するI/Oの発行ではなかった場合(ステップS507において「NO」)、システムコール管理部155は、検出したシステムコールをシステムコール処理部153に通知し(ステップS509)、処理を終了する。
検出したシステムコールが評価対象装置に対するI/Oの発行であった場合(ステップS507において「YES」)、システムコール管理部155は、動作速度遅延部157に、速度調整の開始と、検出したシステムコールに対応する(システムコールがI/Oの対象とする装置とI/O種別に対応する)動作倍率を通知する(ステップS508)。それから、システムコール管理部155は、検出したシステムコールをシステムコール処理部153に通知し(ステップS509)、処理を終了する。
次に、システムコールの応答であった場合(ステップS502において「応答」)について説明する。
I/O完了通知などのシステムコールの応答であった場合、システムコール管理部155は、システムコール管理表154に未完了のエントリがあるかどうかを判定する(ステップS510)。なお、未完了のエントリとは、I/Oが完了していない、すなわち、システムコールの応答が検出されておらず、終了時刻が登録されていないエントリを指す。
システムコール管理表154に未完了のエントリが無い場合(ステップS510において「NO」)、システムコール管理部155は、検出したシステムコールを呼び出し元のユーザプロセスに通知し(ステップS521)、処理を終了する。
システムコール管理表154に未完了のエントリがある場合(ステップS510において「YES」)、システムコール管理部155は、検出したシステムコールに対応するシステムコール管理表154のエントリに終了時刻(システムコール応答時の時刻)を登録する(ステップS511)。
次に、システムコール管理部155は、速度調整が行われている最中であるかどうかを判定する(ステップS512)。
速度調整が行われている最中である場合(ステップS512において「YES」)、システムコール管理部155は、動作倍率定義表130を参照することにより、評価対象装置と、I/O種別毎の動作倍率の情報を取得する(ステップS513)。そして、システムコール管理部155は、検出したシステムコールが評価対象装置からのI/Oの完了通知であるかどうかを判定する(ステップS514)。この判定は、検出したシステムコールがI/Oの対象としている周辺装置が、動作倍率定義表130に評価対象装置として記載されているか否かを確認することによって行われてもよい。
検出したシステムコールが評価対象装置からのI/Oの完了通知である場合(ステップS514において「YES」)、システムコール管理部155は、評価対象装置への全I/Oが完了したかどうかを判定する(ステップS515)。この判定は、システムコール管理表154に、評価対象装置のエントリで終了時刻が登録されていないものが存在するか否かを確認することによって行われてもよい。
評価対象装置への全I/Oが完了した場合(ステップS515において「YES」)、システムコール管理部155は、動作速度遅延部157に速度調整の終了を通知する(ステップS516)。それから、システムコール管理部155は、検出したシステムコールを呼び出し元のユーザプロセスに通知し(ステップS521)、処理を終了する。
評価対象装置への全I/Oが完了していない場合(ステップS515において「NO」)、システムコール管理部155は、動作速度遅延部157に動作倍率の変更と、変更後の動作倍率を通知する(ステップS517)。具体的には、システムコール管理部155は、評価対象装置に対する、今回完了を受け付けたI/Oの次に処理されるI/Oを抽出し、このI/Oに対応する動作倍率を動作倍率の変更指示と共に動作速度遅延部157に通知する。今回完了を受け付けたI/Oの次に処理されるI/Oは、システムコール管理表154に登録されているエントリのうち、次の条件1〜3の全てを満たすエントリが示すI/Oが選ばれてもよい。条件1:評価対象装置へのI/Oを要求するシステムコールのエントリである。条件2:終了時刻が登録されていない。条件3:左記の条件1および2を満たし、かつ、最も開始時刻が早い。システムコール管理部155は、このようにして選ばれたエントリのシステムコールに対応する(システムコールがI/Oの対象とする装置とI/O種別に対応する)動作倍率への変更を動作速度遅延部157に通知する。それから、システムコール管理部155は、検出したシステムコールを呼び出し元のユーザプロセスに通知し(ステップS521)、処理を終了する。
速度調整が行われている最中ではない場合(ステップS512において「NO」)、あるいは、検出したシステムコールが評価対象装置からのI/Oの完了通知ではない場合(ステップS514において「NO」)、システムコール管理部155は、システムコール管理表に基づいて遅延対象時間を算出する(ステップS518)。遅延対象時間は、評価対象外の装置の見た目上の動作速度が速くならないように、システムコールに対する評価対象外の装置の応答を調整(遅延)する際に使用される。
図6は、速度調整開始から終了までの期間と、システムコールの開始から終了(I/Oの発行から完了)までの期間と、遅延対象時間の関係を説明する図である。この図は、横方向が時間軸を表わしており、「速度調整中」と付記された矢印が速度調整の開始から終了までを表わす。そして、「速度調整中」と付記された矢印の左端に接する縦方向の点線が速度調整の開始を表わし、右端に接する縦方向の点線が速度調整の終了を表わす。また、「システムコール」と付記された矢印がシステムコールの開始(呼び出し)から終了(応答)までを表わす。システムコール管理部155は、システムコールの開始から終了までの間で、速度調整が行われていた部分の期間を、そのシステムコールの遅延対象時間として算出する。
検出したシステムコールに遅延対象時間が存在しない場合(ステップS519において「NO」)、システムコール管理部155は、検出したシステムコールを呼び出し元のユーザプロセスに通知し(ステップS521)、処理を終了する。
検出したシステムコールに遅延対象時間が存在する場合(ステップS519において「YES」)、システムコール管理部155は、遅延対象時間と、遅延対象時間における速度調整の動作倍率と、システムコールを呼び出したプロセスIDを、システムコール遅延部156に通知し(ステップS520)、処理を終了する。
図8〜10は、動作速度遅延部157の動作を表わすフローチャートである。以下、図8〜10を参照して、動作速度遅延部157がシステムコール管理部155から通知を受けた場合の動作について説明する。
図8は、動作速度遅延部157がシステムコール管理部155から速度調整の開始の通知を受けた場合の動作を表わすフローチャートである。システムコール管理部155から速度調整の開始の通知を受けると、動作速度遅延部157は、遅延対象外プロセス一覧表を参照することにより、遅延対象外プロセスの一覧を取得する(ステップS801)。次に、動作速度遅延部157は、ユーザプロセスを1件抽出する(ステップS802)。
抽出したプロセスが遅延対象外プロセスではない場合(ステップS803において「NO」)、動作速度遅延部157は、この抽出したプロセスに対してステップ実行機能を有効化する(ステップS804)。具体的には、動作速度遅延部157は、CPUが有するステップ実行機能を使用して、このプロセスの命令を実行する毎に例外が発生するように設定する。そして、例外処理において、NOP命令を用いて余分なステップを実行することにより、このプロセスの実行速度を、システムコール管理部155から速度調整の開始の通知と共に通知された動作倍率に基づいた速度に調整する。
一方で、抽出したプロセスが遅延対象外プロセスである場合(ステップS803において「YES」)、ステップS804の処理は行われない。
全ユーザプロセスに対する処理が完了していない場合(ステップS805において「NO」)、処理はステップS802に戻り、まだ処理されていないユーザプロセスに対してステップS802〜S805の処理が行われる。一方で、全ユーザプロセスに対する処理が完了した場合(ステップS805において「YES」)、処理はステップS806に進む。
動作速度遅延部157は、タイマ管理部158に、速度調整の開始と、速度調整における動作倍率を通知し(ステップS806)、処理を終了する。
図9は、動作速度遅延部157がシステムコール管理部155から速度調整の終了の通知を受けた場合の動作を表わすフローチャートである。システムコール管理部155から速度調整の終了の通知を受けると、動作速度遅延部157は、遅延対象外プロセス一覧表を参照することにより、遅延対象外プロセスの一覧を取得する(ステップS901)。次に、動作速度遅延部157は、ユーザプロセスを1件抽出する(ステップS902)。
抽出したプロセスが遅延対象外プロセスではない場合(ステップS903において「NO」)、動作速度遅延部157は、この抽出したプロセスに対してステップ実行機能を無効化する(ステップS904)。具体的には、動作速度遅延部157は、CPUが有するステップ実行機能を使用して、このプロセスの命令を実行する毎に例外が発生しないように設定する。
一方で、抽出したプロセスが遅延対象外プロセスである場合(ステップS903において「YES」)、ステップS904の処理は行われない。
全ユーザプロセスに対する処理が完了していない場合(ステップS905において「NO」)、処理はステップS902に戻り、まだ処理されていないユーザプロセスに対してステップS902〜S905の処理が行われる。一方で、全ユーザプロセスに対する処理が完了した場合(ステップS905において「YES」)、処理はステップS906に進む。
動作速度遅延部157は、タイマ管理部158に、速度調整の終了を通知し(ステップS906)、処理を終了する。
図10は、動作速度遅延部157がシステムコール管理部155から速度調整における動作倍率の変更の通知を受けた場合の動作を表わすフローチャートである。システムコール管理部155から動作倍率の変更の通知を受けると、動作速度遅延部157は、遅延対象外プロセス一覧表を参照することにより、遅延対象外プロセスの一覧を取得する(ステップS1001)。次に、動作速度遅延部157は、ユーザプロセスを1件抽出する(ステップS1002)。
抽出したプロセスが遅延対象外プロセスではない場合(ステップS1003において「NO」)、動作速度遅延部157は、この抽出したプロセスに対して速度調整における動作倍率の変更を行う(ステップS1004)。具体的には、動作速度遅延部157は、CPUのステップ実行機能による例外処理において、このプロセスの実行速度を、システムコール管理部155から動作倍率の変更の通知と共に通知された変更後の動作倍率に基づいた速度に調整する。
一方で、抽出したプロセスが遅延対象外プロセスである場合(ステップS1003において「YES」)、ステップS1004の処理は行われない。
全ユーザプロセスに対する処理が完了していない場合(ステップS1005において「NO」)、処理はステップS1002に戻り、まだ処理されていないユーザプロセスに対してステップS1002〜S1005の処理が行われる。一方で、全ユーザプロセスに対する処理が完了した場合(ステップS1005において「YES」)、処理はステップS1006に進む。
動作速度遅延部157は、タイマ管理部158に、動作倍率の変更と、変更後の動作倍率を通知し(ステップS1006)、処理を終了する。
図11は、タイマ管理部158の動作を表わすフローチャートである。以下、図11を参照して、タイマ管理部158の動作について説明する。
タイマ管理部158は、ハードウェア時計160からの割り込み処理によって定期的に呼び出されることにより、各プロセスが設定したタイマの減算処理を開始する(ステップS1101)。
最初に、タイマ管理部158は、タイマを1件抽出する(ステップS1102)。
次に、速度調整が行われている最中ではない場合(ステップS1103において「NO」)、タイマ管理部158は、当該タイマの残り時間を減算する(ステップS1105)。
一方で、速度調整が行われている最中である場合(ステップS1103において「YES」)、タイマ管理部158は、当該タイマが速度調整対象かどうかを判定する(ステップS1104)。具体的には、この判定は、タイマ管理表159の当該タイマに対応するエントリを参照することによって行われてもよい。
当該タイマが速度調整対象ではない場合(ステップS1104において「NO」)、タイマ管理部158は、当該タイマの残り時間を減算する(ステップS1105)。一方で、当該タイマが速度調整対象である場合(ステップS1104において「YES」)、タイマ管理部158は、当該タイマの残り時間を減算する際に、動作速度遅延部157から通知された動作倍率に基づいて減算処理をスキップする(ステップS1106)。例えば、動作倍率が3倍である場合は、動作速度遅延部157は、3回に1回減算処理を行い、3回に2回は減算処理を行わない(スキップする)。
全タイマに対する処理が完了していない場合(ステップS1107において「NO」)、処理はステップS1102に戻り、まだ処理されていないタイマに対してステップS1102〜S1107の処理が行われる。一方で、全タイマに対する処理が完了した場合(ステップS1107において「YES」)、処理は終了する。
システムコール管理表154に登録されている、完了済みのエントリ(終了時刻が登録されているエントリ)は、定期的に削除されてもよい。
以上のように、本発明の第1の実施形態に係る装置評価システムS1は、評価対象装置の見た目上の動作速度を速くする。なぜならば、動作速度遅延部157が、ユーザプロセスの動作速度を遅くするからである。
また、本発明の第1の実施形態に係る装置評価システムS1は、評価に関係しない部分(機能や期間)への影響を抑えることができる。なぜならば、システムコール管理部155が、評価対象装置へのI/Oの開始に対応して速度調整を開始し、I/Oの完了に対応して速度調整を終了するからである。
また、本発明の第1の実施形態に係る装置評価システムS1は、評価対象外装置の見た目上の動作速度が速くなることを防止する。なぜならば、速度調整中においては、システムコール遅延部156が評価対象外装置からI/O要求元プロセスへのI/O完了通知を遅延させるからである。
また、本発明の第1の実施形態に係る装置評価システムS1は、遅くなっているユーザプロセスの動作速度とタイマの減算処理の不整合を防止する。なぜならば、速度調整中においては、タイマ管理部158が、ユーザプロセスのタイマの減算処理を速度調整の動作倍率に基づいて遅延させるからである。
上述のように、第1の実施形態においては、動作速度遅延部157が、ユーザプロセスの動作速度を遅くするために、CPUが有するステップ実行機能を使用した。しかしながら、本発明においては、ユーザプロセスの動作速度を遅くするための方法はこれに限定されず、以下で説明する第2〜第4の実施形態のように、様々な速度調整の手法を用いることができる。なお、これら第2〜第4の実施形態は、上述した第1の実施形態を基本とするものであり、第1の実施形態に追加した構成要素とその処理動作を除き、第1の実施形態と同じである。
[第2の実施形態]
次に、本発明の第2の実施の形態を説明する。以下の説明では、第1の実施形態と同様な構成については同一の参照番号を付与することにより、重複する説明を省略する。これは、第3および第4の実施形態の説明についても同様である。
図12は、本発明の第2の実施形態に係る装置評価システムの構成を表すブロック構成図である。本発明の第2の実施形態に係る装置評価システムS2は、図1の装置評価システムS1に加え、プロセスディスパッチ部1201と、命令置換部1202とを含む。
プロセスディスパッチ部1201は、オペレーティングシステムが有する、CPU資源のプロセスへの割り当て機能に手が加えられたものである。命令置換部1202は、ユーザプロセスの任意の命令をデバッグ用の割り込み命令に置き換え、割り込み発生時に元の命令に戻す。
第2の実施形態においては、動作速度を遅くする対象のユーザプロセスへ処理が切り替わる際毎に、プロセスディスパッチ部1201が命令置換部1202を呼び出す。そして、命令置換部1202が、該当プロセスが次に実行する命令を一時的にデバッグ用の割り込み命令に置き換えることで、割り込み処理を呼び出す。このことにより、第1の実施形態と同様にステップ実行を行うことが可能となる。
[第3の実施形態]
次に、本発明の第3の実施の形態を説明する。
図13は、本発明の第3の実施形態に係る装置評価システムの構成を表すブロック構成図である。本発明の第3の実施形態に係る装置評価システムS3は、図1の装置評価システムS1に加え、プロセスディスパッチ部1301と、メモリスワップアウト部1302とを含む。
プロセスディスパッチ部1301は、オペレーティングシステムが有する、CPU資源のプロセスへの割り当て機能に手が加えられたものである。メモリスワップアウト部1302は、ユーザプロセスが使用する物理メモリ上の全ての領域にダミーデータを読み込むことで、メモリのスワップアウトを発生させる。
第3の実施形態においては、ユーザプロセスの切り替えが発生する毎に、プロセスディスパッチ部1301がメモリスワップアウト部1302を呼び出し、メモリのスワップアウトを発生させる。その後、該当プロセスが次の命令を実行することにより、スワップインが発生する。すなわち、ユーザプロセスの切り替えが発生する毎に、スワップアウトとスワップインの処理が動作することにより、ユーザプロセスの動作速度を遅くすることが可能となる。
[第4の実施形態]
次に、本発明の第4の実施の形態を説明する。
図14は、本発明の第4の実施形態に係る装置評価システムの構成を表すブロック構成図である。本発明の第4の実施形態に係る装置評価システムS4は、図1の装置評価システムS1に加え、プロセスディスパッチ部1401を含む。
プロセスディスパッチ部1401は、オペレーティングシステムが有する、CPU資源のプロセスへの割り当て機能である。
第4の実施形態においては、動作速度遅延手段157が、プロセスディスパッチ部1401に動作倍率を通知する。そして、プロセスディスパッチ部1401が、ユーザプロセスに割り当てるCPU時間を動作倍率に合わせて減らすことで、ユーザプロセスの動作速度を遅くすることが可能となる。
具体的には、例えば、動作倍率が2倍である場合には、プロセスディスパッチ部1401が、該当プロセスに割り当てるCPU時間を1/2に設定する。また、本来なら該当プロセスが使用できる残りのCPU時間は、どのプロセスにも割り当てないようにする。このことにより、目的の動作速度を得ることができる。
[第5の実施形態]
次に、本発明の第5の実施の形態を説明する。
図15は、本発明の第5の実施形態に係る装置評価システムの構成を表すブロック構成図である。本発明の第5の実施形態に係る装置評価システムS5は、情報処理装置1000と、テープ装置3000とを備える。情報処理装置1000は、テープ装置使用プロセス1010と、システムコール管理部1020と、動作速度遅延部1030とを含む。
テープ装置3000は、評価対象装置と呼ばれることもある。テープ装置使用プロセス1010は、プロセスと呼ばれることもある。システムコール管理部1020は、I/O管理部と呼ばれることもある。
テープ装置3000は、情報処理装置1000に接続される。
テープ装置使用プロセス1010は、テープ装置3000へのI/Oを発行する。
システムコール管理部1020は、テープ装置使用プロセス1010からテープ装置3000へのI/Oの発行を検出するのに応じて、速度調整を開始する。
動作速度遅延部1030は、プロセスの動作速度を遅くする。上述の速度調整において、動作速度遅延部1030が、テープ装置使用プロセス1010の動作速度を遅くすることにより、テープ装置3000の見た目上の速度が向上する。
以上のように、本発明の第5の実施形態に係る装置評価システムS5は、評価対象装置の見た目上の動作速度を速くする。なぜならば、動作速度遅延部1030が、プロセスの動作速度を遅くするからである。
また、本発明の第5の実施形態に係る装置評価システムS5は、評価に関係しない部分(機能や期間)への影響を抑えることができる。なぜならば、システムコール管理部1020が、評価対象装置へのI/Oの開始に対応して速度調整を開始するからである。
図16は、コンピュータを構成する要素の例を表すブロック構成図である。図16のコンピュータ9000は、CPU9010と、RAM(Random Access Memory)9020と、ROM(Read Only Memory)9030と、ストレージ媒体9040と、通信インタフェース9050とを備えている。
前述した情報処理装置100および1000の構成要素は、プログラムがコンピュータ9000のCPU9010において実行されることにより実現されてもよい。具体的には、前述した図1あるいは12〜15に記載の構成要素である、ディスク装置使用プロセス110,テープ装置使用プロセス120,ディスク装置用デバイスドライバ151,テープ装置用デバイスドライバ152,システムコール処理部153,システムコール管理部155,システムコール遅延部156,動作速度遅延部157,タイマ管理部158,プロセスディスパッチ部1201と1301と1401,命令置換部1202およびメモリスワップアウト部1302は、CPU9010がROM9030あるいはハードディスクドライブ9040からプログラムを読み込み、読み込んだプログラムを、例えば図5および8〜11に示したフローチャートの手順の如くCPU9010が実行することにより実現されてもよい。そして、このような場合において、上述した実施形態を例に説明した本発明は、係るコンピュータプログラムを表わすコードあるいはそのコンピュータプログラムを表わすコードが格納されたコンピュータ読み取り可能な記憶媒体(例えばハードディスクドライブ9040や、不図示の着脱可能な磁気ディスク媒体,光学ディスク媒体やメモリカードなど)によって構成されると捉えることができる。
あるいは、ディスク装置使用プロセス110,テープ装置使用プロセス120,ディスク装置用デバイスドライバ151,テープ装置用デバイスドライバ152,システムコール処理部153,システムコール管理部155,システムコール遅延部156,動作速度遅延部157,タイマ管理部158,プロセスディスパッチ部1201と1301と1401,命令置換部1202およびメモリスワップアウト部1302は、専用のハードウェアで実現されてもよい。また、情報処理装置100および1000は、これら構成要素を備える専用のハードウェアであってもよい。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
評価対象装置が接続され、
前記評価対象装置へのI/Oを発行するプロセスと、
前記プロセスから前記評価対象装置へのI/Oの発行を検出するのに応じて速度調整を開始するI/O管理手段と、
前記プロセスの動作速度を遅くする動作速度遅延手段とを備え、
前記速度調整において、前記動作速度遅延手段が前記プロセスの動作速度を遅くすることにより、前記評価対象装置の見た目上の速度を向上させる情報処理装置。
(付記2)
評価対象外装置がさらに接続され、
前記情報処理装置は、I/O完了通知を遅延させるI/O遅延手段をさらに含み、
前記プロセスが前記評価対象外装置へのI/Oを発行し、
前記速度調整において、前記I/O遅延手段が前記評価対象外装置からのI/O完了通知を遅延させる付記1に記載の情報処理装置。
(付記3)
前記I/O管理手段が、前記評価対象装置からのI/O完了通知を検出するのに応じて、前記速度調整を終了し、
前記I/O遅延手段が、前記速度調整の開始から終了までの期間と、前記評価対象外装置へのI/Oの発行から完了までの期間に基づいて、前記評価対象外装置からのI/O完了通知を遅延させる付記1または2に記載の情報処理装置。
(付記4)
前記プロセスが使用する計時手段を管理するタイマ管理手段をさらに備え、
前記速度調整において、前記タイマ管理手段が前記計時手段の減算処理を遅延させる付記1乃至3のいずれかに記載の情報処理装置。
(付記5)
付記2乃至4のいずれかに記載の情報処理装置と、
前記評価対象装置と、
前記評価対象外装置とを備える装置評価システム。
(付記6)
プロセスが評価対象外装置へのI/Oを発行し、
前記プロセスから前記評価対象装置へのI/Oの発行を検出し、
速度調整を開始し、
前記速度調整において、前記プロセスの動作速度を遅くすることにより、前記評価対象装置の見た目上の速度を向上させる装置評価方法。
(付記7)
前記プロセスが評価対象外装置へのI/Oを発行し、
前記速度調整において、前記評価対象外装置からのI/O完了通知を遅延させる付記6に記載の装置評価方法。
(付記8)
前記評価対象装置からのI/O完了通知を検出し、
前記速度調整を終了し、
前記速度調整の開始から終了までの期間と、前記評価対象外装置へのI/Oの発行から完了までの期間に基づいて、前記評価対象外装置からのI/O完了通知を遅延させる付記6または7に記載の装置評価方法。
(付記9)
前記速度調整において、前記プロセスが使用する計時手段の減算処理を遅延させる付記6乃至8のいずれかに記載の装置評価方法。
(付記10)
コンピュータに、
プロセスから評価対象装置へのI/Oの発行を検出する処理と、
速度調整を開始する処理と、
前記速度調整において、前記プロセスの動作速度を遅くすることにより、前記評価対象装置の見た目上の速度を向上させる処理とを実行させるコンピュータプログラム。
(付記11)
コンピュータに、前記速度調整において、評価対象外装置からのI/O完了通知を遅延させる処理を実行させる付記10に記載のコンピュータプログラム。
(付記12)
コンピュータに、
前記評価対象装置からのI/O完了通知を検出する処理と、
前記速度調整を終了する処理と、
前記速度調整の開始から終了までの期間と、前記評価対象外装置へのI/Oの発行から完了までの期間に基づいて、前記評価対象外装置からのI/O完了通知を遅延させる処理とを実行させる付記10または11に記載のコンピュータプログラム。
(付記13)
コンピュータに、前記速度調整において、前記プロセスが使用する計時手段の減算処理を遅延させる処理を実行させる付記10乃至12のいずれかに記載のコンピュータプログラム。