(57)【特許請求の範囲】
【請求項１】
マルチオペレーティングシステム用の表示方法であって、
メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当てるステップと、
ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成された前記ウィンドウに対応する１つの連続的物理メモリＰＣＭサブエリアを申請するステップと、
メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当てるステップと、
ゲストオペレーティングシステムでは、新たに作成された前記ウィンドウをレンダリングするとき、レンダリングしたデータを前記ＰＣＭサブエリアに記憶するステップと、
メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、前記ＰＣＭサブエリア内のデータに応じて、前記ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示するステップと、を含むことを特徴とするマルチオペレーティングシステム用の表示方法。
【請求項２】
ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成された前記ウィンドウに対応する１つの連続的物理メモリＰＣＭサブエリアを申請する前記ステップは、
ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに共有メモリ申請を送信することを含み、
メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当てる前記ステップは、
メインオペレーティングシステムでは、共有メモリ申請を受信すると、共有メモリ管理モジュールＧｒａｌｌｏｃによって前記ゲストオペレーティングシステムに１つのＰＣＭサブエリアを割り当て、前記ＰＣＭサブエリアをテクスチャに変換し、且つ前記テクスチャのインデックス値をゲストオペレーティングシステムに返すことを含み、
レンダリングしたデータを前記ＰＣＭサブエリアに記憶する前記ステップは、
インデックス値に応じてレンダリングしたデータを前記ＰＣＭサブエリアに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、前記ＰＣＭサブエリア内のデータに応じて、前記ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングする前記ステップは、
ゲストオペレーティングシステムからの表示要求が監視されると、ゲストオペレーティングシステムのネイティブウィンドウに対応する各ＰＣＭサブエリアに応じて、前記ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングすることを含むことを特徴とする請求項２に記載の方法。
【請求項４】
マルチオペレーティングシステム用の表示装置であって、
メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当てるための第１の割り当てモジュールと、
ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成された前記ウィンドウに対応する１つの連続的物理メモリＰＣＭサブエリアを申請するための申請モジュールと、
メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当てるための第２の割り当てモジュールと、
ゲストオペレーティングシステムでは、新たに作成された前記ウィンドウをレンダリングするとき、レンダリングしたデータを前記ＰＣＭサブエリアに記憶するための記憶モジュールと、
メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、前記ＰＣＭサブエリア内のデータに応じて、前記ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示するための表示モジュールと、を含むことを特徴とするマルチオペレーティングシステム用の表示装置。
【請求項５】
前記申請モジュールは、ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに共有メモリ申請を送信し、
前記第２の割り当てモジュールは、メインオペレーティングシステムでは、共有メモリ申請を受信すると、共有メモリ管理モジュールＧｒａｌｌｏｃによって前記ゲストオペレーティングシステムに１つのＰＣＭサブエリアを割り当て、前記ＰＣＭサブエリアをテクスチャに変換し、且つ前記テクスチャのインデックス値をゲストオペレーティングシステムに返し、
前記記憶モジュールは、インデックス値に応じてレンダリングしたデータを前記ＰＣＭサブエリアに記憶することを特徴とする請求項４に記載の装置。
【請求項６】
前記表示モジュールは、ゲストオペレーティングシステムからの表示要求が監視されると、ゲストオペレーティングシステムのネイティブウィンドウに対応する各ＰＣＭサブエリアに応じて、前記ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングすることを特徴とする請求項５に記載の装置。
【請求項７】
電子設備であって、
通信バスを介してプロセッサに接続されるストレージと、
ストレージ内の命令を実行させる１つ又は複数のプロセッサと、を含み、
前記命令は、前記ストレージに記憶された、請求項１から請求項３のいずれか一項に記載の方法の各ステップを実行させるための命令である、ことを特徴とする電子設備。
【請求項８】
電子設備と組み合わせて使用されるコンピュータプログラムであって、
コンピュータ可読記憶媒体に埋め込まれ、前記電子設備に請求項１から請求項３のいずれか一項に記載の方法の各ステップを実行させるための命令を含むコンピュータプログラムを含む電子設備と組み合わせて使用されるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、仮想化技術の分野に関し、特に、マルチオペレーティングシステム用の表示方法、装置及び電子設備に関する。
【背景技術】
【０００２】
モバイル仮想化（例えば図１に示される仮想化モデル）技術は、Ｈｙｐｅｒｖｉｓｏｒ（ハイパーバイザ）を使って下層ハードウェアで安全に独立したソフトウェア実行環境を構築することで、端末上で複数の仮想マシンを同時に実行できる。モバイル仮想化により、ユーザーは複数の端末を携帯せずに単一の端末上で複数の仮想マシンにアクセスすることができる。端末ハードウェアが１つしかないが、仮想マシンが複数存在する可能性があるため、複数の仮想マシンのウィンドウをどのように効率的且つ円滑に表示するかということは、ユーザー体験に影響を及ぼす重要な問題となる。
【０００３】
現在、ＱＥＭＵ（アナログプロセッサ）によって仮想マシンが表示するウィンドウをメインオペレーティングシステムに複製し、メインオペレーティングシステムがＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）によって該ウィンドウのコンテンツをＦｒａｍｅＢｕｆｆｅｒ（フレームバッファ）に直接書き込むことで、該ウィンドウを表示することが一般的な方法である。
【０００４】
この方法では、データ複製プロセスがあり、複製プロセスにおけるデータ伝送速度は表示効率に深刻な影響を及ぼすため、製品化の要件を満たすことができない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願の実施例は、主に表示効率を向上させるために、マルチオペレーティングシステム用の表示方法、装置及び電子設備を提供する。
【課題を解決するための手段】
【０００６】
第１の態様によれば、本願の実施例は、
メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当てるステップと、
ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成された前記ウィンドウに対応する１つの連続的物理メモリＰＣＭサブエリアを申請するステップと、
メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当てるステップと、
ゲストオペレーティングシステムでは、新たに作成された前記ウィンドウをレンダリングするとき、レンダリングしたデータを前記ＰＣＭサブエリアに記憶するステップと、
メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、前記ＰＣＭサブエリア内のデータに応じて、前記ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示するステップと、を含むマルチオペレーティングシステム用の表示方法を提供する。
【０００７】
第２の態様によれば、本願の実施例は、
メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当てるための第１の割り当てモジュールと、
ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成された前記ウィンドウに対応する１つの連続的物理メモリＰＣＭサブエリアを申請するための申請モジュールと、
メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当てるための第２の割り当てモジュールと、
ゲストオペレーティングシステムでは、新たに作成された前記ウィンドウをレンダリングするとき、レンダリングしたデータを前記ＰＣＭサブエリアに記憶するための記憶モジュールと、
メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、前記ＰＣＭサブエリア内のデータに応じて、前記ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示するための表示モジュールと、を含むマルチオペレーティングシステム用の表示装置を提供する。
【０００８】
第３の態様によれば、本願の実施例は、
通信バスを介してプロセッサに接続されるストレージと、
ストレージ内の命令を実行するように配置される１つ又は複数のプロセッサと、を含み、
記憶媒体に第１の態様に記載の方法の各ステップを実行するための命令が記憶されている電子設備を提供する。
【０００９】
第４の態様によれば、本願の実施例は、
コンピュータ可読記憶媒体に埋め込まれ、前記電子設備に第１の態様に記載の方法の各ステップを実行させるための命令を含むコンピュータプログラムを含む電子設備と組み合わせて使用されるコンピュータプログラム製品を提供する。
【発明の効果】
【００１０】
本願の実施例は、メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成されたウィンドウに対応する１つのＰＣＭサブエリアを申請し、メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当て、ゲストオペレーティングシステムでは、新たに作成されたウィンドウをレンダリングするとき、レンダリングしたデータをＰＣＭサブエリアに記憶し、メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、ＰＣＭサブエリア内のデータに応じて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示し、表示効率を向上させる。
【図面の簡単な説明】
【００１１】
以下、図面を参照しながら本願の具体的な実施例を説明する。
【図１】本願の実施例における既存の仮想化モデルの構造概略図である。
【図２】本願の実施例におけるマルチオペレーティングシステム用の表示を適用するシステムの構造概略図である。
【図３】本願の実施例におけるマルチオペレーティングシステム用の表示方法のフローチャートである。
【図４】本願の実施例における別のマルチオペレーティングシステム用の表示装置の構造概略図である。
【図５】本願の実施例におけるマルチオペレーティングシステム用の表示構造の概略図である。
【発明を実施するための形態】
【００１２】
本願の技術的解決手段及び利点をより明らかにするために、以下では図面を参照しながら本願の例示的な実施例についてさらに詳細に説明するが、説明される実施例は本願の一部の実施例だけであり、すべての実施例ではないことは明らかである。且つ矛盾しない状況において、本願における実施例及び実施例における特徴は相互に組み合わせることができる。
【００１３】
出願する際に、出願人は、以下のことを発見した。
既存の表示方法は、ＱＥＭＵによって仮想マシンが表示するウィンドウデータをメインオペレーティングシステムに複製し、メインオペレーティングシステムがＣＰＵによって該ウィンドウデータをＦｒａｍｅＢｕｆｆｅｒに直接書き込むことである。該方法のデータ複製プロセスにおけるデータ伝送速度が表示効率に深刻な影響を及ぼすため、該方法は製品化の要件を満たすことができない。
【００１４】
これに鑑みて、本願は、マルチオペレーティングシステム用の表示方法を提供し、該方法は、メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成されたウィンドウに対応する１つのＰＣＭサブエリアを申請し、メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当て、ゲストオペレーティングシステムでは、新たに作成されたウィンドウをレンダリングするとき、レンダリングしたデータをＰＣＭサブエリアに記憶し、メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、ＰＣＭサブエリア内のデータに応じて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示し、表示効率を向上させる。
【００１５】
本願が提供するマルチオペレーティングシステム用の表示方法は、図２に示されるシステムに適用され、該システムは、複数のゲストオペレーティングシステム２０１と、１つのメインオペレーティングシステム２０２と、を含む。メインオペレーティングシステム２０２は、１つのＰＣＭ（Ｐｈｙｓｉｃａｌ  Ｃｏｎｔｉｎｕｏｕｓ  Ｍｅｍｏｒｙ  Ａｌｌｏｃａｔｏｒ、連続的物理メモリ）２０２６を含む。このほか、メインオペレーティングシステム２０２は、例えば最終的な表示設備であるＦｒａｍｅＢｕｆｆｅｒ、すべての画像レンダリング及び合成操作を担当するＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、画像処理装置）のような表示関連設備をさらに含む。
【００１６】
ＰＣＭ２０２６は、すべてのゲストオペレーティングシステム２０１及びメインオペレーティングシステム２０２により共有され、各ゲストオペレーティングシステム２０１は、いずれもデータをＰＣＭ２０２６に書き込むことができ、メインオペレーティングシステム２０２は、ＰＣＭ２０２６からデータを読み取ることができる。
【００１７】
ゲストオペレーティングシステム２０１が本物のハードウェア設備を持たないため、本表示システムは、表示関連設備の仮想化を実現することができる。
【００１８】
図２に示すように、
１）各ゲストオペレーティングシステム２０１は、メインオペレーティングシステム２０２内の１つのネイティブウィンドウに対応し、各ゲストオペレーティングシステム２０１は、１つの仮想化されたＰＣＭＡ（Ｐｈｙｓｉｃａｌ  Ｃｏｎｔｉｎｕｏｕｓ  Ｍｅｍｏｒｙ  Ａｌｌｏｃａｔｏｒ、連続的物理メモリアロケータ）―ｖＰＣＭＡ２０１１と、１つの仮想化されたＧＰＵ―ｖＧＰＵ２０１２と、を含む。
【００１９】
このほか、各ゲストオペレーティングシステム２０１は、１つの表示システムＧｕｅｓｔ  Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍ２０１３をさらに含み、該Ｇｕｅｓｔ  Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍ２０１３は、一般的に、ゲストオペレーティングシステム２０１自らによって実現され、例えば、ゲストオペレーティングシステム２０１のオペレーティングシステムがＡｎｄｒｏｉｄシステムであれば、ｓｕｒｆａｃｅｆｌｉｎｇｅｒはＧｕｅｓｔ  Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍ２０１３である。
【００２０】
また、ゲストオペレーティングシステム２０１には、Ｆｒｏｎｔ−Ｅｎｄ（フロントエンド）ドライバがインストールされている。
【００２１】
２）メインオペレーティングシステム２０２は、１つの仮想化されたＰＣＭＡ―ｖＰＣＭＡ２０２１と、１つの仮想化されたＧＰＵ―ｖＧＰＵ２０２２と、を含む。
【００２２】
このほか、メインオペレーティングシステム２０２は、１つの表示システムＨｏｓｔ  Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍ２０２３をさらに含む。
【００２３】
また、メインオペレーティングシステム２０２には、Ｂａｃｋ−Ｅｎｄ（バックエンド）ドライバがインストールされている。且つメインオペレーティングシステム２０２は、メインオペレーティングシステムでＧｕｅｓｔ  Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍサービスを実現するサーバＧｕｅｓｔ  Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍ  Ｓｅｒｖｅｒ２０２４をさらに含む。
【００２４】
なお、メインオペレーティングシステム２０２は、例えばＰＣＭ２０２６内の１つのＰＣＭサブエリア（物理アドレスが連続するメモリ空間）を申請してｖｉｄｅｏ及びｃａｍｅｒａなどのＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ、ダイレクトメモリアクセス）設備の使用に備えるようにＰＣＭ２０２６を管理できるＰＣＭＡ２０２５をさらに含む。
【００２５】
３）ゲストオペレーティングシステム２０１は、Ｆｒｏｎｔ−ＥｎｄドライバとＢａｃｋ−Ｅｎｄドライバとの間のデータ対話に基づいてメインオペレーティングシステム２０２との通信を実現する。
【００２６】
例えば、ゲストオペレーティングシステム２０１は、Ｆｒｏｎｔ−ＥｎｄドライバとＢａｃｋ−Ｅｎｄドライバとの間の通信によってＰＣＭ２０２６を共有する。
【００２７】
図２に示される表示システムは、図３に示すように、本願が提供するマルチオペレーティングシステム用の表示方法によってウィンドウの一般的なフローを表示する。
【００２８】
３０１、メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当てる。
【００２９】
３０２、ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成されたウィンドウに対応する１つのＰＣＭサブエリアを申請する。
【００３０】
具体的には、ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに共有メモリ申請を送信する。例えば、いずれかのゲストオペレーティングシステム２０１では、ウィンドウを新たに作成し、メインオペレーティングシステム２０２に新たに作成されたウィンドウに対応する１つのＰＣＭサブエリアを申請する。
【００３１】
本ステップは、いずれかのゲストオペレーティングシステム２０１がｖＰＣＭＡ２０１１及びフロントエンドドライバとバックエンドドライバとの間の通信によって、メインオペレーティングシステム２０２内のｖＰＣＭＡ２０２１を経て、ＰＣＭＡ２０２５にＰＣＭサブエリア申請を送信し、ＰＣＭＡ２０２５が申請により、ＰＣＭ２０２６において１つのサブエリアを割り当てるという形態で実現されてもよい。
【００３２】
３０３、メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当てる。
【００３３】
具体的には、メインオペレーティングシステムでは、共有メモリ申請を受信すると、Ｇｒａｌｌｏｃ（共有メモリ管理モジュール）によってゲストオペレーティングシステムに１つのＰＣＭサブエリアを割り当て、ＰＣＭサブエリアをテクスチャに変換し、且つテクスチャのインデックス値をゲストオペレーティングシステムに返す。
【００３４】
３０４、ゲストオペレーティングシステムでは、新たに作成されたウィンドウをレンダリングするとき、レンダリングしたデータをＰＣＭサブエリアに記憶する。
【００３５】
具体的に実現する際に、インデックス値に応じてレンダリングしたデータをＰＣＭサブエリアに記憶する。
【００３６】
ＰＣＭ２０２６は、すべてのゲストオペレーティングシステム２０１及びメインオペレーティングシステム２０２により共有され、各ゲストオペレーティングシステム２０１は、いずれもデータをＰＣＭ２０２６に書き込むことができ、メインオペレーティングシステム２０２は、ＰＣＭ２０２６からデータを読み取ることができる。したがって、いずれかのゲストオペレーティングシステム２０１は、レンダリングしたデータをＰＣＭサブエリアに記憶することができる。
【００３７】
例えば、いずれかのゲストオペレーティングシステム２０１は、ｖＰＣＭＡ２０１１及びフロントエンドドライバとバックエンドドライバとの間の通信によって、メインオペレーティングシステム２０２内のｖＰＣＭＡ２０２１を経て、最終的にＰＣＭＡ２０２５によりレンダリングしたデータをＰＣＭサブエリアディスクリプタに対応するＰＣＭサブエリアに記憶する。
【００３８】
３０５、メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、ＰＣＭサブエリア内のデータに応じて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示する。
【００３９】
ここで、ゲストオペレーティングシステムからの表示要求が監視されることを実現するための形態は種々ある。例えば、いずれかのゲストオペレーティングシステム２０１がメインオペレーティングシステム２０２にウィンドウ表示指示を送信することが監視されると、ゲストオペレーティングシステムからの表示要求が監視されると確定する。
【００４０】
該ネイティブウィンドウを表示することは種々の形態で実現できる。例えば、該ネイティブウィンドウを一番上に置く。
【００４１】
ステップ３０１〜ステップ３０５によってネイティブウィンドウを一番上に置くという形態でゲストオペレーティングシステムのウィンドウ表示を実現でき、データ複製に起因する表示効率の低下を回避する。
【００４２】
本提案が提供する表示方法の利点をより明確に説明するために、以下、ゲストオペレーティングシステム２０１をＧｕｅｓｔ側とし、メインオペレーティングシステム２０２をＨｏｓｔ側とすることを例として、従来技術の表示方法と本願が提供する表示方法とを比較する。
【００４３】
一、従来技術の表示方法
従来技術では、各Ｇｕｅｓｔ側はそれぞれのＷｉｎｄｏｗ（ウィンドウ）を作成した後、多層ＷｉｎｄｏｗをＦｒａｍｅＢｕｆｆｅｒに重ね合わせて表示することでＧｕｅｓｔ側のウィンドウ表示を実現する。具体的には以下のとおりである。
１）Ｇｕｅｓｔ側は１つのＷｉｎｄｏｗを作成し、Ｇｕｅｓｔ側のＶＭＡ（Ｖｉｒｔｕａｌ  Ｍｅｍｏｒｙ  Ａｌｌｏｃａｔｅｒ、仮想メモリアロケータ）によってＧｕｅｓｔ側で必要なサイズのメモリエリアを１つ申請し、同時にＨｏｓｔ側のＧｕｅｓｔ  Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍ  ＳｅｒｖｅｒでＨｏｓｔ側のＶＭＡを呼び出して必要なサイズのメモリエリアを１つ申請し、該メモリエリアは、通常のメモリエリアであり、すなわち物理アドレスが連続しないメモリエリアである。
２）Ｇｕｅｓｔ側は該Ｗｉｎｄｏｗでコンテンツを埋め、Ｇｕｅｓｔ側のＦｒｏｎｔ−Ｅｎｄドライバ及びＨｏｓｔ側のＢａｃｋ−ＥｎｄドライバによってコンテンツデータをＨｏｓｔ側のＧｕｅｓｔ  Ｄｉｓｐｌａｙ  Ｓｙｓｔｅｍ  Ｓｅｒｖｅｒ内に伝送し、そして該データを該ＷｉｎｄｏｗにＨｏｓｔ側で対応するメモリエリア内にレンダリングし、ここで、レンダリングしたデータフォーマットがいずれもＲＧＢＡである。
３）必要に応じてＧｕｅｓｔ側で１）及び２）の操作を順次繰り返す。
４）Ｇｕｅｓｔ側がすべてのＷｉｎｄｏｗを重ね合わせて表示するとき、ｖＧＰＵによってＨｏｓｔ側を呼び出して各Ｗｉｎｄｏｗに対応するメモリエリアを１つのＯｆｆ−ＳｃｒｅｅｎのＦｒａｍｅＢｕｆｆｅｒに順次レンダリングし、そしてこのＦｒａｍｅＢｕｆｆｅｒ内のデータを１つの一時メモリにコピーし、次に該メモリ内のデータを本物のＦｒａｍｅＢｕｆｆｅｒにコピーして表示する。
ここまでは、Ｇｕｅｓｔ側のウィンドウ表示を１回完了する。
【００４４】
二、本願が提供する表示方法
本願が提供する表示方法は、各Ｇｕｅｓｔ側の表示ウィンドウをすべてＨｏｓｔ側に収めて一括管理でき、あるＧｕｅｓｔ側に切り替える際に、Ｈｏｓｔ側は該Ｇｕｅｓｔ側のウィンドウに対応するＨｏｓｔ側のネイティブウィンドウ（Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ）を一番上のウィンドウとして設置し、これにより複数のＧｕｅｓｔ側のウィンドウ切り替えを迅速に実現できる。具体的には以下のとおりである。
１）Ｇｕｅｓｔ側内で、各層のウィンドウはＨｏｓｔ側の１つのＰＣＭサブエリアに対応し、すなわち、Ｇｕｅｓｔ側で１つのＷｉｎｄｏｗを作成するごとに、Ｈｏｓｔ側でＰＣＭＡにより１つのＰＣＭサブエリアを申請し、Ｇｕｅｓｔ側がこのＷｉｎｄｏｗをレンダリングする際に、実際にはＨｏｓｔ側のこのＰＣＭサブエリア内でレンダリングし、レンダリングしたデータはこのＰＣＭサブエリアに記憶される。
２）多層ウィンドウを重ね合わせてレンダリングして表示するとき、Ｈｏｓｔ側は対応して各Ｇｕｅｓｔ側のＷｉｎｄｏｗに対応するＰＣＭサブエリア内のデータを本システムの各Ｇｕｅｓｔシステムに対応するＮａｔｉｖｅ  Ｗｉｎｄｏｗに重ね合わせてレンダリングし、これらのＮａｔｉｖｅ  ＷｉｎｄｏｗはまたＨｏｓｔシステムの表示管理システムに本物の表示設備に順次重ね合わせてレンダリングされる。ここで、ＰＣＭサブエリアはＧｕｅｓｔ側の各Ｗｉｎｄｏｗに１対１で対応し、Ｎａｔｉｖｅ  ＷｉｎｄｏｗはＧｕｅｓｔシステムに１対１で対応する。すなわち、各Ｎａｔｉｖｅ  Ｗｉｎｄｏｗ内の表示コンテンツは、いずれも対応するＧｕｅｓｔ側のすべてのＷｉｎｄｏｗを重ね合わせて表示するコンテンツである。
３）あるＮａｔｉｖｅ  Ｗｉｎｄｏｗが一番上に置かれると、Ｈｏｓｔ側の表示システムは該Ｎａｔｉｖｅ  Ｗｉｎｄｏｗを表示し、すなわち該Ｎａｔｉｖｅ  Ｗｉｎｄｏｗに対応するＧｕｅｓｔ側のデスクトップを表示する。
ここまでは、Ｇｕｅｓｔ側のウィンドウ表示を１回完了する。
【００４５】
上記従来技術の表示方法と本願が提供する表示方法とを比較することにより、本解決策が提供する表示方法において、Ｇｕｅｓｔ側がＰＣＭの申請及びＰＣＭエリアへのデータ書き込みなどの操作をサポートし、且つＧｕｅｓｔ側及びＨｏｓｔ側がこのメモリを共有でき、このようにして、ＤＭＡ設備に対する物理アドレスが連続するメモリの申請及び管理をサポートでき、またＧｕｅｓｔ側及びＨｏｓｔ側でデータを複製することに起因する時間消費を節約することができる。
【００４６】
また、Ｈｏｓｔ側でＮａｔｉｖｅ  Ｗｉｎｄｏｗを追加することにより、ＣＰＵの介入なしでＧＰＵによってレンダリングしたデータをＦｒａｍｅＢｕｆｆｅｒに直接書き込むことができ、従来技術では、レンダリングした後にまずＣＰＵによってデータをメモリに複製し、さらにメモリからＣＰＵによってＦｒａｍｅＢｕｆｆｅｒに書き込むため、本解決策が提供する表示方法は表示効率を大幅に向上できる。
【００４７】
なお、１つのＧｕｅｓｔ側の表示デスクトップが１つのＮａｔｉｖｅ  Ｗｉｎｄｏｗに対応するため、複数のＧｕｅｓｔ側の各デスクトップを切り替えて表示する場合、あるＧｕｅｓｔ側のデスクトップに対応するＮａｔｉｖｅ  Ｗｉｎｄｏｗを一番上に設置すればよい。このようにしてＧｕｅｓｔ側のウィンドウ間の切り替えを効率的、柔軟、円滑に実現でき、また複数のＧｕｅｓｔ側のウィンドウ表示を良好に管理できる。
【００４８】
有益な効果は以下のとおりである。
本願の実施例は、メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成されたウィンドウに対応する１つのＰＣＭサブエリアを申請し、メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当て、ゲストオペレーティングシステムでは、新たに作成されたウィンドウをレンダリングするとき、レンダリングしたデータをＰＣＭサブエリアに記憶し、メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、ＰＣＭサブエリア内のデータに応じて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示し、表示効率を向上させる。
【００４９】
同じ発明思想に基づき、本実施例は、マルチオペレーティングシステム用の表示装置を提供し、該マルチオペレーティングシステム用の表示装置が課題を解決する原理は、マルチオペレーティングシステム用の表示方法と類似するため、該マルチオペレーティングシステム用の表示装置の実施はマルチオペレーティングシステム用の表示方法を参照でき、重複する説明は省略する。
【００５０】
図４に示すように、該マルチオペレーティングシステム用の表示装置は、
メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当てるための第１の割り当てモジュール４０１と、
ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成されたウィンドウに対応する１つの連続的物理メモリＰＣＭサブエリアを申請するための申請モジュール４０２と、
メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当てるための第２の割り当てモジュール４０３と、
ゲストオペレーティングシステムでは、新たに作成されたウィンドウをレンダリングするとき、レンダリングしたデータをＰＣＭサブエリアに記憶するための記憶モジュール４０４と、
メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、ＰＣＭサブエリア内のデータに応じて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示するための表示モジュール４０５と、を含む。
【００５１】
選択的に、申請モジュール４０２は、ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに共有メモリ申請を送信し、
第２の割り当てモジュール４０３は、メインオペレーティングシステムでは、共有メモリ申請を受信すると、共有メモリ管理モジュールＧｒａｌｌｏｃによってゲストオペレーティングシステムに１つのＰＣＭサブエリアを割り当て、ＰＣＭサブエリアをテクスチャに変換し、且つテクスチャのインデックス値をゲストオペレーティングシステムに返し、
記憶モジュール４０４は、インデックス値に応じてレンダリングしたデータをＰＣＭサブエリアに記憶する。
【００５２】
選択的に、表示モジュール４０５は、ゲストオペレーティングシステムからの表示要求が監視されると、ゲストオペレーティングシステムのネイティブウィンドウに対応する各ＰＣＭサブエリアに応じて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングする。
【００５３】
有益な効果は以下のとおりである。
本願の実施例は、メインオペレーティングシステムでは、各ゲストオペレーティングシステムに１つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムでは、ウィンドウを新たに作成するとき、メインオペレーティングシステムに新たに作成されたウィンドウに対応する１つのＰＣＭサブエリアを申請し、メインオペレーティングシステムでは、ゲストオペレーティングシステムにＰＣＭサブエリアを割り当て、ゲストオペレーティングシステムでは、新たに作成されたウィンドウをレンダリングするとき、レンダリングしたデータをＰＣＭサブエリアに記憶し、メインオペレーティングシステムでは、ゲストオペレーティングシステムからの表示要求が監視されると、ＰＣＭサブエリア内のデータに応じて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、且つ該ネイティブウィンドウを表示し、表示効率を向上させる。
【００５４】
さらに他の態様によれば、本願の実施例は、電子設備をさらに提供し、図５に示すように、電子設備は、通信バスを介してプロセッサに接続されるストレージ５０１と、ストレージ内の命令を実行するように配置される１つ又は複数のプロセッサ５０２と、を含み、記憶媒体に上記のいずれか１つに記載のマルチオペレーティングシステム用の表示方法における各ステップを実行するための命令が記憶されている。
【００５５】
さらに他の態様によれば、本願の実施例は、コンピュータ可読記憶媒体に埋め込まれ、前記電子設備に上記のいずれか１つに記載のマルチオペレーティングシステム用の表示方法における各ステップを実行させるための命令を含むコンピュータプログラムを含む電子設備と組み合わせて使用されるコンピュータプログラム製品をさらに提供する。
【００５６】
当業者であれば、本願の実施例は方法、システム、又はコンピュータプログラム製品で提供可能であることが分かろう。したがって、本願は、完全なハードウェアによる実施例、完全なソフトウェアによる実施例、又はソフトウェアとハードウェアの組み合わせによる実施例の形態を採用することができる。さらに、本願は、コンピュータで使用可能なプログラムコードが含まれる１つ又は複数のコンピュータ使用可能な記憶媒体（磁気ディスクストレージ、ＣＤ−ＲＯＭ、光メモリなどを含むが、これらに限られない）で実行されるコンピュータプログラム製品の形態を採用することができる。
【００５７】
本願は、本願の実施例に係る方法、設備（システム）、及びコンピュータプログラム製品のフローチャート及び／又はブロック図を参照しながら説明した。コンピュータプログラム命令により、フローチャート及び／又はブロック図における各フロー及び／又はブロック、及びフローチャート及び／又はブロック図におけるフロー及び／又はブロックの組み合わせを実現できることを理解されたい。これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、組込式プロセッサ、又は他のプログラマブルなデータ処理設備のプロセッサに提供することにより機器を作製し、コンピュータ又は他のプログラマブルなデータ処理設備のプロセッサで実行する命令により、フローチャートの１つのフロー又は複数のフロー及び／又はブロック図の１つのブロック又は複数のブロックで指定された機能を実現するための装置を作製する。
【００５８】
これらのコンピュータプログラム命令は、コンピュータ又は他のプログラマブルなデータ処理設備に特定の方式で動作するよう指示できるコンピュータ可読ストレージに記憶してもよく、それにより該コンピュータ可読ストレージに記憶された命令により命令装置を含む製造品を作製し、該命令装置は、フローチャートの１つのフロー又は複数のフロー及び／又はブロック図の１つのブロック又は複数のブロックで指定された機能を実現する。
【００５９】
これらのコンピュータプログラム命令をコンピュータ又は他のプログラマブルなデータ処理設備にインストールしてもよく、それによりコンピュータ又は他のプログラマブルな設備で一連の操作ステップを実行することによりコンピュータで実現する処理を生成し、さらにコンピュータ又は他のプログラマブルな設備で実行する命令により、フローチャートの１つのフロー又は複数のフロー及び／又はブロック図の１つのブロック又は複数のブロックで指定された機能を実現するステップを提供する。
【００６０】
以上、本願の好適な実施例を詳述したが、当業者であれば本願の基本的な概念が分かると、これらの実施例に対して他の変更及び修正を行うことができる。したがって、添付した請求項は好適な実施例及び本願の範囲に属するすべての変更及び修正を包含するように解釈されるように意図されている。
【図１】
0006846537.tif 000002
【図２】
0006846537.tif 000003
【図３】
0006846537.tif 000004
【図４】
0006846537.tif 000005
【図５】
0006846537.tif 000006