(57)【要約】【課題】ＯＳに対する特定のペリフェラルの割り当ての切り替えを禁止して確保する手段や、ＯＳ間のペリフェラルの競合を柔軟に解決する手段や、ＯＳ間で共有されているペリフェラルにおいて、一方のＯＳが、当該ペリフェラルをオフに設定した際に、他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御する手段を実現する。【解決手段】ペリフェラル切替装置１０は、ペリフェラルのＯＳに対する割り当てを要求する切替要求を受信する切替要求受信部１１と、ペリフェラルのＯＳに対する割り当ての切り替えの確保又は確保解除を要求する確保要求を受信して保持する確保要求保持部１２と、切替要求と確保要求とに基づいて、ペリフェラルのＯＳに対する割り当てを実行するか否かについて判断する切替判断部１３とを具備する。【選択図】図３
2008052713.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいて並行動作している複数のオペレーティングシステムに対するペリフェラルの割り当てを切り替えるように構成されているペリフェラル切替装置であって、
ペリフェラルのオペレーティングシステムに対する割り当てを要求する切替要求を受信するように構成されている切替要求受信部と、
ペリフェラルのオペレーティングシステムに対する割り当ての確保又は確保解除を要求する確保要求を受信して保持するように構成されている確保要求保持部と、
前記切替要求と前記確保要求とに基づいて、ペリフェラルのオペレーティングシステムに対する割り当てを実行するか否かについて判断するように構成されている切替判断部と、
前記判断結果に応じて、前記ペリフェラルのオペレーティングシステムに対する割り当てを実行するように構成されている切替実行部とを具備することを特徴とするペリフェラル切替装置。
【請求項２】
前記切替判断部は、前記切替要求又は前記確保要求の少なくとも一方に含まれている優先度に基づいて、該切替要求により指定されている前記ペリフェラルのオペレーティングシステムに対する割り当てを実行するか否かについて判断するように構成されていることを特徴とする請求項１に記載のペリフェラル切替装置。
【請求項３】
前記確保要求保持部は、保持している前記確保要求に含まれている優先度よりも高い優先度を含む確保要求を受信した際に、保持している該確保要求を受信した該確保要求に置き換えるように構成されており、
前記切替判断部は、前記確保要求の置き換えが行われた際に、置き換えられた前記確保要求により指定されているペリフェラルのオペレーティングシステムに対する割り当てを実行する否かについて判断するように構成されていることを特徴とする請求項１又は２に記載のペリフェラル切替装置。
【請求項４】
前記切替要求及び前記確保要求に含まれている優先度は、オペレーティングシステム内のソフトウェアの状態によって決定されたものであるように構成されていることを特徴とする請求項２又は３に記載のペリフェラル切替装置。
【請求項５】
オペレーティングシステムに割り当てられているペリフェラルの設定がオン設定からオフ設定或いはオフ設定からオン設定に変化した際に、該ペリフェラルが割り当てられているオペレーティングシステムに対して、ペリフェラルの設定情報を通知するように構成されているペリフェラル設定部を具備することを特徴とする請求項１に記載のペリフェラル切替装置。
【請求項６】
前記確保要求保持部は、受信後又は更新後、一定期間を経過した前記確保要求を削除するように構成されていることを特徴とする請求項１に記載のペリフェラル切替装置。
【請求項７】
前記切替判断部は、前記確保要求に含まれる状況情報と前記切替要求に含まれる状況情報とに基づいて、前記切替要求により指定されている前記ペリフェラルのオペレーティングシステムに対する割り当てを実行するか否かについて判断するように構成されていることを特徴とする請求項１に記載のペリフェラル切替装置。
【請求項８】
並行動作している複数のオペレーティングシステムに対するペリフェラルの割り当てを切り替えるように構成されているペリフェラル切替装置が搭載されたコンピュータシステムにおいて個別のオペレーティングシステム用に設けられているペリフェラル切替制御装置であって、
ペリフェラルのオペレーティングシステムに対する割り当ての切り替えの禁止又は禁止解除の要求と、前記要求に与えられている優先度とを含む切替ロック要求を受信するように構成されている切替ロック要求受信部と、
受信した前記切替ロック要求に基づいて、前記ペリフェラル切替装置に対して、該ペリフェラルのオペレーティングシステムに対する割り当ての確保又は確保解除の要求と、前記要求に与えられている優先度とを含む確保要求を通知するように構成されている確保要求通知部とを具備することを特徴とするペリフェラル切替制御装置。
【請求項９】
ペリフェラル切替装置から通知されたペリフェラルの設定情報を受信し、前記ペリフェラル切替制御装置に対応するオペレーティングシステムの該ペリフェラルへの入出力の可否を制御するように構成されているペリフェラル設定通知部を具備することを特徴とする請求項８に記載のペリフェラル切替制御装置。
【請求項１０】
ペリフェラルのオペレーティングシステムに対する割り当てを要求する切替要求を受信するように構成されている切替要求受信部と、
前記ペリフェラル切替装置に対して、前記切替要求を通知するように構成されている切替要求通知部とを具備することを特徴とする請求項８に記載のペリフェラル切替制御装置。
【請求項１１】
ペリフェラルのオペレーティングシステムに対する割り当ての切り替えの禁止状態と、前記禁止状態が設定された時間を示すタイムスタンプとを関連付けるロック状態を管理しており、前記切替ロック要求に応じて前記ロック状態を更新し、一定期間を経過した前記禁止状態を無効にするように構成されているロック状態管理部と、
前記ロック状態に基づいて、前記ペリフェラル切替装置に対して、所定周期で、ペリフェラルのオペレーティングシステムに対する割り当ての確保又は確保解除を要求する確保要求を通知するように構成されている確保要求通知部とを具備することを特徴とする請求項８に記載のペリフェラル切替制御装置。
【請求項１２】
前記ペリフェラル切替装置に対して、所定周期で、前記ペリフェラル切替制御装置が正常に動作していることを通知するように構成されている活動通知部を具備することを特徴とする請求項８に記載のペリフェラル切替制御装置。
【請求項１３】
前記ロック状態管理部は、各ペリフェラルのロック状態として、前記禁止状態と前記タイムスタンプとに加えて、前記ペリフェラルのオペレーティングシステムに対する割り当ての切り替えの禁止を要求した切替ロック要求の要求元の識別情報とを関連付けるように構成されていることを特徴とする請求項８に記載のペリフェラル切替制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおいて並行動作している複数のオペレーティングシステムに対するペリフェラルの割り当てを切り替えるように構成されているペリフェラル切替装置、及び、当該ペリフェラル切替装置が搭載されたコンピュータシステムにおいて個別のオペレーティングシステム用に設けられているペリフェラル切替制御装置に関する。
【背景技術】
【０００２】
近年、１つのコンピュータシステム上で複数の仮想マシン環境を動作可能とする仮想マシンモニタ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）技術として、例えば、ＸｅｎやＶＭＷａｒｅ等のソフトウェアが、開発されて提供されている。
【０００３】
かかる仮想マシンモニタ技術により、携帯電話やＰＣ等の１つの端末（コンピュータシステム）上で、プライベート用と仕事用、或いは、システム用とユーザ用等といった利用目的の異なる複数のＯＳ（オペレーティングシステム）を並行動作したり、Ｌｉｎｕｘ（登録商標）とＷｉｎｄｏｗｓ  Ｍｏｂｉｌｅ（登録商標）等といった異種のＯＳを並行動作することができる。
【０００４】
ユーザが、これらの複数のＯＳを、フォアグラウンドとバックグラウンドとで切り替えて利用する際、フォアグラウンドのＯＳに対する、ＬＣＤ（液晶ディスプレイ）やキーボードやマウスやスピーカやマイク等のペリフェラル（周辺機器）の割り当てを切り替えることが必要となる。
【０００５】
特許文献１において、ホストＯＳとゲストＯＳとの間で、ペリフェラルを共有する技術が開示されている。
【０００６】
この技術の利用によって、ユーザが、フォアグラウンドのＯＳとバックグラウンドのＯＳとを切り替えるための切替ボタンを押した場合や、バックグラウンドのＯＳに対応するウィンドウを選択した場合に、バックグラウンドのＯＳをフォアグラウンドに設定し、かかるフォアグラウンドのＯＳに対して、入力装置や表示画面等のペリフェラルを割り当てることができる。
【０００７】
また、フォアグラウンドのＯＳ及びバックグランドのＯＳからのオーディオ出力をミキシングすることも可能である。
【特許文献１】ＵＳ６,４９６，８４７
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来技術では、ＯＳに対する特定のペリフェラルの割り当ての切り替えを禁止（ロック）する手段や、ＯＳ間のペリフェラルの競合を柔軟に解決する手段が備えられておらず、電話等の重要サービスの品質保証が困難であるという問題点があった。
【０００９】
また、複数のＯＳによって共有されているペリフェラルにおいて、一方のＯＳが、当該ペリフェラルをオフに設定した際に、他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御する手段が備えられておらず、他方のＯＳは、オフの設定に気づかずに当該ペリフェラルとの間で通信し続け、リソースを浪費する問題点があった。
【００１０】
具体的には、並行動作している複数のＯＳに対するペリフェラルの割り当てを切り替えるように構成されているコンピュータシステムでは、アプリケーションやユーザから、ＯＳに対するペリフェラルの割り当ての切り替えが要求された場合であっても、当該ペリフェラルの割り当てを切り替えてはならないケースがあるが、上述した従来技術では、かかるケースに対応していない。
【００１１】
例えば、バックグラウンドのＯＳに対して着信したメールを提示するために、当該バックグラウンドのＯＳに対してペリフェラルの割り当てが切り替えられた場合や、ユーザが、バックグラウンドのＯＳが備える機能を利用するために上述の切替ボタンを押下して、当該バックグラウンドのＯＳに対してペリフェラルの割り当てが切り替えられた場合について考える。
【００１２】
フォアグラウンドのＯＳにおいて電話アプリケーションが通話中である状況では、ＬＣＤやキーボードの割り当て先をバックグラウンドのＯＳへ切り替えてもいいが、マイクやスピーカの割り当て先は、現在のフォアグラウンドＯＳに維持されることが望ましいというケースが想定される。
【００１３】
ここで、上述の電話アプリケーションが通話中である状況で、マイクやスピーカの割り当て先もバックグラウンドのＯＳに切り替えてしまった場合、かかる電話アプリケーションによる通話が途切れてしまうという問題点がある。
【００１４】
ペリフェラルの切り替えを禁止（ロック）したい場合の別の例として、バックグラウンドのＯＳが、フォアグラウンドのＯＳの障害や異常を検知した際に、自動的にフォアグラウンドのＯＳとバックグランドのＯＳとを切り替えた後、障害或いは異常な状態のＯＳが、ペリフェラルの割り当ての切り替えを要求しても、当該ペリフェラルの割り当てを切り替えないことが望ましいというケースが想定される。
【００１５】
自動的に、フォアグラウンドのＯＳとバックグランドのＯＳとを切り替えないと、障害・異常状態のＯＳが、ＬＣＤに表示する障害画面をユーザに見せることになり、ユーザを戸惑わせる可能性がある。
【００１６】
また、障害或いは異常な状態のＯＳに対してペリフェラルを割り当ててしまうと、ユーザが、障害或いは異常な状態のＯＳ上で、操作することになり、障害の拡大や不適切な処理が行われる可能性がある。
【００１７】
一方、マイクやスピーカの割り当てを、上述の切替ボタンと独立に制御する場合、ＯＳ間におけるペリフェラルの競合の問題点が生じる。
【００１８】
フォアグラウンドのＯＳで、音声認識アプリケーションが、マイクを確保して利用している間に、バックグラウンドのＯＳで、電話着信があっても、当該フォアグラウンドのＯＳが、マイクを占有しているため、かかる電話着信に応じた通話を実行することができない可能性がある。
【００１９】
ここで、単純に、フォアグラウンドのＯＳの優先度よりも、バックグラウンドのＯＳの優先度を高くしただけでは、バックグランドのＯＳで、音声認識アプリケーションが、マイクを確保して利用している間に、フォアグラウンドのＯＳで電話着信があった場合に、やはり、かかる電話着信に応じた通話を実行することができない可能性がある。
【００２０】
２つのＯＳが搭載されている環境で、第１のＯＳの優先度を、第２のＯＳよりも高い優先度或いは低い優先度に設定した場合でも、同様の問題が残る。
【００２１】
同様に、バックグラウンドのＯＳが、フォアグラウンドのＯＳの障害や異常を検知した際、フォアグラウンドのＯＳによって確保されているペリフェラルを、バックグラウンドＯＳに対して割り当てるように自動的に切り替えた後、その障害或いは異常な状態のフォアグラウンドＯＳが、当該ペリフェラルの割り当ての確保を要求しても、当該ペリフェラルの割り当てを切り替えないことが望ましいというケースが想定される。
【００２２】
また、かかるコンピュータシステムでは、ＯＳ間で共有されているペリフェラルについて、一方のＯＳが、当該ペリフェラルをオフに設定した際に、他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御することが好ましいケースがある。
【００２３】
例えば、バックグラウンドのＯＳによって音楽再生が行われていたとしても、フォアグラウンドのＯＳが、マナーモードを設定する等して、共有のスピーカをオフに設定した場合、バックグランドＯＳからスピーカへの出力も停止される。
【００２４】
しかしながら、バックグラウンドのＯＳは、当該オフの設定に気づかずに、スピーカへ出力する音声データの転送を続けるため、リソースを浪費するケースが想定される。
【００２５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、ＯＳに対する特定のペリフェラルの割り当ての切り替えを禁止（ロック）して確保する手段や、ＯＳ間のペリフェラルの競合を柔軟に解決する手段を実現することができるペリフェラル切替装置及びペリフェラル切替制御装置を提供することを目的とする。
【００２６】
また、本発明は、ＯＳ間で共有されているペリフェラルにおいて、一方のＯＳが、当該ペリフェラルをオフに設定した際に、他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御する手段を実現することができるペリフェラル切替装置及びペリフェラル切替制御装置を提供することを目的とする。
【課題を解決するための手段】
【００２７】
本発明の第１の特徴は、コンピュータシステムにおいて並行動作している複数のオペレーティングシステムに対するペリフェラルの割り当てを切り替えるように構成されているペリフェラル切替装置であって、ペリフェラルのオペレーティングシステムに対する割り当てを要求する切替要求を受信するように構成されている切替要求受信部と、ペリフェラルのオペレーティングシステムに対する割り当ての確保又は確保解除を要求する確保要求を受信して保持するように構成されている確保要求保持部と、前記切替要求と前記確保要求とに基づいて、ペリフェラルのオペレーティングシステムに対する割り当てを実行するか否かについて判断するように構成されている切替判断部と、前記判断結果に応じて、前記ペリフェラルのオペレーティングシステムに対する割り当てを実行するように構成されている切替実行部とを具備することを要旨とする。
【００２８】
かかる発明によれば、アプリケーションやユーザから、ＯＳに対するペリフェラルの割り当てを要求する切替要求を受信した場合であっても、確保要求によって指定されているペリフェラルについては切り替えを禁止（ロック）することができる。
【００２９】
本発明の第１の特徴において、前記切替判断部は、前記切替要求又は前記確保要求の少なくとも一方に含まれている優先度に基づいて、該切替要求により指定されている前記ペリフェラルのオペレーティングシステムに対する割り当てを実行するか否かについて判断するように構成されていてもよい。
【００３０】
かかる発明によれば、アプリケーションやユーザから、ＯＳに対するペリフェラルの割り当てを要求する切替要求を受信した場合であっても、当該切替要求に含まれている優先度よりも高い優先度を含む確保要求が保持されている場合、当該確保要求によって指定されているペリフェラルについては切り替えを禁止（ロック）することができる。
【００３１】
また、かかる発明によれば、確保要求に含まれている優先度よりも当該切替要求に含まれている優先度が高い場合は、当該確保要求によって指定されているペリフェラルの割り当てを切り替えることができ、アプリケーションやユーザの要求に従った柔軟かつ適切なペリフェラルの割り当ての切り替え制御を行うができる。
【００３２】
本発明の第１の特徴において、前記確保要求保持部は、保持している前記確保要求に含まれている優先度よりも高い優先度を含む確保要求を受信した際に、保持している該確保要求を受信した該確保要求に置き換えるように構成されており、前記切替判断部は、前記確保要求の置き換えが行われた際に、置き換えられた前記確保要求により指定されているペリフェラルのオペレーティングシステムに対する割り当てを実行する否かについて判断するように構成されていてもよい。
【００３３】
かかる発明によれば、一方のＯＳが、特定のペリフェラルの割り当てを確保している場合であっても、他方のＯＳが、より高い優先度の確保要求を送信した場合は、当該ペリフェラルの割り当てを他方のＯＳに切り替えて確保することができる。
【００３４】
また、かかる発明によれば、他方のＯＳにおいて受信された確保要求の優先度が保持されている確保要求の優先度よりも低い場合には、確保要求の書き換えを拒否することができ、アプリケーション等の要求に従った柔軟かつ適切な競合制御を行うことができる。
【００３５】
本発明の第１の特徴において、前記切替要求及び前記確保要求に含まれている優先度は、オペレーティングシステム内のソフトウェアの状態によって決定されたものであるように構成されていてもよい。
【００３６】
かかる発明によれば、オペレーティングシステム内のアプリケーションやミドルウェアやデバイスドライバの動作状態に従った柔軟なペリフェラルの割り当ての切り替え制御を行うことができる。
【００３７】
本発明の第１の特徴において、オペレーティングシステムに割り当てられているペリフェラルの設定がオン設定からオフ設定或いはオフ設定からオン設定に変化した際に、該ペリフェラルが割り当てられているオペレーティングシステムに対して、ペリフェラルの設定情報を通知するように構成されているペリフェラル設定部を具備していてもよい。
【００３８】
かかる発明によれば、ＯＳ間で共有されているペリフェラルにおいて、一方のＯＳが、当該ペリフェラルをオフに設定した際に、他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御し、当該ペリフェラルがオンに設定された際には、他方のＯＳが、即座に、当該通信を開始することができる。
【００３９】
本発明の第１の特徴において、前記確保要求保持部は、受信後又は更新後、一定期間を経過した前記確保要求を削除するように構成されていてもよい。
【００４０】
かかる発明によれば、切替ロック要求の要求元が、障害などにより、ＯＳに対するペリフェラルの割り当ての切り替えの禁止（ロック）解除できない場合であっても、一定期間経過後に、かかるロックを解除することができる。
【００４１】
本発明の第１の特徴において、前記切替判断部は、前記確保要求に含まれる状況情報と前記切替要求に含まれる状況情報とに基づいて、前記切替要求により指定されている前記ペリフェラルのオペレーティングシステムに対する割り当てを実行するか否かについて判断するように構成されていてもよい。
【００４２】
本発明の第２の特徴は、並行動作している複数のオペレーティングシステムに対するペリフェラルの割り当てを切り替えるように構成されているペリフェラル切替装置が搭載されたコンピュータシステムにおいて個別のオペレーティングシステム用に設けられているペリフェラル切替制御装置であって、ペリフェラルのオペレーティングシステムに対する割り当ての切り替えの禁止又は禁止解除の要求と、前記要求に与えられている優先度とを含む切替ロック要求を受信するように構成されている切替ロック要求受信部と、受信した前記切替ロック要求に基づいて、前記ペリフェラル切替装置に対して、該ペリフェラルのオペレーティングシステムに対する割り当ての確保又は確保解除の要求と、前記要求に与えられている優先度とを含む確保要求を通知するように構成されている確保要求通知部とを具備することを要旨とする。
【００４３】
かかる発明によれば、アプリケーションやミドルウェアやデバイスドライバが、ペリフェラル切替装置に対して、ペリフェラル種別を指定した切替ロック要求を発行でき、当該切替ロック要求に、アプリケーション種別等に応じて優先度を与えることができる。 
本発明の第２の特徴において、ペリフェラル切替装置から通知されたペリフェラルの設定情報を受信し、前記ペリフェラル切替制御装置に対応するオペレーティングシステムの該ペリフェラルへの入出力の可否を制御するように構成されているペリフェラル設定通知部を具備していてもよい。
【００４４】
かかる発明によれば、ＯＳ間で共有されているペリフェラルにおいて、一方のＯＳが、当該ペリフェラルをオフに設定した際に、他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御し、当該ペリフェラルがオンに設定された際には、他方のＯＳが、即座に、当該通信を開始することもできる。
【００４５】
本発明の第２の特徴において、ペリフェラルのオペレーティングシステムに対する割り当てを要求する切替要求を受信するように構成されている切替要求受信部と、前記ペリフェラル切替装置に対して、前記切替要求を通知するように構成されている切替要求通知部とを具備していてもよい。
【００４６】
かかる発明によれば、アプリケーションやミドルウェアやデバイスドライバが、ペリフェラル切替装置に対して、ペリフェラル種別を指定した切替要求を発行でき、当該切替要求に、アプリケーション種別等に応じて優先度を与えることができる。
【００４７】
本発明の第２の特徴において、ペリフェラルのオペレーティングシステムに対する割り当ての切り替えの禁止状態と、前記禁止状態が設定された時間を示すタイムスタンプとを関連付けるロック状態を管理しており、前記切替ロック要求に応じて前記ロック状態を更新し、一定期間を経過した前記禁止状態を無効にするように構成されているロック状態管理部と、前記ロック状態に基づいて、前記ペリフェラル切替装置に対して、所定周期で、ペリフェラルのオペレーティングシステムに対する割り当ての確保又は確保解除を要求する確保要求を通知するように構成されている確保要求通知部とを具備していてもよい。
【００４８】
かかる発明によれば、切替ロック要求の要求元が、障害などにより、ＯＳに対するペリフェラルの割り当ての切り替えの禁止（ロック）解除できない場合であっても、一定期間経過後に、かかるロックを解除することができる。
【００４９】
本発明の第２の特徴において、前記ペリフェラル切替装置に対して、所定周期で、前記ペリフェラル切替制御装置が正常に動作していることを通知するように構成されている活動通知部を具備していてもよい。
【００５０】
かかる発明によれば、ペリフェラル切替装置が、ペリフェラル切替制御装置の障害を確実に検知することができる。
【００５１】
本発明の第２の特徴において、前記ロック状態管理部は、各ペリフェラルのロック状態として、前記禁止状態と前記タイムスタンプとに加えて、前記ペリフェラルのオペレーティングシステムに対する割り当ての切り替えの禁止を要求した切替ロック要求の要求元の識別情報とを関連付けるように構成されていてもよい。
【００５２】
かかる発明によれば、複数のロックの要求元からの切替ロック要求と切替禁止状態とを対応づけて管理できる。例えば、上述の切り替えの禁止を要求する切替ロック要求の要求元とは異なる要求元からの不正な上述の切り替えの禁止解除を要求する切替ロック要求によって、上述の切り替えの禁止解除を行うといった誤りを防止できる。
【発明の効果】
【００５３】
以上説明したように、本発明によれば、ＯＳに対する特定のペリフェラルの割り当ての切り替えを禁止（ロック）して確保する手段や、ＯＳ間のペリフェラルの競合を柔軟に解決する手段を実現することができるペリフェラル切替装置及びペリフェラル切替制御装置を提供することができる。
【００５４】
また、本発明によれば、ＯＳ間で共有されているペリフェラルにおいて、一方のＯＳが、当該ペリフェラルをオフに設定した際に、他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御する手段を実現することができるペリフェラル切替装置及びペリフェラル切替制御装置を提供することができる。
【発明を実施するための最良の形態】
【００５５】
（本発明の第１の実施形態に係るコンピュータシステムの構成）
図１乃至図８を参照して、本発明の第１の実施形態に係るコンピュータシステムの構成について説明する。
【００５６】
本実施形態に係るコンピュータシステム１には、並行動作している複数のＯＳに対するペリフェラルの割り当てを切り替えるように構成されているペリフェラル切替装置及びペリフェラル切替制御装置が搭載されている。
【００５７】
ここで、コンピュータシステムで複数のＯＳを並行動作させる手段として、ＶＭＷａｒｅやＸｅｎ等のソフトウェアベースの仮想マシンモニタ技術が利用されてもよいし、ＡＲＭ  ＴｒｕｓｔＺｏｎｅのようなハードウェアベースの仮想化技術が利用されてもよい。
【００５８】
さらに、マルチＣＰＵシステムやマルチコアシステムのように、複数のＣＰＵが動作するハードウェア上で、各ＣＰＵにおいて、ＯＳを並行に動作させてもよい。
【００５９】
以降の第１の実施形態の説明では、コンピュータシステムで複数のＯＳを並行動作させる手段として、ソフトウェアベースの仮想マシンモニタ技術が利用される場合を想定する。
【００６０】
図１に示すように、本実施形態に係るコンピュータシステム１では、ペリフェラル切替制御装置３０Ａは、コンピュータシステム１の第１のＯＳ（ＯＳ１）に配置され、ペリフェラル切替制御装置３０Ｂは、コンピュータシステム１の第２のＯＳ（ＯＳ２）に配置され、ＯＳ１とＯＳ２に対するペリフェラルの割り当てを切り替えるように構成されているペリフェラル切替装置１０は、第３のＯＳ（ＯＳ３）に配置されるものとする。
【００６１】
また、ＯＳ３には、実際のペリフェラルにアクセスするための実デバイスドライバが配置され、ＯＳ１及びＯＳ２には、仮想デバイスドライバが配置されるものとする。
【００６２】
ペリフェラル切替装置１０は、実デバイスドライバと仮想デバイスドライバとの接続を切り替えることで、ＯＳ１及びＯＳ２に対するペリフェラルの割り当てを制御する。
【００６３】
例えば、ペリフェラル切替装置１０は、実デバイスドライバによって利用されるバッファのアドレスをＯＳ１又はＯＳ２の仮想デバイスドライバに対応するように変更したり、自身が仮想デバイスドライバと実デバイスドライバとの間に入って中継処理及びペリフェラルの割り当ての切り替え処理を行う等の様々な手段によって、ＯＳ１及びＯＳ２に対するペリフェラルの割り当てを制御する。
【００６４】
ＯＳ１及びＯＳ２は、ペリフェラルを利用する際に、それぞれの仮想デバイスドライバに対して入出力を行う。
【００６５】
例えば、ＯＳ１が、あるペリフェラルを操作するために、当該ペリフェラルに対応する仮想デバイスドライバに対して、あるデータを出力した際に、ペリフェラル切替装置１０が、ＯＳ１に対して当該ペリフェラルを割り当てていた場合、かかるデータは、実デバイスドライバに出力されることになる。
【００６６】
一方、ペリフェラル切替装置１０が、ＯＳ２に対して当該ペリフェラルを割り当てていた場合、かかるデータは、実デバイスドライバには渡されない。かかる場合、実装によっては、仮想デバイスドライバに対してエラーが返る。
【００６７】
ここで、ペリフェラルの割り当ての切り替えは、ＯＳ１とＯＳ２との間で実行され、ＯＳ１が、フォアグラウンドのＯＳであった場合、バックグラウンドのＯＳは、ＯＳ２となる。反対に、フォアグラウンドのＯＳが、ＯＳ２である場合、ＯＳ１が、バックグラウンドのＯＳとなる。
【００６８】
なお、図２に示すように、ペリフェラル切替装置１０は、ＯＳ１に配置されていてもよいし、ＯＳ２に配置されていてもよい。
【００６９】
ここで、ペリフェラル切替装置１０が、ＯＳ１に配置されている場合、上述の構成と同様に、ＯＳ１に、実際のペリフェラルにアクセスするための実デバイスドライバが配置され、ＯＳ１及びＯＳ２に、仮想デバイスドライバが配置される。
【００７０】
ペリフェラル切替装置１０は、実デバイスドライバと仮想デバイスドライバとの接続を切り替えることで、ＯＳ１及びＯＳ２へのペリフェラルの割り当てを制御する。
【００７１】
また、ペリフェラル切替制御装置３０Ａ、３０Ｂ及びペリフェラル切替装置１０は、ＯＳ内のデバイスドライバ等のプログラムとして実装されていてもよいし、アプリケーションとして実装されていてもよい。
【００７２】
さらに、ペリフェラル切替制御装置３０Ａ、３０Ｂ及びペリフェラル切替装置１０は、複数のデバイスドライバやアプリケーションに機能を分割して実装されていてもよい。
【００７３】
図３に示すように、ペリフェラル切替装置１０は、切替要求受信部１１と、確保要求保持部１２と、切替判断部１３と、ペリフェラル設定部１４と、切替実行部１５とを具備している。
【００７４】
切替要求受信部１１は、ペリフェラルのＯＳに対する割り当てを要求する切替要求、すなわち、指定ＯＳ或いはバックグラウンドのＯＳへのペリフェラルの割り当てを要求する切替要求を受信するように構成されている。
【００７５】
切替要求では、ＯＳに対する割り当てを要求するペリフェラル種別が指定されていてもよいし、優先度が与えられていてもよい。また、切替要求には、切替要求の種別や理由を説明する状況情報が含まれていてもよい。
【００７６】
また、切替要求に含まれている優先度は、ＯＳ内のソフトウェアの状態によって決定されたものであってもよい。
【００７７】
また、切替要求において、ＯＳやペリフェラル種別や優先度が指定されていない場合、デフォルトの設定が用いられるものと判断してもよい。
【００７８】
例えば、デフォルトの切替先のＯＳとして「バックグラウンドのＯＳ」が設定されており、デフォルトのペリフェラル種別として「ＬＣＤ、キーボード」が設定されており、デフォルトの優先度として「２」が設定されていてもよい。
【００７９】
例えば、ユーザが切替ボタンを押下した際に、バックグラウンドのＯＳをフォアグラウンドに移行する必要があるため、切替要求は、キーボードのドライバから送信されるように構成されている。
【００８０】
また、バックグラウンドのＯＳ内の電話アプリケーションに着信があった際に、かかるＯＳをフォアグラウンドに移行する必要があるため、切替要求は、電話アプリケーションやデバイスドライバによって送信されるように構成されている。
【００８１】
確保要求保持部１２は、ペリフェラルのＯＳに対する割り当ての確保又は確保解除を要求する確保要求（すなわち、指定されたペリフェラル種別のペリフェラルを指定されたＯＳに固定するための切り替えの禁止又は禁止解除を要求する確保要求）を受信して保持するように構成されている。
【００８２】
ここで、確保要求には、優先度が含まれていてもよいし、要求元のＯＳの識別情報が含まれていてもよい。また、確保要求には、確保要求の種別や理由を説明する状況情報が含まれていてもよい。
【００８３】
また、確保要求に含まれている優先度は、ＯＳ内のソフトウェアの状態によって決定されたものであってもよい。
【００８４】
また、確保要求保持部１２は、保持している確保要求に含まれている優先度よりも高い優先度を含む確保要求を受信した際に、保持している当該確保要求を受信した当該確保要求に置き換えるように構成されていてもよい。
【００８５】
確保要求保持部１２は、保持している確保要求を検査し、受信後又は更新後、一定期間を経過した確保要求を削除するように構成されていてもよい。
【００８６】
例えば、確保要求保持部１２は、確保要求の受信時刻をタイムスタンプとして保持して、一定時間の経過を判断することができる。
【００８７】
また、確保要求保持部１２は、図４に示すロック管理テーブルを用いて、確保要求を保持するように構成されていてもよい。図４の例では、ペリフェラルであるマイクのＯＳ１に対する割り当てが確保されるように設定されている。
【００８８】
図５（ａ）に、確保要求のフォーマットの具体例を示す。図５（ａ）に示すように、確保要求は、「ペリフェラル切替禁止ビット配列」と「ロック要求優先度配列」とから構成されている。
【００８９】
例えば、図５（ｂ）に示すように、ペリフェラル切替禁止ビット配列は、１バイトからなり、各ビットに、ペリフェラル種別を割り当てるように構成されており、ビットが立っているペリフェラル種別のペリフェラルのＯＳ（確保要求の送信元のＯＳ）に対する割り当てを確保するように指定する。
【００９０】
ロック要求優先度配列は、ペリフェラル切替禁止ビット配列の各ビットに対応するように構成されており、１〜４の４段階の優先度が割り当てられるように構成されている。
【００９１】
確保要求保持部１２は、確保要求を受け付ける際に、かかる確保要求の送信元のＯＳを識別できることを想定しているため、図５（ａ）に示す確保要求には、ＯＳの識別子について明示されていない。
【００９２】
上述のように、確保要求保持部１２は、送信元のＯＳにより指定されているペリフェラル種別を固定する要求として、確保要求を受け付けるように構成されている。
【００９３】
切替判断部１３は、上述の切替要求と上述の確保要求とに基づいて、ペリフェラルのＯＳに対する割り当てを実行するか否かについて判断するように構成されている。
【００９４】
また、確保要求保持部１２によって保持されている確保要求が、新たに受信された確保要求に置き換えられた際、切替判断部１３は、置き換えられた確保要求により指定されているペリフェラルのＯＳに対する割り当てを実行するか否かについて判断するように構成されていてもよい。
【００９５】
また、切替判断部１３は、上述の確保要求に与えられている優先度に基づいて、上述の切替要求により指定されているペリフェラルのＯＳに対する割り当てを実行するか否かについて判断するように構成されていてもよい。
【００９６】
また、切替判断部１３は、上述の切替要求に与えられている優先度に基づいて、かかる切替要求により指定されているペリフェラルのＯＳに対する割り当てを実行するか否かについて判断するように構成されていてもよい。
【００９７】
また、切替判断部１３は、上述の切替要求や確保要求に与えられている状況情報に基づいて、かかる切替要求により指定されているペリフェラルのＯＳに対する割り当てを実行するか否かについて判断するように構成されていてもよい。
【００９８】
切替要求に含まれる状況情報の例として「電話着信」があり、確保要求に含まれる状況情報の例として「音楽再生」がある。
【００９９】
切替判断部１３は、例えば、「音楽再生」よりも、「電話着信」を優先するというポリシーを持ち、そのポリシーに応じて、かかる切替要求により指定されているペリフェラルのＯＳに対する割り当てを実行するか否かについて判断するように構成されていてもよい。
【０１００】
さらに、切替判断部１３は、かかる切替要求により指定されているペリフェラルのＯＳに対する割り当てを実行するか否かについて、ユーザへの問合せ結果に基づいて判断するように構成されていてもよい。
【０１０１】
例えば、切替判断部１３は、上述の切替要求により指定されているペリフェラルのＯＳに対する割り当てを実行するか否かについての判断結果を、図６（ａ）及び図６（ｂ）に示すペリフェラル割り当てテーブルを用いて管理するように構成されていてもよい。
【０１０２】
以下、図６（ａ）及び図６（ｂ）を用いて、ペリフェラル割り当てテーブルを用いた判断結果の管理方法について説明する。
【０１０３】
第１に、ＯＳ１が、フォアグラウンドのＯＳとして、全てのペリフェラルがＯＳ１に対して割り当てられている（図６（ａ）及び図６（ｂ）の左図参照）。
【０１０４】
第２に、ユーザが、切替ボタンを押下した場合、切替要求受信部１１が、バックグラウンドのＯＳであるＯＳ２に対するペリフェラルの割り当ての切替要求を受信する。
【０１０５】
ここで、確保要求保持部１２は、確保要求を保持していないものとすると、切替判断部１３は、全てのペリフェラルをＯＳに対して割り当てる（図６（ａ）の右図参照）。
【０１０６】
一方、確保要求保持部１２が、マイクのＯＳ１に対する割り当てを確保するという確保要求（すなわち、ＯＳ１に対するマイクの割り当ての切り替えを禁止するという確保要求）を保持しているものと仮定すると、切替判断部１３は、マイクのＯＳ１に対する割り当てを固定し、それ以外のペリフェラルを全てＯＳ２に対して割り当てる（図６（ｂ）の右図参照）。
【０１０７】
ＯＳへ割り当てられているペリフェラルの設定が、オン設定からオフ設定或いはオフ設定からオン設定に変化した際に、ペリフェラル設定部１４は、かかる変化を検知して、当該ペリフェラルが割り当てられているＯＳに対して、ペリフェラルの設定情報の通知を行うように構成されている。
【０１０８】
本実施形態では、ペリフェラル設定部１４は、当該ペリフェラルが割り当てられているＯＳ内のペリフェラル切替制御装置３０に対して、かかる通知を行うように構成されている。
【０１０９】
ペリフェラル切替制御装置３０は、例えば、ペリフェラルの設定情報における変更を検査することや、周期的なポーリングによって、かかる設定の変化について検知することができる。
【０１１０】
例えば、ペリフェラル設定部１４は、ＯＳ１が、ＯＳ１及びＯＳ２の間で共有されているスピーカの音量をミュートするように設定した際、ＯＳ２に対して、ＯＳ２からオーディオを出力しないようにするために、スピーカの設定をオフにしたことを通知する。
【０１１１】
切替実行部１５は、切替判断部１３による判断結果に応じて、ペリフェラルのＯＳに対する割り当ての切り替えを実行するように構成されている。なお、切替実行部１５は、ＯＳ個別の設定に従って、各ドライバの設定を変更するように構成されていてもよい。
【０１１２】
図３に示すように、ペリフェラル切替制御装置３０は、切替ロック要求受信部３１と、ペリフェラル設定通知部３２と、活動通知部３３と、ロック状態管理部３４と、確保要求通知部３５と、切替要求受信部３６と、切替要求データ通知部３７とを具備している。
【０１１３】
切替ロック要求受信部３１は、ペリフェラルのＯＳに対する割り当ての切り替えの禁止又は禁止解除の要求と、かかる要求に与えられている優先度と、かかる要求を説明する状況情報の少なくとも１つを含む切替ロック要求を受信するように構成されている。
【０１１４】
なお、切替ロック要求には、切替ロック要求の種別や理由を説明する状況情報が含まれていてもよいし、プロセスＩＤやスレッドＩＤ等の要求元の識別情報が含まれていてもよい。また、切替ロック要求の要求元は、ＯＳやドライバやアプリケーションやミドルウェア等のいずれであってもよい。
【０１１５】
切替ロック要求受信部３１は、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）の関数呼び出しやメッセージパッシング等の任意の通信手段を用いて、切替ロック要求を受信するように構成されていてもよい。
【０１１６】
図７に、切替ロック要求のフォーマットの具体例を示す。図７に示すように、切替ロック要求は、確保要求と同様に、「ペリフェラル切替禁止ビット配列」と「ロック要求優先度配列」とから構成されている。
【０１１７】
ペリフェラル設定通知部３２は、ペリフェラル切替装置１０から通知されたペリフェラルの設定情報を受信し、当該ペリフェラル切替制御装置３０に対応するＯＳのペリフェラルに対する入出力の可否を制御するように構成されている。
【０１１８】
具体的には、ペリフェラル設定通知部３２は、当該ペリフェラルに対応する仮想デバイスドライバが、実デバイスドライバに対して、データを出力しないように制御する。
【０１１９】
活動通知部３３は、ペリフェラル切替装置１０に対して、所定周期で、ペリフェラル切替制御装置３０が正常に動作していることを通知するように構成されている。
【０１２０】
具体的には、活動通知部３３は、増加するカウンタや時刻情報（タイムスタンプ）である更新情報を送信することによって、ペリフェラル切替制御装置３０が正常に動作していることを通知するように構成されている。
【０１２１】
ペリフェラル切替装置１０は、一定期間、カウンタがカウントアップしていない場合や、時刻情報が古い場合に、ペリフェラル切替制御装置３０が障害にあったと判断することができる。
【０１２２】
ロック状態管理部３４は、ペリフェラルのＯＳに対する割り当ての切り替えの禁止状態と、かかる禁止状態が設定された時間を示すタイムスタンプとを関連付けるロック状態（レコード）を管理しており、切替ロック要求受信部３１により受信された切替ロック要求に応じてロック状態を更新し、一定期間を経過した禁止状態を無効にするように構成されている。
【０１２３】
ロック状態管理部３４は、ロック状態として、各ペリフェラルのＯＳに対する割り当ての切り替えの禁止状態とタイムスタンプとに加えて、ペリフェラルのＯＳに対する割り当ての切り替えの禁止を要求した切替ロック要求の要求元の識別情報や、かかる切替ロック要求に対して与えられている優先度や状況情報を保持してもよい。
【０１２４】
ロック状態管理部３４は、かかる切替ロック要求の要求元の識別情報に基づいて、要求元のプログラムの動作を監視し、かかる動作が終了している場合に、かかる切替ロック要求に係るロックを解除するように構成されていてもよい。
【０１２５】
例えば、ロック状態管理部３４は、図８に示すロック状態管理テーブルを用いて、各ロック状態の元になった切替ロック要求の要求元の識別情報と、当該切替ロック要求に対して与えられている優先度と、対象となるペリフェラルを特定するペリフェラル種別と、当該ロック状態を更新した時刻を示すタイムスタンプとを関連付けて記憶するように構成されている。
【０１２６】
確保要求通知部３５は、ロック状態管理部３４により管理されているロック状態に基づいて、ペリフェラル切替装置１０に対して、所定周期で、ペリフェラルのＯＳに対する割り当ての確保又は確保解除を要求する確保要求を通知するように構成されている。
【０１２７】
具体的には、確保要求通知部３５は、ペリフェラル切替装置１０に対して、指定されたペリフェラル種別のペリフェラルのＯＳに対する割り当ての確保又は確保解除の要求と、当該要求に割り当てられている優先度（或いは、状況情報に対応した優先度）とを含む確保要求を通知するように構成されている。
【０１２８】
ここで、確保要求には、状況情報や、ＯＳの識別情報や、現在時刻を示すタイムスタンプが含まれていてもよい。
【０１２９】
例えば、確保要求通知部３５は、状況情報に対応した優先度として、電話中であるという状況下では、優先度を３に指定したり、音楽再生であるという状況では、優先度を２に指定したりすることができる。
【０１３０】
確保要求通知部３５は、例えば、ある関数呼び出しを通じて、ペリフェラル切替装置１０とペリフェラル切替制御装置３０とが共有する領域に書き込んだり、ペリフェラル切替装置１０との通信チャネルを用いることによって、確保要求を通知するように構成されている。
【０１３１】
例えば、確保要求通知部３５は、関数「Ｐｅｒｉｐｈｅｒａｌ_Ｓｗｉｔｃｈ_Ｃｏｎｔｒｏｌ（ｐｅｒｉｐｈｅｒａｌ，ｏｓｉｄ，ｐｒｉｏｒｉｔｙ，ｔｉｍｅｓｔａｍｐ）」の呼び出しを利用することができる。
【０１３２】
ここで、「ｐｅｒｉｐｈｅｒａｌ」は、ペリフェラル切替禁止ビット配列を指定し、「ｏｓｉｄ」は、ＯＳの識別情報を指定し、「ｐｒｉｏｒｉｔｙ」は、切替ロック要求の優先度配列を指定し、「ｔｉｍｅｓｔａｍｐ」は、タイムスタンプ（確保要求の送信時刻）を指定するものとする。
【０１３３】
さらに、確保要求通知部３５が、確保要求に対して、優先度を明示的に付与しなくとも、状況情報を指定すれば、ペリフェラル切替装置１０は、適切な優先度で、ＯＳに対するペリフェラルの割り当ての切り替えを実行することができる。
【０１３４】
切替要求受信部３６は、ペリフェラルのＯＳに対する割り当てを要求する切替要求を受信するように構成されている。
【０１３５】
具体的には、切替要求受信部３６は、指定のペリフェラル種別又は全てのペリフェラル種別のペリフェラルのＯＳに対する割り当ての要求、かかる要求に対して与えられている優先度、かかる要求を説明するイベント情報の少なくとも１つを含む切替要求を受信するように構成されている。
【０１３６】
切替要求受信部３６は、ペリフェラル切替制御装置３０により公開されているＡＰＩに従った関数の呼び出しやメッセージパッシング等の形態によって、切替要求を受信するように構成されている。
【０１３７】
切替要求通知部３７は、ペリフェラル切替装置１０に対して、上述の切替要求を通知するように構成されている。
【０１３８】
具体的には、切替要求通知部３７は、ペリフェラル切替装置１０に対して、指定のペリフェラル種別又は全てのペリフェラル種別のペリフェラルのＯＳに対する割り当ての要求と、かかる要求に対して与えられている優先度（或いは、イベント情報に対応した優先度）とを含む切替要求を送信するように構成されている。また、切替要求には、切替先のＯＳの識別情報が含まれていてもよい。
【０１３９】
切替要求通知部３７は、切替要求に対して、優先度を明示的に付与しなくとも、イベント情報を指定すれば、ペリフェラル切替装置１０は、適切な優先度で、ＯＳに対するペリフェラルの割り当てを実行することができる。
【０１４０】
（本発明の第１の実施形態に係るコンピュータシステムの動作）
以下、図９乃至図１３を参照して、本実施形態に係るコンピュータシステム１の動作について説明する。
【０１４１】
第１に、図９を参照して、本実施形態に係るコンピュータシステム１のペリフェラル切替制御装置３０におけるペリフェラルの切替ロック手順について説明する。
【０１４２】
図９に示すように、ステップＳ１０１において、切替ロック要求受信部３１が、アプリケーションやミドルウェアやデバイスドライバから、ペリフェラル種別及び優先度を指定する切替ロック要求を受信する。
【０１４３】
確保要求通知部３５が、ステップＳ１０２において、ペリフェラル種別及び優先度を含む確保要求を生成して、ステップＳ１０３において、生成した確保要求をペリフェラル切替装置１０に対して通知する。
【０１４４】
例えば、切替ロック要求受信部３１が、ＯＳ１の電話アプリケーションから、マイクのＯＳに対する割り当ての切り替えを優先度１で禁止（ロック）することを要求する切替ロック要求を受け付け、確保要求通知部３５が、ペリフェラル切替装置１０に対して、（マイク，１）という確保要求を通知する。
【０１４５】
第２に、図１０を参照して、本実施形態に係るコンピュータシステム１のペリフェラル切替装置１０におけるペリフェラルの切替ロック手順について説明する。
【０１４６】
図１０に示すように、確保要求保持部１２が、ステップＳ２０１において、ペリフェラル切替制御装置３０から、上述の確保要求を受信し、ステップＳ２０２において、ロック管理テーブルとして、ペリフェラルごとに、ＯＳの識別情報と、優先度と、タイムスタンプとを関連付けて保持する。
【０１４７】
ここで、確保要求保持部１２は、同一のペリフェラル種別に対して複数の確保要求を受信した場合、優先度が高い確保要求に従った情報を残すように上書きする。
【０１４８】
ここで、確保要求保持部１２は、同一のペリフェラル種別に対して複数の確保要求を受信した場合、保持している確保要求を、より高い優先度を含む確保要求によって置き換えた後、切替判断部１３を呼び出してもよい。
【０１４９】
この際、切替判断部１３は、受信した確保要求により指定されているペリフェラルのＯＳに対する割り当てを実行するか否かについて判断する。
【０１５０】
図４の例では、確保要求保持部１２は、時刻Ｔ１において、（マイク，１）という確保要求を受信しているため、かかる切り替え禁止データに基づいてロック管理テーブルを更新している。
【０１５１】
より高い優先度を含む確保要求によって置き換えられる例として、確保要求保持部１２は、ＯＳ１に対するマイクの割り当てを確保するという優先度１の確保要求Ａを保持している状態で、ＯＳ２に対するマイクの割り当てを確保するという優先度３の確保要求Ｂを受信した場合に、確保要求Ａを確保要求Ｂによって置き換えるというケースが考えられる。
【０１５２】
第３に、図１１及び図１２を参照して、本実施形態に係るコンピュータシステム１のペリフェラル切替装置１０におけるペリフェラル切替手順について説明する。
【０１５３】
図１１の例では、ＯＳ１がフォアグラウンドのＯＳであり、全てのペリフェラルがＯＳ１に割り当てられている状態で（図６（ｂ）の左図参照）、ユーザが、切替ボタンを押下することによって、バックグラウンドのＯＳ２に対して、ペリフェラルとして、ＬＣＤやキーパッドやスピーカやマイクを割り当てるように要求する切替要求が、優先度２で通知されたものとする。
【０１５４】
図１１に示すように、ステップＳ３０１において、切替要求受信部３６が、上述の切替要求を受信して解釈する。
【０１５５】
ステップＳ３０２において、切替判断部１３が、受信した切替要求に基づいて、ペリフェラル割り当てテーブルを参照し、当該切替要求により指定されているＯＳ（ＯＳ２）に対して、当該切替要求により指定されているペリフェラル（ＬＣＤやキーパッドやスピーカやマイク）が既に割り当てられているかについて判定する。
【０１５６】
ステップＳ３０３において、割り当てられていると判定された場合、本手順は終了する。なお、図１１の例では、ＯＳ１に対してペリフェラル（ＬＣＤやキーパッドやスピーカやマイク）が割り当てられているため、割り当てられていないと判定される。
【０１５７】
一方、ステップＳ３０３において、割り当てられていないと判定された場合、ステップＳ３０４において、確保要求保持部１２が、ロック管理テーブルのタイムスタンプを参照し、タイムアウトした古いロック状態（レコード）を削除する。
【０１５８】
ステップＳ３０５において、確保要求保持部１２が、ロック管理テーブルを参照して、指定のペリフェラル種別のペリフェラル（ＬＣＤやキーパッドやスピーカやマイク）の各々について、後述の切替判断ルーチンを実行し、ペリフェラル割り当てテーブルを更新する。
【０１５９】
ステップＳ３０６において、切替実行部１５が、ペリフェラル割り当てテーブルに基づいて、実際のペリフェラルのＯＳに対する割り当ての切り替えを実行する。
【０１６０】
ここで、図１２を参照して、上述した切替判断ルーチンについて説明する。
【０１６１】
図１２に示すように、ステップＳ３０５Ａにおいて、切替判断部１３が、各ペリフェラルについて、ロック管理テーブルを参照し、当該ペリフェラルが、受信した切替要求により指定されているＯＳ以外に対してロックされているかについて、すなわち、当該ペリフェラルの当該ＯＳに対する割り当ての切り替えが禁止されているか否かについて調べる。上述の例では、ＬＣＤやキーパッドやスピーカは、ＯＳ２に対してロックされていないため、ＮＯとなる。
【０１６２】
ステップＳ３０５Ｂにおいて、ロックされていないと判定された場合、ステップＳ３０５Ｆにおいて、切替判断部１３が、当該ペリフェラル種別のペリフェラル（ＬＣＤやキーパッドやスピーカ）を、指定されているＯＳに割り当てるように、ペリフェラル割り当てテーブルを更新し、切替判断ルーチンを終了する。
【０１６３】
一方、ロックされていると判定された場合、切替判断部１３が、当該切替要求の優先度が、当該ペリフェラルの当該ＯＳに対する割り当ての切り替えを禁止している確保要求の優先度よりも高いか否かについて調べる。
【０１６４】
ステップＳ３０５Ｄにおいて、切替要求の優先度の方が高いと判定された場合、ステップＳ３０５Ｅにおいて、確保要求保持部１２が、当該確保要求を、ロック管理テーブルから削除する。
【０１６５】
そして、ステップＳ３０５Ｆにおいて、切替判断部１３は、指定されているＯＳに対して当該ペリフェラルを割り当てるように、ペリフェラル割り当てテーブルを更新して、切替判断ルーチンを終了する。
【０１６６】
一方、ステップＳ３０５Ｄにおいて、切替要求の優先度の方が低いと判定された場合は、ペリフェラル割り当てテーブルを更新することなく、切替判断ルーチンを終了する。
【０１６７】
上述の例では、マイクが、指定されているＯＳ２以外のＯＳ１にロックされているため、切替判断部１３が、当該切替要求の優先度「２」と、該当する確保要求の優先度「１」とを比較し、当該確保要求の優先度の方が高いため、マイクのＯＳ１に対する割り当ての切り替え（変更）を行わずに、マイクのＯＳ１に対する割り当てが固定され、ＬＣＤやキーパッドやスピーカやＷｉＦｉやカメラのみがＯＳ２に割り当てられる（図６（ｂ）の右図参照）。
【０１６８】
切替判断部１３の変形例として、確保要求保持部１２が、既に保持している確保要求Ａと同一のペリフェラル種別に対する確保要求Ｂを受信し、確保要求Ｂに含まれる優先度の方が、確保要求Ａに含まれる優先度よりも高いため、確保要求Ａが確保要求Ｂによって置き換えられた際の切替判断ルーチンの動作について説明する。
【０１６９】
切替判断部１３は、確保要求Ｂにより指定されているペリフェラルのＯＳに対する割り当てが既に行われていない場合、当該ペリフェラルの当該ＯＳに対する割り当てを実行する。
【０１７０】
具体的には、切替判断部１３は、ＯＳ１に対してマイクを確保するという優先度１の確保要求Ａが保持されている状態で、ＯＳ２に対してマイクを確保するという優先度３の確保要求Ｂを受信した際、ＯＳ２に対してマイクが既に割り当てられていない場合、ＯＳ２に対してマイクを割り当てる。
【０１７１】
第４に、図１３を参照して、本実施形態に係るコンピュータシステム１のペリフェラル切替制御装置３０において共有されているペリフェラルにおいて、一方のＯＳが、当該ペリフェラルをオフに設定した際に，他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御する手順について説明する。
【０１７２】
図１３に示すように、ステップＳ４０１において、ペリフェラル設定部１４は、ペリフェラルの設定がオン設定からオフ設定或いはオフ設定からオン設定に変化したことを検知する。
【０１７３】
ステップＳ４０２において、ペリフェラル設定部１４は、当該ペリフェラルが割り当てられているＯＳに対して、当該ペリフェラルの設定情報を通知する。
【０１７４】
ステップＳ４０３において、ペリフェラル切替制御装置３０のペリフェラル設定通知部３２は、ペリフェラル設定部１４によって通知されたペリフェラルの設定情報を受信する。
【０１７５】
ステップＳ４０４において、ペリフェラル設定通知部３２は、受信した当該ペリフェラルの設定情報に基づいて、当該ペリフェラルとの間の入出力の可否を制御する。
【０１７６】
当該ペリフェラルの設定情報において、オフ設定になったことが通知されていた場合、ステップＳ４０５において、ペリフェラル設定通知部３２は、当該ペリフェラルとの間の入出力の通信を停止する。
【０１７７】
一方、当該ペリフェラルの設定情報において、オフ設定になったことが通知されていた場合、ステップＳ４０６において、ペリフェラル設定通知部３２は、当該ペリフェラルとの間の入出力の通信を許可する。
【０１７８】
（本発明の第１の実施形態に係るコンピュータシステムの作用・効果）
本実施形態に係るコンピュータシステム１によれば、アプリケーションやユーザから、ＯＳに対するペリフェラルの割り当てを要求する切替要求を受信した場合であっても、確保要求によって指定されているペリフェラルについては切り替えを禁止（ロック）することができる。
【０１７９】
本実施形態に係るコンピュータシステム１によれば、アプリケーションやユーザから、ＯＳに対するペリフェラルの割り当てを要求する切替要求を受信した場合であっても、当該切替要求に含まれている優先度よりも高い優先度を含む確保要求が保持されている場合、当該確保要求によって指定されているペリフェラルについては切り替えを禁止（ロック）することができる。
【０１８０】
本実施形態に係るコンピュータシステム１によれば、確保要求に含まれている優先度よりも当該切替要求に含まれている優先度が高い場合は、当該確保要求によって指定されているペリフェラルの割り当てを切り替えることができ、アプリケーションやユーザの要求に従った柔軟かつ適切なペリフェラルの割り当ての切り替え制御を行うができる。
【０１８１】
本実施形態に係るコンピュータシステム１によれば、一方のＯＳが、特定のペリフェラルの割り当てを確保している場合であっても、他方のＯＳが、より高い優先度の確保要求を送信した場合は、当該ペリフェラルの割り当てを他方のＯＳに切り替えて確保することができる。
【０１８２】
本実施形態に係るコンピュータシステム１によれば、他方のＯＳにおいて受信された確保要求の優先度が保持されている確保要求の優先度よりも低い場合には、確保要求の書き換えを拒否することができ、アプリケーション等の要求に従った柔軟かつ適切な競合制御を行うことができる。
【０１８３】
本実施形態に係るコンピュータシステム１によれば、オペレーティングシステム内のアプリケーションやミドルウェアやデバイスドライバの動作状態に従った柔軟なペリフェラルの割り当ての切り替え制御を行うことができる。
【０１８４】
本実施形態に係るコンピュータシステム１によれば、ＯＳ間で共有されているペリフェラルにおいて、一方のＯＳが、当該ペリフェラルをオフに設定した際に、他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御し、当該ペリフェラルがオンに設定された際には、他方のＯＳが、即座に、当該通信を開始することができる。
【０１８５】
本実施形態に係るコンピュータシステム１によれば、切替ロック要求の要求元が、障害などにより、ＯＳに対するペリフェラルの割り当ての切り替えの禁止（ロック）解除できない場合であっても、一定期間経過後に、かかるロックを解除することができる。
【０１８６】
本実施形態に係るコンピュータシステム１によれば、アプリケーションやミドルウェアやデバイスドライバが、ペリフェラル切替装置１０に対して、ペリフェラル種別を指定した切替ロック要求を発行でき、当該切替ロック要求に、アプリケーション種別等に応じて優先度を与えることができる。 
本実施形態に係るコンピュータシステム１によれば、ＯＳ間で共有されているペリフェラルにおいて、一方のＯＳが、当該ペリフェラルをオフに設定した際に、他方のＯＳが、当該ペリフェラルとの間の入出力を行うための通信を抑制するように制御し、当該ペリフェラルがオンに設定された際には、他方のＯＳが、即座に、当該通信を開始することもできる。
【０１８７】
本実施形態に係るコンピュータシステム１によれば、アプリケーションやミドルウェアやデバイスドライバが、ペリフェラル切替装置に対して、ペリフェラル種別を指定した切替ロック要求を発行でき、当該切替ロック要求に、アプリケーション種別等に応じて優先度を与えることができる。
【０１８８】
本実施形態に係るコンピュータシステム１によれば、アプリケーションやミドルウェアやデバイスドライバが、ペリフェラル切替装置１０に対して、ペリフェラル種別を指定した切替要求を発行でき、当該切替要求に、アプリケーション種別等に応じて優先度を与えることができる。
【０１８９】
本実施形態に係るコンピュータシステム１によれば、ペリフェラル切替装置が、ペリフェラル切替制御装置３０の障害を確実に検知することができる。
【０１９０】
本実施形態に係るコンピュータシステム１によれば、複数のロックの要求元からの切替ロック要求と切替禁止状態とを対応づけて管理できる。例えば、上述の切り替えの禁止を要求する切替ロック要求の要求元とは異なる要求元からの不正な上述の切り替えの禁止解除を要求する切替ロック要求によって、上述の切り替えの禁止解除を行うといった誤りを防止できる。
【０１９１】
また、本実施形態に係るコンピュータシステム１によれば、以下のような優先度に基づくアプリケーション要求に応じて、ＯＳに対するペリフェラルの割り当ての切り替えや切り替えの禁止（ロック）や、ペリフェラルのオン・オフ設定に基づく通信の抑制が可能になる。
【０１９２】
（１）ユーザが、電話中に、フォアグラウンドのＯＳを切り替えても、マイクはロックされたままで、通話は維持される。
【０１９３】
（２）電話中に、別のＯＳから、マイクやスピーカ等の確保要求が受信された場合であっても、優先度に基づいて当該確保要求は拒否され、通話は維持される。
【０１９４】
（３）フォアグラウンドのＯＳに対してＬＣＤやキーパッドが割り当てられるケースにおいて、ＯＳ１が、ＯＳ２の障害や異常を検知した際、ＯＳ１のアプリケーションが、高い優先度の切替要求を発行し、ＯＳ１をフォアグラウンドとすることで、障害又は異常状態のＯＳ２の表示する画面をユーザに見せないようにすると共に、ＯＳ１が、ＯＳ２の復旧のための操作画面をユーザに提示できる。
【０１９５】
また、ＯＳ１が、ＬＣＤやキーパッド等のペリフェラルを確保する確保要求を発行することで、ＯＳ２から切替要求を受信した際であっても、ＯＳ１に当該ペリフェラルの割り当てを維持することができ、ユーザが、障害或いは異常な状態のＯＳ２上で操作することを防止し、障害の拡大を防ぐことができる。
【０１９６】
（４）フォアグラウンドのＯＳとは独立にＬＣＤやキーパッドが割り当てられるケースにおいて、ＯＳ１が、ＯＳ２の障害や異常を検知した際、ＯＳ１のアプリケーションが、ＬＣＤやキーパッドの割り当てをＯＳ１に確保するための確保要求を高い優先度で発行することで、障害・異常状態のＯＳ２の表示する画面をユーザに見せないようにすると共に、ＯＳ１が、ＯＳ２の復旧のための操作画面をユーザに提示できる。
【０１９７】
また、ＯＳ２から、ＬＣＤやキーパッド等のペリフェラルを確保するための確保要求を受信した際であっても、ＯＳ１に当該ペリフェラルの割り当てを維持することができ、ユーザが障害或いは異常な状態のＯＳ２上で操作することを防止し、障害の拡大を防ぐことができる。
【０１９８】
（５）一方のＯＳが、スピーカ音量をオフに設定した場合（マナーモード等）、他方のＯＳが、音楽を再生中であっても、当該他方のＯＳからスピーカへの音声出力が抑止され、リソース浪費が回避される。
【０１９９】
（変更例１）
図１４及び図１５を参照して、本実施形態に係るコンピュータシステム１の変更例１について説明する。かかる変更例１は、耐故障性を向上させるために、図９及び図１０に示した基本的なペリフェラルの切替ロック手順を変更したものである。
【０２００】
以下、図１４及び図１５を参照して、本変更例１に係るコンピュータシステム１のペリフェラル切替制御装置３０におけるペリフェラルの切替ロック手順について説明する。
【０２０１】
図１４に示すように、ステップＳ６０１において、切替ロック要求受信部３１が、アプリケーションやミドルウェアやデバイスドライバから、ペリフェラル種別及び優先度を指定する切替ロック要求を受信する。
【０２０２】
例えば、切替ロック要求受信部３１が、時刻Ｔ１において、ＯＳ２の音楽再生アプリケーション（プロセスＩＤ＝ＩＤ１）から、スピーカのＯＳ２に対する割り当ての切り替えを優先度３で禁止（ロック）することを要求する切替ロック要求を受け付けたものとする。
【０２０３】
ステップＳ６０２において、ロック状態管理部３４が、受信した切替ロック要求を参照して、ロックの解除を要求するものである判定した場合、ステップＳ６０４において、ロック状態管理テーブルから、当該切替ロック要求の要求元の識別情報をキーに対応するロック状態（レコード）を削除する。
【０２０４】
一方、ステップＳ６０２において、ロック状態管理部３４が、受信した切替ロック要求を参照して、ロックを要求するものである判定した場合、ステップＳ６０３において、当該切替ロック要求の要求元の識別情報をキーに、ロック状態管理テーブルを更新する。
【０２０５】
上述の例では、図８に示すロック状態管理テーブルに示すように、（要求元の識別情報，優先度，ペリフェラル種別，タイムスタンプ）というフォーマットで、（ＩＤ１，３，スピーカ，Ｔ１）というレコードが追加されることになる。
【０２０６】
なお、同一のアプリケーションからのロックの解除を要求する切替ロック要求が受信された場合、プロセスＩＤが「ＩＤ１」であるため、このレコード（ＩＤ１，３，スピーカ，Ｔ１）が削除され、整合性が保たれる。
【０２０７】
一方、プロセスＩＤが「ＩＤ４」のプロセスから、スピーカのロックの解除を要求する切替ロック要求が受信された場合には、このレコード（ＩＤ１，３，スピーカ，Ｔ１）は、削除されず、当該スピーカのロックは維持される。
【０２０８】
ステップＳ６０５において、ロック状態管理部３４が、ロック状態管理テーブルを参照して、受信した切替ロック要求に対応するレコードがあるか否かについて検査する。
【０２０９】
ステップＳ６０６において、かかるレコードがあると判定された場合には、ステップＳ６０７において、ロック状態管理部３４は、周期的な起動を行うためのタイマをセットする。
【０２１０】
一方、ステップＳ６０６において、かかるレコードがないと判定された場合には、ステップＳ６０８において、ロック状態管理部３４は、周期的な起動を行うためのタイマをリセットする。
【０２１１】
上述の例では、ロック状態管理テーブルには、受信した切替ロック要求に対応するレコードが存在するため、タイマがセットされることになる。
【０２１２】
図１５に示すように、ステップＳ７０１において、ペリフェラル切替制御装置３０が、タイマによって起動される。
【０２１３】
ステップＳ７０２において、タイマ起動の際に、確保要求通知部３５が、呼び出された後、ロック状態管理テーブルを参照し、確保要求を作成する。
【０２１４】
ステップＳ７０３において、確保要求通知部３５が、ペリフェラル切替装置１０に対して、作成した確保要求を通知する。
【０２１５】
すなわち、タイマにより、周期的に、ペリフェラル切替制御装置３０からペリフェラル切替装置１０に対して確保要求が通知され、ペリフェラル切替装置１０は、ペリフェラル切替制御装置３０が異常終了せずに動作していることを確認できる。
【０２１６】
ステップＳ７０４において、ロック状態管理部３４が、ロック状態管理テーブル内の各レコードのタイムスタンプを参照し、古いレコードを削除する。
【０２１７】
ステップＳ７０５において、ロック状態管理部３４が、ロック状態管理テーブル内に、レコードの残りがあるかについて調べる。
【０２１８】
レコードの残りがある場合には、ステップＳ７０６において、ロック状態管理部３４が、周期的にペリフェラル切替制御装置３０を起動するように、タイマをセットする。
【０２１９】
一方、レコードが全て削除されている場合には、ステップＳ７０７において、ロック状態管理部３４が、タイマをリセットする。
【図面の簡単な説明】
【０２２０】
【図１】本発明の第１の実施形態に係るコンピュータシステムの構成図である。
【図２】本発明の第１の実施形態に係るコンピュータシステムの構成図である。
【図３】本発明の第１の実施形態に係るコンピュータシステムに搭載されているペリフェラル切替制御装置及びペリフェラル切替装置の機能ブロック図である。
【図４】本発明の第１の実施形態に係るペリフェラル切替装置の確保要求保持部によって管理されているロック管理テーブルの一例を示す図である。
【図５】確保要求のフォーマットの一例を示す図である。
【図６】本発明の第１の実施形態に係るペリフェラル切替装置の切替判断部によって管理されているペリフェラル割り当てテーブルの一例を示す図である。
【図７】切替ロック要求のフォーマットの一例を示す図である。
【図８】本発明の第１の実施形態に係るペリフェラル切替制御装置のロック状態管理部によって管理されているロック状態管理テーブルの一例を示す図である。
【図９】本発明の第１の実施形態に係るペリフェラル切替制御装置におけるペリフェラルの切替ロック手順を示すフローチャートである。
【図１０】本発明の第１の実施形態に係るペリフェラル切替装置におけるペリフェラルの切替ロック手順を示すフローチャートである。
【図１１】本発明の第１の実施形態に係るペリフェラル切替装置におけるペリフェラル切替手順を示すフローチャートである。
【図１２】本発明の第１の実施形態に係るペリフェラル切替装置におけるペリフェラル切替手順で実行される切り替え判断ルーチンを示すフローチャートである。
【図１３】本発明の第１の実施形態に係るペリフェラル切替装置及び切替制御装置におけるペリフェラルとの間の入出力を制御する手順を示すフローチャートである。
【図１４】本発明の変更例１に係るペリフェラル切替制御装置におけるペリフェラルの切替ロック手順を示すフローチャートである。
【図１５】本発明の変更例１に係るペリフェラル切替制御装置におけるペリフェラルの切替ロック手順を示すフローチャートである。
【符号の説明】
【０２２１】
１…コンピュータシステム
１０…ペリフェラル切替装置
１１…切替要求受信部
１２…確保要求保持部
１３…切替判断部
１４…ペリフェラル設定部
１５…切替実行部
３０、３０Ａ、３０Ｂ…ペリフェラル切替制御装置
３１…切替ロック要求受信部
３２…ペリフェラル設定通知部
３３…活動通知部
３４…ロック状態管理部
３５…確保要求通知部
３６…切替要求受信部
３７…切替要求データ通知部
【図１】
2008052713.tif 000003
【図２】
2008052713.tif 000004
【図３】
2008052713.tif 000005
【図４】
2008052713.tif 000006
【図５】
2008052713.tif 000007
【図６】
2008052713.tif 000008
【図７】
2008052713.tif 000009
【図８】
2008052713.tif 000010
【図９】
2008052713.tif 000011
【図１０】
2008052713.tif 000012
【図１１】
2008052713.tif 000013
【図１２】
2008052713.tif 000014
【図１３】
2008052713.tif 000015
【図１４】
2008052713.tif 000016
【図１５】
2008052713.tif 000017