JP4810548B2 - サーバ装置、更新画像検出方法およびプログラム - Google Patents

サーバ装置、更新画像検出方法およびプログラム Download PDF

Info

Publication number
JP4810548B2
JP4810548B2 JP2008027836A JP2008027836A JP4810548B2 JP 4810548 B2 JP4810548 B2 JP 4810548B2 JP 2008027836 A JP2008027836 A JP 2008027836A JP 2008027836 A JP2008027836 A JP 2008027836A JP 4810548 B2 JP4810548 B2 JP 4810548B2
Authority
JP
Japan
Prior art keywords
page
update
image information
display area
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008027836A
Other languages
English (en)
Other versions
JP2009187379A (ja
JP2009187379A5 (ja
Inventor
泰如 西林
真孝 後藤
美佳 峰松
信哉 村井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008027836A priority Critical patent/JP4810548B2/ja
Priority to US12/365,576 priority patent/US8255900B2/en
Publication of JP2009187379A publication Critical patent/JP2009187379A/ja
Publication of JP2009187379A5 publication Critical patent/JP2009187379A5/ja
Application granted granted Critical
Publication of JP4810548B2 publication Critical patent/JP4810548B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/16Use of wireless transmission of display information
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory

Description

本発明は、ネットワークを介して接続された端末装置で表示される画像を更新するための更新画像を送信する仮想計算機サーバ装置に関する。
ユーザビリティの向上を目的として、最低限の入出力インターフェースを有する端末装置をユーザ側に配し、複雑な演算処理は遠隔地に位置する本体装置上で実行するコンピューティングシステムがある。
例えば本体装置(パーソナルコンピュータ、サーバコンピュータ等)の画面情報を、ネットワークを介して遠隔のディスプレイ端末に投影するシステムの形態が既に提案されている(例えば特許文献1参照)。
このシステムの場合、ディスプレイ端末からの入力情報(デジタイザによるペン入力等)は、同じくネットワークを介して本体装置に送信され、実際のアプリケーションプログラム処理は本体装置が実行する。その後、実行結果及び画面更新情報がネットワークを介してディスプレイ端末に転送される。端末装置は、受信された画面更新情報により出力(描画)処理を実行する。
また、遠隔ネットワーク上の本体装置からの画面情報を端末装置へ効率良く伝送するための技術として、VNC(Virtual Network Computing)が知られている。VNCでは、画面の更新を検知した際、読み出した画素情報の値を前回表示端末に伝送した画素情報の値と比較し、前回から変化した更新画面領域を決定する。更に更新画面領域を静止画圧縮した後、表示端末に対して、圧縮した画面の差分情報のみを伝送することにより、通信帯域の消費を抑えることができる。
一方、コンピュータのCPU(Central Processing Unit)や記憶装置等のリソースを仮想化した上で、その仮想化したコンピュータを実行する仮想計算機技術が存在する。仮想計算機技術は、一台の物理的なコンピュータ上で、複数のゲストOS(Operating System)を同時に動作させることが可能な技術である。尚、ゲストOSに変更を施さない場合は完全仮想化、ゲストOSに一部の改変を行う場合は、準完全仮想化と呼ばれる。また、複数のゲストOSを管理するOSを、ホストOSと呼ぶ。
ここで、仮想計算機サーバ装置上で動作しているアプリケーション等の表示画面を端末装置上に表示するシステムを考えた場合、フレームバッファから効率良く画像情報を取得し、外部装置に転送する必要がある。また、端末装置側で実際に表示される内容が、ゲストオペレーティングシステムが管理する画面領域全体の中で一部の領域に限られる場合、従来技術にて述べられている手段を単純に適用すると、画面領域全域に対する更新検出処理を行う必要がある。この場合、端末装置上の非表示領域に対する更新の検出まで余分に行うことになり、仮想計算機サーバ装置上の処理効率が悪い問題がある。
米国特許第6784855号明細書
上述したように、従来技術では、ネットワークを介して接続された端末装置にて表示される画面領域が、画像情報を送信する仮想計算機サーバ装置上の画面領域の一部分に制限される場合、端末装置で表示される表示領域に加え、端末装置で表示されない非表示領域に対しても更新部分の検出を行う必要があり、仮想計算機サーバ装置における処理効率が悪いという問題点があった。
そこで、本発明は、上記問題点に鑑みなされたもので、端末装置で表示される表示領域と該端末装置で表示されない非表示領域とが存在する画像情報が更新されたときに、該端末装置で表示される画像を更新するための更新画像を効率よく検出可能な仮想計算機サーバ装置及び更新画像検出方法を提供することを目的とする。
アプリケーションプログラムを動作させることにより生成される画像情報を、ネットワークを介して端末装置に送信して表示させるサーバ装置は、
生成した画像情報を予め定められたサイズのメモリであるページ毎に分割して記憶する画像情報記憶手段と、
前記画像情報記憶手段に記憶された前記画像情報を、アプリケーションプログラムの動作に応じて更新する更新手段と、
前記画像情報記憶手段に記憶されている画像情報のうち、前記端末装置に送信され、該端末装置が有する表示画面に表示されている表示領域の画像情報が記憶されているページのなかから、前記更新手段により更新される画像情報を含むページを更新ページとして検出する更新ページ検出手段と、
前記更新ページの更新前の画像情報と更新後の画像情報とから、前記更新手段により更新された画像情報を検出する更新画像検出手段と、
前記更新画像検出手段で検出された画像情報から送信画像情報を生成する送信画像生成手段と、
前記送信画像情報を前記端末装置へ送信する送信手段と、
前記更新ページの更新前の画像情報を記憶するバックアップ記憶手段と、
を備え、
前記更新画像検出手段は、
(a)前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されているとき、当該更新ページの更新前の画像情報と更新後の画像情報との差分を前記更新された画像情報として検出し、
(b)前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されていないとき、当該更新ページの更新後の画像情報を前記更新された画像情報として検出することを特徴とする
端末装置で表示される表示領域と該端末装置で表示されない非表示領域とが存在する画像情報が更新されたときに、該端末装置で表示される画像を更新するための更新画像を効率よく検出できる。
以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
図1は、第1の実施形態に係るシステム構成例を示す図である。仮想計算機サーバ装置100では、基盤として稼動するホストOS(Operating System)上で、複数のゲストOSが並列的に動作している。各々のゲストOSは、各種処理を提供するアプリケーションプログラムを実行しており、それぞれ表示画面を個別に生成する。仮想計算機サーバ装置100は通信インターフェースを有しており、画面を表示させるための画像情報を生成した後、ネットワークを介して接続されたディスプレイ端末に向けて送信する。
ディスプレイ端末TE1、TE2は、仮想計算機サーバ装置100と同様、通信インターフェースを有しており、仮想計算機サーバ100が送信した画像情報を、ネットワークを介して受信した後、表示用の画面を生成した上で、出力(描画)処理を実行する。図1のディスプレイ端末TE1は、仮想計算機サーバ装置100のゲストOS1とゲストOS2の画面を同時に表示している。また、ディスプレイ端末TE2は、ゲストOS3の画面を表示している。
ディスプレイ端末に対して入力操作を行うと、入力情報はネットワークを介して仮想計算機サーバ装置100に配送され、対応するゲストOSへの入力として振り分けられた後、アプリケーション処理が実行される。アプリケーション処理実行の結果として、ゲストOSの画面に更新が発生する場合、仮想計算機サーバ装置100は、更新部分の画像情報をディスプレイ端末に対して送信する。
図2は、図1におけるゲストOS1、ゲストOS2の画面と、ディスプレイ端末TE1における表示画面の関係を表した図である。ゲストOS1、ゲストOS2は、互いが干渉することなく独立したフレームバッファを持ち、アプリケーションの処理結果に基づいた描画処理をそれぞれ実行している。図2の例において、例えばゲストOS1、ゲストOS2の画面領域がそれぞれXGA(eXtended Graphic Array:1024×768画素)サイズで、ディスプレイ端末TE1の出力解像度も同様にXGAサイズであった場合、両方のゲストOSの画面全領域を同時に表示することは不可能である。従って、ゲストOS1、ゲストOS2の双方において、ディスプレイ端末TE1にて表示される矩形領域と、表示されない矩形領域とが発生する。
図3は、図1におけるゲストOS3の画面と、ディスプレイ端末TE2における表示画面の関係を示した図である。例えばゲストOS3の画面領域がUXGA(Ultra eXtended Graphic Array:1600×1200画素)サイズで、ディスプレイ端末TE2の出力解像度がVGA(Video Graphic Array:640×480画素)サイズであるような場合も、図2の例と同様に、ゲストOS3の画面全体を表示することが不可能である。そのため、この例においても、ディスプレイ端末TE2にて表示される矩形領域と、表示されない矩形領域とが発生する。ここで、スクロールバーは、仮想計算機サーバ装置側で画像情報を生成し、ネットワークを介して、ディスプレイ端末に表示させても良い。
ところで、フレームバッファに記憶された画像情報の更新部分(更新画像)の検出方法としては、一定周期毎に、過去に表示した画面領域の画素情報と最新の画面領域の画素情報とを比較して検出する方法、フレームバッファへ書き込みを行うソフトウェアが更新部分の座標情報(矩形情報)を申告し検出する方法等が一般的に考えうる。前者の方法では、画面領域全域の画素情報の比較に伴う処理負荷が高く、後者の方法では、更新部分の座標情報を申告するようにソフトウェアの手続きを変更する必要がある。
仮想計算機環境において、ゲストOS上のアプリケーションが、描画処理に伴う情報をホストOS側に申告するためには、オペレーティングシステムに改変を加える必要がある他、申告のためにオーバーヘッドが増加する問題がある。更に、図1、図2、図3の例で示したように、ネットワークを介して接続された端末装置(ディスプレイ端末TE1、TE2)にて、表示される領域と表示されない領域が存在する場合、非表示の矩形領域に対する更新検出処理は、仮想計算機サーバ装置100にとって無駄な処理が増加する問題がある。
そこで、本発明における仮想計算機サーバ装置では、端末装置にて表示されている領域に対応するページ単位に更新部分を検出して表示画像を送信することにより、更新画面を効率良く処理可能とする。
図4は、第1の実施形態に係る仮想計算機サーバ装置100の構成例を示したものである。図4に示すように、仮想計算機サーバ装置100は、ネットワークを介して、ユーザが操作を行う端末装置(以降、ディスプレイ端末と呼ぶ)TE1、TE2と接続されている。ディスプレイ端末TE1、TE2は、それぞれ、仮想計算機サーバ装置100から転送された画像情報を自装置内の表示部に表示する機能を有する。また、ディスプレイ端末TE1、TE2は、それぞれ、仮想計算機サーバ装置100から転送された画面の更新部分の画像情報、すなわち、更新画像を受信し、受信した更新画像によって表示画面を更新する機能を持つ。
図4の仮想計算機サーバ装置100は、装置を動作させる基盤となるホストOS51と、複数のゲストOS(ここではゲストOS1、ゲストOS2、ゲストOS3の3つ)のそれぞれに対応する複数のゲストOS対応部52a〜52cと、仮想入出力仲介部53とを含む。
各ゲストOS対応部52(52a、52b、52c)は、対応するゲストOS(1,2,3)、アプリケーション部11(11a、11b、11c)、仮想表示部12(12a、12b、12c)、バックエンド仮想表示部13(13a、13b、13c)、及びバックエンド仮想入力部14(14a、14b、14c)を含む。
すなわち、ゲストOS1に対応するゲストOS対応部52aは、ゲストOS1と、アプリケーション部11aと、仮想表示部12aと、バックエンド仮想表示部13aと、バックエンド仮想入力部14aとを含む。
ゲストOS2に対応するゲストOS対応部52bは、ゲストOS2と、アプリケーション部11bと、仮想表示部12bと、バックエンド仮想表示部13bと、バックエンド仮想入力部14bとを含む。
ゲストOS3に対応するゲストOS対応部52cは、ゲストOS3と、アプリケーション部11cと、仮想表示部12cと、バックエンド仮想表示部13cと、バックエンド仮想入力部14cとを含む。
ゲストOS1、2、3は、仮想的な計算機環境を動作させるOSであり、ホストOS51上で動作する。アプリケーション部11a、11b、11cは、それぞれ、ゲストOS1,2,3上で動作する各種処理を提供するプログラムを実行する。
仮想表示部12a、12b、13cは、それぞれ、ゲストOS1,2,3が生成する画像情報を出力するための仮想的な表示装置であり、画像情報を記憶するフレームバッファを含むものであり、ホストOS上で動作する
バックエンド仮想表示部13a、13b、13cは、それぞれ、画像表示に関する共通処理を実行するものであり、ホストOS51上で動作する。バックエンド仮想入力部14a,14b、14cは、それぞれ、マウス操作やキーボード操作による入力情報を、それぞれのゲストOS1、2、3に適した形式にした上で通知する処理を実行するものであり、バックエンド仮想表示部と同様に、ホストOS51上で動作する。
仮想入出力仲介部53は、画像情報や入力情報の送受信処理や、ディスプレイ端末TE1、TE2にて表示される画面領域の管理を行う。仮想入出力仲介部53も、ホストOS51上で動作する。
尚、図4は、3つのゲストOSが仮想計算機サーバ装置100上で動作中の場合の例を示しており、アプリケーション部、仮想表示部、バックエンド仮想表示部、バックエンド仮想入力部も、それぞれゲストOSに対応した数が存在だけする。
図5を用いて、仮想計算機サーバ装置100の各ゲスト対応部52の詳細な構成について説明する。
ゲストOSは、画像表示に関する機能として、グラフィックライブラリ111を備えている。この他、画像表示に関する機能以外にも、仮想的な計算機環境を動作するために必要なあらゆる機能を備えている。グラフィックライブラリ11は、レンダラ112と、アドレス算出部113とを備えている。
レンダラ112は、アプリケーションなどから指定された描画命令に従い、各種画像処理を行った後、その結果として画像情報を出力する。例えば、レンダラ112は、ある領域を拡大・縮小する描画命令を受けた場合、描画命令に含まれる座標情報などから拡大・縮小する領域を特定し、当該領域に対して拡大・縮小を行った結果である領域の座標情報などを含む画像情報を出力する。尚、座標情報とは、例えば1024×768画素の画面の場合、画面左上を(0、0)、画面右下を(1023、767)とするような座標系で表された情報を表す。このように、第1の実施形態では、画面右方向をX座標方向、画面下方向をY座標方向としたX−Y座標によって画面上の画素の座標情報(矩形情報)を示すこととする。
アドレス算出部113は、レンダラ112が出力した画像情報を入力し、画像情報の座標情報をフレームバッファのアドレスに変換する処理を行うものである。
仮想表示部12は、メモリ管理部201と、フレームバッファ202とを備えている。メモリ管理部201は、仮想メモリ方式でフレームバッファ201に対するアクセスを管理するものであり、テーブル記憶部211と、取得部212と、変更部213と、書込み部214と、例外発生部215とを備えている。
テーブル記憶部211は、仮想アドレスを物理アドレスに変換するための変換テーブルを記憶する。
ここで、変換テーブルの構造の詳細と、メモリ管理部201による変換テーブルを用いたアドレス変換の流れについて説明する。
仮想メモリ方式の場合、ソフトウェアは仮想アドレスによって、仮想アドレス空間上の論理的にリニアなメモリ空間をアクセスする。一例として、32ビット長の仮想アドレスについて説明する。32ビット長の仮想アドレスは、10ビット、10ビット、12ビットの間隔で区切られる。仮想アドレスの上位10ビットは、2段階の階層構造で表された変換テーブルの上位のテーブルであるページディレクトリ内のエントリを特定するために利用される。特定したエントリには、下位のテーブルである複数のページテーブルのうちいずれかを特定するためのポインタ情報が含まれる。仮想アドレスの中位10ビットは、このポインタにより特定されるページテーブル内のエントリを特定するために利用される。特定したエントリには、物理アドレス空間上のページブロック(以降、ページと呼ぶ)を特定するためのポインタが含まれる。尚、ページとは、コンピュータのメモリ空間を一定の大きさに分割して管理する際のメモリの基本単位である。本実施形態においても、仮想アドレスにマッピングできる物理メモリサイズの基本単位のメモリをページと呼び、連続する物理メモリがページに割り当てられる。仮想アドレスの下位12ビットは、このポインタにより特定されるページ内のオフセットを表す。このようにして、32ビット長の仮想アドレスから物理アドレスへ変換することが可能となる。
ページディレクトリのエントリは、ページテーブルへのポインタと、該ページテーブルのエントリの有効・無効を示す有効ビット(Enableビット)と、当該ページテーブルのぺージへの書込みの可・不可を示す書込みビット(Writableビット)と、該ページへのデータ書込み(更新)が行われた場合に「1」が設定される更新ビット(Dirtyビット)と、仮想アドレスから物理アドレスへの変換過程で当該エントリを参照した場合に「1」が設定されるアクセスビット(Accessビット)とを含む。尚、プロセッサの種類によりビットの名称が異なる場合や、正論理か負論理かで異なる場合があるが、通常は上記のような情報を含むエントリが存在する。
ページテーブルは、各ページにおける物理メモリから論理メモリ空間への対応付けを管理する構造体(テーブル)で、書き込みビットや更新ビット等の情報も併せて管理する。
書き込みビットは、ページへの情報書き込みが禁止されているか否かを識別するために、ページテーブル内でページとともに管理される情報である。
更新ビットは、ページへの情報化聞き込みにより更新が発生したか否かを識別するために、ページテーブル内でページとともに管理される情報である。
図5において、取得部212は、このように構成された変換テーブルを用いて、フレームバッファ201への書込みが要求された画像情報の仮想アドレスに対応する物理アドレスを取得する。
変更部213は、フレームバッファ201へのアクセス要求に応じて、変換テーブルの各エントリの情報を変更するものである。例えば、変更部213は、書込み(更新)が要求された画像情報の仮想アドレスを含むページに対するページテーブルのアクセスビットおよび更新ビットを「1」に変更する。
書込み部214は、フレームバッファ202の、取得部212により取得された物理アドレスに、書込みが要求された画像情報を書込む。
例外発生部215は、書込みが要求されたページに対するページ例外を発生するものである。具体的には、例外発生部215は、書込みビットが不可(「0」の値)であるページに対して、書込みが要求された場合にページ例外(割込の一種)を発生させる。尚、書込みビットは、表示領域に関連する全てのページテーブルに関して設定しておき、正論理の代わりに不論理を用いても良い。これにより、表示領域に属するページに書込みが要求された場合に必ずページ例外を発生させることが出来る。
ページ例外は、書き込みビットによって書き込みが禁止されたページに対して、情報が書き込まれた場合に発生する割込である。
例外発生部215は、一般的な仮想メモリ方式で扱われるその他の例外も発生させる。例えば、仮想アドレス空間に対するアクセスが要求され、取得部212によって変換テーブルが検索されたとき、例外発生部215は、検索されたページディレクトリのエントリ、またはページテーブルのエントリの有効ビットが無効(「0」の値)である場合に、プロセッサに対してページ例外を発生させる。尚、ページ例外が発生した場合、プロセッサは、いずれの仮想アドレスに対してアクセスされたかを検出することが出来る。また、ページ例外発生時、プロセッサはページのマッピングなどの必要に応じた処理を行う。また、プロセッサは必要に応じて変換テーブルの更新を行って例外から復帰する。
フレームバッファ202は、ゲストOSが管理する1画面分の画像情報を記憶するためのホストOS側の記憶部である。例えば、1画面が1024×768画素、1画素当たり4バイトの色情報(赤情報1バイト、緑情報1バイト、青情報1バイト、透過情報1バイト)を用いる場合、1024×768×4バイト分のメモリ領域が確保される。フレームバッファ202には、ゲストOSが生成した画像情報が、取得部212によって取得された物理アドレスに従って、ページ単位に分けて記憶される。
バックエンド仮想表示部13は、保存部301、バックアップ記憶部302、及び検出部303を含む。
バックアップ記憶部302は、更新された各ページの画像情報のバックアップデータを記憶可能な記憶部である。保存部301は、例外発生部215により書込みビットが不可であるページに書込みが要求されたことによるページ例外が発生したときに、当該ページ例外が発生したページの画像情報をバックアップ記憶部302に保存する。
検出部303は、メモリ管理部201が管理するページ単位で、画像情報の更新部分(更新画像)を検出するものである。具体的には、検出部303は、例外発生部215で発生されたページ例外を受けて、ページ例外が発生したページを、画像情報が更新された更新ページとして検出し、記録する。そして、検出部303は、更新されたページそれぞれについて、バックアップ記憶部302の記憶された更新前の画像情報と、書込み部214によってフレームバッファ202に書込まれた更新後の最新の画像情報とを比較し、相違部分を含む矩形を更更新画像として検出する。
図6は、仮想入出力仲介部53の詳細な構成を示した図である。仮想入出力仲介部53は、ディスプレイ端末TE1、TE2等における表示領域の管理を行い、検出部303で取得した更新画像情報を基に、送信画像情報を生成して送信する処理を行う。
仮想入出力仲介部53は、送信画像生成部501と、仮想表示制御部502と、表示領域記憶部503と、セッション情報記憶部504と、送信部505と、受信部506と、入力位置判定部507とを含む。
送信画像生成部501は、各ゲストOS対応部52のバックエンド仮想表示部13における検出部303により検出された更新部分の画像情報を用いて、ディスプレイ端末にて表示可能な表示画像の取得を行い、併せて送信用画像を生成する。送信用画像とは、通信路の帯域を勘案し、画像圧縮処理を施すことである。画像圧縮処理に関しては、不可逆圧縮のJPEG(Joint Photographic Experts Group)の他、可逆圧縮を用いることも考えうる。
また、送信画像生成部501は、仮想表示制御部502からの情報を基に、ゲストOS上の画面領域に関して、実際にディスプレイ端末にて表示される表示領域のみを更新画像として取り扱い、必要に応じてスクロールバー等の表示画像を生成する。
送信部505は、送信画像生成部501が生成した画像情報(圧縮画像情報)をセッション情報記憶部504の情報を基に、ディスプレイ端末に対して送信する処理を行う。
セッション情報記憶部504には、仮想計算機サーバ装置100およびネットワークを介して接続されたディスプレイ端末のIP(Internet Protocol)アドレス情報、ポート番号情報、ユーザ(端末装置)識別情報などが記憶される。
表示領域記憶部503は、端末装置識別情報に対応した表示領域の範囲(矩形)を示す情報(表示領域情報)の記憶を行う。すなわち、図1のディスプレイ端末TE1の例において、ゲストOS1、ゲストOS2がそれぞれ1024×768画素の画面領域を有している状況で、1024×768画素の解像度のディスプレイ端末にて2つのゲストOSの画面を同時に表示する場合、ゲストOS1の表示領域の左上部分を(0、0)、右下部分を(511、767)をゲストOS1の表示領域情報として記録する。同様に、ゲストOS2の表示領域の左上部分を(512、0)、右下部分を(1023、767)をゲストOSの表示領域情報として記録する。表示領域の範囲を示す矩形の情報は、この他に(0、0、512、768)のように、(始点X座標、始点Y座標、横幅、縦幅)の形式で記録することも可能である。(以降、矩形情報に関して、(始点X座標、始点Y座標、横幅、縦幅)の記載方法を用いる。)
仮想表示制御部502は、ディスプレイ端末における表示領域の変更を検出した場合に、表示領域記憶部503の情報を更新し、更新状態変更指示部508と、例外マスク指示部509を介して、第1の実施形態に係る効率的な画面更新の検出に必要な処理を実施する。
更新状態変更指示部508は、バックエンド仮想表示部13のバックアップ記憶部302に記憶した画像(ページ)情報を削除する機能を持つ。更に更新状態変更指示部508は、バックエンド仮想表示部13の検出部303に対して、表示領域から非表示領域に変更になったページの更新検出履歴を削除させ、新しい表示領域の全域を更新対象として記録させる。
例外マスク指示部509は、仮想表示部12中の例外発生部215に対して、ディスプレイ端末側で非表示領域となった各ページの書込みビットを可とし、新しい表示領域に属する各ページの書込みビットを不可に設定制御を行う。すなわち、ディスプレイ端末にて実際に表示される領域に対して、ゲストOSが描画処理を実行すると、例外発生部215はページ例外を発生させる。一方、ディスプレイ端末にて表示されない領域(非表示領域)に対して、描画情報の書込みを行っても、フレームバッファ202は更新されるが、例外発生部215によるページ例外は発生しない。
図6の受信部506は、ネットワークを介して、マウス入力やキーボード入力といった入力情報を受信する。
入力位置判定部507は、仮想表示制御部502を介して取得したゲストOSの表示領域に関する情報と入力座標位置情報とを基に、複数のバックエンド仮想入力部13a〜13cのうち、該入力情報を通知すべきバックエンド仮想入力部の判定を行う。例えば、図1の例において、ゲストOS1の表示領域が(0、0、512、768)の状態で、入力座標位置(X座標、Y座標)が(50、50)の場合、受信した入力情報を、ゲストOS1に関連付けられたバックエンド仮想入力部13aに通知する。また、入力位置判定部507は、仮想入出力仲介部53が生成したスクロールバーに対する移動等を指示するための入力を検出した場合、仮想表示制御部502に表示領域の変更が発生したことを通知する。
図7は、ディスプレイ端末(端末装置)TE1、TE2(以下、これらをまとめてディスプレイ端末TEと呼ぶ)の構成例を示したものである。ディスプレイ端末TEは、通信処理部601と、画像情報を記憶するフレームバッファ602と、画面生成部603と、セッション情報記憶部604と、入出力インターフェース605と、ディスプレイ606、入力デバイス607を含む。
通信処理部601は、仮想計算機サーバ装置100から受信した更新画面パケットに関して、パケットから抽出した圧縮画像データを画面生成部603に渡す。
画面生成部603は、渡された圧縮画像データを伸張処理した後、伸張した画像データを、フレームバッファ602の指定位置へ描画する。つまり画面生成部603は、仮想計算機サーバ装置100から送信され、通信処理部601により受信された圧縮画像を伸張して生成した部分画像をディスプレイ606の指定位置へ表示することになる。また、入力デバイス607に対する入力情報は、ネットワークを介して接続した仮想計算機サーバ装置100に送信する。
尚、第1の実施形態において、ディスプレイ端末TEが備えるフレームバッファ602は、表示デバイス(ディスプレイ)606にて出力可能な最大解像度と同一であるとする。すなわち、ディスプレイ端末TEの表示デバイス606の出力解像度が1024×768画素であり、1画素当たり4バイトの色情報が必要である場合、1024×768×4バイト分のメモリ領域が確保される。フレームバッファ602に描画された画像情報は、タイマを用いて一定の周期毎に、画面生成部603の指示で入出力インターフェース605を介して、表示デバイス606にて出力される。
次に、図8〜図10に示すフローチャートを参照して、第1の実施形態に係る画像書込み処理、表示領域変更処理、更新部分検出処理について説明する。
図8は、仮想計算機サーバ装置100における画像書込み処理を説明するための示すフローチャートである。まず、アプリケーション部11は、アプリケーションにより実行された処理に関連する画像情報の更新等が発生した場合に、表示画面の描画を要求する描画命令を出力する(ステップS1)。
次に、レンダラ112が描画命令に応じて画像処理を行い、その結果である画像情報を生成する(ステップS2)。画像情報には、更新する領域に対応する開始座標と終了座標の情報が含まれる。続いて、アドレス算出部113が、更新する画素の座標情報を基に仮想アドレスを算出する。グラフィックライブラリ111は、算出された仮想アドレスを指定して、フレームバッファ202に対する画像情報の書込みを要求する(ステップS3)。
そして、取得部212が、テーブル記憶部211に記憶された変換テーブルを参照して、指定された仮想アドレスに対応する物理アドレスを取得する(ステップS4)。変換テーブルが参照された時、例外発生部215は、書込みが要求されたページの書込みビットが不可である場合に、ページ例外を発生させる(ステップS5)。ページ例外を検出した保存部301は、ページ例外が発生した(書込みの発生した)ページに対応する書込前の画像情報をバックアップ記憶部302に保存する。併せて検出部301は、ページ例外が発生したページを更新ページとして検出し、記録する(ステップS6)。さらに、書込み部214は、取得部212が取得した物理アドレスに対して、フレームバッファ202に、要求された画像情報を書込み、画像書込み処理を終了する(ステップS7)。尚、ページ例外が発生したページに対して、以後の画像情報を書き込む際も例外が発生しうるため、この時点で、当該ページに対する書込みを可に変更する。一定周期毎に、ディスプレイ端末に対して、表示領域内の更新画像の検出と更新画像の送信を行うが、更新画像送信後に、ページをサイド書込み不可に設定する。
図9は、仮想計算機サーバ装置100における表示領域変更処理を説明するためのフローチャートである。仮想計算機サーバ装置100とディスプレイ端末TEがセッション接続を開始した直後に、表示領域が決定した場合、もしくはディスプレイ端末TEからスクロールバーの移動に関連した入力情報を受信した場合に、仮想入出力仲介部53の仮想表示制御部502は、表示領域の変更を検出する(ステップS11)。ディスプレイ端末TEにて表示される領域情報は、セッション接続初期化時に領域情報の交換を行う他、スクロールバーの移動量(移動した画素数)を基に新しい表示領域を算出する方法などが考えられる。
そして、仮想表示制御部502は、例外マスク指示部509を介して、仮想表示部12の例外発生部215に対して、新たな表示領域に属する各ページの書込みビットを不可(例えば「0」)に、新たな非表示領域に属する各ページの書込みビットを可(例えば「1」)に設定する(ステップS12)。無論、正論理の代わりに負論理を用いても良い。この結果、表示領域に対する描画処理が実行された場合に、例外発生部215はページ例外を発生させることになる。
更に、仮想表示制御部502は、更新状態変更指示部508を介して、バックエンド仮想表示部13の検出部303に、非表示領域に対応するページの更新検出履歴を無効にさせ、新しい表示領域の全域に対応するページを更新ページとして記録させる。併せて、仮想表示制御部502は、更新状態変更指示部508を介して、バックエンド仮想表示部13のバックアップ記憶部302に保存された全ての画像情報を削除し、表示領域変更処理を終了する(ステップS13)。
図10は、更新画像検出処理を説明するためのフローチャートである。更新画像検出処理は、例えばタイマからの定期的な割込みによって開始される。
バックエンド仮想表示部13の検出部303は、ページ例外発生時の記録、もしくは表示領域変更時の記録により更新ページを検出する(ステップS21)。
続いて、検出部303は、検出した更新ページに対して、フレームバッファ202に書き込まれた最新の画像情報とバックアップ記憶部302に保存した画像情報とを比較し、差分箇所を更新画像として検出する(ステップS22、ステップS23)。この時、更新ページとして検出されたページに対応する画像情報が、バックアップ記憶部302に存在しない場合(ステップS22)、ページ間の差分は取れないため、該1ページの全域を更新画像として検出する(ステップS24)。このケースは、表示領域の変更が行われた後、最初に更新画像検出処理を行う場合に発生する。
仮想入出力仲介部53の送信画像生成部501は、バックエンド仮想表示部13の検出部303により検出した更新画像、スクロールバー等の補足画像から送信用画像を生成し、圧縮処理を行う(ステップS25)。そして、送信部505が圧縮した画像情報をパケット化し、ディスプレイ端末に対して送信することで、更新画像検出処理を終了する(ステップS26)。その後、表示領域内で、ページの書込みを不可に設定し直す。
次に、図11〜図13を参照して、画像書込み処理および更新画像検出処理をより具体的に説明する。
尚、図11、図12、図13の例では、グラフィックリブラリ111のアドレス算出部113がディスプレイ端末TEに表示する表示画面を32×32画素の矩形領域に分割し、分割した矩形領域内の各画素に、1ページ(4096バイト)の仮想アドレスが対応するように、フレームバッファの仮想アドレスを算出するものとする。具体的には、アドレス算出部113は、従来の算出式である次式(1)に代わり、次式(2)に従って、座標情報(X、Y)をフレームバッファのアドレス(addr)に変換する。OFFSETとは、画像情報の格納を開始する開始アドレスまでのオフセットの値を示す。以下の式は、ディスプレイの動作状態や、アドレス算出部113の演算能力により、実際の算出式の最適化方式は異なる。
addr=OFFSET+(X<<2)+(Y<<12) ・・・(1)
addr=OFFSET+((X&0x1f)<<10)×3+((X&0x1f)<<2)+(Y<<7) ・・・(2)
図11は、図8の画像書込み処理を説明するための図である。図11において、実線で囲まれた矩形領域は、ディスプレイ端末TEにて表示される表示領域を示している。従って、それ以外の矩形領域は、ディスプレイ端末にて表示されない非表示領域を示す。
画像書込み処理では、まず仮想入出力仲介部53の仮想表示制御部502が表示領域情報の取得を行い、該表示領域に属する各ページの書込みビットを不可に設定する。これにより、以後、グラフィックライブラリ111が表示領域のフレームバッファに書込みを行うと、該当するページに関するページ例外が発生することになる。
図11の(A1)では、アプリケーション部11が画面表示のためにグラフィックライブラリ111を介して、フレームバッファに対する描画命令を送る(図8のステップS1)。(A2)では、メモリ管理部201は、変換テーブルを参照して、グラフィックライブラリ111からの描画命令で指定された仮想アドレスを物理アドレスに変換する(図8のステップS2〜ステップS4)。なお、(A1)では、ディスプレイ端末TEの非表示領域に書込を行っている。非表示領域に関しては、ページテーブルの書込みビットが予め許可に設定されているため、この時点でページ例外は発生しない。
(A3)では、アプリケーション部11がフレームバッファ202に対する描画命令を再度実行している(図8のステップS1)。ここでは、ディスプレイ端末TEの表示領域に書込を行っている。(A4)では、メモリ管理部201が変換テーブルを参照すると、表示領域に関しては、ページテーブルの書込みビットが予め不可に設定されているため、(A5)において、例外発生部215がページ例外を発生させる(図8のステップS2〜ステップS5)。(A6)では、発生したページ例外により、バックエンド仮想表示部13の保存部301は、グラフィックライブラリ111が更新を要求したフレームバッファの該当ページを検知し、当該ページの内容のバックアップをバックアップ記憶部302に記憶する。併せて、検出部303は、当該ページを更新ページとして記録する(図8のステップS6)。また、書込み部214は、取得部212が取得した物理アドレスに対して、フレームバッファ202に、要求された画像情報を書込む。一方、(A7)において、メモリ管理部201の変更部213は、当該ページのページテーブルの書込みビットを可に変更する。
この後、グラフィックライブラリ111による画像書込みが続行されるが、以後、当該ページに対する画像書込みについては、更にページ例外を発生させることなく書込みが行われる。
別ページに対する画像書込みについては、ページ例外が発生するため、上記(A5)、(A6)、(A7)が順次実行される。
このように、画面上の矩形領域に適合したページを構成し、画像の書込みが要求されたページのみに対して、当該ページへの最初の書込み時にのみページ例外を発生し、画像書込みが発生する前の画像情報のバックアップを残すことが可能となる。
図12は、図10の更新画像検出処理を説明するための図である。
バックエンド仮想表示部13の検出部303は、例えばタイマからの定期的な割込みにより、画像情報の更新画像検出処理を実行する。更新画像検出処理とは、更新ページとして記録されたページに関して、バックアップした画像情報と現状のページの画像情報とを比較して、そのページ内で差分が存在する矩形を切り出す処理である。タイマは、例えば、ディスプレイ端末TEの画面更新を1秒間に60回行う場合であれば、1/60秒間隔で割込みを発生するよう設定する。
図12の(A8)において、タイマからのトリガにより更新画像検出処理を開始する。続いて、(A9)において、検出部303は、上記(A6)で記録した情報を基に、更新ページを検出する(図10のステップS21)。(A10)では、更新ページ毎に、バックアップ記憶部302にバックアップした更新前の画像情報と、フレームバッファ202に書込まれた更新後の最新の画像情報とを比較し、更新画像の矩形を検出する(ステップS22、ステップS23)。尚、図12に示すように、検出部303は、複数の隣接するページから、更新された領域を含む最小の矩形領域を更新画像として検出する。
次に、(A11)では、仮想入出力仲介部53の送信画像生成部501において、検出した更新画像に対し圧縮処理を行う(図10のステップS25)。また、圧縮後の更新画像情報は、送信部505によってディスプレイ端末TEに送信される(図10のステップS26)。尚、図12では省略しているが、ディスプレイ端末TEに圧縮された更新画像情報を送信後、バックアップ記憶部302にバックアップした、送信画像に対応する画像情報は破棄し、検出部303中にて記録した、送信画像に対応する更新ページ履歴も併せて削除する。また、フレームバッファ202のメモリ領域に関して、表示領域に対するページテーブルの書込みビットは全て不可に設定し直す。
図13は、図12の(A11)において更新画像を送信した後、表示領域の変更が発生した場合の更新画像検出処理を説明するための図である。表示領域変更処理は、図9に示したように、ディスプレイ端末TEからの入力情報を基に、仮想表示制御部502がスクロールバーの移動等を検出した場合に発生し、変更後の新たな表示領域の矩形領域と、変更後の新たな非表示領域の矩形領域を算出し、表示領域に関する情報を表示領域記憶部503に保存する。
図13の(A12)において、ディスプレイ端末TEからの入力情報に基づいて、仮想表示制御部502により表示領域の変更が検出される(図9のステップS11)と、仮想表示制御部502は、新しい表示領域と、非表示領域に関する情報を記憶する表示領域記憶部503を更新する。例えば、図13において、ゲストOSの管理する画面領域(フレームバッファ)が、1024×768画素であった場合、変更前の表示領域の矩形情報(0、0、512、768)から、変更後の表示領域の矩形情報(512、0、512、768)のように情報を更新する。
次に(A13)において、仮想表示制御部502は、例外マスク指示部509を介して、仮想表示部12の例外発生部215に対して、非表示となった領域に関するページテーブルの書込みビットを可に、新しい表示領域に関するページテーブルの書込みビットを不可に設定する(図9のステップS12)。すなわち、新しい表示領域のページに対して描画を実行すると、例外発生部215によるページ例外が発生する。
その後、(A14)において、仮想表示制御部502は、更新状態変更指示部508を介して、非表示となった領域に関連する画像情報をバックアップ記憶部302から削除し、検出部303における更新ページの履歴も全て削除する。併せて、新しい表示領域に属するページを全て更新ページとして記録する(図9のステップS13)。
次に(A15)において、タイマからのトリガにより、図10の更新画像検出処理を開始する。
(A16)において、検出部303が過去の記録から更新ページを検出する(図10のステップS21)。第1の実施形態では、ページ例外発生時の記録に併せて、表示領域の変更を検出した際の記録を用いて、更新ページの検出を行う。図13の例では、表示領域変更後のタイマ割込み時、新しい表示領域全域が更新ページとして検出されている。
(A17)において、更新ページ毎に、バックアップ記憶部302にバックアップした画像情報と、フレームバッファ202に書込まれた最新の画像情報とを比較し、更新画像の矩形を検出することになるが、第1の実施形態において、非表示となっている矩形領域に関しては、バックアップ情報が保存されないため、この時点で差分を取ることが出来ない。従って、全ての更新ページを更新画像として検出する(図10のステップS22、ステップS24)。
(A18)では、検出した更新画像(新しい表示領域全域)の画像情報を基に、送信画像を生成し、ディスプレイ端末TEに対して送信する(図10のステップS25〜ステップS26)。
尚、図11、図12、図13において、ページのアドレス算出を矩形画像に対応するように行った例を示したが、通常の算出方法による実施でも可能であることは言うまでもない。また、第1の実施形態では、ディスプレイ端末TEが備えるフレームバッファの容量が、出力可能な解像度と同じである場合について述べた。すなわち、表示画像の送信側である仮想計算機サーバ装置100が、表示領域の変更を検出する度に、新しい表示領域の全域を更新画像として送信することで、受信側のディスプレイ端末TEでは、1画面分の容量に相当するフレームバッファを備えるのみで良い。すなわち、ディスプレイ端末の解像度が1024×768画素、1画素当たりの色情報が4バイトである場合、ネットワークを介して接続された仮想計算機サーバ装置100のゲストOSの数、ゲストOSの解像度によらず、ディスプレイ端末は、1024×768×4バイトのメモリ容量のフレームバッファを備えるだけで良い。
以上説明したように、上記第1の実施形態によれば、画像情報に、ネットワークを介して接続された端末装置TEにて表示される表示領域と表示されない非表示領域とが存在する場合に、仮想計算機サーバ装置100は当該画像情報のうち表示領域に対してのみ更新画像の検出を行う。この結果、該端末装置で表示される画像を更新するための更新画像の送信の検出・送信を効率よく(少ない処理量で)行うことが可能となる。
[第2の実施形態]
次に、第2の実施形態について説明する。第2の実施形態では、表示領域の変更が生じた際に、新しい表示領域に対して、更新の有無を検査する手段を講じることにより、効率良く更新画像を行うことが可能となるものである。第1の実施形態では、新しい表示領域の全域を更新領域として検出し、ディスプレイ端末に送信していたが、第2の実施形態では、実際に更新があった部分のみ送信する。従って、ディスプレイ端末は自身が利用するゲストOSのフレームバッファの全内容を記憶するためのフレームバッファを有する。
図1において、例えばゲストOS1の管理する画面領域(フレームバッファ)の容量が、1024×768×4(横画素×縦画素×1画素当たりのバイト数)バイト、ゲストOS2の管理する画面領域の容量が同じく1024×768×4バイトである場合、ネットワークを介して接続されたディスプレイ端末TE1は、各々のゲストOSに関連付けた2つの仮想フレームバッファ(メモリ容量は、いずれも1024×768×4バイト)を備える。
また、ゲストOS3が1600×1200×4バイトのメモリ容量に相当する画面領域を管理している場合、ディスプレイ端末TE2は、表示デバイス606への出力に直結したフレームバッファの容量によらず、同等の1600×1200×4バイトのメモリ容量に相当する仮想フレームバッファを備える。
尚、フレームバッファ602は、上述の第1の実施形態の場合と同様に、表示デバイス606の出力解像度に併せた容量を確保する。すなわち、ディスプレイ端末の出力解像度が1024×768画素の場合、1画素当たりのバイト数が4バイトであるとすると、1024×768×4バイトの容量のフレームバッファを備え、当該フレームバッファに対して画像情報を書込むことで、出力(描画)処理を実行する。
図14は、第2の実施形態に係るディスプレイ端末TEの構成例を示したもので、複数の仮想フレームバッファ608を備えている。
第2の実施形態では、ゲストOSの画面領域が、ディスプレイ端末TEの表示デバイス606にて出力可能な解像度を超えている場合や、複数のゲストOSの画面を同時に表示する場合であっても、図14に示すように、利用中の複数のゲストOSのそれぞれが備える複数のフレームバッファ202と同等の容量の、複数の仮想フレームバッファ608を備える。これは、サーバ装置において、表示領域の変更発生時に、実際に変更があった領域のみを検出し、ディスプレイ端末に送信することで、第1の実施形態と比べ、より効率的な画像の検出を行うことから、ディスプレイ端末がゲストOSのフレームバッファに相当する記憶領域を備える必要があるためである。
例えば、図1、図3の例において、ゲストOS3の画面領域が1600×1200画素である場合、ディスプレイ端末TEも同じく1600×1200画素分の仮想フレームバッファ608を備える必要がある。セッション接続の開始直後や表示領域の変更後、表示領域に関する情報をディスプレイ端末TEと仮想計算機サーバ装置100とがネゴシエーションすることにより、ディスプレイ端末TEにおける画面生成部603は、表示領域に一致する画像情報のみを仮想フレームバッファ608から取得し、フレームバッファ602への描画を実行することで、表示処理を実現する。ディスプレイ端末TEと仮想計算機サーバ装置100は、セッション接続の開始直後、もしくは表示領域の変更後に、表示領域に関する情報(対応するゲストOS情報、表示領域の矩形情報)を、ネットワークを介してネゴシエーションする。
表示領域に関する情報は、セッション情報記憶部604に記憶することが望ましい。尚、スクロールバー表示を仮想計算機サーバ装置100が生成し、画像情報を送信する場合、ディスプレイ端末TEは、スクロールバーの画像情報を記憶するための仮想フレームバッファを併せて用意する。
第2の実施形態は、ディスプレイ端末TEにおいて、確保すべきメモリ容量は増えるが、画像情報の送信側となる仮想計算機サーバ装置100における、更新画面の検出処理を、第1の実施形態と比較し、より効率的に実施することが可能となる。すなわち、第1の実施形態においては、画面領域に変更が発生した際、仮想計算機サーバ装置100は、新しい表示領域の全領域を更新画像として検出し、画像情報を送信する。一方、第2の実施形態においては、表示領域の範囲が変更した後も、仮想計算機サーバ装置100は、更新が発生した矩形領域のみを検出し、更新画像情報を送信する。すなわち、非表示領域が、表示領域の範囲の変更に伴い、表示領域となった場合であっても、更新領域を効率的に検出する。
図15は、第2の実施形態に係る表示領域変更処理を説明するためのフローチャートである。第1の実施形態では、図9に示したように、表示領域の変更を検出した場合に、新しい表示領域全てを更新画像として記録していた。これに対し、第2の実施形態に係る仮想計算機サーバ装置100は、ページ更新時に変更される変換テーブルのビット値を、表示領域に変更が発生した時点で検査することにより、更新ページのみを検出する。
すなわち、図15において、図9と同様に、ページの書込みビットの制御を行った後(ステップS31〜ステップS32)、領域変更後の新たな表示領域に属するページの更新ビットを検査する。更新ビットが、データの書込が行われたことを示す「1」(負論理の場合は「0」)の場合に、当該ページを更新ページとして検出し、記録する(ステップS33)。
ここで、ステップS33における、更新ビットを用いて更新ページを検出する処理全体の流れを説明する。仮想計算機サーバ装置100のグラフィックライブラリ111により、描画命令処理、アドレス算出処理、および物理アドレス取得処理が行われた後、変更部213は、変換テーブルのアクセスビットおよび更新ビットを「1」に変更する。アクセスビットが「1」であることは、当該ページがアクセスされたことを示している。尚、第1の実施形態の画像書込み処理(図8参照)では、アクセスビットおよび更新ビットの変更処理の記載を省略していたが、実際には同様のビット変更処理が実行されている。
次に、書込み部214は、取得部212が取得した物理アドレスに対して、要求された画像情報を書込み、画像書込み処理を終了する。表示領域に変更が発生した際、第2の実施形態では、仮想表示制御部502は更新スキャン指示部510を介して、更新ページを検出のための更新ビットの検査を行うよう検出部303に指示する。
第2の実施形態に係る検出部303は、第1の実施形態において述べた、例外発生部215からの例外情報を基に、例外が発生したページを、画像情報が更新されたページとして記録する手段に加え、アクセスビットおよび更新ビットが「1」(負論理の場合は「0」)であるページを更新ページとして検出し、記録する手段を有する。
次に、図16〜図18を参照して、第2の実施形態に係る画像書込み処理および更新画像検出処理をより具体的に説明する。
図16は、画像書込み処理を説明するための図である。
図16の(B1)において、アプリケーション部11が画面表示のためにグラフィックライブラリ111を介して、フレームバッファに対する描画命令を送る。(B2)において、メモリ管理部201は、変換テーブルを参照して、グラフィックライブラリ111からの描画命令で指定された仮想アドレスを物理アドレスに変換する。(B1)に示すような非表示領域に対する描画実行時には、ページ例外が発生しないが、変更部213は、当該仮想アドレスの上位10ビットに対応するページディレクトリのエントリのアクセスビットを「1」に変更する。更に、変更部213は、そのエントリが示すページテーブルに関して、当該仮想アドレスの中位10ビットに対応するエントリのアクセスビットと更新ビットを「1」(負論理の場合は「0」)に変更する。
画像書込み時のアクセスビットと更新ビットの値変更処理は、第1の実施形態においても同様に実施されている。アクセスビット、更新ビットの変更後、グラフィックライブラリ111による画像書込み処理は続行される。
(B3)では、表示領域に対する書込みが実施された場合を示している。第1の実施形態にて述べたように、(B4)、(B5)、(B6)、(B7)において、ページ例外の発生に伴う更新ページの記録と、画像情報のバックアップ、書込みビットの変更制御を実施する。
(B8)において、表示領域の変更が実施された様子を示している。この場合、(B9)において、表示領域に対してのみ、ページ例外を発生させるように書込みビットの変更処理を行う。
(B10)では、アクセスビットおよび更新ビットの検査を、新しい表示領域に対して実行する。当該新たな表示領域が非表示領域であった期間中に、書込み処理が実施されたページ(すなわち、アクセスビットおよび更新ビットが「1」(負論理の場合は「0」)である更新ページ)が存在するかどうかを判定する。
図17は、更新画像検出処理を説明するための図である。(B11)において、例えばタイマからの定期的な割込みにより、検出部303は、画像情報の更新画像検出処理を実行する。(B12)において、検出部303は、図15のステップS33で記録された更新ページの履歴情報と、その時点の表示領域に関するページ情報とを比較し、更新ページを検出する。図17では、表示領域変更時に実行するアクセスビットおよび更新ビットを検査することにより、当該時点において表示領域に属するページ群のなかから、アクセスビットおよび更新ビットが「1」(負論理の場合は「0」)であるページを更新ページとして検出する。
(B13)において、検出部303は、検出した更新ページに対応する画像情報をバックアップ記憶部302から取得し、取得した画像情報とフレームバッファ202に記憶されている最新の画像情報とを比較し、相違箇所を更新画像として検出する。しかし、図17の更新検出処理の時点で表示されている領域は、図16における非表示領域の期間中に書込み処理が実施された領域であり、ページ例外発生に伴う画像のバックアップ処理を行っていない。そのため、検出部303は、更新ページの全領域を更新画像として検出する。
(B14)では、更新画像を元に送信画像を生成(画像圧縮処理等を実施)し、ディスプレイ端末TEに対して送信する。尚、図中では省略しているが、ディスプレイ端末TEに更新画像の圧縮画像情報を送信後、バックアップ記憶部302にバックアップした、送信画像に対応する画像情報は破棄し、検出部303中にて記録した、送信画像に対応する更新ページ履歴も併せて削除する。また、フレームバッファ202のメモリ領域に関して、表示領域に対するページテーブルの書込みビットは全て不可に設定する。
図18は、表示領域が再び変更された場合の処理動作を示す図である。図18の例では、図16において当初表示領域であった領域が、一旦非表示領域となった後、再度表示領域となった場合の例を示している。
(B15)、(B16)、(B17)において、表示領域の変更処理が実施される。(B17)では、アクセスビットおよび更新ビットの検査による更新ページの判定が行われるが、ページ例外による更新ページの判定が既に行われているため、更新状態をそのまま用いる。
(B18)において、タイマからの定期的な割込みにより、更新画像検出処理が開始される。(B19)において、検出部303は更新ページ情報を履歴から取得する。この時点で更新ページとして検出されるページは、過去に表示領域であった際に、ページ例外発生時の更新判定に伴う記録を用いている。
(B20)において、検出した更新ページに対応する画像情報をバックアップ記憶部302から取得し、取得した画像情報と最新の画像情報とを比較し、相違箇所を更新画像として検出する。図18の場合、更新ページは、過去に表示領域であった際に、ページ例外発生時にバックアップ処理を実行している。従って、バックアップ記憶部302に記憶されている更新前のバックアップ画像とフレームバッファ202に記憶されている更新後の画像との差分を取ることにより、相違箇所のみを更新画像として検出する。
(B21)において、仮想計算機サーバ装置100は、検出した更新画像を用いて送信画像を生成し、ディスプレイ端末TEに対して送信する。尚、図18では図17と同様に省略しているが、ディスプレイ端末TEに更新部分の圧縮画像情報を送信後、バックアップ記憶部302にバックアップした、送信画像に対応する画像情報は破棄し、検出部303中にて記録した、送信画像に対応する更新ページ履歴も併せて削除する。また、フレームバッファ202のメモリ領域に関して、表示領域に対するページテーブルの書込みビットは全て不可に設定する。
第2の実施形態では、ディスプレイ端末TE側でメモリ領域を多めに用意する必要があるが、第1の実施形態と比較し、表示領域変更時に、仮想計算機サーバ装置100側で更新ページとして検出される領域が少なくなる結果、送信画像の生成処理やネットワーク上で伝送される画像情報の情報量、ディスプレイ端末TE上での表示画面生成処理(画像伸長処理)に要する負荷が少なくなり、より効率的な更新検出を実施することが可能となる。
尚、表示領域の変更発生時に、ディスプレイ端末TEが新しい表示領域に関する情報を判断する方法としては、仮想計算機サーバ装置100が表示領域に関する情報(矩形情報)を別途通知する方法や、仮想計算機サーバ装置100から受信した更新画像情報の矩形情報を基に、表示領域の変更判定を自身で実施する方法などが考えうるが、いずれの方法を用いても良い。
以上説明したように、上記第2の実施形態によれば、画像情報に、ネットワークを介して接続された端末装置TEにて表示される表示領域と表示されない非表示領域とが存在する場合に、仮想計算機サーバ装置100は当該画像情報のうち表示領域に対してのみ更新画像の検出を行う。この結果、該端末装置で表示される画像を更新するための更新画像の送信の検出・送信を効率よく(少ない処理量で)行うことできる。
[第3の実施形態]
第1および第2の実施形態では、ページ例外を利用して更新ページの検出と画像情報のバックアップを行った。これに対し、第3の実施形態に係る仮想計算機サーバ装置100は、ページ更新時に変更される変換テーブルのビット値を参照することにより、表示領域の更新ページを検出するものである。
第3の実施形態における画像書込み処理および更新画像検出処理について、図19および図20を参照して説明する。
図19は、画像書込み処理の全体の流れを示すフローチャートである。
図19においてステップS41〜ステップS44の描画処理、アドレス算出処理、および物理アドレス取得処理は、第1および第2の実施形態に係る仮想計算機サーバ装置100における処理(図8のステップS1〜ステップS4)と同様であるため、その説明を省略する。
ステップS44において、取得部212により物理アドレスが取得された後、変更部213は、変換テーブルのアクセスビットおよび更新ビットを「1」(負論理の場合「0」)に変更する(ステップS45)。続いて、取得部212が取得した物理アドレスに対して、書込み部214が要求された画像情報をフレームバッファ202に書込み(ステップS46)、画像書込み処理を終了する。
このように、第3の実施形態の画像書込み処理では、ページ例外を発生させ、ページ例外を発生したページを更新ページとして記録した上で、ページのバックアップを保存する処理が削除された点が、第1および第2の実施形態と異なっている。従って、ページテーブルの書込みビットは全て可となる。
図20は、更新画像検出処理を説明するためのフローチャートである。定期的なタイマ割込みに基づいて、検出部303は、表示領域の中から、アクセスビットおよび更新ビットが「1」(負論理の場合「0」)であるページを更新ページとして検出する(ステップS51)。
続いて、検出部303は、検出した更新ページに対応する画像情報をバックアップ記憶部302から取得し、取得した画像情報と、フレームバッファ202に記憶されている最新の画像情報とを比較し、相違箇所を更新画像として検出する(ステップS52)。
第1及び第2の実施形態と同様、圧縮画像を生成し、これを転送した後(ステップS53、ステップS54)、保存部301は、フレームバッファ202に書込んだ最新の画像情報のバックアップ記憶部302に保存し(ステップS55)、検出処理を終了する。
尚、第3の実施形態に係るディスプレイ端末TEは、図7と同様である。また、表示領域の変更を検出した場合、仮想計算機サーバ装置100は、新たな表示領域の全域を更新ページとして検出し、ディスプレイ端末TEに対して、画像情報を送信する。すなわち、表示領域の変更を検出した場合、仮想表示制御部502は、更新状態変更指示部508を介して、バックエンド仮想表示制御部13の検出部303に対し更新ページの検出を指示する。これを受けて検出部303は、新しい表示領域に属する全ページを更新ページとして検出し、記録する。さらに、非表示領域に属するページの更新状態を削除させる。
第1および第2の実施形態とは異なり、表示領域変更検出時に、ページテーブルの書込みビットの制御を行うことはない。また、仮想表示制御部502は、更新状態変更指示部508を介して、非表示領域に対応するバックアップ情報を、バックアップ記憶部302から削除する。尚、ディスプレイ端末TEに更新部分の圧縮画像情報を送信後、検出部303中にて記録した、送信画像に対応する更新ページ履歴を削除する。
以上説明したように、上記第3の実施形態によれば、画像情報に、ネットワークを介して接続された端末装置TEにて表示される表示領域と表示されない非表示領域とが存在する場合に、仮想計算機サーバ装置100は当該画像情報のうち表示領域に対してのみ更新画像の検出を行う。この結果、該端末装置で表示される画像を更新するための更新画像の送信の検出・送信を効率よく(少ない処理量で)行うことできる。
[第4の実施形態]
第4の実施形態は、ページ更新時に変更される変換テーブルのビット値を参照することにより、表示領域の更新ページを検出するものである。第4の実施形態において、ディスプレイ端末TEは、図14に示したように、(複数の)ゲストOSのフレームバッファの内容を記憶するための複数の仮想フレームバッファ608を備えるものとする。また、第4の実施形態において、画像書込み処理と更新検出処理は、それぞれ第3の実施形態で説明した、図19および図20と同様である。
第4の実施形態において、表示領域の範囲の変更を検出した場合、新しい表示領域に対応する変換テーブルを検査し、アクセスビットと更新ビットの両方が「1」(負論理の場合「0」)であるページを更新ページとして検出し、記憶する処理を実施する。または、第4の実施形態においては、通常、表示領域に対してタイマ割込み毎に、変換テーブル上のアクセスビット及び更新ビットの検査処理(変換テーブルの検査処理)とバックアップ処理を行うため、表示領域変更の検出時に、必ずしも追加で当該検査処理を実施する必要はない。
尚、仮想表示制御部502が表示領域の変更を検出した場合、即座に変換テーブル検査処理を実施しても良い。また、領域変更後の最初のタイマ割込みに伴う更新画像検出処理(図10)では、更新ページの検出処理開始時点までの範囲内であれば、任意のタイミングで、表示領域に対応する変換テーブルの検査処理を実施することが可能であることは言うまでもない。これは第2の実施形態についても同様である。
第4の実施形態では、ディスプレイ端末TE側でメモリ領域を多めに用意する必要がある。しかし、第3の実施形態と比較し、表示領域変更時に、仮想計算機サーバ装置100側で更新ページとして検出される領域が少なくなる。そのため、送信画像の生成処理やネットワーク上で伝送される画像情報の情報量、ディスプレイ端末上での表示画面生成処理(画像伸長処理)に要する負荷が少なくなり、より効率的な更新検出を実施することが可能となる。
尚、表示領域の変更発生時に、ディスプレイ端末TEが新しい表示領域に関する情報を判断する方法としては、仮想計算機サーバ装置100が表示領域に関する情報(矩形情報)を別途通知する方法がある。また、仮想計算機サーバ装置100から受信した更新画像情報の矩形情報を基に、表示領域の変更判定を自身で実施する方法なども考えられる。これらのいずれの方法を用いても良い。
以上説明したように、第4の実施形態によれば、画像情報に、ネットワークを介して接続された端末装置TEにて表示される表示領域と表示されない非表示領域とが存在する場合に、仮想計算機サーバ装置100は当該画像情報のうち表示領域に対してのみ更新検出を行って、該更新画像を端末装置へ送信することで、該端末装置へ送信すべき更新画像の検出・送信を効率よく(少ない処理量で)行うことできる。
本発明の実施の形態に記載した本発明の手法(特に図4〜図6に示した仮想計算機サーバ装置100の各構成部)、は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
システム全体の構成例を示す図。 図1におけるゲストOS1、ゲストOS2の画面と、ディスプレイ端末TE1における表示画面の関係を示した図。 図1におけるゲストOS3の画面と、ディスプレイ端末TE2における表示画面の関係を示した図。 仮想計算機サーバ装置の構成例を示す図。 仮想計算機サーバ装置の各ゲストOS対応部の構成例を示した図。 仮想計算機サーバ装置の仮想入出力仲介部の構成例を示す図。 第1の実施形態に係るディスプレイ端末の構成例を示す図。 仮想計算機サーバ装置の画像書込処理を説明するためのフローチャート。 仮想計算機サーバ装置の表示領域変更処理を説明するためのフローチャート。 仮想計算機サーバ装置の更新画像検出処理を説明するためのフローチャート。 図8の画像書込み処理を説明するための図。 図10の更新画像検出処理を説明するための図。 更新画像を送信した後、表示領域の変更が発生した場合の更新画像検出処理を説明するための図。 第2の実施形態に係るディスプレイ端末の構成例を示す図。 第2の実施形態に係る表示領域変更処理を説明するためのフローチャート。 第2の実施形態に係る画像書込み処理を説明するための図。 第2の実施形態に係る更新画像検出処理を説明するための図。 図16において当初表示領域であった領域が、一旦非表示領域となった後、再度表示領域となった場合の処理動作を説明するための図。 第3の実施形態に係る画像書込処理を説明するためのフローチャート。 第3の実施形態に係る更新画像検出処理を説明するためのフローチャート。
符号の説明
100…仮想計算機サーバ装置
TE1、TE2…端末装置
51…ホストOS
52…ゲストOS対応部
53…仮想入出力仲介部
11…アプリケーション部
12…仮想表示部
13…バックエンド仮想表示部
14…バックエンド仮想入力部

Claims (19)

  1. アプリケーションプログラムを動作させることにより生成される画像情報を、ネットワークを介して端末装置に送信して表示させるサーバ装置であって、
    生成した画像情報を予め定められたサイズのメモリであるページ毎に分割して記憶する画像情報記憶手段と、
    前記画像情報記憶手段に記憶された前記画像情報を、アプリケーションプログラムの動作に応じて更新する更新手段と、
    前記画像情報記憶手段に記憶されている画像情報のうち、前記端末装置に送信され、該端末装置が有する表示画面に表示されている表示領域の画像情報が記憶されているページのなかから、前記更新手段により更新される画像情報を含むページを更新ページとして検出する更新ページ検出手段と、
    前記更新ページの更新前の画像情報と更新後の画像情報とから、前記更新手段により更新された画像情報を検出する更新画像検出手段と、
    前記更新画像検出手段で検出された画像情報から送信画像情報を生成する送信画像生成手段と、
    前記送信画像情報を前記端末装置へ送信する送信手段と、
    前記更新ページの更新前の画像情報を記憶するバックアップ記憶手段と、
    を備え、
    前記更新画像検出手段は、
    (a)前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されているとき、当該更新ページの更新前の画像情報と更新後の画像情報との差分を前記更新された画像情報として検出し、
    (b)前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されていないとき、当該更新ページの更新後の画像情報を前記更新された画像情報として検出することを特徴とするサーバ装置。
  2. 前記画像情報記憶手段に記憶された前記画像情報のうち、前記表示領域の画像情報を記憶する各ページに対し第1制御情報を記憶し、前記表示領域以外の非表示領域を記憶する各ページ対し第2制御情報を記憶するテーブル記憶手段と、
    前記テーブル記憶手段に前記第1制御情報が記憶されているページが前記更新手段で更新されるとき、ページ例外割込を発生する発生手段と、
    をさらに含み、
    前記更新ページ検出手段は、前記ページ例外割込の発生したページを前記更新ページとして検出することを特徴とする請求項1記載のサーバ装置。
  3. 前記表示領域の範囲を変更する領域変更手段をさらに備え
    前記更新ページ検出手段は、表示領域を変更した後の新たな表示領域の画像情報を記憶する各ページを前記更新ページとして検出することを特徴とする請求項2記載のサーバ装置。
  4. 前記領域変更手段で前記表示領域から前記非表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第1制御情報を前記第2の制御情報に書き換え、前記非表示領域から前記表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第2の制御情報を前記第1の制御情報に書き換える第1の変更手段と、
    をさらに含む請求項3記載のサーバ装置。
  5. 前記テーブル記憶手段は、各ページに対し、前記更新手段による当該ページの更新の有無を示す判定情報をさらに記憶することを特徴とする請求項2記載のサーバ装置。
  6. 前記表示領域の範囲を変更する領域変更手段と、
    前記領域変更手段で前記表示領域から前記非表示領域に変更されたページに対し前記第テーブル記憶手段に記憶されている前記第1制御情報を前記第2の制御情報に書き換え、前記非表示領域から前記表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第2の制御情報を前記第1の制御情報に書き換える第1の変更手段と、
    前記更新手段で更新される各ページの前記判定情報を更新有りに変更する第2の変更手段と、
    をさらに含み、
    前記更新ページ検出手段は、表示領域を変更した後の新たな表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項5記載のサーバ装置。
  7. 各ページに対し、前記更新手段による当該ページの更新の有無を示す判定情報を記憶するテーブル記憶手段と、
    前記更新手段で更新される各ページの前記判定情報を更新有りに変更する第1の変更手段と、
    をさらに含み、
    前記更新ページ検出手段は、前記表示領域を記憶するページ群うち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項1記載のサーバ装置。
  8. 前記表示領域の範囲を変更する領域変更手段をさらに含み、
    前記更新ページ検出手段は、表示領域を変更した後の新たな表示領域を記憶する各ページを前記更新ページとして検出することを特徴とする請求項7記載のサーバ装置。
  9. 前記表示領域の範囲を変更する領域変更手段をさらに含み、
    前記更新ページ検出手段は、表示領域を変更した後の新たな表示領域を記憶するページ群うち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項7記載のサーバ装置。
    ことを特徴とする請求項1記載のサーバ装置。
  10. アプリケーションプログラムを動作させることにより生成される画像情報を、ネットワークを介して端末装置に送信して表示させるサーバ装置における更新画像検出方法であって、
    生成した画像情報を予め定められたサイズのメモリであるページ毎に分割して画像情報記憶手段が記憶するステップと、
    前記画像情報記憶手段に記憶された前記画像情報を、アプリケーションプログラムの動作に応じて更新手段が更新するステップと、
    前記画像情報記憶手段に記憶されている画像情報のうち、前記端末装置に送信され、該端末装置が有する表示画面に表示されている表示領域の画像情報が記憶されているページのなかから、前記更新手段により更新される画像情報を含むページを更新ページ検出手段が更新ページとして検出するステップと、
    前記更新ページの更新前の画像情報と更新後の画像情報とから、前記更新手段により更新された画像情報を更新画像検出手段が検出するステップと、
    前記更新画像検出手段で検出された画像情報から送信画像情報を送信画像生成手段が生成するステップと、
    前記送信画像情報を送信手段が前記端末装置へ送信するステップと、
    前記更新ページの更新前の画像情報をバックアップ記憶手段が記憶するステップと、
    を備え、
    前記更新画像検出手段が、
    (a)前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されているとき、当該更新ページの更新前の画像情報と更新後の画像情報との差分を前記更新された画像情報として検出し、
    (b)前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されていないとき、当該更新ページの更新後の画像情報を前記更新された画像情報として検出することを特徴とする更新画像検出方法。
  11. テーブル記憶手段が、前記画像情報記憶手段に記憶された前記画像情報のうち、前記表示領域の画像情報を記憶する各ページに対し第1制御情報を記憶し、前記表示領域以外の非表示領域を記憶する各ページに対し第2制御情報を記憶するステップと、
    前記テーブル記憶手段に前記第1制御情報が記憶されているページが前記更新手段で更新されるとき、発生手段がページ例外割込を発生するステップと、
    をさらに含み、
    前記更新ページ検出手段が、前記ページ例外割込の発生したページを前記更新ページとして検出することを特徴とする請求項10記載の更新画像検出方法。
  12. 前記表示領域の範囲を領域変更手段が変更するステップをさらに備え、
    前記更新ページ検出手段が、表示領域を変更した後の新たな表示領域の画像情報を記憶する各ページを前記更新ページとして検出することを特徴とする請求項11記載の更新画像検出方法。
  13. 第1の変更手段が、
    前記領域変更手段で前記表示領域から前記非表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第1制御情報を前記第2の制御情報に書き換え、前記非表示領域から前記表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第2の制御情報を前記第1の制御情報に書き換えるステップをさらに含む請求項12記載の更新画像検出方法。
  14. 前記テーブル記憶手段が、各ページに対し、前記更新手段による当該ページの更新の有無を示す判定情報をさらに記憶することを特徴とする請求項12記載の更新画像検出方法。
  15. 前記表示領域の範囲を領域変更手段が変更するステップと、
    第1の変更手段が、前記領域変更手段で前記表示領域から前記非表示領域に変更されたページに対し前記第テーブル記憶手段に記憶されている前記第1制御情報を前記第2の制御情報に書き換え、前記非表示領域から前記表示領域に変更されたページに対し前記テーブル記憶手段に記憶されている前記第2の制御情報を前記第1の制御情報に書き換えるステップと、
    前記更新手段で更新される各ページの前記判定情報を第2の変更手段が更新有りに変更するステップと、
    をさらに含み、
    前記更新ページ検出手段が、表示領域を変更した後の新たな表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項14記載の更新画像検出方法。
  16. 各ページに対し、前記更新手段による当該ページの更新の有無を示す判定情報をテーブル記憶手段が記憶するステップと、
    前記更新手段で更新される各ページの前記判定情報を第1の変更手段が更新有りに変更するステップと、
    をさらに含み、
    前記更新ページ検出手段が、前記表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項10記載の更新画像検出方法。
  17. 前記表示領域の範囲を領域変更手段が変更するステップをさらに含み、
    前記更新ページ検出手段が、表示領域を変更した後の新たな表示領域を記憶する各ページを前記更新ページとして検出することを特徴とする請求項16記載の更新画像検出方法。
  18. 前記表示領域の範囲を領域変更手段が変更するステップをさらに含み、
    前記更新ページ検出手段が、表示領域を変更した後の新たな表示領域を記憶するページ群のうち、前記判定情報が更新有りを示すページを前記更新ページとして検出することを特徴とする請求項16記載の更新画像検出方法。
  19. コンピュータを、
    アプリケーションプログラムを動作させることにより生成される画像情報を、ネットワークを介して端末装置に送信して表示されるサーバ装置として機能させるためのプログラムであって、
    生成した画像情報を予め定められたサイズのメモリであるページ毎に分割して記憶する画像情報記憶手段、
    前記画像情報記憶手段に記憶された前記画像情報を、アプリケーションプログラムの動作に応じて更新する更新手段、
    前記画像情報記憶手段に記憶されている画像情報のうち、前記端末装置に送信され、該端末装置が有する表示画面に表示されている表示領域の画像情報が記憶されているページのなかから、前記更新手段により更新される画像情報を含むページを更新ページとして検出する更新ページ検出手段、
    前記更新ページの更新前の画像情報を記憶するバックアップ記憶手段、
    前記更新ページの更新前の画像情報と更新後の画像情報とから、前記更新手段により更新された画像情報を検出する更新画像検出手段であって、(a)前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されているとき、当該更新ページの更新前の画像情報と更新後の画像情報との差分を前記更新された画像情報として検出し、(b)前記バックアップ記憶手段に前記更新ページの更新前の画像情報が記憶されていないとき、当該更新ページの更新後の画像情報を前記更新された画像情報として検出する更新画像検出手段、
    前記更新画像検出手段で検出された画像情報から送信画像情報を生成する送信画像生成手段、
    前記送信画像情報を前記端末装置へ送信する送信手段、
    として機能させるプログラム。
JP2008027836A 2008-02-07 2008-02-07 サーバ装置、更新画像検出方法およびプログラム Expired - Fee Related JP4810548B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008027836A JP4810548B2 (ja) 2008-02-07 2008-02-07 サーバ装置、更新画像検出方法およびプログラム
US12/365,576 US8255900B2 (en) 2008-02-07 2009-02-04 Virtual computer server apparatus, and update image detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008027836A JP4810548B2 (ja) 2008-02-07 2008-02-07 サーバ装置、更新画像検出方法およびプログラム

Publications (3)

Publication Number Publication Date
JP2009187379A JP2009187379A (ja) 2009-08-20
JP2009187379A5 JP2009187379A5 (ja) 2011-03-17
JP4810548B2 true JP4810548B2 (ja) 2011-11-09

Family

ID=40939989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008027836A Expired - Fee Related JP4810548B2 (ja) 2008-02-07 2008-02-07 サーバ装置、更新画像検出方法およびプログラム

Country Status (2)

Country Link
US (1) US8255900B2 (ja)
JP (1) JP4810548B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510217B (zh) * 2009-03-09 2013-06-05 阿里巴巴集团控股有限公司 图像数据库中的图像更新方法、服务器及系统
CA2944218C (en) * 2009-05-20 2018-09-11 Evizone Ip Holdings, Ltd. Secure workflow and data management facility
US8392497B2 (en) * 2009-11-25 2013-03-05 Framehawk, LLC Systems and algorithm for interfacing with a virtualized computing service over a network using a lightweight client
US8760459B2 (en) * 2009-12-30 2014-06-24 Intel Corporation Display data management techniques
JP2011204158A (ja) * 2010-03-26 2011-10-13 Sony Corp 端末装置、処理システム、処理方法及びプログラム
EP2400385A1 (en) * 2010-06-28 2011-12-28 Alcatel Lucent Interface between a plurality of graphical applications
JP5392203B2 (ja) 2010-08-19 2014-01-22 株式会社リコー 情報処理装置、情報処理システム、インストール支援方法、及びインストール支援プログラム
US8849768B1 (en) * 2011-03-08 2014-09-30 Symantec Corporation Systems and methods for classifying files as candidates for deduplication
US9146765B2 (en) * 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US8862906B2 (en) * 2011-04-01 2014-10-14 Intel Corporation Control of platform power consumption using coordination of platform power management and display power management
JP5862408B2 (ja) * 2012-03-27 2016-02-16 富士通株式会社 エミュレーション装置、及びエミュレーションプログラム
US9135052B2 (en) * 2012-11-06 2015-09-15 Red Hat Israel, Ltd. Distributed multiple monitor display split using multiple client devices in a virtualization system
US8959514B2 (en) * 2012-11-06 2015-02-17 Red Hat Israel, Ltd. Virtual machine monitor display split using multiple client devices in a virtualization system
JP2014135013A (ja) * 2013-01-11 2014-07-24 Fujitsu Ltd 画像転送方法、サーバ機器及びプログラム
US9177534B2 (en) 2013-03-15 2015-11-03 Intel Corporation Data transmission for display partial update
JP6110755B2 (ja) * 2013-08-20 2017-04-05 コニカミノルタ株式会社 文書編集装置およびプログラム
US9684686B1 (en) * 2013-09-04 2017-06-20 Amazon Technologies, Inc. Database system recovery using non-volatile system memory
JP5994898B2 (ja) * 2014-04-30 2016-09-21 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理装置の制御方法、およびプログラム
WO2016059737A1 (ja) * 2014-10-14 2016-04-21 パナソニックIpマネジメント株式会社 画面生成装置、画面生成システム、及び、画面生成方法
US10860310B2 (en) 2015-09-30 2020-12-08 Apple Inc. Software updating
CN107040396A (zh) * 2016-02-03 2017-08-11 博雅网络游戏开发(深圳)有限公司 配置信息获取方法和装置
CN108880900B (zh) * 2018-07-02 2021-04-09 哈尔滨工业大学 一种面向网安试验的虚拟网络映射方法
US11188511B2 (en) * 2019-06-04 2021-11-30 Western Digital Technologies, Inc. Offloading file-indexing to memory card firmware
CN111309420A (zh) * 2020-02-06 2020-06-19 Tcl移动通信科技(宁波)有限公司 开机画面显示方法及其系统、存储介质及终端设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765206A (en) * 1996-02-28 1998-06-09 Sun Microsystems, Inc. System and method for emulating a segmented virtual address space by a microprocessor that provides a non-segmented virtual address space
JPH11272591A (ja) * 1998-03-20 1999-10-08 Hitachi Software Eng Co Ltd 共有アプリケーションにおけるデータ転送量保証システム
US6263403B1 (en) * 1999-10-31 2001-07-17 Hewlett-Packard Company Method and apparatus for linking translation lookaside buffer purge operations to cache coherency transactions
US6784855B2 (en) * 2001-02-15 2004-08-31 Microsoft Corporation Methods and systems for a portable, interactive display device for use with a computer
US7395278B2 (en) * 2003-06-30 2008-07-01 Microsoft Corporation Transaction consistent copy-on-write database
EP1668486A2 (en) * 2003-08-14 2006-06-14 Compellent Technologies Virtual disk drive system and method
JP4779756B2 (ja) * 2006-03-29 2011-09-28 カシオ計算機株式会社 コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム
US7783858B2 (en) * 2007-01-20 2010-08-24 International Business Machines Corporation Reducing memory overhead of a page table in a dynamic logical partitioning environment
US7747838B2 (en) * 2007-05-19 2010-06-29 International Business Machines Corporation Method and apparatus for dynamically adjusting page size in a virtual memory range
US8045828B2 (en) * 2007-07-09 2011-10-25 Kabushiki Kaisha Toshiba Apparatus for processing images, and method and computer program product for detecting image updates

Also Published As

Publication number Publication date
JP2009187379A (ja) 2009-08-20
US20090204957A1 (en) 2009-08-13
US8255900B2 (en) 2012-08-28

Similar Documents

Publication Publication Date Title
JP4810548B2 (ja) サーバ装置、更新画像検出方法およびプログラム
CN110928695B (zh) 一种关于显存的管理方法、装置及计算机存储介质
JP5027899B2 (ja) 遠隔の表示部へ伝送するためにフレームバッファをコピーする方法及びシステム
US8797232B2 (en) Information processing apparatus, display control method, and program
EP2293192B1 (en) Methods and systems for remoting three dimensional graphics
RU2424559C1 (ru) Способ и вычислительная система для сокращения количества данных, передаваемых удаленному клиентскому терминалу
US8102400B1 (en) Method and apparatus for providing enhanced resolution display for display telephones and PDAs
US7262776B1 (en) Incremental updating of animated displays using copy-on-write semantics
US8019003B2 (en) Systems and methods for tracking screen updates
US20120209894A1 (en) Partition file system for virtual machine memory management
US20180074956A1 (en) Method, apparatus, and electronic device for modifying memory data of a virtual machine
CN114741044B (zh) 一种基于异构渲染的跨运行环境显示输出共享方法
JP2014135013A (ja) 画像転送方法、サーバ機器及びプログラム
JP3797372B2 (ja) 描画命令のフックを利用した画像の転送
CN113368492A (zh) 渲染的方法、装置
US9324299B2 (en) Atlasing and virtual surfaces
WO2011077550A1 (ja) 画面中継装置
US9111370B2 (en) Buffer display techniques
JP2017228241A (ja) 画面送信方法、画面送信装置、及びプログラム
US10705865B2 (en) Disk resize of a virtual machine
JP2004505355A (ja) データ処理システムにおける動的グラフィックス・コンテキスト切替の方法および装置
JP2007200145A (ja) クライアント装置、サーバー装置、サーバーベースコンピューティングシステムおよびプログラム
JP3797371B2 (ja) 描画命令のフックを利用した画像の転送
JP4964219B2 (ja) 画像処理装置、方法及びプログラム
JP2008085502A (ja) 画像転送装置、方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101015

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110131

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110131

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110502

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110726

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110822

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees