(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムを動作させることにより生成される画像情報を、ネットワークを介して端末装置に送信して表示させるサーバ装置であって、
生成した画像情報を予め定められたサイズのメモリであるページ毎に分割して記憶する画像情報記憶手段と、
前記画像情報記憶手段に記憶された前記画像情報を、アプリケーションプログラムの動作に応じて更新する更新手段と、
前記画像情報記憶手段に記憶されている画像情報のうち、前記端末装置に送信され、該端末装置が有する表示画面に表示されている表示領域の画像情報が記憶されているページのなかから、前記更新手段により更新される画像情報を含むページを更新ページとして検出する更新ページ検出手段と、
前記更新ページの更新前の画像情報と更新後の画像情報とから、前記更新手段により更新された画像情報を検出する更新画像検出手段と、
前記更新画像検出手段で検出された画像情報から送信画像情報を生成する送信画像生成手段と、
前記送信画像情報を前記端末装置へ送信する送信手段と、
前記更新ページの更新前の画像情報を記憶するバックアップ記憶手段と、
を備え、
前記更新画像検出手段は、
（ａ）前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されているとき、当該更新ページの更新前の画像情報と更新後の画像情報との差分を前記更新された画像情報として検出し、
（ｂ）前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されていないとき、当該更新ページの更新後の画像情報を前記更新された画像情報として検出することを特徴とするサーバ装置。
【請求項２】
前記画像情報記憶手段に記憶された前記画像情報のうち、前記表示領域の画像情報を記憶する各ページに対し第１制御情報を記憶し、前記表示領域以外の非表示領域を記憶する各ページに対し第２制御情報を記憶するテーブル記憶手段と、
前記テーブル記憶手段に前記第１制御情報が記憶されているページが前記更新手段で更新されるとき、ページ例外割込を発生する発生手段と、
をさらに含み、
前記更新ページ検出手段は、前記ページ例外割込の発生したページを前記更新ページとして検出することを特徴とする請求項１記載のサーバ装置。
【請求項３】
前記表示領域の範囲を変更する領域変更手段をさらに備え、
前記更新ページ検出手段は、表示領域を変更した後の新たな表示領域の画像情報を記憶する各ページを前記更新ページとして検出することを特徴とする請求項２記載のサーバ装置。
【請求項４】
前記領域変更手段で前記表示領域から前記非表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第１制御情報を前記第２の制御情報に書き換え、前記非表示領域から前記表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第２の制御情報を前記第１の制御情報に書き換える第１の変更手段と、
をさらに含む請求項３記載のサーバ装置。
【請求項５】
前記テーブル記憶手段は、各ページに対し、前記更新手段による当該ページの更新の有無を示す判定情報をさらに記憶することを特徴とする請求項２記載のサーバ装置。
【請求項６】
前記表示領域の範囲を変更する領域変更手段と、
前記領域変更手段で前記表示領域から前記非表示領域に変更されたページに対し前記第テーブル記憶手段に記憶されている前記第１制御情報を前記第２の制御情報に書き換え、前記非表示領域から前記表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第２の制御情報を前記第１の制御情報に書き換える第１の変更手段と、
前記更新手段で更新される各ページの前記判定情報を更新有りに変更する第２の変更手段と、
をさらに含み、
前記更新ページ検出手段は、表示領域を変更した後の新たな表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項５記載のサーバ装置。
【請求項７】
各ページに対し、前記更新手段による当該ページの更新の有無を示す判定情報を記憶するテーブル記憶手段と、
前記更新手段で更新される各ページの前記判定情報を更新有りに変更する第１の変更手段と、
をさらに含み、
前記更新ページ検出手段は、前記表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項１記載のサーバ装置。
【請求項８】
前記表示領域の範囲を変更する領域変更手段をさらに含み、
前記更新ページ検出手段は、表示領域を変更した後の新たな表示領域を記憶する各ページを前記更新ページとして検出することを特徴とする請求項７記載のサーバ装置。
【請求項９】
前記表示領域の範囲を変更する領域変更手段をさらに含み、
前記更新ページ検出手段は、表示領域を変更した後の新たな表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項７記載のサーバ装置。
ことを特徴とする請求項１記載のサーバ装置。
【請求項１０】
アプリケーションプログラムを動作させることにより生成される画像情報を、ネットワークを介して端末装置に送信して表示させるサーバ装置における更新画像検出方法であって、
生成した画像情報を予め定められたサイズのメモリであるページ毎に分割して画像情報記憶手段が記憶するステップと、
前記画像情報記憶手段に記憶された前記画像情報を、アプリケーションプログラムの動作に応じて更新手段が更新するステップと、
前記画像情報記憶手段に記憶されている画像情報のうち、前記端末装置に送信され、該端末装置が有する表示画面に表示されている表示領域の画像情報が記憶されているページのなかから、前記更新手段により更新される画像情報を含むページを更新ページ検出手段が更新ページとして検出するステップと、
前記更新ページの更新前の画像情報と更新後の画像情報とから、前記更新手段により更新された画像情報を更新画像検出手段が検出するステップと、
前記更新画像検出手段で検出された画像情報から送信画像情報を送信画像生成手段が生成するステップと、
前記送信画像情報を送信手段が前記端末装置へ送信するステップと、
前記更新ページの更新前の画像情報をバックアップ記憶手段が記憶するステップと、
を備え、
前記更新画像検出手段が、
（ａ）前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されているとき、当該更新ページの更新前の画像情報と更新後の画像情報との差分を前記更新された画像情報として検出し、
（ｂ）前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されていないとき、当該更新ページの更新後の画像情報を前記更新された画像情報として検出することを特徴とする更新画像検出方法。
【請求項１１】
テーブル記憶手段が、前記画像情報記憶手段に記憶された前記画像情報のうち、前記表示領域の画像情報を記憶する各ページに対し第１制御情報を記憶し、前記表示領域以外の非表示領域を記憶する各ページに対し第２制御情報を記憶するステップと、
前記テーブル記憶手段に前記第１制御情報が記憶されているページが前記更新手段で更新されるとき、発生手段がページ例外割込を発生するステップと、
をさらに含み、
前記更新ページ検出手段が、前記ページ例外割込の発生したページを前記更新ページとして検出することを特徴とする請求項１０記載の更新画像検出方法。
【請求項１２】
前記表示領域の範囲を領域変更手段が変更するステップをさらに備え、
前記更新ページ検出手段が、表示領域を変更した後の新たな表示領域の画像情報を記憶する各ページを前記更新ページとして検出することを特徴とする請求項１１記載の更新画像検出方法。
【請求項１３】
第１の変更手段が、
前記領域変更手段で前記表示領域から前記非表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第１制御情報を前記第２の制御情報に書き換え、前記非表示領域から前記表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第２の制御情報を前記第１の制御情報に書き換えるステップをさらに含む請求項１２記載の更新画像検出方法。
【請求項１４】
前記テーブル記憶手段が、各ページに対し、前記更新手段による当該ページの更新の有無を示す判定情報をさらに記憶することを特徴とする請求項１２記載の更新画像検出方法。
【請求項１５】
前記表示領域の範囲を領域変更手段が変更するステップと、
第１の変更手段が、前記領域変更手段で前記表示領域から前記非表示領域に変更されたページに対し前記第テーブル記憶手段に記憶されている前記第１制御情報を前記第２の制御情報に書き換え、前記非表示領域から前記表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第２の制御情報を前記第１の制御情報に書き換えるステップと、
前記更新手段で更新される各ページの前記判定情報を第２の変更手段が更新有りに変更するステップと、
をさらに含み、
前記更新ページ検出手段が、表示領域を変更した後の新たな表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項１４記載の更新画像検出方法。
【請求項１６】
各ページに対し、前記更新手段による当該ページの更新の有無を示す判定情報をテーブル記憶手段が記憶するステップと、
前記更新手段で更新される各ページの前記判定情報を第１の変更手段が更新有りに変更するステップと、
をさらに含み、
前記更新ページ検出手段が、前記表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項１０記載の更新画像検出方法。
【請求項１７】
前記表示領域の範囲を領域変更手段が変更するステップをさらに含み、
前記更新ページ検出手段が、表示領域を変更した後の新たな表示領域を記憶する各ページを前記更新ページとして検出することを特徴とする請求項１６記載の更新画像検出方法。
【請求項１８】
前記表示領域の範囲を領域変更手段が変更するステップをさらに含み、
前記更新ページ検出手段が、表示領域を変更した後の新たな表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項１６記載の更新画像検出方法。
【請求項１９】
コンピュータを、
アプリケーションプログラムを動作させることにより生成される画像情報を、ネットワークを介して端末装置に送信して表示されるサーバ装置として機能させるためのプログラムであって、
生成した画像情報を予め定められたサイズのメモリであるページ毎に分割して記憶する画像情報記憶手段、
前記画像情報記憶手段に記憶された前記画像情報を、アプリケーションプログラムの動作に応じて更新する更新手段、
前記画像情報記憶手段に記憶されている画像情報のうち、前記端末装置に送信され、該端末装置が有する表示画面に表示されている表示領域の画像情報が記憶されているページのなかから、前記更新手段により更新される画像情報を含むページを更新ページとして検出する更新ページ検出手段、
前記更新ページの更新前の画像情報を記憶するバックアップ記憶手段、
前記更新ページの更新前の画像情報と更新後の画像情報とから、前記更新手段により更新された画像情報を検出する更新画像検出手段であって、（ａ）前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されているとき、当該更新ページの更新前の画像情報と更新後の画像情報との差分を前記更新された画像情報として検出し、（ｂ）前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されていないとき、当該更新ページの更新後の画像情報を前記更新された画像情報として検出する更新画像検出手段、
前記更新画像検出手段で検出された画像情報から送信画像情報を生成する送信画像生成手段、
前記送信画像情報を前記端末装置へ送信する送信手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された端末装置で表示される画像を更新するための更新画像を送信する仮想計算機サーバ装置に関する。
【背景技術】
【０００２】
ユーザビリティの向上を目的として、最低限の入出力インターフェースを有する端末装置をユーザ側に配し、複雑な演算処理は遠隔地に位置する本体装置上で実行するコンピューティングシステムがある。
【０００３】
例えば本体装置（パーソナルコンピュータ、サーバコンピュータ等）の画面情報を、ネットワークを介して遠隔のディスプレイ端末に投影するシステムの形態が既に提案されている（例えば特許文献１参照）。
【０００４】
このシステムの場合、ディスプレイ端末からの入力情報（デジタイザによるペン入力等）は、同じくネットワークを介して本体装置に送信され、実際のアプリケーションプログラム処理は本体装置が実行する。その後、実行結果及び画面更新情報がネットワークを介してディスプレイ端末に転送される。端末装置は、受信された画面更新情報により出力（描画）処理を実行する。
【０００５】
また、遠隔ネットワーク上の本体装置からの画面情報を端末装置へ効率良く伝送するための技術として、ＶＮＣ（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｕｔｉｎｇ）が知られている。ＶＮＣでは、画面の更新を検知した際、読み出した画素情報の値を前回表示端末に伝送した画素情報の値と比較し、前回から変化した更新画面領域を決定する。更に更新画面領域を静止画圧縮した後、表示端末に対して、圧縮した画面の差分情報のみを伝送することにより、通信帯域の消費を抑えることができる。
【０００６】
一方、コンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や記憶装置等のリソースを仮想化した上で、その仮想化したコンピュータを実行する仮想計算機技術が存在する。仮想計算機技術は、一台の物理的なコンピュータ上で、複数のゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を同時に動作させることが可能な技術である。尚、ゲストＯＳに変更を施さない場合は完全仮想化、ゲストＯＳに一部の改変を行う場合は、準完全仮想化と呼ばれる。また、複数のゲストＯＳを管理するＯＳを、ホストＯＳと呼ぶ。
【０００７】
ここで、仮想計算機サーバ装置上で動作しているアプリケーション等の表示画面を端末装置上に表示するシステムを考えた場合、フレームバッファから効率良く画像情報を取得し、外部装置に転送する必要がある。また、端末装置側で実際に表示される内容が、ゲストオペレーティングシステムが管理する画面領域全体の中で一部の領域に限られる場合、従来技術にて述べられている手段を単純に適用すると、画面領域全域に対する更新検出処理を行う必要がある。この場合、端末装置上の非表示領域に対する更新の検出まで余分に行うことになり、仮想計算機サーバ装置上の処理効率が悪い問題がある。
【特許文献１】米国特許第６７８４８５５号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように、従来技術では、ネットワークを介して接続された端末装置にて表示される画面領域が、画像情報を送信する仮想計算機サーバ装置上の画面領域の一部分に制限される場合、端末装置で表示される表示領域に加え、端末装置で表示されない非表示領域に対しても更新部分の検出を行う必要があり、仮想計算機サーバ装置における処理効率が悪いという問題点があった。
【０００９】
そこで、本発明は、上記問題点に鑑みなされたもので、端末装置で表示される表示領域と該端末装置で表示されない非表示領域とが存在する画像情報が更新されたときに、該端末装置で表示される画像を更新するための更新画像を効率よく検出可能な仮想計算機サーバ装置及び更新画像検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
アプリケーションプログラムを動作させることにより生成される画像情報を、ネットワークを介して端末装置に送信して表示させるサーバ装置は、
生成した画像情報を予め定められたサイズのメモリであるページ毎に分割して記憶する画像情報記憶手段と、
前記画像情報記憶手段に記憶された前記画像情報を、アプリケーションプログラムの動作に応じて更新する更新手段と、
前記画像情報記憶手段に記憶されている画像情報のうち、前記端末装置に送信され、該端末装置が有する表示画面に表示されている表示領域の画像情報が記憶されているページのなかから、前記更新手段により更新される画像情報を含むページを更新ページとして検出する更新ページ検出手段と、
前記更新ページの更新前の画像情報と更新後の画像情報とから、前記更新手段により更新された画像情報を検出する更新画像検出手段と、
前記更新画像検出手段で検出された画像情報から送信画像情報を生成する送信画像生成手段と、
前記送信画像情報を前記端末装置へ送信する送信手段と、
前記更新ページの更新前の画像情報を記憶するバックアップ記憶手段と、
を備え、
前記更新画像検出手段は、
（ａ）前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されているとき、当該更新ページの更新前の画像情報と更新後の画像情報との差分を前記更新された画像情報として検出し、
（ｂ）前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されていないとき、当該更新ページの更新後の画像情報を前記更新された画像情報として検出することを特徴とする。
【発明の効果】
【００１１】
端末装置で表示される表示領域と該端末装置で表示されない非表示領域とが存在する画像情報が更新されたときに、該端末装置で表示される画像を更新するための更新画像を効率よく検出できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
【００１３】
［第１の実施形態］
図１は、第１の実施形態に係るシステム構成例を示す図である。仮想計算機サーバ装置１００では、基盤として稼動するホストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で、複数のゲストＯＳが並列的に動作している。各々のゲストＯＳは、各種処理を提供するアプリケーションプログラムを実行しており、それぞれ表示画面を個別に生成する。仮想計算機サーバ装置１００は通信インターフェースを有しており、画面を表示させるための画像情報を生成した後、ネットワークを介して接続されたディスプレイ端末に向けて送信する。
【００１４】
ディスプレイ端末ＴＥ１、ＴＥ２は、仮想計算機サーバ装置１００と同様、通信インターフェースを有しており、仮想計算機サーバ１００が送信した画像情報を、ネットワークを介して受信した後、表示用の画面を生成した上で、出力（描画）処理を実行する。図１のディスプレイ端末ＴＥ１は、仮想計算機サーバ装置１００のゲストＯＳ１とゲストＯＳ２の画面を同時に表示している。また、ディスプレイ端末ＴＥ２は、ゲストＯＳ３の画面を表示している。
【００１５】
ディスプレイ端末に対して入力操作を行うと、入力情報はネットワークを介して仮想計算機サーバ装置１００に配送され、対応するゲストＯＳへの入力として振り分けられた後、アプリケーション処理が実行される。アプリケーション処理実行の結果として、ゲストＯＳの画面に更新が発生する場合、仮想計算機サーバ装置１００は、更新部分の画像情報をディスプレイ端末に対して送信する。
【００１６】
図２は、図１におけるゲストＯＳ１、ゲストＯＳ２の画面と、ディスプレイ端末ＴＥ１における表示画面の関係を表した図である。ゲストＯＳ１、ゲストＯＳ２は、互いが干渉することなく独立したフレームバッファを持ち、アプリケーションの処理結果に基づいた描画処理をそれぞれ実行している。図２の例において、例えばゲストＯＳ１、ゲストＯＳ２の画面領域がそれぞれＸＧＡ（ｅＸｔｅｎｄｅｄ  Ｇｒａｐｈｉｃ  Ａｒｒａｙ：１０２４×７６８画素）サイズで、ディスプレイ端末ＴＥ１の出力解像度も同様にＸＧＡサイズであった場合、両方のゲストＯＳの画面全領域を同時に表示することは不可能である。従って、ゲストＯＳ１、ゲストＯＳ２の双方において、ディスプレイ端末ＴＥ１にて表示される矩形領域と、表示されない矩形領域とが発生する。
【００１７】
図３は、図１におけるゲストＯＳ３の画面と、ディスプレイ端末ＴＥ２における表示画面の関係を示した図である。例えばゲストＯＳ３の画面領域がＵＸＧＡ（Ｕｌｔｒａ  ｅＸｔｅｎｄｅｄ  Ｇｒａｐｈｉｃ  Ａｒｒａｙ：１６００×１２００画素）サイズで、ディスプレイ端末ＴＥ２の出力解像度がＶＧＡ（Ｖｉｄｅｏ  Ｇｒａｐｈｉｃ  Ａｒｒａｙ：６４０×４８０画素）サイズであるような場合も、図２の例と同様に、ゲストＯＳ３の画面全体を表示することが不可能である。そのため、この例においても、ディスプレイ端末ＴＥ２にて表示される矩形領域と、表示されない矩形領域とが発生する。ここで、スクロールバーは、仮想計算機サーバ装置側で画像情報を生成し、ネットワークを介して、ディスプレイ端末に表示させても良い。
【００１８】
ところで、フレームバッファに記憶された画像情報の更新部分（更新画像）の検出方法としては、一定周期毎に、過去に表示した画面領域の画素情報と最新の画面領域の画素情報とを比較して検出する方法、フレームバッファへ書き込みを行うソフトウェアが更新部分の座標情報（矩形情報）を申告し検出する方法等が一般的に考えうる。前者の方法では、画面領域全域の画素情報の比較に伴う処理負荷が高く、後者の方法では、更新部分の座標情報を申告するようにソフトウェアの手続きを変更する必要がある。
【００１９】
仮想計算機環境において、ゲストＯＳ上のアプリケーションが、描画処理に伴う情報をホストＯＳ側に申告するためには、オペレーティングシステムに改変を加える必要がある他、申告のためにオーバーヘッドが増加する問題がある。更に、図１、図２、図３の例で示したように、ネットワークを介して接続された端末装置（ディスプレイ端末ＴＥ１、ＴＥ２）にて、表示される領域と表示されない領域が存在する場合、非表示の矩形領域に対する更新検出処理は、仮想計算機サーバ装置１００にとって無駄な処理が増加する問題がある。
【００２０】
そこで、本発明における仮想計算機サーバ装置では、端末装置にて表示されている領域に対応するページ単位に更新部分を検出して表示画像を送信することにより、更新画面を効率良く処理可能とする。
【００２１】
図４は、第１の実施形態に係る仮想計算機サーバ装置１００の構成例を示したものである。図４に示すように、仮想計算機サーバ装置１００は、ネットワークを介して、ユーザが操作を行う端末装置（以降、ディスプレイ端末と呼ぶ）ＴＥ１、ＴＥ２と接続されている。ディスプレイ端末ＴＥ１、ＴＥ２は、それぞれ、仮想計算機サーバ装置１００から転送された画像情報を自装置内の表示部に表示する機能を有する。また、ディスプレイ端末ＴＥ１、ＴＥ２は、それぞれ、仮想計算機サーバ装置１００から転送された画面の更新部分の画像情報、すなわち、更新画像を受信し、受信した更新画像によって表示画面を更新する機能を持つ。
【００２２】
図４の仮想計算機サーバ装置１００は、装置を動作させる基盤となるホストＯＳ５１と、複数のゲストＯＳ（ここではゲストＯＳ１、ゲストＯＳ２、ゲストＯＳ３の３つ）のそれぞれに対応する複数のゲストＯＳ対応部５２ａ〜５２ｃと、仮想入出力仲介部５３とを含む。
【００２３】
各ゲストＯＳ対応部５２（５２ａ、５２ｂ、５２ｃ）は、対応するゲストＯＳ（１，２，３）、アプリケーション部１１（１１ａ、１１ｂ、１１ｃ）、仮想表示部１２（１２ａ、１２ｂ、１２ｃ）、バックエンド仮想表示部１３（１３ａ、１３ｂ、１３ｃ）、及びバックエンド仮想入力部１４（１４ａ、１４ｂ、１４ｃ）を含む。
【００２４】
すなわち、ゲストＯＳ１に対応するゲストＯＳ対応部５２ａは、ゲストＯＳ１と、アプリケーション部１１ａと、仮想表示部１２ａと、バックエンド仮想表示部１３ａと、バックエンド仮想入力部１４ａとを含む。
【００２５】
ゲストＯＳ２に対応するゲストＯＳ対応部５２ｂは、ゲストＯＳ２と、アプリケーション部１１ｂと、仮想表示部１２ｂと、バックエンド仮想表示部１３ｂと、バックエンド仮想入力部１４ｂとを含む。
【００２６】
ゲストＯＳ３に対応するゲストＯＳ対応部５２ｃは、ゲストＯＳ３と、アプリケーション部１１ｃと、仮想表示部１２ｃと、バックエンド仮想表示部１３ｃと、バックエンド仮想入力部１４ｃとを含む。
【００２７】
ゲストＯＳ１、２、３は、仮想的な計算機環境を動作させるＯＳであり、ホストＯＳ５１上で動作する。アプリケーション部１１ａ、１１ｂ、１１ｃは、それぞれ、ゲストＯＳ１，２，３上で動作する各種処理を提供するプログラムを実行する。
【００２８】
仮想表示部１２ａ、１２ｂ、１３ｃは、それぞれ、ゲストＯＳ１，２，３が生成する画像情報を出力するための仮想的な表示装置であり、画像情報を記憶するフレームバッファを含むものであり、ホストＯＳ上で動作する
バックエンド仮想表示部１３ａ、１３ｂ、１３ｃは、それぞれ、画像表示に関する共通処理を実行するものであり、ホストＯＳ５１上で動作する。バックエンド仮想入力部１４ａ，１４ｂ、１４ｃは、それぞれ、マウス操作やキーボード操作による入力情報を、それぞれのゲストＯＳ１、２、３に適した形式にした上で通知する処理を実行するものであり、バックエンド仮想表示部と同様に、ホストＯＳ５１上で動作する。
【００２９】
仮想入出力仲介部５３は、画像情報や入力情報の送受信処理や、ディスプレイ端末ＴＥ１、ＴＥ２にて表示される画面領域の管理を行う。仮想入出力仲介部５３も、ホストＯＳ５１上で動作する。
【００３０】
尚、図４は、３つのゲストＯＳが仮想計算機サーバ装置１００上で動作中の場合の例を示しており、アプリケーション部、仮想表示部、バックエンド仮想表示部、バックエンド仮想入力部も、それぞれゲストＯＳに対応した数が存在だけする。
【００３１】
図５を用いて、仮想計算機サーバ装置１００の各ゲスト対応部５２の詳細な構成について説明する。
【００３２】
ゲストＯＳは、画像表示に関する機能として、グラフィックライブラリ１１１を備えている。この他、画像表示に関する機能以外にも、仮想的な計算機環境を動作するために必要なあらゆる機能を備えている。グラフィックライブラリ１１は、レンダラ１１２と、アドレス算出部１１３とを備えている。
【００３３】
レンダラ１１２は、アプリケーションなどから指定された描画命令に従い、各種画像処理を行った後、その結果として画像情報を出力する。例えば、レンダラ１１２は、ある領域を拡大・縮小する描画命令を受けた場合、描画命令に含まれる座標情報などから拡大・縮小する領域を特定し、当該領域に対して拡大・縮小を行った結果である領域の座標情報などを含む画像情報を出力する。尚、座標情報とは、例えば１０２４×７６８画素の画面の場合、画面左上を（０、０）、画面右下を（１０２３、７６７）とするような座標系で表された情報を表す。このように、第１の実施形態では、画面右方向をＸ座標方向、画面下方向をＹ座標方向としたＸ−Ｙ座標によって画面上の画素の座標情報（矩形情報）を示すこととする。
【００３４】
アドレス算出部１１３は、レンダラ１１２が出力した画像情報を入力し、画像情報の座標情報をフレームバッファのアドレスに変換する処理を行うものである。
【００３５】
仮想表示部１２は、メモリ管理部２０１と、フレームバッファ２０２とを備えている。メモリ管理部２０１は、仮想メモリ方式でフレームバッファ２０１に対するアクセスを管理するものであり、テーブル記憶部２１１と、取得部２１２と、変更部２１３と、書込み部２１４と、例外発生部２１５とを備えている。
【００３６】
テーブル記憶部２１１は、仮想アドレスを物理アドレスに変換するための変換テーブルを記憶する。
【００３７】
ここで、変換テーブルの構造の詳細と、メモリ管理部２０１による変換テーブルを用いたアドレス変換の流れについて説明する。
【００３８】
仮想メモリ方式の場合、ソフトウェアは仮想アドレスによって、仮想アドレス空間上の論理的にリニアなメモリ空間をアクセスする。一例として、３２ビット長の仮想アドレスについて説明する。３２ビット長の仮想アドレスは、１０ビット、１０ビット、１２ビットの間隔で区切られる。仮想アドレスの上位１０ビットは、２段階の階層構造で表された変換テーブルの上位のテーブルであるページディレクトリ内のエントリを特定するために利用される。特定したエントリには、下位のテーブルである複数のページテーブルのうちいずれかを特定するためのポインタ情報が含まれる。仮想アドレスの中位１０ビットは、このポインタにより特定されるページテーブル内のエントリを特定するために利用される。特定したエントリには、物理アドレス空間上のページブロック（以降、ページと呼ぶ）を特定するためのポインタが含まれる。尚、ページとは、コンピュータのメモリ空間を一定の大きさに分割して管理する際のメモリの基本単位である。本実施形態においても、仮想アドレスにマッピングできる物理メモリサイズの基本単位のメモリをページと呼び、連続する物理メモリがページに割り当てられる。仮想アドレスの下位１２ビットは、このポインタにより特定されるページ内のオフセットを表す。このようにして、３２ビット長の仮想アドレスから物理アドレスへ変換することが可能となる。
【００３９】
ページディレクトリのエントリは、ページテーブルへのポインタと、該ページテーブルのエントリの有効・無効を示す有効ビット（Ｅｎａｂｌｅビット）と、当該ページテーブルのぺージへの書込みの可・不可を示す書込みビット（Ｗｒｉｔａｂｌｅビット）と、該ページへのデータ書込み（更新）が行われた場合に「１」が設定される更新ビット（Ｄｉｒｔｙビット）と、仮想アドレスから物理アドレスへの変換過程で当該エントリを参照した場合に「１」が設定されるアクセスビット（Ａｃｃｅｓｓビット）とを含む。尚、プロセッサの種類によりビットの名称が異なる場合や、正論理か負論理かで異なる場合があるが、通常は上記のような情報を含むエントリが存在する。
【００４０】
ページテーブルは、各ページにおける物理メモリから論理メモリ空間への対応付けを管理する構造体（テーブル）で、書き込みビットや更新ビット等の情報も併せて管理する。
【００４１】
書き込みビットは、ページへの情報書き込みが禁止されているか否かを識別するために、ページテーブル内でページとともに管理される情報である。
【００４２】
更新ビットは、ページへの情報化聞き込みにより更新が発生したか否かを識別するために、ページテーブル内でページとともに管理される情報である。
【００４３】
図５において、取得部２１２は、このように構成された変換テーブルを用いて、フレームバッファ２０１への書込みが要求された画像情報の仮想アドレスに対応する物理アドレスを取得する。
【００４４】
変更部２１３は、フレームバッファ２０１へのアクセス要求に応じて、変換テーブルの各エントリの情報を変更するものである。例えば、変更部２１３は、書込み（更新）が要求された画像情報の仮想アドレスを含むページに対するページテーブルのアクセスビットおよび更新ビットを「１」に変更する。
【００４５】
書込み部２１４は、フレームバッファ２０２の、取得部２１２により取得された物理アドレスに、書込みが要求された画像情報を書込む。
【００４６】
例外発生部２１５は、書込みが要求されたページに対するページ例外を発生するものである。具体的には、例外発生部２１５は、書込みビットが不可（「０」の値）であるページに対して、書込みが要求された場合にページ例外（割込の一種）を発生させる。尚、書込みビットは、表示領域に関連する全てのページテーブルに関して設定しておき、正論理の代わりに不論理を用いても良い。これにより、表示領域に属するページに書込みが要求された場合に必ずページ例外を発生させることが出来る。
【００４７】
ページ例外は、書き込みビットによって書き込みが禁止されたページに対して、情報が書き込まれた場合に発生する割込である。
【００４８】
例外発生部２１５は、一般的な仮想メモリ方式で扱われるその他の例外も発生させる。例えば、仮想アドレス空間に対するアクセスが要求され、取得部２１２によって変換テーブルが検索されたとき、例外発生部２１５は、検索されたページディレクトリのエントリ、またはページテーブルのエントリの有効ビットが無効（「０」の値）である場合に、プロセッサに対してページ例外を発生させる。尚、ページ例外が発生した場合、プロセッサは、いずれの仮想アドレスに対してアクセスされたかを検出することが出来る。また、ページ例外発生時、プロセッサはページのマッピングなどの必要に応じた処理を行う。また、プロセッサは必要に応じて変換テーブルの更新を行って例外から復帰する。
【００４９】
フレームバッファ２０２は、ゲストＯＳが管理する１画面分の画像情報を記憶するためのホストＯＳ側の記憶部である。例えば、１画面が１０２４×７６８画素、１画素当たり４バイトの色情報（赤情報１バイト、緑情報１バイト、青情報１バイト、透過情報１バイト）を用いる場合、１０２４×７６８×４バイト分のメモリ領域が確保される。フレームバッファ２０２には、ゲストＯＳが生成した画像情報が、取得部２１２によって取得された物理アドレスに従って、ページ単位に分けて記憶される。
【００５０】
バックエンド仮想表示部１３は、保存部３０１、バックアップ記憶部３０２、及び検出部３０３を含む。
【００５１】
バックアップ記憶部３０２は、更新された各ページの画像情報のバックアップデータを記憶可能な記憶部である。保存部３０１は、例外発生部２１５により書込みビットが不可であるページに書込みが要求されたことによるページ例外が発生したときに、当該ページ例外が発生したページの画像情報をバックアップ記憶部３０２に保存する。
【００５２】
検出部３０３は、メモリ管理部２０１が管理するページ単位で、画像情報の更新部分（更新画像）を検出するものである。具体的には、検出部３０３は、例外発生部２１５で発生されたページ例外を受けて、ページ例外が発生したページを、画像情報が更新された更新ページとして検出し、記録する。そして、検出部３０３は、更新されたページそれぞれについて、バックアップ記憶部３０２の記憶された更新前の画像情報と、書込み部２１４によってフレームバッファ２０２に書込まれた更新後の最新の画像情報とを比較し、相違部分を含む矩形を更更新画像として検出する。
【００５３】
図６は、仮想入出力仲介部５３の詳細な構成を示した図である。仮想入出力仲介部５３は、ディスプレイ端末ＴＥ１、ＴＥ２等における表示領域の管理を行い、検出部３０３で取得した更新画像情報を基に、送信画像情報を生成して送信する処理を行う。
【００５４】
仮想入出力仲介部５３は、送信画像生成部５０１と、仮想表示制御部５０２と、表示領域記憶部５０３と、セッション情報記憶部５０４と、送信部５０５と、受信部５０６と、入力位置判定部５０７とを含む。
【００５５】
送信画像生成部５０１は、各ゲストＯＳ対応部５２のバックエンド仮想表示部１３における検出部３０３により検出された更新部分の画像情報を用いて、ディスプレイ端末にて表示可能な表示画像の取得を行い、併せて送信用画像を生成する。送信用画像とは、通信路の帯域を勘案し、画像圧縮処理を施すことである。画像圧縮処理に関しては、不可逆圧縮のＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）の他、可逆圧縮を用いることも考えうる。
【００５６】
また、送信画像生成部５０１は、仮想表示制御部５０２からの情報を基に、ゲストＯＳ上の画面領域に関して、実際にディスプレイ端末にて表示される表示領域のみを更新画像として取り扱い、必要に応じてスクロールバー等の表示画像を生成する。
【００５７】
送信部５０５は、送信画像生成部５０１が生成した画像情報（圧縮画像情報）をセッション情報記憶部５０４の情報を基に、ディスプレイ端末に対して送信する処理を行う。
【００５８】
セッション情報記憶部５０４には、仮想計算機サーバ装置１００およびネットワークを介して接続されたディスプレイ端末のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス情報、ポート番号情報、ユーザ（端末装置）識別情報などが記憶される。
【００５９】
表示領域記憶部５０３は、端末装置識別情報に対応した表示領域の範囲（矩形）を示す情報（表示領域情報）の記憶を行う。すなわち、図１のディスプレイ端末ＴＥ１の例において、ゲストＯＳ１、ゲストＯＳ２がそれぞれ１０２４×７６８画素の画面領域を有している状況で、１０２４×７６８画素の解像度のディスプレイ端末にて２つのゲストＯＳの画面を同時に表示する場合、ゲストＯＳ１の表示領域の左上部分を（０、０）、右下部分を（５１１、７６７）をゲストＯＳ１の表示領域情報として記録する。同様に、ゲストＯＳ２の表示領域の左上部分を（５１２、０）、右下部分を（１０２３、７６７）をゲストＯＳの表示領域情報として記録する。表示領域の範囲を示す矩形の情報は、この他に（０、０、５１２、７６８）のように、（始点Ｘ座標、始点Ｙ座標、横幅、縦幅）の形式で記録することも可能である。（以降、矩形情報に関して、（始点Ｘ座標、始点Ｙ座標、横幅、縦幅）の記載方法を用いる。）
仮想表示制御部５０２は、ディスプレイ端末における表示領域の変更を検出した場合に、表示領域記憶部５０３の情報を更新し、更新状態変更指示部５０８と、例外マスク指示部５０９を介して、第１の実施形態に係る効率的な画面更新の検出に必要な処理を実施する。
【００６０】
更新状態変更指示部５０８は、バックエンド仮想表示部１３のバックアップ記憶部３０２に記憶した画像（ページ）情報を削除する機能を持つ。更に更新状態変更指示部５０８は、バックエンド仮想表示部１３の検出部３０３に対して、表示領域から非表示領域に変更になったページの更新検出履歴を削除させ、新しい表示領域の全域を更新対象として記録させる。
【００６１】
例外マスク指示部５０９は、仮想表示部１２中の例外発生部２１５に対して、ディスプレイ端末側で非表示領域となった各ページの書込みビットを可とし、新しい表示領域に属する各ページの書込みビットを不可に設定制御を行う。すなわち、ディスプレイ端末にて実際に表示される領域に対して、ゲストＯＳが描画処理を実行すると、例外発生部２１５はページ例外を発生させる。一方、ディスプレイ端末にて表示されない領域（非表示領域）に対して、描画情報の書込みを行っても、フレームバッファ２０２は更新されるが、例外発生部２１５によるページ例外は発生しない。
【００６２】
図６の受信部５０６は、ネットワークを介して、マウス入力やキーボード入力といった入力情報を受信する。
【００６３】
入力位置判定部５０７は、仮想表示制御部５０２を介して取得したゲストＯＳの表示領域に関する情報と入力座標位置情報とを基に、複数のバックエンド仮想入力部１３ａ〜１３ｃのうち、該入力情報を通知すべきバックエンド仮想入力部の判定を行う。例えば、図１の例において、ゲストＯＳ１の表示領域が（０、０、５１２、７６８）の状態で、入力座標位置（Ｘ座標、Ｙ座標）が（５０、５０）の場合、受信した入力情報を、ゲストＯＳ１に関連付けられたバックエンド仮想入力部１３ａに通知する。また、入力位置判定部５０７は、仮想入出力仲介部５３が生成したスクロールバーに対する移動等を指示するための入力を検出した場合、仮想表示制御部５０２に表示領域の変更が発生したことを通知する。
【００６４】
図７は、ディスプレイ端末（端末装置）ＴＥ１、ＴＥ２（以下、これらをまとめてディスプレイ端末ＴＥと呼ぶ）の構成例を示したものである。ディスプレイ端末ＴＥは、通信処理部６０１と、画像情報を記憶するフレームバッファ６０２と、画面生成部６０３と、セッション情報記憶部６０４と、入出力インターフェース６０５と、ディスプレイ６０６、入力デバイス６０７を含む。
【００６５】
通信処理部６０１は、仮想計算機サーバ装置１００から受信した更新画面パケットに関して、パケットから抽出した圧縮画像データを画面生成部６０３に渡す。
【００６６】
画面生成部６０３は、渡された圧縮画像データを伸張処理した後、伸張した画像データを、フレームバッファ６０２の指定位置へ描画する。つまり画面生成部６０３は、仮想計算機サーバ装置１００から送信され、通信処理部６０１により受信された圧縮画像を伸張して生成した部分画像をディスプレイ６０６の指定位置へ表示することになる。また、入力デバイス６０７に対する入力情報は、ネットワークを介して接続した仮想計算機サーバ装置１００に送信する。
【００６７】
尚、第１の実施形態において、ディスプレイ端末ＴＥが備えるフレームバッファ６０２は、表示デバイス（ディスプレイ）６０６にて出力可能な最大解像度と同一であるとする。すなわち、ディスプレイ端末ＴＥの表示デバイス６０６の出力解像度が１０２４×７６８画素であり、１画素当たり４バイトの色情報が必要である場合、１０２４×７６８×４バイト分のメモリ領域が確保される。フレームバッファ６０２に描画された画像情報は、タイマを用いて一定の周期毎に、画面生成部６０３の指示で入出力インターフェース６０５を介して、表示デバイス６０６にて出力される。
【００６８】
次に、図８〜図１０に示すフローチャートを参照して、第１の実施形態に係る画像書込み処理、表示領域変更処理、更新部分検出処理について説明する。
【００６９】
図８は、仮想計算機サーバ装置１００における画像書込み処理を説明するための示すフローチャートである。まず、アプリケーション部１１は、アプリケーションにより実行された処理に関連する画像情報の更新等が発生した場合に、表示画面の描画を要求する描画命令を出力する（ステップＳ１）。
【００７０】
次に、レンダラ１１２が描画命令に応じて画像処理を行い、その結果である画像情報を生成する（ステップＳ２）。画像情報には、更新する領域に対応する開始座標と終了座標の情報が含まれる。続いて、アドレス算出部１１３が、更新する画素の座標情報を基に仮想アドレスを算出する。グラフィックライブラリ１１１は、算出された仮想アドレスを指定して、フレームバッファ２０２に対する画像情報の書込みを要求する（ステップＳ３）。
【００７１】
そして、取得部２１２が、テーブル記憶部２１１に記憶された変換テーブルを参照して、指定された仮想アドレスに対応する物理アドレスを取得する（ステップＳ４）。変換テーブルが参照された時、例外発生部２１５は、書込みが要求されたページの書込みビットが不可である場合に、ページ例外を発生させる（ステップＳ５）。ページ例外を検出した保存部３０１は、ページ例外が発生した（書込みの発生した）ページに対応する書込前の画像情報をバックアップ記憶部３０２に保存する。併せて検出部３０１は、ページ例外が発生したページを更新ページとして検出し、記録する（ステップＳ６）。さらに、書込み部２１４は、取得部２１２が取得した物理アドレスに対して、フレームバッファ２０２に、要求された画像情報を書込み、画像書込み処理を終了する（ステップＳ７）。尚、ページ例外が発生したページに対して、以後の画像情報を書き込む際も例外が発生しうるため、この時点で、当該ページに対する書込みを可に変更する。一定周期毎に、ディスプレイ端末に対して、表示領域内の更新画像の検出と更新画像の送信を行うが、更新画像送信後に、ページをサイド書込み不可に設定する。
【００７２】
図９は、仮想計算機サーバ装置１００における表示領域変更処理を説明するためのフローチャートである。仮想計算機サーバ装置１００とディスプレイ端末ＴＥがセッション接続を開始した直後に、表示領域が決定した場合、もしくはディスプレイ端末ＴＥからスクロールバーの移動に関連した入力情報を受信した場合に、仮想入出力仲介部５３の仮想表示制御部５０２は、表示領域の変更を検出する（ステップＳ１１）。ディスプレイ端末ＴＥにて表示される領域情報は、セッション接続初期化時に領域情報の交換を行う他、スクロールバーの移動量（移動した画素数）を基に新しい表示領域を算出する方法などが考えられる。
【００７３】
そして、仮想表示制御部５０２は、例外マスク指示部５０９を介して、仮想表示部１２の例外発生部２１５に対して、新たな表示領域に属する各ページの書込みビットを不可（例えば「０」）に、新たな非表示領域に属する各ページの書込みビットを可（例えば「１」）に設定する（ステップＳ１２）。無論、正論理の代わりに負論理を用いても良い。この結果、表示領域に対する描画処理が実行された場合に、例外発生部２１５はページ例外を発生させることになる。
【００７４】
更に、仮想表示制御部５０２は、更新状態変更指示部５０８を介して、バックエンド仮想表示部１３の検出部３０３に、非表示領域に対応するページの更新検出履歴を無効にさせ、新しい表示領域の全域に対応するページを更新ページとして記録させる。併せて、仮想表示制御部５０２は、更新状態変更指示部５０８を介して、バックエンド仮想表示部１３のバックアップ記憶部３０２に保存された全ての画像情報を削除し、表示領域変更処理を終了する（ステップＳ１３）。
【００７５】
図１０は、更新画像検出処理を説明するためのフローチャートである。更新画像検出処理は、例えばタイマからの定期的な割込みによって開始される。
【００７６】
バックエンド仮想表示部１３の検出部３０３は、ページ例外発生時の記録、もしくは表示領域変更時の記録により更新ページを検出する（ステップＳ２１）。
【００７７】
続いて、検出部３０３は、検出した更新ページに対して、フレームバッファ２０２に書き込まれた最新の画像情報とバックアップ記憶部３０２に保存した画像情報とを比較し、差分箇所を更新画像として検出する（ステップＳ２２、ステップＳ２３）。この時、更新ページとして検出されたページに対応する画像情報が、バックアップ記憶部３０２に存在しない場合（ステップＳ２２）、ページ間の差分は取れないため、該１ページの全域を更新画像として検出する（ステップＳ２４）。このケースは、表示領域の変更が行われた後、最初に更新画像検出処理を行う場合に発生する。
【００７８】
仮想入出力仲介部５３の送信画像生成部５０１は、バックエンド仮想表示部１３の検出部３０３により検出した更新画像、スクロールバー等の補足画像から送信用画像を生成し、圧縮処理を行う（ステップＳ２５）。そして、送信部５０５が圧縮した画像情報をパケット化し、ディスプレイ端末に対して送信することで、更新画像検出処理を終了する（ステップＳ２６）。その後、表示領域内で、ページの書込みを不可に設定し直す。
【００７９】
次に、図１１〜図１３を参照して、画像書込み処理および更新画像検出処理をより具体的に説明する。
【００８０】
尚、図１１、図１２、図１３の例では、グラフィックリブラリ１１１のアドレス算出部１１３がディスプレイ端末ＴＥに表示する表示画面を３２×３２画素の矩形領域に分割し、分割した矩形領域内の各画素に、１ページ（４０９６バイト）の仮想アドレスが対応するように、フレームバッファの仮想アドレスを算出するものとする。具体的には、アドレス算出部１１３は、従来の算出式である次式（１）に代わり、次式（２）に従って、座標情報（Ｘ、Ｙ）をフレームバッファのアドレス（ａｄｄｒ）に変換する。ＯＦＦＳＥＴとは、画像情報の格納を開始する開始アドレスまでのオフセットの値を示す。以下の式は、ディスプレイの動作状態や、アドレス算出部１１３の演算能力により、実際の算出式の最適化方式は異なる。
【００８１】
ａｄｄｒ＝ＯＦＦＳＥＴ＋（Ｘ＜＜２）＋（Ｙ＜＜１２）      ・・・（１）
ａｄｄｒ＝ＯＦＦＳＥＴ＋（（Ｘ＆０ｘ１ｆ）＜＜１０）×３＋（（Ｘ＆０ｘ１ｆ）＜＜２）＋（Ｙ＜＜７）                                                ・・・（２）
図１１は、図８の画像書込み処理を説明するための図である。図１１において、実線で囲まれた矩形領域は、ディスプレイ端末ＴＥにて表示される表示領域を示している。従って、それ以外の矩形領域は、ディスプレイ端末にて表示されない非表示領域を示す。
【００８２】
画像書込み処理では、まず仮想入出力仲介部５３の仮想表示制御部５０２が表示領域情報の取得を行い、該表示領域に属する各ページの書込みビットを不可に設定する。これにより、以後、グラフィックライブラリ１１１が表示領域のフレームバッファに書込みを行うと、該当するページに関するページ例外が発生することになる。
【００８３】
図１１の（Ａ１）では、アプリケーション部１１が画面表示のためにグラフィックライブラリ１１１を介して、フレームバッファに対する描画命令を送る（図８のステップＳ１）。（Ａ２）では、メモリ管理部２０１は、変換テーブルを参照して、グラフィックライブラリ１１１からの描画命令で指定された仮想アドレスを物理アドレスに変換する（図８のステップＳ２〜ステップＳ４）。なお、（Ａ１）では、ディスプレイ端末ＴＥの非表示領域に書込を行っている。非表示領域に関しては、ページテーブルの書込みビットが予め許可に設定されているため、この時点でページ例外は発生しない。
【００８４】
（Ａ３）では、アプリケーション部１１がフレームバッファ２０２に対する描画命令を再度実行している（図８のステップＳ１）。ここでは、ディスプレイ端末ＴＥの表示領域に書込を行っている。（Ａ４）では、メモリ管理部２０１が変換テーブルを参照すると、表示領域に関しては、ページテーブルの書込みビットが予め不可に設定されているため、（Ａ５）において、例外発生部２１５がページ例外を発生させる（図８のステップＳ２〜ステップＳ５）。（Ａ６）では、発生したページ例外により、バックエンド仮想表示部１３の保存部３０１は、グラフィックライブラリ１１１が更新を要求したフレームバッファの該当ページを検知し、当該ページの内容のバックアップをバックアップ記憶部３０２に記憶する。併せて、検出部３０３は、当該ページを更新ページとして記録する（図８のステップＳ６）。また、書込み部２１４は、取得部２１２が取得した物理アドレスに対して、フレームバッファ２０２に、要求された画像情報を書込む。一方、（Ａ７）において、メモリ管理部２０１の変更部２１３は、当該ページのページテーブルの書込みビットを可に変更する。
【００８５】
この後、グラフィックライブラリ１１１による画像書込みが続行されるが、以後、当該ページに対する画像書込みについては、更にページ例外を発生させることなく書込みが行われる。
【００８６】
別ページに対する画像書込みについては、ページ例外が発生するため、上記（Ａ５）、（Ａ６）、（Ａ７）が順次実行される。
【００８７】
このように、画面上の矩形領域に適合したページを構成し、画像の書込みが要求されたページのみに対して、当該ページへの最初の書込み時にのみページ例外を発生し、画像書込みが発生する前の画像情報のバックアップを残すことが可能となる。
【００８８】
図１２は、図１０の更新画像検出処理を説明するための図である。
【００８９】
バックエンド仮想表示部１３の検出部３０３は、例えばタイマからの定期的な割込みにより、画像情報の更新画像検出処理を実行する。更新画像検出処理とは、更新ページとして記録されたページに関して、バックアップした画像情報と現状のページの画像情報とを比較して、そのページ内で差分が存在する矩形を切り出す処理である。タイマは、例えば、ディスプレイ端末ＴＥの画面更新を１秒間に６０回行う場合であれば、１／６０秒間隔で割込みを発生するよう設定する。
【００９０】
図１２の（Ａ８）において、タイマからのトリガにより更新画像検出処理を開始する。続いて、（Ａ９）において、検出部３０３は、上記（Ａ６）で記録した情報を基に、更新ページを検出する（図１０のステップＳ２１）。（Ａ１０）では、更新ページ毎に、バックアップ記憶部３０２にバックアップした更新前の画像情報と、フレームバッファ２０２に書込まれた更新後の最新の画像情報とを比較し、更新画像の矩形を検出する（ステップＳ２２、ステップＳ２３）。尚、図１２に示すように、検出部３０３は、複数の隣接するページから、更新された領域を含む最小の矩形領域を更新画像として検出する。
【００９１】
次に、（Ａ１１）では、仮想入出力仲介部５３の送信画像生成部５０１において、検出した更新画像に対し圧縮処理を行う（図１０のステップＳ２５）。また、圧縮後の更新画像情報は、送信部５０５によってディスプレイ端末ＴＥに送信される（図１０のステップＳ２６）。尚、図１２では省略しているが、ディスプレイ端末ＴＥに圧縮された更新画像情報を送信後、バックアップ記憶部３０２にバックアップした、送信画像に対応する画像情報は破棄し、検出部３０３中にて記録した、送信画像に対応する更新ページ履歴も併せて削除する。また、フレームバッファ２０２のメモリ領域に関して、表示領域に対するページテーブルの書込みビットは全て不可に設定し直す。
【００９２】
図１３は、図１２の（Ａ１１）において更新画像を送信した後、表示領域の変更が発生した場合の更新画像検出処理を説明するための図である。表示領域変更処理は、図９に示したように、ディスプレイ端末ＴＥからの入力情報を基に、仮想表示制御部５０２がスクロールバーの移動等を検出した場合に発生し、変更後の新たな表示領域の矩形領域と、変更後の新たな非表示領域の矩形領域を算出し、表示領域に関する情報を表示領域記憶部５０３に保存する。
【００９３】
図１３の（Ａ１２）において、ディスプレイ端末ＴＥからの入力情報に基づいて、仮想表示制御部５０２により表示領域の変更が検出される（図９のステップＳ１１）と、仮想表示制御部５０２は、新しい表示領域と、非表示領域に関する情報を記憶する表示領域記憶部５０３を更新する。例えば、図１３において、ゲストＯＳの管理する画面領域（フレームバッファ）が、１０２４×７６８画素であった場合、変更前の表示領域の矩形情報（０、０、５１２、７６８）から、変更後の表示領域の矩形情報（５１２、０、５１２、７６８）のように情報を更新する。
【００９４】
次に（Ａ１３）において、仮想表示制御部５０２は、例外マスク指示部５０９を介して、仮想表示部１２の例外発生部２１５に対して、非表示となった領域に関するページテーブルの書込みビットを可に、新しい表示領域に関するページテーブルの書込みビットを不可に設定する（図９のステップＳ１２）。すなわち、新しい表示領域のページに対して描画を実行すると、例外発生部２１５によるページ例外が発生する。
【００９５】
その後、（Ａ１４）において、仮想表示制御部５０２は、更新状態変更指示部５０８を介して、非表示となった領域に関連する画像情報をバックアップ記憶部３０２から削除し、検出部３０３における更新ページの履歴も全て削除する。併せて、新しい表示領域に属するページを全て更新ページとして記録する（図９のステップＳ１３）。
【００９６】
次に（Ａ１５）において、タイマからのトリガにより、図１０の更新画像検出処理を開始する。
【００９７】
（Ａ１６）において、検出部３０３が過去の記録から更新ページを検出する（図１０のステップＳ２１）。第１の実施形態では、ページ例外発生時の記録に併せて、表示領域の変更を検出した際の記録を用いて、更新ページの検出を行う。図１３の例では、表示領域変更後のタイマ割込み時、新しい表示領域全域が更新ページとして検出されている。
【００９８】
（Ａ１７）において、更新ページ毎に、バックアップ記憶部３０２にバックアップした画像情報と、フレームバッファ２０２に書込まれた最新の画像情報とを比較し、更新画像の矩形を検出することになるが、第１の実施形態において、非表示となっている矩形領域に関しては、バックアップ情報が保存されないため、この時点で差分を取ることが出来ない。従って、全ての更新ページを更新画像として検出する（図１０のステップＳ２２、ステップＳ２４）。
【００９９】
（Ａ１８）では、検出した更新画像（新しい表示領域全域）の画像情報を基に、送信画像を生成し、ディスプレイ端末ＴＥに対して送信する（図１０のステップＳ２５〜ステップＳ２６）。
【０１００】
尚、図１１、図１２、図１３において、ページのアドレス算出を矩形画像に対応するように行った例を示したが、通常の算出方法による実施でも可能であることは言うまでもない。また、第１の実施形態では、ディスプレイ端末ＴＥが備えるフレームバッファの容量が、出力可能な解像度と同じである場合について述べた。すなわち、表示画像の送信側である仮想計算機サーバ装置１００が、表示領域の変更を検出する度に、新しい表示領域の全域を更新画像として送信することで、受信側のディスプレイ端末ＴＥでは、１画面分の容量に相当するフレームバッファを備えるのみで良い。すなわち、ディスプレイ端末の解像度が１０２４×７６８画素、１画素当たりの色情報が４バイトである場合、ネットワークを介して接続された仮想計算機サーバ装置１００のゲストＯＳの数、ゲストＯＳの解像度によらず、ディスプレイ端末は、１０２４×７６８×４バイトのメモリ容量のフレームバッファを備えるだけで良い。
【０１０１】
以上説明したように、上記第１の実施形態によれば、画像情報に、ネットワークを介して接続された端末装置ＴＥにて表示される表示領域と表示されない非表示領域とが存在する場合に、仮想計算機サーバ装置１００は当該画像情報のうち表示領域に対してのみ更新画像の検出を行う。この結果、該端末装置で表示される画像を更新するための更新画像の送信の検出・送信を効率よく（少ない処理量で）行うことが可能となる。
【０１０２】
［第２の実施形態］
次に、第２の実施形態について説明する。第２の実施形態では、表示領域の変更が生じた際に、新しい表示領域に対して、更新の有無を検査する手段を講じることにより、効率良く更新画像を行うことが可能となるものである。第１の実施形態では、新しい表示領域の全域を更新領域として検出し、ディスプレイ端末に送信していたが、第２の実施形態では、実際に更新があった部分のみ送信する。従って、ディスプレイ端末は自身が利用するゲストＯＳのフレームバッファの全内容を記憶するためのフレームバッファを有する。
【０１０３】
図１において、例えばゲストＯＳ１の管理する画面領域（フレームバッファ）の容量が、１０２４×７６８×４（横画素×縦画素×１画素当たりのバイト数）バイト、ゲストＯＳ２の管理する画面領域の容量が同じく１０２４×７６８×４バイトである場合、ネットワークを介して接続されたディスプレイ端末ＴＥ１は、各々のゲストＯＳに関連付けた２つの仮想フレームバッファ（メモリ容量は、いずれも１０２４×７６８×４バイト）を備える。
【０１０４】
また、ゲストＯＳ３が１６００×１２００×４バイトのメモリ容量に相当する画面領域を管理している場合、ディスプレイ端末ＴＥ２は、表示デバイス６０６への出力に直結したフレームバッファの容量によらず、同等の１６００×１２００×４バイトのメモリ容量に相当する仮想フレームバッファを備える。
【０１０５】
尚、フレームバッファ６０２は、上述の第１の実施形態の場合と同様に、表示デバイス６０６の出力解像度に併せた容量を確保する。すなわち、ディスプレイ端末の出力解像度が１０２４×７６８画素の場合、１画素当たりのバイト数が４バイトであるとすると、１０２４×７６８×４バイトの容量のフレームバッファを備え、当該フレームバッファに対して画像情報を書込むことで、出力（描画）処理を実行する。
【０１０６】
図１４は、第２の実施形態に係るディスプレイ端末ＴＥの構成例を示したもので、複数の仮想フレームバッファ６０８を備えている。
【０１０７】
第２の実施形態では、ゲストＯＳの画面領域が、ディスプレイ端末ＴＥの表示デバイス６０６にて出力可能な解像度を超えている場合や、複数のゲストＯＳの画面を同時に表示する場合であっても、図１４に示すように、利用中の複数のゲストＯＳのそれぞれが備える複数のフレームバッファ２０２と同等の容量の、複数の仮想フレームバッファ６０８を備える。これは、サーバ装置において、表示領域の変更発生時に、実際に変更があった領域のみを検出し、ディスプレイ端末に送信することで、第１の実施形態と比べ、より効率的な画像の検出を行うことから、ディスプレイ端末がゲストＯＳのフレームバッファに相当する記憶領域を備える必要があるためである。
【０１０８】
例えば、図１、図３の例において、ゲストＯＳ３の画面領域が１６００×１２００画素である場合、ディスプレイ端末ＴＥも同じく１６００×１２００画素分の仮想フレームバッファ６０８を備える必要がある。セッション接続の開始直後や表示領域の変更後、表示領域に関する情報をディスプレイ端末ＴＥと仮想計算機サーバ装置１００とがネゴシエーションすることにより、ディスプレイ端末ＴＥにおける画面生成部６０３は、表示領域に一致する画像情報のみを仮想フレームバッファ６０８から取得し、フレームバッファ６０２への描画を実行することで、表示処理を実現する。ディスプレイ端末ＴＥと仮想計算機サーバ装置１００は、セッション接続の開始直後、もしくは表示領域の変更後に、表示領域に関する情報（対応するゲストＯＳ情報、表示領域の矩形情報）を、ネットワークを介してネゴシエーションする。
【０１０９】
表示領域に関する情報は、セッション情報記憶部６０４に記憶することが望ましい。尚、スクロールバー表示を仮想計算機サーバ装置１００が生成し、画像情報を送信する場合、ディスプレイ端末ＴＥは、スクロールバーの画像情報を記憶するための仮想フレームバッファを併せて用意する。
【０１１０】
第２の実施形態は、ディスプレイ端末ＴＥにおいて、確保すべきメモリ容量は増えるが、画像情報の送信側となる仮想計算機サーバ装置１００における、更新画面の検出処理を、第１の実施形態と比較し、より効率的に実施することが可能となる。すなわち、第１の実施形態においては、画面領域に変更が発生した際、仮想計算機サーバ装置１００は、新しい表示領域の全領域を更新画像として検出し、画像情報を送信する。一方、第２の実施形態においては、表示領域の範囲が変更した後も、仮想計算機サーバ装置１００は、更新が発生した矩形領域のみを検出し、更新画像情報を送信する。すなわち、非表示領域が、表示領域の範囲の変更に伴い、表示領域となった場合であっても、更新領域を効率的に検出する。
【０１１１】
図１５は、第２の実施形態に係る表示領域変更処理を説明するためのフローチャートである。第１の実施形態では、図９に示したように、表示領域の変更を検出した場合に、新しい表示領域全てを更新画像として記録していた。これに対し、第２の実施形態に係る仮想計算機サーバ装置１００は、ページ更新時に変更される変換テーブルのビット値を、表示領域に変更が発生した時点で検査することにより、更新ページのみを検出する。
【０１１２】
すなわち、図１５において、図９と同様に、ページの書込みビットの制御を行った後（ステップＳ３１〜ステップＳ３２）、領域変更後の新たな表示領域に属するページの更新ビットを検査する。更新ビットが、データの書込が行われたことを示す「１」（負論理の場合は「０」）の場合に、当該ページを更新ページとして検出し、記録する（ステップＳ３３）。
【０１１３】
ここで、ステップＳ３３における、更新ビットを用いて更新ページを検出する処理全体の流れを説明する。仮想計算機サーバ装置１００のグラフィックライブラリ１１１により、描画命令処理、アドレス算出処理、および物理アドレス取得処理が行われた後、変更部２１３は、変換テーブルのアクセスビットおよび更新ビットを「１」に変更する。アクセスビットが「１」であることは、当該ページがアクセスされたことを示している。尚、第１の実施形態の画像書込み処理（図８参照）では、アクセスビットおよび更新ビットの変更処理の記載を省略していたが、実際には同様のビット変更処理が実行されている。
【０１１４】
次に、書込み部２１４は、取得部２１２が取得した物理アドレスに対して、要求された画像情報を書込み、画像書込み処理を終了する。表示領域に変更が発生した際、第２の実施形態では、仮想表示制御部５０２は更新スキャン指示部５１０を介して、更新ページを検出のための更新ビットの検査を行うよう検出部３０３に指示する。
【０１１５】
第２の実施形態に係る検出部３０３は、第１の実施形態において述べた、例外発生部２１５からの例外情報を基に、例外が発生したページを、画像情報が更新されたページとして記録する手段に加え、アクセスビットおよび更新ビットが「１」（負論理の場合は「０」）であるページを更新ページとして検出し、記録する手段を有する。
【０１１６】
次に、図１６〜図１８を参照して、第２の実施形態に係る画像書込み処理および更新画像検出処理をより具体的に説明する。
【０１１７】
図１６は、画像書込み処理を説明するための図である。
【０１１８】
図１６の（Ｂ１）において、アプリケーション部１１が画面表示のためにグラフィックライブラリ１１１を介して、フレームバッファに対する描画命令を送る。（Ｂ２）において、メモリ管理部２０１は、変換テーブルを参照して、グラフィックライブラリ１１１からの描画命令で指定された仮想アドレスを物理アドレスに変換する。（Ｂ１）に示すような非表示領域に対する描画実行時には、ページ例外が発生しないが、変更部２１３は、当該仮想アドレスの上位１０ビットに対応するページディレクトリのエントリのアクセスビットを「１」に変更する。更に、変更部２１３は、そのエントリが示すページテーブルに関して、当該仮想アドレスの中位１０ビットに対応するエントリのアクセスビットと更新ビットを「１」（負論理の場合は「０」）に変更する。
【０１１９】
画像書込み時のアクセスビットと更新ビットの値変更処理は、第１の実施形態においても同様に実施されている。アクセスビット、更新ビットの変更後、グラフィックライブラリ１１１による画像書込み処理は続行される。
【０１２０】
（Ｂ３）では、表示領域に対する書込みが実施された場合を示している。第１の実施形態にて述べたように、（Ｂ４）、（Ｂ５）、（Ｂ６）、（Ｂ７）において、ページ例外の発生に伴う更新ページの記録と、画像情報のバックアップ、書込みビットの変更制御を実施する。
【０１２１】
（Ｂ８）において、表示領域の変更が実施された様子を示している。この場合、（Ｂ９）において、表示領域に対してのみ、ページ例外を発生させるように書込みビットの変更処理を行う。
【０１２２】
（Ｂ１０）では、アクセスビットおよび更新ビットの検査を、新しい表示領域に対して実行する。当該新たな表示領域が非表示領域であった期間中に、書込み処理が実施されたページ（すなわち、アクセスビットおよび更新ビットが「１」（負論理の場合は「０」）である更新ページ）が存在するかどうかを判定する。
【０１２３】
図１７は、更新画像検出処理を説明するための図である。（Ｂ１１）において、例えばタイマからの定期的な割込みにより、検出部３０３は、画像情報の更新画像検出処理を実行する。（Ｂ１２）において、検出部３０３は、図１５のステップＳ３３で記録された更新ページの履歴情報と、その時点の表示領域に関するページ情報とを比較し、更新ページを検出する。図１７では、表示領域変更時に実行するアクセスビットおよび更新ビットを検査することにより、当該時点において表示領域に属するページ群のなかから、アクセスビットおよび更新ビットが「１」（負論理の場合は「０」）であるページを更新ページとして検出する。
【０１２４】
（Ｂ１３）において、検出部３０３は、検出した更新ページに対応する画像情報をバックアップ記憶部３０２から取得し、取得した画像情報とフレームバッファ２０２に記憶されている最新の画像情報とを比較し、相違箇所を更新画像として検出する。しかし、図１７の更新検出処理の時点で表示されている領域は、図１６における非表示領域の期間中に書込み処理が実施された領域であり、ページ例外発生に伴う画像のバックアップ処理を行っていない。そのため、検出部３０３は、更新ページの全領域を更新画像として検出する。
【０１２５】
（Ｂ１４）では、更新画像を元に送信画像を生成（画像圧縮処理等を実施）し、ディスプレイ端末ＴＥに対して送信する。尚、図中では省略しているが、ディスプレイ端末ＴＥに更新画像の圧縮画像情報を送信後、バックアップ記憶部３０２にバックアップした、送信画像に対応する画像情報は破棄し、検出部３０３中にて記録した、送信画像に対応する更新ページ履歴も併せて削除する。また、フレームバッファ２０２のメモリ領域に関して、表示領域に対するページテーブルの書込みビットは全て不可に設定する。
【０１２６】
図１８は、表示領域が再び変更された場合の処理動作を示す図である。図１８の例では、図１６において当初表示領域であった領域が、一旦非表示領域となった後、再度表示領域となった場合の例を示している。
【０１２７】
（Ｂ１５）、（Ｂ１６）、（Ｂ１７）において、表示領域の変更処理が実施される。（Ｂ１７）では、アクセスビットおよび更新ビットの検査による更新ページの判定が行われるが、ページ例外による更新ページの判定が既に行われているため、更新状態をそのまま用いる。
【０１２８】
（Ｂ１８）において、タイマからの定期的な割込みにより、更新画像検出処理が開始される。（Ｂ１９）において、検出部３０３は更新ページ情報を履歴から取得する。この時点で更新ページとして検出されるページは、過去に表示領域であった際に、ページ例外発生時の更新判定に伴う記録を用いている。
【０１２９】
（Ｂ２０）において、検出した更新ページに対応する画像情報をバックアップ記憶部３０２から取得し、取得した画像情報と最新の画像情報とを比較し、相違箇所を更新画像として検出する。図１８の場合、更新ページは、過去に表示領域であった際に、ページ例外発生時にバックアップ処理を実行している。従って、バックアップ記憶部３０２に記憶されている更新前のバックアップ画像とフレームバッファ２０２に記憶されている更新後の画像との差分を取ることにより、相違箇所のみを更新画像として検出する。
【０１３０】
（Ｂ２１）において、仮想計算機サーバ装置１００は、検出した更新画像を用いて送信画像を生成し、ディスプレイ端末ＴＥに対して送信する。尚、図１８では図１７と同様に省略しているが、ディスプレイ端末ＴＥに更新部分の圧縮画像情報を送信後、バックアップ記憶部３０２にバックアップした、送信画像に対応する画像情報は破棄し、検出部３０３中にて記録した、送信画像に対応する更新ページ履歴も併せて削除する。また、フレームバッファ２０２のメモリ領域に関して、表示領域に対するページテーブルの書込みビットは全て不可に設定する。
【０１３１】
第２の実施形態では、ディスプレイ端末ＴＥ側でメモリ領域を多めに用意する必要があるが、第１の実施形態と比較し、表示領域変更時に、仮想計算機サーバ装置１００側で更新ページとして検出される領域が少なくなる結果、送信画像の生成処理やネットワーク上で伝送される画像情報の情報量、ディスプレイ端末ＴＥ上での表示画面生成処理（画像伸長処理）に要する負荷が少なくなり、より効率的な更新検出を実施することが可能となる。
【０１３２】
尚、表示領域の変更発生時に、ディスプレイ端末ＴＥが新しい表示領域に関する情報を判断する方法としては、仮想計算機サーバ装置１００が表示領域に関する情報（矩形情報）を別途通知する方法や、仮想計算機サーバ装置１００から受信した更新画像情報の矩形情報を基に、表示領域の変更判定を自身で実施する方法などが考えうるが、いずれの方法を用いても良い。
【０１３３】
以上説明したように、上記第２の実施形態によれば、画像情報に、ネットワークを介して接続された端末装置ＴＥにて表示される表示領域と表示されない非表示領域とが存在する場合に、仮想計算機サーバ装置１００は当該画像情報のうち表示領域に対してのみ更新画像の検出を行う。この結果、該端末装置で表示される画像を更新するための更新画像の送信の検出・送信を効率よく（少ない処理量で）行うことできる。
【０１３４】
［第３の実施形態］
第１および第２の実施形態では、ページ例外を利用して更新ページの検出と画像情報のバックアップを行った。これに対し、第３の実施形態に係る仮想計算機サーバ装置１００は、ページ更新時に変更される変換テーブルのビット値を参照することにより、表示領域の更新ページを検出するものである。
【０１３５】
第３の実施形態における画像書込み処理および更新画像検出処理について、図１９および図２０を参照して説明する。
【０１３６】
図１９は、画像書込み処理の全体の流れを示すフローチャートである。
【０１３７】
図１９においてステップＳ４１〜ステップＳ４４の描画処理、アドレス算出処理、および物理アドレス取得処理は、第１および第２の実施形態に係る仮想計算機サーバ装置１００における処理（図８のステップＳ１〜ステップＳ４）と同様であるため、その説明を省略する。
【０１３８】
ステップＳ４４において、取得部２１２により物理アドレスが取得された後、変更部２１３は、変換テーブルのアクセスビットおよび更新ビットを「１」（負論理の場合「０」）に変更する（ステップＳ４５）。続いて、取得部２１２が取得した物理アドレスに対して、書込み部２１４が要求された画像情報をフレームバッファ２０２に書込み（ステップＳ４６）、画像書込み処理を終了する。
【０１３９】
このように、第３の実施形態の画像書込み処理では、ページ例外を発生させ、ページ例外を発生したページを更新ページとして記録した上で、ページのバックアップを保存する処理が削除された点が、第１および第２の実施形態と異なっている。従って、ページテーブルの書込みビットは全て可となる。
【０１４０】
図２０は、更新画像検出処理を説明するためのフローチャートである。定期的なタイマ割込みに基づいて、検出部３０３は、表示領域の中から、アクセスビットおよび更新ビットが「１」（負論理の場合「０」）であるページを更新ページとして検出する（ステップＳ５１）。
【０１４１】
続いて、検出部３０３は、検出した更新ページに対応する画像情報をバックアップ記憶部３０２から取得し、取得した画像情報と、フレームバッファ２０２に記憶されている最新の画像情報とを比較し、相違箇所を更新画像として検出する（ステップＳ５２）。
【０１４２】
第１及び第２の実施形態と同様、圧縮画像を生成し、これを転送した後（ステップＳ５３、ステップＳ５４）、保存部３０１は、フレームバッファ２０２に書込んだ最新の画像情報のバックアップ記憶部３０２に保存し（ステップＳ５５）、検出処理を終了する。
【０１４３】
尚、第３の実施形態に係るディスプレイ端末ＴＥは、図７と同様である。また、表示領域の変更を検出した場合、仮想計算機サーバ装置１００は、新たな表示領域の全域を更新ページとして検出し、ディスプレイ端末ＴＥに対して、画像情報を送信する。すなわち、表示領域の変更を検出した場合、仮想表示制御部５０２は、更新状態変更指示部５０８を介して、バックエンド仮想表示制御部１３の検出部３０３に対し更新ページの検出を指示する。これを受けて検出部３０３は、新しい表示領域に属する全ページを更新ページとして検出し、記録する。さらに、非表示領域に属するページの更新状態を削除させる。
【０１４４】
第１および第２の実施形態とは異なり、表示領域変更検出時に、ページテーブルの書込みビットの制御を行うことはない。また、仮想表示制御部５０２は、更新状態変更指示部５０８を介して、非表示領域に対応するバックアップ情報を、バックアップ記憶部３０２から削除する。尚、ディスプレイ端末ＴＥに更新部分の圧縮画像情報を送信後、検出部３０３中にて記録した、送信画像に対応する更新ページ履歴を削除する。
【０１４５】
以上説明したように、上記第３の実施形態によれば、画像情報に、ネットワークを介して接続された端末装置ＴＥにて表示される表示領域と表示されない非表示領域とが存在する場合に、仮想計算機サーバ装置１００は当該画像情報のうち表示領域に対してのみ更新画像の検出を行う。この結果、該端末装置で表示される画像を更新するための更新画像の送信の検出・送信を効率よく（少ない処理量で）行うことできる。
【０１４６】
［第４の実施形態］
第４の実施形態は、ページ更新時に変更される変換テーブルのビット値を参照することにより、表示領域の更新ページを検出するものである。第４の実施形態において、ディスプレイ端末ＴＥは、図１４に示したように、（複数の）ゲストＯＳのフレームバッファの内容を記憶するための複数の仮想フレームバッファ６０８を備えるものとする。また、第４の実施形態において、画像書込み処理と更新検出処理は、それぞれ第３の実施形態で説明した、図１９および図２０と同様である。
【０１４７】
第４の実施形態において、表示領域の範囲の変更を検出した場合、新しい表示領域に対応する変換テーブルを検査し、アクセスビットと更新ビットの両方が「１」（負論理の場合「０」）であるページを更新ページとして検出し、記憶する処理を実施する。または、第４の実施形態においては、通常、表示領域に対してタイマ割込み毎に、変換テーブル上のアクセスビット及び更新ビットの検査処理（変換テーブルの検査処理）とバックアップ処理を行うため、表示領域変更の検出時に、必ずしも追加で当該検査処理を実施する必要はない。
【０１４８】
尚、仮想表示制御部５０２が表示領域の変更を検出した場合、即座に変換テーブル検査処理を実施しても良い。また、領域変更後の最初のタイマ割込みに伴う更新画像検出処理（図１０）では、更新ページの検出処理開始時点までの範囲内であれば、任意のタイミングで、表示領域に対応する変換テーブルの検査処理を実施することが可能であることは言うまでもない。これは第２の実施形態についても同様である。
【０１４９】
第４の実施形態では、ディスプレイ端末ＴＥ側でメモリ領域を多めに用意する必要がある。しかし、第３の実施形態と比較し、表示領域変更時に、仮想計算機サーバ装置１００側で更新ページとして検出される領域が少なくなる。そのため、送信画像の生成処理やネットワーク上で伝送される画像情報の情報量、ディスプレイ端末上での表示画面生成処理（画像伸長処理）に要する負荷が少なくなり、より効率的な更新検出を実施することが可能となる。
【０１５０】
尚、表示領域の変更発生時に、ディスプレイ端末ＴＥが新しい表示領域に関する情報を判断する方法としては、仮想計算機サーバ装置１００が表示領域に関する情報（矩形情報）を別途通知する方法がある。また、仮想計算機サーバ装置１００から受信した更新画像情報の矩形情報を基に、表示領域の変更判定を自身で実施する方法なども考えられる。これらのいずれの方法を用いても良い。
【０１５１】
以上説明したように、第４の実施形態によれば、画像情報に、ネットワークを介して接続された端末装置ＴＥにて表示される表示領域と表示されない非表示領域とが存在する場合に、仮想計算機サーバ装置１００は当該画像情報のうち表示領域に対してのみ更新検出を行って、該更新画像を端末装置へ送信することで、該端末装置へ送信すべき更新画像の検出・送信を効率よく（少ない処理量で）行うことできる。
【０１５２】
本発明の実施の形態に記載した本発明の手法（特に図４〜図６に示した仮想計算機サーバ装置１００の各構成部）、は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０１５３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１５４】
【図１】システム全体の構成例を示す図。
【図２】図１におけるゲストＯＳ１、ゲストＯＳ２の画面と、ディスプレイ端末ＴＥ１における表示画面の関係を示した図。
【図３】図１におけるゲストＯＳ３の画面と、ディスプレイ端末ＴＥ２における表示画面の関係を示した図。
【図４】仮想計算機サーバ装置の構成例を示す図。
【図５】仮想計算機サーバ装置の各ゲストＯＳ対応部の構成例を示した図。
【図６】仮想計算機サーバ装置の仮想入出力仲介部の構成例を示す図。
【図７】第１の実施形態に係るディスプレイ端末の構成例を示す図。
【図８】仮想計算機サーバ装置の画像書込処理を説明するためのフローチャート。
【図９】仮想計算機サーバ装置の表示領域変更処理を説明するためのフローチャート。
【図１０】仮想計算機サーバ装置の更新画像検出処理を説明するためのフローチャート。
【図１１】図８の画像書込み処理を説明するための図。
【図１２】図１０の更新画像検出処理を説明するための図。
【図１３】更新画像を送信した後、表示領域の変更が発生した場合の更新画像検出処理を説明するための図。
【図１４】第２の実施形態に係るディスプレイ端末の構成例を示す図。
【図１５】第２の実施形態に係る表示領域変更処理を説明するためのフローチャート。
【図１６】第２の実施形態に係る画像書込み処理を説明するための図。
【図１７】第２の実施形態に係る更新画像検出処理を説明するための図。
【図１８】図１６において当初表示領域であった領域が、一旦非表示領域となった後、再度表示領域となった場合の処理動作を説明するための図。
【図１９】第３の実施形態に係る画像書込処理を説明するためのフローチャート。
【図２０】第３の実施形態に係る更新画像検出処理を説明するためのフローチャート。
【符号の説明】
【０１５５】
１００…仮想計算機サーバ装置
ＴＥ１、ＴＥ２…端末装置
５１…ホストＯＳ
５２…ゲストＯＳ対応部
５３…仮想入出力仲介部
１１…アプリケーション部
１２…仮想表示部
１３…バックエンド仮想表示部
１４…バックエンド仮想入力部
【図１】
0004810548.tif 000002
【図２】
0004810548.tif 000003
【図３】
0004810548.tif 000004
【図４】
0004810548.tif 000005
【図５】
0004810548.tif 000006
【図６】
0004810548.tif 000007
【図７】
0004810548.tif 000008
【図８】
0004810548.tif 000009
【図９】
0004810548.tif 000010
【図１０】
0004810548.tif 000011
【図１１】
0004810548.tif 000012
【図１２】
0004810548.tif 000013
【図１３】
0004810548.tif 000014
【図１４】
0004810548.tif 000015
【図１５】
0004810548.tif 000016
【図１６】
0004810548.tif 000017
【図１７】
0004810548.tif 000018
【図１８】
0004810548.tif 000019
【図１９】
0004810548.tif 000020
【図２０】
0004810548.tif 000021