(57)【要約】【課題】複数のＯＳ用仮想マシンを動作させる仮想化プラットフォーム技術において、デバイスを利用する際の利便性を向上させることが可能な情報処理装置及び制御方法を提供する。【解決手段】第１オペレーティングシステムを実行する第１仮想マシンと、第２オペレーティングシステムを実行する第２仮想マシンとを備え、第１仮想マシンと第２仮想マシンとの一方をユーザによって操作可能なアクティブ状態に設定する情報処理装置であって、第１仮想マシンは、第１オペレーティングシステム上のみで動作するデバイスの認識処理を実行する第１デバイス制御部を備え、新たにデバイスが接続された際に、デバイスの接続信号を検知するデバイス検知部と、接続信号が検知された際、第２仮想マシンがアクティブ状態であっても、第１仮想マシンをアクティブ状態に設定する設定部と、接続信号に基づいて、第１デバイス制御部を起動するデバイス管理部とを備える。【選択図】図９
2008269177.tif 000002
【特許請求の範囲】
【請求項１】
第１オペレーティングシステムを実行する第１仮想マシンと、第２オペレーティングシステムを実行する第２仮想マシンとを備え、前記第１仮想マシンと前記第２仮想マシンとのいずれか一方をユーザによって操作可能なアクティブ状態に設定する情報処理装置であって、
前記第１仮想マシンは、前記第１オペレーティングシステム上のみで動作するデバイスの認識処理を実行する第１デバイス制御部を備え、
ユーザによって新たに前記デバイスが接続された際に、前記デバイスの接続信号を検知するデバイス検知部と、
前記接続信号が検知された場合、前記第２仮想マシンが前記アクティブ状態であっても、前記第１仮想マシンをアクティブ状態に設定する設定部と、
検知された前記デバイスの前記接続信号に基づいて、前記第１デバイス制御部を起動するデバイス管理部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記デバイスは、前記第1オペレーティングシステム上のみで動作するヒューマンインターフェースデバイスであり、
前記ヒューマンインターフェースデバイスを切り替えた際に、切替信号を検知するヒューマンインターフェースデバイス切替部を更に備え、
前記設定部は、前記切替信号が検知された際、前記第２仮想マシンが前記アクティブ状態であっても、前記第１仮想マシンをアクティブ状態に設定し、
前記デバイス管理部は、検知された前記切替信号に基づいて、前記第１デバイス制御部を起動する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２仮想マシンは、前記第２オペレーティングシステム上のみで動作するデバイスの認識処理を実行する第２デバイス制御部を備え、
前記デバイスは、前記第１仮想マシン又は前記第２仮想マシンの内、前記アクティブ状態のいずれか一方で実行される前記第１オペレーティングシステム上又は第２オペレーティングシステム上で動作する連動デバイスであり、
前記デバイス検知部は、前記連動デバイスが接続された際に、前記連動デバイスの前記接続信号を検知し、
前記デバイス管理部は、前記接続信号に基づいて、前記第１仮想マシン又は前記第２仮想マシンの内、前記アクティブ状態のいずれか一方に備えられている前記第1デバイス制御部又は前記第２デバイス制御部を起動する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記デバイスは、前記第１オペレーティングシステム上と第２オペレーティングシステム上との両方で動作する非連動デバイスであり、
前記デバイス検知部は、前記非連動デバイスが接続された際に、前記非連動デバイスの前記接続信号を検知し、
前記デバイス管理部は、前記接続信号に基づいて、前記第1デバイス制御部と前記第２デバイス制御部を起動する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第１仮想マシンと前記非連動デバイスとの間で送受信される第１データと、前記第２仮想マシンと前記非連動デバイスとの間で送受信される第２データとを、ダイレクトメモリアクセス方式によって転送するアクセス制御部を更に備え、
前記アクセス制御部は、前記第１仮想マシンが前記アクティブ状態である場合、前記第２データの転送比率よりも、前記第１データの転送比率を大きくする
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
第１オペレーティングシステムを実行する第１仮想マシンと、第２オペレーティングシステムを実行する第２仮想マシンとを備え、前記第１仮想マシンと前記第２仮想マシンとのいずれか一方をユーザによって操作可能なアクティブ状態に設定する情報処理装置における制御方法であって、
前記第１仮想マシンは、前記第１オペレーティングシステム上のみで動作するデバイスの認識処理を実行する第１デバイス制御部を備え、
ユーザによって新たに前記デバイスが接続された際に、前記デバイスの接続信号を検知する検知ステップと、
前記接続信号が検知された際、前記第２仮想マシンが前記アクティブ状態であっても、前記第１仮想マシンをアクティブ状態に設定する設定ステップと、
検知された前記接続信号に基づいて、前記第１デバイス制御部を起動する起動ステップと
を含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１オペレーティングシステムを実行する第１仮想マシンと、第２オペレーティングシステムを実行する第２仮想マシンとを備え、第１仮想マシンと第２仮想マシンとのいずれか一方をユーザによって操作可能なアクティブ状態に設定する情報処理装置及び制御方法に関する。
【背景技術】
【０００２】
従来、ＰＣや携帯電話等の情報処理装置において、複数のオペレーティングシステム（以下、ＯＳ）を実行する仮想化プラットフォーム技術が提案されている。かかる技術を適用した情報処理装置では、論理的に分割されたＯＳ用仮想マシンが複数設けられており、これらＯＳ用仮想マシンが、それぞれが別々のＯＳを実行することによって、仮想的に複数のＯＳを実行することができる。
【０００３】
また、近年では、上述する情報処理装置と接続するデバイス（周辺機器）を複数のＯＳ仮想マシンで使用することが可能な仮想化プラットフォーム技術が提案されている（例えば、特許文献１参照）。かかる技術を適用した情報処理装置では、デバイスドライバとして認識処理を実行するデバイス制御部が、それぞれのＯＳ用仮想マシンに備えられている。また、ユーザによって新たなデバイスが接続された場合、アクティブ状態の一のＯＳ用仮想マシンが、このデバイスの認識処理を実行する。
【特許文献１】US Patent No：US6,496,847B1 「SYSTEM AND METHOD FOR VIRTUALZING COMPUTER SYSTEMS」
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した情報処理装置では、デバイスの認識処理を、アクティブ状態の一のＯＳ用仮想マシンのみが実行する。
【０００５】
よって、新たに接続するデバイスが、例えば、特定のＯＳ専用のデバイスであった場合、当該特定のＯＳを実行する仮想マシンがアクティブ状態でないと、デバイスとの認識処理が実行されない。つまり、ユーザは、上述した情報処理装置にデバイスを接続して使用する際、接続するデバイスが何れのＯＳ用仮想マシンであれば認識処理が実行されるか否かについて、デバイスを接続する前に知っておく必要がある。このように、上述した情報処理装置では、様々なデバイスを使用するユーザにとって、非常に利便性が悪いという問題があった。
【０００６】
そこで、本発明は、上述した問題に鑑みてなされたものであり、複数のＯＳ用仮想マシンを動作させる仮想化プラットフォーム技術において、デバイスを利用する際の利便性を向上させることが可能な情報処理装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の特徴は、第１オペレーティングシステムを実行する第１仮想マシン（第１ＯＳ用仮想マシン１１０）と、第２オペレーティングシステムを実行する第２仮想マシン（第２ＯＳ用仮想マシン１２０）とを備え、前記第１仮想マシンと前記第２仮想マシンとのいずれか一方をユーザによって操作可能なアクティブ状態に設定する情報処理装置であって、前記第１仮想マシンは、前記第１オペレーティングシステム上のみで動作するデバイスの認識処理を実行する第１デバイス制御部（仮想デバイス制御部１１１）を備え、ユーザによって新たに前記デバイスが接続された際に、前記デバイスの接続信号を検知するデバイス検知部（デバイス検知部１０２）と、前記接続信号が検知された場合、前記第２仮想マシンが前記アクティブ状態であっても、前記第１仮想マシンをアクティブ状態に設定する設定部（アクティブＯＳ設定部１０６）と、検知された前記デバイスの前記接続信号に基づいて、前記第１デバイス制御部を起動するデバイス管理部（デバイス管理部１０４）とを備えることを要旨とするものである。
【０００８】
かかる特徴によれば、情報処理装置は、第１オペレーティングシステム上のみで動作するデバイスが新たに接続された場合、第２仮想マシンがアクティブ状態であっても、第１仮想マシンがアクティブ状態に設定されると共に、接続されたデバイスの認識処理を実行する第１デバイス制御部が起動する。よって、かかる情報処理装置では、従来技術のように、アクティブ状態の仮想マシン用のデバイスのみに対して認識処理を実行するのではなく、非アクティブ状態の仮想マシン用のデバイスに対しても認識処理を実行し、かつ非アクティブ状態の仮想マシンをアクティブ状態に設定することができる。このように、かかる特徴によれば、複数の仮想マシン（ＯＳ用仮想マシン）を動作させる仮想化プラットフォーム技術において、デバイスを利用する際の利便性を向上させることができる。
【０００９】
本発明の第２の特徴は、第１の特徴に係り、前記デバイスは、前記第1オペレーティングシステム上のみで動作するヒューマンインターフェースデバイスであり、前記ヒューマンインターフェースデバイスを切り替えた際に、切替信号を検知するヒューマンインターフェースデバイス切替部（ヒューマンインターフェースデバイス切替部１３２）を更に備え、前記設定部は、前記切替信号が検知された際、前記第２仮想マシンが前記アクティブ状態であっても、前記第１仮想マシンをアクティブ状態に設定し、前記デバイス管理部は、検知された前記切替信号に基づいて、前記第１デバイス制御部を起動することを要旨とするものである。かかる特徴によれば、情報処理装置では、一の仮想マシンで動作するヒューマンインターフェースを切り替える際においても、非アクティブ状態の仮想マシン用のヒューマンインターフェースの認識処理を実行するので、利便性を向上させることができる。
【００１０】
本発明の第３の特徴は、第１の特徴に係り、前記第２仮想マシンは、前記第２オペレーティングシステム上のみで動作するデバイスの認識処理を実行する第２デバイス制御部（仮想デバイス制御部１２１）を備え、前記デバイスは、前記第１仮想マシン又は前記第２仮想マシンの内、前記アクティブ状態のいずれか一方で実行される前記第１オペレーティングシステム上又は第２オペレーティングシステム上で動作する連動デバイスであり、前記デバイス検知部は、前記連動デバイスが接続された際に、前記連動デバイスの前記接続信号を検知し、前記デバイス管理部は、前記接続信号に基づいて、前記第１仮想マシン又は前記第２仮想マシンの内、前記アクティブ状態のいずれか一方に備えられている前記第1デバイス制御部又は前記第２デバイス制御部を起動することを要旨とするものである。かかる特徴によれば、情報処理装置では、接続されたデバイスが、複数の仮想マシンの内、アクティブ状態の仮想マシンによって動作するデバイスであっても、これを検知して認識処理を実行することができる。
【００１１】
本発明の第４の特徴は、第１の特徴に係り、前記デバイスは、前記第１オペレーティングシステム上と第２オペレーティングシステム上との両方で動作する非連動デバイスであり、前記デバイス検知部は、前記非連動デバイスが接続された際に、前記非連動デバイスの前記接続信号を検知し、前記デバイス管理部は、前記接続信号に基づいて、前記第1デバイス制御部と前記第２デバイス制御部を起動することを要旨とするものである。かかる特徴によれば、情報処理装置では、情報処理装置では、接続されたデバイスが、複数の仮想マシンで動作するデバイスであっても、これを検知して認識処理を実行することができる。
【００１２】
本発明の第５の特徴は、第４の特徴に係り、前記第１仮想マシンと前記非連動デバイスとの間で送受信される第１データ（例えば、アクセス要求５１１）と、前記第２仮想マシンと前記非連動デバイスとの間で送受信される第２データ（例えば、アクセス要求５２１）とを、ダイレクトメモリアクセス方式によって転送するアクセス制御部（直接メモリアクセス制御部２０３）を更に備え、前記アクセス制御部は、前記第１仮想マシンが前記アクティブ状態である場合、前記第２データの転送比率よりも、前記第１データの転送比率を大きくすることを要旨とするものである。かかる特徴によれば、情報処理装置では、アクティブ状態の仮想マシンから送信される第１データの転送比率を、非アクティブ状態の仮想マシンから送信される第２データの転送比率よりも大きくする。よって、ユーザに使用されているアクティブ状態の仮想マシンの処理効率を向上させ、ユーザが情報処理装置を使用する際の利便性を向上させることができる。
【００１３】
本発明の第６の特徴は、第１オペレーティングシステムを実行する第１仮想マシンと、第２オペレーティングシステムを実行する第２仮想マシンとを備え、前記第１仮想マシンと前記第２仮想マシンとのいずれか一方をユーザによって操作可能なアクティブ状態に設定する情報処理装置における制御方法であって、前記第１仮想マシンは、前記第１オペレーティングシステム上のみで動作するデバイスの認識処理を実行する第１デバイス制御部を備え、ユーザによって新たに前記デバイスが接続された際に、前記デバイスの接続信号を検知する検知ステップと、前記接続信号が検知された際、前記第２仮想マシンが前記アクティブ状態であっても、前記第１仮想マシンをアクティブ状態に設定する設定ステップと、検知された前記接続信号に基づいて、前記第１デバイス制御部を起動する起動ステップとを含むことを要旨とするものである。
【発明の効果】
【００１４】
本発明によると、複数のＯＳ用仮想マシンを動作させる仮想化プラットフォーム技術において、デバイスを利用する際の利便性を向上させることが可能な情報処理装置及び制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。ただし、図面は模式的なものであることに留意すべきである。
【００１６】
［実施形態］
（情報処理装置の構成）
本発明の実施形態に係る情報処理装置の構成について説明する。本発明の実施形態に係る情報処理装置は、ＰＣ、携帯電話、ＰＤＡ等の端末装置を想定している。また、本実施形態に係る情報処理装置１は、第１ＯＳ用仮想マシン（第１仮想マシン）と、第２オペレーティングシステムを実行する第２ＯＳ用仮想マシン（第２仮想マシン）とを備え、第１ＯＳ用仮想マシンと第２ＯＳ用仮想マシンとのいずれか一方をユーザによって操作可能なアクティブ状態に設定し、ユーザに第１又は第２オペレーティングシステム（以下、ＯＳ）の操作環境を提供する。なお、第１ＯＳと第２ＯＳとは、例えば、ＬｉｎａｘとＷｉｎｄｏｗｓなどのように、それぞれ異なる種類のＯＳでもよいし、同じ種類のＯＳでもよい。
【００１７】
具体的に、図１に示すように、本実施形態に係る情報処理装置１は、複数のデバイス１０_１乃至１０_ｎと、ハードウエア部３００と、仮想マシン制御部２００と、汎用インターフェース用仮想マシン１００と、第１オペレーティングシステムを実行する第１ＯＳ用仮想マシン１１０と、第２オペレーティングシステムを実行する第２ＯＳ用仮想マシン１２０と、ヒューマンインターフェース用仮想マシン１３０とを備える。
【００１８】
デバイス１０_１乃至１０_ｎは、図２に示すように、通信部１１と、記憶部１２と、制御部１３とを備える。なお、本実施形態において、デバイス１０_１乃至１０_ｎをデバイス１０として適宜説明する。デバイス１０は、ハードウエア部３００に接続されるデバイスであり、例えば、ＵＳＢ（Universal Serial Bus）デバイス等に相当する。通信部１１は、ハードウエア部３００との通信を行う。記憶部１２は、メモリ等の記憶装置である。制御部１３は、デバイス１０内の各種機能を制御する。例えば、デバイス１０が、ＵＳＢである場合、通信部１１は、ＵＳＢターゲットコントローラに相当し、制御部１３は、ＵＳＢコントローラドライブに相当する。
【００１９】
また、本実施形態において、複数のデバイス１０には、第1ＯＳ上又は第２ＯＳ上のいずれか一方のみで動作する占有デバイスや、第１ＯＳ用仮想マシン１１０又は第２ＯＳ用仮想マシン１２０の内、アクティブ状態のいずれか一方で実行される第１ＯＳ上又は第２ＯＳ上で動作する連動デバイスや、第１ＯＳ上と第２ＯＳ上との両方で動作する非連動デバイスなどが含まれている。占有デバイスは、例えば、ユーザ認証用デバイス等が挙げられる。連動デバイスは、例えば、キーボードや、ディスプレイ、マウスといったヒューマンインターフェースデバイス等が挙げられる。非連動デバイスは、例えば、ストレージやネットワーク等が挙げられる。なお、一のデバイス１０が、占有デバイス、連動デバイス、非連動デバイスのいずれに該当するかについては、予め自由に設定することが可能である。
【００２０】
ハードウエア部３００は、図３に示すように、通信部３０１と、中央処理部３０２と、主記憶部３０３とを備える。通信部３０１は、デバイス１０や、仮想マシン制御部２００との間で通信を実行する。中央処理部３０２は、ＣＰＵなどの演算処理回路に相当する。主記憶部３０３は、メインメモリに相当する。
【００２１】
仮想マシン制御部２００は、汎用インターフェース用仮想マシン１００、第１ＯＳ用仮想マシン１１０、第２ＯＳ用仮想マシン１２０、ヒューマンインターフェース用仮想マシン１３０を制御する。仮想マシン制御部２００は、図４に示すように、通信部２０１と、直接メモリアクセスポリシー部２０２と、直接メモリアクセス制御部２０３とを備える。
【００２２】
通信部２０１は、汎用インターフェース用仮想マシン１００、第１ＯＳ用仮想マシン１１０、第２ＯＳ用仮想マシン１２０、ヒューマンインターフェース用仮想マシン１３０、及びハードウエア部３００との間で通信する。
【００２３】
直接メモリアクセスポリシー部２０２は、図５に示すようにアクセスポリシーテーブルＴ１を備える。アクセスポリシーテーブルＴ１は、デバイス１０の種別と、デバイス１０を識別するＩＤと、アクティブ状態か否かを示す情報と、スケジューリング比率と、現在アクティブ状態の仮想マシンを示すＶＭ状態情報とが対応付けて予め記憶されている。スケジューリング比率は、ダイレクトメモリアクセス方式によってデータ転送される際の比率を示す情報である。ＶＭ状態情報は、第１ＯＳ用仮想マシン１１０と第２ＯＳ用仮想マシン１２０とのいずれかにアクティブ状態が遷移する度に、後述するアクティブＯＳ設定部１０６によって更新される情報である。また、アクセスポリシーテーブルＴ１に記憶されている情報の内、ＶＭ状態情報を以外の情報は、予め設定されている。なお、アクセスポリシーテーブルＴ１に記憶されている情報は、後述する直接メモリアクセス制御部２０３によって用いられる。
【００２４】
直接メモリアクセス制御部２０３は、第１ＯＳ用仮想マシン１１０と非連動デバイスとの間で送受信されるダイレクト・メモリ・アクセス要求（第１データ）と、第２ＯＳ用仮想マシン１２０と非連動デバイスとの間で送受信されるダイレクト・メモリ・アクセス要求（第２データ）とを、ダイレクトメモリアクセス方式によって転送するアクセス制御部として機能する。具体的に、直接メモリアクセス制御部２０３は、図６に示すように、第１ＯＳ用仮想マシン１１０から送信されたアクセス要求５１１乃至５１２を記憶するアクセス要求キュー５１０と、第２ＯＳ用仮想マシン１２０から送信されたアクセス要求５２１乃至５２３を記憶するアクセス要求キュー５２０と、スケジューリング部６００とを備える。
【００２５】
スケジューリング部６００は、直接メモリアクセスポリシー部２０２のアクセスポリシーテーブルＴ１を参照し、記憶されているスケジューリング比率に応じて、第１ＯＳ用仮想マシン１１０からのアクセス要求と、第２ＯＳ用仮想マシン１２０からのアクセス要求とを、デバイス１０にダイレクトメモリアクセス方式で転送する際のスケジューリングを決定する。また、スケジューリング部６００は、決定したスケジューリングに基づいて、当該アクセス要求の転送処理を実行するように、中央処理部３０２に対して指示する。例えば、図５において、デバイス１０が“ストレージ”であり、第１ＯＳ用仮想マシン１１０がアクティブ状態で、第２ＯＳ用仮想マシン１２０が非アクティブ状態であるとすると、第１ＯＳ用仮想マシン１１０からのアクセス要求と、第２ＯＳ用仮想マシン１２０からのアクセス要求とを、“７：３”の割合でタイムシェアリングによってスケジューリングし、アクティブ状態の第１ＯＳ用仮想マシン１１０からのアクセス要求５１１乃至５１２を優先して転送させる。このように、直接メモリアクセス制御部２０３では、第１ＯＳ用仮想マシン１１０がアクティブ状態である場合、アクセス要求の転送比率よりも、アクセス要求の転送比率を大きくして、アクセス要求を転送するように構成されている。
【００２６】
第１ＯＳ用仮想マシン１１０は、図７に示すように、仮想デバイス制御部１１１と、プログラム部１１２とを備える。仮想デバイス制御部１１１は、後述する汎用インターフェース用仮想マシン１００のデバイス制御部１０３と接続し、当該デバイス制御部１０３のフロントエンドのデバイスドライバとして機能する。また、仮想デバイス制御部１１１は、第１ＯＳ用仮想マシン１１０の第１ＯＳが実行されている場合、デバイス１０へ送信されるアクセス要求を、直接メモリアクセス制御部２０３へ送信する。本実施形態において、仮想デバイス制御部１１１は、第１オペレーティングシステム上のみで動作するデバイス１０の認識処理を実行する第１デバイス制御部を構成する。プログラム部１１２は、予め各種ソフトウエアを格納しており、第１ＯＳ等の各種ソフトウエア（コードやプログラム）を起動する。また、プログラム部１１２は、接続されるデバイス１０の種別に応じたプログラムを起動する。
【００２７】
第２ＯＳ用仮想マシン１２０は、図８に示すように、仮想デバイス制御部１２１と、プログラム部１２２とを備える。なお、仮想デバイス制御部１２１と、プログラム部１２２との機能は、上述した仮想デバイス制御部１１１と、プログラム部１１２との機能と略同等であるため、説明を省略する。なお、本実施形態において、仮想デバイス制御部１２１は、第２オペレーティングシステム上のみで動作するデバイスの認識処理を実行する第２デバイス制御部を構成する。
【００２８】
汎用インターフェース用仮想マシン１００は、図９に示すように通信部１０１と、デバイス検知部１０２と、デバイス制御部１０３と、デバイス管理部１０４と、ＯＳ選択情報記憶部１０５と、アクティブＯＳ設定部１０６とを備える。
【００２９】
通信部１０１は、ヒューマンインターフェース用仮想マシン１３０と、第１ＯＳ用仮想マシン１１０と、第２ＯＳ用仮想マシン１２０と、仮想マシン制御部２００との間で通信する。
【００３０】
デバイス検知部１０２は、例えば、接続されるデバイス１０がＵＳＢである場合、ＵＳＢのバスドライバに相当する。また、デバイス検知部１０２は、ユーザによって新たにデバイス１０が接続された際に、デバイス１０の接続信号を検知する。また、デバイス検知部１０２は、連動デバイスが接続された際に、連動デバイスの接続信号を検知する。また、デバイス検知部１０２は、非連動デバイスが接続された際に、非連動デバイスの接続信号を検知する。具体的に、デバイス検知部１０２は、占有デバイスや、連動デバイスや、非連動デバイス等のデバイス１０が、ハードウエア部３００に接続された際に、ハードウエア部３００から送信される接続信号を検知し、当該接続信号に含まれるデバイス１０の識別情報をデバイス管理部１０４へ通知する。
【００３１】
デバイス制御部１０３は、接続されるデバイス１０の種別毎のクラスドライバとして機能する。また、デバイス管理部１０４からの指示に応じて、仮想デバイス制御部１１１乃至１２１を起動する。
【００３２】
ＯＳ選択情報記憶部１０５は、図１０に示すように、ＯＳ選択情報テーブルＴ２を備える。ＯＳ選択情報テーブルＴ２は、接続されるデバイス１０の種別と、デバイス１０の提供元を識別するベンダＩＤと、デバイス１０を識別する識別情報と、それぞれのデバイス１０を動作させるＯＳ用仮想マシン１１０乃至１２０を識別するＶＭ番号と、デバイス１０が接続された際や、切り替えられた際の制御内容を示すデバイス制御情報とが、対応付けて予め記憶されている。
【００３３】
ここで、ＶＭ番号は、第１ＯＳ用仮想マシン１１０であれば、“１”、第２ＯＳ用仮想マシン１２０であれば、“２”として予め設定されている。また、デバイス制御情報には、“占有”と“共有”とが含まれており、“共有”には、“連動”と“非連動”とが含まれている。“占有”は、対応付けられているデバイス１０が、単一のＯＳ用仮想マシンのみで動作することを示す。また、“共有”は、対応付けられているデバイス１０が、複数のＯＳ用仮想マシンで動作することを示す。また、“連動”は、対応付けられているデバイス１０が、アクティブ状態のＯＳ用仮想マシンによって動作されることを示す。“非連動”は、対応付けられているデバイス１０が、アクティブ状態であるか否かに係らず、ＶＭ番号に対応するＯＳ用仮想マシンによって動作されることを示す。
【００３４】
デバイス管理部１０４は、デバイス検知部１０２によって検知されたデバイス１０の接続信号に基づいて、第１ＯＳ用仮想マシン１１０の仮想デバイス制御部１１１を起動する。また、デバイス管理部１０４は、連動デバイスが接続された場合、デバイス検知部１０２によって検知された接続信号に基づいて、第１ＯＳ用仮想マシン１１０又は第２ＯＳ用仮想マシン１２０の内、アクティブ状態のいずれか一方に備えられている仮想デバイス制御部１１１又は仮想デバイス制御部１２１を起動する。また、デバイス管理部１０４は、非連動デバイスが接続された場合、デバイス検知部１０２によって検知された接続信号に基づいて、仮想デバイス制御部１１１と仮想デバイス制御部１２１とを起動する。
【００３５】
具体的に、デバイス管理部１０４は、デバイス検知部１０２から、接続されたデバイス１０の識別情報を通知されると、ＯＳ選択情報テーブルＴ２を参照し、当該識別情報に対応する“デバイス制御情報”が“占有”、“共有（連動）”、“共有（非連動）”の何れであるかに基づいて、接続されたデバイス１０の認識処理を実行させるＯＳ用仮想マシンを特定する。また、デバイス管理部１０４は、特定したＯＳ用仮想マシンに備えられている仮想デバイス制御部１１１乃至１２１を起動させるように、デバイス制御部１０３に指示する。
【００３６】
また、デバイス管理部１０４は、ユーザによってヒューマンインターフェースデバイス（以下、ＨＩＤとして適宜示す）が切り替えられた際に、後述するヒューマンインターフェースデバイス切替部１３２によって、切替信号が検知されると、切替信号に基づいて、仮想デバイス制御部１１１又は仮想デバイス制御部１２１を起動する。具体的に、デバイス管理部１０４は、例えば、現在、第２ＯＳ用仮想マシン１２０がアクティブ状態である場合に、ＨＩＤ切替部１３２によって切替信号が検知され、ＨＩＤ切替部１３２から、非アクティブ状態の第１ＯＳ用仮想マシン１１０のみで動作するＨＩＤの識別情報が通知されると、上記接続信号がデバイス検知部１０２によって検知された場合と同様に、ＯＳ選択情報テーブルＴ２を参照し、第１ＯＳ用仮想マシン１１０の仮想デバイス制御部１１１を起動する。
【００３７】
また、デバイス管理部１０４は、仮想デバイス制御部１１１乃至１２１の起動と共に、ＯＳ用仮想マシンのアクティブ状態を切り替える場合には、アクティブ状態の切替を設定するように、アクティブＯＳ設定部１０６に通知する。
【００３８】
アクティブＯＳ設定部１０６は、第２ＯＳ用仮想マシン１２０がアクティブ状態である場合に、非アクティブ状態の第１ＯＳ用仮想マシン１１０のみで動作するデバイス１０の接続信号が検知された際、第２ＯＳ用仮想マシン１２０がアクティブ状態であっても、第１ＯＳ用仮想マシン１１０をアクティブ状態に設定する。切替信号についても、アクティブＯＳ設定部１０６は、非アクティブ状態の第１ＯＳ用仮想マシン１１０のみで動作するＨＩＤの切替信号が検知された際、第２ＯＳ用仮想マシン１２０がアクティブ状態であっても、第１ＯＳ用仮想マシン１１０をアクティブ状態に設定する。
【００３９】
具体的に、アクティブＯＳ設定部１０６は、デバイス管理部１０４から、ＯＳ用仮想マシンのアクティブ状態を切り替える旨の通知を受けると、アクティブ状態の切替を設定する。なお、アクティブＯＳ設定部１０６は、アクティブ状態を切り替えた場合、アクセスポリシーテーブルＴ１に記憶されているＶＭ状態情報を更新する。本実施形態において、アクティブＯＳ設定部１０６は、第１ＯＳ用仮想マシン１１０又は第２ＯＳ用仮想マシン１２０のいずれか一方を、ユーザによって操作可能なアクティブ状態に設定する設定部を構成する。
【００４０】
ヒューマンインターフェース用仮想マシン１３０は、図１１に示すように、通信部１３１と、ヒューマンインターフェースデバイス切替部１３２（以下、ＨＩＤ切替部１３２と示す）と、ヒューマンインターフェースデバイス管理部１３３（以下、ＨＩＤ管理部１３３と示す）とを備える。
【００４１】
通信部１３１は、汎用インターフェース用仮想マシン１００と、第１ＯＳ用仮想マシン１１０と、第２ＯＳ用仮想マシン１２０と、仮想マシン制御部２００との間で通信する。
【００４２】
ＨＩＤ切替部１３２は、ユーザによってＨＩＤが切り替えられた際に、切り替えられたＨＩＤの切替信号を検知する。例えば、ＨＩＤとして、ディスプレイが複数接続されている場合、ユーザは、アクティブ状態の仮想マシンを操作するため、一のディスプレイから他のディスプレイを使用するように切替操作を行って切り替えた際、ＨＩＤ切替部１３２は、この切替信号を検知する。また、切替信号には、切り替え先の他のディスプレイの識別情報が含まれており、デバイス検知部１０２は、この識別情報をＨＩＤ管理部１３３へ通知する。
【００４３】
ＨＩＤ管理部１３３は、接続されているヒューマンインターフェースデバイスの利用状態を管理する。ＨＩＤ管理部１３３は、ＨＩＤ切替部１３２が切替信号を検知した際、ＨＩＤ切替部１３２から通知されたＨＩＤの識別情報をデバイス管理部１０４に通知する。
【００４４】
（実施形態に係る情報処理装置の動作）
次に、上述する構成の情報処理装置１の動作について説明する。具体的に、ユーザによって情報処理装置１に新たなデバイスが接続された際の制御動作と、複数の仮想マシンで認識処理された非連動デバイスとＤＭＡ転送を実行する際の制御動作とについて説明する。
【００４５】
（新たなデバイスが接続された際の制御動作）
まず、図１２を参照し、情報処理装置１に新たなデバイス１０が接続される際の情報処理装置１の制御動作について説明する。
【００４６】
ステップＳ１０１において、デバイス検知部１０２は、新たなデバイス１０が接続されたことを示す接続信号を検知する。また、デバイス検知部１０２は、検知した接続信号に含まれる識別情報をデバイス管理部１０４に通知する。
【００４７】
ステップＳ１０２において、デバイス管理部１０４は、ＯＳ選択情報テーブルＴ２を参照し、通知された識別情報から、デバイスの種別を特定する。
【００４８】
ステップＳ１０３において、また、デバイス管理部１０４は、特定した種別に対応するクラスドライバを起動するように、デバイス制御部１０３に指示し、デバイス制御部１０３は、これを起動する。
【００４９】
ステップＳ１０４において、デバイス管理部１０４は、ＯＳ選択情報テーブルＴ２を参照し、通知された識別情報に対応するデバイス制御情報が“占有”又は“共有”かを、判定する。
【００５０】
ステップＳ１０５において、デバイス管理部１０４は、“占有”であると判定した場合、対応付けて記憶されている“ＶＭ番号”に基づいて、仮想デバイス制御部１１１又は仮想デバイス制御部１２１を特定する。また、デバイス管理部１０４は、例えば、仮想デバイス制御部１１１を特定した場合、デバイス制御部１０３に仮想デバイス制御部１１１を起動するように指示する。この指示を受けたデバイス制御部１０３は、仮想デバイス制御部１１１を起動させ、接続されたデバイス１０の認識処理を実行させる。また、この時、デバイス管理部１０４は、仮想デバイス制御部１１１を備える第１ＯＳ用仮想マシン１１０をアクティブ状態にするように、アクティブＯＳ設定部１０６に指示する。
【００５１】
ステップＳ１０６において、デバイス管理部１０４は、“共有”であると判定した場合、引き続き、“連動”か“非連動”かを、判定する。
【００５２】
ステップＳ１０７において、デバイス管理部１０４は、“連動”であると判定した場合、アクティブ状態のＯＳ用仮想マシンをアクティブＯＳ設定部１０６に確認して、アクティブ状態のＯＳ用仮想マシン（例えば、第２ＯＳ用仮想マシン１２０）の仮想デバイス制御部（例えば、仮想デバイス制御部１２１）を起動するようにデバイス制御部１０３に指示する。この指示を受けたデバイス制御部１０３は、仮想デバイス制御部（例えば、仮想デバイス制御部１２１）を起動させ、接続されたデバイス１０の認識処理を実行させる。
【００５３】
ステップＳ１０８において、デバイス管理部１０４は、“非連動”であると判定した場合、対応付けて記憶されている“ＶＭ番号”に基づいて、複数の仮想デバイス制御部１１１乃至１２１を起動するようにデバイス制御部１０３に指示する。この指示を受けたデバイス制御部１０３は、仮想デバイス制御部１１１乃至１２１を起動させ、接続されたデバイス１０の認識処理を実行させる。
【００５４】
ステップＳ１０９において、アクティブＯＳ設定部１０６は、例えば、第１ＯＳ用仮想マシン１１０をアクティブ状態にするように、デバイス管理部１０４から指示を受けると、現在アクティブ状態のＯＳ用仮想マシンを確認し、ＯＳ用仮想マシンのアクティブ状態の切替が必要か否かを判定する。
【００５５】
ステップＳ１１０において、アクティブＯＳ設定部１０６は、例えば、第２ＯＳ用仮想マシン１２０がアクティブ状態であり、切り替え必要があると判定した場合、第１ＯＳ用仮想マシン１１０をアクティブ状態に設定する。なお、アクティブＯＳ設定部１０６は、切り替える必要が無い場合、なにも実行しない。
【００５６】
ステップＳ１１１において、プログラム部１１２乃至１２２は、仮想デバイス制御部１１１乃至１２１の起動、又は、アクティブ状態の切替に応じて、所望のソフトウエア（プログラム又はコード）を実行する。
【００５７】
なお、ＨＩＤが切り替えられた場合、上述したステップＳ１０１において、ヒューマンインターフェース用仮想マシン１３０では、ＨＩＤ切替部１３２は、切替信号を検知して、切替信号に含まれるＨＩＤの識別情報をＨＩＤ管理部１３３に通知する。また、ＨＩＤ管理部１３３は、識別情報をデバイス管理部１０４に通知し、以後、情報処理装置１では、上述したステップＳ１０２乃至Ｓ１１１の処理が実行される。
【００５８】
（非連動デバイスとＤＭＡ転送を実行する際の制御動作）
次に、デバイス管理部１０４が“非連動”と判定したステップＳ１０８乃至Ｓ１１１以降に、情報処理装置１で実行されるＤＭＡ転送の制御動作について、図１３を参照して、具体的に説明する。
【００５９】
ステップＳ３０１において、デバイス管理部１０４は、“非連動”であると判定した場合、対応付けて記憶されている“ＶＭ番号”に基づいて、アクティブ状態のＯＳ用仮想マシンをアクティブＯＳ設定部１０６に確認して、これを特定する。また、デバイス管理部１０４は、アクティブ状態のＯＳ用仮想マシン（例えば、第１ＯＳ用仮想マシン１１０）と、非アクティブ状態のＯＳ用仮想マシン（例えば、第２ＯＳ用仮想マシン１２０）と、接続されたデバイス１０の識別情報とを、直接メモリアクセス制御部２０３に通知する。
【００６０】
ステップＳ３０２において、この通知を受けた直接メモリアクセス制御部２０３では、スケジューリング部６００が、アクセスポリシーテーブルＴ１を参照し、通知された識別情報に基づいて、アクティブ状態のスケジューリング比率と、非アクティブ状態のスケジューリング比率とを確認する。
【００６１】
ステップＳ３０３において、プログラム部１１２又は１２２から送信されたダイレクトメモリアクセス要求が、直接メモリアクセス制御部２０３で受信される。また、直接メモリアクセス制御部２０３では、アクセス要求キュー５１０又は５２０が、このアクセス要求を保持する。また、スケジューリング部６００は、確認したスケジューリング比率に応じて、タイムシェアリングでスケジューリングを行い、処理すべきキューを決定する。
【００６２】
ステップＳ３０４において、スケジューリング部６００は、処理すべきキューがプログラム部１１２から送信されたアクセス要求である場合、アクセス要求キュー５１０のアクセス要求５１１を処理する。
【００６３】
ステップＳ３０５において、スケジューリング部６００は、処理すべきキューがプログラム部１２２から送信されたアクセス要求である場合、アクセス要求キュー５２０のアクセス要求５２１を処理する。
【００６４】
ステップＳ３０６において、スケジューリング部６００は、アクセス要求キュー５１０乃至５２０に保持されているアクセス要求がなくなるまで処理を続ける。なお、アクセス要求が一時的に無くなった場合でも、再び送信された際には、直接メモリアクセス制御部２０３は、上記処理を繰り返し実行する。
【００６５】
（作用及び効果）
以上説明したように、本実施形態に係る情報処理装置は、例えば、第１オペレーティングシステム上のみで動作するデバイス１０（占有デバイス）が新たに接続された場合、第２ＯＳ用仮想マシン１２０がアクティブ状態であっても、第１ＯＳ用仮想マシン１１０がアクティブ状態に設定されると共に、接続されたデバイスの認識処理を実行する第１デバイス制御部が起動する。よって、かかる情報処理装置１では、従来技術のように、デバイス１０が新たに接続された際、アクティブ状態のＯＳ用仮想マシン用のデバイス１０のみで認識処理を実行するのではなく、非アクティブ状態のＯＳ用仮想マシン用のデバイス１０に対しても認識処理を実行できる。また、情報処理装置は、当該デバイス１０を動作させるＯＳ用仮想マシンが非アクティブ状態であれば、アクティブ状態に設定することができる。また、情報処理装置１では、アクティブ状態を切り替えたＯＳ用仮想マシンにおいても、関連するソフトウエアを実行することができる。
【００６６】
また、本実施形態に係る情報処理装置１では、一のＯＳ用仮想マシンで動作するＨＩＤを切り替える際においても、非アクティブ状態の仮想マシン用のヒューマンインターフェースの認識処理を実行することができる。また、本実施形態に係る情報処理装置１では、接続されたデバイスが、複数の第１乃至第２ＯＳ用仮想マシンの内、アクティブ状態のＯＳ用仮想マシンによって動作するデバイス１０（連動デバイス）であっても、これを検知して認識処理を実行することができる。また、本実施形態に係る情報処理装置１では、接続されたデバイスが、複数のＯＳ用仮想マシンで動作するデバイス１０（非連動デバイス）であっても、これを検知して認識処理を実行することができる。このように、かかる情報処理装置１によれば、複数の仮想マシン（ＯＳ用仮想マシン）を動作させる仮想化プラットフォーム技術において、デバイスを利用する際の利便性を向上させることができる。
【００６７】
また、本実施形態に係る情報処理装置１では、アクティブ状態のＯＳ用仮想マシンから送信されるアクセス要求の転送比率を、非アクティブ状態のＯＳ用仮想マシンから送信されるアクセス要求の転送比率よりも大きくする。よって、ユーザに使用されているアクティブ状態のＯＳ用仮想マシンの処理効率を向上させ、ユーザが情報処理装置１を使用する際の利便性を向上させることができる。
【００６８】
［その他の実施の形態］
本発明は上記の実施形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施形態、実施例及び運用技術が明らかとなろう。
【００６９】
例えば、上述した実施形態において、デバイス検知部１０２と、デバイス制御部１０３と、デバイス管理部１０４と、ＯＳ選択情報記憶部１０５と、アクティブＯＳ設定部１０６との各種機能は、仮想マシン制御部２００に備えるように構成されていてもよい。特に、ＯＳ選択情報記憶部１０５は、第１ＯＳ用仮想マシン１１０や、第２ＯＳ用仮想マシン１２０などに備えるように構成されていてもよい。
【００７０】
また、上述した実施形態において、情報処理装置１では、ＯＳ用仮想マシンとして、第１ＯＳ用仮想マシン１１０と第２ＯＳ用仮想マシン１２０との二つを備えるように構成されていたが、かかる数は、これに限定されるものではない。
【００７１】
このように、本発明はここでは記載していない様々な実施形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００７２】
【図１】実施形態に係る情報処理装置の全体概略構成を示す図である。
【図２】実施形態に係るデバイスの構成を示す図である。
【図３】実施形態に係るハードウエア部の構成を示す図である。
【図４】実施形態に係る仮想マシンの構成を示す図である。
【図５】実施形態に係るアクセスポリシーテーブルを示す図である。
【図６】実施形態に係る仮想直接メモリアクセス制御部の構成を示す図である。
【図７】実施形態に係るＯＳ用仮想マシンの構成を示す図である。
【図８】実施形態に係るＯＳ用仮想マシンの構成を示す図である。
【図９】実施形態に係る汎用インターフェース用仮想マシンの構成を示す図である。
【図１０】実施形態に係るＯＳ選択情報テーブルを示す図である。
【図１１】実施形態に係るヒューマンインターフェース用仮想マシンの構成を示す図である。
【図１２】実施形態に係る情報処理装置の動作を示すフローチャートである。
【図１３】実施形態に係る情報処理装置の動作を示すフローチャートである。
【符号の説明】
【００７３】
１…情報処理装置、１０_１乃至１０_ｎ…デバイス、１１…通信部、１２…記憶部、１３…制御部、１００…汎用インターフェース用仮想マシン、１０１…通信部、１０２…デバイス検知部、１０３…デバイス制御部、１０４…デバイス管理部、１０５…ＯＳ選択情報記憶部、１０６…アクティブＯＳ設定部、１１０…第１ＯＳ用仮想マシン、１１１…仮想デバイス制御部、１１２…プログラム部、１２０…第２ＯＳ用仮想マシン、１２１…仮想デバイス制御部、１２２…プログラム部、１３０…ヒューマンインターフェース用仮想マシン、１３１…通信部、１３２…ヒューマンインターフェースデバイス切替部、１３３…ヒューマンインターフェースデバイス管理部、２００…仮想マシン制御部、２０１…通信部、２０２…直接メモリアクセスポリシー部、２０３…直接メモリアクセス制御部、３００…ハードウエア部、３０１…通信部、３０２…中央処理部、３０３…主記憶部、５１０…アクセス要求キュー、５１０，５２０…アクセス要求キュー、５１０〜５２０…アクセス要求キュー、５１１〜５１２…アクセス要求、５２１〜５２３…アクセス要求、６００…スケジューリング部、Ｔ１…アクセスポリシーテーブル、Ｔ２…ＯＳ選択情報テーブル、Ｓ１０１乃至Ｓ１１１…ステップ、Ｓ３０１乃至Ｓ３０６…ステップ、
【図１】
2008269177.tif 000003
【図２】
2008269177.tif 000004
【図３】
2008269177.tif 000005
【図４】
2008269177.tif 000006
【図５】
2008269177.tif 000007
【図６】
2008269177.tif 000008
【図７】
2008269177.tif 000009
【図８】
2008269177.tif 000010
【図９】
2008269177.tif 000011
【図１０】
2008269177.tif 000012
【図１１】
2008269177.tif 000013
【図１２】
2008269177.tif 000014
【図１３】
2008269177.tif 000015