(57)【要約】【課題】各ユーザが使用する入出力デバイスセットと、各ユーザ専用のＶＭとの対応付けを容易に行なう情報処理装置、情報処理方法及びコンピュータプログラムを提供する。【解決手段】第１ＶＭが、予め対応付けられている入出力デバイスセット５１を介してユーザ情報を取得した場合、ＶＭＭ２１がユーザ情報を認証する。認証できた場合、第１ＶＭが、このユーザ情報が第１ＶＭを割り当てられているユーザのユーザ情報に一致するか否かを判断する。ユーザ情報が一致する場合、第１ＶＭは、デスクトップＵＩ部３５ａの動作を開始する。ユーザ情報が一致しない場合、ＶＭＭ２１によって、このユーザに対応するＶＭ（第２ＶＭ）が特定され、第１ＶＭに対応付けられている入出力デバイスセット５１と、特定された第２ＶＭに対応付けられている入出力デバイスセット５２とを切り替える。その後、第２ＶＭは、デスクトップＵＩ部３５ａの動作を開始する。【選択図】図５
2010176412.tif 000002
【特許請求の範囲】
【請求項１】
各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部とを備える情報処理装置であって、
前記複数の実行部と、前記複数の実行部のそれぞれに対応付けられたユーザのユーザ情報との対応を記憶するユーザ対応記憶部を備え、
前記実行部のそれぞれは、
予め対応付けられたユーザのユーザ情報を記憶するユーザ情報記憶部と、
予め対応付けられた入力部からのユーザ情報の入力を受け付ける入力受付部と、
該入力受付部が受け付けたユーザ情報を前記対応付けられた入力部を介して取得するユーザ情報取得部と、
該ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致するか否かを判断する判断部と、
前記ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致すると前記判断部が判断した場合、通常動作を開始する動作開始部と、
前記ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致しないと前記判断部が判断した場合、前記ユーザ情報取得部が取得したユーザ情報に対応付けられた他の実行部の特定を前記制御部に要求する特定要求部とを有し、
前記制御部は、
前記ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記ユーザ情報に対応付けられた他の実行部を前記ユーザ対応記憶部に記憶してある対応に基づいて特定する特定部と、
該特定部が前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替える取替部とを有すること
を特徴とする情報処理装置。
【請求項２】
前記実行部の前記入力受付部は、ユーザ情報と共に、それぞれのユーザを認証するための認証情報の入力を受け付け、
前記実行部の前記ユーザ情報取得部は、前記入力受付部が受け付けたユーザ情報及び認証情報を取得し、
前記実行部は、前記ユーザ情報取得部が取得した認証情報の認証を前記制御部に依頼する認証依頼部を備え、
前記制御部は、
それぞれのユーザの認証情報を予め記憶する認証情報記憶部と、
該認証情報記憶部に記憶してある認証情報に基づいて、前記実行部から依頼された認証情報の認証を行なう認証部と、
該認証部による認証結果を、前記認証を依頼してきた実行部へ通知する認証結果通知部とを備え、
前記実行部の前記判断部は、前記認証情報が認証された旨の認証結果を前記制御部から通知された場合に、前記認証情報と共に前記ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致するか否かを判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記実行部のそれぞれと、前記実行部のそれぞれに対応付けられた入力部との対応を記憶する入力対応記憶部を備え、
前記制御部は、前記実行部のそれぞれを起動させる際に、前記入力対応記憶部に記憶してある対応に従った入力部を前記実行部のそれぞれに対応付けて起動する起動部を有することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記実行部のそれぞれと、前記実行部のそれぞれが使用可能な入出力装置との対応を記憶する入出力装置対応記憶部を備え、
前記制御部は、起動後の前記実行部のそれぞれに、前記入出力装置対応記憶部に記憶してある対応に従った入出力装置を使用可能に対応付ける対応付け制御部を有することを特徴とする請求項１から３までのいずれかひとつに記載の情報処理装置。
【請求項５】
前記制御部は、前記取替部が入力部を取り替える際に、前記他の実行部に対応付けられている入力部を介して入力中の情報を記憶する入力情報記憶部を有し、
前記実行部の前記入力受付部は、前記取替部が入力部を取り替えた後に、取り替えられることによって対応付けられた入力部を介して、前記入力情報記憶部に記憶させた情報を報知する報知部を有することを特徴とする請求項１から４までのいずれかひとつに記載の情報処理装置。
【請求項６】
各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部とを備える情報処理装置による情報処理方法であって、
前記実行部のそれぞれが、予め対応付けられた入力部からのユーザ情報の入力を受け付けるステップと、
前記実行部のそれぞれが、受け付けたユーザ情報を前記対応付けられた入力部を介して取得するステップと、
前記実行部のそれぞれが、取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致するか否かを判断するステップと、
前記実行部のそれぞれが、取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致すると判断した場合、通常動作を開始するステップと、
前記実行部のそれぞれが、取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致しないと判断した場合、前記取得したユーザ情報に対応付けられた他の実行部の特定を前記制御部に要求するステップと、
前記制御部が、前記ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記ユーザ情報に対応付けられた他の実行部を特定するステップと、
前記制御部が、前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替えるステップと
を含むことを特徴とする情報処理方法。
【請求項７】
コンピュータに、各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部としての動作を実行させるためのコンピュータプログラムであって、
前記コンピュータに、
予め対応付けられた入力部からのユーザ情報の入力を受け付ける入力受付部、該入力受付部が受け付けたユーザ情報を前記対応付けられた入力部を介して取得するユーザ情報取得部、該ユーザ情報取得部が取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致するか否かを判断する判断部、前記ユーザ情報取得部が取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致すると前記判断部が判断した場合、通常動作を開始する動作開始部、及び、前記ユーザ情報取得部が取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致しないと前記判断部が判断した場合、前記ユーザ情報取得部が取得したユーザ情報に対応付けられた他の実行部の特定を前記制御部に要求する特定要求部を有する前記実行部としての動作を実行させるための第１コンピュータプログラムと、
前記コンピュータに、
前記ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記ユーザ情報に対応付けられた他の実行部を特定する特定部、及び、該特定部が前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替える取替部を有する前記制御部としての動作を実行させるための第２コンピュータプログラムと
を含むことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化技術が適用され、仮想的に複数の装置としての動作を提供することができる情報処理装置、情報処理方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータが広く普及しており、１人１台での使用環境も珍しくなくなってきた。一方、ＣＰＵ（Central Processing Unit）をはじめ、コンピュータに搭載されるハードウェア各部の性能の向上に伴ってコンピュータの性能が飛躍的に向上している。従って、ユーザの使用状況によっては、１人のユーザによる使用ではコンピュータの性能に余力が生じるようになってきた。
【０００３】
そこで、コンピュータの性能を十分に利用するために、仮想マシン（ＶＭ：Virtual Machine）技術が注目を集め始めている。仮想マシン技術とは、１つのコンピュータを論理的に分割し、仮想的に複数の独立したコンピュータ（仮想マシン）として動作させる技術である。このように、１つのコンピュータによって複数の仮想マシンの動作を実現することにより、１つのコンピュータを複数のユーザによって共用することができる。
【０００４】
従って、１人のユーザによっては余力を生じていたコンピュータの性能を十分に利用することができる。また、ユーザ毎にコンピュータを用意する必要がなくなるので、コンピュータの設置スペース、設置コストを削減できると共に、コンピュータによる消費電力の削減も可能となる。また、複数のユーザによって１つのコンピュータを使用するので、各ユーザの使用環境を集約することができ、コンピュータを集中管理することによるメンテナンスコストの削減も可能となる。
【０００５】
一方、ＵＳＢ（Universal Serial Bus）ポート、ディスプレイを接続するためのポート等のポートを複数備えたパーソナルコンピュータが販売されている。このようなパーソナルコンピュータは、ＵＳＢケーブルを介してマウス、キーボード等の入力デバイスを複数接続することができ、ディスプレイケーブルを介してディスプレイ（出力デバイス）を複数接続することができる。
【０００６】
従って、複数のポートを備えるパーソナルコンピュータに仮想マシン技術を適用することによって、複数のユーザの使用環境を１台のパーソナルコンピュータで実現することができる（特許文献１〜３参照）。具体的には、１台のパーソナルコンピュータに、マウス、キーボード及びディスプレイ等の入出力デバイスセットをユーザの人数分接続し、ユーザは、いずれかの入出力デバイスセットを使用し、パーソナルコンピュータに構成された仮想マシンを利用する。
【０００７】
このような使用環境が実現できることにより、複数のユーザが、接続ケーブルの届く範囲内で入出力デバイスセットを使用する状況において１台のパーソナルコンピュータの共用が可能となる。例えば、家庭内において複数の家族間で１つのコンピュータを共用する場合、学校又は職場において複数のユーザ間で１つのコンピュータを共用する場合には非常に有効である。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第３２０６２４７号公報
【特許文献２】特開２００２−３１８６９９号公報
【特許文献３】特開２０００−２５９３００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数のユーザの使用環境を１台のパーソナルコンピュータで実現するシステムでは、ユーザ毎に仮想マシンが用意される。従って、ユーザがいずれかの入出力デバイスセットを介して仮想マシンを使用しようとした場合に、このユーザに対応する仮想マシンを提供する必要がある。即ち、ユーザの仮想マシンの使用開始時に、それぞれの入出力デバイスセットの使用を開始したユーザが誰であるか、また、このユーザに対応して起動させる仮想マシンがどれであるか等を把握する必要がある。そこで、ユーザの仮想マシンの使用開始時に、このユーザの認証を行なう必要がある。
【００１０】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、ユーザの仮想マシンの使用開始時に、各ユーザが使用した入出力デバイスセットと、各ユーザ専用の仮想マシンとの対応付けを容易に行なうことが可能な情報処理装置、情報処理方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本願に開示する情報処理装置は、各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部とを備える情報処理装置であって、前記実行部のそれぞれは、予め対応付けられたユーザのユーザ情報を記憶するユーザ情報記憶部を備える。本願に開示する情報処理装置において、実行部のそれぞれは、予め対応付けられた入力部からのユーザ情報の入力を受け付け、受け付けたユーザ情報を前記対応付けられた入力部を介して取得する。実行部のそれぞれは、取得したユーザ情報がユーザ情報記憶部に記憶してあるユーザ情報に一致するか否かを判断し、一致すると判断した場合、通常動作を開始し、一致しないと判断した場合、取得したユーザ情報に対応付けられた他の実行部の特定を制御部に要求する。本願に開示する情報処理装置は、前記複数の実行部と、前記複数の実行部のそれぞれに対応付けられたユーザのユーザ情報との対応を記憶するユーザ対応記憶部を備える。制御部は、ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記他の実行部をユーザ対応記憶部に記憶してある対応に基づいて特定する。そして、制御部は、前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替える。
【００１２】
本願に開示する情報処理装置によれば、複数の実行部のそれぞれは、予め対応付けられた入力部を介してユーザ情報を取得した場合、取得したユーザ情報が予め対応付けられたユーザのユーザ情報であれば、適切なユーザによる使用として通常動作を開始する。よって、各実行部は、予め対応付けられた入力部を介して予め対応付けられたユーザからの使用要求があった場合は、予め対応付けられたユーザであることが検出された時点で通常動作を開始する。
【００１３】
一方、取得したユーザ情報が予め対応付けられたユーザのユーザ情報ではない場合、実行部のそれぞれは、取得したユーザ情報に対応付けられた他の実行部の特定を制御部に要求する。制御部は、特定を要求された他の実行部を特定する。制御部は、他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替える。よって、ユーザが使用した入力部に予め対応付けられた実行部が、このユーザに割り当てられている実行部ではない場合、ユーザが使用してきた入力部を、このユーザに割り当てられている実行部に対応付ける。
【発明の効果】
【００１４】
本願に開示する情報処理装置では、いずれの入力部を使用した場合であっても、各ユーザは、自身に割り当てられている仮想マシンを使用することができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態１のＰＣの構成を示す模式図である。
【図２】実施形態１のＰＣの構成を示すブロック図である。
【図３】各テーブルの格納内容を示す模式図である。
【図４】実施形態１のＰＣの機能を示す機能ブロック図である。
【図５】実施形態１のＰＣの機能を示す機能ブロック図である。
【図６】表示画面の構成を示す模式図である。
【図７】実施形態１のＰＣの動作を説明するための説明図である。
【図８】電源投入時にＣＰＵが行なう処理の手順を示すフローチャートである。
【図９】ユーザの認証処理の手順を示すフローチャートである。
【図１０】ユーザの認証処理の手順を示すフローチャートである。
【図１１】ユーザの認証処理の手順を示すフローチャートである。
【図１２】ＶＭが行なう終了処理の手順を示すフローチャートである。
【図１３】履歴情報テーブルの格納内容を示す模式図である。
【図１４】実施形態２のＰＣの機能を示す機能ブロック図である。
【図１５】電源投入時にＣＰＵが行なう処理の手順を示すフローチャートである。
【図１６】電源投入時にＣＰＵが行なう処理の手順を示すフローチャートである。
【図１７】デバイス対応付けテーブルの格納内容を示す模式図である。
【図１８】実施形態３のＰＣの機能を示す機能ブロック図である。
【図１９】ユーザの認証処理の手順を示すフローチャートである。
【図２０】ユーザの認証処理の手順を示すフローチャートである。
【図２１】ユーザの認証処理の手順を示すフローチャートである。
【図２２】ＶＭがデスクトップＵＩモードでの動作を終了した場合にＶＭＭが行なう処理の手順を示すフローチャートである。
【図２３】実施形態４のＰＣの機能を示す機能ブロック図である。
【図２４】ユーザの認証処理の手順を示すフローチャートである。
【図２５】実施形態５のＰＣの機能を示す機能ブロック図である。
【図２６】ユーザの認証処理の手順を示すフローチャートである。
【図２７】ユーザの認証処理の手順を示すフローチャートである。
【図２８】ユーザの認証処理の手順を示すフローチャートである。
【図２９】実施形態６の表示画面の構成を示す模式図である。
【発明を実施するための形態】
【００１６】
以下に、本願に開示する情報処理装置、情報処理方法及びコンピュータプログラムを、各実施形態を示す図面に基づいて詳述する。以下では、本願に開示する情報処理装置をパーソナルコンピュータ（以下、ＰＣという）に適用した各実施形態について説明する。
【００１７】
（実施形態１）
以下に、実施形態１に係るＰＣについて説明する。図１は実施形態１のＰＣの構成を示す模式図である。本実施形態１のＰＣ１０は、筺体に８つのＵＳＢポート５ａ，５ａ…及び４つのモニタ接続ポート６ａ，６ａ…を有する。図１では、ＰＣ１０の側面の下方に水平方向に８つ並べて示したポートがＵＳＢポート５ａ，５ａ…であり、ＵＳＢポート５ａ，５ａ…の上方に水平方向に４つ並べて示したポートがモニタ接続ポート６ａ，６ａ…である。
【００１８】
本実施形態１のＰＣ１０には、ＵＳＢポート５ａ，５ａ…に接続されたＵＳＢケーブルを介して、４つのキーボード５１ｂ，５２ｂ，５３ｂ，５４ｂ及び４つのマウス５１ｃ，５２ｃ，５３ｃ，５４ｃが接続されている。また、本実施形態１のＰＣ１０には、モニタ接続ポート６ａ，６ａ…に接続されたモニタ接続用ケーブルを介して４つのモニタ５１ａ，５２ａ，５３ａ，５４ａが接続されている。
【００１９】
従って、本実施形態１のＰＣ１０では、モニタ５１ａ（５２ａ，５３ａ，５４ａ）、キーボード５１ｂ（５２ｂ，５３ｂ，５４ｂ）及びマウス５１ｃ（５２ｃ，５３ｃ，５４ｃ）をそれぞれ含む入出力デバイスセット５１（５２，５３，５４）を４つ設置することができる。しかし、本願に開示する情報処理装置を適用できるＰＣは、このような構成に限られない。例えば、ＵＳＢポート５ａ，５ａ…の数は８つに限られず、モニタ接続ポート６ａ，６ａ…の数は４つに限られない。また、１つのＵＳＢポート５ａにＵＳＢハブを接続し、ＵＳＢハブを介して複数のキーボード及びマウスを接続させたＰＣ１０にも、本願に開示する情報処理装置を適用することができる。
【００２０】
図２は実施形態１のＰＣ１０の構成を示すブロック図である。本実施形態１のＰＣ１０は、ＣＰＵ１、ＲＯＭ（Read Only Memory）２、ＲＡＭ（Random Access Memory）３、ハードディスクドライブ（ＨＤＤ）４、ＵＳＢインタフェース５、モニタインタフェース６等のハードウェア各部を備える。これらのハードウェア各部はバス１ａを介して相互に接続されている。
【００２１】
ＣＰＵ１は、ＲＯＭ２又はＨＤＤ４に予め格納されている制御プログラムを適宜ＲＡＭ３に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ＣＰＵ１は、ＨＤＤ４に格納されているＶＭＭ（Virtual Machine Monitor）プログラム２０及びＯＳプログラム３０をそれぞれＲＡＭ３に読み出して実行することにより、ＶＭＭ２１及びＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄ（図４，５参照）として動作する。ＣＰＵ１は、ＶＭＭ２１として動作することにより、論理的に複数のＣＰＵ１として動作する。なお、ＣＰＵ１にマルチコアＣＰＵを用いた場合、ＶＭＭ２１、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄをそれぞれ物理的に異なるＣＰＵコア上に分散させて動作させることができるが、ＣＰＵ１にシングルコアＣＰＵを用いてもよいことは勿論である。
【００２２】
ＲＯＭ２は、ＰＣ１０を本願に開示する情報処理装置として動作させるために必要な種々の制御プログラムを予め格納している。ＲＡＭ３は、例えばＳＲＡＭ（Static ＲＡＭ）、ＤＲＡＭ（Dynamic ＲＡＭ）、フラッシュメモリ等である。ＲＡＭ３は、ＣＰＵ１による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００２３】
ＨＤＤ４は大容量の記憶装置である。ＨＤＤ４は、ＰＣ１０を本願に開示する情報処理装置として動作させるために必要な種々の制御プログラム、図３（ａ）に示すようなＶＭ−ユーザ対応テーブル４ａ、図３（ｂ）に示すようなデバイステーブル４ｂ、図３（ｃ）に示すようなユーザ情報テーブル４ｃ、図３（ｄ）に示すようなＶＭ−デバイス対応テーブル４ｄ、各種のデータ等を格納している。また、ＨＤＤ４は、ＣＰＵ１が読み出して実行する制御プログラムとして、ＶＭＭプログラム２０、４つのＯＳプログラム３０、アプリケーションプログラム４０等を格納している。
【００２４】
ＵＳＢインタフェース５には、８つのＵＳＢポート５ａ，５ａ…が接続されている。ＵＳＢインタフェース５は、ＵＳＢポート５ａ，５ａ…にそれぞれ接続されたＵＳＢケーブルを介して接続された機器との間でデータの送受信を行なう。本実施形態１のＵＳＢインタフェース５は、ＵＳＢケーブルを介してキーボード５１ｂ，５２ｂ，５３ｂ，５４ｂ及びマウス５１ｃ，５２ｃ，５３ｃ，５４ｃと接続されている。従って、ＵＳＢインタフェース５は、キーボード５１ｂ，５２ｂ，５３ｂ，５４ｂ及びマウス５１ｃ，５２ｃ，５３ｃ，５４ｃとの間でデータの送受信を行なう。
【００２５】
キーボード５１ｂ，５２ｂ，５３ｂ，５４ｂ及びマウス５１ｃ，５２ｃ，５３ｃ，５４ｃは、ユーザがＰＣ１０を操作するために必要な各種の操作キー及び移動検知装置等を備えている。ユーザにより各操作キーが操作された場合、キーボード５１ｂ，５２ｂ，５３ｂ，５４ｂ及びマウス５１ｃ，５２ｃ，５３ｃ，５４ｃは、操作された操作キーに対応した制御信号を、対応するＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄへ送出する。ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄは、キーボード５１ｂ，５２ｂ，５３ｂ，５４ｂ及びマウス５１ｃ，５２ｃ，５３ｃ，５４ｃから取得した制御信号に対応した処理を実行する。
【００２６】
モニタインタフェース６には、４つのモニタ接続ポート６ａ，６ａ…が接続されている。本実施形態１のモニタインタフェース６は、モニタ接続ポート６ａ，６ａ…にそれぞれ接続されたモニタ接続用ケーブルを介してモニタ５１ａ，５２ａ，５３ａ，５４ａと接続されている。従って、モニタインタフェース６は、モニタ５１ａ，５２ａ，５３ａ，５４ａとの間でデータの送受信を行なう。
【００２７】
モニタ５１ａ，５２ａ，５３ａ，５４ａは、液晶ディスプレイ又はＣＲＴ（Cathode Ray Tube）ディスプレイ等である。モニタ５１ａ，５２ａ，５３ａ，５４ａは、対応するＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄから、モニタインタフェース６を介して送出されてくるデータに従って、ＰＣ１０（ＶＭ）の動作状態、ユーザによって入力された情報、ユーザに対して通知すべき情報等を表示する。
【００２８】
図３は各テーブルの格納内容を示す模式図である。図３（ａ）はＶＭ−ユーザ対応テーブル４ａの格納内容を、図３（ｂ）はデバイステーブル４ｂの格納内容を、図３（ｃ）はユーザ情報テーブル４ｃの格納内容を、図３（ｄ）はＶＭ−デバイス対応テーブル４ｄの格納内容をそれぞれ示す。
【００２９】
図３（ａ）に示すように、ＶＭ−ユーザ対応テーブル（ユーザ対応記憶部）４ａには、ＣＰＵ１がＯＳプログラム３０のそれぞれを実行することによって構築されるＶＭを識別するためのＶＭ−ＩＤと、それぞれのＶＭを割り当てられているユーザを識別するためのユーザＩＤ（ユーザ情報）とが対応付けて格納されている。ＶＭ−ユーザ対応テーブル４ａの格納内容は、ＰＣ１０の初期設定処理時に登録される。従って、ＰＣ１０は、ＶＭ−ユーザ対応テーブル４ａに格納されたユーザＩＤのユーザによってのみ使用可能である。なお、各ＶＭは、自身を割り当てられたユーザのユーザＩＤ、ユーザによって設定された各種の設定情報等を、自身に割り当てられたＲＡＭ３又はＨＤＤ４に格納している。
【００３０】
図３（ｂ）に示すように、デバイステーブル４ｂには、ＰＣ１０に接続されている全ての入出力デバイスセット５１，５２，５３，５４のそれぞれに割り当てられた入出力デバイスＩＤが格納されている。デバイステーブル４ｂの格納内容は、ＰＣ１０の初期設定処理時に登録される。なお、モニタ５１ａ（又は５２ａ，５３ａ，５４ａ）、キーボード５１ｂ（又は５２ｂ，５３ｂ，５４ｂ）及びマウス５１ｃ（又は５２ｃ，５３ｃ，５４ｃ）のそれぞれをまとめて入出力デバイスセット５１（又は５２，５３，５４）として扱う。
【００３１】
図３（ｃ）に示すように、ユーザ情報テーブル（認証情報記憶部）４ｃには、ＰＣ１０の使用が可能なユーザのユーザＩＤと、各ユーザによって予め登録されているパスワード（認証情報）とが対応付けて格納されている。ユーザ情報テーブル４ｃの格納内容は、ＰＣ１０の初期設定処理時に登録されると共に、ユーザが自身のＶＭを使用中に自身のパスワードを変更した場合には、対応するＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄによって変更される。
【００３２】
図３（ｄ）に示すように、ＶＭ−デバイス対応テーブル４ｄには、ＶＭのＶＭ−ＩＤと、各ＶＭに対応付けられた入出力デバイスセット５１，５２，５３，５４を示す入出力デバイスＩＤとが対応付けて格納されている。ＶＭ−デバイス対応テーブル４ｄの格納内容は、ＶＭＭ２１がＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄを起動させた場合に、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれに入出力デバイスセット５１，５２，５３，５４を対応付ける都度、ＶＭＭ２１によって登録される。また、ＶＭ−デバイス対応テーブル４ｄの格納内容は、ＶＭＭ２１によってＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄと入出力デバイスセット５１，５２，５３，５４との対応が変更される都度、ＶＭＭ２１によって更新される。
【００３３】
以下に、上述した構成のＰＣ１０において、ＣＰＵ１が、ＲＯＭ２又はＨＤＤ４に格納されている各種の制御プログラムを実行することによって実現される機能について説明する。図４及び図５は実施形態１のＰＣ１０の機能を示す機能ブロック図である。なお、図４及び図５は、ＰＣ１０が仮想化技術により複数のＰＣ（ＶＭ）として動作する原理を示している。
【００３４】
図４及び図５には、ＰＣ１０において、ＶＭＭ２１の動作により、４つのＶＭ（第１ＶＭ、第２ＶＭ、第３ＶＭ、第４ＶＭ）がそれぞれ独立して実行可能となっていることを示している。なお、ＶＭＭ２１は、ＣＰＵ１、ＲＡＭ３、ＨＤＤ４、入出力デバイスセット５１，５２，５３，５４等を含むハードウェア上で動作する。
【００３５】
ＶＭＭプログラム２０は、ＰＣ１０において複数（本実施形態１では４つ）のＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄが動作する仮想化技術を実現するためのソフトウェアプログラムである。ＣＰＵ１は、ＶＭＭプログラム２０をＨＤＤ４から読み出して実行することによりＶＭＭ（仮想マシンモニタ）２１として動作し、ＰＣ１０が論理的に複数のＰＣとして動作する仮想環境（第１ＶＭ，第２ＶＭ，第３ＶＭ，第４ＶＭ）を提供する。これにより、１つのＰＣ１０において論理的に４つの独立した仮想マシン（ＶＭ）が動作することが可能となる。
【００３６】
ＶＭＭ２１（制御部）は、各ソフトウェアとハードウェア資源との間の管理を実現し、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれに対するハードウェアの動作の基本的な制御を行なう。例えば、ＶＭＭ２１は、各ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄを起動させた場合に、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれに対して入出力デバイスセット５１，５２，５３，５４の割り当てを行なう。
【００３７】
ＯＳプログラム３０は、ユーザが操作できるＣＵＩ（Command User Interface）、ＧＵＩ（Graphic User Interface）を持つＷｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ等のＯＳソフトウェアである。ＣＰＵ１は、４つのＯＳプログラム３０をそれぞれＨＤＤ４から読み出して実行することによりＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄとして動作し、各種処理を実行する実行部として機能する。ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれは、実行した処理に応じて表示すべきＣＵＩ，ＧＵＩ等を含む表示画面を生成し、自身に対応付けられているモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示させる。また、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれは、自身に対応付けられているキーボード５１ｂ（又は５２ｂ，５３ｂ，５４ｂ）及びマウス５１ｃ（又は５２ｃ、５３ｃ、５４ｃ）からの制御信号を受け付け、受け付けた制御信号に応じて各種処理を実行する。
【００３８】
ＶＭＭ２１は、ＯＳプログラム３０のそれぞれをＨＤＤ４から読み出して実行することにより、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄを起動させる。このとき、ＶＭＭ２１は、各ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄによって利用されるハードウェア、即ち、ＲＡＭ３、ＨＤＤ４、入出力デバイスセット５１，５２，５３，５４の割り当て等を行なう。なお、ＣＰＵ１も、ＶＭＭ２１自身、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれにＣＰＵコア単位に割り当てられる。
【００３９】
ＲＡＭ３は、ＣＰＵ１がＶＭＭプログラム２０及びＯＳプログラム３０等をそれぞれ読み出す際に使用されるほか、ＣＰＵ１が各制御プログラムを読み出して実行し、各処理を行なう際に一時的に各種情報を記憶する。また、ＲＡＭ３は、ＣＰＵ１がＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄとして動作する際に、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄ毎の設定情報を記憶するためにも使用される。従って、ＲＡＭ３も、ＶＭＭ２１によって論理的に複数のＲＡＭ３に分割され、ＶＭＭ２１、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれに割り当てられる。
【００４０】
上述した構成のＰＣ１０において電源が投入され、ＰＣ１０のハードウェア各部の起動が完了した場合、ＣＰＵ１は、まず、ＶＭＭプログラム２０を実行してＶＭＭ２１の動作を開始する。そして、ＶＭＭ２１が、ＯＳプログラム３０のそれぞれを読み出して実行し、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれを起動させる。このとき、ＶＭＭ２１は、各ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄに使用されるハードウェアの割り当て等を行ない、それぞれのＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄに仮想環境（第１ＶＭ，第２ＶＭ，第３ＶＭ，第４ＶＭ）を割り当てる。なお、各ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄに割り当てるハードウェアとしては、例えば、ＣＰＵ１、ＲＡＭ３、ＨＤＤ４、入出力デバイスセット５１，５２，５３，５４等がある。
【００４１】
ＶＭＭ２１は、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれの動作を正常に維持するための機能を有する。具体的には、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれの起動及び終了を制御する機能、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれへのハードウェアの割り当てを行なう機能、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれに適切なアプリケーションを実行させる機能等を有する。
【００４２】
アプリケーションプログラム４０は、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれによって実行されるソフトウェアプログラムである。アプリケーションプログラム４０は、外部メモリ又はネットワーク（共に図示せず）を介してＰＣ１０に読み取らせてＨＤＤ４に格納させてもよい。
【００４３】
本実施形態１のＶＭＭ２１は、ＶＭＭプログラム２０に含まれるモジュールによって、ＶＭ起動部２２、デバイス切替部２３、デバイス振分部２４、認証部２５、対象ＶＭ決定部２６等の各機能を有する。また、本実施形態１のＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄは、ＯＳプログラム３０に含まれるモジュールによって、認証ユーザインタフェース部（以下、認証ＵＩ部という）３２ａ，３２ｂ，３２ｃ，３２ｄ、ユーザ判定部３３ａ，３３ｂ，３３ｃ，３３ｄ、モード切替部３４ａ，３４ｂ，３４ｃ，３４ｄ、デスクトップユーザインタフェース部（以下、デスクトップＵＩ部という）３５ａ，３５ｂ，３５ｃ，３５ｄ等の各機能を有する。
【００４４】
なお、図４及び図５では、認証ＵＩ部３２ｂ，３２ｃ，３２ｄ、ユーザ判定部３３ｂ，３３ｃ，３３ｄ、モード切替部３４ｃ，３４ｄ、デスクトップＵＩ部３５ｂ，３５ｃ，３５ｄの図示を省略している。
【００４５】
また、以下では、第１ＶＭ、第２ＶＭ、第３ＶＭ及び第４ＶＭをまとめてＶＭと呼び、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄをまとめてＯＳ３１と呼び、認証ＵＩ部３２ａ，３２ｂ，３２ｃ，３２ｄをまとめて認証ＵＩ部３２と呼ぶこともある。また、ユーザ判定部３３ａ，３３ｂ，３３ｃ，３３ｄをまとめてユーザ判定部３３と呼び、モード切替部３４ａ，３４ｂ，３４ｃ，３４ｄをまとめてモード切替部３４と呼び、デスクトップＵＩ部３５ａ，３５ｂ，３５ｃ，３５ｄをまとめてデスクトップＵＩ部３５と呼ぶこともある。
【００４６】
ＰＣ１０に電源が投入され、ＣＰＵ１がＶＭＭ２１の動作を開始した場合、まず、ＶＭ起動部２２が、ＶＭ−ユーザ対応テーブル４ａ及びデバイステーブル４ｂの格納内容に基づいて第１ＶＭ，第２ＶＭ，第３ＶＭ，第４ＶＭのそれぞれを起動させる。具体的には、ＶＭ起動部２２は、ＶＭ−ユーザ対応テーブル４ａに格納されているＶＭ−ＩＤ及びデバイステーブル４ｂに格納されている入出力デバイスＩＤをそれぞれ先頭から順に読み出す。
【００４７】
ＶＭ起動部２２は、ＶＭ−ユーザ対応テーブル４ａから読み出したＶＭ−ＩＤのＶＭに、デバイステーブル４ｂから読み出した入出力デバイスＩＤが示す入出力デバイスセット５１を割り当て、第１ＶＭ，第２ＶＭ，第３ＶＭ，第４ＶＭを起動させる。ＶＭ起動部２２は、ＶＭ−ユーザ対応テーブル４ａから読み出したＶＭ−ＩＤに対応するＯＳプログラム３０を、それぞれのＶＭに実行させてＯＳ３１ａ、ＯＳ３１ｂ，ＯＳ３１ｃ，ＯＳ３１ｄを起動させる。ＶＭ起動部２２は、起動させた第１ＶＭのＶＭ−ＩＤと、この第１ＶＭに割り当てた入出力デバイスセット５１の入出力デバイスＩＤとを対応付けてＶＭ−デバイス対応テーブル４ｄに格納させる。
【００４８】
なお、各ユーザがＯＳ３１に対して設定した各種の設定情報を、ＯＳ３１を起動させる際に読み込ませることにより、各ユーザに対応したＯＳ３１を構成することができる。また、設定情報には各ユーザのユーザＩＤ等のユーザ情報が含まれており、各ＯＳ３１は、ユーザ情報に基づいて、自身に予めどのユーザが対応付けられているのかを把握することができる。
【００４９】
ＶＭ起動部２２は、ＶＭ−ユーザ対応テーブル４ａに格納されている全てのＶＭ−ＩＤに対応するＶＭの起動を行なう。ここでは、ＶＭ起動部２２は、４つのＶＭの起動を行ない、４つのＶＭのＶＭ−ＩＤ及びそれぞれのＶＭに割り当てた入出力デバイスセット５１，５２，５３，５４の入出力デバイスＩＤをＶＭ−デバイス対応テーブル４ｄに格納する。ＶＭ起動部２２は、全てのＶＭを起動させた後、その旨をデバイス切替部２３へ通知する。
【００５０】
デバイス切替部２３は、ＶＭ−デバイス対応テーブル４ｄの格納内容に基づいて、それぞれのＶＭと、入出力デバイスセット５１，５２，５３，５４とを対応付ける。具体的には、デバイス切替部２３は、ＶＭ−デバイス対応テーブル４ｄに格納されているＶＭ−ＩＤ及び入出力デバイスＩＤを先頭から順に読み出す。デバイス切替部２３は、読み出したＶＭ−ＩＤに対応するＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄに、読み出した入出力デバイスＩＤが示す入出力デバイスセット５１，５２，５３，５４を割り当てるようにデバイス振分部２４に指示する。
【００５１】
デバイス振分部２４は、デバイス切替部２３からの指示に従って、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれに、入出力デバイスセット５１，５２，５３，５４のそれぞれを振り分ける。具体的には、デバイス振分部２４は、入出力デバイスセット５１，５２，５３，５４のそれぞれからの入力情報を、それぞれ対応するＶＭ（ＯＳ３１）へ転送し、ＶＭからの出力情報を、それぞれ対応する入出力デバイスセット５１，５２，５３，５４へ転送する。これにより、入出力デバイスセット５１，５２，５３，５４のそれぞれは、対応するＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄに対するダイレクトＩ／Ｏ（Input/Output）として機能することができる。
【００５２】
上述したようにＶＭ起動部２２によって起動したＶＭのそれぞれでは、まず、認証ＵＩ部３２が動作する。なお、ＶＭのそれぞれは、認証ＵＩモード及びデスクトップＵＩモードの２つのモードを備えており、起動直後は認証ＵＩモードが選択されている。認証ＵＩモードは、認証ＵＩ部３２が動作し、ユーザの認証処理のみを行なうモードであり、デスクトップＵＩモードは、デスクトップＵＩ部３５が動作し、ＯＳ３１が通常動作を行なうモードである。
【００５３】
認証ＵＩ部（入力受付部）３２は、図６に示すような表示画面を、自身のＶＭに割り当てられたモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示させ、ユーザを認証するための情報の受け付けを行なう。図６は表示画面の構成を示す模式図である。図６に示した認証ダイアログは、ユーザＩＤ（ユーザ情報）及びパスワード（認証情報）の入力欄、ＯＫボタン及びキャンセルボタンをそれぞれ表示する。ＰＣ１０を使用したいユーザは、入出力デバイスセット５１，５２，５３，５４のいずれかを用いてユーザＩＤ及びパスワードを入力する。
【００５４】
入出力デバイスセット５１，５２，５３，５４のいずれかを用いてユーザＩＤ及びパスワードが入力され、ＯＫボタンが選択された場合、使用された入出力デバイスセット５１（又は５２，５３，５４）に対応する認証ＵＩ部（ユーザ情報取得部）３２が、ユーザＩＤ及びパスワードを取得する。即ち、認証ＵＩ部３２は、自身のＶＭに対応付けられている入出力デバイスセット５１（又は５２，５３，５４）を介してユーザＩＤ及びパスワードを取得する。認証ＵＩ部（認証依頼部）３２は、取得したユーザＩＤ及びパスワードをＶＭＭ２１の認証部２５へ通知し、取得したユーザＩＤ及びパスワードの認証を認証部２５に依頼する。
【００５５】
ＶＭＭ２１の認証部２５は、ユーザ情報テーブル４ｃの格納内容に基づいて、認証ＵＩ部３２から取得したユーザＩＤ及びパスワードの認証を行ない、認証結果を認証ＵＩ部３２へ返す。具体的には、認証部２５は、認証ＵＩ部３２から取得したユーザＩＤ及びパスワードがユーザ情報テーブル４ｃに格納されているか否かを判断する。
【００５６】
認証部（認証結果通知部）２５は、取得したユーザＩＤ及びパスワードがユーザ情報テーブル４ｃに格納されていると判断した場合、このユーザＩＤ及びパスワードが認証できた旨を示す認証結果を認証ＵＩ部３２へ返す。一方、取得したユーザＩＤ及びパスワードがユーザ情報テーブル４ｃに格納されていないと判断した場合、認証部（認証結果通知部）２５は、このユーザＩＤ及びパスワードが認証できなかった旨を示す認証結果を認証ＵＩ部３２へ返す。
【００５７】
ＶＭの認証ＵＩ部３２は、ＶＭＭ２１の認証部２５から、認証できなかった旨を示す認証結果が通知された場合、例えば「ユーザＩＤまたはパスワードが誤りです」のようなエラーメッセージを表示する。そして、認証ＵＩ部３２は、図６に示した認証ダイアログを再度表示し、ユーザを認証するための情報の受け付けを行なう。
【００５８】
一方、認証ＵＩ部３２は、ＶＭＭ２１の認証部２５から、認証できた旨を示す認証結果が通知された場合、認証されたユーザＩＤをユーザ判定部３３へ通知する。ユーザ判定部（判断部）３３は、認証ＵＩ部３２から通知されたユーザＩＤが、自身のＶＭに予め対応付けられているユーザのユーザＩＤに一致するか否かを判断する。なお、自身のＶＭに予め対応付けられているユーザのユーザＩＤは、ＶＭのシステム情報としてＯＳ３１毎にＨＤＤ４等に格納されている。
【００５９】
ユーザＩＤが一致すると判断した場合、ユーザ判定部３３は、モード切替部３４に、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示する。この場合、ユーザがユーザＩＤ及びパスワードを入力するために使用した入出力デバイスセット５１（又は５２，５３，５４）に予め対応付けられているＶＭが、このユーザに対応付けられているＶＭであったので、このＶＭをそのまま使用すればよいからである。
【００６０】
モード切替部３４は、認証ＵＩモードからデスクトップＵＩモードへの切り替えをユーザ判定部３３から指示された場合、認証ＵＩ部３２によってモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示していた認証ダイアログの表示を終了させる。次に、モード切替部（動作開始部）３４は、デスクトップＵＩ部３５に動作を開始させ、これにより、ユーザは、自身に割り当てられているＶＭのデスクトップＵＩモードでの使用を開始できる。
【００６１】
一方、ユーザＩＤが一致しないと判断した場合、ユーザ判定部（特定要求部）３３は、認証ＵＩ部３２から通知されたユーザＩＤをＶＭＭ２１の対象ＶＭ決定部２６に通知し、このユーザＩＤに対応付けられている他のＶＭの特定を要求する。この場合、ユーザがユーザＩＤ及びパスワードを入力するために使用した入出力デバイスセット５１（又は５２，５３，５４）に予め対応付けられているＶＭが、このユーザに対応付けられているＶＭでなかったので、このユーザに対応付けられている他のＶＭを特定する必要があるからである。
【００６２】
なお、ここでは、説明を明確にするために、ユーザがユーザＩＤ及びパスワードを入力するために使用した入出力デバイスセット５１（又は５２，５３，５４）に予め対応付けられているＶＭを切替前のＶＭと呼び、このユーザに対応付けられているＶＭを切替後のＶＭと呼んで区別する。
【００６３】
ＶＭＭ２１の対象ＶＭ決定部（特定部）２６は、ＶＭ−ユーザ対応テーブル４ａの格納内容に基づいて、切替前のＶＭのユーザ判定部３３から通知されたユーザＩＤに対応付けられているＶＭ（切替後のＶＭ）を特定する。具体的には、対象ＶＭ決定部２６は、ユーザ判定部３３から通知されたユーザＩＤに対応してＶＭ−ユーザ対応テーブル４ａに格納されているＶＭ−ＩＤ（切替後のＶＭのＶＭ−ＩＤ）をＶＭ−ユーザ対応テーブル４ａから読み出す。対象ＶＭ決定部２６は、ユーザが使用している入出力デバイスセット５１（又は５２，５３，５４）を、切替後のＶＭに対応付けるようにデバイス切替部（切替部）２３に指示する。
【００６４】
デバイス切替部２３は、ＶＭと入出力デバイスセット５１，５２，５３，５４との対応付けの切り替えを指示された場合、ユーザが使用している入出力デバイスセット５１（又は５２，５３，５４）を切替前のＶＭから剥奪する。デバイス切替部２３は、切替後のＶＭから、この時点で切替後のＶＭに対応付けられている入出力デバイスセット５２（又は５１，５３，５４）を剥奪する。そして、デバイス切替部２３は、切替後のＶＭに、ユーザが使用している入出力デバイスセット５１（又は５２，５３，５４）を対応付ける。また、デバイス切替部２３は、切替前のＶＭに、切替後のＶＭから剥奪された入出力デバイスセット５２（又は５１，５３，５４）を対応付ける。
【００６５】
デバイス切替部２３は、ＶＭから入出力デバイスセット５１（又は５２，５３，５４）を剥奪する場合、このＶＭのＶＭ−ＩＤに対応してＶＭ−デバイス対応テーブル４ｄに格納されている入出力デバイスＩＤを削除する。また、デバイス切替部２３は、ＶＭに入出力デバイスセット５１（又は５２，５３，５４）を対応付ける場合、このＶＭのＶＭ−ＩＤに対応させ、対応付ける入出力デバイスセット５１（又は５２，５３，５４）の入出力デバイスＩＤをＶＭ−デバイス対応テーブル４ｄに格納する。
【００６６】
デバイス切替部２３は、切替前のＶＭに対応付けられていた入出力デバイスセット５１（又は５２，５３，５４）と、切替後のＶＭに対応付けられていた入出力デバイスセット５２（又は５１，５３，５４）との切替を完了した場合、ＶＭ−デバイス対応テーブル４ｄの格納内容をデバイス振分部２４へ通知する。これにより、デバイス振分部２４は、対応付けを切り替えられたＶＭ及び入出力デバイスセット５１，５２，５３，５４の対応付けを行なうことができる。
【００６７】
デバイス切替部２３によって、ユーザが使用している入出力デバイスセット５１（又は５２，５３，５４）を切替後のＶＭに対応付けた後、ＶＭＭ２１の対象ＶＭ決定部２６は、切替後のＶＭのモード切替部３４に、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示する。切替後のＶＭのモード切替部３４は、ＶＭＭ２１の対象ＶＭ決定部２６から、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示された場合、認証ＵＩ部３２によって表示していた認証ダイアログの表示を終了させる。次に、切替後のＶＭのモード切替部３４は、デスクトップＵＩ部３５に動作を開始させ、これにより、ユーザは、自身に割り当てられているＶＭのデスクトップＵＩモードでの使用を開始できる。
【００６８】
なお、切替前のＶＭは、切替後のＶＭに元々対応付けられていた入出力デバイスセット５２（又は５１，５３，５４）を対応付けられた後は、認証ＵＩ部３２によって認証ダイアログを、対応付けられたモニタ５２ａ（又は５１ａ，５３ａ，５４ａ）に表示させる。
【００６９】
このように、ユーザが、入出力デバイスセット５１，５２，５３，５４のいずれを使用した場合であっても、ユーザが使用した入出力デバイスセット５１（又は５２，５３，５４）を各ユーザに割り当てられているＶＭに対応付けることができる。よって、ユーザは、ＶＭを使用する際に、特定の入出力デバイスセット５１（又は５２，５３，５４）を使用する必要はなく、使用場所に自由度を設けることができ、ユーザの利便性も向上する。
【００７０】
上述したようにデスクトップＵＩモードでの動作を開始したＶＭにおいて、ユーザが動作の終了を指示した場合、ＯＳ３１は、モード切替部３４に、デスクトップＵＩモードから認証ＵＩモードへの切り替えを指示する。モード切替部３４は、デスクトップＵＩモードから認証ＵＩモードへの切り替えをＯＳ３１から指示された場合、デスクトップＵＩ部３５の動作を終了させた後、認証ＵＩ部３２に動作を開始させる。これにより、ＶＭは、認証ＵＩモードでの動作を開始し、図６に示した認証ダイアログが、このＶＭに対応付けられているモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示される。
【００７１】
以下に、上述したＰＣ１０の動作を、具体的な例を用いて説明する。図７は実施形態１のＰＣ１０の動作を説明するための説明図である。ＰＣ１０に電源が投入されてＶＭＭ２１が起動し、ＶＭＭ２１によってＶＭのそれぞれが起動した場合、図７（ａ）に示すように、各ＶＭでは、認証ＵＩ部３２ａ，３２ｂ，３２ｃ，３２ｄが動作している。この状態で、例えば、第１ＶＭに対応付けられている入出力デバイスセット５１（又は５２，５３，５４）を用いてユーザがユーザＩＤ及びパスワードを入力してきたとする。このユーザＩＤ及びパスワードは、第１ＶＭの認証ＵＩ部３２ａによって取得される。
【００７２】
第１ＶＭの認証ＵＩ部３２ａが取得したユーザＩＤ及びパスワードは、ＶＭＭ２１（認証部２５）によって認証され、認証できた場合、第１ＶＭのユーザ判定部３３ａによって、このユーザＩＤのユーザが第１ＶＭのユーザであるか否かが判定される。このユーザが第１ＶＭのユーザであれば、第１ＶＭのモード切替部３４ａによって、第１ＶＭのモードが認証ＵＩモードからデスクトップＵＩモードに切り替えられ、図７（ｂ）に示すように、第１ＶＭにおいてデスクトップＵＩ部３５ａの動作が開始される。
【００７３】
一方、このユーザが第１ＶＭのユーザでなければ、ＶＭＭ２１（対象ＶＭ決定部２６）によって、このユーザに対応するＶＭが特定される。ここでは、対応するＶＭが第２ＶＭであると特定されたとする。ＶＭＭ２１は、対応するＶＭを特定した場合、この第２ＶＭのモード切替部３４ｂに、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示する。これにより、第２ＶＭのモード切替部３４ｂによって、第２ＶＭのモードが認証ＵＩモードからデスクトップＵＩモードに切り替えられ、図７（ｃ）に示すように、第２ＶＭにおいてデスクトップＵＩ部３５ｂの動作が開始される。
【００７４】
また、図７（ｂ）に示す第１ＶＭ又は図７（ｃ）に示す第２ＶＭのようにデスクトップＵＩ部３５が動作を行なっているＶＭにおいて、ユーザが動作の終了を指示した場合、各ＶＭのモード切替部３４によって、デスクトップＵＩ部３５の動作が終了され、認証ＵＩ部３２の動作が開始される。この場合、図７（ａ）に示すように、各ＶＭで認証ＵＩ部３２ａ，３２ｂ，３２ｃ，３２ｄが動作している状態に戻る。
【００７５】
以下に、本実施形態１のＰＣ１０において、電源が投入された場合にＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。図８は電源投入時にＣＰＵ１が行なう処理の手順を示すフローチャートである。なお、以下の処理は、ＰＣ１０のＲＯＭ２又はＨＤＤ４に格納してある制御プログラムに従ってＣＰＵ１によって実行される。
【００７６】
ＰＣ１０に電源が投入され、ＰＣ１０のハードウェア各部の起動が完了した場合、ＣＰＵ１は、まず、ＶＭＭプログラム２０を実行してＶＭＭ２１を起動する（Ｓ１）。ＶＭＭ２１（ＣＰＵ１）は、ＶＭ−ユーザ対応テーブル４ａからＶＭ−ＩＤを１つ読み出し（Ｓ２）、デバイステーブル４ｂから入出力デバイスＩＤを１つ読み出す（Ｓ３）。ＶＭＭ２１は、ＶＭ−ユーザ対応テーブル４ａから読み出したＶＭ−ＩＤに、デバイステーブル４ｂから読み出した入出力デバイスＩＤが示す入出力デバイスセット５１（又は５２，５３，５４）を割り当て（対応付け）、１つのＶＭを起動させる（Ｓ４）。ＶＭＭ２１は、起動させたＶＭに、ＶＭ−ユーザ対応テーブル４ａから読み出したＶＭ−ＩＤに対応するＯＳプログラム３０を実行させる。
【００７７】
ＶＭＭ２１は、起動させたＶＭのＶＭ−ＩＤと、このＶＭに割り当てた入出力デバイスセット５１（又は５２，５３，５４）の入出力デバイスＩＤとを対応付けてＶＭ−デバイス対応テーブル４ｄに格納する（Ｓ５）。ＶＭＭ２１は、ＶＭ−ユーザ対応テーブル４ａに格納されている全てのＶＭ−ＩＤに対応するＶＭの起動を行なったか否かを判断する（Ｓ６）。ＶＭＭ２１は、全てのＶＭを起動していないと判断した場合（Ｓ６：ＮＯ）、ステップＳ２へ処理を戻し、ＶＭ−ユーザ対応テーブル４ａから異なるＶＭ−ＩＤを１つ読み出す（Ｓ２）。
【００７８】
ＶＭＭ２１は、ＶＭ−ユーザ対応テーブル４ａに格納されている全てのＶＭ−ＩＤに対応するＶＭの起動を行なうまで、ステップＳ２〜Ｓ６の処理を繰り返す。全てのＶＭを起動したと判断した場合（Ｓ６：ＹＥＳ）、ＶＭＭ２１は処理を終了する。これにより、ＶＭＭ２１は、複数（ここでは４つ）のＶＭの起動処理を完了し、複数のＶＭをそれぞれ独立して動作させることができる。
【００７９】
次に、上述したように全てのＶＭが起動した状態のＰＣ１０において、ユーザが１つの入出力デバイスセット５１（又は５２，５３，５４）を使用してＰＣ１０（ＶＭ）の使用を開始した場合にＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。図９〜図１１はユーザの認証処理の手順を示すフローチャートである。なお、以下の処理は、ＰＣ１０のＲＯＭ２又はＨＤＤ４に格納してある制御プログラムに従ってＶＭＭ２１及びＶＭ（ＯＳ３１）によって実行される。
【００８０】
なお、以下では、ユーザが、第１ＶＭに対応付けられている入出力デバイスセット５１を介してユーザＩＤ及びパスワードを入力してきた場合にＣＰＵ１（ＶＭＭ２１、ＶＭ）が行なう処理を例に説明する。また、図９及び図１０では、破線で区切った２つの領域において、左側の領域に第１ＶＭによる処理を、右側の領域にＶＭＭ２１による処理をそれぞれ示し、図１１では、破線で区切った２つの領域において、左側の領域にＶＭＭ２１による処理を、右側の領域に第２ＶＭによる処理をそれぞれ示している。
【００８１】
ＶＭＭ２１によって起動した第１ＶＭ（ＯＳ３１ａ）は、対応付けられているモニタ５１ａに、図６に示すような認証ダイアログを表示している（Ｓ１１）。第１ＶＭは、対応付けられている入出力デバイスセット５１（具体的には、キーボード５１ｂ及びマウス５１ｃ）を介してユーザ情報（ユーザＩＤ及びパスワード）が入力されたか否かを判断する（Ｓ１２）。第１ＶＭは、ユーザ情報が入力されていないと判断した場合（Ｓ１２：ＮＯ）、待機し、ユーザ情報が入力されたと判断した場合（Ｓ１２：ＹＥＳ）、ユーザ情報を取得する（Ｓ１３）。
【００８２】
第１ＶＭは、取得したユーザ情報をＶＭＭ２１へ通知し、取得したユーザ情報の認証を依頼する（Ｓ１４）。ＶＭＭ２１は、第１ＶＭから依頼されたユーザ情報の認証を、ユーザ情報テーブル４ｃの格納内容に基づいて行ない（Ｓ１５）、認証結果を第１ＶＭへ通知する（Ｓ１６）。
【００８３】
第１ＶＭは、ＶＭＭ２１から認証結果を取得し（Ｓ１７）、取得した認証結果が認証された旨を示す認証結果であるか否かを判断する（Ｓ１８）。取得した認証結果が認証されなかった旨を示す認証結果であると判断した場合（Ｓ１８：ＮＯ）、第１ＶＭは、認証できなかった旨を示すエラーメッセージを、対応付けられているモニタ５１ａに表示させる（Ｓ１９）。第１ＶＭは、ステップＳ１１に処理を戻し、図６に示すような認証ダイアログをモニタ５１ａに表示する（Ｓ１１）。
【００８４】
取得した認証結果が認証された旨を示す認証結果であると判断した場合（Ｓ１８：ＹＥＳ）、第１ＶＭは、ステップＳ１３で取得したユーザＩＤが、自身の第１ＶＭに予め対応付けられているユーザのユーザＩＤに一致するか否かを判断する（Ｓ２０）。なお、自身の第１ＶＭに予め対応付けられているユーザのユーザＩＤは、第１ＶＭのシステム情報としてＯＳ３１ａが管理している。
【００８５】
ユーザＩＤが一致すると判断した場合（Ｓ２０：ＹＥＳ）、第１ＶＭは、ステップＳ１１で表示した認証ダイアログの表示を終了する（Ｓ２１）。第１ＶＭは、認証ＵＩ部３２ａの動作を終了して、デスクトップＵＩ部３５ａの動作を開始させる（Ｓ２２）。デスクトップＵＩ部３５ａが動作することによって、第１ＶＭは、対応付けられているモニタ５１ａに、デスクトップの表示を開始する（Ｓ２３）。そして、第１ＶＭは、上述したユーザ認証処理を終了し、デスクトップＵＩモードの動作を開始する。
【００８６】
ユーザＩＤが一致しないと判断した場合（Ｓ２０：ＮＯ）、第１ＶＭは、ステップＳ１３で取得したユーザＩＤをＶＭＭ２１へ通知する（Ｓ２４）。なお、以下では、このユーザは第２ＶＭを割り当てられているユーザであるとして説明する。ＶＭＭ２１は、第１ＶＭから通知されたユーザＩＤを取得し（Ｓ２５）、ＶＭ−ユーザ対応テーブル４ａの格納内容に基づいて、このユーザに対応するＶＭ（第２ＶＭ）を特定する（Ｓ２６）。
【００８７】
ＶＭＭ２１は、第１ＶＭから、ユーザが使用している入出力デバイスセット５１を剥奪し（Ｓ２７）、第２ＶＭから、第２ＶＭに割り当てられている入出力デバイスセット５２を剥奪する（Ｓ２８）。ＶＭＭ２１は、第２ＶＭに、ユーザが使用している入出力デバイスセット５１を対応付ける（Ｓ２９）。これにより、第２ＶＭに入出力デバイスセット５１が割り当てられる。
【００８８】
ＶＭＭ２１は、第２ＶＭに、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示する（Ｓ３０）。第２ＶＭは、ＶＭＭ２１からデスクトップＵＩモードへの切り替えを指示された場合、認証ＵＩ部３２ｂによって表示していた認証ダイアログの表示を終了する（Ｓ３１）。第２ＶＭは、認証ＵＩ部３２ｂの動作を終了して、デスクトップＵＩ部３５ｂの動作を開始させる（Ｓ３２）。デスクトップＵＩ部３５ｂが動作することによって、第２ＶＭは、対応付けられているモニタ５１ａに、デスクトップの表示を開始する（Ｓ３３）。そして、第２ＶＭは、上述したユーザ認証処理を終了し、デスクトップＵＩモードの動作を開始する。
【００８９】
一方、ＶＭＭ２１は、第１ＶＭに、第２ＶＭから剥奪した入出力デバイスセット５２を対応付け（Ｓ３４）、上述したユーザ認証処理を終了する。これにより、第１ＶＭに入出力デバイスセット５２が割り当てられ、第１ＶＭは、認証ダイアログを、対応付けられたモニタ５２ａに表示させる。
【００９０】
次に、上述したようにデスクトップＵＩ部３５によるデスクトップＵＩモードでの動作中のＶＭにおいて、ユーザがＶＭの動作を終了させた場合にＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。図１２はＶＭが行なう終了処理の手順を示すフローチャートである。なお、以下の処理は、ＰＣ１０のＲＯＭ２又はＨＤＤ４に格納してある制御プログラムに従ってＣＰＵ１（ＶＭ、ＯＳ３１）によって実行される。
【００９１】
デスクトップＵＩモードでの動作中のＶＭは、ユーザから終了指示を受け付けたか否かを判断しており（Ｓ４１）、終了指示を受け付けていないと判断した場合（Ｓ４１：ＮＯ）、デスクトップＵＩモードでの動作を継続する。終了指示を受け付けたと判断した場合（Ｓ４１：ＹＥＳ）、ＶＭは、デスクトップＵＩ部３５に終了処理を実行させる（Ｓ４２）。デスクトップＵＩ部３５は、保存すべき各種の情報をＨＤＤ４に格納させた後、動作を終了する。ＶＭは、デスクトップＵＩ部３５が終了処理を行なった後、認証ＵＩ部３２の動作を開始させる（Ｓ４３）。認証ＵＩ部３２が動作することによって、ＶＭは、対応付けられているモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に、認証ダイアログを表示させる（Ｓ４４）。これにより、ＶＭは、デスクトップＵＩモードでの動作を終了させ、認証ダイアログを介したユーザＩＤ及びパスワードの受付待ち状態に戻る。
【００９２】
本実施形態１では、１つのＰＣ１０に４つのＶＭを構築することによって４人のユーザによって１つのＰＣ１０を共用する構成を例に説明した。本願に開示する情報処理装置は、このような構成に限られないことは勿論である。ＰＣ１０に設けられたＵＳＢポート５ａ，５ａ…の数、モニタ接続ポート６ａ，６ａ…の数に応じて、構築するＶＭの数も適宜変更可能である。
【００９３】
上述したように、本実施形態１のＰＣ１０では、ユーザが、入出力デバイスセット５１，５２，５３，５４のいずれを使用した場合であっても、ユーザが使用した入出力デバイスセット５１（又は５２，５３，５４）を各ユーザに割り当てられているＶＭに対応付けることができる。よって、ユーザは、自身のＶＭを使用する際に、特定の入出力デバイスセット５１（又は５２，５３，５４）を使用する必要がないので、使用場所に自由度を設けることができ、ユーザの利便性も向上する。
【００９４】
本実施形態１のＰＣ１０では、入出力デバイスセット５１，５２，５３，５４のいずれから入力されたユーザ情報（ユーザＩＤ及びパスワード）は、予め対応付けられているＶＭ（ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄ）へ転送される。従って、ＶＭＭ２１は、ＶＭのそれぞれが取得したユーザ情報を認証すればよいので、単純な認証処理によってユーザを認証することができる。
【００９５】
即ち、入出力デバイスセット５１，５２，５３，５４から入力されたユーザ情報をＶＭＭが取得し、ＶＭＭが認証処理を行なう場合に、ユーザ情報が入力されたキーボード５１ｂ，５２ｂ，５３ｂ，５４ｂが、どの入出力デバイスセット５１，５２，５３，５４のキーボード５１ｂ，５２ｂ，５３ｂ，５４ｂであるかをＶＭＭに判断させることは困難であったが、本実施形態１では、このような問題は発生しない。また、一般的なＶＭＭはＵＩ機能を有しないため、図６に示すような認証ダイアログをモニタ５１ａ，５２ａ，５３ａ，５４ａに表示させるためには、ＶＭＭにＵＩ機能を持たせる必要があるが、本実施形態１では、このような必要は生じない。
【００９６】
本実施形態１のＰＣ１０は、４人のユーザのいずれかに予め割り当てられているＶＭの認証ＵＩ部３２を用いて、ＶＭの使用を要求してきたユーザのユーザ情報を受け付ける構成である。従って、各ユーザのＶＭとは別に認証用のＶＭを備える必要がないので、認証用のＶＭが使用するＯＳのライセンス料、各リソースの削減が可能である。
【００９７】
本実施形態１では、ＰＣ１０の電源投入時にＶＭのそれぞれを起動させ、ＶＭのそれぞれは、認証ＵＩモードとしてユーザの使用が開始されるまで待機する。本実施形態１のＶＭのそれぞれは、ユーザが認証された場合に、認証ＵＩモードからデスクトップＵＩモードに切り替えるだけなので、ユーザが認証されてはじめてＶＭが起動される構成と比較して、ユーザが認証されてからＶＭが使用可能となるまでの待ち時間が短縮される。また、本実施形態１では、ＶＭのそれぞれは、認証ＵＩモードの場合、デスクトップＵＩ部３５を動作させないので、デスクトップＵＩ部３５の動作に伴う各リソースの無駄な消費を削減できる。
【００９８】
（実施形態２）
以下に、実施形態２に係るＰＣについて説明する。なお、本実施形態２のＰＣは、上述した実施形態１のＰＣ１０と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
【００９９】
上述した実施形態１では、ＶＭＭ２１が４つのＶＭのそれぞれを起動させる場合に、ＶＭ−ユーザ対応テーブル４ａの先頭から順に読み出したＶＭ−ＩＤのＶＭに、デバイステーブル４ｂの先頭から順に読み出した入出力デバイスＩＤの入出力デバイスセット５１，５２，５３，５４を対応付ける構成であった。
【０１００】
これに対して、本実施形態２のＰＣ１０は、ＶＭＭ２１が４つのＶＭのそれぞれを起動させる場合に、ＶＭのそれぞれに、ＶＭのユーザのそれぞれが以前に使用した入出力デバイスセット５１，５２，５３，５４を対応付ける構成とする。
【０１０１】
本実施形態２のＰＣ１０において、ＨＤＤ４には、図１３に示すような履歴情報テーブル４ｅが格納されている。図１３は履歴情報テーブル４ｅの格納内容を示す模式図である。図１３に示すように、履歴情報テーブル（入力対応記憶部）４ｅには、ＶＭのＶＭ−ＩＤと、各ＶＭのユーザが以前にＶＭを使用した際に使用した入出力デバイスセット５１，５２，５３，５４の入出力デバイスＩＤとを対応付けた履歴情報が格納されている。履歴情報テーブル４ｅの格納内容は、各ＶＭのユーザが各ＶＭを使用する際に、各ＶＭに入出力デバイスセット５１，５２，５３，５４のいずれかが対応付けられる都度、ＶＭＭ２１によって登録又は更新される。
【０１０２】
本実施形態２のＰＣ１０において、ＣＰＵ１は、ＲＯＭ２又はＨＤＤ４に格納されている各種の制御プログラムを実行させることによって、図４及び図５に示した各機能を実現する。また、本実施形態２のＣＰＵ１は、図４及び図５に示した各機能のほかに、履歴情報テーブル更新部２７の機能を有する。図１４は実施形態２のＰＣ１０の機能を示す機能ブロック図である。なお、図１４には、ＶＭＭ２１の機能として、ＶＭ起動部２２、デバイス切替部２３、対象ＶＭ決定部２６及び履歴情報テーブル更新部２７のみを記載しているが、ＣＰＵ１は、図４及び図５に示した各機能も有する。
【０１０３】
本実施形態２のＶＭＭ２１において、ＶＭ起動部２２は、まず、履歴情報テーブル４ｅから１つの履歴情報（ＶＭ−ＩＤ及び入出力デバイスＩＤ）を読み出す。ＶＭ起動部２２は、履歴情報テーブル４ｅから読み出したＶＭ−ＩＤに、履歴情報テーブル４ｅから読み出した入出力デバイスＩＤが示す入出力デバイスセット５１（又は５２，５３，５４）を割り当て、ＶＭを起動させる。ＶＭ起動部２２は、起動させたＶＭのそれぞれに、履歴情報テーブル４ｅから読み出したＶＭ−ＩＤに対応するＯＳプログラム３０を実行させてＯＳ３１を起動させる。ＶＭ起動部２２は、起動させたＶＭのＶＭ−ＩＤと、このＶＭに割り当てた入出力デバイスセット５１（又は５２，５３，５４）の入出力デバイスＩＤとを対応付けてＶＭ−デバイス対応テーブル４ｄに格納させる。
【０１０４】
ＶＭ起動部２２は、履歴情報テーブル４ｅに格納されている全ての履歴情報に対応するＶＭの起動を行なう。図１３に示した履歴情報テーブル４ｅでは、ＶＭ−ＩＤがＶＭ−Ａ及びＶＭ−Ｂの２つのＶＭが起動される。
【０１０５】
本実施形態２のＶＭ起動部２２は、履歴情報テーブル４ｅに履歴情報が格納されていないＶＭについては、上述した実施形態１のＶＭ起動部２２と同様に、ＶＭ−ユーザ対応テーブル４ａ及びデバイステーブル４ｂの格納内容に基づいて起動させる。具体的には、ＶＭ起動部２２は、ＶＭ−ユーザ対応テーブル４ａに格納されているＶＭ−ＩＤのうちで、まだ起動していないＶＭのＶＭ−ＩＤを先頭から順に読み出す。また、ＶＭ起動部２２は、デバイステーブル４ｂに格納されている入出力デバイスＩＤのうちで、まだＶＭに割り当てられていない入出力デバイスセット５１，５２，５３，５４の入出力デバイスＩＤを先頭から順に読み出す。
【０１０６】
ＶＭ起動部２２は、ＶＭ−ユーザ対応テーブル４ａから読み出したＶＭ−ＩＤに、デバイステーブル４ｂから読み出した入出力デバイスＩＤが示す入出力デバイスセット５１（又は５２，５３，５４）を割り当て、ＶＭを起動させる。ＶＭ起動部２２は、起動させたＶＭのそれぞれに、ＶＭ−ユーザ対応テーブル４ａから読み出したＶＭ−ＩＤに対応するＯＳプログラム３０を実行させてＯＳ３１を起動させる。ＶＭ起動部２２は、起動させたＶＭのＶＭ−ＩＤと、このＶＭに割り当てた入出力デバイスセット５１（又は５２，５３，５４）の入出力デバイスＩＤとを対応付けてＶＭ−デバイス対応テーブル４ｄに格納させる。
【０１０７】
ＶＭ起動部２２は、ＶＭ−ユーザ対応テーブル４ａに格納されている全てのＶＭ−ＩＤに対応するＶＭの起動を行ない、全てのＶＭを起動させた後、その旨をデバイス切替部２３へ通知する。なお、全てのＶＭが起動した旨を通知された場合にデバイス切替部２３が行なう処理は、上述の実施形態１で説明した処理と同様であるので説明を省略する。
【０１０８】
一方、本実施形態２のデバイス切替部２３は、対象ＶＭ決定部２６から、ユーザが使用している入出力デバイスセット５１（又は５２，５３，５４）を切替後のＶＭに割り当てるように指示され、ＶＭと入出力デバイスセット５１，５２，５３，５４との対応付けを切り替えた場合、その旨を履歴情報テーブル更新部２７に通知する。
【０１０９】
履歴情報テーブル更新部２７は、切り替えられたＶＭと入出力デバイスセット５１，５２，５３，５４との対応付けを通知された場合、通知されたＶＭのＶＭ−ＩＤと、通知された入出力デバイスセット５１，５２，５３，５４の入出力デバイスＩＤとを対応付けて履歴情報テーブル４ｅに格納する。具体的には、履歴情報テーブル更新部２７は、通知されたＶＭのＶＭ−ＩＤが履歴情報テーブル４ｅに既に格納されているか否かを判断する。既に格納されていると判断した場合、履歴情報テーブル更新部２７は、このＶＭ−ＩＤに対応して履歴情報テーブル４ｅに格納されている入出力デバイスＩＤを、デバイス切替部２３から通知された入出力デバイスＩＤに更新する。
【０１１０】
まだ格納されていないと判断した場合、履歴情報テーブル更新部２７は、デバイス切替部２３から通知されたＶＭ−ＩＤ及び入出力デバイスＩＤを対応付けて履歴情報テーブル４ｅに格納する。これにより、各ユーザがＶＭを使用した場合に、どの入出力デバイスセットを使用したかを把握することができる。
【０１１１】
本実施形態２のＣＰＵ１が実現する各機能において、上述したＶＭ起動部２２及び履歴情報テーブル更新部２７の各処理以外は、上述の実施形態１で説明した処理と同様の処理であるので説明を省略する。
【０１１２】
以下に、本実施形態２のＰＣ１０において、電源が投入された場合にＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。図１５及び図１６は電源投入時にＣＰＵ１が行なう処理の手順を示すフローチャートである。なお、以下の処理は、ＰＣ１０のＲＯＭ２又はＨＤＤ４に格納してある制御プログラムに従ってＣＰＵ１によって実行される。
【０１１３】
ＰＣ１０に電源が投入され、ＰＣ１０のハードウェア各部の起動が完了した場合、ＣＰＵ１は、まず、ＶＭＭプログラム２０を実行してＶＭＭ２１を起動する（Ｓ５１）。ＶＭＭ２１（ＣＰＵ１）は、履歴情報テーブル４ｅから履歴情報を１つ読み出す（Ｓ５２）。ＶＭＭ２１は、読み出した履歴情報に含まれるＶＭ−ＩＤに、読み出した履歴情報に含まれる入出力デバイスＩＤが示す入出力デバイスセット５１（又は５２，５３，５４）を割り当て、１つのＶＭを起動させる（Ｓ５３）。ＶＭＭ２１は、起動させたＶＭに、読み出した履歴情報に含まれるＶＭ−ＩＤに対応するＯＳプログラム３０を実行させる。
【０１１４】
ＶＭＭ２１は、起動させたＶＭのＶＭ−ＩＤと、このＶＭに割り当てた入出力デバイスセット５１（又は５２，５３，５４）の入出力デバイスＩＤとを対応付けてＶＭ−デバイス対応テーブル４ｄに格納する（Ｓ５４）。ＶＭＭ２１は、履歴情報テーブル４ｅに格納されている全ての履歴情報に対応するＶＭの起動を行なったか否かを判断する（Ｓ５５）。ＶＭＭ２１は、全てのＶＭを起動していないと判断した場合（Ｓ５５：ＮＯ）、ステップＳ５２へ処理を戻し、履歴情報テーブル４ｅから異なる履歴情報を１つの読み出す（Ｓ５２）。
【０１１５】
ＶＭＭ２１は、履歴情報テーブル４ｅに格納されている全ての履歴情報に対応するＶＭの起動を行なうまで、ステップＳ５２〜Ｓ５５の処理を繰り返す。全てのＶＭを起動したと判断した場合（Ｓ５５：ＹＥＳ）、ＶＭＭ２１は、ＶＭ−ユーザ対応テーブル４ａに格納されているＶＭ−ＩＤのうちで、まだ起動していないＶＭのＶＭ−ＩＤを１つ読み出す（Ｓ５６）。ＶＭＭ２１は、デバイステーブル４ｂに格納されている入出力デバイスＩＤのうちで、まだＶＭに割り当てられていない入出力デバイスセット５１，５２，５３，５４の入出力デバイスＩＤを１つ読み出す（Ｓ５７）。
【０１１６】
ＶＭＭ２１は、ＶＭ−ユーザ対応テーブル４ａから読み出したＶＭ−ＩＤに対応するＯＳプログラム３０を実行し、起動させたＯＳ３１に、デバイステーブル４ｂから読み出した入出力デバイスＩＤが示す入出力デバイスセット５１（又は５２，５３，５４）を割り当て、１つのＶＭを起動させる（Ｓ５８）。
【０１１７】
ＶＭＭ２１は、起動させたＶＭのＶＭ−ＩＤと、このＶＭに割り当てた入出力デバイスセット５１（又は５２，５３，５４）の入出力デバイスＩＤとを対応付けてＶＭ−デバイス対応テーブル４ｄに格納する（Ｓ５９）。ＶＭＭ２１は、ＶＭ−ユーザ対応テーブル４ａに格納されている全てのＶＭ−ＩＤに対応するＶＭの起動を行なったか否かを判断する（Ｓ６０）。ＶＭＭ２１は、全てのＶＭを起動していないと判断した場合（Ｓ６０：ＮＯ）、ステップＳ５６へ処理を戻し、ＶＭ−ユーザ対応テーブル４ａに格納されているＶＭ−ＩＤのうちで、まだ起動していないＶＭのＶＭ−ＩＤを１つの読み出す（Ｓ５６）。
【０１１８】
ＶＭＭ２１は、ＶＭ−ユーザ対応テーブル４ａに格納されている全てのＶＭ−ＩＤに対応するＶＭの起動を行なうまで、ステップＳ５６〜Ｓ６０の処理を繰り返す。全てのＶＭを起動したと判断した場合（Ｓ６０：ＹＥＳ）、ＶＭＭ２１は処理を終了する。これにより、ＶＭＭ２１は、複数（ここでは４つ）のＶＭの起動処理を完了し、複数のＶＭをそれぞれ独立して動作させることができる。
【０１１９】
上述したように、本実施形態２のＰＣ１０では、各ユーザに割り当てられているＶＭと、各ユーザがＶＭを以前に使用した場合に用いた入出力デバイスセット５１（又は５２，５３，５４）との対応を履歴情報テーブル４ｅによって管理することができる。そして、ＶＭ起動部２２が各ＶＭを起動させる際に、各ＶＭのユーザが以前に使用した入出力デバイスセット５１（又は５２，５３，５４）を対応付ける。これによって、ＶＭのそれぞれと入出力デバイスセット５１，５２，５３，５４のそれぞれとの切替処理の発生回数を削減できる。これは、同一ユーザが同一の入出力デバイスセット５１，５２，５３，５４を使用する可能性が高いからである。
【０１２０】
本実施形態２のＰＣ１０において、ユーザが１つの入出力デバイスセット５１（又は５２，５３，５４）を使用してＰＣ１０（ＶＭ）の使用を開始した場合にＣＰＵ１が行なう処理は、上述の実施形態１において図９〜図１１で説明した処理と同様であるので説明を省略する。なお、本実施形態２のＶＭＭ２１（履歴情報テーブル更新部２７）は、図１１のステップＳ３４の後に、ステップＳ２９で対応付けた第２ＶＭのＶＭ−ＩＤ及び入出力デバイスセット５１の入出力デバイスＩＤを履歴情報テーブル４ｅに格納する処理と、ステップＳ３４で対応付けた第１ＶＭのＶＭ−ＩＤ及び入出力デバイスセット５２の入出力デバイスＩＤを履歴情報テーブル４ｅに格納する処理とを行なう。
【０１２１】
また、本実施形態２のＰＣ１０において、デスクトップＵＩ部３５によるデスクトップＵＩモードでの動作中のＶＭが行なう終了処理は、上述の実施形態１において図１２で説明した処理と同一であるので説明を省略する。
【０１２２】
本実施形態２のＰＣ１０では、履歴情報テーブル４ｅに格納される履歴情報は、ＶＭのそれぞれに対して、ＶＭの各ユーザが直近に使用した入出力デバイスセット５１，５２，５３，５４の入出力デバイスＩＤのみであった。このような構成に限られず、例えば、各ユーザが入出力デバイスセット５１，５２，５３，５４のそれぞれを使用した履歴を蓄積し、各ユーザが使用する可能性の最も高い入出力デバイスセット５１（又は５２，５３，５４）を特定するようにしてもよい。このように特定された入出力デバイスセット５１（又は５２，５３，５４）を、各ユーザのＶＭの起動時に対応付けることによって、ＶＭのそれぞれと入出力デバイスセット５１，５２，５３，５４のそれぞれとの切替処理の発生回数をより削減できる。
【０１２３】
（実施形態３）
以下に、実施形態３に係るＰＣについて説明する。なお、本実施形態３のＰＣは、上述した実施形態１のＰＣ１０と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
【０１２４】
上述した実施形態１では、４つのＶＭのそれぞれに対して、入出力デバイスセット５１，５２，５３，５４のそれぞれのみを対応付ける構成であった。これに対して、本実施形態３のＰＣ１０は、入出力デバイスセット５１，５２，５３，５４だけでなく、ＶＭによっては、他の入出力デバイスも対応付け、他の入出力デバイスの利用も可能となる構成とする。なお、入出力デバイスセット５１，５２，５３，５４以外の入出力デバイスとしては、例えば、ＦＤＤ（フレキシブルディスクドライブ）、ＣＤ（Compact Disc）及びＤＶＤ等の光ディスクドライブ、プリンタ、スピーカ等が挙げられる。
【０１２５】
本実施形態３のＰＣ１０において、ＨＤＤ４には、図１７に示すようなデバイス対応付けテーブル４ｆが格納されている。図１７はデバイス対応付けテーブル４ｆの格納内容を示す模式図である。図１７に示すように、デバイス対応付けテーブル（入出力装置対応記憶部）４ｆには、ＰＣ１０の使用が可能なユーザのユーザＩＤと、各ユーザのＶＭで使用可能な入出力デバイスを示すデバイスＩＤとが対応付けて格納されている。デバイス対応付けテーブル４ｆの格納内容は、ＰＣ１０の初期設定処理時に各ユーザによって登録されると共に、ユーザが自身のＶＭを使用中に登録内容を変更した場合には、対応するＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄによって変更される。
【０１２６】
本実施形態３のＰＣ１０において、ＣＰＵ１は、ＲＯＭ２又はＨＤＤ４に格納されている各種の制御プログラムを実行させることによって、図４及び図５に示した各機能を実現する。また、本実施形態３のＣＰＵ１は、図４及び図５に示した各機能のほかに、個別デバイス対応付け部２８の機能を有する。図１８は実施形態３のＰＣ１０の機能を示す機能ブロック図である。なお、図１８には、ＶＭＭ２１の機能として、デバイス切替部２３、デバイス振分部２４、対象ＶＭ決定部２６及び個別デバイス対応付け部２８のみを記載しているが、ＣＰＵ１は、図４及び図５に示した各機能も有する。
【０１２７】
本実施形態３のＶＭのそれぞれにおいて、ユーザ判定部３３は、認証ＵＩ部３２から通知されたユーザＩＤが、自身のＶＭに予め対応付けられているユーザのユーザＩＤに一致するか否かを判断する。ユーザＩＤが一致すると判断した場合、ユーザ判定部３３は、モード切替部３４に、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示すると共に、このユーザＩＤをＶＭＭ２１の個別デバイス対応付け部２８に通知する。
【０１２８】
個別デバイス対応付け部（対応付け制御部）２８は、いずれかのＶＭのユーザ判定部３３からユーザＩＤを通知された場合、通知されたユーザＩＤに対応付けてデバイス対応付けテーブル４ｆに格納されているデバイスＩＤを読み出す。個別デバイス対応付け部２８は、読み出したデバイスＩＤが示す入出力デバイスを、通知されたユーザＩＤのユーザに割り当てられているＶＭに対応付けるようにデバイス振分部２４に指示する。
【０１２９】
具体的には、個別デバイス対応付け部２８は、通知されたユーザＩＤに対応するＶＭ−ＩＤをＶＭ−ユーザ対応テーブル４ａから読み出す。そして、個別デバイス対応付け部２８は、デバイス対応付けテーブル４ｆから読み出したデバイスＩＤの入出力デバイスを、ＶＭ−ユーザ対応テーブル４ａから読み出したＶＭ−ＩＤのＶＭに対応付けるようにデバイス振分部２４に指示する。
【０１３０】
デバイス振分部２４は、個別デバイス対応付け部２８からの指示に従って、ＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれに、入出力デバイスのそれぞれを振り分ける。なお、上述した処理によってＯＳ３１ａ，３１ｂ，３１ｃ，３１ｄのそれぞれに対応付けられる入出力デバイスは、各ユーザが使用する入出力デバイスセット５１，５２，５３，５４の近傍に用意される必要がある。これにより、ユーザは、入出力デバイスセット５１（又は５２，５３，５４）以外の入出力デバイスの使用も可能となる。
【０１３１】
一方、本実施形態３のＶＭＭ２１において、デバイス切替部２３は、対象ＶＭ決定部２６から、ユーザが使用している入出力デバイスセット５１（又は５２，５３，５４）を、切替後のＶＭに割り当てるように指示された場合、ＶＭ及び入出力デバイスセット５１，５２，５３，５４の対応を切り替える。ＶＭ及び入出力デバイスセット５１，５２，５３，５４の対応を切り替えた後、デバイス切替部２３は、ＶＭ−デバイス対応テーブル４ｄの格納内容をデバイス振分部２４へ通知する。また、このとき、デバイス切替部２３は、切替後のＶＭを割り当てられているユーザのユーザＩＤをＶＭＭ２１の個別デバイス対応付け部２８に通知する。具体的には、デバイス切替部２３は、切替後のＶＭに対応するユーザＩＤをＶＭ−ユーザ対応テーブル４ａから特定して個別デバイス対応付け部２８に通知する。
【０１３２】
個別デバイス対応付け部（対応付け制御部）２８は、デバイス切替部２３からユーザＩＤを通知された場合、上述したようにＶＭのユーザ判定部３３からユーザＩＤを通知された場合と同様の処理を行なう。具体的には、個別デバイス対応付け部２８は、通知されたユーザＩＤに対応付けてデバイス対応付けテーブル４ｆに格納されているデバイスＩＤを読み出し、読み出したデバイスＩＤが示す入出力デバイスを、通知されたユーザＩＤのユーザに割り当てられているＶＭに対応付けるようにデバイス振分部２４に指示する。
【０１３３】
これにより、ユーザが使用した入出力デバイスセット５１（又は５２，５３，５４）に予め対応付けられていたＶＭが、このユーザに割り当てられているＶＭではない場合であっても、ユーザは、入出力デバイスセット５１（又は５２，５３，５４）と共に、入出力デバイスセット５１（又は５２，５３，５４）以外の入出力デバイスを介してＶＭを使用することができる。
【０１３４】
本実施形態３のＣＰＵ１が実現する各機能において、上述したデバイス切替部２３、デバイス振分部２４及び個別デバイス対応付け部２８の各処理以外は、上述の実施形態１で説明した処理と同様の処理であるので説明を省略する。
【０１３５】
なお、本実施形態３のＶＭＭ２１は、個別デバイス対応付け部２８によって入出力デバイスセット５１，５２，５３，５４以外の入出力デバイスが対応付けられたＶＭのそれぞれがデスクトップＵＩモードでの動作を終了した場合、ＶＭのそれぞれから、対応付けられた入出力デバイスを剥奪する。具体的には、ＶＭＭ２１は、デスクトップＵＩモードでの動作中のＶＭが動作を終了した場合、このＶＭに対応付けられている入出力デバイスをデバイス対応付けテーブル４ｆから特定する。そして、ＶＭＭ２１は、このＶＭから、特定した入出力デバイスを剥奪する。
【０１３６】
なお、各ＶＭは、モード切替部３４によってデスクトップＵＩモードから認証ＵＩモードへの切り替えが行なわれた場合、その旨をＶＭＭ２１に通知するように構成してあり、これにより、ＶＭＭ２１は、デスクトップＵＩモードでの動作中のＶＭが動作を終了したことを把握できる。
【０１３７】
以下に、本実施形態３のＰＣ１０において、ＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。なお、本実施形態３のＰＣ１０において、電源が投入された場合にＣＰＵ１が行なう処理は、上述の実施形態１において図８で説明した処理と同一であるので説明を省略する。
【０１３８】
次に、本実施形態３のＰＣ１０において、全てのＶＭが起動した状態で、ユーザが１つの入出力デバイスセット５１（又は５２，５３，５４）を使用してＰＣ１０（ＶＭ）の使用を開始した場合にＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。図１９〜図２１はユーザの認証処理の手順を示すフローチャートである。なお、以下の処理は、ＰＣ１０のＲＯＭ２又はＨＤＤ４に格納してある制御プログラムに従ってＶＭＭ２１及びＶＭ（ＯＳ３１）によって実行される。
【０１３９】
なお、以下では、ユーザが、第１ＶＭに対応付けられている入出力デバイスセット５１を介してユーザＩＤ及びパスワードを入力してきた場合にＣＰＵ１（ＶＭＭ２１、ＶＭ）が行なう処理を例に説明する。また、図１９及び図２０では、破線で区切った２つの領域において、左側の領域に第１ＶＭによる処理を、右側の領域にＶＭＭ２１による処理をそれぞれ示し、図２１では、破線で区切った２つの領域において、左側の領域にＶＭＭ２１による処理を、右側の領域に第２ＶＭによる処理をそれぞれ示している。また、図１９及び図２０に示したステップＳ７１〜Ｓ８０の処理は、図９及び図１０に示したステップＳ１１〜ステップＳ２０の処理と同一であるので説明を省略する。
【０１４０】
第１ＶＭは、ステップＳ７３で取得したユーザＩＤが、自身の第１ＶＭに予め対応付けられているユーザのユーザＩＤに一致すると判断した場合（Ｓ８０：ＹＥＳ）、ステップＳ７１で表示した認証ダイアログの表示を終了する（Ｓ８１）。第１ＶＭは、このユーザＩＤをＶＭＭ２１に通知し、自身の第１ＶＭに入出力デバイスセット５１以外の入出力デバイスの対応付けを依頼する（Ｓ８２）。
【０１４１】
ＶＭＭ２１は、第１ＶＭに入出力デバイスの対応付けを依頼された場合、第１ＶＭに対応付けすべき入出力デバイスを特定し、特定した入出力デバイスを第１ＶＭに対応付ける（Ｓ８３）。一方、第１ＶＭは、認証ＵＩ部３２ａの動作を終了して、デスクトップＵＩ部３５ａの動作を開始させる（Ｓ８４）。デスクトップＵＩ部３５ａが動作することによって、第１ＶＭは、対応付けられているモニタ５１ａに、デスクトップの表示を開始する（Ｓ８５）。そして、第１ＶＭは、上述したユーザ認証処理を終了し、デスクトップＵＩモードの動作を開始する。
【０１４２】
ステップＳ７３で取得したユーザＩＤが、自身の第１ＶＭに予め対応付けられているユーザのユーザＩＤに一致しないと判断した場合（Ｓ８０：ＮＯ）、第１ＶＭは、ステップＳ７３で取得したユーザＩＤをＶＭＭ２１へ通知する（Ｓ８６）。なお、以下では、このユーザは第２ＶＭを割り当てられているユーザであるとして説明する。ＶＭＭ２１は、第１ＶＭから通知されたユーザＩＤを取得し（Ｓ８７）、ＶＭ−ユーザ対応テーブル４ａの格納内容に基づいて、このユーザに対応するＶＭ（第２ＶＭ）を特定する（Ｓ８８）。
【０１４３】
ＶＭＭ２１は、第１ＶＭから、ユーザが使用している入出力デバイスセット５１を剥奪し（Ｓ８９）、第２ＶＭから、第２ＶＭに割り当てられている入出力デバイスセット５２を剥奪する（Ｓ９０）。ＶＭＭ２１は、第２ＶＭに、ユーザが使用している入出力デバイスセット５１を対応付ける（Ｓ９１）。これにより、第２ＶＭに入出力デバイスセット５１が割り当てられる。
【０１４４】
ＶＭＭ２１は、第２ＶＭに対応付けすべき入出力デバイスを特定し、特定した入出力デバイスを第２ＶＭに対応付ける（Ｓ９２）。ＶＭＭ２１は、第２ＶＭに、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示する（Ｓ９３）。第２ＶＭは、ＶＭＭ２１からデスクトップＵＩモードへの切り替えを指示された場合、認証ＵＩ部３２ｂによって表示していた認証ダイアログの表示を終了する（Ｓ９４）。
【０１４５】
第２ＶＭは、認証ＵＩ部３２ｂの動作を終了して、デスクトップＵＩ部３５ｂの動作を開始させる（Ｓ９５）。デスクトップＵＩ部３５ｂが動作することによって、第２ＶＭは、対応付けられているモニタ５１ａに、デスクトップの表示を開始する（Ｓ９６）。そして、第２ＶＭは、上述したユーザ認証処理を終了し、デスクトップＵＩモードでの動作を開始する。
【０１４６】
一方、ＶＭＭ２１は、第１ＶＭに、第２ＶＭから剥奪した入出力デバイスセット５２を対応付け（Ｓ９７）、上述したユーザ認証処理を終了する。これにより、第１ＶＭに入出力デバイスセット５２が割り当てられ、第１ＶＭは、認証ダイアログを、対応付けられたモニタ５２ａに表示させる。
【０１４７】
本実施形態３のＰＣ１０において、上述したようにデスクトップＵＩ部３５によるデスクトップＵＩモードでの動作中のＶＭが、ユーザから動作終了の指示を受け付けた場合に行なう終了処理は、上述の実施形態１において図１２で説明した処理と同一であるので説明を省略する。
【０１４８】
次に、本実施形態３のＰＣ１０において、デスクトップＵＩ部３５によるデスクトップＵＩモードでの動作中のＶＭが動作を終了した場合にＶＭＭ２１が行なう処理についてフローチャートに基づいて説明する。図２２はＶＭがデスクトップＵＩモードでの動作を終了した場合にＶＭＭ２１が行なう処理の手順を示すフローチャートである。なお、以下の処理は、ＰＣ１０のＲＯＭ２又はＨＤＤ４に格納してある制御プログラムに従ってＣＰＵ１（ＶＭＭ２１）によって実行される。
【０１４９】
ＶＭＭ２１は、デスクトップＵＩ部３５によるデスクトップＵＩモードでの動作中のＶＭのいずれかがデスクトップＵＩモードでの動作を終了したか否かを判断しており（Ｓ１０１）、終了していないと判断した場合（Ｓ１０１：ＮＯ）、デスクトップＵＩモードでの動作を継続する。いずれかのＶＭがデスクトップＵＩモードでの動作を終了したと判断した場合（Ｓ１０１：ＹＥＳ）、ＶＭＭ２１は、動作を終了したＶＭに対応する入出力デバイスを、デバイス対応付けテーブル４ｆの格納内容に基づいて特定する（Ｓ１０２）。
【０１５０】
ＶＭＭ２１は、動作を終了したＶＭから、特定した入出力デバイスを剥奪し（Ｓ１０３）、処理を終了する。これにより、ユーザ毎に使用が許可され、それぞれのＶＭに対応付けられていた入出力デバイスを、ＶＭのデスクトップＵＩモードでの動作終了後にＶＭから確実に剥奪することができる。よって、使用を許可されていないユーザによって各入出力デバイスが使用されることを防止できる。
【０１５１】
本実施形態３のＰＣ１０では、各ＶＭに入出力デバイスセット５１，５２，５３，５４を割り当てるだけでなく、ユーザ毎にその他の入出力デバイスの使用も可能となるので、ユーザがＶＭを使用する際の利便性を向上させることができる。
【０１５２】
本実施形態３のＰＣ１０では、図１７に示すようにユーザＩＤ及びデバイスＩＤを対応付けて格納するデバイス対応付けテーブル４ｆに基づいて、各ＶＭに入出力デバイスを対応付ける構成であった。このような構成のほかに、デバイス対応付けテーブル４ｆに、各ユーザに割り当てられているＶＭのＶＭ−ＩＤ及びデバイスＩＤを対応付けて格納しておいてもよい。
【０１５３】
本実施形態３のＰＣ１０は、上述した実施形態１のＰＣ１０の変形例として説明したが、本実施形態３の構成は、上述した実施形態２のＰＣ１０にも適用することができる。
【０１５４】
（実施形態４）
以下に、実施形態４に係るＰＣについて説明する。なお、本実施形態４のＰＣは、上述した実施形態１のＰＣ１０と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
【０１５５】
上述した実施形態１では、入出力デバイスセット５１，５２，５３，５４のいずれかを使用してユーザＩＤ及びパスワードを入力したユーザのＶＭが、使用した入出力デバイスセット５１（又は５２，５３，５４）に対応付けられているＶＭではない場合、ＶＭのそれぞれと入出力デバイスセット５１，５２，５３，５４のそれぞれの対応付けを切り替える構成であった。
【０１５６】
本実施形態４のＰＣ１０は、更に、ＶＭのそれぞれと入出力デバイスセット５１，５２，５３，５４のそれぞれの対応付けを切り替える際に、このユーザのＶＭに対応付けられている入出力デバイスセット５１（又は５２，５３，５４）が他のユーザによって使用されている場合に、他のユーザが入力中の情報を保持し、ＶＭのそれぞれと入出力デバイスセット５１，５２，５３，５４のそれぞれの対応付けを切り替えた後に、切り替えた後の入出力デバイスセット５１（又は５２，５３，５４）に保持した情報を移行させる構成を備える。
【０１５７】
本実施形態４のＰＣ１０において、ＣＰＵ１は、ＲＯＭ２又はＨＤＤ４に格納されている各種の制御プログラムを実行させることによって、図４及び図５に示した各機能を実現する。また、本実施形態４のＣＰＵ１は、図４及び図５に示した各機能のほかに、認証ＵＩ制御部２９の機能を有する。図２３は実施形態４のＰＣ１０の機能を示す機能ブロック図である。なお、図２３には、ＶＭＭ２１の機能として、デバイス切替部２３、デバイス振分部２４、対象ＶＭ決定部２６及び認証ＵＩ制御部２９のみを記載しているが、ＣＰＵ１は、図４及び図５に示した各機能も有する。
【０１５８】
本実施形態４のＶＭＭ２１において、対象ＶＭ決定部２６は、ＶＭ（切替前のＶＭ）のユーザ判定部３３からユーザＩＤを通知された場合、ＶＭ−ユーザ対応テーブル４ａの格納内容に基づいて、通知されたユーザＩＤに対応付けられているＶＭ（切替後のＶＭ）を特定する。対象ＶＭ決定部２６は、ユーザが使用している入出力デバイスセット５１（又は５２，５３，５４）を、切替後のＶＭに割り当てるようにデバイス切替部２３に指示する。このとき、対象ＶＭ決定部２６は、切替前のＶＭ及び切替後のＶＭを認証ＵＩ制御部２９に通知する。
【０１５９】
認証ＵＩ制御部２９は、切替前のＶＭ及び切替後のＶＭを対象ＶＭ決定部２６から通知された場合、切替後のＶＭの認証ＵＩ部３２によるユーザ情報（ユーザＩＤ及びパスワード）の受け付けを一時停止させる。認証ＵＩ制御部（入力情報記憶部）２９は、この認証ＵＩ部３２がこの時点までに取得したユーザ情報を取得して保持する。認証ＵＩ制御部２９は、例えば、対象ＶＭ決定部２６からの指示に従ってデバイス切替部２３がＶＭ及び入出力デバイスセット５１，５２，５３，５４の対応付けを切り替えた後、保持していたユーザ情報を、切替前のＶＭへ送出する。
【０１６０】
切替前のＶＭの認証ＵＩ部（報知部）３２は、認証ＵＩ制御部２９から送出されたユーザ情報を、対応付けられたモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示する認証ダイアログ中に表示させる。
【０１６１】
これにより、複数のユーザが同じタイミングで入出力デバイスセット５１，５２，５３，５４からユーザ情報を入力した場合に、ＶＭ及び入出力デバイスセット５１，５２，５３，５４の対応付けが切り替えられることによって入力中の情報が削除されることを防止できる。ユーザは、ユーザ情報の入力処理が一時的に中断されるが、中断後には入力済みの情報が認証ダイアログに表示されるので、ユーザ情報の重複入力を回避できる。
【０１６２】
なお、認証ＵＩ制御部２９が、保持していたユーザ情報を切替前のＶＭへ送出するタイミングは、ＶＭ及び入出力デバイスセット５１，５２，５３，５４の対応付けがデバイス切替部２３によって切り替えられる前でも後でもよい。
【０１６３】
本実施形態４のＣＰＵ１が実現する各機能において、上述した認証ＵＩ制御部２９の処理以外は、上述の実施形態１で説明した処理と同様の処理であるので説明を省略する。
【０１６４】
以下に、本実施形態４のＰＣ１０において、ＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。なお、本実施形態４のＰＣ１０において、電源が投入された場合にＣＰＵ１が行なう処理は、上述の実施形態１において図８で説明した処理と同一であるので説明を省略する。
【０１６５】
次に、本実施形態４のＰＣ１０において、全てのＶＭが起動した状態で、ユーザが１つの入出力デバイスセット５１（又は５２，５３，５４）を使用してＰＣ１０（ＶＭ）の使用を開始した場合にＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。図２４はユーザの認証処理の手順を示すフローチャートである。なお、以下の処理は、ＰＣ１０のＲＯＭ２又はＨＤＤ４に格納してある制御プログラムに従ってＶＭＭ２１及びＶＭ（ＯＳ３１）によって実行される。また、図２４では、破線で区切った２つの領域において、左側の領域にＶＭＭ２１による処理を、右側の領域に第２ＶＭによる処理をそれぞれ示している。
【０１６６】
本実施形態４におけるユーザの認証処理は、図９及び図１０に示したステップＳ１１〜ステップＳ２６の処理と同一の処理によって開始されるので、同一の処理については説明及び図示を省略する。従って、図２４に示した処理は、図１０に示したステップＳ２６の続きの処理である。
【０１６７】
図１０に示したステップＳ２６において、ＶＭＭ２１は、ＶＭ−ユーザ対応テーブル４ａの格納内容に基づいて、第１ＶＭから通知されたユーザＩＤに対応するＶＭ（第２ＶＭ）を特定する（Ｓ２６）。ＶＭＭ２１は、特定した第２ＶＭによるユーザ情報（ユーザＩＤ及びパスワード）の受け付けを一時停止させ（Ｓ１１１）、第２ＶＭがこの時点までに取得したユーザ情報を保持する（Ｓ１１２）。
【０１６８】
ＶＭＭ２１は、第１ＶＭから、ユーザが使用している入出力デバイスセット５１を剥奪し（Ｓ１１３）、第２ＶＭから、第２ＶＭに割り当てられている入出力デバイスセット５２を剥奪する（Ｓ１１４）。ＶＭＭ２１は、第２ＶＭに、ユーザが使用している入出力デバイスセット５１を対応付ける（Ｓ１１５）。これにより、第２ＶＭに入出力デバイスセット５１が割り当てられる。
【０１６９】
ＶＭＭ２１は、第２ＶＭに、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示する（Ｓ１１６）。第２ＶＭは、ＶＭＭ２１からデスクトップＵＩモードへの切り替えを指示された場合、認証ＵＩ部３２ｂによって表示していた認証ダイアログの表示を終了する（Ｓ１１７）。
【０１７０】
第２ＶＭは、認証ＵＩ部３２ｂの動作を終了して、デスクトップＵＩ部３５ｂの動作を開始させる（Ｓ１１８）。デスクトップＵＩ部３５ｂが動作することによって、第２ＶＭは、対応付けられているモニタ５１ａに、デスクトップの表示を開始する（Ｓ１１９）。そして、第２ＶＭは、上述したユーザ認証処理を終了し、デスクトップＵＩモードの動作を開始する。
【０１７１】
一方、ＶＭＭ２１は、第１ＶＭに、第２ＶＭから剥奪した入出力デバイスセット５２を対応付ける（Ｓ１２０）。これにより、第１ＶＭに入出力デバイスセット５２が割り当てられ、第１ＶＭは、認証ダイアログを、対応付けられたモニタ５２ａに表示させる。更に、ＶＭＭ２１は、ステップＳ１１２で保持したユーザ情報を第１ＶＭに送出し（Ｓ１２１）、上述したユーザ認証処理を終了する。
【０１７２】
第１ＶＭは、ＶＭＭ２１から送出されたユーザ情報を表示した認証ダイアログをモニタ５２ａに表示させる。これにより、モニタ５２ａを含む入出力デバイスセット５２を使用してユーザ情報を入力中のユーザは、ユーザ情報の入力処理が一時的に停止された後、自身が入力したユーザ情報が表示された認証ダイアログに、残りの情報を入力すればよい。よって、ユーザの操作性を向上させることができる。
【０１７３】
本実施形態４のＰＣ１０において、上述したようにデスクトップＵＩ部３５によるデスクトップＵＩモードでの動作中のＶＭが、ユーザから動作終了の指示を受け付けた場合に行なう処理は、上述の実施形態１において図１２で説明した処理と同一であるので説明を省略する。
【０１７４】
本実施形態４のＰＣ１０は、上述した実施形態１のＰＣ１０の変形例として説明したが、本実施形態４の構成は、上述した実施形態２，３のＰＣ１０にも適用することができる。
【０１７５】
（実施形態５）
以下に、実施形態５に係るＰＣについて説明する。なお、本実施形態５のＰＣは、上述した実施形態１のＰＣ１０と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
【０１７６】
上述した実施形態１では、ＶＭの認証ＵＩ部３２のそれぞれが、予め対応付けられている入出力デバイスセット５１，５２，５３，５４からユーザ情報（ユーザＩＤ及びパスワード）を取得した場合、このユーザ情報の認証をＶＭＭ２１が行なう構成であった。これに対して、本実施形態５のＰＣ１０は、ＶＭの認証ＵＩ部３２のそれぞれが取得したユーザ情報の認証を、いずれかのＶＭが行なう構成とする。
【０１７７】
本実施形態５のＰＣ１０において、ＣＰＵ１は、ＲＯＭ２又はＨＤＤ４に格納されている各種の制御プログラムを実行させることによって、図４及び図５に示した各機能を実現する。ただし、ＶＭのそれぞれは、ユーザ判定部３３の代わりに認証部３６（３６ａ，３６ｂ，３６ｃ，３６ｄ）を備える。また、ＶＭＭ２１は、認証部２５を有しない。
【０１７８】
図２５は実施形態５のＰＣ１０の機能を示す機能ブロック図である。なお、図２５には、ＶＭＭ２１の機能として、デバイス切替部２３、デバイス振分部２４及び対象ＶＭ決定部２６のみを記載しているが、ＣＰＵ１は、図４及び図５に示した各機能も有する。
【０１７９】
本実施形態５のＶＭのそれぞれにおいて、認証ＵＩ部３２は、図６に示すような表示画面を介してユーザＩＤ及びパスワードを取得した場合、取得したユーザＩＤ及びパスワードを認証部３６に通知する。認証部３６は、認証ＵＩ部３２から通知されたユーザＩＤ及びパスワードの認証を行ない、認証結果をＯＳ３１へ通知する。具体的には、認証部３６は、認証ＵＩ部３２から取得したユーザＩＤ及びパスワードが、予め格納されているユーザＩＤ及びパスワードに一致するか否かを判断する。なお、各ＶＭに予め対応付けられているユーザのユーザＩＤ及びパスワードは、各ＶＭのシステム情報としてＯＳ３１毎にＨＤＤ４等に格納されている。
【０１８０】
認証部３６は、取得したユーザＩＤ及びパスワードが、予め格納されているユーザＩＤ及びパスワードに一致すると判断した場合、このユーザＩＤ及びパスワードが認証できた旨を示す認証結果をＯＳ３１へ通知する。一方、取得したユーザＩＤ及びパスワードが、予め格納されているユーザＩＤ及びパスワードに一致しないと判断した場合、認証部３６は、このユーザＩＤ及びパスワードが認証できなかった旨を示す認証結果をＯＳ３１へ通知する。
【０１８１】
ＯＳ３１は、認証部３６から、認証できた旨を示す認証結果が通知された場合、モード切替部３４に、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示する。モード切替部３４は、認証ＵＩモードからデスクトップＵＩモードへの切り替えをＯＳ３１から指示された場合、認証ＵＩ部３２によってモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示していた認証ダイアログの表示を終了させる。モード切替部３４は、デスクトップＵＩ部３５に動作を開始させ、これにより、ユーザは、自身に割り当てられているＶＭのデスクトップＵＩモードでの使用を開始できる。
【０１８２】
一方、認証部３６から認証できなかった旨を示す認証結果が通知された場合、ＯＳ３１（認証依頼部）は、認証できなかったユーザＩＤ及びパスワードをＶＭＭ２１の対象ＶＭ決定部２６へ通知し、このユーザＩＤ及びパスワードの認証をＶＭＭ２１に依頼する。
【０１８３】
ＶＭＭ２１の対象ＶＭ決定部（認証実行部特定部）２６は、ＶＭ（第１ＶＭとする）からユーザＩＤ及びパスワードの認証を依頼された場合、ＶＭ−ユーザ対応テーブル４ａの格納内容に基づいて、第１ＶＭのＯＳ３１ａから取得したユーザＩＤに対応するＶＭ（第２ＶＭとする）を特定する。対象ＶＭ決定部２６は、第２ＶＭを特定できなかった場合、エラーメッセージを第１ＶＭのＯＳ３１ａに通知する。
【０１８４】
第１ＶＭのＯＳ３１ａは、ＶＭＭ２１の対象ＶＭ決定部２６からエラーメッセージを通知された場合、例えば「ユーザＩＤまたはパスワードが誤りです」のようなエラーメッセージを、対応付けられているモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示する。そして、第１ＶＭの認証ＵＩ部３２ａは、図６に示した認証ダイアログを再度表示し、ユーザを認証するための情報の受け付けを再度行なう。
【０１８５】
第２ＶＭを特定できた場合、対象ＶＭ決定部（認証依頼転送部）２６は、第１ＶＭのＯＳ３１ａから取得したユーザＩＤ及びパスワードを第２ＶＭの認証部３６ｂに送出し、このユーザＩＤ及びパスワードの認証を第２ＶＭの認証部３６ｂに依頼する。第２ＶＭの認証部３６ｂは、対象ＶＭ決定部２６から取得したユーザＩＤ及びパスワードの認証を行ない、認証結果をＶＭＭ２１の対象ＶＭ決定部２６へ返す。
【０１８６】
ＶＭＭ２１の対象ＶＭ決定部２６は、第２ＶＭの認証部３６ｂから認証結果を通知された場合、ユーザＩＤ及びパスワードが認証できた旨を示す認証結果を通知されたか否かを判断する。ユーザＩＤ及びパスワードが認証できなかった旨を示す認証結果が通知された場合、対象ＶＭ決定部２６は、エラーメッセージを第１ＶＭのＯＳ３１ａに通知する。第１ＶＭのＯＳ３１ａは、対象ＶＭ決定部２６からエラーメッセージを通知された場合、対応付けられているモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）にエラーメッセージを表示する。そして、第１ＶＭの認証ＵＩ部３２ａは、図６に示した認証ダイアログを再度表示し、ユーザを認証するための情報の受け付けを再度行なう。
【０１８７】
ユーザＩＤ及びパスワードが認証できた旨を示す認証結果を通知された場合、対象ＶＭ決定部２６は、ユーザが使用している入出力デバイスセット５１（又は５２，５３，５４）を、第２ＶＭに割り当てるようにデバイス切替部２３に指示する。即ち、対象ＶＭ決定部２６は、第１ＶＭに対応付けられている入出力デバイスセット５１（又は５２，５３，５４）と、第２ＶＭに対応付けられている入出力デバイスセット５２（又は５１，５３，５４）とを取り替えるようにデバイス切替部２３に指示する。
【０１８８】
これにより、ユーザが使用している入出力デバイスセット５１（又は５２，５３，５４）を、このユーザに割り当てられている第２ＶＭに対応付けることができる。また、ＶＭ及び入出力デバイスセット５１，５２，５３，５４の対応付けを切り替えた後、ＶＭＭ２１の対象ＶＭ決定部２６は、第２ＶＭのモード切替部３４ｂに、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示する。これにより、ユーザは、自身に割り当てられているＶＭのデスクトップＵＩモードでの使用を開始できる。
【０１８９】
なお、第１ＶＭは、第２ＶＭに元々対応付けられていた入出力デバイスセット５２（又は５１，５３，５４）を対応付けられた後は、認証ＵＩ部３２によって認証ダイアログを、対応付けられたモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示させる。
【０１９０】
本実施形態５のＣＰＵ１が実現する各機能において、上述した対象ＶＭ決定部２６及び認証部３６の処理以外は、上述の実施形態１で説明した処理と同様の処理であるので説明を省略する。
【０１９１】
以下に、本実施形態５のＰＣ１０において、ＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。なお、本実施形態５のＰＣ１０において、電源が投入された場合にＣＰＵ１が行なう処理は、上述の実施形態１において図８で説明した処理と同一であるので説明を省略する。
【０１９２】
次に、本実施形態５のＰＣ１０において、全てのＶＭが起動した状態で、ユーザが１つの入出力デバイスセット５１（又は５２，５３，５４）を使用してＰＣ１０（ＶＭ）の使用を開始した場合にＣＰＵ１が行なう処理についてフローチャートに基づいて説明する。図２６〜図２８はユーザの認証処理の手順を示すフローチャートである。なお、以下の処理は、ＰＣ１０のＲＯＭ２又はＨＤＤ４に格納してある制御プログラムに従ってＶＭＭ２１及びＶＭ（ＯＳ３１）によって実行される。
【０１９３】
なお、以下では、ユーザが、第１ＶＭに対応付けられている入出力デバイスセット５１を介してユーザＩＤ及びパスワードを入力してきた場合にＣＰＵ１が行なう処理を例に説明する。また、図２６では、破線で区切った２つの領域において、左側の領域に第１ＶＭによる処理を、右側の領域にＶＭＭ２１による処理をそれぞれ示し、図２７及び図２８では、破線で区切った２つの領域において、左側の領域にＶＭＭ２１による処理を、右側の領域に第２ＶＭによる処理をそれぞれ示している。
【０１９４】
ＶＭＭ２１によって起動した第１ＶＭ（ＯＳ３１ａ）は、対応付けられているモニタ５１ａに、図６に示すような認証ダイアログを表示している（Ｓ１３１）。第１ＶＭは、対応付けられている入出力デバイスセット５１（具体的には、キーボード５１ｂ及びマウス５１ｃ）を介してユーザ情報（ユーザＩＤ及びパスワード）が入力されたか否かを判断する（Ｓ１３２）。第１ＶＭは、ユーザ情報が入力されていないと判断した場合（Ｓ１３２：ＮＯ）、待機し、ユーザ情報が入力されたと判断した場合（Ｓ１３２：ＹＥＳ）、ユーザ情報を取得する（Ｓ１３３）。
【０１９５】
第１ＶＭは、取得したユーザ情報を、予め格納されているユーザ情報に基づいて認証し（Ｓ１３４）、認証された場合（Ｓ１３５：ＹＥＳ）、ステップＳ１３１で表示した認証ダイアログの表示を終了する（Ｓ１３６）。第１ＶＭは、認証ＵＩ部３２ａの動作を終了して、デスクトップＵＩ部３５ａの動作を開始させる（Ｓ１３７）。デスクトップＵＩ部３５ａが動作することによって、第１ＶＭは、対応付けられているモニタ５１ａに、デスクトップの表示を開始する（Ｓ１３８）。そして、第１ＶＭは、上述したユーザ認証処理を終了し、デスクトップＵＩモードの動作を開始する。
【０１９６】
一方、認証されなかった場合（Ｓ１３５：ＮＯ）、第１ＶＭは、ステップＳ１３３で取得したユーザ情報をＶＭＭ２１へ通知する（Ｓ１３９）。ＶＭＭ２１は、第１ＶＭから通知されたユーザ情報を取得し（Ｓ１４０）、ＶＭ−ユーザ対応テーブル４ａの格納内容に基づいて、取得したユーザ情報に含まれるユーザＩＤに対応するＶＭ（第２ＶＭ）が有るか否かを判断する（Ｓ１４１）。ユーザＩＤに対応するＶＭが有ると判断した場合（Ｓ１４１：ＹＥＳ）、ＶＭＭ２１は、ステップＳ１４０で取得したユーザ情報の認証を第２ＶＭに依頼する（Ｓ１４２）。
【０１９７】
第２ＶＭは、ＶＭＭ２１から依頼されたユーザ情報の認証を、予め格納されているユーザ情報に基づいて行ない（Ｓ１４３）、認証結果をＶＭＭ２１へ通知する（Ｓ１４４）。ＶＭＭ２１は、第２ＶＭから認証結果を取得し（Ｓ１４５）、取得した認証結果が認証された旨を示す認証結果であるか否かを判断する（Ｓ１４６）。取得した認証結果が認証されなかった旨を示す認証結果であると判断した場合（Ｓ１４６：ＮＯ）、又は、ステップＳ１４１でユーザＩＤに対応するＶＭが無いと判断した場合（Ｓ１４１：ＮＯ）、ＶＭＭ２１は、第１ＶＭにエラーメッセージを通知し（Ｓ１４７）、処理を終了する。
【０１９８】
ＶＭＭ２１からエラーメッセージを通知された第１ＶＭは、認証されなかった旨を示すエラーメッセージを、対応付けられているモニタ５１ａに表示させ、図６に示すような認証ダイアログを再度表示する。
【０１９９】
取得した認証結果が認証された旨を示す認証結果であると判断した場合（Ｓ１４６：ＹＥＳ）、ＶＭＭ２１は、第１ＶＭから、ユーザが使用している入出力デバイスセット５１を剥奪する（Ｓ１４８）。ＶＭＭ２１は、第２ＶＭから、第２ＶＭに割り当てられている入出力デバイスセット５２を剥奪する（Ｓ１４９）。ＶＭＭ２１は、第２ＶＭに、ユーザが使用している入出力デバイスセット５１を対応付ける（Ｓ１５０）。これにより、第２ＶＭに入出力デバイスセット５１が割り当てられる。
【０２００】
ＶＭＭ２１は、第２ＶＭに、認証ＵＩモードからデスクトップＵＩモードへの切り替えを指示する（Ｓ１５１）。第２ＶＭは、ＶＭＭ２１からデスクトップＵＩモードへの切り替えを指示された場合、認証ＵＩ部３２によって表示していた認証ダイアログの表示を終了する（Ｓ１５２）。第２ＶＭは、認証ＵＩ部３２ｂの動作を終了して、デスクトップＵＩ部３５ｂの動作を開始させる（Ｓ１５３）。デスクトップＵＩ部３５ｂが動作することによって、第２ＶＭは、対応付けられているモニタ５１ａに、デスクトップの表示を開始する（Ｓ１５４）。そして、第２ＶＭは、上述したユーザ認証処理を終了し、デスクトップＵＩモードの動作を開始する。
【０２０１】
一方、ＶＭＭ２１は、第１ＶＭに、第２ＶＭから剥奪した入出力デバイスセット５２を対応付け（Ｓ１５５）、上述したユーザ認証処理を終了する。これにより、第１ＶＭに入出力デバイスセット５２が割り当てられ、第１ＶＭは、認証ダイアログを、対応付けられたモニタ５２ａに表示させる。
【０２０２】
本実施形態５のＰＣ１０において、上述したようにデスクトップＵＩ部３５によるデスクトップＵＩモードでの動作中のＶＭが、ユーザから動作終了の指示を受け付けた場合に行なう処理は、上述の実施形態１において図１２で説明した処理と同一であるので説明を省略する。
【０２０３】
上述したように、本実施形態５のＰＣ１０では、入出力デバイスセット５１，５２，５３，５４のそれぞれを用いて入力されたユーザ情報の認証を、いずれかのＶＭの認証部３６が行なう。各ＶＭは、ＯＳ３１のシステム情報として、自身を割り当てられているユーザのユーザＩＤ及びパスワードを記憶しており、この情報を用いることによって、自身を割り当てられているユーザに対する認証処理を行なえる。このようにユーザ情報の認証処理をＶＭで行なうことにより、ＶＭＭ２１の処理をより軽減することができる。
【０２０４】
本実施形態５のＰＣ１０は、上述した実施形態１のＰＣ１０の変形例として説明したが、本実施形態５の構成は、上述した実施形態２〜４のＰＣ１０にも適用することができる。
【０２０５】
（実施形態６）
以下に、実施形態６に係るＰＣについて説明する。なお、本実施形態６のＰＣは、上述した実施形態１のＰＣ１０と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
【０２０６】
上述した実施形態１では、ＶＭのそれぞれは、認証ＵＩモードで動作中の場合、図６に示すような認証ダイアログを、予め対応付けられている入出力デバイスセット５１，５２，５３，５４のモニタ５１ａ，５２ａ，５３ａ，５４ａに表示させる構成であった。これに対して、本実施形態６では、認証ＵＩモードで動作中のＶＭは、図６に示す認証ダイアログのユーザＩＤの入力欄に、自身を割り当てられたユーザのユーザＩＤを予め表示させておく構成とする。
【０２０７】
本実施形態６のＰＣ１０において、ＣＰＵ１は、ＲＯＭ２又はＨＤＤ４に格納されている各種の制御プログラムを実行させることによって、図４及び図５に示した各機能を実現する。本実施形態６のＶＭのそれぞれにおいて、認証ＵＩ部３２は、図６に示すような表示画面を、対応付けられているモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示させる際に、自身のユーザのユーザＩＤを読み出す。なお、各ＶＭに予め対応付けられているユーザのユーザＩＤは、各ＶＭのシステム情報としてＯＳ３１毎にＨＤＤ４等に格納されている。
【０２０８】
認証ＵＩ部（ユーザ情報報知部）３２は、読み出したユーザＩＤをユーザＩＤの入力欄に表示させた認証ダイアログを、自身のＶＭに割り当てられたモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示させ、ユーザを認証するための情報の受け付けを行なう。図２９は実施形態６の表示画面の構成を示す模式図である。図２９に示した認証ダイアログは、ユーザＩＤ及びパスワードの入力欄、ＯＫボタン及びキャンセルボタンをそれぞれ表示しており、ユーザＩＤの入力欄には既に１つのユーザＩＤが入力された状態となっている。
【０２０９】
また、本実施形態６の認証ダイアログにおいて、ユーザＩＤの入力欄にはプルダウンメニューが設けられており、このＰＣ１０の使用が可能な各ユーザのユーザＩＤを選択できるように構成してある。図２９に示した認証ダイアログにおいて、ユーザＩＤの入力欄に既に入力されているユーザＩＤのユーザは、このモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）を含む入出力デバイスセット５１（又は５２，５３，５４）を用いて自身のパスワードのみを入力すればよい。
【０２１０】
また、ユーザＩＤの入力欄に入力されているユーザＩＤのユーザ以外のユーザは、このモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）を含む入出力デバイスセット５１（又は５２，５３，５４）を用いて、自身のユーザＩＤ及びパスワードを入力すればよい。
【０２１１】
なお、図２９に示す認証ダイアログにおいても、ユーザＩＤ及びパスワードが入力され、ＯＫボタンが選択された場合、使用された入出力デバイスセット５１（又は５２，５３，５４）に対応する認証ＵＩ部３２が、ユーザＩＤ及びパスワードを取得する。
【０２１２】
本実施形態６のＣＰＵ１が実現する各機能において、上述した認証ＵＩ部３２の処理以外は、上述の実施形態１で説明した処理と同様の処理であるので説明を省略する。
【０２１３】
また、本実施形態６のＰＣ１０において、電源が投入された場合にＣＰＵ１が行なう処理は、上述の実施形態１において図８で説明した処理と同一であるので説明を省略する。なお、本実施形態６のＰＣ１０では、ＶＭのそれぞれは、起動した後、図２９に示すように自身のユーザのユーザＩＤを表示した認証ダイアログを、対応付けられているモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）に表示させる。
【０２１４】
また、本実施形態６のＰＣ１０において、全てのＶＭが起動した状態で、ユーザが１つの入出力デバイスセット５１（又は５２，５３，５４）を使用してＰＣ１０（ＶＭ）の使用を開始した場合にＣＰＵ１が行なう処理も、上述の実施形態１において図９〜図１１で説明した処理と同一であるので説明を省略する。更に、本実施形態６のＰＣ１０において、デスクトップＵＩモードでの動作中のＶＭの動作をユーザが終了させた場合にＣＰＵ１が行なう処理も、上述の実施形態１において図１２で説明した処理と同一であるので説明を省略する。
【０２１５】
上述したように、本実施形態６のＰＣ１０では、認証ＵＩモードで動作中のＶＭが、対応付けられているモニタ５１ａ，５２ａ，５３ａ，５４ａに表示させた認証ダイアログに、自身のユーザのユーザＩＤを表示させておく。これにより、各ユーザは、モニタ５１ａ，５２ａ，５３ａ，５４ａのそれぞれに表示させた認証ダイアログ中のユーザＩＤを確認し、自身のユーザＩＤが表示されたモニタ５１ａ（又は５２ａ，５３ａ，５４ａ）を含む入出力デバイスセット５１（又は５２，５３，５４）を使用した場合には、ＶＭ及び入出力デバイスセット５１，５２，５３，５４の切替処理が不要となるので、ＶＭの使用が可能となるまでの待ち時間を削減できる。
【０２１６】
本実施形態６のＰＣ１０は、上述した実施形態１のＰＣ１０の変形例として説明したが、本実施形態６の構成は、上述した実施形態２〜５のＰＣ１０にも適用することができる。
【０２１７】
上述した実施形態１〜６では、ＶＭを使用するユーザが、入出力デバイスセット５１，５２，５３，５４のいずれかを用いてユーザ情報を入力する構成であった。このような構成に限られず、ユーザ情報の入力は、例えばＩＤカードを用いて行なってもよいし、音声入力によって行なってもよい。
【０２１８】
上述した実施形態１〜６では、それぞれのユーザに１つのＶＭが割り当てられている構成であった。このような構成に限られず、例えば、１つのＶＭを複数のユーザで共用する構成、１人のユーザに複数のＶＭを割り当てる構成であってもよい。１つのＶＭを複数のユーザで共用する場合には、例えば、図３（ａ）に示したＶＭ−ユーザ対応テーブル４ａにおいて、１つのＶＭ−ＩＤに複数のユーザＩＤを対応付けて格納しておけばよい。また、１人のユーザに複数のＶＭを割り当てる場合には、例えば、図３（ａ）に示したＶＭ−ユーザ対応テーブル４ａにおいて、複数のＶＭ−ＩＤのそれぞれに同一のユーザＩＤを対応付けて格納しておけばよい。なお、１つのＶＭを複数のユーザで共用する場合には、複数のユーザが同時に１つのＶＭを使用できない構成とする。
【０２１９】
以上の実施形態１〜６を含む実施形態に関し、更に以下の付記を開示する。
【０２２０】
（付記１）
各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部とを備える情報処理装置であって、
前記複数の実行部と、前記複数の実行部のそれぞれに対応付けられたユーザのユーザ情報との対応を記憶するユーザ対応記憶部を備え、
前記実行部のそれぞれは、
予め対応付けられたユーザのユーザ情報を記憶するユーザ情報記憶部と、
予め対応付けられた入力部からのユーザ情報の入力を受け付ける入力受付部と、
該入力受付部が受け付けたユーザ情報を前記対応付けられた入力部を介して取得するユーザ情報取得部と、
該ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致するか否かを判断する判断部と、
前記ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致すると前記判断部が判断した場合、通常動作を開始する動作開始部と、
前記ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致しないと前記判断部が判断した場合、前記ユーザ情報取得部が取得したユーザ情報に対応付けられた他の実行部の特定を前記制御部に要求する特定要求部とを有し、
前記制御部は、
前記ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記ユーザ情報に対応付けられた他の実行部を前記ユーザ対応記憶部に記憶してある対応に基づいて特定する特定部と、
該特定部が前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替える取替部とを有すること
を特徴とする情報処理装置。
【０２２１】
（付記２）
前記実行部の前記入力受付部は、ユーザ情報と共に、それぞれのユーザを認証するための認証情報の入力を受け付け、
前記実行部の前記ユーザ情報取得部は、前記入力受付部が受け付けたユーザ情報及び認証情報を取得し、
前記実行部は、前記ユーザ情報取得部が取得した認証情報の認証を前記制御部に依頼する認証依頼部を備え、
前記制御部は、
それぞれのユーザの認証情報を予め記憶する認証情報記憶部と、
該認証情報記憶部に記憶してある認証情報に基づいて、前記実行部から依頼された認証情報の認証を行なう認証部と、
該認証部による認証結果を、前記認証を依頼してきた実行部へ通知する認証結果通知部とを備え、
前記実行部の前記判断部は、前記認証情報が認証された旨の認証結果を前記制御部から通知された場合に、前記認証情報と共に前記ユーザ情報取得部が取得したユーザ情報が前記ユーザ情報記憶部に記憶してあるユーザ情報に一致するか否かを判断することを特徴とする付記１に記載の情報処理装置。
【０２２２】
（付記３）
前記実行部の前記ユーザ情報記憶部は、ユーザ情報と、それぞれのユーザを認証するための認証情報とを記憶しており、
前記実行部の前記入力受付部は、ユーザ情報と共に、それぞれのユーザの認証情報の入力を受け付け、
前記実行部の前記ユーザ情報取得部は、前記入力受付部が受け付けたユーザ情報及び認証情報を取得し、
前記実行部は、
前記ユーザ情報記憶部に記憶してある認証情報に基づいて、前記ユーザ情報取得部が取得した認証情報の認証、または、前記制御部から依頼された認証情報の認証を行なう認証部と、
前記ユーザ情報取得部が取得した認証情報が前記認証部によって認証されなかった場合に、前記認証情報の認証を前記制御部に依頼する認証依頼部と、
前記制御部から依頼された認証情報の前記認証部による認証結果を前記制御部へ通知する認証結果通知部とを備え、
前記実行部の前記動作開始部は、前記ユーザ情報取得部が取得した認証情報が前記認証部によって認証された場合に、通常動作を開始し、
前記制御部は、
前記実行部に前記認証情報の認証を依頼された場合、前記認証情報と共に前記実行部の前記ユーザ情報取得部が取得したユーザ情報に対応付けられた他の実行部を、前記ユーザ対応記憶部に記憶してある対応に基づいて特定する認証実行部特定部と、
該認証実行部特定部が特定した他の実行部に、前記認証情報の認証を依頼する認証依頼転送部とを備え、
前記制御部の前記取替部は、前記認証実行部特定部が特定した他の実行部から、前記認証情報が認証された旨を通知された場合に、前記認証情報の認証を依頼してきた実行部に対応付けられている入力部と、前記認証結果を通知してきた他の実行部に対応付けられている入力部とを取り替えることを特徴とする付記１に記載の情報処理装置。
【０２２３】
（付記４）
前記実行部のそれぞれと、前記実行部のそれぞれに対応付けられた入力部との対応を記憶する入力対応記憶部を備え、
前記制御部は、前記実行部のそれぞれを起動させる際に、前記入力対応記憶部に記憶してある対応に従った入力部を前記実行部のそれぞれに対応付けて起動する起動部を有することを特徴とする付記１から３までのいずれかひとつに記載の情報処理装置。
【０２２４】
（付記５）
前記実行部のそれぞれと、前記実行部のそれぞれが使用可能な入出力装置との対応を記憶する入出力装置対応記憶部を備え、
前記制御部は、起動後の前記実行部のそれぞれに、前記入出力装置対応記憶部に記憶してある対応に従った入出力装置を使用可能に対応付ける対応付け制御部を有することを特徴とする付記１から４までのいずれかひとつに記載の情報処理装置。
【０２２５】
（付記６）
前記制御部は、前記取替部が入力部を取り替える際に、前記他の実行部に対応付けられている入力部を介して入力中の情報を記憶する入力情報記憶部を有し、
前記実行部の前記入力受付部は、前記取替部が入力部を取り替えた後に、取り替えられることによって対応付けられた入力部を介して、前記入力情報記憶部に記憶させた情報を報知する報知部を有することを特徴とする付記１から５までのいずれかひとつに記載の情報処理装置。
【０２２６】
（付記７）
前記実行部の前記入力受付部は、自身の実行部に予め対応付けられたユーザのユーザ情報を、予め対応付けられた入力部を介して報知するユーザ情報報知部を有することを特徴とする付記１から６までのいずれかひとつに記載の情報処理装置。
【０２２７】
（付記８）
各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部とを備える情報処理装置による情報処理方法であって、
前記実行部のそれぞれが、予め対応付けられた入力部からのユーザ情報の入力を受け付けるステップと、
前記実行部のそれぞれが、受け付けたユーザ情報を前記対応付けられた入力部を介して取得するステップと、
前記実行部のそれぞれが、取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致するか否かを判断するステップと、
前記実行部のそれぞれが、取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致すると判断した場合、通常動作を開始するステップと、
前記実行部のそれぞれが、取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致しないと判断した場合、前記取得したユーザ情報に対応付けられた他の実行部の特定を前記制御部に要求するステップと、
前記制御部が、前記ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記ユーザ情報に対応付けられた他の実行部を特定するステップと、
前記制御部が、前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替えるステップと
を含むことを特徴とする情報処理方法。
【０２２８】
（付記９）
コンピュータに、各種処理を実行する複数の実行部と、該複数の実行部の動作を制御する制御部としての動作を実行させるためのコンピュータプログラムであって、
前記コンピュータに、
予め対応付けられた入力部からのユーザ情報の入力を受け付ける入力受付部、該入力受付部が受け付けたユーザ情報を前記対応付けられた入力部を介して取得するユーザ情報取得部、該ユーザ情報取得部が取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致するか否かを判断する判断部、前記ユーザ情報取得部が取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致すると前記判断部が判断した場合、通常動作を開始する動作開始部、及び、前記ユーザ情報取得部が取得したユーザ情報が予め対応付けられたユーザのユーザ情報に一致しないと前記判断部が判断した場合、前記ユーザ情報取得部が取得したユーザ情報に対応付けられた他の実行部の特定を前記制御部に要求する特定要求部を有する前記実行部としての動作を実行させるための第１コンピュータプログラムと、
前記コンピュータに、
前記ユーザ情報に対応付けられた他の実行部の特定を前記実行部から要求された場合、前記ユーザ情報に対応付けられた他の実行部を特定する特定部、及び、該特定部が前記他の実行部を特定した場合、前記他の実行部の特定を要求してきた実行部に対応付けられている入力部と、前記他の実行部に対応付けられている入力部とを取り替える取替部を有する前記制御部としての動作を実行させるための第２コンピュータプログラムと
を含むことを特徴とするコンピュータプログラム。
【符号の説明】
【０２２９】
１０  ＰＣ（情報処理装置）
１  ＣＰＵ
２１  ＶＭＭ（制御部）
２３  デバイス切替部（切替部）
２５  認証部（認証結果通知部）
２６  対象ＶＭ決定部（特定部）
２８  個別デバイス対応付け部（対応付け制御部）
２９  認証ＵＩ制御部（入力情報記憶部）
３１  ＯＳ（実行部）
３２  認証ＵＩ部（入力受付部、ユーザ情報取得部、認証依頼部）
３３  ユーザ判定部（判断部、特定要求部）
３４  モード切替部（動作開始部）
４  ＨＤＤ
４ａ  ＶＭ−ユーザ対応テーブル（ユーザ対応記憶部）
４ｃ  ユーザ情報テーブル（認証情報記憶部）
４ｅ  履歴情報テーブル（入力対応記憶部）
４ｆ  デバイス対応付けテーブル（入出力装置対応記憶部）
【図１】
2010176412.tif 000003
【図２】
2010176412.tif 000004
【図３】
2010176412.tif 000005
【図４】
2010176412.tif 000006
【図５】
2010176412.tif 000007
【図６】
2010176412.tif 000008
【図７】
2010176412.tif 000009
【図８】
2010176412.tif 000010
【図９】
2010176412.tif 000011
【図１０】
2010176412.tif 000012
【図１１】
2010176412.tif 000013
【図１２】
2010176412.tif 000014
【図１３】
2010176412.tif 000015
【図１４】
2010176412.tif 000016
【図１５】
2010176412.tif 000017
【図１６】
2010176412.tif 000018
【図１７】
2010176412.tif 000019
【図１８】
2010176412.tif 000020
【図１９】
2010176412.tif 000021
【図２０】
2010176412.tif 000022
【図２１】
2010176412.tif 000023
【図２２】
2010176412.tif 000024
【図２３】
2010176412.tif 000025
【図２４】
2010176412.tif 000026
【図２５】
2010176412.tif 000027
【図２６】
2010176412.tif 000028
【図２７】
2010176412.tif 000029
【図２８】
2010176412.tif 000030
【図２９】
2010176412.tif 000031