(58)【調査した分野】(Int.Cl.,DB名)
前記描画制御部は、前記システム標準の描画の発生頻度が所定の頻度より多い状態にあり、かつ、前記CPU監視部が検出した前記CPUの負荷が所定の負荷より大きい状態にあると判定すると、前記表示画面の表示する前記画像を更新する頻度を抑制する状態に遷移し、当該状態にて、前記システム標準の描画の発生頻度が所定の頻度より少ない状態にあると判定すると、前記表示画面の表示する前記画像を更新する頻度の抑制を、前記CPUの負荷にかかわらず解除する状態に遷移する、ことを特徴とする請求項1に記載の情報処理装置。
前記描画制御部は、前記システム標準の描画の発生頻度が所定の頻度より多い状態にあり、かつ、前記CPU監視部が検出した前記CPUの負荷が所定の負荷より大きい状態にあると判定すると、前記表示画面の表示する前記画像を更新する頻度を抑制する状態に遷移し、当該状態にて、前記CPU監視部が検出した前記CPUの負荷が所定の負荷より小さい状態にあると判定すると、前記表示画面の表示する前記画像を更新する頻度の抑制を継続し、さらに、前記システム標準の描画の発生頻度が所定の頻度より少ない状態にあると判定すると、前記表示画面の表示する前記画像を更新する頻度の抑制を、前記CPUの負荷にかかわらず解除する状態に遷移する、ことを特徴とする請求項1に記載の情報処理装置。
【発明を実施するための形態】
【0016】
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の一実施形態における描画処理システムの機能構成を示す概略ブロック図である。同図において、描画処理システム1は、リモート接続環境におけるクライアントシステムであるクライアント装置11、リモート接続環境におけるサーバシステムであるサーバ装置12、および、クライアントの画面を表示する表示装置14を具備する。
クライアント装置11とサーバ装置12とは、通信ネットワークを介して、クライアント・サーバの接続手段であるリモート接続にて接続されている。そして、サーバ装置12は、リモート接続を用いてクライアント装置11に描画命令を送信する。
ここで、サーバ装置は、描画命令として、表示装置14が表示画面に表示する画像全体(以下、「全画面」と称する。また、全画面を示す画像データを、「全画面データ」と称する)のうちの更新部分を示すデータ(以下、「差分データ」と称する)を送信する。
【0017】
クライアント装置11は、描画監視部111と、描画制御部112と、CPU監視部113と、低負荷描画処理部114と、システム描画処理部115と、メインメモリ116と、VRAM(Video RAM(Random Access Memory))117とを具備する。
【0018】
メインメモリ116は、クライアント装置11の具備する記憶デバイスにて実現され、各種データを記憶する。特に、メインメモリ116は、画面イメージ(画面表示用の画像データ)を格納する。
VRAM117は、メインメモリ116が記憶している画面イメージの転送を受けることで表示装置14に画面表示を行わせる。
【0019】
描画監視部111は、クライアント装置11における描画の発生を監視する。具体的には、クライアント装置11がサーバ装置12からの描画命令を受信すると、システム描画処理部115が、システム標準の描画の描画情報を発生させる。そして、描画監視部111は、当該描画情報の発生を監視することで、描画処理の頻度を検出する。
CPU監視部113は、クライアント装置11におけるCPU使用率を監視する。このCPUは、少なくとも前記画像データを生成して前記表示画面に表示させる処理を実行する。具体的には、CPUは、低負荷描画処理部114としての描画処理や、システム描画処理部115としての描画処理など、各種処理を実行する。
【0020】
システム描画処理部115は、システム標準の描画処理を行う。具体的には、システム描画処理部115は、メインメモリ116の記憶している画像データ(全画面データ)を、クライアント装置11からの描画命令(差分データ)に従って更新する。そして、システム描画処理部115は、更新した画像データをVRAM117に転送することで、表示装置14の表示画面に、当該画像データの画像を表示させる。ここで、システム描画処理部115は、クライアント装置11がサーバ装置12から描画命令を受信し描画を行う毎(描画が発生する毎)に、メインメモリ116からVRAM117への画像データの転送を行う。
【0021】
低負荷描画処理部114は、描画命令に対応した画面イメージの更新およびメインメモリ116上の画面イメージのVRAM117への転送(描画処理)を、CPU負荷を軽減した方式で実行する。具体的には、低負荷描画処理部114は、システム描画処理部115と同様、クライアント装置11がサーバ装置12から描画命令を受信する毎に(システム描画処理部115がシステム標準の描画の描画情報を発生させる毎に)、システム描画処理部115に代わって、メインメモリ116の記憶している画像データを描画命令に従って更新する。一方、低負荷描画処理部114は、システム描画処理部115と異なり、更新した画像データを、一定周期毎にVRAM117に転送する。このように、低負荷描画処理部114は、メインメモリ116からVRAM117への画像データの転送処理の間引きを行う。
描画制御部112は、低負荷での描画の開始/休止を制御する。具体的には、描画制御部112は、低負荷描画処理部114による低負荷での描画処理と、システム描画処理部115によるシステム標準の描画処理との切替を行う。
【0022】
なお、クライアント装置11は、本発明における情報処理装置の一例に該当し、描画監視部111と、描画制御部112と、CPU監視部113と、低負荷描画処理部114とを具備する。
【0023】
次に、
図2〜
図6を参照して、描画処理システム1の動作について説明する。
図2は、低負荷描画処理部114が行う処理の手順を示すフローチャートである。低負荷描画処理部114は、クライアント装置11が起動して動作状態となると同図の処理を開始する。
同図の処理において、低負荷描画処理部114は、まず、低負荷描画を休止した状態で、描画制御部112からの低負荷描画の開始(低負荷描画開始)の通知を待ち受ける。具体的には、低負荷描画処理部114は、低負荷描画開始の通知を受けたか否かを判定する(ステップS101)。低負荷描画開始の通知を受けていないと判定した場合(ステップS101:いいえ)、ステップS101へ戻る。
【0024】
一方、低負荷描画開始の通知を受けたと判定した場合(ステップS101:はい)、低負荷描画処理部114は、システム描画処理部115におけるシステム標準の描画の発生の監視を開始する(ステップS102)。そして、低負荷描画処理部114は、描画実行周期を描画待ち時間として描画タイマーを始動させる(ステップS103)。ここで、描画実行周期とは、メインメモリ116が記憶している画面イメージをVRAM117に転送する周期である。描画実行周期は、例えば、ユーザなど描画処理システム1の管理者が任意に設定可能な定数として規定される。
【0025】
そして、低負荷描画処理部114は、システム描画処理部115がシステム標準の描画を発生させると、システム描画処理部115に代わってメインメモリ116上の画面イメージを逐次更新する(ステップS104)。具体的には、低負荷描画処理部114は、サーバ装置12からクライアント装置11への描画命令をシステム描画処理部115が取得すると、当該描画命令をシステム描画処理部115から取得し、システム描画処理部115に代わってメインメモリ116上の画面イメージを逐次更新する。
次に、低負荷描画処理部114は、ステップS103でカウントを開始してから描画待ち時間が経過したか否かを判定する(ステップS105)。描画待ち時間が経過していないと判定した場合(ステップS105:いいえ)、ステップS104へ戻る。
【0026】
一方、描画待ち時間が経過したと判定した場合(ステップS105:はい)、低負荷描画処理部114は、メインメモリ116が記憶する画面イメージをVRAM117へ転送する(ステップS106)。これにより、低負荷描画処理部114は、複数の描画命令で更新された画面のイメージを描画周期毎にメインメモリ116からVRAM117へ転送(画面表示)する。
【0027】
そして、低負荷描画処理部114は、描画制御部112から低負荷描画終了の通知を受けたか否かを判定する(ステップS107)。低負荷描画終了の通知を受けたと判定した場合(ステップS107:はい)、ステップS101へ戻る。一方、低負荷描画終了の通知を受けていないと判定した場合(ステップS107:いいえ)、ステップS104へ戻る。
【0028】
低負荷描画処理部114に低負荷描画を実行させることで、クライアント装置11は、メインメモリ116上の画面イメージをVRAM117へ転送する回数を削減する。すなわち、クライアント装置11は、メインメモリ116上の画面イメージのVRAM117への転送処理の間引きを行って、システム標準の描画処理において発生していたCPU使用率の上昇を緩和する。
【0029】
一方、CPU負荷および描画負荷(描画に起因するCPU負荷)が一定水準以下の場合、クライアント装置11は、低負荷描画を休止し、システム標準の描画処理を行う。なお、描画実行周期に関しては、CPUの負荷を軽減するとともに描画の不具合が発生しないレベルの描画実行周期に設定しておく。例えば、ユーザなど描画処理システム1の管理者が、描画処理システム1を使用してみて、描画実行周期の調整を行う。
【0030】
図3は、描画制御部112における状態遷移を示す状態遷移図である。
同図において、描画制御部112は、描画休止状態M11と、描画制御予備状態M12と、描画制御状態M13と、描画制御解除予備状態M14とを有する。描画休止状態M11と、描画制御予備状態M12とは、システム描画処理部115に描画を行わせる状態である。一方、描画制御状態M13と、描画制御解除予備状態M14とは、低負荷描画処理部114に描画を行わせる状態である。
【0031】
描画制御部112は、CPU負荷および描画負荷が一定水準以下の状況では、描画休止状態M11として、低負荷描画処理部114の低負荷での描画を休止させ、システム描画処理部115にシステム標準の描画を行わせる。
【0032】
そして、描画休止状態M11において描画監視部111から描画高負荷通知を受けると、描画制御部112は、描画制御予備状態M12に遷移する(遷移T111)。ここで、描画高負荷通知とは、描画負荷(描画に起因するCPU負荷)が一定水準以上であることの通知である。描画監視部111は、後述するように、クライアント装置11がサーバ装置12から描画命令を受信して発生する描画の頻度に基づいて、描画負荷が一定水準以上となっていることを検出(推定)して、描画高負荷通知を描画制御部112に出力する。
【0033】
この描画制御予備状態M12では、描画負荷が一定水準以上となっていることを描画監視部111が検出しているが、一方で、CPU監視部113は、CPU負荷一定水準以上を検出していない。すなわち、描画制御予備状態M12では、描画負荷が高くなっているものの、CPU負荷全体では比較的低負荷となっていると考えられる。そうすると、描画負荷を低減させる必要性は、まだ生じていないことになる。そこで、描画制御予備状態M12において、描画制御部112は、システム描画処理部115にシステム標準の描画を行わせる(継続させる)。
【0034】
描画制御予備状態M12において、描画監視部111から描画高負荷解除通知を受けた場合、描画制御部112は、描画休止状態M11に遷移する(遷移T121)。ここで、描画高負荷解除通知とは、描画負荷が一定水準以下であることの通知である。描画監視部111は、後述するように、クライアント装置11がサーバ装置12から描画命令を受信して発生する描画の頻度に基づいて、描画負荷が一定水準以下となっていることを検出(推定)して、描画高負荷解除通知を描画制御部112に出力する。
このように、描画制御予備状態M12において、描画監視部111から描画高負荷解除通知を受けた場合、CPU負荷および描画負荷が一定水準以下の状況にあると考えられる。そこで、描画制御部112は、上記のように描画休止状態M11に遷移する。
【0035】
一方、描画制御予備状態M12において、CPU監視部113からCPU高負荷通知を受けた場合、描画制御部112は、描画制御状態M13に遷移する(遷移T122)。
ここで、CPU高負荷通知とは、CPU負荷が一定水準以上であることの通知である。従って、CPU負荷と描画負荷とが共に一定水準以上にあることになる。特に、CPU高負荷通知は、CPU負荷を低減させることが少なくとも好ましい水準にあることを示す。
この場合、CPU負荷における描画負荷の割合が比較的大きく、描画負荷を低減させることで、CPU負荷の低減を期待し得る。そこで、描画制御部112は、システム描画処理部115のシステム標準の描画処理に代わり、低負荷描画処理部114に低負荷での描画処理を行わせる。これにより、描画負荷を低減し、ひいてはCPU負荷を低減できることが期待される。
【0036】
描画制御状態M13において、描画監視部111から描画高負荷解除通知を受けた場合、描画制御部112は、描画休止状態M11に遷移する(遷移T131)。
ここで、描画制御状態M13において、描画監視部111から描画高負荷解除通知を受けた場合、CPU負荷は高いが、描画負荷は比較的低い状態にあると考えられる。この場合、CPU負荷における描画負荷の割合は小さく、描画負荷を低減させてもCPU負荷の低減はほとんどないと思われる。そうすると、低負荷描画処理部114が低負荷での描画を行うメリットはほとんど無く、システム描画処理部115がシステム標準の描画を行ったほうが、描画処理システム1全体の処理として適切である(例えば、ユーザのストレスが小さい)と考えられる。
そこで、描画制御部112は、上記のように描画休止状態M11に遷移して、低負荷描画処理部114の低負荷での描画処理を休止させ、代わりにシステム描画処理部115にシステム標準での描画処理を行わせる。
【0037】
また、描画制御状態M13において、CPU監視部113からCPU高負荷解除通知を受けた場合、描画制御部112は、描画制御解除予備状態M14に遷移する(遷移T132)。
ここで、CPU高負荷解除通知は、CPU負荷が一定水準以下にあることの通知である。このことから、CPU負荷を低減させる必要がなくなったものとして、低負荷での描画を終了する制御も可能である。
【0038】
しかし、描画負荷は引き続き一定水準以上となっている。そうすると、例えばCPU負荷の変化が激しい場合、CPU監視部113が、CPU高負荷通知とCPU高負荷解除通知とを繰り返し出力し、描画制御部112は、低負荷での描画処理とシステム標準の描画処理とを頻繁に切り替えることになり得る。この低負荷での描画処理とシステム標準の描画処理との切替の際の処理に要するCPU負荷が比較的大きい場合、切替が頻発することでCPU負荷が上昇してしまう。
そこで、描画制御部112は、描画制御解除予備状態M14において、引き続きシステム描画処理部115にシステム標準の描画を行わせる。これにより、描画処理の切替の頻発を抑制することができる。
【0039】
描画制御解除予備状態M14において、CPU監視部113からCPU高負荷通知を受けた場合、描画制御部112は、描画制御状態M13に遷移する(遷移T142)。
ここで、描画制御解除予備状態M14において、CPU監視部113からCPU高負荷通知を受けた場合、CPU負荷と描画負荷とがいずれも高い状態にあると考えられる。そこで、描画制御部112は、描画制御状態M13に遷移して、引き続き低負荷描画処理部114に低負荷での描画を行わせる。
【0040】
一方、描画制御解除予備状態M14において、描画監視部111から描画高負荷解除通知を受けた場合、描画制御部112は、描画休止状態M11に遷移する(遷移T141)。
ここで、描画制御解除予備状態M14において、描画監視部111から描画高負荷解除通知を受けた場合、CPU負荷と描画負荷とがいずれも低い状態にあると考えられる。そこで、描画制御部112は、描画休止状態M11に遷移して、低負荷描画処理部114の低負荷での描画を休止させ、代わりに、システム描画処理部115にシステム標準の描画を行わせる。
【0041】
図4は、描画制御部112が行う処理の手順を示すフローチャートである。描画制御部112は、クライアント装置11が起動して動作状態となると同図の処理を開始する。
描画制御部112は、CPU負荷および描画負荷が一定水準以下の状況では、描画休止状態M11として、システム描画処理部115がシステム標準の描画を行う(ステップS201)。
【0042】
また、描画休止状態M11において、描画制御部112は、描画監視部111からの描画負荷増加の通知(描画高負荷通知)の有無を判定する(ステップS202)。描画監視部111より描画高負荷通知を受けていないと判定した場合(ステップS202:いいえ)、ステップS201へ戻り、描画休止状態M11を維持する。
一方、描画監視部111より描画高負荷通知を受けたと判定した場合(ステップS202:はい)、描画制御部112は、描画制御予備状態M12に遷移する(ステップS203、遷移T111)。描画制御予備状態M12において、描画制御部112は、システム描画処理部115の描画を継続させる。
【0043】
また、描画制御予備状態M12において、描画制御部112は、描画監視部111からの描画低負荷の通知(描画高負荷解除通知)の有無を判定する(ステップS204)。描画監視部111より描画高負荷解除通知を受けたと判定した場合(ステップS204:はい)、ステップS201へ戻る。この場合、描画制御部112は、ステップS201にて描画休止状態M11に遷移する(遷移T121)。
一方、描画監視部111より描画高負荷解除通知を受けていないと判定した場合(ステップS204:いいえ)、描画制御部112は、CPU監視部113からのCPU高負荷の通知(CPU高負荷通知)の有無を判定する(ステップS205)。
【0044】
CPU監視部113よりCPU高負荷通知を受けていないと判定した場合(ステップS205:いいえ)、ステップS203へ戻り、描画制御予備状態M12を維持する。
一方、CPU監視部113よりCPU高負荷通知を受けたと判定した場合(ステップS205:はい)、描画制御部112は、システム描画処理部115の描画を中止させるとともに、低負荷描画処理部114に低負荷描画の開始を通知(低負荷描画開始通知)して低負荷での描画を行わせる(ステップS206)。
そして、描画制御部112は、描画制御状態M13に遷移する(ステップS207、遷移T122)。描画制御状態M13において、描画制御部112は、低負荷描画処理部114に描画を行わせる。
【0045】
また、描画制御状態M13において、描画制御部112は、描画監視部111からの描画負高荷解除通知の有無を判定する(ステップS208)。描画監視部111より描画高負荷解除通知を受けたと判定した場合(ステップS208:はい)、描画制御部112は、システム描画処理部115によるシステム標準の描画に切り替えるとともに、低負荷描画処理部114に低負荷での描画の休止を通知(低負荷描画休止通知)して低負荷での描画を休止させる(ステップS213)。
その後、ステップS201へ戻る。この場合、描画制御部112は、ステップS201にて描画休止状態M11に遷移する(遷移T131)。
【0046】
一方、ステップS208において、描画監視部111より描画高負荷解除通知を受けていないと判定した場合(ステップS208:いいえ)、描画制御部112は、CPU監視部113からのCPU低負荷の通知(CPU高負荷解除通知)の有無を判定する(ステップS209)。CPU監視部113よりCPU高負荷解除通知を受けていないと判定した場合(ステップS209:いいえ)、ステップS207へ戻り、描画制御状態M13を維持する。
【0047】
一方、CPU監視部113よりCPU高負荷解除通知を受けたと判定した場合(ステップS209:はい)、描画制御部112は、描画制御解除予備状態M14に遷移する(ステップS210、遷移T132)。描画制御解除予備状態M14において、描画制御部112は、低負荷描画処理部114の描画を継続させる。
【0048】
また、描画制御解除予備状態M14において、描画制御部112は、描画監視部111からの描画高負荷解除通知の有無を判定する(ステップS211)。描画監視部111より描画高負荷解除通知を受けたと判定した場合(ステップS211:はい)、ステップS213へ進む。この場合、描画制御部112は、ステップS213の次のステップS201において、遷移T141にて描画休止状態M11に遷移する。
【0049】
一方、ステップS211において、描画監視部111より描画高負荷解除通知を受けていないと判定した場合(ステップS211:いいえ)、描画制御部112は、CPU監視部113からのCPU高負荷通知の有無を判定する(ステップS212)。CPU監視部113よりCPU高負荷通知を受けていないと判定した場合(ステップS212:いいえ)、ステップS210へ戻り、描画制御解除予備状態M14を維持する。
【0050】
一方、CPU監視部113よりCPU高負荷通知を受けたと判定した場合(ステップS212:はい)、ステップS207へ戻る。この場合、描画制御部112は、ステップS207において、遷移T142にて描画制御状態M13に遷移する。
【0051】
図5は、CPU監視部113が行う処理の手順を示すフローチャートである。CPU監視部113は、クライアント装置11が起動して動作状態となると同図の処理を開始する。
同図の処理において、CPU監視部113は、まず、カウンタやフラグの初期化を行う(ステップS301)。具体的には、CPU監視部113は、CPU低負荷カウンタの値を0に設定(ゼロリセット)し、CPU高負荷カウンタの値を0に設定(ゼロリセット)し、CPU負荷フラグの値を低に設定する。
【0052】
次に、CPU監視部113は、CPU監視周期を待ち受けるためのCPU負荷監視タイマーを始動させる(ステップS302)。そして、CPU監視部113は、CPU負荷監視タイマーが満了したか否か、すなわち、CPU監視周期が経過したか否かを判定する(ステップS303)。
CPU負荷監視タイマーが満了していないと判定した場合(ステップS303:いいえ)、ステップS303へ戻る。すなわち、CPU監視部113は、CPU監視周期の経過を待ち受ける。
【0053】
一方、CPU負荷監視タイマーが満了したと判定した場合(ステップS303:はい)、CPU監視部113は、クライアント装置11のCPU使用率を取得する(ステップS304)。そして、CPU監視部113は、CPU使用率が閾値(CPU使用率制限値)を超えているか否かを判定する(ステップS305)。
【0054】
CPU使用率が閾値を超えていると判定した場合(ステップS305:はい)、CPU監視部113は、CPU低負荷カウンタの値を0に設定(ゼロリセット)する(ステップS306)。
また、CPU監視部113は、CPU負荷フラグの値が高か低かを判定する(ステップS307)。CPU負荷フラグの値が高であると判定した場合(ステップS307:高)、すなわち、既にCPU高負荷を通知済みの場合、ステップS302へ戻る。
【0055】
一方、CPU負荷フラグの値が低であると判定した場合(ステップS307:低)、CPU監視部113は、CPU高負荷カウンタの値を1増加させる(ステップS308)。
そして、CPU監視部113は、CPU高負荷カウンタの値がCPU高負荷周期数に達したか否かを判定する(ステップS309)、すなわち、CPU監視部113は、CPU使用率がCPU使用率制限値を越える状態が一定時間継続したか否かを判定する。なお、CPU使用率がCPU使用率制限値を越える状態が一定時間継続したことを、「CPU負荷>CPU高負荷指標」と表記する。
【0056】
CPU高負荷カウンタの値がCPU高負荷周期数に達していないと判定した場合(ステップS309:いいえ)、ステップS302へ戻る。
一方、CPU高負荷カウンタの値がCPU高負荷周期数に達したと判定した場合(ステップS309:はい)、CPU監視部113は、CPU負荷フラグの値を高に設定する(ステップS310)。また、CPU監視部113は、描画制御部112にCPU高負荷を通知(CPU高負荷通知)する(ステップS311)。
その後、ステップS302へ戻る。
【0057】
一方、ステップS305において、CPU使用率が閾値を超えていないと判定した場合(ステップS305:いいえ)、CPU監視部113は、CPU高負荷カウンタの値を0に設定(ゼロリセット)する(ステップS312)。
また、CPU監視部113は、CPU負荷フラグの値が高か低かを判定する(ステップS313)。CPU負荷フラグの値が低であると判定した場合(ステップS313:低)、すなわち、既にCPU高負荷解除を通知済みの場合、ステップS302へ戻る。
【0058】
一方、CPU負荷フラグの値が高であると判定した場合(ステップS313:高)、CPU監視部113は、CPU低負荷カウンタの値を1増加させる(ステップS314)。
そして、CPU監視部113は、CPU低負荷カウンタの値がCPU低負荷周期数に達したか否かを判定する(ステップS315)、すなわち、CPU監視部113は、CPU使用率がCPU使用率制限値を越えない状態が一定時間継続したか否かを判定する。なお、CPU使用率がCPU使用率制限値を越えない状態が一定時間継続したことを、「CPU負荷<CPU低負荷指標」と表記する。
【0059】
CPU低負荷カウンタの値がCPU低負荷周期数に達していないと判定した場合(ステップS315:いいえ)、ステップS302へ戻る。
一方、CPU低負荷カウンタの値がCPU低負荷周期数に達したと判定した場合(ステップS315:はい)、CPU監視部113は、CPU負荷フラグの値を低に設定する(ステップS316)。また、CPU監視部113は、描画制御部112にCPU負荷がCPU負荷指標を下回ったことを通知(CPU高負荷解除通知)する(ステップS317)。
その後、ステップS302へ戻る。
【0060】
なお、CPU使用率制限値、CPU監視周期、CPU高負荷周期数、CPU低負荷周期数に関しては、例えば、任意の値を設定可能としておき、描画処理システム1を運用した状態において、ユーザなど描画処理システム1の管理者が適切な値に調整する。
【0061】
図6は、描画監視部111が行う処理の手順を示すフローチャートである。描画監視部111は、クライアント装置11が起動して動作状態となると同図の処理を開始する。
同図の処理において、描画監視部111は、まず、カウンタやフラグの初期化を行う(ステップS401)。具体的には、描画監視部111は、描画低負荷カウンタの値を0に設定(ゼロリセット)し、描画高負荷カウンタの値を0に設定(ゼロリセット)し、描画負荷フラグの値を低に設定し、描画命令実行時刻の値を、現在時刻から所定の時間(描画実行周期)を減算した時刻に設定する。
【0062】
次に、描画監視部111は、システム標準の描画を検出したか否かを判定する(ステップS402)。具体的には、描画監視部111は、システム標準の描画の発生(描画処理の開始)の通知を受けたか否かを判定する。
システム標準の描画の発生を検出していないと判定した場合(ステップS302:いいえ)、ステップS402へ戻る。すなわち、描画監視部111は、システム標準の描画の発生を待ち受けることで、システム標準の描画の発生周期(描画命令の発生周期)を監視する。
【0063】
一方、システム標準の描画の発生を検出したと判定した場合(ステップS302:はい)、描画監視部111は、描画命令実行時刻として記憶している時刻を、前描画命令実行時刻として記憶する(ステップS403)。そして、描画監視部111は、現在時刻を描画実行時刻に更新する(ステップS404)。このように、描画監視部111は、描画命令の発生を検出したことに伴い、前描画命令実行事項(前回の描画命令を受けた時刻)と、描画命令実行時刻(最新の描画命令を受けた時刻)とを更新する。
【0064】
次に、描画監視部111は、描画命令実行時刻から前描画命令実行時刻を減算した時間が、所定の時間(描画実行周期)未満か否かを判定する(ステップS405)。すなわち、描画監視部111は、描画命令の発生周期が、判定閾値としての描画実行周期未満か否かを判定する。
描画命令の発生周期が描画実行周期未満であると判定した場合(ステップS405:はい)、描画監視部111は、描画低負荷カウンタの値を0に設定(ゼロリセット)する(ステップS406)。
また、描画監視部111は、描画負荷フラグの値が高か低かを判定する(ステップS407)。描画負荷フラグの値が高であると判定した場合(ステップS407:高)、すなわち、既に描画高負荷を通知済みの場合、ステップS402へ戻る。
【0065】
一方、描画負荷フラグの値が低であると判定した場合(ステップS407:低)、描画監視部111は、描画高負荷カウンタの値を1増加させる(ステップS408)。
そして、描画監視部111は、描画高負荷カウンタの値が描画高負荷周期数に達したか否かを判定する(ステップS409)。すなわち、描画監視部111は、描画命令の発生周期が閾値(描画実行周期)より短い状態が、一定期間(描画高負荷周期数)継続したか否かを判定する。なお、描画命令の発生周期が描画実行周期より短い状態が、描画高負荷周期数継続したことを、「描画負荷>描画高負荷指標」と表記する。
【0066】
描画高負荷カウンタの値が描画高負荷周期数に達していないと判定した場合(ステップS409:いいえ)、ステップS402へ戻る。
一方、描画高負荷カウンタの値が描画高負荷周期数に達したと判定した場合(ステップS409:はい)、描画監視部111は、描画負荷フラグの値を高に設定する(ステップS410)。また、描画監視部111は、描画制御部112に描画高負荷を通知(描画高負荷通知)する(ステップS411)。
その後、ステップS402へ戻る。
【0067】
一方、ステップS405において、描画命令の発生周期が描画実行周期以上であると判定した場合(ステップS405:いいえ)、描画監視部111は、描画高負荷カウンタの値を0に設定(ゼロリセット)する(ステップS412)。
また、描画監視部111は、描画負荷フラグの値が高か低かを判定する(ステップS413)。描画負荷フラグの値が低であると判定した場合(ステップS413:低)、すなわち、既に描画高負荷解除を通知済みの場合、ステップS402へ戻る。
【0068】
一方、描画負荷フラグの値が高であると判定した場合(ステップS413:高)、描画監視部111は、描画低負荷カウンタの値を1増加させる(ステップS414)。
そして、描画監視部111は、描画低負荷カウンタの値が描画低負荷周期数に達したか否かを判定する(ステップS415)。すなわち、描画監視部111は、描画命令の発生周期が閾値(描画実行周期)より長い状態が、一定期間(描画低負荷周期数)継続したか否かを判定する。なお、描画命令の発生周期が描画実行周期より長い状態が、描画低負荷周期数継続したことを、「描画負荷<描画低負荷指標」と表記する。
【0069】
描画低負荷カウンタの値が描画低負荷周期数に達していないと判定した場合(ステップS415:いいえ)、ステップS402へ戻る。
一方、描画低負荷カウンタの値が描画低負荷周期数に達したと判定した場合(ステップS415:はい)、描画監視部111は、描画負荷フラグの値を低に設定する(ステップS416)。また、描画監視部111は、描画制御部112に描画負荷が描画負荷指標を下回ったことを通知(描画高負荷解除通知)する(ステップS417)。
その後、ステップS302へ戻る。
【0070】
なお、描画実行周期、描画高負荷周期数、描画低負荷周期数に関しては、例えば、任意の値を設定可能としておき、描画処理システム1を運用した状態において、ユーザなど描画処理システム1の管理者が適切な値に調整する。
【0071】
次に、
図7〜
図10を参照して、描画処理システム1の動作の例について説明する。
図7は、描画制御部112が描画休止状態M11から描画制御予備状態M12に遷移し、さらに描画制御状態M13、描画制御解除予備状態M14に遷移して描画休止状態M11に戻る例を示すシーケンス図である。
同図に示すメインメモリ116は、
図1を参照して説明したように、低負荷描画処理部114やシステム描画処理部115が画面イメージを展開し画面更新を実行する対象となるメインメモリである。またVRAM117は、低負荷描画処理部114やシステム描画処理部115がメインメモリ116上の画面イメージを転送することで表示装置14に画面表示を行わせる対象となるVRAMである。
【0072】
図7において、シーケンスS501〜S502では、描画命令が連続して発生し始めた状態にある。ここでは、描画制御部112は描画休止状態M11にあり、描画命令の発生周期が描画実行周期を超えるのを待ち受ける。
そして、描画周期が描画実行周期より短い状況が一定期間継続(描画負荷>描画高負荷指標)すると(シーケンスS502)、描画負荷がCPU負荷の要因となる可能性があるため、描画制御部112は、描画休止状態M11から描画制御予備状態M12に遷移する。シーケンスS502〜シーケンスS503では、描画制御部112は描画制御予備状態M12にある。
【0073】
描画制御予備状態M12において、CPU使用率がCPU使用率制限値を超える状態が一定期間継続(CPU負荷>CPU高負荷指標)した場合、描画負荷がCPU高負荷の要因と考えられる。そこで、描画制御部112は、低負荷描画処理部114に低負荷での描画処理を開始させ、描画制御予備状態M12から描画制御状態M13に遷移する。シーケンスS503〜S504では、描画制御部112は描画制御状態M13にあり、低負荷描画処理部114に低負荷での描画処理を行わせる。
【0074】
この描画制御状態M13では、低負荷描画処理部114は、描画命令が発生する毎に、メインメモリ116の記憶する画面イメージへの描画を逐次実施する。一方、VRAM117への画面イメージの転送については、低負荷描画処理部114は、いくつかの転送を間引いた状態で描画実行周期毎に行う。これにより、CPU負荷の要因である画面イメージのVRAM117への転送回数を低減でき、描画に起因するCPU使用率の上昇を緩和させることができる。
【0075】
描画制御状態M13において、CPU使用率がCPU使用率制限値を下回る状態が一定時間継続(CPU負荷<CPU高負荷指標)した場合(シーケンスS504)、低負荷描画処理部114が低負荷での描画処理を行った効果としてCPU使用率の上昇が緩和されたと考えられる。そこで、描画制御部112は、描画制御状態M13から描画制御解除予備状態M14に遷移する。シーケンスS504〜S505では、描画制御部112は描画制御解除予備状態M14にある。
この描画制御解除予備状態M14では、描画制御部112は、低負荷描画処理部114に低負荷での描画処理を継続させながら、CPU負荷および描画負荷が通常レベルまで回復するのを待つ。
【0076】
描画制御解除予備状態M14において、描画周期が描画実行周期より長い状況が一定期間継続(描画負荷<描画低負荷指標)した場合(シーケンスS505)、CPU負荷、描画負荷ともに比較的低い状態で安定していることになる。この場合、システム描画処理部115がシステム標準の描画処理を行っても、CPU高負荷の状態にはならないと考えられる。そこで、描画制御部112は、描画制御解除予備状態M14から描画休止状態M11に遷移し、低負荷描画処理部114の低負荷での描画処理を休止させ、システム描画処理部115でのシステム標準の描画処理に切り替える。シーケンスS505〜S506では、描画制御部112は、描画休止状態M11にある。
【0077】
このように、描画休止状態M11では、描画命令の発生する周期が通常レベルに戻った状態にあり、低負荷描画処理部114の低負荷での描画に代わって、システム描画処理部115が、システム標準の描画を行う。システム描画処理部115は、システム標準の描画において、画面イメージのVRAM117への転送を逐次行う。
【0078】
図8は、描画制御部112が描画制御解除予備状態M14から描画制御状態M13への遷移T142を行う例を示すシーケンス図である。
同図に示すメインメモリ116およびVRAM117は、
図1や
図7に示すものと同一である。
【0079】
図8において、シーケンスS601〜S605の、描画休止状態M11から描画制御解除予備状態M14までの遷移は、
図7のシーケンスS501〜S505の場合と同様である。
一方、シーケンスS605では、
図7のシーケンスS505の場合と異なり、CPU負荷の変動が激しく、再びCPU負荷がCPU高負荷制限値を超えている(CPU負荷>CPU高負荷指標)。この場合、描画制御部112は、描画制御解除予備状態M14から描画制御状態M13に遷移する。シーケンスS605〜S606では、描画制御部112は、描画制御状態M13にある。
【0080】
その後、再びCPU負荷がCPU高負荷制限値より低い状態が一定時間継続した場合(CPU負荷<CPU高負荷指標、シーケンスS606)、描画制御部112は、描画制御状態M13から描画制御解除予備状態M14へ遷移する。シーケンスS606〜S607では、描画制御部112は、描画制御解除予備状態M14にある。
【0081】
このように、CPU負荷が安定しない状態では、描画制御部112は、描画制御状態M13と描画制御解除予備状態M14との遷移を繰り返して、低負荷描画処理部114に低負荷での描画を継続させながら、描画負荷およびCPU負荷の安定した回復を待つ。
【0082】
図9は、描画制御部112が描画制御状態M13から描画休止状態M11への遷移T131を行う例を示すシーケンス図である。
同図に示すメインメモリ116およびVRAM117は、
図1や
図7に示すものと同一である。
【0083】
図9において、シーケンスS701〜S704の、描画休止状態M11から描画制御状態M13までの遷移は、
図7のシーケンスS501〜S504の場合と同様である。
一方、シーケンスS704では、
図7のシーケンスS504の場合と異なり、描画周期が描画実行周期を下回る状態が一定時間継続(「描画負荷<描画負荷指標」)している。この場合、CPU負荷において描画負荷が要因となっている割合は小さく、低負荷描画処理部114に低負荷での描画処理を行わせてもCPU負荷はほとんど変わらないと考えられる。そうすると、画面更新頻度を低減させた描画処理を低負荷描画処理部114に行わせるよりも、システム描画処理部115がシステム標準の描画を行うようにして画面更新頻度を確保したほうが、描画処理システム1全体の処理として良好であると考えられる。すなわち、表示装置14の画面表示の更新頻度を低減させてもCPU負荷はほとんど低減しないので、通常の更新頻度で画面表示を更新したほうが、ユーザのストレスが小さいと考えられる。
【0084】
そこで、シーケンスS704において、描画制御部112は、描画制御状態M13から描画休止状態M11に遷移する。シーケンスS704〜S705では、描画制御部112は、描画休止状態M11にある。
描画休止状態M11では、描画制御部112は、低負荷描画処理部114の低負荷での描画を休止させ、代わってシステム描画処理部115が、システム標準の描画を行う。そして、描画制御部112は、再び描画命令の発生状況が描画高負荷制限値を超えるまで待機する。
【0085】
このように、CPU負荷が高い状態にある場合、描画制御部112は、描画の負荷状況に基づいて、低負荷描画処理部114に低負荷での描画を行わせるか、システム描画処理部115がシステム標準の描画を行うようにするかを判定する。これにより、低負荷描画処理部114に低負荷での描画を行わせてもCPU負荷の緩和に有効でない状況であれば、描画制御部112は、システムによる描画を継続しながら、CPU負荷が通常レベルに回復するか、あるいは描画負荷が高い状態となるのを待つ。
【0086】
図10は、描画制御部112が描画制御予備状態M12から描画休止状態M11への遷移T121を行う例を示すシーケンス図である。
同図に示すメインメモリ116およびVRAM117は、
図1や
図7に示すものと同一である。
【0087】
図10において、シーケンスS801〜S803の、描画休止状態M11から描画制御予備状態M12までの遷移は、
図7のシーケンスS501〜S503の場合と同様である。具体的には、シーケンスS801〜S802では、描画命令が連続して発生し始めた状態にある。ここでは、描画制御部112は描画休止状態M11にあり、描画命令の発生周期が描画実行周期を超えるまで待機する。
【0088】
そして、描画周期が描画実行周期より短い状況が一定期間継続(描画負荷>描画高負荷指標)すると(シーケンスS802)、描画負荷がCPU負荷の要因となる可能性があるため、描画制御部112は、描画休止状態M11から描画制御予備状態M12に遷移する。シーケンスS802〜シーケンスS803では、描画制御部112は描画制御予備状態M12にある。
【0089】
一方、シーケンスS803では、
図7のシーケンスS503の場合と異なり、描画周期が描画実行周期より長い状況が一定期間継続(描画負荷<描画低負荷指標)している。この場合、システム描画処理部115がシステム標準の描画処理を行っても、描画負荷が要因でCPU高負荷の状態にはならないと期待し得る。
そこで、描画制御部112は、描画制御予備状態M12から描画休止状態M11に遷移する。シーケンスS803〜S804では、描画制御部112は、描画休止状態M11にある。
【0090】
描画休止状態M11では、描画制御予備状態M12に引き続き、描画制御部112は、システム描画処理部115のシステム標準の描画処理を継続し、低負荷描画処理部114の低負荷での描画処理を休止させる。そして、描画制御部112は、再び描画命令の発生状況が描画高負荷制限値を超えるまで待機する(描画休止状態M11を維持する)。
【0091】
このように、描画処理システム1では、低負荷描画処理部114に低負荷での描画を開始させるまでに、描画およびCPUの負荷傾向を監視する期間が設けられている。これにより、描画周期が短い状態であってもCPU負荷上昇の原因となっていない場合は、システム描画処理部115にシステム標準の描画処理を継続させて安定した描画状態を維持することができる。
【0092】
以上のように、描画監視部111は、システム標準の描画が発生した頻度を検出し、CPU監視部113が、低負荷描画処理部114およびシステム描画処理部115としての処理を行うCPUの負荷を検出する。そして、描画制御部112は、描画監視部111の検出した、システム標準の描画が発生した頻度と、CPU監視部113が検出したCPUの負荷とに基づいて、表示装置14の具備する表示画面の表示する画像に対する低負荷描画処理部114による更新タイミングの制御(具体的には、VRAM117への画像データ転送の間引き)の有無を切り替える。
これにより、処理対象を予め指定しておく必要無しに、より効率的に描画負荷を軽減させることができる。
【0093】
ここで、低負荷描画処理部114は、全画面イメージのVRAM117への転送回数を低減する(間引く)ことでCPU負荷を軽減し得る。
もっとも、描画負荷(描画処理に起因するCPU負荷)が小さい状態では、全画面イメージのVRAM117への転送回数を間引いても、CPU負荷の軽減効果をほとんど得られないおそれがある。
【0094】
そこで、クライアント装置11は、描画命令とCPU負荷の両方を監視することで、描画に起因するCPU負荷の上昇を識別することができ、他の原因でCPU負荷が増大した場合には、システム標準の描画を継続する。
これにより、クライアント装置11(描画制御部112)は、描画負荷の低減にてCPU負荷を低減可能な場合は、低負荷描画処理部114に低負荷での描画を行わせることで、CPU負荷を低減させる。一方、描画負荷を低減させてもCPU負荷をほとんど低減させられない場合には、クライアント装置11(描画制御部112)は、システム描画処理部115がシステム標準の描画を行うようにして、描画品質の安定性を高めることができる。
このように、クライアント装置11は、より効率的に(すなわち、CPU負荷低減の効果を得られる場合に限定して)描画負荷を軽減させることができる。また、クライアント装置11では、例えばVRAM117への画面イメージの転送を抑制する描画命令を指定しておくなど、処理対象を予め指定しておく必要が無い。
【0095】
また、描画制御部112は、システム標準の描画が発生した頻度が所定の頻度より多い状態にあり、かつ、CPU監視部113が検出したCPUの負荷が所定の負荷より大きい状態にあると判定すると、表示画面の表示する画像の更新頻度を低負荷描画処理部114に抑制させる状態(描画制御状態M13)に遷移する。そして、当該状態にて、システム標準の描画が発生した頻度が所定の頻度より少ない状態にあると判定すると、描画制御部112は、表示画面の表示する画像をシステム描画処理部115が更新する頻度の抑制を解除する状態(描画休止状態M11)に遷移する(遷移T131)。すなわち、遷移T131では、描画制御部112は、低負荷描画処理部114を休止させ、システム描画処理部115に描画処理を切り替える。
これにより、CPU負荷が高い場合でも、描画負荷が低いため描画負荷を低減させてもCPU負荷の低減効果が限定的である場合には、描画負荷の低減を行わずに(システム描画処理部115にシステム標準の描画を行わせて)、描画の安定性を得ることができる。
【0096】
また、描画制御部112は、システム標準の描画が発生した頻度が所定の頻度より多い状態にあり、かつ、CPU監視部113が検出したCPUの負荷が所定の負荷より大きい状態にあると判定すると、表示画面の表示する画像をシステム描画処理部115が更新する頻度を抑制する状態(描画制御状態M13)に遷移する。具体的には、システム標準の描画が発生する毎に、システム描画処理部115に代わって低負荷描画処理部114に描画を行わせることで、メインメモリ116からVRAM117への画面イメージの転送の間引きを行わせる。そして、当該状態にて、CPU監視部113が検出したCPUの負荷が所定の負荷より小さい状態にあると判定すると、表示画面の表示する画像をシステム描画処理部115が更新する頻度の抑制を継続する(描画制御解除予備状態M14)。さらに、システム標準の描画が発生した頻度が所定の頻度より少ない状態にあると判定すると、描画制御部112は、表示画面の表示する画像をシステム描画処理部115が更新する頻度の抑制を解除する状態(描画休止状態M11)に遷移する。
このように、描画制御部112は、描画負荷が高くCPU負荷の低い状態では、低負荷描画処理部114に低負荷での描画を継続させるので、描画負荷が高い状態でCPU負荷の変動が大きい場合にも、低負荷描画処理部114による処理とシステム描画処理部115による処理との切替の頻発を防止し得る。これにより、当該切替の頻発のためにCPU負荷が上昇することを防止し得る。
【0097】
次に、
図11を参照して、クライアント装置11における本発明の最小構成について説明する。
図11は、クライアント装置11における本発明の最小構成を示す概略構成図である。
同図を参照すると、
図1に示す各部のうち、描画監視部111と、描画制御部112と、CPU監視部113と、低負荷描画処理部114とが示されている。
【0098】
かかる構成において、
図1の構成について説明したのと同様に、CPU監視部113は、描画処理を含む各種処理を行うCPUの負荷を検出する。そして、描画制御部112は、描画監視部111が検出したシステム標準の描画の発生頻度と、CPU監視部113が検出したCPUの負荷とに基づいて、表示画面の表示する画像に対する低負荷描画処理部114による更新タイミングの制御の有無を切り替える。具体的には、描画制御部112は、システム標準の描画処理に代えて低負荷描画処理部114に描画処理を行わせるか否かの切換を行う。
これにより、処理対象を予め指定しておく必要無しに、より効率的に描画負荷を軽減させることができる。
【0099】
なお、クライアント装置11の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0100】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。