JP2004013689A - Data processing device - Google Patents

Data processing device Download PDF

Info

Publication number
JP2004013689A
JP2004013689A JP2002168737A JP2002168737A JP2004013689A JP 2004013689 A JP2004013689 A JP 2004013689A JP 2002168737 A JP2002168737 A JP 2002168737A JP 2002168737 A JP2002168737 A JP 2002168737A JP 2004013689 A JP2004013689 A JP 2004013689A
Authority
JP
Japan
Prior art keywords
storage area
storage
terminal
image data
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.)
Pending
Application number
JP2002168737A
Other languages
Japanese (ja)
Inventor
Masaaki Ishimaru
石丸 昌晃
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2002168737A priority Critical patent/JP2004013689A/en
Publication of JP2004013689A publication Critical patent/JP2004013689A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Digital Computer Display Output (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data processing device that executes operations from many terminals and uses programs under a small storage capacity, by dispensing with preliminary holding of an area for storing image data for every terminal connected to a network circuit. <P>SOLUTION: On a connection request from a terminal connected via a network circuit 104, storage area setting means set a storage area 212, 213 for holding image data in a virtual display space corresponding to the terminal, in a storage address space 211 of an image storage circuit 208. Image data transmitting means transmit image data in the storage area 212, 213 to the terminal, and program executing means execute a program whose output interface is the storage area 212, 213. When operations from the terminal are finished, storage area releasing means release the storage area 212, 213 to make the image storage circuit 208 usable for new terminal connection. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
この発明は、データ処理装置に関し、特に、複数の端末よりネットワーク回線を介してホストコンピュータ装置を操作するのに好適なデータ処理装置に関する。
【0002】
【従来の技術】
従来、データ処理装置としては、図19に示すように、複数のユーザー入力を干渉なく処理するコンピュータ装置1001がある(特表平11−503849号公報)。このコンピュータ装置1001は、シングルユーザOS(オペレーションシステム)としてマイクロソフト社のウインドウズを用いている。上記コンピュータ装置1001に接続された個々のディスプレイ装置1002,1003,1004および1005は、それぞれ、画像記憶手段であるコンピュータ内部のグラフィックボード(図示せず)に接続されており、それぞれディスプレイ空間を提供している。そして、OSのマルチディスプレイ機能により仮想デスクトップ空間上の異なる領域をそれぞれのディスプレイ装置1002〜1005が表示するように設定されている。上記コンピュータ装置1001は、イベント駆動型のソフトウエアが動作しており、複数のマウス1006,1007,1008および1009がひとつひとつのディスプレイ装置1002〜1005に対応づけられており、各マウス1006〜1009の入力操作は、対応するディスプレイ装置1002〜1005上に表示されたオブジェクトに対応するソフトウエアにマウス入力イベントとして伝達される。この構成により、シングルユーザOSであるにも関わらず、1つのコンピュータ装置1001上で複数のソフトウエアを、複数の作業者により、見た目上、干渉なく使用できることを可能にしている。
【0003】
【発明が解決しようとする課題】
ところで、上記データ処理装置では、各端末の使用の有無に関わらず、ディスプレイ装置1002〜1005に対応した画像記憶手段であるグラフィックモジュールを備える必要があるため、効率が悪いという問題がある。
【0004】
また、複数の作業者が同じ場所で共同作業する場合などには適しているが、ディスプレイやマウスなどの入出力装置のケーブル長によって各端末の使用可能な空間的な配置が限られてしまう。特に、家庭内で複数の作業者が別々の場所でコンピュータ装置を独立して利用する場合などでは、それぞれの場所まで、ディスプレイケーブルとマウスケーブルを延長する必要があった。そのため、実質上、自由な場所での利用ができないという問題がある。
【0005】
そこで、この発明の目的は、端末毎に画像データの記憶領域を予め保持する必要がなく、少ない記憶容量で効率よく多くの端末が利用でき、離れた場所にある端末からもネットワーク回線を介してプログラムの処理ができるデータ処理装置を提供することにある。
【0006】
【課題を解決するための手段】
上記目的を達成するため、この発明のデータ処理装置は、ネットワーク回線を介して少なくとも1つの端末より接続要求が行われると、その接続要求に応じて、画像記憶手段の記憶アドレス空間に上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を記憶領域設定手段により設定する。このデータ処理装置は、上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域の画像データを、画像データ送信手段によりネットワーク回線を介して端末に送信する。そして、端末では、画像データを受信して端末のディスプレイ装置に表示する。上記端末に接続された入力装置(例えばキーボード入力装置やポインティング入力装置)から入力された入力データを、ネットワーク回線を介してこのデータ処理装置に送信すると、端末からの入力データを処理して、上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を出力インターフェースとしたプログラムの実行をプログラム実行手段により行うことにより、上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する記憶領域に画像データを出力する。これによって、ネットワーク回線によって少なくとも1つの端末が接続されるデータ処理装置の操作を、端末のディスプレイ装置を見ながらその端末より行うことができる。また、端末からの作業が終了すれば、上記画像記憶手段の記憶アドレス空間上の上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を記憶領域解放手段により解放し、次の端末の接続要求を待つ。
【0007】
したがって、上記構成のデータ処理装置によれば、端末毎に画像データの記憶領域を予め保持する必要がなく、少ない記憶容量で効率よく多くの端末が利用できると共に、離れた場所にある端末からもネットワーク回線を介してプログラムの処理ができる。
【0008】
また、この発明のデータ処理装置では、ネットワーク回線を介して複数の端末より、データ処理装置を構成するコンピュータ装置に別々に接続要求が行われる場合、各端末からの接続要求を順次受け付け、それぞれの端末に対応する複数の記憶領域が相互に重ならないように、それぞれの端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を、上記記憶領域設定手段により画像記憶手段の記憶アドレス空間に設定する。そして、上記画像記憶手段の記憶アドレス空間に設定された上記記憶領域の画像データを、上記画像データ送信手段によりネットワーク回線を介して順次対応する端末に送信する。各端末では、画像データを受信して端末のディスプレイ装置に表示する。また、端末に接続された入力装置(例えばキーボード入力装置やポインティング入力装置)から入力された入力データを、ネットワーク回線を介して順次、このデータ処理装置に送信すると、上記プログラム実行手段により実行されたプログラムによって、各端末からの入力データを別々に処理し、記憶アドレス空間を分割して作成した各端末の使用する記憶領域に対応させて画像データを出力する。
【0009】
このような複数の端末からの処理を行う場合には、処理速度の低下防止が大きな課題となるが、この発明の画像記憶手段の記憶アドレス空間を分割して各端末毎に区別して使用する構成のデータ処理装置では、各端末に対応する仮想ディスプレイ空間の記憶領域への画像データの入出力は、画像記憶手段の記憶アドレス空間全体への画像データの入出力のプログラムを共通して使用することができる。そのため、画像描画を高速化するグラフィック処理回路を共通に利用することも可能となり、処理速度を向上できる利点を有する。
【0010】
また、一実施形態のデータ処理装置では、上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域が、上記画像記憶手段の記憶アドレス空間上で連続した領域とする。
【0011】
そうすることで、画像データの入出力時のアドレス計算の処理量が低減され、出力インターフェースとしての処理速度が向上する。また、上記記憶領域の画像データを端末に送信するときの処理速度が向上する。特に、画像データの入出力に、画像記憶手段の記憶アドレス空間全体への画像データの入出力のプログラムを共通して使用するためには、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域は連続した領域であることがより好ましい。
【0012】
また、一実施形態のデータ処理装置では、ネットワーク回線を介して端末によりに接続要求が行われたとき、端末のディスプレイ装置の情報として、解像度を取得することによって、上記端末の表示画面の解像度に合わせて、上記端末の使用する仮想ディスプレイ空間の解像度を解像度設定手段により設定し、画像記憶手段の記憶アドレス空間に上記端末に対応する仮想ディスプレイ空間の画像データを保持できる容量の記憶領域を設定する。なお、ここで解像度は、表示画面の縦横の画素数や、色調の解像度であり、縦横の画素数だけでもよい。
【0013】
したがって、予めディスプレイ装置の表示画面の解像度が指定された端末に限られることなく、例えば、各種携帯端末や、ディスプレイ装置をもつ携帯電話等を端末として随時接続し、プログラムを実行して処理を行うことができる。また、特に、画像記憶手段の記憶アドレス空間上を占める記憶領域が必要最小限になるために、複数の端末を同時に接続する場合、より多くの端末を接続することができる。
【0014】
また、一実施形態のデータ処理装置では、上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を、その記憶アドレス空間内で移動させる記憶領域移動手段を有する。
【0015】
つまり、ある端末への画像データの送信が不要(または一定の間不要)となる場合に、上記端末に対応するディスプレイ空間の画像データを保持する記憶領域を解放する場合があり、上記画像記憶手段は、新規な端末の接続に使用することが可能となる。このとき、上記記憶領域移動手段よって、その他の記憶領域を画像記憶手段の記憶アドレス空間内で画像データと共に移動させ、画像記憶手段の記憶アドレス空間の各記憶領域間の未使用の領域を減少させ、できるだけ大きな連続した未使用の領域を作成することが可能となる。
【0016】
なお、移動させた各端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域は、上記画像記憶手段の記憶アドレス空間内の位置が変わるので、以降、それに対応して、端末には、移動された先の記憶領域に保持する仮想ディスプレイ空間の画像データを送信する。また、端末からの入力に対応する処理においても移動された先の記憶領域に画像データを出力するようにする。
【0017】
複数の端末が接続と切断を繰り返した場合に、画像記憶手段の記憶アドレス空間内の仮想ディスプレイ空間の画像データを保持している記憶領域間に未使用の記憶領域が散在し、新規な端末に使用する連続した記憶領域が確保できなくなる場合がある。また、いろいろな解像度のディスプレイ装置に応じて、異なる解像度の仮想ディスプレイ空間の画像データを保存する記憶領域、つまり容量の異なる記憶領域が混在する場合には、接続と切断を繰り返すことによって、特に、未使用の記憶領域が散在してしまう場合がある。しかしながら、上記実施形態の記憶領域移動手段の構成により、できるだけ大きな連続した未使用の領域を作成することができ、より多くの端末が接続でき、同時に複数の作業を行うことができる。
【0018】
また、一実施形態のデータ処理装置では、上記記憶領域設定手段は、上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を、上記記憶アドレス空間上の上位アドレスから割り当てると共に、下位アドレスからも割り当てる。
【0019】
つまり、上記記憶領域設定手段は、順次行われる接続要求に応じて、上記画像記憶手段の記憶アドレス空間を分割して、上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を設定するとき、記憶アドレス空間上の上位アドレスからと、下位アドレスからとの両方に、たとえば端末毎に割り振って記憶領域を設定する。
【0020】
そうすることによって、結果的に画像記憶手段の記憶アドレス空間の中央に主な未使用の記憶領域が位置することになる。そのため、中央の主な未使用の記憶領域に隣り合う仮想ディスプレイ空間の画像データを保持する記憶領域は2個になる。上記記憶アドレス空間の上位アドレスか、下位アドレスの一方から仮想ディスプレイ空間の画像データを保持する記憶領域を設定する場合は、主な未使用の記憶領域は記憶アドレス空間の反対側に存在し、主な未使用の記憶領域に隣り合う仮想ディスプレイ空間の画像データを保持する記憶領域は1個になる。そして、端末の作業が終わり記憶領域が解放されるとき、解放された記憶領域は上記の主な未使用の記憶領域と孤立する場合もあるが、本構成の場合のほうが解放された記憶領域が上記の主な未使用の記憶領域と連結されてより大きな未使用の記憶領域となる確率が2倍高くなる。
【0021】
特に、仮想ディスプレイ空間の画像データを保持する記憶領域を、画像記憶手段の記憶アドレス空間中で移動させて、より大きな容量の未使用の記憶領域を作成する場合には、本構成による記憶領域の設定によって移動させる記憶領域を少なくすることができ、処理量を低減することができる。
【0022】
また、一実施形態のデータ処理装置では、上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を記憶領域待避手段により待避させる。そうして、上記記憶領域待避手段により待避させた上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を、記憶領域復元手段により上記画像記憶手段の記憶アドレス空間に復元する。
【0023】
つまり、端末への画像データの送信が一定の間不要となる場合には、上記記憶領域待避手段により、上記端末に対応する仮想ディスプレイ空間の画像データを保存する記憶領域を別の記憶手段に記憶し、上記画像記憶手段の記憶アドレス空間で占有していた記憶領域を解放することによって、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を待避させる。それによって、新規な端末の接続要求に備えて、上記画像記憶手段の記憶アドレス空間に未使用の領域を確保できる。
【0024】
また、待避させた記憶領域の画像データの送信が必要となった場合には、上記記憶領域復元手段により、上記画像記憶手段の記憶アドレス空間に新規に記憶領域を設定し、その新規な記憶領域に上記記憶領域待避手段により待避させた記憶領域を復元する。
【0025】
なお、復元した仮想ディスプレイ空間の画像データを保持する記憶領域は、画像記憶手段の記憶アドレス空間内において、以前と位置が変わる場合があるので、以降、それに対応して、移動した先の記憶領域に保持された仮想ディスプレイ空間の画像データを端末に送信する。また、端末からの入力に対応する処理においても、移動した先の記憶領域に仮想ディスプレイ空間の画像データを出力するように構成する。
【0026】
端末での作業を中断したり、一定の時間、画像を表示することを目的としたりして、データ処理装置より画像データを受信する必要がなくなった場合でも、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域は、画像記憶手段の記憶アドレス空間を占有し続ける。そのために、新規な端末の仮想ディスプレイ空間の画像データを保持する未使用の記憶領域が確保できなくなる場合がある。しかしながら、上記実施形態の記憶領域待避手段および記憶領域復元手段の構成により、記憶アドレス空間に一時的に未使用の記憶領域を作成することができ、多くの端末が接続でき、同時に作業を行うことができるデータ処理装置が可能となる。
【0027】
特に、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を待避させた後、その他の仮想ディスプレイ空間の画像データを保持する記憶領域を画像記憶手段の記憶アドレス空間内で画像データと共に移動させ、画像記憶手段の記憶アドレス空間内の各記憶領域間に存在する未使用の領域を減少させ、できるだけ大きな連続した未使用の領域を作成する構成とすることで、画像記憶手段の記憶アドレス空間全体をより効率的に使用することができる。
ここで、仮想ディスプレイ空間の待避は、データ処理装置において実行されるが、待避の判断は、端末での画面への画像の表示、更新において、仮想ディスプレイ空間に保持されている画像を必要とするかどうかを基準としてなされる。これは、従来の主記憶装置上の実行プログラムや、データをコンピュータ装置自身での利用の有無によってハードディスク上に待避(スワップ)する構成と異なった課題と構成を有している。そのため、本構成によって、端末側での作業性を損なうことなく画像記憶手段の未使用の記憶領域を一時的に増加させることができる利点を有する。
【0028】
また、一実施形態のデータ処理装置では、上記画像記憶手段の記憶アドレス空間の上記記憶領域に保持された画像データが、コンピュータ装置のシステムバスを介さず、上記ネットワーク回線に接続するためのネットワークモジュールに転送される経路を有する。つまり、仮想ディスプレイ空間の画像データは、画像記憶手段の記憶アドレス空間からネットワークモジュールにシステムバス以外の経路によって転送され、ネットワークモジュールによりネットワーク回線を介して端末に送信される。
【0029】
これによって、画像データの転送のためにCPUやシステムバスの負荷が増大することがなくなり、画像記憶手段の記憶アドレス空間を分割して端末毎に区別して使用する構成において、特に処理速度の低下を防止する大きな効果を有する。
【0030】
また、処理速度の向上によって、端末からの入力操作に対して応答を早くすることができ、作業者にとって利便性の高いデータ処理装置の提供が可能となる。
【0031】
【発明の実施の形態】
以下、この発明のデータ処理装置を図示の実施の形態により詳細に説明する。〔第1実施形態〕
図1はこの発明の第1実施形態のデータ処理装置の一例としてのホストコンピュータ装置を備えたコンピュータシステムの概略構成図である。このコンピュータシステムは、図1に示すように、ホストコンピュータ装置101と、それに接続される複数の端末102,103(図1では2つのみを示す)と、それらを相互に接続するネットワーク回線104とを備えている。
【0032】
上記ネットワーク回線104には、IEEE802の規格の100BASE−Tによるインターネット回線を用い、HUB(分岐装置)105で分岐し、複数の接続端子106,107,108,109を設けている。上記接続端子106にホストコンピュータ装置101を接続し、接続端子107,108に端末102,端末103を夫々接続している。
【0033】
上記ホストコンピュータ装置101は、ディスプレイ装置110、キーボード入力装置111、ポインタ入力装置112が接続されると共に、ハードディスク(図示せず)が内蔵され、マイクロソフト社のマルチディスプレイ機能を有するWindows(登録商標)98をOS(オペレーションシステム)として作業ができるコンピュータ装置になっている。
【0034】
また、上記端末102,103は、ディスプレイ装置113,114とキーボード入力装置115,116およびポインタ入力装置117,118が夫々接続(または内蔵)されている。上記ポインタ入力装置117,118は、マウス、トラックボール、タッチパネル、デジタイザパネル等の座標入力装置である。
【0035】
図2は上記ホストコンピュータ装置101のブロック図を示している。このホストコンピュータ装置101は、CPU(中央演算装置)201と、主記憶装置202と、前述のネットワーク回線104に接続するためのネットワークモジュール203と、ディスプレイ装置110に接続するための第1のグラフィックモジュール204と、ハードディスク,キーボード,マウスを制御するコントローラモジュール205とを備えている。上記CPU201,主記憶装置202,ネットワークモジュール203,第1のグラフィックモジュール204およびコントローラモジュール205をシステムバス206を介して相互に接続している。
【0036】
さらに、上記ホストコンピュータ装置101は、システムバス206に接続された第2のグラフィックモジュール207を備えている。この第2のグラフィックモジュール207は、画像記憶手段の一例としての画像記憶回路208と、その画像記憶回路208への画像データの演算や入出力210を行うグラフィック処理回路209を有している。上記画像記憶回路208の記憶アドレス空間211に画像データが保持される。上記グラフィック処理回路209は、一般的に、グラフィックプロセッサと呼ばれる画像処理専用のデータ処理素子を用いた画像処理用の回路である。
【0037】
また、上記システムバス206には、PCI(Peripheral Component Interconnect)バスを用いたが、ISA(Industry Standard Architecture)バスやVME(Versa Module European)バスによる構成も可能であり、グラフィックモジュールに対しては専用のイメージバス(AGP(Accelerated Graphic Port)バス等)を用いた構成とする方が望ましい。
【0038】
図3にマルチディスプレイ機能を用いた仮想デスクトップ空間301を示している。
【0039】
図3に示すように、仮想デスクトップ空間301の一部に矩形で示す領域302は、第1のグラフィックモジュール204(図2に示す)に画像が保持される仮想ディスプレイ空間であり、ディスプレイ装置110(図1に示す)に表示される。また、仮想デスクトップ空間301の別の一部に矩形で示す領域は、第2のグラフィックモジュール207(図2に示す)の画像記憶回路208の記憶アドレス空間211にそれぞれ記憶領域212,213を設定して、画像データを保持する仮想ディスプレイ空間303,304を示している。
【0040】
この発明において、画像記憶回路208の記憶アドレス空間211に保持される仮想ディスプレイ空間303,304の画像データは、端末のディスプレイ装置で表示されるので、第2のグラフィックモジュール207には、実際にディスプレイが接続される必要はない。
【0041】
図4は図1に示すホストコンピュータ装置101で実行されるプログラムのタスク構成の概念図を示している。上記ホストコンピュータ装置101(図1に示す)のハードウエア408を制御するOS(Windows98)401上には、並列処理されるプログラムとして、通常に実行されているアプリケーションのプログラム402の他に、端末からの接続要求への応答や、接続後の端末からの入力データの受信や端末への画像データの送信などを行う接続管理プログラム403が実行されている。また、接続管理プログラム403によって起動され、端末毎の処理を行う子プログラム404,405が実行されている。
【0042】
つまり、図1、図2、図3、図4では、ホストコンピュータ装置101に、ネットワーク回線104を介して端末102,103が接続され、各端末102,103がそれぞれ別々に仮想ディスプレイ空間303,304を使用する。そして、仮想ディスプレイ空間303,304の画像データは、画像記憶回路208の記憶アドレス空間211中の、それぞれ、記憶領域212,213に保持されている。そして、各端末102,103の処理を別々に行う子プログラム404,405が動作している様子を示している。
【0043】
ここで、接続管理プログラム403と子プログラム404,405は、複数の端末102,103と、仮想ディスプレイ空間の画像データを保持する複数の記憶領域212,213を区別して処理を進めるために、図5に示すように、管理表リスト509を共有する構成としている。上記管理表リスト509は、端末を識別するための情報(以降、端末の識別情報と呼ぶ)501と、記憶アドレス空間の一部を仮想ディスプレイ空間として使用するための情報(以降、仮想ディスプレイ情報と呼ぶ)502と、子プログラムを識別するための情報(以降、子プログラムの識別情報と呼ぶ)503を対応させた管理表507,508等を、端末毎に複数保持する。
【0044】
上記端末102,103からホストコンピュータ装置へは、ネットワーク回線104を介してTCPIPプロトコルで通信を行う構成とし、上記端末の識別情報501は、端末のインターネットアドレスを用いている。
【0045】
また、仮想ディスプレイ情報502は、記憶アドレス空間211(図2に示す)中での記憶領域212,213等の先頭アドレスと最終アドレス、仮想ディスプレイ空間の解像度、および、仮想ディスプレイ空間の画素と記憶アドレス空間との対応関係、および、仮想デスクトップ空間中での仮想ディスプレイの占める座標を示す情報としている。
【0046】
また、子プログラムの識別情報503は、プログラムをOSが管理するときに用いるタスクID番号を用いた。
【0047】
(1) ホストコンピュータ装置の処理
次に、この第1実施形態のホストコンピュータ装置101の処理について説明する。
【0048】
(1−1) 接続管理プログラム
図10は上記ホストコンピュータ装置101の接続管理プログラムのフローチャートを示している。この接続管理プログラム403は、図10のフローチャートに示すように、ステップS1で端末から受信があるか否かを判断して、端末から受信があると判断すると、ステップS2に進み、端末からの接続要求の処理を行い、さらにステップS3で端末からの入力データの処理を行った後、ステップS4に進む。
【0049】
一方、ステップS1で端末から受信がないと判断すると、ステップS2,S3をスキップしてステップS4に進む。
【0050】
そして、ステップS4で端末への画像データの送信処理を行った後、ステップS5で、処理の終了の指示があるか否かを判断して、処理の終了の指示がないと判断すると、ステップS1に戻り、利用者による接続処理プログラム403の終了の指示があるまでステップS1〜S4を繰り返す。
【0051】
上記ステップS2,S3,S4の処理は、図10に示すように順次処理される構成としてもよいが、プログラム中の異なるスレッド、または、異なるプログラム上で並列に処理されるように構成することも可能である。
【0052】
以下、上記接続管理プログラム403におけるステップS2,S3,S4の処理について夫々説明する。
【0053】
(1−2) 端末からの接続要求の処理
図11は、図10のステップS2における端末からの接続要求の処理を説明するフローチャートを示している。ここでは、端末103(図1に示す)がホストコンピュータ装置101に接続する場合を例として、既に端末102が接続された状態であるものとする。つまり、端末102は既に、画像記憶回路208の記憶アドレス空間211に、端末102に対応する仮想ディスプレイ空間303の画像データを保持する記憶領域212(図2に示す)を有し、端末102の処理を行っている子プログラム404(図4に示す)が実行されているものとする。
【0054】
上記端末103からの接続要求があると、ホストコンピュータ装置のハードウエア408(図4に示す)で受信したネットワーク回線104からの信号409(図4に示す)は、OS401により接続管理プログラム403に通知される。
【0055】
接続管理プログラム403は、図11のステップS11で、ネットワーク回線104からの信号409が端末からの接続要求であることを判断すると、ステップS12に進む一方、端末からの接続要求がないと判断すると、この処理を終了する。
【0056】
端末からの接続要求の場合には、ステップS12で、端末が仮想ディスプレイ空間として使用する記憶領域の解像度および画素と記憶アドレスとの対応関係を設定する。上記ステップS12によって、端末のディスプレイ装置の解像度に合わせて、仮想ディスプレイ空間の画像データを保持する記憶領域の解像度を設定する解像度設定手段が構成されている。
【0057】
この第1実施携帯では、接続要求の信号409に応答する信号410を発し、端末103より、ディスプレイ装置114の解像度の情報としてディスプレイ装置114の縦横の画素数および色調の解像度を取得し、端末103が使用する仮想ディスプレイ空間の縦横の画素数および色調の解像度とした。画素と記憶アドレスとの対応関係は、仮想ディスプレイ空間の画素を記憶アドレス中でどのように配置するかを決める方式で、既存の方式の適当なものを用いることができる。
【0058】
そして、ステップS13に進み、画像記憶回路208の記憶アドレス空間211中の未使用の記憶領域を取得する。つまり、記憶アドレス空間211には、端末102が仮想ディスプレイ空間として使用する記憶領域212が既に存在している。この記憶領域212が占有する記憶アドレスの情報は、管理表リスト509中の、端末102に対応する管理表507に仮想ディスプレイ情報502として保持されている。ほかにも端末が接続している場合には、同様に端末毎の仮想ディスプレイ情報502を取得し、未使用の記憶領域を算出する。図2では、破線で示した未使用の記憶領域214が算出された様子を示している。
【0059】
この第1実施形態では、画像記憶回路208の記憶アドレス空間211を有効に利用するために、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域は、できるだけ上位アドレスから順に詰めて、端末のディスプレイ装置の縦横の画素数、色調の解像度を保持できる記憶量に合わせた記憶領域を、連続した記憶アドレス空間となるように設定している。
【0060】
そして、ステップS14で、上記の未使用の記憶領域に、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を設定する。つまり、未使用の記憶領域214の上位アドレスから順に詰めてステップS12で設定した縦横の画素数,色調の解像度の仮想ディスプレイ空間を保持できるだけの記憶領域213を、端末103に対応する仮想ディスプレイ空間の画像データを保持する記憶領域として設定する。以上の方法により、既存の端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域に重ならない部分に、記憶アドレス空間211を分割して、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を設定することができる。
【0061】
そして、ステップS15で記憶領域が設定できたか判断して、記憶領域の設定ができたと判断すると、ステップS16に進み、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を出力インターフェースとする子プログラムを起動する。この実施形態では、記憶領域213の保持する仮想ディスプレイ空間304を、仮想デスクトップ空間301の一部を表示するデバイス装置としてOSに組み込む。これは、OSのプラグアンドプレイ機能を用いて行うように構成した。当然、仮想デスクトップ空間上の座標では、それぞれの端末に対応する仮想ディスプレイ空間が重ならないように配置する。
【0062】
そして、端末103に対応する仮想ディスプレイ空間304に画像データ出力を行うことを出力インターフェースとする子プログラム405を起動する。
【0063】
最後に、接続管理プログラム403は、ステップS17で、上記端末の識別情報501と、仮想ディスプレイ情報502と、子プログラムの識別情報503を対応させて保持して、この処理を終了する。
【0064】
この第1実施形態では、前述の管理表リスト509に端末103用の管理表508を追加し、端末の識別情報501、仮想ディスプレイ情報502、子プログラムの識別情報503にそれぞれ端末103に対応するデータを保存する構成としている。つまり、ステップS13で使用した管理表507の値も同様に端末102がホストコンピュータ装置101に接続したときに作成されたものである。
【0065】
また、この第1実施形態では、図10のステップS4において端末への画像データの送信処理を効率化するために、図5に示す管理表507,508には、さらに、仮想ディスプレイ空間303,304の画像データを保持する記憶領域212,213等への画像データの書き込みに関して、画像データの書き込みの有無の情報、つまり、端末に送信すべき情報の有無(以降、送信画像情報と呼ぶ)504と、書き込まれた画像データを含む矩形記憶領域の座標、つまり、端末に送信するべき矩形記憶領域の座標(以降、送信座標情報と呼ぶ)505を保持するようにしている。
【0066】
ここで、記憶アドレスの離れた複数の記憶領域を用いて、端末103に対応する1つの仮想ディスプレイ空間の画像データを保持することも可能である。例えば、記憶領域212の上位アドレスに少しの未使用の記憶領域があった場合、その記憶領域と、記憶アドレス空間211の下位アドレスの記憶領域を用いて記憶領域213と同じ記憶容量を確保することもできる。しかし、画像データの入出力や、端末への画像データの送信の処理が複雑となり、処理速度が低下するため、連続した記憶アドレスの領域で仮想ディスプレイ空間の画像データを保持するようにした方が望ましい。
【0067】
また、図11のステップS15で端末103に対応する仮想ディスプレイ空間の画像データを保持する記憶領域が設定できなかった場合は、ステップS18で端末103に接続要求の拒否の通知を行い、この処理を終了する。つまり、記憶アドレス空間211に未使用の記憶領域が少なく、端末103に対応する仮想ディスプレイ空間の画像データを保持できる容量の記憶領域が設定できなかった場合、端末103を接続しないでこの処理を終了する。
【0068】
次に、図11のステップS16で起動される子プログラムの処理を図14のフローチャートを用いて説明する。ここでは、端末103(図1に示す)の接続要求により起動された子プログラム405の動作として説明する。
【0069】
まず、子プログラム405は、ステップS41で、必要な初期化を行う。つまり、処理するデータの読み込みや、画面の初期化を行う。
【0070】
この第1実施形態では、子プログラム405は、図11のステップS17で、対応する管理表508に仮想ディスプレイ情報502が入力されるのを待ち、以降、仮想ディスプレイ情報502の示す仮想ディスプレイ空間304内への画像データの出力をもって、子プログラム405の出力インターフェースとするよう構成している。その後、画面の表示や、ポインティング入力やキーボード入力用のカーソルの表示を、仮想ディスプレイ空間304の記憶領域213内に行う。
【0071】
そして、ステップS42で入力イベントの有無を判断して、入力イベントがあった場合、ステップS43で入力イベントの処理を行い、ステップS44に進む。つまり、ポインタ装置の移動操作や、ボタンの操作、キー入力の入力イベントがあれば、それに応じて、カーソルの移動や入力操作に応じたプログラムの処理を行う。つまり、この子プログラム405の処理の中で、仮想ディスプレイ空間304への画像データの出力をもって入力イベントに対する応答を行う。
【0072】
また、この入力イベントは、次に説明する図12のステップS23で接続管理プログラム403から通知されるが、接続管理プログラム403と子プログラム405が並列処理できるように、バッファを用いて接続管理プログラム403がバッファに書き込み、子プログラム405がバッファの先に書き込まれたものから順に読み出すように構成した方が好ましい。
【0073】
そして、ステップS42で入力イベントがない場合、ステップS43をスキップしてステップS44に進む。
【0074】
そして、ステップS44で子プログラムの処理を終了する指示があるか否かを判断して、処理を終了する指示がないと判断すると、ステップS42に戻り、子プログラムの処理を終了する指示があるまでステップS42,S43を繰り返す。子プログラム405の処理を終了する指示は、例えば、仮想ディスプレイ空間304の中に、子プログラムの処理を終了させる処理に結び付けられた描画オブジェクトなどが、カーソルで指定されることなどで設定される。
【0075】
一方、ステップS44で子プログラムの処理を終了する指示があった場合には、ステップS45に進み、終了の処理を行う。例えば、画面の消去や、ファイルの保存等である。
【0076】
そして、ステップS46に進み、端末に対応する仮想ディスプレイ空間の画像データを保存する記憶領域を解放する。つまり、端末103に対応する記憶領域213を解放する。これは、図11のステップS17で端末毎に対応させて保持された端末の識別情報501と、仮想ディスプレイ情報502と、子プログラムの識別情報503を削除することでなされる。この第1実施形態では、管理表リスト509から管理表508を削除することで行う構成としている。
【0077】
また、この第1実施形態では、図10のステップS4における端末への画像データの送信処理を効率化するために、図14のステップS41,S43,S45で端末に対応する仮想ディスプレイ空間へ画像データの出力を行った場合は、管理表の送信画像情報504、送信座標情報505を更新するように構成している。例えば、図3に示す仮想ディスプレイ空間304に、画像出力305があった場合、送信画像情報504は送信するべき画像がある旨の情報を保持し、送信座標情報505には、書き込まれた画像出力305を含む矩形領域306の座標を保持する。もし、既に、送信画像情報504が送信するべき画像がある旨の情報を保持している場合は、送信座標情報505に保持されている矩形領域の座標と今回書き込んだ画像の両方を含む矩形領域の座標を保持する。
【0078】
(1−3) 端末からの入力データの処理
図12は、図10のステップS3における端末からの入力データの処理を説明するフローチャートを示している。ここでは、端末102,103(図1に示す)がホストコンピュータ装置101に接続しており、端末103からの入力データを受信した場合を例に説明する。
【0079】
端末103よりの入力データの受信があると、ホストコンピュータ装置101のハードウエア408で受信したネットワーク回線104を介して受信された信号409は、OS401により接続管理プログラム403に通知される。
【0080】
まず、接続管理プログラム403は、ステップS21で、端末からの入力データの有無を判断して、ネットワーク回線104を介して受信された信号409が、接続された端末からの入力データの受信であることを判断する。つまり、管理表リスト509の中で、送信元の端末103のインターネットアドレスが端末の識別情報501に一致する管理表があるかを判断する。
【0081】
そして、接続された端末からの入力データの受信の場合には、ステップS22に進み、端末に対応する子プログラムの識別情報503を取得する。つまり、送信元のインターネットアドレスが端末の識別情報501に一致した管理表、すなわち端末103に対応する管理表508から、子プログラムの識別情報503として保持されているタスクID番号を取得する。一方、ステップS21で端末からの入力データがないと判断すると、この処理を終了する。
【0082】
最後に、ステップS23で、タスクID番号を用いて、子プログラム405に対して、入力データを入力イベントとして通知して、この処理を終了する。つまり、上記タスクID番号の子プログラム405に、入力データを入力イベントの形式に変更して通知することでなされる。例えば、ポインタ装置の移動操作やボタンの操作,キー入力をそれに応じた入力イベントに変更して通知する。この通知により、子プログラムの図14のステップS42,S43で端末からの操作に対応した処理が行われることになる。
【0083】
(1−4) 端末への画像データの送信処理
図13は、図10のステップS4における端末への画像データの送信処理を説明するフローチャートを示している。ここでは、端末102,103がホストコンピュータ装置101に接続している場合を例として説明する。
【0084】
この第1実施形態では、端末への画像データの送信処理を効率化するために管理表の送信画像情報504に基づき、各端末に対応する仮想ディスプレイ空間に送信するべき画像データがあったときのみ、送信座標情報505に基づいて、送信するべき矩形記憶領域の画像データと、その矩形記憶領域の座標を端末に送信する構成としている。
【0085】
各仮想ディスプレイ空間に対する送信画像情報504と送信座標情報505は、各子プログラムの前述の図14に示すステップS41,S43,S45で画像データの出力を行うたびに更新される。
【0086】
先ず、接続管理プログラム403は、図13に示すステップS31で、接続された端末が存在するかどうか判断する。ここでは、管理表リスト509に管理表があるかどうかで判断する。
【0087】
そして、接続された端末が存在する場合、ステップS32に進み、接続された端末を順次選択して、ステップS33に進む。つまり、この第1実施形態では、管理表リスト509中の管理表507,508を順に選択することで行われる。一方、接続された端末が存在しない場合、この処理を終了する。
【0088】
次に、ステップS33で、選択した端末に対応する仮想ディスプレイ空間の送信するべき画像の有無を判断する。つまり、選択した管理表に保持されている送信画像情報504から送信するべき画像の有無を判断する。
【0089】
そして、仮想ディスプレイ空間に送信するべき画像がある場合は、ステップS34に進み、送信するべき矩形領域の画像データの記憶アドレス空間中でのアドレスを取得する。つまり、管理表から仮想ディスプレイ情報502と、送信座標情報505を取得し、送信する画像データの矩形領域の座標と、画素と記憶アドレスの対応関係から送信するべき画像データの記憶アドレス空間中でのアドレスを算出する。一方、仮想ディスプレイ空間に送信するべき画像がない場合は、ステップS34〜S37をスキップする。
【0090】
そして、ステップS35で端末の識別情報を取得する。つまり、管理表から、端末の識別情報501として保持されている端末のインターネットアドレスを取得する。
【0091】
そして、ステップS36に進み、端末へ画像データを送信する。ここでは、上記インターネットアドレスに、ステップS34で取得したアドレスのデータを送信することで、矩形記憶領域の画像データの送信を行い、また、矩形記憶領域の座標も共に送信する。
【0092】
そして、ステップS37に進み、管理表に保持されている送信画像情報を更新する。つまり、送信が完了すれば、送信するべき画像がない旨の情報を送信画像情報504に保持する。
【0093】
そして、ステップS38で全端末の処理が終了か否かを判断して、全端末の処理が終了していないと判断すると、ステップS32に戻り、全ての端末の処理が終わるまでステップS32〜S37を繰り返す。つまり、管理表リストの全ての管理表507,508の処理が終わるまで繰り返す。
【0094】
(2) 端末の処理
次に、端末の処理を説明する。ここで、各端末102,103は、図10のステップS1によってホストコンピュータ装置101に接続され、図13のステップS36によって送信されるデータの中から、自身のインターネットアドレス宛ての画像データと矩形記憶領域の座標データを受信し、各ディスプレイ装置113,114の対応する矩形記憶領域の座標に画像データを表示する。
【0095】
そして、各端末102,103は、キーボード入力データ、および、ポインティング入力データを、ネットワーク回線104を介してホストコンピュータ装置101に送信するように構成している。
【0096】
例えば、端末103であれば、ステップS36で送信されてくる画像データをディスプレイ装置114に表示し、それをもとに、入力装置116,118を操作する。それによって、入力データがホストコンピュータ装置101に送信され、図14のステップS43で入力イベントとして処理され、処理のなかで仮想ディスプレイ空間304の記憶領域213に画像データが出力される。出力された画像データはステップS36によって送信され、ディスプレイ装置114に反映される。以上を繰り返して、端末103のディスプレイ装置114の画像を見ながら、端末103からホストコンピュータ装置101での作業を進めることができる。
【0097】
また、処理の終了を指示する操作を行った場合は、図14のステップS44,S45,S46で、端末103に対応する仮想ディスプレイ空間304の画像データを保持する記憶領域213を解放して終了することができる。
【0098】
つまり、上記ステップS13,S14,S17によって、複数の端末からの接続要求により、上記記憶アドレス空間を分割し、上記複数の端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を、他の記憶領域に重ならないように、端末毎に設定する記憶領域設定手段が構成される。
【0099】
また、図13のステップS32,S34,S35,S36,S38によって、上記複数の端末に対応する仮想ディスプレイ空間の画像データを、端末毎に送信する画像データ送信手段が構成される。
【0100】
また、図14のステップS41,S43,S45で、図11のステップS17で保持した端末に対応する仮想ディスプレイ空間の記憶領域に画像データを出力することによって、上記複数の端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を出力インターフェースとした、プログラムの実行を端末毎に行うプログラム実行手段が構成される。
【0101】
また、図14のステップS46によって、上記複数の端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を端末毎に解放する記憶領域解放手段が構成される。
【0102】
この第1実施形態では、画像データの送信量を低減するために、特に、図13のステップS33,S34において、送信するべき画像があった場合、送信するべき矩形領域領域の画像データのみを端末に送信する構成としたが、当然、常に全ての画面を送信するようにすることも可能である。また、書き換えの有無に関わらず全画像データを送信するように構成することも可能である。
【0103】
または、図13のステップS34では、送信する矩形領域領域が大きな場合などは、複数回に分けて送信するように、矩形領域領域を分割して、書き換えられた矩形領域領域の一部を送信範囲とすることもできる。その場合、ステップS37の送信画像情報504は、送信するべき矩形領域領域のすべてが送信されるまで、送信するべき画像がある旨の情報を保持し、未送信の画像データを含む矩形領域領域を送信座標情報505に保持するようにすればよい。
【0104】
また、端末で画像データを受信できたかどうかの情報、またはは、画像データのうち、端末で受信できたデータの範囲の情報を返信するようにし、その情報に基づいて、ステップS37の送信画像情報504,送信座標情報505の更新を変更するようにすることがより好ましい。つまり、端末が何らかの都合で通信が途絶え、画像データの全てが受信できなかった場合、ステップS37で、端末が返信してきた受信できた記憶領域の座標に基づいて、受信できなかった部分を含む矩形記憶領域を送信座標情報に保持し、送信画像情報は送信すべき画像がある旨の情報を保持する。それによって、受信できなかった残りの部分を次回送信することができる。これによって、例えば、端末103をネットワーク回線104の接続端子108から切り離して、別の場所のネットワーク回線104の接続端子109に移動して元の作業を続けることも簡単に可能となる。また、ネットワーク回線104が無線通信回線によるものである場合や、ネットワーク回線104の一部に無線通信回線によるものを含む場合でも、一時的に通信回線が途絶えた場合に画像データを次回の送信タイミングで送信することが可能となる。
【0105】
また、画像データは圧縮や暗号化して送信することも可能である。
【0106】
また、この第1実施形態では、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を上位アドレスから詰めて、端末のディスプレイ装置の縦横の画素数,色調の解像度に合わせた仮想ディスプレイ空間を保持できるだけの記憶領域を、記憶アドレス空間211中に設定するよう構成している。しかし、記憶領域の設定の方法はこれに限られるものではなく、その他の方法を用いることも可能であり、できるだけ効率的に記憶アドレス空間211を利用できる方法が好ましい。
【0107】
また、図11のステップS16で子プログラムを起動する場合、OS上の主記憶装置202に新規な子プログラムを実行する記憶領域が足りない場合や、OSの実行プログラム数の限界に達している場合など、子プログラムの起動がOS401より拒否される場合もある。その場合は、図11のステップS18に進み、端末からの接続要求に対して拒否の応答を返す処理を行う必要がある場合もある。
【0108】
〔第2実施形態〕
次に、この発明の第2実施形態のデータ処理装置の一例としてのホストコンピュータ装置を備えたコンピュータシステムについて説明する。この第2実施形態のコンピュータシステムは、第1実施形態の構成に加え、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を移動させる記憶領域移動手段によって、画像記憶回路208の記憶アドレス空間211に、連続したより大きな未使用の記憶領域を作成するものである。
【0109】
以下、連続したより大きな未使用の記憶領域を作成する処理を図15のフローチャートを用いて説明する。ここでは、端末102,103が接続された状態から、端末102に対応する子プログラム404が作業を終了し、図2の記憶領域212が開放された場合を例として説明する。
【0110】
上記記憶領域212が解放されると、図6に示すように、画像記憶回路208の記憶アドレス空間211の中央に、端末103に対応する仮想ディスプレイ空間304を保持する記憶領域213が位置しているため、次に接続する端末が未使用の記憶領域601,602に仮想ディスプレイ空間として使用する記憶領域を確保することになる。
【0111】
そのため、次に接続要求する端末が、対応する仮想ディスプレイ空間の画像データを保持するために、記憶領域601,602より大きな記憶領域を必要とする場合は、仮想ディスプレイ空間211中に連続した領域として記憶領域を設定することができない。
【0112】
この第2実施形態では、子プログラム404は、図14のステップS46で記憶領域212の解放を行った後、つまり、管理表507を削除した後、次の図15に示す処理を行う。
【0113】
先ず、図15のステップS51で、接続している端末があるか否かを判断する。ここでは、管理表リスト509に、管理表があるか判断することで行われる。
【0114】
そして、接続している端末がある場合、ステップS52に進み、接続している端末を順次選択する。つまり、この第2実施形態では、図5の管理表リスト509の管理表を順に選択する。ここでは、端末103の管理表508が選択される。一方、接続している端末がない場合は、この処理を終了する。
【0115】
そして、ステップS53で、選択した端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を移動させて、未使用の連続した記憶領域を拡大させることが可能か判断する。ここでは、未使用の連続した記憶領域を拡大させる方法としては、記憶領域213を上位アドレスに移動させても、下位アドレスに移動させても可能であるが、この第2実施形態では、仮想ディスプレイ空間の画像データを保持する記憶領域は、上位アドレスに詰めて記憶領域を設定するように移動するものとし、移動が可能かを判断する。つまり、記憶領域213は上位アドレスの未使用の記憶領域601方向に移動することで、未使用の記憶領域602を拡大することができる。
【0116】
そして、未使用の連続した記憶領域を拡大させることが可能な場合、ステップS54で仮想ディスプレイ空間の記憶領域の画像データを移動する。つまり、図6の記憶領域213の画像データを図7に示す記憶領域701に移動させる。
【0117】
そして、ステップS55で、移動した記憶領域の記憶アドレス空間211中での占有アドレスの情報の更新する。つまり、管理表508の仮想ディスプレイ情報502を記憶領域701を指し示すように更新する。
【0118】
そして、ステップS56で、接続している端末を最初に戻って選択し、ステップS53に戻る。つまり、複数の端末が接続されている場合、ある端末の記憶領域の移動によって、既に処理した端末の記憶領域の移動が再び可能となる場合があるので、最初から各端末が仮想ディスプレイ空間として使用している記憶領域を移動するべきか判断するためである。
【0119】
一方、ステップS53で未使用の連続した記憶領域を拡大させることが可能でない場合、ステップS57に進む。
【0120】
そして、ステップS57で全端末の処理が終了したか否かを判断して、全端末の処理が終了していないと判断すると、ステップS52に戻り、全ての端末について処理が終了するまでステップS52〜S56を繰り返す。つまり、接続している端末を順次選択し、仮想ディスプレイ空間の画像データを保持する記憶領域の移動が全ての端末において必要なくなるまで繰り返す。
【0121】
つまり、ステップS54、S55によって、画像記憶回路208の記憶アドレス空間211内で、上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を移動させる記憶領域移動手段が構成される。
【0122】
以上の構成により、図7に示すように、画像記憶回路208の記憶アドレス空間211の未使用の記憶領域として702が作成される。
【0123】
以上の結果、連続した記憶領域として、図6の記憶領域601,602より大きな容量の記憶領域702が作成される。
【0124】
また、この第2実施形態の構成では、画像データを記憶アドレス空間211内で移動させるため、図2に示すグラフィック処理回路209を有する構成により、画像データの移動の処理を第2のグラフィックモジュール207内で行い、ホストコンピュータ装置のCPU201やシステムバス206の負荷を増大させない構成とすることがより好ましい。
【0125】
また、上記第1実施形態で示した画面の解像度の異なる複数の端末を使用する場合、つまり保持する記憶領域の記憶容量の異なる複数の端末を使用する場合では、接続と切断を繰り返すことで、各端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域の隙間に利用できない小さな未使用の記憶領域が、特に多数発生してしまう場合がある。しかし、この第2実施形態の構成により、画像記憶回路208の記憶アドレス空間211を有効に利用して、より多くの端末の接続ができる利点を有するデータ処理装置を提供することが可能となる。
【0126】
あるいはまた、上記第1実施形態のステップS14では、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を記憶アドレス空間211の上位アドレスから詰めて設定するようにしたが、記憶領域を上位アドレスからと、下位アドレスからとの両方から割り当てるようにし、記憶アドレス空間211の中央に未使用の記憶領域が来るように割り当てることもできる。
【0127】
つまり、図8(a)に示すように、記憶アドレス空間211の上位アドレスからと、下位アドレスからとの両方から詰めて、複数の端末が仮想ディスプレイ空間の画像データを保持する記憶領域を領域801から領域808へと設定していくこともできる。
【0128】
例えば、図8(b)に示すように、記憶アドレス空間211の一方から詰めて、順次、複数の端末が仮想ディスプレイ空間として利用する記憶領域を領域801から領域808へと設定していった場合と比べてみる。
【0129】
先ず、図8(a)では、未使用の記憶領域809に隣り合う仮想ディスプレイ空間の画像データを保持する記憶領域が領域807,808の2つであり、図8(b)では、領域808の1つであり、図8(a)の方が、端末が記憶領域を解放した場合に特に移動をしなくても良い確率が2倍になる。
【0130】
また、仮に、記憶領域802を解放した場合に移動しなければならない記憶領域は、図8(b)では、領域803,804,805,806,807,808であるが、図8(a)では、領域804,806,808と半分で済む。この場合、下位アドレスから詰めて設定した記憶領域804,806,808は、下位アドレス(図の下方向)に詰めて移動させるものとする。
【0131】
そのため、連続した未使用のより大きな記憶領域を作成する場合に特に本構成とすることにより処理が少なくて済むという利点がある。
【0132】
また、記憶アドレス空間の上位アドレスからと、下位アドレスからとの両方から詰めて端末が仮想ディスプレイ空間として利用する記憶領域を設定する方法は、図8(a),(b)に示したように、端末が接続されるごとに、上位アドレスからと、下位アドレスからと交互に行う方法に限られるものではなく、他の方法であってもよい。例えば、上位アドレスに詰めて設定された記憶領域の合計容量と同じく下位アドレスに詰めて設定された記憶領域の合計容量の少ない方に新しい記憶領域を設定するように構成することもできる。この場合、端末が記憶領域を解放した場合に、連続した未使用のより大きな記憶領域を作成するための平均的なデータの移動量をより少なくすることができる。あるいは、新しい記憶領域を、上位アドレスに詰めて設定した場合と、下位アドレスに詰めて設定した場合とで、ある端末が仮に記憶領域を解放した場合の必要なデータの移動量を、全ての端末について計算した合計量が少ない方に新しい記憶領域を設定することによって、より確実に処理量を低減させることができる。
【0133】
また、この第2実施形態で示した記憶領域を移動させて未使用の記憶領域を増加させる手段は、図14のステップS46で記憶領域212の解放を行った後に限られるものではない。例えば、図11のステップS14の新規に端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を設定するときに、行っても構わないし、あるいは、ステップS15で新規な記憶領域を設定できなかったときに行って、その後もう一度新規な記憶領域の設定を試みるようにしても構わない(フローチャートには示さず)。
【0134】
〔第3実施形態〕
次に、この発明の第3実施形態のデータ処理装置の一例としてのホストコンピュータ装置を備えたコンピュータシステムについて説明する。この第3実施形態のコンピュータシステムは、上記第1,第2実施形態に示すコンピュータシステムにおいて、必要に応じて仮想ディスプレイ空間の画像データを保持する記憶領域を待避させ、一時的に記憶アドレス空間211の未使用の記憶領域を増加させ、その後、必要に応じて待避させた仮想ディスプレイ空間の画像データを保持する記憶領域を復元する構成である。
【0135】
図16は、図11のステップS16で起動される子プログラムの処理を説明するフローチャートを示している。この図16のフローチャートは、ステップS47,S48を除いて図14のフローチャートと同じ内容であり、以下、図14と異なるところのみを説明する。
【0136】
この第3実施形態では、図16で示した子プログラムの処理のフローチャートにおいて、ステップS47において、一定時間、入力イベントや画面の更新がなかった場合、仮想ディスプレイ空間の画像データを保持する記憶領域を待避させる処理を行うように構成し、入力イベントが発生した場合、ステップS48で仮想ディスプレイ空間の画像データを保持する記憶領域を復元する。
【0137】
また、図5に示すように、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域が待避されている情報(以降、記憶領域の待避情報と呼ぶ)506を管理表に保持する。
【0138】
そして、図11のステップS13で画像記憶回路208の記憶アドレス空間211中に未使用の記憶領域を取得する場合、記憶領域の待避情報506(図5に示す)に待避されている旨の情報が保持されているときは、その端末はその記憶領域を使用していないものとして未使用の記憶領域を算出する。
【0139】
また、図13のステップS33でも記憶領域の待避情報506に待避されている旨の情報が保持されている場合は、ステップS38に進む。
【0140】
以下、図16のステップS47の仮想ディスプレイ空間の画像データを保持する記憶領域を待避させる処理を図17のフローチャートを用いて説明する。ここでは、端末102,103(図1に示す)がホストコンピュータ装置101に接続しており、端末102が一時的に記憶領域212の解放を行う例として説明する。
【0141】
まず、子プログラム404は、ステップS61で記憶領域の待避を判断する。つまり、一定時間、入力イベントや画面の更新がなかった場合、記憶領域212の待避を行うものとした。
【0142】
そして、記憶領域212の待避を行う場合、ステップS62に進み、記憶アドレス空間211中の、仮想ディスプレイ空間の画像データを保持している記憶領域の占有アドレスを取得する。つまり、管理表507の仮想ディスプレイ情報502の中の、仮想ディスプレイ空間の画像データを保持している記憶領域212の開始アドレスと終了アドレスを取得する。
【0143】
そして、ステップS63で、副記憶装置に仮想ディスプレイ空間に保持される画像データを複写する。この第3実施形態では、記憶領域212内の画像データをそのまま複写するように構成した。これにより仮想ディスプレイ空間の画像データを待避できる。この場合、副記憶装置は、画像記憶回路208に対する副次的な記憶装置であるため、ハードディスク装置などのほか、主記憶装置202である場合もありうる。
【0144】
そして、ステップS64で、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域212を解放して、この処理を終了する。つまり、管理表507の記憶領域の待避情報506に待避されている旨の情報を保持する。これによって記憶領域212は未使用の領域となり、記憶領域212から、端末102に画像データが送信されることがなくなる。
【0145】
一方、ステップS61で、記憶領域の待避を行わない場合、この処理を終了する。
【0146】
以下、図16のステップS48における仮想ディスプレイ空間の画像データを保持する記憶領域を復元させる処理を図18のフローチャートを用いて説明する。ここでは、上記端末102が仮想ディスプレイ空間の画像データを保持する記憶領域212を待避した後、端末102が入力データを送信し、図12のステップS23によって入力イベントとして子プログラム404に通知されたものとする。
【0147】
記憶アドレス空間211は、記憶領域212が待避されて、図6に示すように、端末103の仮想ディスプレイ空間304の画像データを保持する記憶領域213が存在する状態となっている。
【0148】
子プログラム404は、図16のステップS42で入力イベントがあることを判断し、ステップS48に進む。
【0149】
そして、図18のステップS71で記憶領域が待避されているか否かを判断する。ここでは、管理表507の記憶領域の待避情報506に記憶領域が待避されている旨の情報を保持していることで待避されていると判断される。
【0150】
そして、記憶領域が待避されている場合、ステップS72で仮想ディスプレイ空間の画像データを保持するために必要な記憶容量を取得する。つまり、管理表507の仮想ディスプレイ情報502として保持されている記憶領域の開始アドレスと終了アドレスを取得することで元の記憶領域212の記憶容量を得ることができる。
【0151】
そして、ステップS73で記憶アドレス空間211中の未使用の記憶領域を取得する。これは、図11のステップS13と同じ処理である。ここでは、図6の未使用の記憶領域601,602が算出される。
【0152】
そして、ステップS74に進み、上記未使用の記憶領域に端末102に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を設定する。これは、図11のステップS14と同じ処理である。ここでは、未使用の記憶領域601に設定される。
【0153】
もし、端末102が記憶領域212を待避している間に別の端末が接続し、未使用の記憶領域601を使用した場合は、ここで、未使用の記憶領域602の中に端末102が仮想ディスプレイ空間の画像データを保持する記憶領域を設定することになる。
【0154】
そして、ステップS75に進み、記憶領域が設定できたか否かを判断する。
【0155】
設定ができた場合には、ステップS76で副記憶装置に複写した画像データを上記記憶領域に読み込む。ここでは、待避させた記憶領域の情報をそのまま新しい記憶領域601に読み込むように設定している。
【0156】
最後に、ステップS77で、復元した記憶領域の記憶アドレス空間211中での占有アドレスの情報の更新して、この処理を終了する。つまり、仮想ディスプレイ空間の画像データを保持する記憶領域は、元の記憶領域と異なる記憶アドレスに復元される場合もあるので、ステップS74で新しく設定された記憶領域の記憶アドレスの開始アドレスと終了アドレスを仮想ディスプレイ情報502に保持する。
【0157】
一方、ステップS75で記憶領域が確保できなかった場合は、ステップS73に戻り、未使用の記憶領域が増加して記憶領域が確保されるまでステップS73,S74,S75を繰り返す。
【0158】
つまり、図17のステップS62,S63,S64によって、画像記憶回路208の記憶アドレス空間211から、上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を待避させる記憶領域待避手段が構成される。
【0159】
また、図18のステップS72,S73,S74,S76,S77によって、画像記憶回路208の記憶アドレス空間211に、待避させた上記記憶領域を復元する記憶領域復元手段が構成される。
【0160】
コンピュータ装置の作業には、画面を見ながら順次入力を行うような作業以外に、一定の画像を表示して閲覧する場合もある。または、前述のようにネットワーク回線の通信回線が意図的に、あるいは非意図的に長く切断され、入力イベントの処理が終わり、一定の画像を表示して、入力待ちの状態になる場合がある。
【0161】
例えば、図3において、仮想ディスプレイ空間304,305が長時間にわたって一定の画像となった場合、各記憶領域212,213からは画像データが読み出されることがないが、記憶アドレス空間211中に、各領域212,213を占有し続けることになる。
【0162】
この第3実施形態の構成では、上記のように、端末に入力イベントや、仮想ディスプレイ空間への描画に一定の処理が一定時間なかった場合、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を待避させ、一時的に記憶アドレス空間211の未使用の記憶領域を増加させることができる利点を有するデータ処理装置を提供することが可能となる。
【0163】
さらに、図17のステップS64で記憶領域を解放させた後、図15のステップS51〜S57で説明した、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を移動させる記憶領域移動手段によって、記憶アドレス空間211に、未使用の連続したより大きな記憶領域を作成するように構成してもよい。その場合、より効率的に画像記憶回路208の記憶アドレス空間211を利用することができるデータ処理装置を提供することが可能となる。
【0164】
〔第4実施形態〕
次に、この発明の第4実施形態のデータ処理装置の一例としてのホストコンピュータ装置を備えたコンピュータシステムについて説明する。この第4実施形態のコンピュータシステムは、第1〜第3実施形態のいずれかのコンピュータシステムにおいて、画像記憶手段である画像記憶回路208の記憶アドレス空間211の画像データを、コンピュータ装置のシステムバスを介さずに、ネットワークモジュールに転送する経路を有する構成としたものである。
【0165】
この第4実施形態のコンピュータシステムでは、図2に示すように、第2のグラフィックモジュール207に、グラフィック処理回路209を有する構成としている。これは描画におけるCPUの負荷を低減させる利点を有している。特に、第2実施形態において端末が仮想ディスプレイとして使用する記憶領域を移動するときに第2のグラフィックモジュール207内で処理が可能となり、ホストコンピュータ装置のCPUの負荷を低減することができる。
【0166】
また、より好ましくは、CPU201の負荷を減少させるために、第2のグラフィックモジュール207とネットワークモジュール203が、CPU201を介さず、システムバス206を介して、データを直接転送する構成とするとよい。
【0167】
しかし、複数の作業者が複数の端末からホストコンピュータ装置101に接続を行った場合、端末が仮想ディスプレイとして使用する記憶領域の画像データを端末に送信する処理の負荷が大きくなってホストコンピュータ装置101全体の処理が低下してしまう場合がある。
【0168】
この第4実施形態では、図9に示すように、第2のグラフィックモジュール901にネットワークモジュール902を付加し、システムバス206を介することなく、画像記憶回路208より画像データを読み出し、ネットワークモジュール902に転送する経路903を有するよう構成する。
【0169】
この第4実施形態の構成により、図13のステップS36の画像データを端末に送信する処理において、CPU201や、特に、システムバス206の負荷を増大させることがなくなり、ホストコンピュータ装置101全体の処理の低下を防止することができる。
【0170】
特に、画像記憶回路208として、データを入出力する端子と独立して読み出しを行うことのできる端子を有する記憶素子、いわゆるデュアルポートRAMを用いる構成とし、データを入出力する端子を経路904に接続し、独立して読み出しを行うことのできる端子を経路903に接続する構成としてもよい。その場合、画像の入出力経路904と独立して、画像を端末に送る作業、つまり、経路903を通してネットワークモジュール902より画像データを送信する作業を行うことができる。それによって、ホストコンピュータ装置101の処理の低下を特に防止することができる。
【0171】
端末からのホストコンピュータ装置101の操作を行うためには、この発明で示した構成以外に、主記憶装置202に仮想ディスプレイ空間の画像データを保持する方法も可能である。しかし、そのような構成では、比較的大きな記憶容量を必要とする仮想ディスプレイ空間の画像データを保持する記憶領域を、主記憶装置202に配置しなければならないことのほかに、仮想ディスプレイ空間への画像の入出力の処理や、端末へ画像データを送信する処理を全てCPU201が行うことになってしまい、特に複数の端末からの処理を行うデータ処理装置には適さない。
【0172】
それに対して、この発明の画像記憶手段である画像記憶回路208の記憶アドレス空間211を分割して端末毎に区別して使用する構成では、グラフィック処理回路209の使用等、画像データの入出力処理の高速化が可能である上、さらにこの第4実施形態の構成により、端末への画像データの送信においても、CPU201やシステムバス206の負荷を増大させることがなくなり、特に複数の端末から使用されるデータ処理装置に適したデータ処理装置を提供することが可能となる。
【0173】
また、上記第1〜第4実施形態では、図4に示すように、接続管理プログラム403と子プログラム404,405により、データ処理装置としての各処理を分担して行っているが、これらの処理の分担を行う方法は、ここで示した実施形態に限られるものではなく、各種の方法が考えられる。または、OS自身にこの発明のデータ処理方法を組み込むことも可能である。
【0174】
また、上記第1〜第4実施形態では、各子プログラムにより各端末の作業を行うように構成しているが、子プログラムが、OSのように一定のプラットホームを提供し、子プログラム上で孫プログラムを実行するようにすることも可能である。例えば、図4に示すように、子プログラム404,405がWindowsのエミュレータの機能を有するように構成する。そして、端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域をそれぞれデスクトップ空間として使用して、孫プログラム406,407を実行することで、端末からより自由な作業の実行を可能とすることができる。例えば、UNIX(登録商標)上では、Windowsのアプリケーションを実行するエミュレータプログラムは既知である。
【0175】
さらにまた、子プログラムを、コンピュータ装置のCPU、記憶装置や周辺装置をエミュレートするプログラム、いわゆる仮想コンピュータとした構成とすることも可能である。その場合、端末に対応する仮想ディスプレイ空間が、仮想コンピュータの仮想ディスプレイ装置となる。このような場合、各端末からの作業は、ホストコンピュータ装置上の仮想コンピュータでアプリケーションを実行する構成となるので、端末間がより独立した環境で作業を行うことができる利点を有するデータ処理装置を提供することができる。
【0176】
【発明の効果】
以上より明らかなように、この発明のデータ処理装置によれば、端末毎に決められた画像を記憶する手段を予め保持する必要がなく、ネットワーク回線で接続された離れた場所の端末の画面でコンピュータ装置の出力画像を見ながら入力装置を操作し、コンピュータ装置上でのプログラムの処理を進めることができるデータ処理装置を提供することができる。
【0177】
特に、上記画像記憶手段の記憶アドレス空間を分割して各端末毎に区別して使用するために、各端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域への画像データの入出力は、画像記憶手段の記憶アドレス空間全体への画像データの入出力として、共通のプログラムを使用することができる。これは、ホストコンピュータ装置の画像データの入出力の処理を単純化でき、複数の作業者が、複数の端末から接続してホストコンピュータ上で作業を行う場合、特に、主記憶装置の有効利用や処理速度の向上ができる利点を有する。
【図面の簡単な説明】
【図1】図1はこの発明の第1実施形態のデータ処理装置の一例としてのホストコンピュータ装置を備えたコンピュータシステムの概略構成図である。
【図2】図2は上記ホストコンピュータ装置のブロック図である。
【図3】図3は仮想ディスプレイ空間を説明するための図である。
【図4】図4は上記コンピュータ装置のタスク構成を説明するための図である。
【図5】図5は管理表リストを説明するための図である。
【図6】図6は記憶領域の解放を説明するための図である。
【図7】図7は記憶領域の移動を説明するための図である。
【図8】図8は記憶領域の復元を説明するための図である。
【図9】図9はこの発明の第4実施形態のデータ処理装置の一例としてのホストコンピュータ装置のブロック図である。
【図10】図10は接続管理プログラムの動作を説明するためのフローチャートである。
【図11】図11は端末からの接続要求の処理を説明するためのフローチャートである。
【図12】図12は端末からの入力データの処理を説明するためのフローチャートである。
【図13】図13は端末への画像データの送信処理を説明するためのフローチャートである。
【図14】図14は子プログラムの処理を説明するためのフローチャートである。
【図15】図15はこの発明の第2実施形態のデータ処理装置の一例としてのホストコンピュータ装置を備えたコンピュータシステムにおける記憶領域の移動を説明するためのフローチャートである。
【図16】図16はこの発明の第3実施形態のデータ処理装置の一例としてのホストコンピュータ装置を備えたコンピュータシステムにおける子プログラムの処理を説明するためのフローチャートである。
【図17】図17は記憶領域の待避を説明するためのフローチャートである。
【図18】図18は記憶領域の復元を説明するためのフローチャートである。
【図19】図19は従来のデータ処理装置の概略構成を示すブロック図である。
【符号の説明】
101…ホストコンピュータ装置、
102,103…端末、
104…ネットワーク回線、
105…HUB、
106,107,108,109,905…接続端子、
110…ディスプレイ装置、
115,116…キーボード入力装置、
117,118…ポインタ入力装置、
201…CPU、
202…主記憶装置、
203…ネットワークモジュール、
204…第1のグラフィックモジュール、
206…システムバス、
207…第2のグラフィックモジュール、
208…画像記憶回路、
209…グラフィック処理回路、
210…入出力、
211…記憶アドレス空間、
212,213…記憶領域、
214…未使用の記憶領域、
301…仮想デスクトップ空間、
302…領域、
303,304…仮想ディスプレイ空間、
401…OS(オペレーションシステム)、
403…接続管理プログラム、
404,405…子プログラム、
409…信号、
410…信号、
501…端末の識別情報、
502…仮想ディスプレイ情報、
503…子プログラムの識別情報、
506…記憶領域の待避情報、
507,508…管理表、
509…管理表リスト、
601,602,702…未使用の領域、
701…記憶領域、
801〜808…領域、
809…未使用の記憶領域、
901…第2のグラフィックモジュール、
902…ネットワークモジュール、
903…経路、
904…経路、
1001…コンピュータ装置、
1002,1003,1004,1005…ディスプレイ装置、
1006,1007,1008,1009…ポインタ入力装置。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data processing device, and more particularly to a data processing device suitable for operating a host computer device from a plurality of terminals via a network line.
[0002]
[Prior art]
Conventionally, as a data processing device, as shown in FIG. 19, there is a computer device 1001 that processes a plurality of user inputs without interference (Japanese Unexamined Patent Publication No. 11-503849). The computer 1001 uses Microsoft Windows as a single-user OS (operation system). Each of the display devices 1002, 1003, 1004 and 1005 connected to the computer device 1001 is connected to a graphic board (not shown) inside the computer as image storage means, and provides a display space. ing. The display devices 1002 to 1005 are set to display different areas in the virtual desktop space by the multi-display function of the OS. In the computer device 1001, event-driven software is operating, and a plurality of mice 1006, 1007, 1008, and 1009 are associated with each display device 1002 to 1005, and the input of each mouse 1006 to 1009 is performed. The operation is transmitted to the software corresponding to the object displayed on the corresponding display device 1002 to 1005 as a mouse input event. With this configuration, it is possible for a plurality of workers to use a plurality of software on a single computer apparatus 1001 with no apparent interference, despite being a single-user OS.
[0003]
[Problems to be solved by the invention]
By the way, the data processing apparatus has a problem that the efficiency is low because it is necessary to provide a graphic module as an image storage unit corresponding to the display apparatuses 1002 to 1005 regardless of whether each terminal is used.
[0004]
It is suitable for a case where a plurality of workers work together in the same place, but the usable spatial arrangement of each terminal is limited by the cable length of an input / output device such as a display and a mouse. In particular, when a plurality of workers use a computer device independently at different places in a house, it is necessary to extend the display cable and the mouse cable to each place. Therefore, there is a problem that it cannot be practically used in a free place.
[0005]
Therefore, an object of the present invention is to eliminate the need to previously hold a storage area for image data for each terminal, to use a large number of terminals efficiently with a small storage capacity, and to enable a terminal at a distant location via a network line. An object of the present invention is to provide a data processing device capable of processing a program.
[0006]
[Means for Solving the Problems]
In order to achieve the above object, the data processing apparatus of the present invention, when a connection request is made from at least one terminal via a network line, stores the connection in the storage address space of the image storage means in response to the connection request. A storage area for holding the image data of the corresponding virtual display space is set by the storage area setting means. The data processing device transmits image data of a storage area for holding image data of a virtual display space corresponding to the terminal set in a storage address space of the image storage means to the terminal via a network line by image data transmission means. Send to Then, the terminal receives the image data and displays it on the display device of the terminal. When input data input from an input device (for example, a keyboard input device or a pointing input device) connected to the terminal is transmitted to the data processing device via a network line, the input data from the terminal is processed, and A program corresponding to the terminal is set in a storage address space of the image storage means by executing a program using a storage area for holding image data in a virtual display space corresponding to the terminal as an output interface by the program execution means. Output image data to the area. Thus, the operation of the data processing device to which at least one terminal is connected by the network line can be performed from the terminal while watching the display device of the terminal. When the work from the terminal is completed, the storage area for holding the image data of the virtual display space corresponding to the terminal on the storage address space of the image storage means is released by the storage area release means, and the next terminal Wait for a connection request.
[0007]
Therefore, according to the data processing device having the above configuration, it is not necessary to previously hold the storage area of the image data for each terminal, and many terminals can be efficiently used with a small storage capacity, and even from a terminal at a remote place. Program processing can be performed via a network line.
[0008]
Further, in the data processing device of the present invention, when connection requests are separately made from a plurality of terminals to a computer device constituting the data processing device via a network line, connection requests from each terminal are sequentially received, and The storage area holding the image data of the virtual display space corresponding to each terminal is set in the storage address space of the image storage means by the storage area setting means so that the plurality of storage areas corresponding to the terminals do not overlap each other. I do. Then, the image data of the storage area set in the storage address space of the image storage unit is sequentially transmitted to the corresponding terminal via the network line by the image data transmission unit. Each terminal receives the image data and displays it on the display device of the terminal. Further, when input data input from an input device (for example, a keyboard input device or a pointing input device) connected to the terminal is sequentially transmitted to this data processing device via a network line, the program execution means executes the data. The program separately processes input data from each terminal, and outputs image data corresponding to a storage area used by each terminal created by dividing a storage address space.
[0009]
When processing is performed from a plurality of terminals, it is a major problem to prevent a reduction in processing speed. However, a configuration in which the storage address space of the image storage unit of the present invention is divided and used for each terminal separately In the data processing device, the input / output of image data to / from the storage area of the virtual display space corresponding to each terminal uses a common program for inputting / outputting image data to / from the entire storage address space of the image storage means. Can be. Therefore, it is also possible to commonly use a graphic processing circuit for speeding up image drawing, and there is an advantage that the processing speed can be improved.
[0010]
In one embodiment, a storage area for holding image data in a virtual display space corresponding to the terminal set in the storage address space of the image storage means is located on a storage address space of the image storage means. To be a continuous area.
[0011]
By doing so, the processing amount of address calculation when inputting / outputting image data is reduced, and the processing speed as an output interface is improved. Further, the processing speed when transmitting the image data in the storage area to the terminal is improved. In particular, in order to commonly use a program for inputting and outputting image data to and from the entire storage address space of the image storage means for inputting and outputting image data, a storage device for storing image data in a virtual display space corresponding to a terminal. More preferably, the region is a continuous region.
[0012]
Further, in the data processing device of one embodiment, when a connection request is made by a terminal via a network line, the resolution of the display screen of the terminal is obtained by acquiring the resolution as information of the display device of the terminal. In addition, the resolution of the virtual display space used by the terminal is set by the resolution setting means, and a storage area having a capacity capable of holding image data of the virtual display space corresponding to the terminal is set in the storage address space of the image storage means. . Here, the resolution is the resolution of the vertical and horizontal pixels of the display screen and the resolution of the color tone, and may be only the number of vertical and horizontal pixels.
[0013]
Therefore, the resolution of the display screen of the display device is not limited to a terminal whose designation has been specified in advance. For example, various types of mobile terminals, a mobile phone having a display device, or the like are connected as needed as terminals, and the program is executed to perform processing. be able to. In particular, when a plurality of terminals are connected simultaneously, more terminals can be connected because the storage area occupying the storage address space of the image storage means is minimized.
[0014]
In one embodiment of the present invention, in the data processing device, the storage area for holding the image data of the virtual display space corresponding to the terminal set in the storage address space of the image storage means is moved in the storage address space. It has an area moving means.
[0015]
That is, when it becomes unnecessary (or unnecessary for a certain period) to transmit image data to a certain terminal, a storage area for holding image data in a display space corresponding to the terminal may be released. Can be used to connect a new terminal. At this time, the other storage area is moved together with the image data in the storage address space of the image storage means by the storage area moving means, and an unused area between the storage areas of the storage address space of the image storage means is reduced. Thus, it is possible to create a continuous unused area as large as possible.
[0016]
Note that the storage area for holding the image data in the virtual display space corresponding to each terminal that has been moved changes its position in the storage address space of the image storage means. The image data of the virtual display space held in the storage area of the destination is transmitted. Further, in the processing corresponding to the input from the terminal, the image data is output to the storage area to which the image is moved.
[0017]
When a plurality of terminals repeatedly connect and disconnect, unused storage areas are scattered between storage areas holding image data in the virtual display space in the storage address space of the image storage means, and new terminals are connected. In some cases, a continuous storage area to be used cannot be secured. In addition, according to display devices of various resolutions, storage areas for storing image data of virtual display spaces of different resolutions, that is, when storage areas of different capacities are mixed, by repeatedly connecting and disconnecting, Unused storage areas may be scattered. However, according to the configuration of the storage area moving means of the above embodiment, a continuous unused area as large as possible can be created, more terminals can be connected, and a plurality of operations can be performed simultaneously.
[0018]
In one embodiment of the data processing device, the storage area setting means stores a storage area for holding image data of a virtual display space corresponding to the terminal set in a storage address space of the image storage means. It is allocated from the upper address in the address space and also from the lower address.
[0019]
That is, the storage area setting means divides the storage address space of the image storage means in accordance with the connection request sequentially performed, and sets a storage area for holding image data of a virtual display space corresponding to the terminal. At this time, a storage area is allocated to both the upper address and the lower address in the storage address space, for example, for each terminal.
[0020]
By doing so, as a result, a main unused storage area is located at the center of the storage address space of the image storage means. Therefore, the number of storage areas for holding image data in the virtual display space adjacent to the main unused storage area at the center is two. When setting a storage area for holding image data in the virtual display space from one of the upper address and the lower address of the storage address space, the main unused storage area exists on the opposite side of the storage address space, and There is only one storage area for holding image data in the virtual display space adjacent to the unused storage area. When the work of the terminal is completed and the storage area is released, the released storage area may be isolated from the above-mentioned main unused storage area, but in the case of this configuration, the released storage area is more isolated. The probability of being concatenated with the main unused storage area to become a larger unused storage area is twice as high.
[0021]
In particular, when a storage area for holding image data in the virtual display space is moved in the storage address space of the image storage means to create an unused storage area having a larger capacity, the storage area according to this configuration is used. The storage area to be moved can be reduced by setting, and the processing amount can be reduced.
[0022]
In one embodiment of the present invention, the storage area for holding the image data of the virtual display space corresponding to the terminal set in the storage address space of the image storage means is saved by the storage area saving means. Then, the storage area storing the image data of the virtual display space corresponding to the terminal saved by the storage area saving means is restored to the storage address space of the image storage means by the storage area restoring means.
[0023]
In other words, when the transmission of image data to the terminal becomes unnecessary for a certain period, the storage area saving means stores the storage area for storing the image data of the virtual display space corresponding to the terminal in another storage means. Then, by releasing the storage area occupied by the storage address space of the image storage means, the storage area holding the image data in the virtual display space corresponding to the terminal is evacuated. This makes it possible to secure an unused area in the storage address space of the image storage means in preparation for a connection request from a new terminal.
[0024]
When it becomes necessary to transmit the image data of the evacuated storage area, a new storage area is set in the storage address space of the image storage means by the storage area restoring means, and the new storage area is set. Then, the storage area saved by the storage area saving means is restored.
[0025]
Note that the storage area for holding the restored image data in the virtual display space may change its position in the storage address space of the image storage means as compared with the previous storage area. The image data in the virtual display space stored in the terminal is transmitted to the terminal. Also, in the processing corresponding to the input from the terminal, the image data of the virtual display space is output to the storage area of the destination.
[0026]
Even if the work on the terminal is interrupted or the purpose is to display the image for a certain period of time, even if it becomes unnecessary to receive the image data from the data processing device, the image in the virtual display space corresponding to the terminal can be obtained. The storage area for holding data continues to occupy the storage address space of the image storage means. As a result, an unused storage area for holding image data in the virtual display space of the new terminal may not be able to be secured. However, with the configuration of the storage area saving means and the storage area restoring means of the above embodiment, an unused storage area can be temporarily created in the storage address space, many terminals can be connected, and work can be performed simultaneously. This enables a data processing device capable of performing the above operations.
[0027]
In particular, after evacuating the storage area holding the image data of the virtual display space corresponding to the terminal, the storage area holding the image data of the other virtual display space is moved together with the image data in the storage address space of the image storage means. By reducing the unused area existing between each storage area in the storage address space of the image storage means and creating a continuous unused area as large as possible, the storage address space of the image storage means is reduced. The whole can be used more efficiently.
Here, the saving of the virtual display space is performed in the data processing device, but the determination of the saving requires the image held in the virtual display space in displaying and updating the image on the screen of the terminal. It is done based on whether or not. This has a different problem and configuration from the conventional configuration in which the execution program and data in the main storage device are saved (swapped) on the hard disk depending on whether or not the data is used by the computer device itself. Therefore, this configuration has an advantage that the unused storage area of the image storage unit can be temporarily increased without impairing the workability on the terminal side.
[0028]
In one embodiment, in the data processing device, the image data held in the storage area of the storage address space of the image storage unit is not connected to a system bus of a computer device, and is connected to the network module for connection to the network line. With a path that is forwarded to That is, the image data in the virtual display space is transferred from the storage address space of the image storage unit to the network module via a path other than the system bus, and transmitted to the terminal via the network line by the network module.
[0029]
As a result, the load on the CPU and the system bus does not increase due to the transfer of the image data. In a configuration in which the storage address space of the image storage means is divided and used for each terminal, the processing speed is particularly reduced. It has a great effect of preventing.
[0030]
In addition, by improving the processing speed, a response to an input operation from a terminal can be made faster, and a data processing device highly convenient for an operator can be provided.
[0031]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, a data processing apparatus according to the present invention will be described in detail with reference to the illustrated embodiments. [First Embodiment]
FIG. 1 is a schematic configuration diagram of a computer system including a host computer device as an example of a data processing device according to a first embodiment of the present invention. As shown in FIG. 1, the computer system includes a host computer device 101, a plurality of terminals 102 and 103 connected thereto (only two terminals are shown in FIG. 1), and a network line 104 interconnecting them. It has.
[0032]
A plurality of connection terminals 106, 107, 108, and 109 are provided on the network line 104 by using an Internet line based on the IEEE 802 standard 100 BASE-T and branched by a HUB (branch device) 105. The host computer 101 is connected to the connection terminal 106, and the terminals 102 and 103 are connected to the connection terminals 107 and 108, respectively.
[0033]
The host computer 101 is connected to a display device 110, a keyboard input device 111, and a pointer input device 112, has a built-in hard disk (not shown), and has a Windows (registered trademark) 98 having a multi-display function of Microsoft Corporation. Is a computer device that can work as an OS (operation system).
[0034]
The terminals 102 and 103 are connected (or built-in) to display devices 113 and 114, keyboard input devices 115 and 116, and pointer input devices 117 and 118, respectively. The pointer input devices 117 and 118 are coordinate input devices such as a mouse, a trackball, a touch panel, and a digitizer panel.
[0035]
FIG. 2 is a block diagram of the host computer device 101. The host computer device 101 includes a CPU (Central Processing Unit) 201, a main storage device 202, a network module 203 for connecting to the above-described network line 104, and a first graphic module for connecting to the display device 110. 204, and a controller module 205 for controlling a hard disk, a keyboard, and a mouse. The CPU 201, main storage device 202, network module 203, first graphic module 204, and controller module 205 are mutually connected via a system bus 206.
[0036]
Further, the host computer device 101 includes a second graphic module 207 connected to the system bus 206. The second graphic module 207 includes an image storage circuit 208 as an example of an image storage unit, and a graphic processing circuit 209 that performs image data calculation and input / output 210 to and from the image storage circuit 208. Image data is held in the storage address space 211 of the image storage circuit 208. The graphic processing circuit 209 is a circuit for image processing using a data processing element dedicated to image processing generally called a graphic processor.
[0037]
Although a PCI (Peripheral Component Interconnect) bus is used as the system bus 206, a configuration using an ISA (Industry Standard Architecture) bus or a VME (Versa Module European) bus is also possible. It is more preferable to use an image bus (such as an AGP (Accelerated Graphic Port) bus).
[0038]
FIG. 3 shows a virtual desktop space 301 using the multi-display function.
[0039]
As shown in FIG. 3, an area 302 indicated by a rectangle in a part of the virtual desktop space 301 is a virtual display space in which an image is held in the first graphic module 204 (shown in FIG. 2). (Shown in FIG. 1). In addition, areas indicated by rectangles in another part of the virtual desktop space 301 are set as storage areas 212 and 213 in the storage address space 211 of the image storage circuit 208 of the second graphic module 207 (shown in FIG. 2). Thus, virtual display spaces 303 and 304 for holding image data are shown.
[0040]
In the present invention, the image data of the virtual display spaces 303 and 304 held in the storage address space 211 of the image storage circuit 208 is displayed on the display device of the terminal. Need not be connected.
[0041]
FIG. 4 shows a conceptual diagram of a task configuration of a program executed by the host computer device 101 shown in FIG. An OS (Windows 98) 401 that controls the hardware 408 of the host computer apparatus 101 (shown in FIG. 1) includes, as a program to be processed in parallel, not only a program 402 of an application that is normally executed, but also a terminal 402. A connection management program 403 for responding to the connection request of the terminal, receiving input data from the terminal after connection, transmitting image data to the terminal, and the like is executed. In addition, child programs 404 and 405 that are started by the connection management program 403 and perform processing for each terminal are executed.
[0042]
That is, in FIG. 1, FIG. 2, FIG. 3, and FIG. 4, the terminals 102 and 103 are connected to the host computer device 101 via the network line 104, and the terminals 102 and 103 are separately provided in the virtual display spaces 303 and 304, respectively. Use The image data of the virtual display spaces 303 and 304 are held in storage areas 212 and 213 in a storage address space 211 of the image storage circuit 208, respectively. The child programs 404 and 405 that separately execute the processes of the terminals 102 and 103 are operating.
[0043]
Here, the connection management program 403 and the child programs 404 and 405 are used in order to proceed with distinguishing between the plurality of terminals 102 and 103 and the plurality of storage areas 212 and 213 holding image data in the virtual display space, as shown in FIG. As shown in FIG. 7, the management table list 509 is shared. The management table list 509 includes information for identifying a terminal (hereinafter, referred to as terminal identification information) 501 and information for using a part of the storage address space as a virtual display space (hereinafter, virtual display information and virtual display information). A plurality of management tables 507, 508, etc., in which terminal information 502 is associated with information (hereinafter referred to as child program identification information) 503 for identifying child programs are stored for each terminal.
[0044]
The terminals 102 and 103 communicate with the host computer via the network line 104 by the TCPIP protocol, and the terminal identification information 501 uses the Internet address of the terminal.
[0045]
The virtual display information 502 includes a start address and an end address of the storage areas 212 and 213 in the storage address space 211 (shown in FIG. 2), a resolution of the virtual display space, and pixels and storage addresses of the virtual display space. The information indicates the correspondence with the space and the coordinates occupied by the virtual display in the virtual desktop space.
[0046]
As the identification information 503 of the child program, a task ID number used when the OS manages the program is used.
[0047]
(1) Host computer processing
Next, processing of the host computer device 101 according to the first embodiment will be described.
[0048]
(1-1) Connection management program
FIG. 10 shows a flowchart of the connection management program of the host computer device 101. As shown in the flowchart of FIG. 10, the connection management program 403 determines whether or not there is reception from the terminal in step S1, and if it is determined that there is reception from the terminal, the process proceeds to step S2, where connection from the terminal is performed. After processing the request and further processing the input data from the terminal in step S3, the process proceeds to step S4.
[0049]
On the other hand, if it is determined in step S1 that there is no reception from the terminal, steps S2 and S3 are skipped and the process proceeds to step S4.
[0050]
Then, after performing the process of transmitting the image data to the terminal in step S4, it is determined in step S5 whether there is an instruction to end the process. If it is determined that there is no instruction to end the process, step S1 is performed. And the steps S1 to S4 are repeated until the user gives an instruction to terminate the connection processing program 403.
[0051]
The processing in steps S2, S3, and S4 may be performed sequentially as shown in FIG. 10, but may be configured to be processed in parallel in different threads in a program or different programs. It is possible.
[0052]
Hereinafter, the processing of steps S2, S3, and S4 in the connection management program 403 will be described respectively.
[0053]
(1-2) Processing of connection request from terminal
FIG. 11 is a flowchart illustrating processing of a connection request from a terminal in step S2 of FIG. Here, as an example, a case where the terminal 103 (shown in FIG. 1) is connected to the host computer device 101, it is assumed that the terminal 102 is already connected. That is, the terminal 102 already has, in the storage address space 211 of the image storage circuit 208, a storage area 212 (shown in FIG. 2) for holding image data of the virtual display space 303 corresponding to the terminal 102, and It is assumed that the child program 404 (shown in FIG. 4) that performs
[0054]
When there is a connection request from the terminal 103, a signal 409 (shown in FIG. 4) from the network line 104 received by the hardware 408 (shown in FIG. 4) of the host computer is notified to the connection management program 403 by the OS 401. Is done.
[0055]
If the connection management program 403 determines in step S11 of FIG. 11 that the signal 409 from the network line 104 is a connection request from the terminal, the process proceeds to step S12, and if it determines that there is no connection request from the terminal, This processing ends.
[0056]
In the case of a connection request from the terminal, in step S12, the resolution of the storage area used by the terminal as a virtual display space and the correspondence between pixels and storage addresses are set. Step S12 constitutes a resolution setting means for setting the resolution of the storage area for holding the image data in the virtual display space in accordance with the resolution of the display device of the terminal.
[0057]
In the first embodiment, a signal 410 is transmitted in response to the connection request signal 409, and the terminal 103 obtains the number of pixels in the vertical and horizontal directions and the color tone resolution of the display device 114 from the terminal 103 as information on the resolution of the display device 114. Is the resolution of the vertical and horizontal pixels and the color tone of the virtual display space used. The correspondence between the pixel and the storage address is a method for determining how to arrange the pixels in the virtual display space in the storage address, and an appropriate existing method can be used.
[0058]
Then, the process proceeds to step S13 to acquire an unused storage area in the storage address space 211 of the image storage circuit 208. That is, the storage area 212 that the terminal 102 uses as the virtual display space already exists in the storage address space 211. Information on the storage addresses occupied by the storage area 212 is held as virtual display information 502 in the management table 507 corresponding to the terminal 102 in the management table list 509. When another terminal is connected, the virtual display information 502 for each terminal is similarly obtained, and an unused storage area is calculated. FIG. 2 shows a state where the unused storage area 214 indicated by a broken line is calculated.
[0059]
In the first embodiment, in order to effectively use the storage address space 211 of the image storage circuit 208, the storage area for holding the image data in the virtual display space corresponding to the terminal is packed in ascending order from the highest address as possible. The storage area according to the storage amount capable of holding the number of pixels in the vertical and horizontal directions and the resolution of the color tone of the display device is set to be a continuous storage address space.
[0060]
In step S14, a storage area for holding image data in the virtual display space corresponding to the terminal is set in the unused storage area. In other words, the storage area 213 that can hold the virtual display space of the number of pixels in the vertical and horizontal directions and the resolution of the color tone set in step S12 by packing the unused storage area 214 in order from the upper address is set in the virtual display space corresponding to the terminal 103. Set as a storage area for holding image data. By the above method, the storage address space 211 is divided into portions that do not overlap with the storage area that holds the image data of the virtual display space corresponding to the existing terminal, and the image data of the virtual display space corresponding to the terminal is held. A storage area can be set.
[0061]
Then, in step S15, it is determined whether or not the storage area has been set. If it is determined that the storage area has been set, the process proceeds to step S16, and the storage area that holds the image data in the virtual display space corresponding to the terminal is set as the output interface. Start the child program. In this embodiment, the virtual display space 304 held by the storage area 213 is incorporated in the OS as a device device that displays a part of the virtual desktop space 301. This is configured to be performed using the plug and play function of the OS. Naturally, the coordinates in the virtual desktop space are arranged so that the virtual display spaces corresponding to the respective terminals do not overlap.
[0062]
Then, a child program 405 is started, which uses image data output to the virtual display space 304 corresponding to the terminal 103 as an output interface.
[0063]
Lastly, in step S17, the connection management program 403 holds the terminal identification information 501, the virtual display information 502, and the child program identification information 503 in association with each other, and ends this processing.
[0064]
In the first embodiment, the management table 508 for the terminal 103 is added to the management table list 509 described above, and the identification information 501 of the terminal, the virtual display information 502, and the identification information 503 of the child program correspond to the data corresponding to the terminal 103, respectively. Is saved. That is, the values of the management table 507 used in step S13 are also created when the terminal 102 is connected to the host computer 101.
[0065]
In the first embodiment, the management tables 507 and 508 shown in FIG. 5 further include virtual display spaces 303 and 304 in order to increase the efficiency of the process of transmitting image data to the terminal in step S4 of FIG. Regarding the writing of the image data into the storage areas 212, 213, etc. that hold the image data, the information on the presence / absence of the writing of the image data, that is, the presence / absence of information to be transmitted to the terminal (hereinafter referred to as transmission image information) 504 The coordinates of the rectangular storage area including the written image data, that is, the coordinates of the rectangular storage area to be transmitted to the terminal (hereinafter referred to as transmission coordinate information) 505 are held.
[0066]
Here, it is also possible to hold image data of one virtual display space corresponding to the terminal 103 by using a plurality of storage areas having different storage addresses. For example, if there is a small unused storage area in the upper address of the storage area 212, the same storage capacity as the storage area 213 is secured by using the storage area and the storage area of the lower address in the storage address space 211. You can also. However, the input / output of image data and the process of transmitting image data to the terminal become complicated and the processing speed is reduced.Therefore, it is better to hold the image data in the virtual display space in the area of the continuous storage address. desirable.
[0067]
If the storage area for holding the image data of the virtual display space corresponding to the terminal 103 cannot be set in step S15 of FIG. 11, the terminal 103 is notified of the rejection of the connection request in step S18, and this processing is performed. finish. In other words, if the unused storage area is small in the storage address space 211 and a storage area having a capacity capable of holding image data in the virtual display space corresponding to the terminal 103 cannot be set, the processing is terminated without connecting the terminal 103. I do.
[0068]
Next, the processing of the child program started in step S16 of FIG. 11 will be described with reference to the flowchart of FIG. Here, the operation will be described as the operation of the child program 405 activated by the connection request of the terminal 103 (shown in FIG. 1).
[0069]
First, the child program 405 performs necessary initialization in step S41. That is, data to be processed is read and the screen is initialized.
[0070]
In the first embodiment, the child program 405 waits for the input of the virtual display information 502 in the corresponding management table 508 in step S17 of FIG. 11, and thereafter, in the virtual display space 304 indicated by the virtual display information 502. The output of the image data to the child program 405 is used as an output interface of the child program 405. After that, display of a screen and display of a cursor for pointing input and keyboard input are performed in the storage area 213 of the virtual display space 304.
[0071]
Then, in step S42, the presence or absence of an input event is determined. If there is an input event, the input event is processed in step S43, and the process proceeds to step S44. That is, if there is a movement operation of the pointer device, an operation of a button, or an input event of a key input, the processing of the program corresponding to the movement of the cursor or the input operation is performed accordingly. That is, in the processing of the child program 405, a response to the input event is made by outputting the image data to the virtual display space 304.
[0072]
This input event is notified from the connection management program 403 in step S23 of FIG. 12 described below. The connection management program 403 uses a buffer so that the connection management program 403 and the child program 405 can perform parallel processing. Is written in the buffer, and the child program 405 is preferably read out in order from the one written in the buffer.
[0073]
If there is no input event in step S42, the process skips step S43 and proceeds to step S44.
[0074]
In step S44, it is determined whether there is an instruction to end the processing of the child program. If it is determined that there is no instruction to end the processing, the process returns to step S42 until the instruction to end the processing of the child program is issued. Steps S42 and S43 are repeated. The instruction to end the processing of the child program 405 is set, for example, by specifying a drawing object linked to the processing of ending the processing of the child program in the virtual display space 304 by using a cursor.
[0075]
On the other hand, if there is an instruction to end the processing of the child program in step S44, the process proceeds to step S45, and the end processing is performed. For example, erasing a screen, saving a file, and the like.
[0076]
Then, the process proceeds to step S46 to release a storage area for storing image data in the virtual display space corresponding to the terminal. That is, the storage area 213 corresponding to the terminal 103 is released. This is performed by deleting the terminal identification information 501, the virtual display information 502, and the child program identification information 503 that are held in correspondence with each terminal in step S17 in FIG. In the first embodiment, the management table 508 is deleted from the management table list 509.
[0077]
In the first embodiment, in order to increase the efficiency of the process of transmitting image data to the terminal in step S4 of FIG. 10, the image data is transferred to the virtual display space corresponding to the terminal in steps S41, S43, and S45 of FIG. Is output, the transmission image information 504 and the transmission coordinate information 505 of the management table are updated. For example, when there is an image output 305 in the virtual display space 304 shown in FIG. 3, the transmission image information 504 holds information indicating that there is an image to be transmitted, and the transmission coordinate information 505 contains the written image output. The coordinates of the rectangular area 306 including 305 are held. If the transmission image information 504 already has information indicating that there is an image to be transmitted, a rectangular area including both the coordinates of the rectangular area stored in the transmission coordinate information 505 and the image written this time Holds the coordinates of
[0078]
(1-3) Processing of input data from terminal
FIG. 12 is a flowchart illustrating processing of input data from the terminal in step S3 of FIG. Here, an example will be described in which the terminals 102 and 103 (shown in FIG. 1) are connected to the host computer device 101 and input data from the terminal 103 is received.
[0079]
When the input data is received from the terminal 103, the signal 409 received via the network line 104 by the hardware 408 of the host computer device 101 is notified to the connection management program 403 by the OS 401.
[0080]
First, in step S21, the connection management program 403 determines whether there is input data from the terminal, and determines that the signal 409 received via the network line 104 is the reception of input data from the connected terminal. Judge. That is, it is determined whether there is a management table in the management table list 509 in which the Internet address of the terminal 103 of the transmission source matches the terminal identification information 501.
[0081]
If the input data is received from the connected terminal, the process proceeds to step S22, and the identification information 503 of the child program corresponding to the terminal is obtained. That is, the task ID number held as the identification information 503 of the child program is obtained from the management table in which the Internet address of the transmission source matches the identification information 501 of the terminal, that is, the management table 508 corresponding to the terminal 103. On the other hand, if it is determined in step S21 that there is no input data from the terminal, this processing ends.
[0082]
Finally, in step S23, the input data is notified as an input event to the child program 405 using the task ID number, and the process ends. That is, the input data is changed to the input event format and notified to the child program 405 of the task ID number. For example, the moving operation of the pointer device, the operation of the button, and the key input are changed to an input event corresponding to the operation and the notification is performed. By this notification, processing corresponding to the operation from the terminal is performed in steps S42 and S43 of FIG. 14 of the child program.
[0083]
(1-4) Transmission processing of image data to terminal
FIG. 13 is a flowchart illustrating a process of transmitting image data to a terminal in step S4 of FIG. Here, a case where the terminals 102 and 103 are connected to the host computer device 101 will be described as an example.
[0084]
In the first embodiment, only when there is image data to be transmitted to the virtual display space corresponding to each terminal based on the transmission image information 504 of the management table in order to streamline the processing of transmitting image data to the terminal. Based on the transmission coordinate information 505, the image data of the rectangular storage area to be transmitted and the coordinates of the rectangular storage area are transmitted to the terminal.
[0085]
The transmission image information 504 and transmission coordinate information 505 for each virtual display space are updated each time image data is output in steps S41, S43, and S45 shown in FIG. 14 of each child program.
[0086]
First, in step S31 shown in FIG. 13, the connection management program 403 determines whether a connected terminal exists. Here, it is determined whether or not the management table is present in the management table list 509.
[0087]
If there is a connected terminal, the process proceeds to step S32, in which the connected terminals are sequentially selected, and the process proceeds to step S33. That is, in the first embodiment, the process is performed by sequentially selecting the management tables 507 and 508 in the management table list 509. On the other hand, if there is no connected terminal, this processing ends.
[0088]
Next, in step S33, it is determined whether there is an image to be transmitted in the virtual display space corresponding to the selected terminal. That is, it is determined whether there is an image to be transmitted from the transmission image information 504 stored in the selected management table.
[0089]
Then, when there is an image to be transmitted in the virtual display space, the process proceeds to step S34, and an address in the storage address space of the image data of the rectangular area to be transmitted is acquired. In other words, the virtual display information 502 and the transmission coordinate information 505 are acquired from the management table, and the coordinates of the rectangular area of the image data to be transmitted and the correspondence between the pixels and the storage addresses in the storage address space of the image data to be transmitted. Calculate the address. On the other hand, if there is no image to be transmitted in the virtual display space, steps S34 to S37 are skipped.
[0090]
Then, in step S35, terminal identification information is obtained. That is, the Internet address of the terminal held as the terminal identification information 501 is acquired from the management table.
[0091]
Then, the process proceeds to step S36 to transmit the image data to the terminal. Here, the image data of the rectangular storage area is transmitted by transmitting the data of the address acquired in step S34 to the Internet address, and the coordinates of the rectangular storage area are also transmitted.
[0092]
Then, the process proceeds to step S37 to update the transmission image information stored in the management table. That is, when the transmission is completed, information indicating that there is no image to be transmitted is stored in the transmission image information 504.
[0093]
Then, in step S38, it is determined whether or not the processing of all the terminals is completed. If it is determined that the processing of all the terminals is not completed, the process returns to step S32, and steps S32 to S37 are performed until the processing of all the terminals is completed. repeat. In other words, the process is repeated until all the management tables 507 and 508 in the management table list are processed.
[0094]
(2) Terminal processing
Next, processing of the terminal will be described. Here, each of the terminals 102 and 103 is connected to the host computer device 101 in step S1 of FIG. 10 and, out of the data transmitted in step S36 of FIG. 13, image data addressed to its own Internet address and a rectangular storage area. And displays the image data at the coordinates of the corresponding rectangular storage area of each of the display devices 113 and 114.
[0095]
Each of the terminals 102 and 103 is configured to transmit the keyboard input data and the pointing input data to the host computer device 101 via the network line 104.
[0096]
For example, the terminal 103 displays the image data transmitted in step S36 on the display device 114 and operates the input devices 116 and 118 based on the image data. As a result, the input data is transmitted to the host computer apparatus 101, processed as an input event in step S43 of FIG. 14, and the image data is output to the storage area 213 of the virtual display space 304 during the processing. The output image data is transmitted in step S36 and reflected on the display device 114. By repeating the above, the operation on the host computer device 101 can be advanced from the terminal 103 while viewing the image on the display device 114 of the terminal 103.
[0097]
When an operation for instructing the end of the process is performed, the storage area 213 for holding the image data of the virtual display space 304 corresponding to the terminal 103 is released in steps S44, S45, and S46 in FIG. be able to.
[0098]
That is, in steps S13, S14, and S17, the storage address space is divided according to connection requests from a plurality of terminals, and a storage area for holding image data in a virtual display space corresponding to the plurality of terminals is changed to another storage area. A storage area setting means is set for each terminal so as not to overlap the storage area.
[0099]
Further, the image data transmitting means for transmitting the image data in the virtual display space corresponding to the plurality of terminals for each terminal is constituted by steps S32, S34, S35, S36 and S38 in FIG.
[0100]
In step S41, S43, and S45 in FIG. 14, the image data is output to the storage area of the virtual display space corresponding to the terminal held in step S17 in FIG. 11, so that the virtual display space corresponding to the plurality of terminals is output. A program executing means for executing a program for each terminal is constituted by using a storage area holding the image data as an output interface.
[0101]
In addition, a storage area release unit that releases a storage area for holding image data in the virtual display space corresponding to the plurality of terminals for each terminal is configured by step S46 in FIG.
[0102]
In the first embodiment, in order to reduce the amount of image data to be transmitted, especially when there is an image to be transmitted in steps S33 and S34 in FIG. However, it is of course possible to always transmit all screens. It is also possible to configure so that all image data is transmitted regardless of whether or not rewriting is performed.
[0103]
Alternatively, in step S34 of FIG. 13, when the rectangular area to be transmitted is large, the rectangular area is divided so that transmission is performed in a plurality of times, and a part of the rewritten rectangular area is transmitted in the transmission range. It can also be. In this case, the transmission image information 504 in step S37 holds information indicating that there is an image to be transmitted until all of the rectangular region to be transmitted is transmitted, and stores the rectangular region including untransmitted image data. What is necessary is just to hold | maintain in the transmission coordinate information 505.
[0104]
Also, information indicating whether the terminal has received the image data or information of the range of the data that can be received by the terminal among the image data is returned, and based on the information, the transmission image information in step S37 is returned. More preferably, the update of the transmission coordinate information 504 is changed. That is, if the terminal has lost communication for some reason and could not receive all of the image data, in step S37, based on the coordinates of the received storage area returned by the terminal, a rectangle including the part that could not be received The storage area is stored in the transmission coordinate information, and the transmission image information holds information indicating that there is an image to be transmitted. Thereby, the remaining part that could not be received can be transmitted next time. Thus, for example, it is also possible to easily disconnect the terminal 103 from the connection terminal 108 of the network line 104, move the terminal 103 to the connection terminal 109 of the network line 104 in another place, and continue the original work. Further, even when the network line 104 is a wireless communication line or a part of the network line 104 includes a wireless communication line, if the communication line is temporarily disconnected, the image data is transmitted at the next transmission timing. Can be transmitted.
[0105]
Further, the image data can be transmitted after being compressed or encrypted.
[0106]
In the first embodiment, the storage area for holding image data in the virtual display space corresponding to the terminal is packed from the upper address, and the number of pixels in the vertical and horizontal directions and the resolution of the color tone of the display device of the terminal are adjusted to the virtual display space. Is configured to be set in the storage address space 211 so that the storage area that can hold the data is stored. However, the method of setting the storage area is not limited to this, and other methods can be used, and a method that can use the storage address space 211 as efficiently as possible is preferable.
[0107]
When the child program is started in step S16 of FIG. 11, when the storage area for executing the new child program is insufficient in the main storage device 202 on the OS, or when the number of execution programs of the OS has reached the limit. For example, the activation of the child program may be rejected by the OS 401. In that case, it may be necessary to proceed to step S18 in FIG. 11 to perform a process of returning a rejection response to the connection request from the terminal.
[0108]
[Second embodiment]
Next, a computer system including a host computer device as an example of a data processing device according to a second embodiment of the present invention will be described. In the computer system according to the second embodiment, in addition to the configuration of the first embodiment, the storage address of the image storage circuit 208 is moved by a storage area moving unit that moves a storage area that holds image data in a virtual display space corresponding to a terminal. This is to create a continuous larger unused storage area in the space 211.
[0109]
Hereinafter, a process of creating a continuous larger unused storage area will be described with reference to the flowchart of FIG. Here, a case will be described as an example where the child program 404 corresponding to the terminal 102 finishes the work and the storage area 212 in FIG. 2 is opened from the state where the terminals 102 and 103 are connected.
[0110]
When the storage area 212 is released, a storage area 213 for holding the virtual display space 304 corresponding to the terminal 103 is located at the center of the storage address space 211 of the image storage circuit 208 as shown in FIG. Therefore, a storage area to be used as a virtual display space is reserved in the unused storage areas 601 and 602 by the terminal to be connected next.
[0111]
Therefore, when the terminal that next requests connection needs a storage area larger than the storage areas 601 and 602 to hold the image data of the corresponding virtual display space, the terminal is set as a continuous area in the virtual display space 211. Unable to set storage area.
[0112]
In the second embodiment, after the child program 404 releases the storage area 212 in step S46 of FIG. 14, that is, deletes the management table 507, the child program 404 performs the following processing shown in FIG.
[0113]
First, in step S51 of FIG. 15, it is determined whether there is a connected terminal. Here, this is performed by determining whether or not the management table list 509 includes a management table.
[0114]
When there is a connected terminal, the process proceeds to step S52, and the connected terminals are sequentially selected. That is, in the second embodiment, the management tables in the management table list 509 in FIG. 5 are sequentially selected. Here, the management table 508 of the terminal 103 is selected. On the other hand, if there is no connected terminal, this process ends.
[0115]
Then, in step S53, it is determined whether or not it is possible to move the storage area holding the image data in the virtual display space corresponding to the selected terminal to expand the unused continuous storage area. Here, as a method of expanding the unused continuous storage area, it is possible to move the storage area 213 to an upper address or to a lower address. However, in the second embodiment, the virtual display The storage area holding the image data of the space is moved so that the storage area is set to be packed in the upper address, and it is determined whether the movement is possible. That is, by moving the storage area 213 in the direction of the unused storage area 601 of the upper address, the unused storage area 602 can be enlarged.
[0116]
If the unused continuous storage area can be enlarged, the image data in the storage area in the virtual display space is moved in step S54. That is, the image data in the storage area 213 in FIG. 6 is moved to the storage area 701 in FIG.
[0117]
Then, in step S55, the information of the occupied address in the storage address space 211 of the moved storage area is updated. That is, the virtual display information 502 of the management table 508 is updated so as to indicate the storage area 701.
[0118]
Then, in step S56, the connected terminal returns to the beginning and is selected, and returns to step S53. In other words, when a plurality of terminals are connected, the movement of the storage area of a certain terminal may make it possible to move the storage area of the already processed terminal again. This is to determine whether or not the storage area that has been moved should be moved.
[0119]
On the other hand, if it is not possible to expand the unused continuous storage area in step S53, the process proceeds to step S57.
[0120]
Then, in step S57, it is determined whether or not the processing of all the terminals has been completed. If it is determined that the processing of all the terminals has not been completed, the process returns to step S52 and steps S52 to S52 are performed until the processing of all the terminals is completed. S56 is repeated. That is, the connected terminals are sequentially selected, and the movement of the storage area for holding the image data in the virtual display space is repeated until all the terminals do not need to be moved.
[0121]
In other words, steps S54 and S55 constitute storage area moving means for moving a storage area for holding image data in the virtual display space corresponding to the terminal in the storage address space 211 of the image storage circuit 208.
[0122]
With the above configuration, as shown in FIG. 7, 702 is created as an unused storage area in the storage address space 211 of the image storage circuit 208.
[0123]
As a result, a storage area 702 having a larger capacity than the storage areas 601 and 602 in FIG. 6 is created as a continuous storage area.
[0124]
In the configuration of the second embodiment, the image data is moved in the storage address space 211. Therefore, the configuration having the graphic processing circuit 209 shown in FIG. It is more preferable that the processing is performed within the host computer and the load on the CPU 201 and the system bus 206 of the host computer is not increased.
[0125]
Further, when using a plurality of terminals having different screen resolutions shown in the first embodiment, that is, when using a plurality of terminals having different storage capacities of storage areas to be held, by repeating connection and disconnection, In particular, a large number of small unused storage areas that cannot be used in the gaps between the storage areas for holding image data in the virtual display space corresponding to each terminal may be generated. However, according to the configuration of the second embodiment, it is possible to provide a data processing device having an advantage that more terminals can be connected by effectively using the storage address space 211 of the image storage circuit 208.
[0126]
Alternatively, in step S14 of the first embodiment, the storage area for holding the image data in the virtual display space corresponding to the terminal is set from the upper address of the storage address space 211. The allocation may be performed from both the address and the lower address, and the unused storage area may be located at the center of the storage address space 211.
[0127]
In other words, as shown in FIG. 8A, the storage area where image data in the virtual display space is held by a plurality of terminals is stored in the area 801 from both the upper address and the lower address of the storage address space 211. Can be set to the region 808 from.
[0128]
For example, as shown in FIG. 8B, a case where the storage area used as a virtual display space by a plurality of terminals is sequentially set from the area 801 to the area 808, starting from one of the storage address spaces 211. Compare with.
[0129]
First, in FIG. 8A, there are two storage areas 807 and 808 that hold image data in the virtual display space adjacent to the unused storage area 809, and in FIG. FIG. 8A doubles the probability that the terminal does not need to move particularly when the terminal releases the storage area.
[0130]
8B, the storage areas that must be moved when the storage area 802 is released are the areas 803, 804, 805, 806, 807, and 808, but in FIG. , Regions 804, 806, and 808. In this case, it is assumed that the storage areas 804, 806, and 808 set from the lower address are moved to the lower address (downward in the figure).
[0131]
Therefore, in the case where a continuous unused larger storage area is created, the present configuration has an advantage that the number of processes can be reduced, particularly when the present configuration is used.
[0132]
Also, a method of setting a storage area used by a terminal as a virtual display space from both an upper address and a lower address of a storage address space is as shown in FIGS. 8 (a) and 8 (b). Each time a terminal is connected, the method is not limited to the method of alternately starting from the upper address and starting from the lower address, but may be another method. For example, a new storage area may be set to the smaller of the total capacity of the storage areas set in the lower address, similarly to the total capacity of the storage areas set in the upper address. In this case, when the terminal releases the storage area, the average amount of data movement for creating a continuous unused larger storage area can be further reduced. Alternatively, the amount of data movement required when a certain terminal temporarily releases the storage area is determined by setting the new storage area to the upper address and setting the lower address to the lower address. By setting a new storage area in which the total amount calculated for is smaller, it is possible to more reliably reduce the processing amount.
[0133]
Further, the means for moving the storage area and increasing the unused storage area shown in the second embodiment is not limited to after the storage area 212 is released in step S46 in FIG. For example, when setting a storage area for holding image data of a new virtual display space corresponding to a terminal in step S14 of FIG. 11, this may be performed, or a new storage area cannot be set in step S15. At a later time, and then try to set a new storage area again (not shown in the flowchart).
[0134]
[Third embodiment]
Next, a computer system including a host computer device as an example of a data processing device according to a third embodiment of the present invention will be described. The computer system according to the third embodiment differs from the computer systems according to the first and second embodiments in that the storage area for holding the image data in the virtual display space is evacuated as necessary, and the storage address space 211 is temporarily stored. The unused storage area of the virtual display space is increased, and then the storage area holding the image data of the evacuated virtual display space is restored as needed.
[0135]
FIG. 16 is a flowchart illustrating the processing of the child program started in step S16 of FIG. The flowchart of FIG. 16 has the same contents as the flowchart of FIG. 14 except for steps S47 and S48, and only different points from FIG. 14 will be described below.
[0136]
In the third embodiment, in the flowchart of the processing of the child program shown in FIG. 16, if there is no input event or screen update for a certain period of time in step S47, the storage area for holding the image data in the virtual display space is changed. When the input event occurs, the storage area for holding the image data in the virtual display space is restored in step S48.
[0137]
In addition, as shown in FIG. 5, information that saves a storage area that holds image data in the virtual display space corresponding to the terminal (hereinafter referred to as save area save information) 506 is stored in the management table.
[0138]
When an unused storage area is obtained in the storage address space 211 of the image storage circuit 208 in step S13 in FIG. 11, information indicating that the storage area is saved is stored in the storage area save information 506 (shown in FIG. 5). When the storage area is held, the terminal determines that the storage area is not used and calculates an unused storage area.
[0139]
Also, if the information indicating that the data is saved is stored in the save information 506 of the storage area also in step S33 in FIG. 13, the process proceeds to step S38.
[0140]
Hereinafter, the process of saving the storage area holding the image data in the virtual display space in step S47 of FIG. 16 will be described with reference to the flowchart of FIG. Here, an example will be described in which the terminals 102 and 103 (shown in FIG. 1) are connected to the host computer apparatus 101, and the terminal 102 temporarily releases the storage area 212.
[0141]
First, the child program 404 determines whether to save the storage area in step S61. That is, if there is no input event or screen update for a certain period of time, the storage area 212 is saved.
[0142]
Then, when the storage area 212 is saved, the process proceeds to step S62, and the occupation address of the storage area in the storage address space 211 that holds the image data of the virtual display space is acquired. That is, the start address and the end address of the storage area 212 holding the image data of the virtual display space in the virtual display information 502 of the management table 507 are obtained.
[0143]
Then, in step S63, the image data held in the virtual display space is copied to the secondary storage device. In the third embodiment, the image data in the storage area 212 is copied as it is. Thereby, the image data in the virtual display space can be saved. In this case, since the secondary storage device is a secondary storage device for the image storage circuit 208, the secondary storage device may be the main storage device 202 in addition to the hard disk device.
[0144]
Then, in step S64, the storage area 212 for holding the image data in the virtual display space corresponding to the terminal is released, and this processing ends. That is, the information indicating that the information is saved is stored in the save information 506 of the storage area of the management table 507. As a result, the storage area 212 becomes an unused area, and image data is not transmitted from the storage area 212 to the terminal 102.
[0145]
On the other hand, if the saving of the storage area is not performed in step S61, this processing ends.
[0146]
Hereinafter, the process of restoring the storage area holding the image data in the virtual display space in step S48 of FIG. 16 will be described with reference to the flowchart of FIG. Here, after the terminal 102 saves the storage area 212 holding the image data in the virtual display space, the terminal 102 transmits the input data, and is notified to the child program 404 as an input event in step S23 of FIG. And
[0147]
In the storage address space 211, the storage area 212 is evacuated, and as shown in FIG. 6, a storage area 213 for holding image data of the virtual display space 304 of the terminal 103 exists.
[0148]
The child program 404 determines that there is an input event in step S42 of FIG. 16, and proceeds to step S48.
[0149]
Then, it is determined whether or not the storage area is evacuated in step S71 of FIG. Here, it is determined that the storage area is saved because the storage area saving information 506 of the management table 507 holds information indicating that the storage area is saved.
[0150]
Then, if the storage area is evacuated, the storage capacity required to hold the image data in the virtual display space is acquired in step S72. That is, the storage capacity of the original storage area 212 can be obtained by acquiring the start address and end address of the storage area held as the virtual display information 502 of the management table 507.
[0151]
Then, in step S73, an unused storage area in the storage address space 211 is obtained. This is the same process as step S13 in FIG. Here, the unused storage areas 601 and 602 in FIG. 6 are calculated.
[0152]
Then, the process proceeds to step S74, where a storage area for holding image data in the virtual display space corresponding to the terminal 102 is set in the unused storage area. This is the same process as step S14 in FIG. Here, the unused storage area 601 is set.
[0153]
If another terminal is connected while the terminal 102 is evacuating the storage area 212 and uses the unused storage area 601, the terminal 102 is stored in the unused storage area 602 here. A storage area for holding image data in the display space is set.
[0154]
Then, the process proceeds to a step S75, and it is determined whether or not the storage area has been set.
[0155]
If the setting has been completed, the image data copied to the secondary storage device in step S76 is read into the storage area. Here, it is set so that the information of the evacuated storage area is read into the new storage area 601 as it is.
[0156]
Finally, in step S77, the information of the occupied address in the storage address space 211 of the restored storage area is updated, and this processing ends. That is, since the storage area for holding the image data in the virtual display space may be restored to a storage address different from the original storage area, the start address and the end address of the storage address of the storage area newly set in step S74. Is held in the virtual display information 502.
[0157]
On the other hand, if the storage area cannot be secured in step S75, the process returns to step S73, and steps S73, S74, and S75 are repeated until the unused storage area increases and the storage area is secured.
[0158]
That is, steps S62, S63, and S64 in FIG. 17 constitute storage area saving means for saving the storage area for holding the image data in the virtual display space corresponding to the terminal from the storage address space 211 of the image storage circuit 208. You.
[0159]
Also, steps S72, S73, S74, S76, and S77 in FIG. 18 constitute a storage area restoring unit that restores the saved storage area in the storage address space 211 of the image storage circuit 208.
[0160]
In the operation of the computer device, in addition to the operation of sequentially inputting while watching the screen, there is also a case where a certain image is displayed and browsed. Alternatively, as described above, the communication line of the network line may be intentionally or unintentionally cut off for a long time, processing of the input event may be completed, a certain image may be displayed, and input may be waited.
[0161]
For example, in FIG. 3, when the virtual display spaces 304 and 305 have a constant image for a long time, no image data is read from the storage areas 212 and 213, but each of the storage areas 212 and 213 has The regions 212 and 213 will continue to be occupied.
[0162]
In the configuration of the third embodiment, as described above, when there is no input event in the terminal or a certain process for drawing in the virtual display space for a certain period of time, the image data in the virtual display space corresponding to the terminal is held. It is possible to provide a data processing device having an advantage that the storage area can be saved and an unused storage area of the storage address space 211 can be temporarily increased.
[0163]
Further, after the storage area is released in step S64 of FIG. 17, the storage area moving means for moving the storage area holding the image data of the virtual display space corresponding to the terminal described in steps S51 to S57 of FIG. , The storage address space 211 may be configured to create an unused continuous larger storage area. In that case, it is possible to provide a data processing device that can use the storage address space 211 of the image storage circuit 208 more efficiently.
[0164]
[Fourth embodiment]
Next, a computer system including a host computer device as an example of a data processing device according to a fourth embodiment of the present invention will be described. The computer system according to the fourth embodiment is the same as the computer system according to any one of the first to third embodiments, except that the image data in the storage address space 211 of the image storage circuit 208 as the image storage means is transferred to the system bus of the computer device. The configuration is such that a path is provided to transfer to the network module without intervention.
[0165]
In the computer system of the fourth embodiment, as shown in FIG. 2, the second graphic module 207 has a graphic processing circuit 209. This has the advantage of reducing the load on the CPU in drawing. In particular, when the terminal moves the storage area used as the virtual display in the second embodiment, processing can be performed in the second graphic module 207, and the load on the CPU of the host computer can be reduced.
[0166]
Further, more preferably, in order to reduce the load on the CPU 201, the second graphic module 207 and the network module 203 may be configured to directly transfer data via the system bus 206 without passing through the CPU 201.
[0167]
However, when a plurality of workers connect to the host computer device 101 from a plurality of terminals, the load of processing for transmitting image data in a storage area used by the terminal as a virtual display to the terminal increases, and the host computer device 101 In some cases, the overall processing may be reduced.
[0168]
In the fourth embodiment, as shown in FIG. 9, a network module 902 is added to the second graphic module 901 to read image data from the image storage circuit 208 without passing through the system bus 206, and It is configured to have a transfer path 903.
[0169]
With the configuration of the fourth embodiment, in the process of transmitting the image data to the terminal in step S36 in FIG. 13, the load on the CPU 201 and especially the system bus 206 is not increased, and the processing of the entire host computer apparatus 101 is not performed. The drop can be prevented.
[0170]
In particular, as the image storage circuit 208, a storage element having a terminal from which data can be read independently of a terminal for inputting and outputting data, that is, a so-called dual-port RAM, is used, and a terminal for inputting and outputting data is connected to the path 904. Alternatively, a terminal from which reading can be performed independently may be connected to the path 903. In this case, an operation of transmitting an image to a terminal, that is, an operation of transmitting image data from the network module 902 through the path 903 can be performed independently of the image input / output path 904. Thereby, it is possible to particularly prevent the processing of the host computer device 101 from being lowered.
[0171]
In order to operate the host computer device 101 from the terminal, in addition to the configuration shown in the present invention, a method of holding image data of the virtual display space in the main storage device 202 is also possible. However, in such a configuration, a storage area for holding image data in a virtual display space that requires a relatively large storage capacity must be arranged in the main storage device 202, and in addition to this, a storage area for the virtual display space is required. The CPU 201 performs all the processing of inputting / outputting an image and the processing of transmitting image data to a terminal, which is not particularly suitable for a data processing apparatus that performs processing from a plurality of terminals.
[0172]
On the other hand, in a configuration in which the storage address space 211 of the image storage circuit 208 as the image storage unit of the present invention is divided and used for each terminal, the input / output processing of image data such as the use of the graphic processing circuit 209 is performed. In addition to speeding up, the configuration of the fourth embodiment does not increase the load on the CPU 201 or the system bus 206 even when transmitting image data to a terminal, and is particularly used by a plurality of terminals. It is possible to provide a data processing device suitable for the data processing device.
[0173]
Further, in the first to fourth embodiments, as shown in FIG. 4, each processing as the data processing device is shared by the connection management program 403 and the child programs 404 and 405. Is not limited to the embodiment shown here, and various methods can be considered. Alternatively, the data processing method of the present invention can be incorporated in the OS itself.
[0174]
Further, in the first to fourth embodiments, each terminal is operated by each child program. However, the child program provides a certain platform like the OS, and the child program It is also possible to execute a program. For example, as shown in FIG. 4, the child programs 404 and 405 are configured to have the function of a Windows emulator. Then, by using the storage areas holding the image data of the virtual display space corresponding to the terminal as the desktop space and executing the grandchild programs 406 and 407, the terminal can execute the work more freely. Can be. For example, an emulator program for executing a Windows application is known on UNIX (registered trademark).
[0175]
Furthermore, the child program may be configured as a so-called virtual computer, which emulates a CPU of a computer device, a storage device, and peripheral devices. In that case, the virtual display space corresponding to the terminal becomes a virtual display device of the virtual computer. In such a case, since the work from each terminal is configured to execute an application on a virtual computer on the host computer device, a data processing device having an advantage that the work can be performed in a more independent environment between the terminals is provided. Can be provided.
[0176]
【The invention's effect】
As is clear from the above, according to the data processing device of the present invention, it is not necessary to previously hold the means for storing the image determined for each terminal, and it is possible to display the image of the terminal at a remote place connected by a network line. It is possible to provide a data processing device capable of operating an input device while viewing an output image of a computer device and proceeding with processing of a program on the computer device.
[0177]
In particular, in order to divide the storage address space of the image storage means and use it separately for each terminal, input / output of image data to a storage area holding image data of a virtual display space corresponding to each terminal is performed by: A common program can be used as input / output of image data to / from the entire storage address space of the image storage means. This simplifies the processing of input / output of image data of the host computer device, and particularly in the case where a plurality of workers are connected from a plurality of terminals and work on the host computer, especially when the main storage device is effectively used or used. There is an advantage that the processing speed can be improved.
[Brief description of the drawings]
FIG. 1 is a schematic configuration diagram of a computer system including a host computer device as an example of a data processing device according to a first embodiment of the present invention.
FIG. 2 is a block diagram of the host computer device.
FIG. 3 is a diagram for explaining a virtual display space.
FIG. 4 is a diagram for explaining a task configuration of the computer device.
FIG. 5 is a diagram for explaining a management table list.
FIG. 6 is a diagram for explaining release of a storage area;
FIG. 7 is a diagram for explaining movement of a storage area;
FIG. 8 is a diagram for explaining restoration of a storage area;
FIG. 9 is a block diagram of a host computer device as an example of a data processing device according to a fourth embodiment of the present invention.
FIG. 10 is a flowchart illustrating the operation of a connection management program.
FIG. 11 is a flowchart for explaining processing of a connection request from a terminal.
FIG. 12 is a flowchart for explaining processing of input data from a terminal.
FIG. 13 is a flowchart illustrating a process of transmitting image data to a terminal.
FIG. 14 is a flowchart for explaining processing of a child program;
FIG. 15 is a flowchart for explaining movement of a storage area in a computer system having a host computer device as an example of a data processing device according to a second embodiment of the present invention.
FIG. 16 is a flowchart illustrating processing of a child program in a computer system including a host computer device as an example of a data processing device according to a third embodiment of the present invention.
FIG. 17 is a flowchart for explaining saving of a storage area;
FIG. 18 is a flowchart for explaining restoration of a storage area;
FIG. 19 is a block diagram showing a schematic configuration of a conventional data processing device.
[Explanation of symbols]
101: host computer device,
102, 103 ... terminals,
104 ... network line,
105 ... HUB,
106, 107, 108, 109, 905 ... connection terminals,
110 ... display device,
115, 116 ... keyboard input device,
117, 118 ... pointer input device,
201 ... CPU,
202: main storage device,
203: Network module,
204 ... first graphic module,
206: system bus,
207 ... second graphic module,
208 image storage circuit,
209 ... graphic processing circuit,
210 ... input / output,
211 ... storage address space,
212, 213 ... storage area,
214: unused storage area,
301 ... virtual desktop space,
302 ... area,
303, 304 ... virtual display space,
401 ... OS (operation system),
403: connection management program,
404, 405: child program,
409 ... signal,
410 ... signal,
501 terminal identification information,
502 ... virtual display information,
503: child program identification information,
506... Save area storage information;
507, 508 ... management table,
509 ... management table list,
601, 602, 702... Unused areas,
701: storage area,
801-808 ... area,
809: unused storage area,
901, a second graphic module;
902: Network module,
903: route,
904: route,
1001 ... computer device,
1002, 1003, 1004, 1005 ... display device,
1006, 1007, 1008, 1009... Pointer input device.

Claims (7)

ネットワーク回線によって少なくとも1つの端末が接続されるデータ処理装置であって、
上記端末に対応する仮想ディスプレイ空間の画像データを記憶する画像記憶手段と、
上記端末よりの接続要求により、上記画像記憶手段の記憶アドレス空間に上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を設定する記憶領域設定手段と、
上記記憶領域設定手段により上記画像記憶手段の記憶アドレス空間に設定された上記記憶領域の画像データを送信する画像データ送信手段と、
上記画像記憶手段の記憶アドレス空間に設定された上記記憶領域を出力インターフェースとしたプログラムの実行を行うプログラム実行手段と、
上記画像記憶手段の記憶アドレス空間に設定された上記記憶領域を解放する記憶領域解放手段とを有することを特徴とするデータ処理装置。
A data processing device to which at least one terminal is connected by a network line,
Image storage means for storing image data of a virtual display space corresponding to the terminal,
Storage area setting means for setting a storage area for holding image data of a virtual display space corresponding to the terminal in a storage address space of the image storage means by a connection request from the terminal,
Image data transmitting means for transmitting image data of the storage area set in the storage address space of the image storage means by the storage area setting means,
Program execution means for executing a program using the storage area set in the storage address space of the image storage means as an output interface,
A data storage device for releasing the storage area set in the storage address space of the image storage means.
請求項1に記載のデータ処理装置において、
上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域が、上記画像記憶手段の記憶アドレス空間上で連続した領域であることを特徴とするデータ処理装置。
The data processing device according to claim 1,
The storage area for holding image data of the virtual display space corresponding to the terminal set in the storage address space of the image storage means is a continuous area on the storage address space of the image storage means. Data processing device.
請求項1に記載のデータ処理装置において、
上記端末のディスプレイ装置の解像度に合わせて、上記画像記憶手段の記憶アドレス空間に設定される上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域の解像度を設定する解像度設定手段を有することを特徴とするデータ処理装置。
The data processing device according to claim 1,
Resolution setting means for setting a resolution of a storage area for holding image data of a virtual display space corresponding to the terminal set in a storage address space of the image storage means in accordance with a resolution of a display device of the terminal. A data processing device characterized by the above-mentioned.
請求項1に記載のデータ処理装置において、
上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を、その記憶アドレス空間内で移動させる記憶領域移動手段を有することを特徴とするデータ処理装置。
The data processing device according to claim 1,
Data having storage area moving means for moving, within the storage address space, a storage area for holding image data in a virtual display space corresponding to the terminal set in the storage address space of the image storage means. Processing equipment.
請求項1に記載のデータ処理装置において、
上記記憶領域設定手段は、上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を、上記記憶アドレス空間上の上位アドレスからと、下位アドレスからとの両方から夫々割り当てることを特徴とするデータ処理装置。
The data processing device according to claim 1,
The storage area setting means stores a storage area for holding image data in a virtual display space corresponding to the terminal set in the storage address space of the image storage means from an upper address on the storage address space to a lower address. A data processing device, wherein the data is allocated from both of and.
請求項1に記載のデータ処理装置において、
上記画像記憶手段の記憶アドレス空間に設定された上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を待避させる記憶領域待避手段と、
上記記憶領域待避手段により待避させた上記端末に対応する仮想ディスプレイ空間の画像データを保持する記憶領域を、上記画像記憶手段の記憶アドレス空間に復元する記憶領域復元手段とを有することを特徴とするデータ処理装置。
The data processing device according to claim 1,
Storage area saving means for saving a storage area for holding image data of a virtual display space corresponding to the terminal set in the storage address space of the image storage means,
Storage area restoring means for restoring a storage area for holding image data of a virtual display space corresponding to the terminal saved by the storage area saving means to a storage address space of the image storage means. Data processing device.
請求項1に記載のデータ処理装置において、
上記画像記憶手段の記憶アドレス空間の上記記憶領域に保持された画像データが、コンピュータ装置のシステムバスを介さず、上記ネットワーク回線を接続するためのネットワークモジュールに転送される経路を有することを特徴とするデータ処理装置。
The data processing device according to claim 1,
The image data stored in the storage area of the storage address space of the image storage means has a path for transferring to a network module for connecting the network line without passing through a system bus of a computer device. Data processing device.
JP2002168737A 2002-06-10 2002-06-10 Data processing device Pending JP2004013689A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002168737A JP2004013689A (en) 2002-06-10 2002-06-10 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002168737A JP2004013689A (en) 2002-06-10 2002-06-10 Data processing device

Publications (1)

Publication Number Publication Date
JP2004013689A true JP2004013689A (en) 2004-01-15

Family

ID=30435567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002168737A Pending JP2004013689A (en) 2002-06-10 2002-06-10 Data processing device

Country Status (1)

Country Link
JP (1) JP2004013689A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005267631A (en) * 2004-03-02 2005-09-29 Microsoft Corp System and method for moving computer displayable content into preferred user interactive focus area
JP2007537508A (en) * 2004-04-09 2007-12-20 エヌヴィディア コーポレイション Method and apparatus for routing graphics processing signals to a stand-alone module
JP2012152596A (en) * 2012-04-20 2012-08-16 Nintendo Co Ltd Communication game system
US8643657B2 (en) 2004-04-09 2014-02-04 Nvidia Corporation Field changeable rendering system for a computing device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005267631A (en) * 2004-03-02 2005-09-29 Microsoft Corp System and method for moving computer displayable content into preferred user interactive focus area
JP2007537508A (en) * 2004-04-09 2007-12-20 エヌヴィディア コーポレイション Method and apparatus for routing graphics processing signals to a stand-alone module
US8643657B2 (en) 2004-04-09 2014-02-04 Nvidia Corporation Field changeable rendering system for a computing device
JP2012152596A (en) * 2012-04-20 2012-08-16 Nintendo Co Ltd Communication game system

Similar Documents

Publication Publication Date Title
JP3546705B2 (en) Method and apparatus for associating annotation data with application window, system, and storage medium storing program for controlling association of annotation data with application window
JP3078215B2 (en) Display device
US8938487B2 (en) Method and apparatus for displaying video data from multiple source computers in a multi-monitor computer system
JP2013546043A (en) Instant remote rendering
MX2013003427A (en) Cross-environment redirection.
CN110888615A (en) Multi-input equipment interaction method, device and medium for double-screen different display of Android system
CN102053871A (en) Application program image display method and device
JPH0795314B2 (en) Peripheral device support system
JPWO2005109176A1 (en) Window display system, window display method, program development support apparatus, and server apparatus
JP2016164769A (en) Method for implementing multi-screen by distributing plural screens and sharing input interface between user apparatuses, and user apparatuses for setting up as multi-screen
WO2021128929A1 (en) Image rendering method for panorama application, and terminal device
JP3840195B2 (en) Drawing apparatus and control method thereof
TW531706B (en) Method and apparatus in a data processing system for dynamic graphics context switching
JP2004213533A (en) Screen reception device, screen delivery device, screen information transmission/reception system, screen reception method, screen delivery method and program therefor
JP2008102947A (en) Window display system, information processing system, client device, telephone set information device, household appliance and device
EP3296859A1 (en) Image output control method, image output control program, and display device
JPS6353634A (en) Display terminal equipment
JP2004013689A (en) Data processing device
JP2002055808A (en) Multidisplay system
JPH10500514A (en) Computer workstation
JPH09198227A (en) Information processing system and method and device therefor
JP3244050B2 (en) Screen sharing system, screen sharing method, and recording medium
JP2004013687A (en) Data processing device
WO1989012859A1 (en) Multi-window communication system
JP2004015631A (en) Processing module, driver program, and computer apparatus