(57)【要約】ハイパーバイザ（１３０）は、第１オペレーティングシステム（１４１）に組み込まれているデバイスドライバに対応する第１デバイス（１０１）を第１オペレーティングシステムに割り当てる。また、ハイパーバイザは、第１オペレーティングシステムに組み込まれているデバイスドライバに対応しない第２デバイス（１０２）を第２オペレーティングシステム（１４２）に割り当てる。
2018092206.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のデバイスが接続されて第１オペレーティングシステムと第２オペレーティングシステムとが並行して動作する情報処理装置であって、
前記１つ以上のデバイスのうちの前記第１オペレーティングシステムに組み込まれているデバイスドライバに対応するデバイスを前記第１オペレーティングシステムに割り当て、前記１つ以上のデバイスのうちの前記第１オペレーティングシステムに組み込まれているデバイスドライバに対応しないデバイスを前記第２オペレーティングシステムに割り当てる割り当て部を備える情報処理装置。
【請求項２】
前記第１オペレーティングシステムには、前記第１オペレーティングシステムに割り当てられるデバイスに対応するデバイスドライバが組み込まれているが前記第２オペレーティングシステムに割り当てられるデバイスに対応するデバイスドライバが組み込まれていない
請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、
前記１つ以上のデバイスを、前記第１オペレーティングシステムに組み込まれているデバイスドライバに対応する第１デバイスと、前記第１オペレーティングシステムに組み込まれているデバイスドライバに対応しない第２デバイスとに分別する分別部と、
前記１つ以上のデバイスが前記第１デバイスと前記第２デバイスとに分別された後、前記第１オペレーティングシステムに割り当てられていたデバイスが登録されている第１デバイス構成データを、前記第１デバイスが登録されていて前記第２デバイスが登録されていない状態に更新して、前記第２オペレーティングシステムに割り当てられていたデバイスが登録されている第２デバイス構成データを、前記第２デバイスが登録されていて前記第１デバイスが登録されていない状態に更新するための更新処理を行う更新部とを備え、
前記割り当て部は、前記更新処理の後、前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当てる
請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、前記情報処理装置を再起動する再起動部を備え、
前記再起動部は、前記更新処理の後、前記情報処理装置を再起動し、
前記割り当て部は、前記情報処理装置が再起動された後、前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当てる
請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置は、
前記情報処理装置の起動時に前記情報処理装置のデバイス構成が変更されたか判定する変更判定部を備え、
前記割り当て部は、
前記情報処理装置のデバイス構成が変更されていない場合、現在の前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、現在の前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当て、
前記情報処理装置のデバイス構成が変更された場合、前記更新処理後の前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、前記更新処理後の前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当てる
請求項３に記載の情報処理装置。
【請求項６】
前記割り当て部は、前記情報処理装置の起動時に初期化命令が入力された場合、初期化用の前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、初期化用の前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当てる
請求項３に記載の情報処理装置。
【請求項７】
情報処理装置に接続された１つ以上のデバイスのそれぞれを前記情報処理装置で並行して動作する第１オペレーティングシステムと第２オペレーティングシステムとのいずれかに割り当てるデバイス割り当て方法であって、
前記第１オペレーティングシステムに割り当てられるデバイスに対応するデバイスドライバが前記第１オペレーティングシステムに組み込まれ、前記第２オペレーティングシステムに割り当てられるデバイスに対応するデバイスドライバが前記第１オペレーティングシステムに組み込まれず、
割り当て部が、前記１つ以上のデバイスのうちの前記第１オペレーティングシステムに組み込まれているデバイスドライバに対応するデバイスを前記第１オペレーティングシステムに割り当て、前記１つ以上のデバイスのうちの前記第１オペレーティングシステムに組み込まれているデバイスドライバに対応しないデバイスを前記第２オペレーティングシステムに割り当てる
デバイス割り当て方法。
【請求項８】
コンピュータに接続された１つ以上のデバイスのそれぞれを前記コンピュータで並行して動作する第１オペレーティングシステムと第２オペレーティングシステムとのいずれかに割り当てるデバイス割り当てプログラムであって、
前記１つ以上のデバイスのうちの第１オペレーティングシステムに組み込まれているデバイスドライバに対応するデバイスを前記第１オペレーティングシステムに割り当て、前記１つ以上のデバイスのうちの前記第１オペレーティングシステムに組み込まれているデバイスドライバに対応しないデバイスを第２オペレーティングシステムに割り当てる割り当て処理
を前記コンピュータに実行させるためのデバイス割り当てプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つ以上のデバイスのそれぞれを複数のオペレーティングシステムのいずれかに割り当てる技術に関するものである。
【背景技術】
【０００２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の高性能化に伴う仮想化技術の発展により、一台の情報処理システムに複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を搭載することが可能である。
複数のＯＳを制御するソフトウェアはハイパーバイザと呼ばれ、ハイパーバイザによって制御されるＯＳはゲストＯＳと呼ばれる。【０００３】
仮想化技術は、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）をはじめ様々な分野で用いられている。
具体的には、仮想化技術は、リアルタイム性が高い処理を行うためのリアルタイムＯＳと、Ｗｉｎｄｏｗｓ（登録商標）のような汎用ＯＳと、を単一のハードウェアプラットフォームで同時に実行する環境で用いられる。【０００４】
特許文献１には、ハイパーバイザ上で動作するゲストＯＳによって使用されるデバイスを追加、削除または変更する場合の技術が開示されている。
この技術では、あらかじめ用意してあるデバイス構成情報を用いてゲストＯＳに対するデバイスの割り当てを変更する。
つまり、デバイス構成情報をあらかじめ用意しておく必要がある。具体的には、ハードウェアを特定するための情報およびデバイスを識別する名称などをデバイス構成情報として登録しておく必要がある。
そのため、デバイス構成が変更になった場合に、利用者は、変更後のデバイス構成を確認して、デバイス構成情報を修正する必要がある。デバイス構成情報が誤って修正された場合には、システムが稼働不可能な状態になってしまう可能性がある。そこで、デバイス構成情報を用いずに、変更後のデバイス構成にシステムが対応できるようにする必要がある。
例えば、新規で追加したデバイスをゲストＯＳに割り当てる場合、デバイス構成情報を利用者が修正する必要がある。修正の結果、デバイス構成情報に誤りが生じた場合、正常にシステムが起動しない可能性がある。そこで、利用者によるデバイス構成情報の変更無しに、追加されたデバイスを使用可能にすることが求められる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２６９１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、利用者がデバイス構成情報を用意しなくても、情報処理装置が１つ以上のデバイスのそれぞれを複数のオペレーティングシステムのいずれかに割り当てることができるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、１つ以上のデバイスが接続されて第１オペレーティングシステムと第２オペレーティングシステムとが並行して動作する。
前記情報処理装置は、前記１つ以上のデバイスのうちの前記第１オペレーティングシステムに組み込まれているデバイスドライバに対応するデバイスを前記第１オペレーティングシステムに割り当て、前記１つ以上のデバイスのうちの前記第１オペレーティングシステムに組み込まれているデバイスドライバに対応しないデバイスを前記第２オペレーティングシステムに割り当てる割り当て部を備える。
【発明の効果】
【０００８】
本発明によれば、利用者がデバイス構成情報を用意しなくても、情報処理装置が１つ以上のデバイスのそれぞれを複数のオペレーティングシステムのいずれかに割り当てることができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１における情報処理装置１００のハードウェア構成およびソフトウェア構成を示す図。
【図２】実施の形態１におけるプロセッサ１２０の機能構成図。
【図３】実施の形態１における補助記憶装置１１３のデータ構成図。
【図４】実施の形態１におけるデバイス割り当て方法のフローチャート。
【図５】実施の形態１におけるデバイス構成の変更（Ｓ１００）のフローチャート。
【図６】実施の形態１におけるデバイスの割り当て（Ｓ２００）のフローチャート。
【図７】実施の形態１におけるデバイスの割り当て（Ｓ２００）のフローチャート。
【図８】実施の形態１における分別処理（Ｓ２３０）のフローチャート。
【図９】実施の形態における情報処理装置１００のハードウェア構成図。
【発明を実施するための形態】
【００１０】
実施の形態および図面において、同じ要素および対応する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１１】
実施の形態１．
１つ以上のデバイスを複数のオペレーティングシステムのいずれかに割り当てる形態について、図１から図８に基づいて説明する。
【００１２】
＊＊＊構成の説明＊＊＊
図１に基づいて、情報処理装置１００のハードウェア構成およびソフトウェア構成を説明する。
情報処理装置１００は、メモリ１１１とキャッシュ１１２と補助記憶装置１１３とプロセッサ１２０といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００１３】
メモリ１１１およびキャッシュ１１２は、揮発性の記憶装置である。メモリ１１１は主記憶装置とも呼ばれる。例えば、メモリ１１１はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。キャッシュ１１２は共有キャッシュを含む。
補助記憶装置１１３は、不揮発性の記憶装置である。例えば、補助記憶装置１１３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）またはフラッシュメモリである。
メモリ１１１とキャッシュ１１２と補助記憶装置１１３は、データを記憶する記憶部として機能する。
【００１４】
プロセッサ１２０は、複数のプロセッサコアを備えるマルチコアプロセッサである。例えば、プロセッサ１２０はマルチコアＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
実施の形態１において、プロセッサ１２０は、第１コア１２１と第２コア１２２とを備える。第１コア１２１および第２コア１２２はプロセッサコアである。
【００１５】
情報処理装置１００には、ハイパーバイザ１３０と第１オペレーティングシステム１４１と第２オペレーティングシステム１４２と第１アプリケーション１６１と第２アプリケーション１６２といったソフトウェアがインストールされている。これらのソフトウェアはメモリ１１１にロードされてプロセッサ１２０によって実行される。
【００１６】
ハイパーバイザ１３０は、複数のオペレーティングシステム（ＯＳ）を並行して動作させるためのソフトウェアである。ハイパーバイザ１３０によって制御されるオペレーティングシステムをゲストＯＳという。
【００１７】
第１オペレーティングシステム１４１と第２オペレーティングシステム１４２とは、ハイパーバイザ１３０によって制御されるゲストＯＳである。
第１オペレーティングシステム１４１と第２オペレーティングシステム１４２とは並行して動作する。
第１オペレーティングシステム１４１と第２オペレーティングシステム１４２とは、別々のプロセッサコアによって実行される。具体的には、第１オペレーティングシステム１４１は第１コア１２１によって実行され、第２オペレーティングシステム１４２は第２コア１２２によって実行される。
【００１８】
第１アプリケーション１６１は、第１オペレーティングシステム１４１の機能を利用して実行されるアプリケーションプログラムである。
第２アプリケーション１６２は、第２オペレーティングシステム１４２の機能を利用して実行されるアプリケーションプログラムである。
例えば、第１オペレーティングシステム１４１はリアルタイムＯＳであり、第１アプリケーション１６１はリアルタイムアプリケーションである。リアルタイムＯＳはリアルタイムアプリケーションを実行するためのＯＳである。リアルタイムアプリケーションはリアルタイム処理用のアプリケーションプログラムである。リアルタイム処理はリアルタイム性が高い処理である。
例えば、第２オペレーティングシステム１４２は汎用ＯＳであり、第２アプリケーション１６２は汎用アプリケーションである。汎用ＯＳは汎用アプリケーションを実行するためのＯＳである。汎用アプリケーションは汎用処理用のアプリケーションプログラムである。汎用処理はリアルタイム処理以外の処理である。
【００１９】
情報処理装置１００には、第１オペレーティングシステム１４１と第２オペレーティングシステム１４２とのいずれかに割り当てられる１つ以上のデバイスが接続される。
第１オペレーティングシステム１４１に割り当てられるデバイスを第１デバイス１０１といい、第２オペレーティングシステム１４２に割り当てられるデバイスを第２デバイス１０２という。
第１オペレーティングシステム１４１には、第１デバイスドライバ１５１が組み込まれて、第２デバイスドライバ１５２が組み込まれない。
第２オペレーティングシステム１４２には、第２デバイスドライバ１５２が組み込まれて、第１デバイスドライバ１５１が組み込まれない。
第１デバイスドライバ１５１は第１デバイス１０１に対応するデバイスドライバであり、第２デバイスドライバ１５２は第２デバイス１０２に対応するデバイスドライバである。
第１デバイス１０１は第１デバイスドライバ１５１に対応するデバイスであり、第２デバイス１０２は第２デバイスドライバ１５２に対応するデバイスである。
【００２０】
図２に基づいて、情報処理装置１００に備わるプロセッサ１２０の機能構成を説明する。
プロセッサ１２０は、初期化判定部２０１と変更判定部２０２と割り当て部２０３と起動部２０４と分別部２０５と更新部２０６と再起動部２０７と生成部２０８とを機能構成の要素として備える。これら機能構成の要素はソフトウェアで実現される。具体的には、これら機能構成の要素はハイパーバイザ１３０の一部として実現される。
【００２１】
初期化判定部２０１と変更判定部２０２と割り当て部２０３と起動部２０４と分別部２０５と更新部２０６と再起動部２０７と生成部２０８として情報処理装置１００を機能させるためのプログラムをデバイス割り当てプログラムという。
デバイス割り当てプログラムは、補助記憶装置１１３に記憶されて、メモリ１１１にロードされて、プロセッサ１２０によって実行される。
デバイス割り当てプログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。不揮発性の記憶媒体は、一時的でない有形の媒体である。
【００２２】
図３に基づいて、補助記憶装置１１３に記憶されるデータを説明する。
補助記憶装置１１３には、第１デバイス構成データ２１１と第２デバイス構成データ２１２と第１デバイス構成データ２２１と第２デバイス構成データ２２２とが記憶される。
第１デバイス構成データ２１１は、初期化用の第１デバイス構成データである。
第２デバイス構成データ２１２は、初期化用の第２デバイス構成データである。
第１デバイス構成データ２２１は、現在の第１デバイス構成データである。
第２デバイス構成データ２２２は、現在の第２デバイス構成データである。
第１デバイス構成データとは、第１オペレーティングシステム１４１に割り当てられていたデバイスが登録されているデータである。
第２デバイス構成データとは、第２オペレーティングシステム１４２に割り当てられていたデバイスが登録されているデータである。
第１デバイス構成データ２１１と第２デバイス構成データ２１２と第１デバイス構成データ２２１と第２デバイス構成データ２２２とは、情報処理装置１００の起動時に必要に応じてメモリ１１１にロードされて使用され、情報処理装置１００の停止時に必要に応じて補助記憶装置１１３に保存される。
【００２３】
＊＊＊動作の説明＊＊＊
情報処理装置１００および情報処理装置１００の利用者の動作はデバイス割り当て方法に相当する。また、情報処理装置１００におけるデバイス割り当て方法の手順はデバイス割り当てプログラムの手順に相当する。
【００２４】
図４に基づいて、デバイス割り当て方法を説明する。
ステップＳ１００において、利用者は、情報処理装置１００のデバイス構成を必要に応じて変更する。
デバイス構成とは、第１デバイス１０１と第２デバイス１０２と第１デバイスドライバ１５１と第２デバイスドライバ１５２との構成を意味する。
【００２５】
図５に基づいて、デバイス構成の変更（Ｓ１００）を説明する。
ステップＳ１０１において、利用者は、情報処理装置１００のデバイス構成を変更するか判断する。
利用者が情報処理装置１００のデバイス構成を変更すると判断した場合、利用者は情報処理装置１００を起動し、処理はステップＳ１１１に進む。
情報処理装置１００のデバイス構成を変更しないと判断した場合、デバイス構成の変更（Ｓ１００）は終了する。
【００２６】
ステップＳ１１１において、利用者は、第１デバイス１０１を情報処理装置１００に追加するか判断する。
利用者が第１デバイス１０１を情報処理装置１００に追加すると判断した場合、処理はステップＳ１１２に進む。
利用者が第１デバイス１０１を情報処理装置１００に追加しないと判断した場合、処理はステップＳ１２１に進む。
【００２７】
ステップＳ１１２において、利用者は、追加される第１デバイス１０１に対応する第１デバイスドライバ１５１を情報処理装置１００の第１オペレーティングシステム１４１に組み込む。
そして、利用者は、第１デバイス１０１を情報処理装置１００に追加する。具体的には、利用者は、第１デバイス１０１を情報処理装置１００に接続する。
なお、追加される第１デバイス１０１が第２オペレーティングシステム１４２に割り当てられていたデバイスである場合、利用者は、第２オペレーティングシステム１４２から当該デバイスに対応する第２デバイスドライバ１５２を削除する。
【００２８】
ステップＳ１２１において、利用者は、第１デバイス１０１を情報処理装置１００から削除するか判断する。
利用者が第１デバイス１０１を情報処理装置１００から削除すると判断した場合、処理はステップＳ１２２に進む。
利用者が第１デバイス１０１を情報処理装置１００から削除しないと判断した場合、処理はステップＳ１３１に進む。
【００２９】
ステップＳ１２２において、利用者は、削除される第１デバイス１０１に対応する第１デバイスドライバ１５１を情報処理装置１００の第１オペレーティングシステム１４１から削除する。
そして、利用者は、第１デバイス１０１を情報処理装置１００から削除する。具体的には、利用者は、第１デバイス１０１を情報処理装置１００から取り外す。
【００３０】
ステップＳ１３１において、利用者は、第２デバイス１０２を情報処理装置１００に追加するか判断する。
利用者が第２デバイス１０２を情報処理装置１００に追加すると判断した場合、処理はステップＳ１３２に進む。
利用者が第２デバイス１０２を情報処理装置１００に追加しないと判断した場合、処理はステップＳ１４１に進む。
【００３１】
ステップＳ１３２において、利用者は、追加される第２デバイス１０２に対応する第２デバイスドライバ１５２を情報処理装置１００の第２オペレーティングシステム１４２に組み込む。
そして、利用者は、第２デバイス１０２を情報処理装置１００に追加する。具体的には、利用者は、第２デバイス１０２を情報処理装置１００に接続する。
なお、追加される第２デバイス１０２が第１オペレーティングシステム１４１に割り当てられていたデバイスである場合、利用者は、第１オペレーティングシステム１４１から当該デバイスに対応する第１デバイスドライバ１５１を削除する。
【００３２】
ステップＳ１４１において、利用者は、第２デバイス１０２を情報処理装置１００から削除するか判断する。
利用者が第２デバイス１０２を情報処理装置１００から削除すると判断した場合、処理はステップＳ１４２に進む。
利用者が第２デバイス１０２を情報処理装置１００から削除しないと判断した場合、利用者は情報処理装置１００を停止し、デバイス構成の変更（Ｓ１００）は終了する。
【００３３】
ステップＳ１４２において、利用者は、削除される第２デバイス１０２に対応する第２デバイスドライバ１５２を情報処理装置１００の第２オペレーティングシステム１４２から削除する。
また、利用者は、第２デバイス１０２を情報処理装置１００から削除する。具体的には、利用者は、第２デバイス１０２を情報処理装置１００から取り外す。
そして、利用者は、情報処理装置１００を停止する。
【００３４】
図４に戻り、ステップＳ２００を説明する。
ステップＳ２００において、利用者は情報処理装置１００を起動する。
情報処理装置１００は、第１デバイス１０１を第１オペレーティングシステム１４１に割り当て、第２デバイス１０２を第２オペレーティングシステム１４２に割り当てる。
【００３５】
図６および図７に基づいて、デバイスの割り当て（Ｓ２００）を説明する。
まず、図６に基づいて、ステップＳ２０１からステップＳ２２２を説明する。
ステップＳ２０１において、初期化判定部２０１は、初期化用のデバイス構成データを用いてデバイスの割り当てを行うか判定する。
具体的には、デバイス構成を初期化したい場合、利用者は、情報処理装置１００を起動するときに初期化命令を情報処理装置１００に入力する。初期化命令はデバイス構成の初期化を指示する命令である。例えば、利用者は、初期化用のキーとして予め決められたキーを押下しながら、情報処理装置１００を起動する。そして、初期化判定部２０１は、初期化命令が入力されたか判定する。初期化命令が入力された場合、初期化用のデバイス構成データを用いてデバイスの割り当てが行われる。
初期化用のデバイス構成データを用いてデバイスの割り当てを行う場合、処理はステップＳ２０２に進む。
初期化用のデバイス構成データを用いてデバイスの割り当てを行わない場合、処理はステップＳ２１１に進む。
【００３６】
ステップＳ２０２において、情報処理装置１００は以下のような状態であるものとする。
初期化用のデバイス構成データが存在する。つまり、第１デバイス構成データ２１１および第２デバイス構成データ２１２が補助記憶装置１１３に記憶されている。
初期状態の情報処理装置１００における第１デバイス１０１および第２デバイス１０２が情報処理装置１００に接続されている。
初期状態の情報処理装置１００における第１デバイスドライバ１５１が第１オペレーティングシステム１４１に組み込まれている。
初期状態の情報処理装置１００における第２デバイスドライバ１５２が第２オペレーティングシステム１４２に組み込まれている。
【００３７】
割り当て部２０３は、初期化用のデバイス構成データを参照して、デバイスの割り当てを行う。
具体的には、割り当て部２０３は以下のように動作する。
割り当て部２０３は、第１デバイス構成データ２１１を参照して第１デバイス１０１を第１オペレーティングシステム１４１に割り当てる。つまり、割り当て部２０３は、第１デバイス構成データ２１１に登録されている第１デバイス１０１を第１オペレーティングシステム１４１に割り当てる。
割り当て部２０３は、第２デバイス構成データ２１２を参照して第２デバイス１０２を第２オペレーティングシステム１４２に割り当てる。つまり、割り当て部２０３は、第２デバイス構成データ２１２に登録されている第２デバイス１０２を第２オペレーティングシステム１４２に割り当てる。
【００３８】
また、割り当て部２０３は、現在のデバイス構成データをメモリ１１１および補助記憶装置１１３から削除する。
【００３９】
そして、起動部２０４は、第１オペレーティングシステム１４１と第２オペレーティングシステム１４２とを起動する。
【００４０】
ステップＳ２１１において、変更判定部２０２は、情報処理装置１００のデバイス構成が変更されたか判定する。
具体的には、変更判定部２０２は以下のようにして動作する。
第１デバイス構成データ２２１および第２デバイス構成データ２２２が無い場合、変更判定部２０２は、デバイス構成が変更されたと判定する。
【００４１】
第１デバイス構成データ２２１および第２デバイス構成データ２２２が有る場合、変更判定部２０２は以下のように動作する。
まず、変更判定部２０２は、情報処理装置１００に接続されているデバイス群を検出する。デバイス群は１つ以上のデバイスである。
そして、変更判定部２０２は、検出されたデバイス群を登録デバイス群と比較する。登録デバイス群とは、第１デバイス構成データ２２１および第２デバイス構成データ２２２に登録されているデバイス群である。検出されたデバイス群が登録デバイス群と一致しない場合、変更判定部２０２は、デバイス構成が変更されたと判定する。
また、変更判定部２０２は、第１オペレーティングシステム１４１に組み込まれている第１デバイスドライバ群を検出する。第１デバイスドライバ群は１つ以上の第１デバイスドライバ１５１である。
そして、変更判定部２０２は、検出された第１デバイスドライバ群を第１登録ドライバ群と比較する。第１登録ドライバ群とは、第１デバイス構成データ２２１に登録されているデバイス群に対応するデバイスドライバ群である。デバイスドライバ群は１つ以上のデバイスドライバである。検出された第１デバイスドライバ群が第１登録ドライバ群と一致しない場合、変更判定部２０２は、デバイス構成が変更されたと判定する。
また、変更判定部２０２は、第２オペレーティングシステム１４２に組み込まれている第２デバイスドライバ群を検出する。第２デバイスドライバ群は１つ以上の第２デバイスドライバ１５２である。
そして、変更判定部２０２は、検出された第２デバイスドライバ群を第２登録ドライバ群と比較する。第２登録ドライバ群とは、第２デバイス構成データ２２２に登録されているデバイス群に対応するデバイスドライバ群である。検出された第２デバイスドライバ群が第２登録ドライバ群と一致しない場合、変更判定部２０２は、デバイス構成が変更されたと判定する。
【００４２】
情報処理装置１００のデバイス構成が変更された場合、処理はステップＳ２２１に進む。
情報処理装置１００のデバイス構成が変更されていない場合、処理はステップＳ２１２に進む。
【００４３】
ステップＳ２１２において、割り当て部２０３は、現在のデバイス構成データを参照して、デバイスの割り当てを行う。
具体的には、割り当て部２０３は以下のように動作する。
割り当て部２０３は、第１デバイス構成データ２２１を参照して第１デバイス１０１を第１オペレーティングシステム１４１に割り当てる。つまり、割り当て部２０３は、第１デバイス構成データ２２１に登録されている第１デバイス１０１を第１オペレーティングシステム１４１に割り当てる。
割り当て部２０３は、第２デバイス構成データ２２２を参照して第２デバイス１０２を第２オペレーティングシステム１４２に割り当てる。つまり、割り当て部２０３は、第２デバイス構成データ２２２に登録されている第２デバイス１０２を第２オペレーティングシステム１４２に割り当てる。
【００４４】
そして、起動部２０４は、第１オペレーティングシステム１４１と第２オペレーティングシステム１４２とを起動する。
【００４５】
ステップＳ２２１において、生成部２０８は、初期化用のデバイス構成データが有るか判定する。つまり、生成部２０８は、第１デバイス構成データ２１１および第２デバイス構成データ２１２が補助記憶装置１１３に記憶されているか判定する。
初期化用のデバイス構成データが有る場合、処理はステップＳ２３０（図７参照）に進む。
初期化用のデバイス構成データが無い場合、処理はステップＳ２２２に進む。
【００４６】
ステップＳ２２２において、生成部２０８は、初期化用のデバイス構成データを生成する。つまり、生成部２０８は、第１デバイス構成データ２１１と第２デバイス構成データ２１２とを生成する。これにより、初期化用のデバイス構成データは情報処理装置１００が最初に起動したときに生成されることとなる。初期化用のデバイス構成データを生成するために必要な情報は、プロセッサ１２０によって取得できる、又は、補助記憶装置１１３に記憶されているものとする。
そして、生成部２０８は、初期化用のデバイス構成データを補助記憶装置１１３に記憶する。
【００４７】
次に、図７に基づいて、ステップＳ２３０からステップＳ２６０を説明する。
ステップＳ２３０において、分別部２０５は、接続デバイス群を第１デバイス１０１と第２デバイス１０２とに分別する。接続デバイス群は、情報処理装置１００に接続されている１つ以上のデバイスである。
【００４８】
図８に基づいて、接続デバイス群の分別（Ｓ２３０）を説明する。
【００４９】
ステップＳ２３１において、割り当て部２０３は、接続デバイス群を第１オペレーティングシステム１４１に割り当てる。
【００５０】
ステップＳ２３２において、起動部２０４は、第１オペレーティングシステム１４１を起動する。
【００５１】
ステップＳ２３３において、分別部２０５は、第１オペレーティングシステム１４１に組み込まれている第１デバイスドライバ１５１から、未選択の第１デバイスドライバ１５１を１つ選択する。
【００５２】
ステップＳ２３４において、分別部２０５は、選択された第１デバイスドライバ１５１にデバイスマッチングを要求する。
選択された第１デバイスドライバ１５１は、デバイスマッチングを行う。デバイスマッチングは、該当デバイスの有無を確認する処理である。該当デバイスとは、デバイスドライバに対応するデバイスである。具体的には、第１デバイスドライバ１５１はｐｒｏｂｅと呼ばれる処理を行う。
そして、選択された第１デバイスドライバ１５１は、デバイスマッチングの結果を分別部２０５に通知する。デバイスマッチングの結果は該当デバイスの有無を示す。該当デバイスが有る場合、デバイスマッチングの結果は該当デバイスを示す。
【００５３】
ステップＳ２３５において、分別部２０５は、通知されたデバイスマッチングの結果を参照して、該当デバイスが有るか判定する。
該当デバイスが有る場合、処理はステップＳ２３６に進む。
該当デバイスが無い場合、処理はステップＳ２３７に進む。
【００５４】
ステップＳ２３６において、分別部２０５は、該当デバイスを第１デバイス１０１に分別する。
【００５５】
ステップＳ２３７において、分別部２０５は、未選択の第１デバイスドライバ１５１が有るか判定する。
未選択の第１デバイスドライバ１５１が有る場合、処理はステップＳ２３３に進む。
未選択の第１デバイスドライバ１５１が無い場合、処理はステップＳ２３８に進む。
【００５６】
ステップＳ２３８において、分別部２０５は、未分別デバイスを第２デバイス１０２に分別する。未分別デバイスとは、接続デバイス群のうち第１デバイス１０１に分別されていないデバイスである。
【００５７】
図７に戻り、ステップＳ２４０から説明を続ける。
ステップＳ２４０において、更新部２０６は、現在のデバイス構成データを更新する。つまり、更新部２０６は、第１デバイス構成データ２２１および第２デバイス構成データ２２２を更新する。
具体的には、更新部２０６は以下のように動作する。
更新部２０６は、第１デバイス構成データ２２１を、第１デバイス１０１が登録されていて第２デバイス１０２が登録されていない状態に更新する。つまり、第１デバイス構成データ２２１に登録されていない第１デバイス１０１が有る場合、更新部２０６は、その第１デバイス１０１を第１デバイス構成データ２２１に登録する。また、第１デバイス構成データ２２１に登録されている第２デバイス１０２が有る場合、更新部２０６は、その第２デバイス１０２を第１デバイス構成データ２２１から削除する。
更新部２０６は、第２デバイス構成データ２２２を、第２デバイス１０２が登録されていて第１デバイス１０１が登録されていない状態に更新する。つまり、第２デバイス構成データ２２２に登録されていない第２デバイス１０２が有る場合、更新部２０６は、その第２デバイス１０２を第２デバイス構成データ２２２に登録する。また、第２デバイス構成データ２２２に登録されている第１デバイス１０１がある場合、更新部２０６は、その第１デバイス１０１を第２デバイス構成データ２２２から削除する。
【００５８】
ステップＳ２５０において、再起動部２０７は、情報処理装置１００を再起動する。
【００５９】
ステップＳ２６０において、割り当て部２０３は、現在のデバイス構成データを参照して、デバイスの割り当てを行う。
具体的には、割り当て部２０３は以下のように動作する。
割り当て部２０３は、第１デバイス構成データ２２１を参照して第１デバイス１０１を第１オペレーティングシステム１４１に割り当てる。つまり、割り当て部２０３は、第１デバイス構成データ２２１に登録されている第１デバイス１０１を第１オペレーティングシステム１４１に割り当てる。
割り当て部２０３は、第２デバイス構成データ２２２を参照して第２デバイス１０２を第２オペレーティングシステム１４２に割り当てる。つまり、割り当て部２０３は、第２デバイス構成データ２２２に登録されている第２デバイス１０２を第２オペレーティングシステム１４２に割り当てる。
【００６０】
そして、起動部２０４は、第１オペレーティングシステム１４１と第２オペレーティングシステム１４２とを起動する。
【００６１】
＊＊＊実施例の説明＊＊＊
以下に、デバイス割り当て方法（図４から図８）における実施例を説明する。
＜第１実施例＞
第１実施例は、第１デバイス１０１としてデバイスＡが情報処理装置１００に追加される形態である。
ステップＳ１１２（図５参照）において、利用者は、デバイス［Ａ］に対応するデバイスドライバ［Ａ］を第１オペレーティングシステム１４１に組み込み、デバイス［Ａ］を情報処理装置１００に追加する。
ステップＳ２３０（図７参照）において、デバイスドライバ［Ａ］が第１オペレーティングシステム１４１に組み込まれているため、分別部２０５は、デバイス［Ａ］を第１デバイス１０１に分別する。
ステップＳ２４０（図７参照）において、デバイス［Ａ］が第１デバイス１０１に分別されているため、更新部２０６は、デバイス［Ａ］を第１デバイス構成データ２２１に登録する。
ステップＳ２６０（図７参照）において、デバイス［Ａ］が第１デバイス構成データ２２１に登録されているため、割り当て部２０３は、デバイス［Ａ］を第１オペレーティングシステム１４１に割り当てる。
【００６２】
＜第２実施例＞
第２実施例は、第２デバイス１０２としてデバイス［Ａ］が情報処理装置１００に追加される形態である。
ステップＳ１３２（図５参照）において、利用者は、デバイス［Ａ］に対応するデバイスドライバ［Ａ］を第２オペレーティングシステム１４２に組み込み、デバイス［Ａ］を情報処理装置１００に追加する。
ステップＳ２３０（図７参照）において、デバイスドライバ［Ａ］が第１オペレーティングシステム１４１に組み込まれていないため、分別部２０５は、デバイス［Ａ］を第２デバイス１０２に分別する。
ステップＳ２４０（図７参照）において、デバイス［Ａ］が第２デバイス１０２に分別されているため、更新部２０６は、デバイス［Ａ］を第２デバイス構成データ２２２に登録する。
ステップＳ２６０（図７参照）において、デバイス［Ａ］が第２デバイス構成データ２２２に登録されているため、割り当て部２０３は、デバイス［Ａ］を第２オペレーティングシステム１４２に割り当てる。
【００６３】
＜第３実施例＞
第３実施例は、第１デバイス１０１であるデバイス［Ｄ］が情報処理装置１００から削除される形態である。
ステップＳ１２１（図５参照）において、利用者は、デバイス［Ｄ］に対応するデバイスドライバ［Ｄ］を第１オペレーティングシステム１４１から削除し、デバイス［Ｄ］を情報処理装置１００から削除する。
ステップＳ２３０（図７参照）において、デバイスドライバ［Ｄ］が第１オペレーティングシステム１４１から削除されているため、分別部２０５は、デバイス［Ｄ］を第１デバイス１０１に分別しない。
ステップＳ２４０（図７参照）において、デバイス［Ｄ］が第１デバイス１０１に分別されていないため、更新部２０６は、デバイス［Ｄ］を第１デバイス構成データ２２１から削除する。
ステップＳ２６０（図７参照）において、デバイス［Ｄ］が第１デバイス構成データ２２１に登録されていないため、割り当て部２０３は、デバイス［Ｄ］を第１オペレーティングシステム１４１に割り当てない。
【００６４】
＜第４実施例＞
第４実施例は、第２デバイス１０２であるデバイス［Ｄ］が情報処理装置１００から削除される形態である。
ステップＳ１４１（図５参照）において、利用者は、デバイス［Ｄ］に対応するデバイスドライバ［Ｄ］を第２オペレーティングシステム１４２から削除し、デバイス［Ｄ］を情報処理装置１００から削除する。
ステップＳ２３０（図７参照）において、デバイス［Ｄ］が情報処理装置１００から削除されているため、分別部２０５は、デバイス［Ｄ］を第２デバイス１０２に分別しない。
ステップＳ２４０（図７参照）において、デバイス［Ｄ］が第２デバイス１０２に分別されていないため、更新部２０６は、デバイス［Ｄ］を第２デバイス構成データ２２２から削除する。
ステップＳ２６０（図７参照）において、デバイス［Ｄ］が第２デバイス構成データ２２２に登録されていないため、割り当て部２０３は、デバイス［Ｄ］を第２オペレーティングシステム１４２に割り当てない。
【００６５】
＊＊＊実施の形態１の効果＊＊＊
情報処理装置１００は、１つ以上のデバイスのそれぞれを第１オペレーティングシステム１４１と第２オペレーティングシステム１４２とのいずれかに割り当てることができる。
利用者は、デバイスの割り当てを変更するためにデバイスドライバの追加または削除を行えばよく、第１デバイス構成データ２２１および第２デバイス構成データ２２２を編集する必要はない。
つまり、利用者がデバイス構成情報を用意しなくても、情報処理装置１００が１つ以上のデバイスのそれぞれを複数のオペレーティングシステムのいずれかに割り当てることができる。
【００６６】
＊＊＊他の構成＊＊＊
ゲストＯＳの数は３つ以上であっても構わない。
第１デバイス構成データ２１１と第２デバイス構成データ２１２とは１つのファイルに含まれてもよい。第１デバイス構成データ２２１と第２デバイス構成データ２２２とは１つのファイルに含まれてもよい。
ハイパーバイザ１３０は、第１コア１２１と第２コア１２２とのいずれによって実行されてもよい。また、プロセッサ１２０は、ハイパーバイザ１３０を実行するための専用のプロセッサコアを備えてもよい。
ハイパーバイザ１３０をホストＯＳに置き換えても構わない。
【００６７】
ステップＳ２３１で全てのデバイスが第１オペレーティングシステム１４１に割り当てられる。そのため、ステップＳ２３４で全てのデバイスが第１デバイス１０１に分別された場合、ステップＳ２５０で再起動を行わずにステップＳ２６０で第２オペレーティングシステム１４２を起動してもよい。これにより、第１オペレーティングシステム１４１および第２オペレーティングシステム１４２が利用できる状態になるまでの時間を短縮することができる。
【００６８】
初期化用のデバイス構成データと現在のデバイス構成データとの他に、過去のデバイス構成データを保存してもよい。
利用者は、情報処理装置１００の起動時にいずれかのデバイス構成データを指定する命令を情報処理装置１００に入力する。具体的には、利用者は、いずれかのデバイス構成データに対応するキーを押下する。
そして、割り当て部２０３は、指定されたデバイス構成データを参照してデバイスの割り当てを行う。
この場合、ステップＳ２４０において、更新部２０６は、現在のデバイス構成データを更新する前に現在のデバイス構成データを過去のデバイス構成データとして保存するか問い合わせる。具体的には、更新部２０６はディスプレイに問い合わせを表示する。利用者は、キーボードまたはマウスを操作して、問い合わせに応答する。そして、現在のデバイス構成データを過去のデバイス構成データとして保存する旨の応答があった場合、更新部２０６は、現在のデバイス構成データを更新する前に現在のデバイス構成データを過去のデバイス構成データとして保存する。
【００６９】
＊＊＊実施の形態の補足＊＊＊
実施の形態において、情報処理装置１００の機能はハードウェアで実現してもよい。
図９に、情報処理装置１００の機能がハードウェアで実現される場合の構成を示す。
情報処理装置１００は処理回路９９０およびデバイス群９９１を備える。処理回路９９０はプロセッシングサーキットリともいう。デバイス群９９１は第１デバイス１０１および第２デバイス１０２である。
処理回路９９０は、初期化判定部２０１と変更判定部２０２と割り当て部２０３と起動部２０４と分別部２０５と更新部２０６と再起動部２０７と生成部２０８と記憶部とを実現する専用の電子回路である。
例えば、処理回路９９０は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。ＧＡはＧａｔｅ  Ａｒｒａｙの略称であり、ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
【００７０】
情報処理装置１００は、処理回路９９０を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路９９０の役割を分担する。
【００７１】
情報処理装置１００の機能は、ソフトウェアとハードウェアとの組み合わせで実現してもよい。つまり、一部の機能がソフトウェアで実現され、残りの機能がハードウェアで実現されてもよい。
【００７２】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【００７３】
１００  情報処理装置、１０１  第１デバイス、１０２  第２デバイス、１１１  メモリ、１１２  キャッシュ、１１３  補助記憶装置、１２０  プロセッサ、１２１  第１コア、１２２  第２コア、１３０  ハイパーバイザ、１４１  第１オペレーティングシステム、１４２  第２オペレーティングシステム、１５１  第１デバイスドライバ、１５２  第２デバイスドライバ、１６１  第１アプリケーション、１６２  第２アプリケーション、２０１  初期化判定部、２０２  変更判定部、２０３  割り当て部、２０４  起動部、２０５  分別部、２０６  更新部、２０７  再起動部、２０８  生成部、２１１  第１デバイス構成データ、２１２  第２デバイス構成データ、２２１  第１デバイス構成データ、２２２  第２デバイス構成データ、９９０  処理回路、９９１  デバイス群。
【図１】
2018092206.tif 000003
【図２】
2018092206.tif 000004
【図３】
2018092206.tif 000005
【図４】
2018092206.tif 000006
【図５】
2018092206.tif 000007
【図６】
2018092206.tif 000008
【図７】
2018092206.tif 000009
【図８】
2018092206.tif 000010
【図９】
2018092206.tif 000011
【手続補正書】
【提出日】平成29年9月4日(2017.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１オペレーティングシステムと第２オペレーティングシステムとが並行して動作する情報処理装置であって、
前記情報処理装置には、前記第１オペレーティングシステムに割り当てられる第１デバイスと前記第２オペレーティングシステムに割り当てられる第２デバイスとから成るデバイス群が接続され、
前記第１オペレーティングシステムには、前記第１デバイスに対応する第１デバイスドライバが組み込まれるが前記第２デバイスに対応する第２デバイスドライバが組み込まれず、
前記第２オペレーティングシステムには、前記第２デバイスドライバが組み込まれるが前記第１デバイスドライバが組み込まれず、
前記情報処理装置は、
前記第１オペレーティングシステムに組み込まれているデバイスドライバである前記第１デバイスドライバを選択し、前記第１デバイスドライバからデバイスマッチングの結果を受け、前記デバイス群のうち前記デバイスマッチングの結果として通知されたデバイスを前記第１デバイスに分別し、前記デバイス群のうち前記第１デバイスに分別されていないデバイスを前記第２デバイスに分別する分別部と、
前記デバイス群が前記第１デバイスと前記第２デバイスとに分別された後、前記第１オペレーティングシステムに割り当てられていたデバイスが登録されている第１デバイス構成データを、前記第１デバイスが登録されていて前記第２デバイスが登録されていない状態に更新して、前記第２オペレーティングシステムに割り当てられていたデバイスが登録されている第２デバイス構成データを、前記第２デバイスが登録されていて前記第１デバイスが登録されていない状態に更新するための更新処理を行う更新部と、
前記更新処理の後、前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当てる割り当て部と
を備える情報処理装置。
【請求項２】
前記情報処理装置は、前記情報処理装置を再起動する再起動部を備え、
前記再起動部は、前記更新処理の後、前記情報処理装置を再起動し、
前記割り当て部は、前記情報処理装置が再起動された後、前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当てる
請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、
前記情報処理装置の起動時に前記情報処理装置のデバイス構成が変更されたか判定する変更判定部を備え、
前記割り当て部は、
前記情報処理装置のデバイス構成が変更されていない場合、現在の前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、現在の前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当て、
前記情報処理装置のデバイス構成が変更された場合、前記更新処理後の前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、前記更新処理後の前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当てる
請求項１に記載の情報処理装置。
【請求項４】
前記割り当て部は、前記情報処理装置の起動時に初期化命令が入力された場合、初期化用の前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当てて、初期化用の前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当てる
請求項１に記載の情報処理装置。
【請求項５】
第１オペレーティングシステムと第２オペレーティングシステムとが並行して動作する情報処理装置に、前記第１オペレーティングシステムに割り当てられる第１デバイスと前記第２オペレーティングシステムに割り当てられる第２デバイスとから成るデバイス群が接続され、
前記第１オペレーティングシステムに、前記第１デバイスに対応する第１デバイスドライバが組み込まれるが前記第２デバイスに対応する第２デバイスドライバが組み込まれず、
前記第２オペレーティングシステムに、前記第２デバイスドライバが組み込まれるが前記第１デバイスドライバが組み込まれず、
分別部が、前記第１オペレーティングシステムに組み込まれているデバイスドライバである前記第１デバイスドライバを選択し、前記第１デバイスドライバからデバイスマッチングの結果を受け、前記デバイス群のうち前記デバイスマッチングの結果として通知されたデバイスを前記第１デバイスに分別し、前記デバイス群のうち前記第１デバイスに分別されていないデバイスを前記第２デバイスに分別し、
更新部が、前記デバイス群が前記第１デバイスと前記第２デバイスとに分別された後、前記第１オペレーティングシステムに割り当てられていたデバイスが登録されている第１デバイス構成データを、前記第１デバイスが登録されていて前記第２デバイスが登録されていない状態に更新して、前記第２オペレーティングシステムに割り当てられていたデバイスが登録されている第２デバイス構成データを、前記第２デバイスが登録されていて前記第１デバイスが登録されていない状態に更新するための更新処理を行い、
割り当て部が、前記更新処理の後、前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当て、前記第２デバイス構成データを参照して前記第２デバイスを前記第２オペレーティングシステムに割り当てる
デバイス割り当て方法。
【請求項６】
第１オペレーティングシステムと第２オペレーティングシステムとが並行して動作するコンピュータに実行させるためのデバイス割り当てプログラムであって、
前記コンピュータには、前記第１オペレーティングシステムに割り当てられる第１デバイスと前記第２オペレーティングシステムに割り当てられる第２デバイスとから成るデバイス群が接続され、
前記第１オペレーティングシステムには、前記第１デバイスに対応する第１デバイスドライバが組み込まれるが前記第２デバイスに対応する第２デバイスドライバが組み込まれず、
前記第２オペレーティングシステムには、前記第２デバイスドライバが組み込まれるが前記第１デバイスドライバが組み込まれず、
前記第１オペレーティングシステムに組み込まれているデバイスドライバである前記第１デバイスドライバを選択し、前記第１デバイスドライバからデバイスマッチングの結果を受け、前記デバイス群のうち前記デバイスマッチングの結果として通知されたデバイスを前記第１デバイスに分別し、前記デバイス群のうち前記第１デバイスに分別されていないデバイスを前記第２デバイスに分別する分別処理と、
前記デバイス群が前記第１デバイスと前記第２デバイスとに分別された後、前記第１オペレーティングシステムに割り当てられていたデバイスが登録されている第１デバイス構成データを、前記第１デバイスが登録されていて前記第２デバイスが登録されていない状態に更新して、前記第２オペレーティングシステムに割り当てられていたデバイスが登録されている第２デバイス構成データを、前記第２デバイスが登録されていて前記第１デバイスが登録されていない状態に更新する更新処理と、
前記更新処理の後、前記第１デバイス構成データを参照して前記第１デバイスを前記第１オペレーティングシステムに割り当て、前記第２デバイス構成データを参照して前記第２デバイスを第２オペレーティングシステムに割り当てる割り当て処理と
を前記コンピュータに実行させるためのデバイス割り当てプログラム。
【国際調査報告】
2018092206.tif 000012
2018092206.tif 000013