(57)【要約】  情報処理装置１は、仮想マシン４から利用申請を受け付けた場合、外部記憶装置１１のデバイス状態を取得する。デバイス状態が割当中状態である場合、他の仮想マシン４に割当中状態である旨を通知する。デバイス状態が割当可能状態である場合、外部記憶装置１１を仮想マシン４に割り当てる。デバイス状態が解放可能状態である場合、未反映データを処理した後、外部記憶装置１１を仮想マシン４に割り当てる。
2010097933.tif 000002
【特許請求の範囲】
【請求項１】
物理資源を論理的に分割して複数の仮想計算機として動作させる情報処理装置であって、
着脱可能な記録媒体に対するデータの読み書きが可能なリーダライタと、
該リーダライタの使用状況を検出する検出手段と、
該検出手段が検出した使用状況に基づき、前記リーダライタを前記仮想計算機のいずれかに割当てる割当手段と
を備え、
割当てたリーダライタは、割当先の仮想計算機からの要求に応じて記録媒体に対するデータの読み書きを行うようにしてあることを特徴とする情報処理装置。
【請求項２】
前記検出手段は、前記仮想計算機が割当の要求をしたときに前記リーダライタの使用状況を検出するようにしてあることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検出手段が検出した使用状況に基づき、割当てたリーダライタを割当先の仮想計算機から解放する解放手段
を更に備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記割当手段は、
前記記録媒体を装着してあるリーダライタを仮想化して仮想資源を生成する生成手段と、
割当てたリーダライタに代えて、生成した仮想資源を割当先の仮想計算機に割当てる手段と
を更に備え、
生成した仮想資源の割当により前記リーダライタが解放可能な状態となるようにしてあることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記生成手段は、装着してある記録媒体のデータをキャッシュデータとして保存し、保存してあるデータの読み書きが可能な資源を仮想資源として生成するようにしてあることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記生成手段は、装着してある記録媒体のデータを用いることなく、既に保存してあるデータの読み書きが可能な資源を仮想資源として生成するようにしてあることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記生成手段は、既に保存してあるデータが削除される場合、該データを複写し、複写したデータの読み書きが可能な資源を仮想資源として生成するようにしてあることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
割当てたリーダライタの解放を割当先の仮想計算機が要求した場合、該リーダライタから前記記録媒体が離脱したことを前記検出手段が検出したとき、リーダライタを解放するようにしてあることを特徴とする請求項３乃至７のいずれか一つに記載の情報処理装置。
【請求項９】
該リーダライタから前記記録媒体が離脱したことを前記検出手段が検出するまで、記録媒体を離脱させるべき旨を報知する出力手段を更に備えることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記出力手段は、前記記録媒体に対するデータの書込みがある場合、データの書込みが完了したことを前記検出手段が検出するまで、報知を行うようにしてあることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記リーダライタに装着してある記録媒体がデータの書込先であるか否かを判定する書込先判定手段
を更に備え、
前記出力手段は、装着してある記録媒体がデータの書込先でないと前記書込先判定手段が判定した場合、データの書込先となる記録媒体を装着すべき旨を報知するようにしてあることを特徴とする請求項９又は１０に記載の情報処理装置。
【請求項１２】
前記リーダライタに装着してある記録媒体への書込みが可能か否かを検出する検出手段
を更に備え、
前記出力手段は、装着してある記録媒体への書込みが不可能であると前記検出手段が判定した場合、装着してある記録媒体を離脱させるべき旨を報知するようにしてあることを特徴とする請求項９乃至１１のいずれか一つに記載の情報処理装置。
【請求項１３】
前記検出手段は、割当先の仮想計算機と異なる他の仮想計算機が前記リーダライタの割当を要求したときに前記リーダライタの使用状況を検出し、
前記解放手段は、前記リーダライタが解放可能な状態であることを前記検出手段が検出した場合、割当てたリーダライタを割当先の仮想計算機から解放し、
前記割当手段は、解放したリーダライタを前記他の仮想計算機に割当てるようにしてあることを特徴とする請求項３乃至１２のいずれか一つに記載の情報処理装置。
【請求項１４】
物理資源を論理的に分割して複数の仮想計算機として動作させる情報処理方法であって、
着脱可能な記録媒体に対するデータの読み書きが可能なリーダライタの使用状況を検出し、
検出した使用状況に基づき、前記リーダライタを前記仮想計算機のいずれかに割当て、
割当てたリーダライタで割当先の仮想計算機からの要求に応じた記録媒体に対するデータの読み書きを行うことを特徴とする情報処理方法。
【請求項１５】
コンピュータに、物理資源を論理的に分割して複数の仮想計算機として動作させるコンピュータプログラムであって、
コンピュータに、着脱可能な記録媒体に対するデータの読み書きが可能なリーダライタの使用状況を検出させるステップと、
検出した使用状況に基づき、前記リーダライタを前記仮想計算機のいずれかに割当てさせるステップと、
割当てたリーダライタが割当先の仮想計算機からの要求に応じて記録媒体に対するデータの読み書きを行うように制御させるステップと
を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理資源を論理的に分割して複数の仮想計算機として動作させる情報処理装置、情報処理方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、個人向けの電子計算機（ Personal Computer ）は、その能力が飛躍的に向上したため、文書作成，電子メール作成又はウェブ閲覧などの通常の用途において、能力を余らせている。そこで、発生した余力を有効利用するため、電子計算機に仮想化技術が導入された。【０００３】
仮想化技術の代表例として、仮想ＰＣ方式のシンクライアントシステムがある。仮想化技術は、物理資源を抽象化して複数の仮想資源に分割し、相互に独立した仮想マシンを動作させる。その結果、複数の物理資源があるように見せかけ、複数のエンドユーザに対してエンドユーザ毎に一台の仮想マシンを割り当てることができ、一台の電子計算機を複数のエンドユーザに利用させることができる。【０００４】
仮想化技術は、複数の電子計算機の資源を仮想資源として一台の電子計算機に集約することにより、実機の台数を軽減させることができ、設置場所，消費電力及び保守管理の負担を軽減させることができる。また、仮想化技術は、一台の電子計算機で情報を一元管理することにより、秘密情報の漏洩を防止することができる。【０００５】
仮想化技術において、ＵＳＢ（Universal Serial Bus）規格若しくはイーサネット（登録商標）規格などの外部インタフェース又はプリンタ装置などの物理資源を各仮想マシンに使用させるには、全ての仮想マシンに共有させるか、任意の仮想マシンに固定的に割り当てる必要がある。【０００６】
従来、物理資源を仮想マシンに割り当てるための方法として、複数個のオペレーティングシステムを切り替えるＯＳ切替手段とを有する計算機システムが提案された（例えば、特許文献１）。また、外部装置からの要求に応じて記憶装置上に設けられるデバイスにデータを入出力する制御を行う装置が提案された（例えば、特許文献２）。また、仮想実行環境でリソースの割当てをするシステムが提案された（例えば、特許文献３）。
【特許文献１】特開２０００−３３０８０６号公報
【特許文献２】特開２００６−１０７２５７号公報
【特許文献３】特開２００７−１３３８５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、物理資源のうち、特に、リムーバブルな記録媒体に対するデータの読み書きが可能なリーダライタを各仮想マシンに使用させる場合には、以下の問題が発生する。【０００８】
リーダライタを共有とした場合、一の仮想マシンのエンドユーザは、他の仮想マシンに割り当てられた記録媒体に記憶してあるデータにアクセス可能となるため、秘密情報の漏洩など、セキュリティ上の問題が発生する。従って、上述した仮想化技術の利点を損なうこととなる。【０００９】
また、リーダライタを任意の仮想マシンに固定的に割り当てた場合、割当先以外の仮想マシンは、リーダライタが割当先の仮想マシンから解放されるまで、リーダライタを使用することができないため、必要なデータの読み書きを迅速に実行することができないという問題を有する。【００１０】
本発明はかかる事情を鑑みてなされたものであり、リーダライタの使用状況に応じてリーダライタを複数の仮想マシンのいずれかに割り当てることにより、リーダライタが複数の仮想マシンによって共有されることなく、データの読み書きが必要な仮想マシンにリーダライタを迅速に割り当てることができる情報処理装置、情報処理方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
開示の情報処理装置は、物理資源を論理的に分割して複数の仮想計算機として動作させる情報処理装置であって、着脱可能な記録媒体に対するデータの読み書きが可能なリーダライタと、該リーダライタの使用状況を検出する検出手段と、該検出手段が検出した使用状況に基づき、前記リーダライタを前記仮想計算機のいずれかに割当てる割当手段とを備え、割当てたリーダライタは、割当先の仮想計算機からの要求に応じて記録媒体に対するデータの読み書きを行うようにしてあることを要件とする。
【発明の効果】
【００１２】
開示の情報処理装置、情報処理方法及びコンピュータプログラムにあっては、データの読み書きが必要な仮想マシンにリーダライタを迅速に割り当てることができる。また、リーダライタに装着してある記録媒体内のデータが全ての仮想マシンから閲覧可能となる状態を回避することができ、秘密情報の漏洩を防止することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１における情報処理装置及び周辺装置の構成を示すブロック図である。
【図２】実施の形態１における情報処理装置の機能ブロック図である。
【図３】キャッシュ利用申請画面の表示例を示す図である。
【図４】デバイス利用申請画面の表示例を示す図である。
【図５】デバイス状態テーブルのフォーマット例を示す図である。
【図６】デバイス割当完了のメッセージの表示例を示す図である。
【図７】デバイス解放完了のメッセージの表示例を示す図である。
【図８】メディア取り外し依頼のメッセージの表示例を示す図である。
【図９】デバイス利用確認のメッセージの表示例を示す図である。
【図１０】キャッシュ管理テーブルのフォーマット例を示す図である。
【図１１】基本的なデバイス割当処理の手順を示すフローチャートである。
【図１２】未反映データ処理の手順を示すフローチャートである。
【図１３】記録媒体が装着されたときの基本的な制御処理の手順を示すフローチャートである。
【図１４】記録媒体が装着されたときの基本的な制御処理の手順を示すフローチャートである。
【図１５】記録媒体に対する基本的な読み書き処理の手順を示すフローチャートである。
【図１６】基本的なデバイス解放処理の手順を示すフローチャートである。
【図１７】記録媒体が離脱したときの制御処理の手順を示すフローチャートである。
【図１８】実施の形態２における情報処理装置の機能ブロック図である。
【図１９】所定の属性を有する記録媒体が装着されたときの制御処理の手順を示すフローチャートである。
【図２０】所定の属性を有する記録媒体が装着されたときの制御処理の手順を示すフローチャートである。
【図２１】実施の形態３における情報処理装置の機能ブロック図である。
【図２２】所定の属性を有する記録媒体が装着されたときの制御処理の手順を示すフローチャートである。
【図２３】外部記憶装置が複数存在しているときのデバイス割当処理の手順を示すフローチャートである。
【図２４】外部記憶装置が複数存在しているときのデバイス割当処理の手順を示すフローチャートである。
【図２５】実施の形態４における情報処理装置の機能ブロック図である。
【図２６】キャッシュ保存テーブルのフォーマット例を示す図である。
【図２７】キャッシュ保存部に保存してあるキャッシュデータを複数の仮想マシンで共有する場合の制御処理の手順を示すフローチャートである。
【図２８】キャッシュ保存部に保存してあるキャッシュデータを複数の仮想マシンで共有する場合の制御処理の手順を示すフローチャートである。
【図２９】記録媒体が装着されたときの制御処理の手順を示すフローチャートである。
【図３０】記録媒体が装着されたときの制御処理の手順を示すフローチャートである。
【図３１】キャッシュデータの削除処理の手順を示すフローチャートである。
【図３２】キャッシュ保存部に保存してあるキャッシュデータの割当処理の手順を示すフローチャートである。
【図３３】キャッシュ保存部に保存してあるキャッシュデータの割当処理の手順を示すフローチャートである。
【図３４】実施の形態５における情報処理装置の機能ブロック図である。
【図３５】キャッシュデータの解放処理の手順を示すフローチャートである。
【符号の説明】
【００１４】
１  情報処理装置
１０  ＣＰＵ
１１  外部記憶装置
１２  ＲＯＭ
１３  ＲＡＭ
１４  補助記憶装置
１５  入力制御部
１６  出力制御部
１７  データ転送制御部
１８  バス
２  記録媒体
３  シンクライアント端末
３０  入力部
３１  出力部
４  仮想マシン
４０  ゲストＯＳ
４１  仮想デバイス用ドライバ
４２  キャッシュ利用申請部
４３  デバイス利用申請部
５  仮想マシンモニタ
５０  仮想デバイス
５１  デバイス割当管理部
５２  仮想デバイス管理部
５３  キャッシュ管理部
５４  デバイス状態テーブル
５５  キャッシュ管理テーブル
５６  キャッシュ操作部
５７  キャッシュ保存部
５８  メディア属性判断部
５９  メディア属性判断部
６  リムーバブルデバイス群
６０  同一キャッシュ検索部
６１  キャッシュ保存テーブル
【発明を実施するための最良の形態】
【００１５】
実施の形態１．
開示の情報処理装置、情報処理方法及びコンピュータプログラムの内容を本実施の形態を示す図面に基づいて説明する。図１は実施の形態１における情報処理装置及び周辺装置の構成を示すブロック図である。【００１６】
図中の１は、情報処理装置である。また、図中の３は、シンクライアント端末である。情報処理装置１は、シンクライアントシステムにおけるサーバ装置である。サーバ装置の一例は、汎用的な電子計算機である。シンクライアントシステムは、シンクライアント端末３に必要最小限の処理をさせ、その他の処理をサーバ装置である情報処理装置１に集約させて処理させるシステムである。本実施の形態におけるシンクライアントシステムの一例は、仮想ＰＣ方式である。【００１７】
情報処理装置１は、ＣＰＵ１０、外部記憶装置１１、ＲＯＭ１２、ＲＡＭ１３、補助記憶装置１４、入力制御部１５、出力制御部１６及びデータ転送制御部１７を有する。各ハードウェア資源は、バス１８を介して相互に接続されている。【００１８】
ＣＰＵ１０は、開示のコンピュータプログラムに従い、仮想化機能を有する。ＣＰＵ１０は、仮想化機能を用いて、上述したハードウェア資源の物理的特性をシステム、アプリケーションソフトウェア及びエンドユーザから隠蔽する。情報処理装置１は、ハードウェア資源が複数の論理的資源（以下「仮想資源」という）に分割されて、複数の仮想マシンとして動作する。仮想マシンは、シンクライアント端末３から受け付けたデータに基づき各種演算を実行する。仮想マシンは、演算結果をシンクライアント端末３に出力する。【００１９】
外部記憶装置１１は、記録媒体２に対するデータの読み書きを行うリーダライタである。リーダライタの一例は、フレキシブルディスクドライブ、ＭＯドライブ、ＣＤ−Ｒドライブ、磁気テープドライブ、メモリカードリーダライタ又はＵＳＢメモリを着脱するためのインタフェースである。【００２０】
外部記憶装置１１は、装着口（図示せず）を有し、記録媒体２が装着口に挿入されることにより、記録媒体２が装着される。また、外部記憶装置１１は、記録媒体２が装着口から抜脱されることにより、記録媒体２が離脱する。外部記憶装置１１は、記録媒体２が装着された旨又は離脱した旨の通知をＣＰＵ１０に出力する。【００２１】
記録媒体２は、リムーバブルメディアである。リムーバブルメディアの一例は、フレキシブルディスク、ＭＯ、ＣＤ−Ｒ、磁気テープ、メモリカード又はＵＳＢメモリなどである。記録媒体２は、プログラム及び各種データを記憶している。プログラムは、オペレーティングシステム（以下「ＯＳ」という）、開示のコンピュータプログラム及びその他のアプリ−ションソフトウェアを含む。【００２２】
外部記憶装置１１は、物理資源として仮想マシンに割り当てられる。外部記憶装置１１は、仮想マシンにより排他的に使用される。【００２３】
外部記憶装置１１は、記録媒体２が装着されたとき、記録媒体２のデータ の読み出しを行う。情報処理装置１は、読み出したデータをキャッシュデータとして補助記憶装置１４に保存する。キャッシュデータは、記録媒体２のファイルシステムの完全な内容と構造を一つのファイルに格納したイメージファイルである。イメージファイルの形式の一例は、ＩＳＯ形式、ＶＨＤ形式又はＶＦＤ形式などである。【００２４】
情報処理装置１は、記録媒体２に記録してあるデータをファイル構造を保ったまま補助記憶装置１４に保存することができる。情報処理装置１は、外部記憶装置１１を抽象化して仮想デバイスを生成する。情報処理装置１は、仮想デバイスを各仮想マシンに割り当てる。仮想デバイスは、記録媒体２に記憶してあるデータ又は保存してあるキャッシュデータを選択してアクセスすることができる。【００２５】
情報処理装置１は、仮想デバイスを介して、記録媒体２に記憶してあるデータの読み書きと同じように、保存してあるキャッシュデータの読み書きが可能となる。情報処理装置１は、保存してあるキャッシュデータ及び仮想デバイスを仮想資源として生成する。情報処理装置１は、生成した仮想資源を用いてデータの読み書きを行うことにより、外部記憶装置１１を仮想マシンから迅速に解放することができる。【００２６】
外部記憶装置１１は、記録媒体２への書き込みが不可能な状態にある場合、アクセスエラーが生じた旨の通知をＣＰＵ１０に出力する。【００２７】
ＲＯＭ１２は、記録してあるデータを読み出すことが可能な記憶装置である。ＲＯＭ１２は、Basic Input/Output System（以下ＢＩＯＳという）及びその他のファームウェアを記憶する半導体素子である。【００２８】
ＲＡＭ１３は、ＣＰＵ１０の実行により生じたデータ又は補助記憶装置１４から読み出したデータを一時記憶する。ＲＡＭ１３は、ＳＤＲＡＭ（Synchronous DRAM）又はＳＲＡＭ（Static RAM）などの半導体が該当する。【００２９】
補助記憶装置１４は、外部記憶装置１１、ＲＯＭ１２、ＲＡＭ１３、入力制御部１５又はデータ転送制御部１７から受け付けたデータを記憶する。補助記憶装置１４は、磁気ディスク記録方式のハードディスクドライブ（ＨＤＤ）又はＮＡＮＤ素子で構成されるフラッシュソリッドステートドライブ（Ｆｌａｓｈ  ＳＳＤ）が該当する。【００３０】
補助記憶装置１４は、ＯＳ、開示のコンピュータプログラム及び記録媒体２のデータをキャッシュデータとして記憶する。ＯＳは、情報処理装置１を制御するホストＯＳ、及び仮想マシンを制御するゲストＯＳを含む。【００３１】
入力制御部１５は、入力装置１５ａから受け付けた入力データをＲＡＭ１３又は補助記憶装置１４に出力する。入力装置１５ａは、管理者により入力された入力データを受け付ける。入力装置１５ａの一例は、キーボード及びマウスである。【００３２】
出力制御部１６は、出力データを出力装置１６ａに出力する。出力装置１６ａの一例は、液晶ディスプレイ及びスピーカである。【００３３】
データ転送制御部１７は、シンクライアント端末３と接続するためのインタフェースである。データ転送制御部１７とシンクライアント端末３とは、ＬＡＮ（Local Area Network）を介して相互に接続されている。ＬＡＮは、イーサネット及びＴＣＰ／ＩＰの組合せにより実現されている。【００３４】
シンクライアント端末３は、エンドユーザにより操作され、情報処理を実行する。シンクライアント端末３は、入力部３０及び出力部３１のみを有する。シンクライアント端末３は、入出力以外の資源を仮想マシンに依存する。【００３５】
入力部３０は、エンドユーザにより入力された入力データを受け付ける。入力部３０は、入力データをデータ転送制御部１７に転送する。入力部３０の一例は、キーボード及びタッチパッドである。【００３６】
出力部３１は、データ転送制御部１７から転送されたデータを受け付ける。出力部３１は、受け付けたデータを出力する。出力部３１の一例は、液晶ディスプレイである。【００３７】
図２は実施の形態１における情報処理装置１の機能ブロック図である。情報処理装置１は、複数の仮想マシン４及び仮想マシンモニタ５を有する。また、情報処理装置１は、キャッシュ操作部５６及びキャッシュ保存部５７を更に有する。また、情報処理装置１は、リムーバブルデバイス 群６を有する。【００３８】
キャッシュ操作部５６は、ＣＰＵ１０の動作により機能する。キャッシュ保存部５７は、補助記憶装置１４の記憶領域の一部である。リムーバブルデバイス群６は、記録媒体２に対するデータの読み書きを行う外部記憶装置であり、例えば、フレキシブルディスクドライブ、ＭＯドライブ、ＣＤ−Ｒドライブ、磁気テープドライブ、メモリカードリーダライタ又はＵＳＢメモリを着脱するためのインタフェースなどである。【００３９】
仮想マシン４は、情報処理装置１のハードウェア資源が抽象的に分割されたものであり、複数存在する。仮想マシン４は、ゲストＯＳ４０により制御される。仮想マシン４は、仮想デバイス用ドライバ４１、キャッシュ利用申請部４２及びデバイス利用申請部４３を有する。仮想デバイス用ドライバ４１は、補助記憶装置１４に記憶されている。キャッシュ利用申請部４２及びデバイス利用申請部４３は、ＣＰＵ１０の動作により機能する。【００４０】
仮想デバイス用ドライバ４１は、ゲストＯＳ４０が仮想デバイス５０を制御するための橋渡しを行う。【００４１】
キャッシュ利用申請部４２は、キャッシュ保存部５７に保存してあるキャッシュデータに関する一覧をキャッシュ管理部５３から取得する。キャッシュ利用申請部４２は、取得した一覧をキャッシュ利用申請画面としてシンクライアント端末３の出力部３１に出力させる。【００４２】
図３はキャッシュ利用申請画面の表示例を示す図である。キャッシュ利用申請画面は、キャッシュの利用申請及び解放申請のボタンを有する。ボタンは、シンクライアント端末３の入力部３０を介して押下される。キャッシュ利用申請部４２は、ボタンが押下された場合、キャッシュデータの利用申請又は解放申請の入力を受け付ける。キャッシュ利用申請部４２は、受け付けた申請をキャッシュ管理部５３に出力する。【００４３】
デバイス利用申請部４３は、仮想デバイス５０に関する情報を、後述するデバイス割当管理部５１から取得する。デバイス利用申請部４３は、取得した情報をデバイス利用申請画面としてシンクライアント端末３の出力部３１に出力させる。【００４４】
図４はデバイス利用申請画面の表示例を示す図である。デバイス利用申請画面は、デバイスの利用申請及び解放申請のボタンを有する。ボタンは、シンクライアント端末３の入力部３０を介して押下される。デバイス利用申請部４３は、ボタンが押下された場合、外部記憶装置１１の利用申請又は解放申請の入力を受け付ける。デバイス利用申請部４３は、受け付けた申請をデバイス割当管理部５１に出力する。【００４５】
仮想マシンモニタ５は、外部記憶装置１１の使用状況を検出し、検出した使用状況に基づき外部記憶装置１１を仮想マシン４に割り当てる。仮想マシンモニタ５は、ホストＯＳ及び開示のコンピュータプログラムにより制御される。【００４６】
仮想マシンモニタ５は、デバイス割当管理部５１、仮想デバイス管理部５２、キャッシュ管理部５３、デバイス状態テーブル５４、キャッシュ管理テーブル５５を有する。デバイス割当管理部５１、仮想デバイス管理部５２及びキャッシュ管理部５３は、ＣＰＵ１０の動作により機能する。デバイス状態テーブル５４及びキャッシュ管理テーブル５５は、補助記憶装置１４に記憶されている。【００４７】
デバイス割当管理部５１は、外部記憶装置１１を仮想マシン４に割り当てる、又は外部記憶装置１１を仮想マシン４から解放するための制御を行う。【００４８】
（利用申請を受け付けたとき）
デバイス割当管理部５１は、外部記憶装置１１の利用申請を受け付けた場合、デバイス状態テーブル５４にアクセスする。デバイス割当管理部５１は、外部記憶装置１１のデバイス状態をデバイス状態テーブル５４から抽出する。【００４９】
図５はデバイス状態テーブル５４のフォーマット例を示す図である。デバイス状態テーブル５４は、デバイス名、デバイス状態、仮想マシン名及び割当待ち仮想マシン情報を格納する。【００５０】
デバイス名は、仮想デバイス５０を識別するための情報である。デバイス状態は、外部記憶装置１１の使用状況を示す。デバイス状態は、「割当可能状態」、「割当中状態 」及び「解放可能状態」を含む。【００５１】
割当可能状態は、外部記憶装置１１が仮想マシン４に割り当てられてない状態である。割当中状態は、外部記憶装置１１が仮想マシン４に割り当てられている状態である。【００５２】
解放可能状態は、外部記憶装置１１が仮想マシン４から解放可能な状態である。解放可能な状態とは、記録媒体２が外部記憶装置１１に装着されている場合であって、装着してある記録媒体２のデータがキャッシュデータとしてキャッシュ保存部５７に保存された状態である。解放可能な状態は、割当先の仮想マシン４から解放申請を受け付けるか、又は割当先以外の仮想マシン４から利用申請を受け付けるまで、継続する。【００５３】
仮想マシン名は、割当先となる仮想マシン４を識別する情報である。仮想マシン名は、当該システムの管理者により任意に設定、または、仮想マシンモニタ５、あるいはＣＰＵ１０により自動で生成される。【００５４】
割当待ちの仮想マシン情報は、割当待ちの仮想マシン４を識別する情報である。割当待ちの仮想マシン４とは、外部記憶装置１１が割当先の仮想マシン４から解放され、自機に割り当てられることを待っている仮想マシン４である。【００５５】
デバイス割当管理部５１は、外部記憶装置１１のデバイス状態が割当中状態である場合、利用申請があった仮想マシンを、割当待ちの仮想マシン情報に追加する。デバイス割当管理部５１は、外部記憶装置１１が割当中状態である旨の通知を、申請があった仮想マシン４のデバイス利用申請部４３に出力する。【００５６】
デバイス割当管理部５１は、外部記憶装置１１のデバイス状態が割当可能状態である場合、利用申請があった仮想マシン４に外部記憶装置１１を割り当てる。デバイス割当管理部５１は、外部記憶装置１１のデバイス状態を割当可能状態から割当中状態に更新する。【００５７】
デバイス割当管理部５１は、外部記憶装置１１を割り当てた旨の通知を、申請があった仮想マシン４のデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。図６はデバイス割当完了のメッセージの表示例を示す図である。【００５８】
デバイス割当管理部５１は、外部記憶装置１１のデバイス状態が解放可能状態である場合、未反映データ処理を仮想デバイス管理部５２に依頼する。未反映データ処理の手順は、後述に説明する。【００５９】
（未反映データ処理完了の通知を受け付けたとき）
デバイス割当管理部５１は、未反映データ処理が完了した旨の通知を仮想デバイス管理部５２から受け付けた場合、外部記憶装置１１のデバイス状態を、解放可能状態から割当中状態に更新する。デバイス割当管理部５１は、利用申請があった仮想マシン４に外部記憶装置１１を割り当てる。【００６０】
（解放申請を受け付けたとき）
デバイス割当管理部５１は、外部記憶装置１１の解放申請を受け付けた場合、デバイス状態テーブル５４にアクセスする。デバイス割当管理部５１は、外部記憶装置１１のデバイス状態をデバイス状態テーブル５４から抽出する。【００６１】
デバイス割当管理部５１は、外部記憶装置１１のデバイス状態が割当可能状態である場合、外部記憶装置１１を解放した旨の通知を、解放申請があった仮想マシン４のデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。図７はデバイス解放完了のメッセージの表示例を示す図である。【００６２】
デバイス割当管理部５１は、外部記憶装置１１のデバイス状態が解放可能状態である場合、未反映データ処理を仮想デバイス管理部５２に依頼する。仮想デバイス管理部５２は、デバイス解放処理を実行する。デバイス解放処理の手順は、後述にて説明する。【００６３】
デバイス割当管理部５１は、未反映データ処理が完了した旨の通知を仮想デバイス管理部５２から受け付けた場合、外部記憶装置１１に記録媒体２が装着されているか否かを判定する。【００６４】
デバイス割当管理部５１は、記録媒体２が離脱していると判定した場合、外部記憶装置１１のデバイス状態を、解放可能状態から割当可能状態に更新する。デバイス割当管理部５１は、外部記憶装置１１を解放した旨の通知を、解放申請があった仮想マシン４のデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【００６５】
一方、デバイス割当管理部５１は、記録媒体２が装着されていると判定した場合、記録媒体２の取り外しを促す通知を、解放申請があった仮想マシン４のデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。図８はメディア取り外し依頼のメッセージの表示例を示す図である。【００６６】
デバイス割当管理部５１は、デバイス解放処理を実行している間、外部記憶装置１１のデバイス状態を、解放可能状態のままとする。デバイス割当管理部５１は、デバイス解放処理が完了した場合、外部記憶装置１１のデバイス状態を、解放可能状態から割当可能状態に更新する。【００６７】
デバイス割当管理部５１は、外部記憶装置１１を解放した旨の通知を、解放申請があった仮想マシン４のデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【００６８】
デバイス割当管理部５１は、外部記憶装置１１のデバイス状態が割当中状態である場合、デバイス解放処理を仮想デバイス管理部５２に依頼する。【００６９】
（外部記憶装置１１を解放した旨の通知を受け付けたとき）
デバイス割当管理部５１は、外部記憶装置１１を解放した旨の通知を仮想デバイス管理部５２から受け付けた場合、記録媒体２の取り外しを促す通知を、割当先となる仮想マシン４のデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【００７０】
（デバイス状態を変更する旨の依頼を受け付けたとき）
デバイス割当管理部５１は、外部記憶装置１１のデバイス状態を変更する旨の依頼を仮想デバイス管理部５２から受け付けた場合、デバイス状態を、依頼された状態に更新する。デバイス割当管理部５１は、デバイス状態を変更した旨の通知を仮想デバイス管理部５２に出力する。【００７１】
（記録媒体２を装着する旨の依頼を受け付けたとき）
デバイス割当管理部５１は、記録媒体２を装着する旨の依頼を仮想デバイス管理部５２から受け付けた場合、装着すべき記録媒体２に関する情報及び記録媒体２の装着を促す通知を、割当先となる仮想マシン４のデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【００７２】
（キャッシュデータを保存した旨の通知を受け付けたとき）
デバイス割当管理部５１は、記録媒体２のデータをキャッシュデータとして保存した旨の通知を仮想デバイス管理部５２から受け付けた場合、外部記憶装置１１のデバイス状態を割当中状態から解放可能状態に更新する。【００７３】
デバイス割当管理部５１は、更に、割当待ちの仮想マシン４が存在するか否かを判定する。デバイス割当管理部５１は、割当待ちの仮想マシン４が存在していると判定した場合、解放可能状態にある外部記憶装置１１を、割当待ちの仮想マシン４に割り当てる。【００７４】
（アクセスエラーが生じた旨の通知を受け付けたとき）
デバイス割当管理部５１は、記録媒体２へのアクセスエラーが生じた旨の通知を仮想デバイス管理部５２から受け付けた場合、アクセスエラーが生じた旨の通知を、割当先となる仮想マシン４のデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【００７５】
（キャッシュデータにアクセスする旨の依頼を受け付けたとき）
デバイス割当管理部５１は、キャッシュ保存部５７に保存してあるキャッシュデータにアクセスする旨の依頼をキャッシュ管理部５３から受け付けた場合、アクセス先となるキャッシュデータに関する情報及びキャッシュデータにアクセスする旨の依頼を仮想デバイス管理部５２に出力する。【００７６】
デバイス割当管理部５１は、キャッシュデータにアクセスする旨の通知を仮想デバイス管理部５２から受け付けた場合、デバイス状態テーブル５４にアクセスする。デバイス割当管理部５１は、外部記憶装置１１のデバイス状態が割当中状態又は解放可能状態のいずれかに該当する場合であって、記録媒体２が外部記憶装置１１に装着されていると判定したとき、記録媒体２の取り外しを促す通知を、割当先となる仮想マシン４のデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【００７７】
デバイス割当管理部５１は、外部記憶装置１１のデバイス状態を割当可能状態に更新する。デバイス割当管理部５１は、キャッシュデータにアクセスする旨の通知をキャッシュ管理部５３に出力する。【００７８】
仮想デバイス管理部５２は、仮想デバイス５０を制御する。仮想デバイス管理部５２は、記録媒体２が外部記憶装置１１に装着されているか否かの装着情報 はリムーバブルデバイス群６ から通知される。【００７９】
（記録媒体２が装着された旨の通知を受け付けたとき）
仮想デバイス管理部５２は、記録媒体２が装着された旨の通知をリムーバブルデバイス群６から受け付けた場合、仮想デバイス５０のアクセス先をキャッシュ保存部５７から記録媒体２に変更する。仮想デバイス管理部５２は、外部記憶装置１１のデバイス状態を割当中状態に変更する旨の依頼をデバイス割当管理部５１に出力する。【００８０】
（デバイス状態を変更した旨の通知を受け付けたとき）
仮想デバイス管理部５２は、外部記憶装置１１のデバイス状態を変更した旨の通知をデバイス割当管理部５１から受け付けた場合、未反映データ処理をキャッシュ操作部５６に依頼しているか否かを判定する。仮想デバイス管理部５２は、未反映データ処理をキャッシュ操作部５６に依頼していると判定した場合、未反映データ処理をキャッシュ操作部５６に再度依頼する。【００８１】
一方、仮想デバイス管理部５２は、未反映データ処理をキャッシュ操作部５６に依頼していないと判定した場合、記録媒体２のデータをキャッシュデータとして保存する旨の依頼をキャッシュ操作部５６に出力する。【００８２】
仮想デバイス管理部５２は、キャッシュデータを保存した旨の通知をキャッシュ操作部５６から受け付けた場合、仮想デバイス５０のアクセス先を記録媒体２からキャッシュ保存部５７に変更する。仮想デバイス管理部５２は、キャッシュデータを保存した旨の通知をデバイス割当管理部５１に出力する。【００８３】
（記録媒体２が離脱した旨の通知を受け付けたとき）
仮想デバイス管理部５２は、記録媒体２が離脱した旨の通知をリムーバブルデバイス群６から受け付けた場合、受け付けた通知をデバイス割当管理部５１に出力する。【００８４】
（デバイス解放処理を依頼されたとき）
仮想デバイス管理部５２は、デバイス解放処理をデバイス割当管理部５１から依頼された場合、記録媒体２のデータをキャッシュデータとして保存することを中止する旨の依頼をキャッシュ操作部５６に出力する。【００８５】
（キャッシュデータを保存することを中止した旨の通知を受け付けたとき）
仮想デバイス管理部５２は、記録媒体２のデータをキャッシュデータとして保存することを中止した旨の通知をキャッシュ操作部５６から受け付けた場合、仮想デバイス５０のアクセス先をなしとする。仮想デバイス管理部５２は、外部記憶装置１１を解放した旨の通知をデバイス割当管理部５１に出力する。【００８６】
（未反映データ処理が完了した旨の通知を受け付けたとき）
仮想デバイス管理部５２は、未反映データ処理が完了した旨の通知をキャッシュ操作部５６から受け付けた場合、仮想デバイス５０のアクセス先をなしとする。仮想デバイス管理部５２は、仮想デバイス５０のアクセス先を変更した旨の通知をデバイス割当管理部５１に出力する。【００８７】
（記録媒体２を交換する旨の依頼を受け付けたとき）
仮想デバイス管理部５２は、装着すべき記録媒体２に関する情報及び記録媒体２を交換する旨の依頼をリムーバブルデバイス群６から受け付けた場合、装着すべき記録媒体２に関する情報及び記録媒体２を装着する旨の依頼をデバイス割当管理部５１に出力する。装着すべき記録媒体２に関する情報とは、メディアの種類、メディア識別子、データ開始位置、データ終了位置、キャッシュ保存場所及びキャッシュファイル名である。【００８８】
また、仮想デバイス管理部５２は、装着すべき記録媒体２に関する情報及び記録媒体２を交換する旨の依頼をキャッシュ操作部５６から受け付けた場合、装着すべき記録媒体２に関する情報及び記録媒体２を装着する旨の依頼をデバイス割当管理部５１に出力する。【００８９】
（記録媒体２の交換が完了した旨の通知を受け付けたとき）
仮想デバイス管理部５２は、外部記憶装置１１の記録媒体２の交換が完了した旨の通知をデバイス割当管理部５１から受け付けた場合、未反映データ処理をキャッシュ操作部５６に依頼する。【００９０】
仮想デバイス管理部５２は、未反映データ処理が完了した旨の通知をキャッシュ操作部５６から受け付けた場合、仮想デバイス５０のアクセス先を記録媒体２からキャッシュ保存部５７に変更する。仮想デバイス管理部５２は、仮想デバイス５０のアクセス先を変更した旨の通知をデバイス割当管理部５１に出力する。【００９１】
（アクセスエラーが生じた旨の通知を受け付けたとき）
仮想デバイス管理部５２は、アクセスエラーが生じた旨の通知を仮想デバイス５０を介して受け付けた場合、受け付けた通知をデバイス割当管理部５１に出力する。【００９２】
キャッシュ管理部５３は、キャッシュ保存部５７に保存してあるキャッシュデータに関する情報を仮想マシン４のキャッシュ利用申請部４２に出力する。キャッシュ管理部５３は、所定の時間が経過する毎にキャッシュ保存部５７の状況を確認する。キャッシュ管理部５３は、所定の期間保存してあるキャッシュデータ又は利用頻度の低いキャッシュデータをキャッシュ保存部５７から削除する。【００９３】
（キャッシュ利用申請を受け付けたとき）
キャッシュ管理部５３は、キャッシュ保存部５７に保存してあるキャッシュデータの利用申請を仮想マシン４のキャッシュ利用申請部４２から受け付けた場合、キャッシュデータに関する情報及び仮想デバイス５０のアクセス先をキャッシュデータに変更する旨の依頼をデバイス割当管理部５１に出力する。キャッシュ管理部５３は、仮想デバイス５０のアクセス先をキャッシュデータに変更した旨の通知をデバイス割当管理部５１から受け付けた場合、受け付けた通知を仮想マシン４のキャッシュ利用申請部４２に出力する。【００９４】
（キャッシュ解放申請を受け付けたとき）
キャッシュ管理部５３は、キャッシュ保存部５７に保存してあるキャッシュデータの解放申請を仮想マシン４のキャッシュ利用申請部４２から受け付けた場合、仮想デバイス５０のアクセス先を変更する旨の依頼をデバイス割当管理部５１に出力する。デバイス割当管理部５１は、仮想デバイス５０のアクセス先をなしとする。その結果、キャッシュデータは仮想マシン４から解放される。【００９５】
キャッシュ管理部５３は、仮想デバイス５０のアクセス先を変更した旨の通知をデバイス割当管理部５１から受け付けた場合、キャッシュデータを解放した旨の通知を仮想マシン４のキャッシュ利用申請部４２に出力する。【００９６】
図１０はキャッシュ管理テーブル５５のフォーマット例を示す図である。キャッシュ管理テーブル５５は、未反映データに関する情報を格納するテーブルである。未反映データは、記録媒体２に書き込まれるべきデータであって、未だ記録媒体２に反映されていないデータである。【００９７】
未反映データに関する情報は、仮想マシン名、メディアの種類、メディア識別子、データの開始位置、データの終了位置、キャッシュ保存場所及びキャッシュファイル名である。当該データは、未反映データが記録媒体２に書き込まれた場合、キャッシュ管理テーブル５５から削除される。【００９８】
仮想マシン名は、未反映データを有する仮想マシン４を識別する情報である。メディアの種類は、例えば、ＣＤ−Ｒ、ＤＶＤ−ＲＡＭ又はＵＳＢメモリである。メディア識別子は、記録媒体２のボリュームネームなど、記録媒体２を識別する情報である。【００９９】
データ開始位置は、記録媒体２における、未反映データの書き込み開始位置である。データ終了位置は、記録媒体２における、未反映データの書き込み終了位置である。キャッシュ保存場所は、キャッシュ保存部５７における、保存してあるディレクトリを識別する情報である。キャッシュファイル名は、キャッシュ保存部５７における、キャッシュデータのファイル名である。【０１００】
キャッシュ操作部５６は、記録媒体２のデータの保存処理及び未反映データ処理を実行する。【０１０１】
（キャッシュデータを保存する旨の依頼を受け付けたとき）
キャッシュ操作部５６は、記録媒体２のデータをキャッシュデータとして保存する旨の依頼を仮想デバイス管理部５２から受け付けた場合、キャッシュデータがキャッシュ保存部５７に保存されているか否かを判定する。【０１０２】
キャッシュ操作部５６は、記録媒体２のデータがキャッシュ保存部５７に保存されていないと判定した場合、外部記憶装置１１に装着してある記録媒体２のデータをキャッシュデータとしてキャッシュ保存部５７に保存する。キャッシュ保存部５７は、キャッシュデータを保存した旨の通知を仮想デバイス管理部５２に出力する。【０１０３】
一方、キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されていると判定した場合、更に記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分があるか否かを判定する。キャッシュ操作部５６は、差分がないと判定した場合、キャッシュデータを保存した旨の通知を仮想デバイス管理部５２に出力する。【０１０４】
一方、キャッシュ操作部５６は、差分があると判定した場合、差分データでキャッシュデータを更新する。【０１０５】
また、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されているか否かを判定する。キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合、未反映データに関する情報をキャッシュ管理テーブル５５に書き込む。キャッシュ操作部５６は、未反映データに関する情報をキャッシュ管理テーブル５５に書き込んだ旨の通知を仮想デバイス管理部５２に出力する。【０１０６】
一方、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていると判定した場合、未反映データを記録媒体２に書き込む。キャッシュ操作部５６は、未反映データ処理が完了した旨の通知を仮想デバイス管理部５２に出力する。【０１０７】
（未反映データ処理を依頼されたとき）
キャッシュ操作部５６は、未反映データ処理を仮想デバイス管理部５２から依頼された場合、未反映データに関する情報がキャッシュ管理テーブル５５に格納されているか否かを判定する。ここでいう依頼は、外部記憶装置１１に装着してある記録媒体２に未反映データを書き込むための依頼である。【０１０８】
キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合、未反映データ処理が完了した旨の通知を仮想デバイス管理部５２に出力する。【０１０９】
一方、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていると判定した場合、未反映データを記録媒体２に書き込む。キャッシュ操作部５６は、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除する。キャッシュ操作部５６は、未反映データ処理が完了した旨の通知を仮想デバイス管理部５２に出力する。【０１１０】
また、キャッシュ操作部５６は、未反映データ処理を仮想デバイス管理部５２から依頼された場合、未反映データに関する情報がキャッシュ管理テーブル５５に格納されているか否かを判定する。ここでいう依頼は、未反映データの書込先を有する記録媒体２に未反映データを書き込むための依頼である。【０１１１】
未反映データの書込先は、仮想マシン４により指示された記憶領域である。キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合、未反映データ処理が完了した旨の通知を仮想デバイス管理部５２に出力する。【０１１２】
一方、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていると判定した場合、記録媒体２が外部記憶装置１１に装着されているか否かを判定する。【０１１３】
キャッシュ操作部５６は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合、未反映データを書き込むべき記録媒体２に関する情報及び記録媒体２を交換する旨の依頼を仮想デバイス管理部５２に出力する。未反映データを書き込むべき記録媒体２は、仮想マシン４がアクセス可能な記録媒体２である。仮想デバイス管理部５２は、記録媒体２が外部記憶装置１１に装着されたと判定した場合、未反映データ処理をキャッシュ操作部５６に再依頼する。【０１１４】
キャッシュ操作部５６は、未反映データ処理を仮想デバイス管理部５２から再依頼された場合、又は記録媒体２が外部記憶装置１１に装着されていると判定した場合、装着してある記録媒体２に未反映データを書き込む。キャッシュ操作部５６は、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除する。キャッシュ操作部５６は、未反映データ処理が完了した旨の通知を仮想デバイス管理部５２に出力する。【０１１５】
（キャッシュデータを保存することを中止する旨の依頼を受け付けたとき）
キャッシュ操作部５６は、記録媒体２のデータをキャッシュデータとして保存することを中止する旨の依頼を仮想デバイス管理部５２から受け付けた場合、キャッシュデータを保存することを中止し、保存途中のキャッシュデータを削除する。キャッシュ操作部５６は、キャッシュデータを保存することを中止した旨の通知を仮想デバイス管理部５２に出力する。【０１１６】
キャッシュ保存部５７は、ＣＰＵ１０の指示に従い、外部記憶装置１１に装着してある記録媒体２のデータをキャッシュデータとして保存する。【０１１７】
情報処理装置１は、上述した資源を用いて以下の処理を実行する。図１１は基本的なデバイス割当処理の手順を示すフローチャートである。仮想マシン４は、外部記憶装置１１の利用申請を受け付ける。仮想マシン４は、利用申請を仮想マシンモニタ５に出力する。【０１１８】
仮想マシンモニタ５は、利用申請を仮想マシン４から受け付ける（Ｓ１０１）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態をデバイス状態テーブル５４から取得する（Ｓ１０２）。仮想マシンモニタ５は、取得したデバイス状態が割当中状態であるか否かを判定する（Ｓ１０３）。【０１１９】
仮想マシンモニタ５は、デバイス状態が割当中状態であると判定した場合（Ｓ１０３でＹＥＳ）、利用申請があった仮想マシン名を、割当待ちの仮想マシン情報に追加する。仮想マシンモニタ５は、外部記憶装置１１が割当中状態である旨の通知を、利用申請があった仮想マシン４に出力する（Ｓ１０４）。情報処理装置１は、処理を終了する。【０１２０】
一方、仮想マシンモニタ５は、デバイス状態が割当中状態でないと判定した場合（Ｓ１０３でＮＯ）、更にデバイス状態が割当可能状態であるか否かを判定する（Ｓ１０５）。仮想マシンモニタ５は、デバイス状態が割当可能状態であると判定した場合（Ｓ１０５でＹＥＳ）、利用申請があった仮想マシン４に外部記憶装置１１を割り当て、ステップＳ１０９に進む。【０１２１】
一方、仮想マシンモニタ５は、デバイス状態が割当可能状態でないと判定した場合（Ｓ１０５でＮＯ）、利用申請があった、割当先以外の仮想マシン４に外部記憶装置１１を新たに割り当てる旨の通知を割当先である仮想マシン４に出力する（Ｓ１０６）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０１２２】
仮想マシンモニタ５は、未反映データ処理をキャッシュ操作部５６に依頼する（Ｓ１０７）。仮想マシンモニタ５は、待機状態となり、キャッシュ操作部５６が未反映データ処理を実行する（Ｓ１０８）。未反映データ処理の手順は、後述にて説明する。仮想マシンモニタ５は、未反映データ処理が完了した後、ステップＳ１０９に進む。【０１２３】
仮想マシンモニタ５は、デバイス状態が割当可能状態であると判定した場合（Ｓ１０５でＹＥＳ）又は未反映データ処理が完了した場合（Ｓ１０８）、外部記憶装置１１のデバイス状態を割当中状態に変更する（Ｓ１０９）。仮想マシンモニタ５は、外部記憶装置１１を割り当てた旨の通知を、利用申請があった仮想マシン４に出力する（Ｓ１１０）。仮想マシンモニタ５は、処理を終了する。【０１２４】
サブルーチンとなる未反映データ処理の手順について説明する。図１２は未反映データ処理の手順を示すフローチャートである。仮想マシンモニタ５は、未反映データ処理をキャッシュ操作部５６に依頼する。【０１２５】
キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されているか否かを判定する（Ｓ２０１）。キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合（Ｓ２０１でＮＯ）、未反映データ処理が完了した旨の通知を仮想マシンモニタ５に出力する（Ｓ２０２）。仮想マシンモニタ５は、メインルーチンに戻る。【０１２６】
一方、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていると判定した場合（Ｓ２０１でＹＥＳ）、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ２０３）。キャッシュ操作部５６は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ２０３でＹＥＳ）、装着してある記録媒体２に未反映データを書き込む（Ｓ２０４）。【０１２７】
なお、未反映データを書き込むべき記録媒体２は、未反映データの書込先を有する記録媒体２である。未反映データの書込先は、仮想マシン４により指示された記憶領域である。キャッシュ操作部５６は、指示された記憶領域が存在するか否かを仮想デバイス５０に問い合わせる。キャッシュ操作部５６は、指示された記憶領域が存在している旨の通知を仮想デバイス５０から受け付けた場合、装着してある記録媒体２が、未反映データを書き込むべき記録媒体２であると判定する。【０１２８】
キャッシュ操作部５６は、未反映データ処理が完了した旨の通知を仮想マシンモニタ５に出力する（Ｓ２０５）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を割当中状態に変更する。仮想マシンモニタ５は、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除する旨の依頼をキャッシュ操作部５６に出力する。【０１２９】
キャッシュ操作部５６は、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除する（Ｓ２０６）。仮想マシンモニタ５は、メインルーチンに戻る。【０１３０】
一方、キャッシュ操作部５６は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ２０３でＮＯ）、装着すべき記録媒体２に関する情報及び記録媒体２を交換する旨の依頼を仮想マシンモニタ５に出力する（Ｓ２０７）。【０１３１】
キャッシュ操作部５６は、指示された記憶領域が存在していない旨の通知を仮想デバイス５０から受け付けた場合、記録媒体２が外部記憶装置１１に装着されていないと判定する。記録媒体２が装着されていないとは、物理的に装着されていない場合、及び未反映データを書き込むべき記録媒体２が装着されていない場合をいう。【０１３２】
仮想マシンモニタ５は、装着すべき記録媒体２に関する情報及び記録媒体２の装着を促す旨の通知を仮想マシン４に出力する。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０１３３】
キャッシュ操作部５６は、記録媒体２が交換されたか否かを判定する（Ｓ２０８）。キャッシュ操作部５６は、記録媒体２が交換されていないと判定した場合（Ｓ２０８でＮＯ）、ステップＳ２０８の判定を繰り返す。【０１３４】
一方、キャッシュ操作部５６は、記録媒体２が交換されたと判定した場合（Ｓ２０８でＹＥＳ）、ステップＳ２０１に戻り、未反映データ処理を繰り返す。キャッシュ操作部５６は、未反映データ処理を仮想マシンモニタ５から再度依頼された場合、記録媒体２が交換されたと判定する。【０１３５】
このように、情報処理装置１は、仮想デバイス５０が扱う未反映データを、物理資源である記録媒体２に書き込むことができる。【０１３６】
図１３及び図１４は記録媒体２が装着されたときの基本的な制御処理の手順を示すフローチャートである。外部記憶装置１１は、記録媒体２が装着されているか否かの情報を仮想マシンモニタ５に出力する。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ３０１）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ３０１でＮＯ）、ステップＳ３０１の判定を繰り返す。【０１３７】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ３０１でＹＥＳ）、仮想デバイス５０のアクセス先を記録媒体２に変更する（Ｓ３０２）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を割当中状態に変更する（Ｓ３０３）。仮想マシンモニタ５は、記録媒体２のデータをキャッシュデータとして保存する旨の依頼をキャッシュ操作部５６に出力する（Ｓ３０４）。【０１３８】
キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されているか否かを判定する（Ｓ３０５）。キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されていないと判定した場合（Ｓ３０５でＮＯ）、外部記憶装置１１に装着してある記録媒体２のデータをキャッシュデータとしてキャッシュ保存部５７に保存する（Ｓ３０６）。キャッシュ操作部５６は、ステップＳ３１２に進む。【０１３９】
一方、キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されていると判定した場合（Ｓ３０５でＹＥＳ）、未反映データに関する情報がキャッシュ管理テーブル５５に格納されているか否かを判定する（Ｓ３０７）。キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合（Ｓ３０７でＮＯ）、ステップＳ３１０ に進む。【０１４０】
一方、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていると判定した場合（Ｓ３０７でＹＥＳ）、装着してある記録媒体２に未反映データを書き込む（Ｓ３０８）。キャッシュ操作部５６は、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除する（Ｓ３０９）。【０１４１】
キャッシュ操作部５６は、未反映データに関する情報が格納されていないと判定した場合（Ｓ３０７でＮＯ）、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除した場合（Ｓ３０９）、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分があるか否かを判定する（Ｓ３１０）。キャッシュ操作部５６は、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分がないと判定した場合（Ｓ３１０でＮＯ）、ステップＳ３１２に進む。【０１４２】
一方、キャッシュ操作部５６は、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分があると判定した場合（Ｓ３１０でＹＥＳ）、キャッシュデータを差分データで更新する（Ｓ３１１）。キャッシュ操作部５６は、ステップＳ３１２に進む。【０１４３】
キャッシュ操作部５６は、データをキャッシュデータとしてキャッシュ保存部５７に保存した場合（Ｓ３０６）、記録媒体２のデータとキャッシュデータとの間に差分がないと判定した場合（Ｓ３１０でＮＯ）、キャッシュデータを差分データで更新した場合（Ｓ３１１）、キャッシュデータを保存した旨の通知を仮想マシンモニタ５に出力する（Ｓ３１２）。【０１４４】
仮想マシンモニタ５は、仮想デバイス５０のアクセス先をキャッシュ保存部５７に変更する（Ｓ３１３）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を解放可能状態に変更する（Ｓ３１４）。仮想マシンモニタ５は、割当待ちの仮想マシン４が存在するか否かを判定する（Ｓ３１５）、仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していないと判定した場合（Ｓ３１５でＮＯ）、処理を終了する。【０１４５】
一方、仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していると判定した場合（Ｓ３１５でＹＥＳ）、割当待ちの仮想マシン４に外部記憶装置１１を割り当てる（Ｓ３１６）。外部記憶装置１１の割り当ては、基本的なデバイス割当処理に準ずる。仮想マシンモニタ５は、処理を終了する。【０１４６】
このように、情報処理装置１は、記録媒体２を装着してある外部記憶装置１１を早期に割当先の仮想マシン４から解放することができる。情報処理装置１は、解放した外部記憶装置１１を割当待ちの仮想マシンに迅速に割り当てることができる。【０１４７】
図１５は記録媒体２に対する基本的な読み書き処理の手順を示すフローチャートである。仮想マシン４は、アプリケーションソフトウェアに従い、仮想デバイス用ドライバ４１を介して仮想デバイス５０にアクセスする。【０１４８】
仮想デバイス５０は、アプリケーションソフトウェアの要求がデータの書き込みであるか否かを判定する（Ｓ４０１）。仮想デバイス５０は、要求がデータの書き込みでないと判定した場合（Ｓ４０１でＮＯ）、自機のアクセス先がキャッシュ保存部５７であるか否かを判定する（Ｓ４０２）。【０１４９】
仮想デバイス５０は、自機のアクセス先について、仮想マシンモニタ５に問い合わせる 。仮想デバイス５０は、アクセス先がキャッシュ保存部５７でないと判定した場合（Ｓ４０２でＮＯ）、記録媒体２からデータを読み出す（Ｓ４０３）。仮想デバイス５０は、データの読み出しが完了した旨の通知を仮想マシン４に出力する（Ｓ４１３）。仮想デバイス５０は、処理を終了する。【０１５０】
一方、仮想デバイス５０は、自機のアクセス先がキャッシュ保存部５７であると判定した場合（Ｓ４０２でＹＥＳ）、キャッシュ保存部５７からデータを読み出す（Ｓ４０４）。仮想デバイス５０は、データの読み出しが完了した旨の通知を仮想マシン４に出力する（Ｓ４１３）。仮想デバイス５０は、処理を終了する。【０１５１】
一方、仮想デバイス５０は、要求がデータの書き込みであると判定した場合（Ｓ４０１でＹＥＳ）、自機のアクセス先があるか否かを判定する（Ｓ４０５）。仮想デバイス５０は、自機のアクセス先がないと判定した場合（Ｓ４０５でＹＥＳ）、アクセスエラーが生じた旨の通知を仮想マシンモニタ５に出力する（Ｓ４１０）。仮想マシンモニタ５は、受け付けた通知を仮想マシン４に出力する。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。仮想デバイス５０は、処理を終了する。【０１５２】
仮想デバイス５０は、自機のアクセス先があると判定した場合（Ｓ４０５でＮＯ）、自機のアクセス先がキャッシュ保存部５７であるか否かを判定する（Ｓ４０６）。仮想デバイス５０は、自機のアクセス先がキャッシュ保存部５７であると判定した場合（Ｓ４０６でＹＥＳ）、キャッシュ保存部５７にデータを書き込む（Ｓ４０７）。キャッシュ保存部５７に書き込まれたデータは、記録媒体２に書き込まれるまでの間、未反映データとなる。【０１５３】
仮想マシンモニタ５は、未反映データに関する情報をキャッシュ管理テーブル５５に書き込む（Ｓ４０８）。仮想デバイス５０は、データの書き込みが完了した旨の通知を仮想マシン４に出力する（Ｓ４１３）。仮想デバイス５０は、処理を終了する。【０１５４】
一方、仮想デバイス５０は、自機のアクセス先がキャッシュ保存部５７でないと判定した場合（Ｓ４０６でＮＯ）、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ４０９）。【０１５５】
仮想デバイス５０は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ４０９でＮＯ）、アクセスエラーが生じた旨の通知を仮想マシンモニタ５に出力する（Ｓ４１０）。仮想マシンモニタ５は、受け付けた通知を仮想マシン４に出力する。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。仮想マシンモニタ５は、処理を終了する。【０１５６】
一方、仮想デバイス５０は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ４０９でＹＥＳ）、キャッシュ保存部５７にデータを書き込む（Ｓ４１１）。仮想デバイス５０は、記録媒体２にデータを書き込む（Ｓ４１２）。仮想デバイス５０は、データの書き込みが完了した旨の通知を仮想マシン４に出力する（Ｓ４１３）。仮想デバイス５０は、処理を終了する。【０１５７】
図１６は基本的なデバイス解放処理の手順を示すフローチャートである。仮想マシン４は、外部記憶装置１１の解放申請を受け付ける。仮想マシン４は、解放申請を仮想マシンモニタ５に出力する。仮想マシンモニタ５は、仮想マシン４から出力された解放申請を受け付ける（Ｓ５０１）。【０１５８】
仮想マシンモニタ５は、外部記憶装置１１のデバイス状態をデバイス状態テーブル５４から取得する（Ｓ５０２）。仮想マシンモニタ５は、取得したデバイス状態が割当可能状態であるか否かを判定する（Ｓ５０３）。【０１５９】
仮想マシンモニタ５は、デバイス状態が割当可能状態であると判定した場合（Ｓ５０３でＹＥＳ）、外部記憶装置１１を解放した旨の通知を仮想マシン４に出力する（Ｓ５１３）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。仮想マシンモニタ５は、処理を終了する。【０１６０】
仮想マシンモニタ５は、外部記憶装置１１のデバイス状態が割当可能状態でないと判定した場合（Ｓ５０３でＮＯ）、外部記憶装置１１のデバイス状態が解放可能状態であるか否かを判定する（Ｓ５０４）。【０１６１】
仮想マシンモニタ５は、外部記憶装置１１のデバイス状態が解放可能状態でないと判定した場合（Ｓ５０４でＮＯ）、記録媒体２のデータをキャッシュデータとして保存することを中止する旨の依頼をキャッシュ操作部５６に出力する（Ｓ５０５）。キャッシュ操作部５６は、記録媒体２のデータを保存することを中止し、保存途中のキャッシュデータを削除する。キャッシュ操作部５６は、キャッシュデータを保存することを中止した旨の通知を仮想マシンモニタ５に出力する。【０１６２】
仮想マシンモニタ５は、仮想デバイス５０のアクセス先をなしに変更する（Ｓ５０６）。仮想マシンモニタ５は、ステップＳ５０９へ進む。【０１６３】
一方、仮想マシンモニタ５は、外部記憶装置１１のデバイス状態が解放可能状態であると判定した場合（Ｓ５０４でＹＥＳ）、未反映データ処理をキャッシュ操作部５６に依頼する。【０１６４】
仮想マシンモニタ５は、待機状態となり、キャッシュ操作部５６が未反映データ処理を実行する（Ｓ５０７）。仮想マシンモニタ５は、未反映データ処理が完了した後、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ５０８）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ５０８でＮＯ）、ステップＳ５１１に進む。【０１６５】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ５０８でＹＥＳ）、ステップＳ５０９へ進む。【０１６６】
仮想マシンモニタ５は、仮想デバイス５０のアクセス先をなしに変更した場合（Ｓ５０６）又は記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ５０８でＹＥＳ）、記録媒体２の取り外しを促す通知を仮想マシン４に出力する（Ｓ５０９）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０１６７】
仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したか否かを判定する（Ｓ５１０）。仮想マシンモニタ５は、記録媒体２が離脱したか否かの情報をリムーバブルデバイス群６から受け付ける。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ５１０でＮＯ）、ステップＳ５１０の判定を繰り返す。【０１６８】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したと判定した場合（Ｓ５１０でＹＥＳ）、ステップＳ５１１に進む。【０１６９】
仮想マシンモニタ５は、記録媒体２が装着されていないと判定した場合（Ｓ５０８でＮＯ）又は記録媒体２が離脱したと判定した場合（Ｓ５１０でＹＥＳ）、外部記憶装置１１のデバイス状態を割当可能状態に変更する（Ｓ５１１）。【０１７０】
仮想マシンモニタ５は、キャッシュデータを削除する旨の依頼をキャッシュ操作部５６に出力する（Ｓ５１２）。キャッシュ操作部５６は、キャッシュデータをキャッシュ保存部５７から削除する。キャッシュ操作部５６は、キャッシュデータをキャッシュ保存部５７から削除した旨の通知を仮想マシンモニタ５に出力する。【０１７１】
仮想マシンモニタ５は、外部記憶装置１１を解放した旨の通知を仮想マシン４に出力する（Ｓ５１３）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。仮想マシンモニタ５は、処理を終了する。【０１７２】
このように、情報処理装置１は、割当先の仮想マシン４からの解放要求により、外部記憶装置１１を割当先の仮想マシン４から解放することができる。【０１７３】
図１７は記録媒体２が離脱したときの制御処理の手順を示すフローチャートである。外部記憶装置１１は、記録媒体２が離脱した旨の通知を仮想マシンモニタ５に出力する。【０１７４】
仮想マシンモニタ５は、記録媒体２が離脱した旨の通知を受け付ける（Ｓ６０１）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態をデバイス状態テーブル５４から取得する（Ｓ６０２）。【０１７５】
仮想マシンモニタ５は、取得したデバイス状態が割当可能状態又は解放可能状態のいずれかに該当するか否かを判定する（Ｓ６０３）。仮想マシンモニタ５は、デバイス状態が割当可能状態又は解放可能状態のいずれかに該当すると判定した場合（Ｓ６０３でＹＥＳ）、処理を終了する。【０１７６】
一方、仮想マシンモニタ５は、デバイス状態が割当可能状態及び解放可能状態のいずれにも該当していないと判定した場合（Ｓ６０３でＮＯ）、記録媒体２のデータをキャッシュデータとして保存することを中止する旨の依頼をキャッシュ操作部５６に出力する（Ｓ６０４）。キャッシュ操作部５６は、記録媒体２のデータを保存することを中止し、保存途中のキャッシュデータを削除する。キャッシュ操作部５６は、キャッシュデータの保存を中止した旨の通知を仮想マシンモニタ５に出力する。【０１７７】
仮想マシンモニタ５は、仮想デバイス５０のアクセス先をなしに変更する（Ｓ６０５）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱した旨の通知を仮想マシン４に出力する（Ｓ６０６）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を解放可能状態に変更する（Ｓ６０７）。仮想マシンモニタ５は、処理を終了する。【０１７８】
このように、情報処理装置１は、記録媒体２が離脱した外部記憶装置１１を割当先の仮想マシン４から早期に解放する。情報処理装置１は、解放した外部記憶装置１１を割当待ちの仮想マシン４に迅速に割り当てることができる。以上、実施の形態１について説明した。【０１７９】
実施の形態２．
また、開示の情報処理装置は、外部記憶装置１１を仮想マシン４に割り当てるときに、記録媒体２の属性を考慮するようにしてもよい。当該内容を実施の形態２として説明する。【０１８０】
実施の形態２における情報処理装置１及び周辺機器の構成は、実施の形態１における情報処理装置１及び周辺機器の構成と同様であるので、対応する箇所に同一の符号を付してその説明を省略する。【０１８１】
図１８は実施の形態２における情報処理装置１の機能ブロック図である。実施の形態２における情報処理装装置１が有する機能は、実施の形態１における情報処理装置１が有する機能に加え、メディア属性判断部５８を有する。メディア属性判断部５８は、ＣＰＵ１０の動作により機能する。【０１８２】
メディア属性判断部５８は、外部記憶装置１１に装着してある記録媒体２の属性を取得する。記録媒体２の属性の一例は、データの書き込みが不可能なことである。メディア属性判断部５８は、属性結果をキャッシュ操作部５６に出力する。【０１８３】
キャッシュ操作部５６は、データの書き込みが不可能である旨の属性をメディア属性判断部５８から受け付けた場合、キャッシュデータを保存した旨の通知を仮想デバイス管理部５２に出力する。【０１８４】
仮想デバイス管理部５２は、受け付けた通知をデバイス割当管理部５１に出力する。デバイス割当管理部５１は、記録媒体２の取り外しを促す通知をデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０１８５】
情報処理装置１は、上述した資源を用いて以下の処理を実行する。図１９及び図２０は所定の属性を有する記録媒体２が装着されたときの制御処理の手順を示すフローチャートである。外部記憶装置１１は、自機に記録媒体２が装着されているか否かの情報を仮想マシンモニタ５に出力する。【０１８６】
仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ７０１）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ７０１でＮＯ）、ステップＳ７０１の判定を繰り返す。【０１８７】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ７０１でＹＥＳ）、仮想デバイス５０のアクセス先を記録媒体２に変更する（Ｓ７０２）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を割当中状態に変更する（Ｓ７０３）。仮想マシンモニタ５は、記録媒体２のデータをキャッシュデータとして保存する旨の依頼をキャッシュ操作部５６に出力する（Ｓ７０４）。【０１８８】
キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されているか否かを判定する（Ｓ７０５）。キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されていないと判定した場合（Ｓ７０５でＮＯ）、外部記憶装置１１に装着してある記録媒体２のデータをキャッシュデータとしてキャッシュ保存部５７に保存する（Ｓ７０６）。キャッシュ操作部５６は、ステップＳ７１２に進む。【０１８９】
一方、キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されていると判定した場合（Ｓ７０５でＹＥＳ）、未反映データに関する情報がキャッシュ管理テーブル５５に格納されているか否かを判定する（Ｓ７０７）。キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合（Ｓ７０７でＮＯ）、ステップＳ７１０に進む。【０１９０】
一方、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていると判定した場合（Ｓ７０７でＹＥＳ）、装着してある記録媒体２に未反映データを書き込む（Ｓ７０８）。キャッシュ操作部５６は、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除する（Ｓ７０９）。【０１９１】
キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合（Ｓ７０７でＮＯ）、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除した場合（Ｓ７０９）、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分があるか否かを判定する（Ｓ７１０）。キャッシュ操作部５６は、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分がないと判定した場合（Ｓ７１０でＮＯ）、ステップＳ７１２に進む。【０１９２】
一方、キャッシュ操作部５６は、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分があると判定した場合（Ｓ７１０でＹＥＳ）、キャッシュデータを差分データで更新する（Ｓ７１１）。キャッシュ操作部５６は、ステップＳ７１２に進む。【０１９３】
キャッシュ操作部５６は、記録媒体２のデータをキャッシュデータとしてキャッシュ保存部５７に保存した場合（Ｓ７０６）、記録媒体２のデータとキャッシュデータとの間に差分がないと判定した場合（Ｓ７１０でＮＯ）又はキャッシュデータを差分データで更新した場合（Ｓ７１１）、記録媒体２の属性を判定する旨の依頼をメディア属性判断部５８に出力する。【０１９４】
メディア属性判断部５８は、記録媒体２の属性が、データの書き込み可能であるか否かを判定する（Ｓ７１２）。メディア属性判断部５８は、記録媒体２の属性が、データの書き込み可能であると判定した場合（Ｓ７１２でＹＥＳ）、処理を終了する。【０１９５】
一方、メディア属性判断部５８は、記録媒体２の属性が、データの書き込み不可能であると判定した場合（Ｓ７１２でＮＯ）、記録媒体２の属性をキャッシュ操作部５６に出力する。【０１９６】
キャッシュ操作部５６は、記録媒体２の属性及びキャッシュデータを保存した旨の通知を仮想マシンモニタ５に出力する（Ｓ７１３）。【０１９７】
仮想マシンモニタ５は、仮想デバイス５０のアクセス先をキャッシュ保存部５７に変更する（Ｓ７１４）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ７１５）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したと判定した場合（Ｓ７１５でＮＯ）、ステップＳ７１８に進む。【０１９８】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ７１５でＹＥＳ）、記録媒体２の取り外しを促す通知を仮想マシン４に出力する（Ｓ７１６）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０１９９】
仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したか否かを判定する（Ｓ７１７）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１に装着されていると判定した場合（Ｓ７１７でＮＯ）、ステップＳ７１７の判定を繰り返す。【０２００】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したと判定した場合（Ｓ７１７でＹＥＳ）、ステップＳ７１８に進む。【０２０１】
仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したと判定した場合（Ｓ７１５でＮＯ又はＳ７１７でＹＥＳ）、外部記憶装置１１のデバイス状態を割当可能状態に変更する（Ｓ７１８）。【０２０２】
仮想マシンモニタ５は、外部記憶装置１１を解放した旨の通知を仮想マシン４に出力する（Ｓ７１９）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０２０３】
仮想マシンモニタ５は、割当待ちの仮想マシン４が存在するか否かを判定する（Ｓ７２０）。仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していないと判定した場合（Ｓ７２０でＮＯ）、処理を終了する。【０２０４】
一方、仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していると判定した場合（Ｓ７２０でＹＥＳ）、割当待ちの仮想マシン４に外部記憶装置１１を割り当てる（Ｓ７２１）。外部記憶装置１１の割り当ては、基本的なデバイス割当処理に準ずる。仮想マシンモニタ５は、処理を終了する。【０２０５】
また、情報処理装置１は、上述した処理以外に、基本的なデバイス割当処理、未反映データ処理、記録媒体２が装着されたときの基本的な制御処理、記録媒体２に対する基本的な読み書き処理、基本的なデバイス解放処理、及び記録媒体２が離脱したときの制御処理を実行する。なお、当該処理の手順は、実施の形態１における情報処理装置１が実行する処理の手順と同様であるので、対応する手順に同一のステップ番号を付してその説明を省略する。【０２０６】
このように、情報処理装置１は、データの書き込み不可能な記録媒体２を外部記憶装置１１から離脱するようにエンドユーザに報知する。情報処理装置１は、記録媒体２が離脱した外部記憶装置１１を割当先の仮想マシンから迅速に解放する。以上、実施の形態２について説明した。【０２０７】
実施の形態３．
また、開示の情報処理装置は、外部記憶装置１１を仮想マシン４に割り当てる場合、記録媒体２が利用可能であるか否かを考慮するようにしてもよい。当該内容を実施の形態３として説明する。【０２０８】
実施の形態３における情報処理装置１及び周辺機器の構成は、実施の形態１における情報処理装置１及び周辺機器の構成と同様であるので、対応する箇所に同一の符号を付してその説明を省略する。【０２０９】
図２１は実施の形態３における情報処理装置１の機能ブロック図である。実施の形態３における情報処理装置１が有する機能は、実施の形態１における情報処理装置１が有する機能に加え、メディア属性判断部５９を有する。メディア属性判断部５９は、ＣＰＵ１０の動作により機能する。【０２１０】
メディア属性判断部５９は、外部記憶装置１１に問い合わせをおこない、装着してある記録媒体２の属性を取得する。実施の形態３における、記録媒体２の属性の一例は、記録媒体２へアクセスするために本人認証が必要な場合であって、当該認証が成功しないために記録媒体２を利用することができないことである。メディア属性判断部５９は、属性結果をデバイス割当管理部５１に出力する。【０２１１】
デバイス割当管理部５１は、記録媒体２を利用することができない旨の属性をメディア属性判断部５９から受け付けた場合、記録媒体２の取り外しを促す通知をデバイス利用申請部４３に出力する。デバイス利用申請部４３は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０２１２】
情報処理装置１は、上述した資源を用いて以下の処理を実行する。図２２は所定の属性を有する記録媒体２が装着されたときの制御処理の手順を示すフローチャートである。外部記憶装置１１は、記録媒体２が装着されているか否かの情報を仮想マシンモニタ５に出力する。【０２１３】
仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ８０１）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ８０１でＮＯ）、ステップＳ８０１の判定を繰り返す。【０２１４】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ８０１でＹＥＳ）、仮想デバイス５０のアクセス先を記録媒体２に変更する（Ｓ８０２）。仮想マシンモニタ５は、記録媒体２の属性を判定する旨の依頼をメディア属性判断部５９に出力する。【０２１５】
メディア属性判断部５９は、記録媒体２の属性が、記録媒体２を利用することができる旨の属性であるか否かを判定する（Ｓ８０３）。メディア属性判断部５９は、記録媒体２の属性が、記録媒体２を利用することができる旨の属性であると判定した場合（Ｓ８０３でＹＥＳ）、後述のステップＳ８０９に進む。但し、仮想マシンモニタ５及びキャッシュ操作部５６は、ステップＳ８０９を実行する前に、上述したステップＳ３０３〜３１４の処理を実行する。【０２１６】
一方、メディア属性判断部５９は、記録媒体２の属性が、記録媒体２を利用することができない旨の属性であると判定した場合（Ｓ８０３でＮＯ）、記録媒体２の属性を仮想マシンモニタ５に出力する。仮想マシンモニタ５は、仮想デバイス５０のアクセス先をなしに変更する。【０２１７】
そして、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ８０４）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したと判定した場合（Ｓ８０４でＮＯ）、ステップＳ８０７に進む。【０２１８】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ８０４でＹＥＳ）、記録媒体２の取り外しを促す通知を仮想マシン４に出力する（Ｓ８０５）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０２１９】
仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したか否かを判定する（Ｓ８０６）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ８０６でＮＯ）、ステップＳ８０６の判定を繰り返す。【０２２０】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したと判定した場合（Ｓ８０６でＹＥＳ）、ステップＳ８０７に進む。【０２２１】
仮想マシンモニタ５は、記録媒体２が外部記憶装置１１から離脱したと判定した場合（Ｓ８０４でＮＯ又はＳ８０６でＹＥＳ）、外部記憶装置１１のデバイス状態を割当可能状態に変更する（Ｓ８０７）。仮想マシンモニタ５は、外部記憶装置１１を解放した旨の通知を仮想マシン４に出力する（Ｓ８０８）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０２２２】
仮想マシンモニタ５は、割当待ちの仮想マシン４が存在するか否かを判定する（Ｓ８０９）。仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していないと判定した場合（Ｓ８０９でＮＯ）、処理を終了する。【０２２３】
一方、仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していると判定した場合（Ｓ８０９でＹＥＳ）、割当待ちの仮想マシン４に外部記憶装置１１を割り当てる（Ｓ８１０）。外部記憶装置１１の割り当ては、基本的なデバイス割当処理に準ずる。仮想マシンモニタ５は、処理を終了する。【０２２４】
このように、情報処理装置１は、利用不可能な記録媒体２を外部記憶装置１１から離脱するようにエンドユーザに報知する。情報処理装置１は、記録媒体２が離脱した外部記憶装置１１を割当先の仮想マシンから解放する。【０２２５】
図２３及び図２４ は外部記憶装置１１が複数存在しているときのデバイス割当処理の手順を示すフローチャートである。エンドユーザは、デバイス利用申請画面を介して任意の外部記憶装置１１を選択する。仮想マシン４は、選択された外部記憶装置１１の利用申請を受け付ける。仮想マシン４は、外部記憶装置１１の利用申請を仮想マシンモニタ５に出力する。【０２２６】
仮想マシンモニタ５は、仮想マシン４から出力された利用申請を受け付ける（Ｓ９０１）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態をデバイス状態テーブル５４から取得する（Ｓ９０２）。仮想マシンモニタ５は、取得したデバイス状態が割当中状態であるか否かを判定する（Ｓ９０３）。仮想マシンモニタ５は、デバイス状態が割当中状態でないと判定した場合（Ｓ９０３でＮＯ）、ステップＳ９０８に進む。【０２２７】
一方、仮想マシンモニタ５は、デバイス状態が割当中状態であると判定した場合（Ｓ９０３でＹＥＳ）、利用申請された外部記憶装置１１以外の外部記憶装置１１が存在するか否かを判定する（Ｓ９０４）。仮想マシンモニタ５は、利用申請された外部記憶装置１１以外の外部記憶装置１１が存在していないと判定した場合（Ｓ９０４でＮＯ）、ステップＳ９１２に進む。【０２２８】
一方、仮想マシンモニタ５は、利用申請された外部記憶装置１１以外の外部記憶装置１１が存在していると判定した場合（Ｓ９０４でＹＥＳ）、該当する外部記憶装置１１のデバイス状態をデバイス状態テーブル５４から取得する。仮想マシンモニタ５は、取得したデバイス状態が割当可能状態又は解放可能状態であるか否かを判定する（Ｓ９０５）。【０２２９】
仮想マシンモニタ５は、利用申請された外部記憶装置１１以外の外部記憶装置１１が存在していないと判定した場合（Ｓ９０４でＮＯ）、全てのデバイス状態が割当可能状態又は解放可能状態ではないと判定した場合（Ｓ９０５でＮＯ）、外部記憶装置１１を使用しない旨の回答であると判定した場合（Ｓ９０７でＮＯ）、申請があった仮想マシン名を割当待ちの仮想マシン情報に追加して、外部記憶装置１１が割当中状態である旨の通知を、申請があった仮想マシン４に出力する（Ｓ９１２）。仮想マシンモニタ５は、処理を終了する。【０２３０】
一方、仮想マシンモニタ５は、いずれかのデバイス状態が割当可能状態又は解放可能状態であると判定した場合（Ｓ９０５でＹＥＳ）、該当する外部記憶装置１１を使用する旨の確認を仮想マシン４に出力する（Ｓ９０６）。仮想マシン４は、受け付けた確認をシンクライアント端末３の出力部３１に出力する。図９はデバイス利用確認のメッセージの表示例を示す図である。仮想マシン４は、シンクライアント端末３の入力部３０を介して、確認に対する回答を受け付けた場合、受け付けた回答を仮想マシンモニタ５に出力する。【０２３１】
仮想マシンモニタ５は、受け付けた回答が、外部記憶装置１１を使用する旨の回答であるか否かを判定する（Ｓ９０７）。仮想マシンモニタ５は、外部記憶装置１１を使用しない旨の回答であると判定した場合（Ｓ９０７でＮＯ）、ステップＳ９１２に進む。【０２３２】
一方、仮想マシンモニタ５は、デバイス状態が割当中状態でないと判定した場合（Ｓ９０３でＮＯ）、外部記憶装置１１を使用する旨の回答であると判定した場合（Ｓ９０７でＹＥＳ）、該当する外部記憶装置１１のデバイス状態を取得して、デバイス状態が割当可能状態であるか否かを判定する（Ｓ９０８）。仮想マシンモニタ５は、デバイス状態が割当可能状態であると判定した場合（Ｓ９０８でＹＥＳ）、ステップＳ９１３に進む。【０２３３】
一方、仮想マシンモニタ５は、デバイス状態が割当可能状態でないと判定した場合（Ｓ９０８でＮＯ）、外部記憶装置１１を解放して、申請があった仮想マシン４に新たに割り当てる旨の通知を、割当先である仮想マシン４に出力する（Ｓ９０９）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０２３４】
仮想マシンモニタ５は、未反映データ処理をキャッシュ操作部５６に依頼する（Ｓ９１０）。仮想マシンモニタ５は、待機状態となり、キャッシュ操作部５６が未反映データ処理を実行する（Ｓ９１１）。仮想マシンモニタ５は、未反映データ処理が実行した後、ステップＳ９１３に進む。【０２３５】
仮想マシンモニタ５は、デバイス状態の割当可能状態であると判定した場合（Ｓ９０８でＹＥＳ）、未反映データ処理が実行した場合（Ｓ９１１）、外部記憶装置１１のデバイス状態を割当中状態に変更する（Ｓ９１３）。仮想マシンモニタ５は、外部記憶装置１１を割り当てた旨の通知を、申請があった仮想マシン４に出力する（Ｓ９１４）。仮想マシンモニタ５は、処理を終了する。【０２３６】
情報処理装置は、上述した処理以外に、基本的なデバイス割当処理、未反映データ処理、記録媒体２が装着されたときの基本的な制御処理、記録媒体２に対する基本的な読み書き処理、基本的なデバイス解放処理、及び記録媒体２が離脱したときの制御処理を実行する。なお、当該処理の手順は、実施の形態１における情報処理装置１が実行する処理と同様であるので、対応する手順に同一のステップ番号を付してその説明を省略する。【０２３７】
このように、情報処理装置１は、割当先以外の仮想マシン４から利用申請があった場合、未反映データ処理を実行してから、利用申請があった仮想マシン４に外部記憶装置１１を割り当てる。以上、実施の形態３について説明した。【０２３８】
実施の形態４．
また、開示の情報処理装置は、外部記憶装置１１に装着してある記録媒体２でなく、キャッシュ保存部５７に既に保存してあるキャッシュデータを用いてデータの読み書きを行うようにしてもよい。また、開示の情報処理装置は、利用頻度の低いキャッシュデータをキャッシュ保存部５７から自動的に削除するようにしてもよい。当該内容を実施の形態４として説明する。【０２３９】
実施の形態４における情報処理装置１及び周辺機器の構成は、実施の形態１における情報処理装置１及び周辺機器の構成と同様であるので、対応する箇所に同一の符号を付してその説明を省略する。【０２４０】
図２５は実施の形態４における情報処理装置１の機能ブロック図である。実施の形態４における情報処理装置１が有する機能は、実施の形態１における情報処理装置１が有する機能に加え、同一キャッシュ検索部６０及びキャッシュ保存テーブル６１を有する。同一キャッシュ検索部６０は、ＣＰＵ１０の動作により機能する。キャッシュ保存テーブル６１は、補助記憶装置１４に記憶されている。【０２４１】
同一キャッシュ検索部６０は、外部記憶装置１１に装着してある記録媒体２の内容と同一データが、キャッシュ保存部５７に既に保存されているか否かを確認する。キャッシュ保存部５７に既に保存してある同一データの一例は、割当先以外の仮想マシン４の依頼に応じて、キャッシュ保存部５７に保存されたイメージファイルであって、装着してある記録媒体２の内容と同一内容のデータである。同一キャッシュ検索部６０は、確認結果をキャッシュ操作部５６に出力する。【０２４２】
図２６はキャッシュ保存テーブル６１のフォーマット例を示す図である。キャッシュ保存テーブル６１は、キャッシュ名、保存日時、最終利用日時及び利用回数を格納する。【０２４３】
キャッシュ名は、キャッシュ保存部５７に保存してあるキャッシュデータを識別するための情報である。保存日時は、記録媒体２のデータをキャッシュデータとしてキャッシュ保存部５７に保存した日時である。最終利用日時は、キャッシュ保存部５７に保存してあるキャッシュデータにアクセスした最新の日時である。利用回数は、キャッシュ保存部５７に保存してあるキャッシュデータへのアクセス回数である。【０２４４】
キャッシュ管理部５３は、キャッシュ保存部５７に保存してあるキャッシュデータの保存期間が所定の期間を経過したか否かを判定する。キャッシュ管理部５３は、キャッシュデータの容量がキャッシュ保存部５７の保存可能容量を超えたか否かを判定する。キャッシュ管理部５３は、キャッシュ保存部５７に保存してあるキャッシュデータの利用頻度を比較する。キャッシュ管理部５３は、所定の期間保存してあるキャッシュデータ又は利用頻度の低いキャッシュデータをキャッシュ保存部５７から削除する。【０２４５】
情報処理装置１は、上述した資源を用いて以下の処理を実行する。図２７及び図２８はキャッシュ保存部５７に保存してあるキャッシュデータを複数の仮想マシン４で共有する場合の制御処理の手順を示すフローチャートである。外部記憶装置１１は、記録媒体２が装着されているか否かの情報を仮想マシンモニタ５に出力する。【０２４６】
仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ１００１）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ１００１でＮＯ）、ステップＳ１００１の判定を繰り返す。【０２４７】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ１００１でＹＥＳ）、仮想デバイス５０のアクセス先を記録媒体２に変更する（Ｓ１００２）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を割当中状態に変更する（Ｓ１００３）。【０２４８】
仮想マシンモニタ５は、キャッシュデータを保存する旨の依頼をキャッシュ操作部５６に出力する（Ｓ１００４）。キャッシュ操作部５６は、外部記憶装置１１に装着してある記録媒体２のデータと同一データが、キャッシュ保存部５７に既に保存されているか否かの確認を同一キャッシュ検索部６０に依頼する。【０２４９】
同一キャッシュ検索部６０は、同一データがキャッシュ保存部５７に既に保存されているか否かを判定する（Ｓ１００５）。同一キャッシュ検索部６０は、同一データがキャッシュ保存部５７に保存されていないと判定した場合（Ｓ１００５でＮＯ）、判定結果をキャッシュ操作部５６に出力する。【０２５０】
キャッシュ操作部５６は、外部記憶装置１１に装着してある記録媒体２のデータをキャッシュデータとしてキャッシュ保存部５７に保存する（Ｓ１００６）。キャッシュ操作部５６は、ステップＳ１０１７に進む。【０２５１】
同一キャッシュ検索部６０は、同一データがキャッシュ保存部５７に保存されていると判定した場合（Ｓ１００５でＹＥＳ）、保存してあるデータが、割当先の仮想マシンの要求によって保存されているのか否かを判定する（Ｓ１００７）。同一キャッシュ検索部６０は、保存してあるデータが、割当先以外の仮想マシン４の要求によって保存されていると判定した場合（Ｓ１００７でＮＯ）、判定結果をキャッシュ操作部５６に出力する。【０２５２】
キャッシュ操作部５６は、リダイレクト情報を作成する（Ｓ１００８）。リダイレクト情報は、読み書き対象となる、キャッシュ保存部５７に既に保存してあるキャッシュデータに関する情報である。キャッシュ操作部５６は、キャッシュデータを保存した旨の通知を仮想マシンモニタ５に出力する（Ｓ１００９）。【０２５３】
仮想マシンモニタ５は、仮想デバイス５０のアクセス先をキャッシュ保存部５７に変更する（Ｓ１０１０）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を割当可能状態に変更する（Ｓ１０１１）。仮想マシンモニタ５は、ステップＳ１０２０に進む。【０２５４】
一方、上述のステップＳ１００７において、同一キャッシュ検索部６０は、保存してあるデータが、割当先の仮想マシン４の要求によって保存されていると判定した場合（Ｓ１００７でＹＥＳ）、判定結果をキャッシュ操作部５６に出力する。【０２５５】
キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されているか否かを判定する（Ｓ１０１２）。キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合（Ｓ１０１２でＮＯ）、ステップＳ１０１５に進む。【０２５６】
一方、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていると判定した場合（Ｓ１０１２でＹＥＳ）、装着してある記録媒体２に未反映データを書き込む（Ｓ１０１３）。キャッシュ操作部５６は、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除する（Ｓ１０１４）。【０２５７】
キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合（Ｓ１０１２でＮＯ）、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除した場合（Ｓ１０１４）、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分があるか否かを判定する（Ｓ１０１５）。キャッシュ操作部５６は、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分がないと判定した場合（Ｓ１０１５でＮＯ）、ステップＳ１０１７に進む。【０２５８】
一方、キャッシュ操作部５６は、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分があると判定した場合（Ｓ１０１５でＹＥＳ）、キャッシュデータを差分データで更新する（Ｓ１０１６）。キャッシュ操作部５６は、ステップＳ１０１７に進む。【０２５９】
キャッシュ操作部５６は、記録媒体２のデータをキャッシュ保存部５７に保存した場合（Ｓ１００６）、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分がないと判定した場合（Ｓ１０１５でＮＯ）又はキャッシュデータを差分データで更新した場合（Ｓ１０１６）、キャッシュデータを保存した旨の通知を仮想マシンモニタ５に出力する（Ｓ１０１７）。【０２６０】
仮想マシンモニタ５は、仮想デバイス５０のアクセス先をキャッシュ保存部５７に変更する（Ｓ１０１８）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を解放可能状態に変更する（Ｓ１０１９）。仮想マシンモニタ５は、ステップＳ１０２０に進む。【０２６１】
仮想マシンモニタ５は、デバイス状態を割当可能状態に変更した場合（Ｓ１０１１）又はデバイス状態を解放可能状態に変更した場合（Ｓ１０１９）、割当待ちの仮想マシン４が存在するか否かを判定する（Ｓ１０２０）。仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していないと判定した場合（Ｓ１０２０でＮＯ）、処理を終了する。【０２６２】
一方、仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していると判定した場合（Ｓ１０２０でＹＥＳ）、割当待ちの仮想マシン４に外部記憶装置１１を割り当てる（Ｓ１０２１）。外部記憶装置１１の割り当ては、基本的なデバイス割当処理に準ずる。仮想マシンモニタ５は、処理を終了する。【０２６３】
このように、情報処理装置１は、記録媒体２のデータを保存するための処理を省略することができる場合、外部記憶装置１１を割当先の仮想マシン４から早期に解放する。【０２６４】
図２９及び図３０は記録媒体２が装着されたときの制御処理の手順を示すフローチャートである。外部記憶装置１１は、記録媒体２が装着されているか否かの情報を仮想マシンモニタ５に出力する。【０２６５】
仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ１１０１）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ１１０１でＮＯ）、ステップＳ１１０１の判定を繰り返す。【０２６６】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ１１０１でＹＥＳ）、仮想デバイス５０のアクセス先を記録媒体２に変更する（Ｓ１１０２）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を割当中状態に変更する（Ｓ１１０３）。仮想マシンモニタ５は、キャッシュデータを保存する旨の依頼をキャッシュ操作部５６に出力する（Ｓ１１０４）。【０２６７】
キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されているか否かを判定する（Ｓ１１０５）。キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されていないと判定した場合（Ｓ１１０５でＮＯ）、外部記憶装置１１に装着してある記録媒体２のデータをキャッシュデータとしてキャッシュ保存部５７に保存する（Ｓ１１０６）。【０２６８】
キャッシュ操作部５６は、キャッシュデータの保存日時及び利用回数をキャッシュ保存テーブル６１に格納する。キャッシュ操作部５６は、利用回数に０を与える（Ｓ１１０７）。キャッシュ操作部５６は、ステップＳ１１１１に進む。【０２６９】
一方、キャッシュ操作部５６は、キャッシュデータがキャッシュ保存部５７に保存されていると判定した場合（Ｓ１１０５でＹＥＳ）、未反映データに関する情報がキャッシュ管理テーブル５５に格納されているか否かを判定する（Ｓ１１０８）。キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合（Ｓ１１０８でＮＯ）、ステップＳ１１１１に進む。【０２７０】
一方、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていると判定した場合（Ｓ１１０８でＹＥＳ）、装着してある記録媒体２に未反映データを書き込む（Ｓ１１０９）。キャッシュ操作部５６は、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除する（Ｓ１１１０）。キャッシュ操作部５６は、ステップＳ１１１１に進む。【０２７１】
キャッシュ操作部５６は、キャッシュ保存テーブル６１の利用回数に０を与えた場合（Ｓ１１０７）、未反映データに関する情報が格納されていないと判定した場合（Ｓ１１０８でＮＯ）又は書き込みが終了した未反映データに関する情報を削除した場合（Ｓ１１１０）、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分があるか否かを判定する（Ｓ１１１１）。【０２７２】
キャッシュ操作部５６は、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分があると判定した場合（Ｓ１１１１でＹＥＳ）、キャッシュデータを差分データで更新する（Ｓ１１１２）。キャッシュ操作部５６は、ステップＳ１１１３に進む。【０２７３】
一方、キャッシュ操作部５６は、記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分がないと判定した場合（Ｓ１１１１でＮＯ）、ステップＳ１１１３に進む。【０２７４】
キャッシュ操作部５６は、キャッシュデータを差分データで更新した場合（Ｓ１１１２）又は記録媒体２のデータとキャッシュ保存部５７に保存してあるキャッシュデータとの間に差分がないと判定した場合（Ｓ１１１１でＮＯ）、キャッシュデータの最終利用日時をキャッシュ保存テーブル６１に格納する。キャッシュ操作部５６は、利用回数をインクリメントする（Ｓ１１１３）。キャッシュ操作部５６は、キャッシュデータを保存した旨の通知を仮想マシンモニタ５に出力する（Ｓ１１１４）。【０２７５】
仮想マシンモニタ５は、仮想デバイス５０のアクセス先をキャッシュ保存部５７に変更する（Ｓ１１１５）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を解放可能状態に変更する（Ｓ１１１６）。仮想マシンモニタ５は、割当待ちの仮想マシン４が存在するか否かを判定する（Ｓ１１１７）。仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していないと判定した場合（Ｓ１１１７でＮＯ）、処理を終了する。【０２７６】
一方、仮想マシンモニタ５は、割当待ちの仮想マシン４が存在していると判定した場合（Ｓ１１１７でＹＥＳ）、割当待ちの仮想マシン４に外部記憶装置１１を割り当てる（Ｓ１１１８）。外部記憶装置１１の割り当ては、基本的なデバイス割当処理に準ずる。仮想マシンモニタ５は、処理を終了する。【０２７７】
図３１はキャッシュデータの削除処理の手順を示すフローチャートである。仮想マシンモニタ５は、キャッシュ保存部５７に保存してあるキャッシュデータの保存期間が、所定の期間を経過しているか否かを判定する（Ｓ１２０１）。仮想マシンモニタ５は、保存期間が所定の期間を経過していないと判定した場合（Ｓ１２０１でＮＯ）、ステップＳ１２０１の判定を繰り返す。【０２７８】
一方、仮想マシンモニタ５は、保存期間が所定の期間を経過したと判定した場合（Ｓ１２０１でＹＥＳ）、キャッシュデータの容量がキャッシュ保存部５７の保存可能容量を超えたか否かを判定する（Ｓ１２０２）。仮想マシンモニタ５は、キャッシュデータの容量が保存可能容量未満であると判定した場合（Ｓ１２０２でＮＯ）、ステップＳ１２０１に戻り、処理を繰り返す。【０２７９】
一方、仮想マシンモニタ５は、キャッシュデータの容量が保存可能容量を超えたと判定した場合（Ｓ１２０２でＹＥＳ）、保存期間が所定の期間を経過したキャッシュデータの一覧（図示せず）を作成する（Ｓ１２０３）。仮想マシンモニタ５は、経過期間の長い順にキャッシュデータを並べた一覧を作成する。【０２８０】
仮想マシンモニタ５は、一覧中に、キャッシュデータが複数存在するか否かを判定する（Ｓ１２０４）。仮想マシンモニタ５は、一つのキャッシュデータが一覧に存在していると判定した場合（Ｓ１２０４でＮＯ）、当該キャッシュデータを削除対象と決定し、ステップＳ１２０６に進む。【０２８１】
一方、仮想マシンモニタ５は、複数のキャッシュデータが一覧に存在していると判定した場合（Ｓ１２０４でＹＥＳ）、キャッシュデータの利用回数を比較する（Ｓ１２０５）。仮想マシンモニタ５は、利用回数が最小となるキャッシュデータを削除対象と決定し、ステップＳ１２０６に進む。【０２８２】
仮想マシンモニタ５は、削除対象となるキャッシュデータを決定した場合、削除対象となるキャッシュデータをキャッシュ保存部５７から削除する（Ｓ１２０６）。仮想マシンモニタ５は、削除後、キャッシュデータの容量がキャッシュ保存部５７の保存可能容量以下となったか否かを判定する（Ｓ１２０７）。【０２８３】
仮想マシンモニタ５は、キャッシュデータの容量がキャッシュ保存部５７の保存可能容量以下となったと判定した場合（Ｓ１２０７でＹＥＳ）、ステップＳ１２０１に戻り、処理を繰り返す。【０２８４】
一方、仮想マシンモニタ５は、キャッシュデータの容量がキャッシュ保存部５７の保存可能容量を超えていると判定した場合（Ｓ１２０７でＮＯ）、ステップＳ１２０３に戻り、保存期間が所定の期間を経過したキャッシュデータの一覧を再度作成する。【０２８５】
図３２及び図３３はキャッシュ保存部５７に保存してあるキャッシュデータの割当処理の手順を示すフローチャートである。仮想マシン４は、キャッシュ保存部５７に保存してあるキャッシュデータの利用申請を受け付ける。仮想マシン４は、利用申請を仮想マシンモニタ５に出力する。【０２８６】
仮想マシンモニタ５は、利用申請を仮想マシン４から受け付ける（Ｓ１３０１）。仮想マシンモニタ５は、未反映データ処理をキャッシュ操作部５６に依頼する（Ｓ１３０２）。【０２８７】
キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されているか否かを判定する（Ｓ１３０３）。キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていないと判定した場合（Ｓ１３０３でＮＯ）、未反映データ処理が完了した旨の通知を仮想マシンモニタ５に出力する（Ｓ１３０４）。仮想マシンモニタ５は、ステップＳ１３１１に進む。【０２８８】
一方、キャッシュ操作部５６は、未反映データに関する情報がキャッシュ管理テーブル５５に格納されていると判定した場合（Ｓ１３０３でＹＥＳ）、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ１３０５）。【０２８９】
キャッシュ操作部５６は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ１３０５でＹＥＳ）、装着してある記録媒体２に未反映データを書き込む（Ｓ１３０６）。キャッシュ操作部５６は、未反映データ処理が完了した旨の通知を仮想マシンモニタ５に出力する（Ｓ１３０７）。キャッシュ操作部５６は、書き込みが終了した未反映データに関する情報をキャッシュ管理テーブル５５から削除する（Ｓ１３０８）。仮想マシンモニタ５は、ステップＳ１３１１に進む。【０２９０】
一方、キャッシュ操作部５６は、ステップＳ１３０５において、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ１３０５でＮＯ）、装着すべき記録媒体２に関する情報及び記録媒体２の装着を促す旨の通知を仮想マシン４に出力する（Ｓ１３０９）。仮想マシン４は、受け付けた通知をシンクライアント端末３の出力部３１に出力する。【０２９１】
キャッシュ操作部５６は、記録媒体２が装着されたか否かを判定する（Ｓ１３１０）。キャッシュ操作部５６は、記録媒体２が装着されていないと判定した場合（Ｓ１３１０でＮＯ）、ステップＳ１３１０の判定を繰り返す。【０２９２】
一方、キャッシュ操作部５６は、記録媒体２が装着されたと判定した場合（Ｓ１３１０でＹＥＳ）、ステップＳ１３０２に戻り、未反映データ処理を再度依頼する。【０２９３】
仮想マシンモニタ５は、未反映データ処理が完了した旨の通知をキャッシュ操作部５６が出力した場合（Ｓ１３０４）又は書き込みが終了した未反映データに関する情報をキャッシュ操作部５６が削除した場合（Ｓ１３０８）、外部記憶装置１１のアクセス先をキャッシュ保存部５７に変更する（Ｓ１３１１）。【０２９４】
仮想マシンモニタ５は、外部記憶装置１１のデバイス状態が割当中状態又は解放可能状態であるか否かを判定する（Ｓ１３１２）。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態が割当中状態及び解放可能状態のいずれにも該当していないと判定した場合（Ｓ１３１２でＮＯ）、ステップＳ１３１５に進む。【０２９５】
一方、仮想マシンモニタ５は、外部記憶装置１１のデバイス状態が割当中状態又は解放可能状態のいずれかに該当すると判定した場合（１３１２でＹＥＳ）、記録媒体２が外部記憶装置１１に装着されているか否かを判定する（Ｓ１３１３）。仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていないと判定した場合（Ｓ１３１３でＮＯ）、ステップＳ１３１５に進む。【０２９６】
一方、仮想マシンモニタ５は、記録媒体２が外部記憶装置１１に装着されていると判定した場合（Ｓ１３１３でＹＥＳ）、記録媒体２の取り外しを促す通知を仮想マシン４に出力する（Ｓ１３１４）。仮想マシンモニタ５は、ステップＳ１３１５に進む。【０２９７】
仮想マシンモニタ５は、デバイス状態が割当中状態及び解放可能状態のいずれにも該当していないと判定した場合（Ｓ１３１２でＮＯ）、記録媒体２が装着されていないと判定した場合（Ｓ１３１３でＮＯ）及び記録媒体２の取り外しを促す画面を出力した場合（Ｓ１３１４）、外部記憶装置１１のデバイス状態を割当可能状態に変更する（Ｓ１３１５）。仮想マシンモニタ５は、外部記憶装置１を割り当てた旨の通知を仮想マシン４に出力する（Ｓ１３１６）。仮想マシンモニタ５は、処理を終了する。【０２９８】
また、報処理装置１は、上述した処理以外に、基本的なデバイス割当処理、未反映データ処理、記録媒体２が装着されたときの基本的な制御処理、記録媒体２に対する基本的な読み書き処理、基本的なデバイス解放処理、及び記録媒体２が離脱したときの制御処理を実行する。当該処理の手順は、実施の形態１における情報処理装置１が実行する処理の手順と同様であるので、対応する手順に同一のステップ番号を付してその説明を省略する。【０２９９】
また、リダイレクト情報は、割当先の仮想マシン４が、記録媒体２のデータを保存することなく、割当先以外の仮想マシン４の要求によってキャッシュ保存部５７に保存されているキャッシュデータを読み書きする場合に作成される。従って、割当先の仮想マシン４は、キャッシュデータが削除された場合、読み書き対象を失う。【０３００】
そこで、仮想マシンモニタ５は、キャッシュデータをキャッシュ保存部５７から削除する場合、リダイレクト情報が作成されているか否かを判定する。仮想マシンモニタ５は、リダイレクト情報が作成されていると判定した場合、キャッシュデータをキャッシュ保存部５７に複写する。以後、割当先の仮想マシン４は、複写したキャッシュデータを読み書きする。【０３０１】
このように、情報処理装置１は、外部記憶装置１１に装着してある記録媒体２でなく、キャッシュ保存部５７に既に保存してあるキャッシュデータを用いてデータの読み書きを行うようにしてあるので、外部記憶装置１１を割当先の仮想マシン４から早期に解放することができる。その結果、情報処理装置１は、割当待ちの仮想マシン４に外部記憶装置１１を効率的に割り当てることができる。また、情報処理装置１は、利用頻度の低いキャッシュデータをキャッシュ保存部５７から自動的に削除するので、管理者の操作負担を軽減させることができる。以上、実施の形態４について説明した。【０３０２】
実施の形態５．
また、開示の情報処理装置は、キャッシュ保存部５７に保存してあるキャッシュデータの読み書きの要求を仮想マシン４から受けていないキャッシュ未アクセス状態が、所定の時間続いている場合、キャッシュデータを仮想マシン４から解放するようにしてもよい。当該内容を実施の形態５として説明する。【０３０３】
実施の形態５における情報処理装置１及び周辺機器の構成は、実施の形態１における情報処理装置１及び周辺機器の構成と同様であるので、対応する箇所に同一の符号を付してその説明を省略する。【０３０４】
図３４は実施の形態５における情報処理装置１の機能ブロック図である。実施の形態５における情報処理装置１が有する機能は、実施の形態１における情報処理装置１が有する機能に加え、キャッシュ未アクセスタイマ６２を有する。キャッシュ未アクセスタイマ６２は、ＣＰＵ１０の動作により機能する。【０３０５】
キャッシュ管理部５３は、キャッシュ保存部５７に保存してあるキャッシュデータへのアクセスを監視する。キャッシュ管理部５３は、キャッシュ未アクセスタイマ６２を用いて計時する。【０３０６】
キャッシュ管理部５３は、キャッシュ未アクセス状態が所定の時間続いていると判定した場合、仮想デバイス５０のアクセス先を変更する旨の依頼を仮想デバイス管理部５２ に出力する。仮想デバイス管理部５２は、仮想デバイス５０のアクセス先をなしとする。その結果、キャッシュデータは仮想マシン４から解放される。【０３０７】
キャッシュ未アクセスタイマ６２は、計時する旨の依頼をキャッシュ管理部５３及びデバイス割当管理部５１から受け付けた場合、計時を開始する。【０３０８】
情報処理装置１は、上述した資源を用いて以下の処理を実行する。図３５はキャッシュデータの解放処理の手順を示すフローチャートである。記録媒体２が外部記録装置１１に装着されている場合、キャッシュ操作部５６は、記録媒体２のデータをキャッシュデータとしてキャッシュ保存部５７に保存する。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を解放可能状態に変更する。【０３０９】
仮想マシンモニタ５は、キャッシュ未アクセスタイマ６２を起動する（Ｓ１４０１）。仮想マシンモニタ５は、キャッシュ保存部５７に保存してあるキャッシュデータへのアクセスがあるか否かを判定する（Ｓ１４０２）。【０３１０】
仮想マシンモニタ５は、キャッシュデータへのアクセスがあると判定した場合（Ｓ１４０２でＹＥＳ）、キャッシュ未アクセスタイマ６２をタイマリセットする（Ｓ１４０３）。仮想マシンモニタ５は、ステップＳ１４０４に進む。【０３１１】
一方、仮想マシンモニタ５は、キャッシュデータへのアクセスがないと判定した場合（Ｓ１４０２でＮＯ）、ステップＳ１４０４に進む。【０３１２】
仮想マシンモニタ５は、タイマリセットした場合（Ｓ１４０３）又はキャッシュデータへのアクセスがないと判定した場合（Ｓ１４０２でＮＯ）、キャッシュ未アクセスタイマ６２が計時している時間が、所定の時間を経過したか否かを判定する（Ｓ１４０４）。仮想マシンモニタ５は、計時している時間が所定の時間を経過していないと判定した場合（Ｓ１４０４でＮＯ）、ステップＳ１４０２に戻り、処理を繰り返す。【０３１３】
一方、仮想マシンモニタ５は、計時している時間が所定の時間を経過したと判定した場合（Ｓ１４０４でＹＥＳ）、キャッシュ未アクセスタイマ６２を停止する（Ｓ１４０５）。仮想マシンモニタ５は、仮想デバイス５０のアクセス先をなしに変更する。仮想マシンモニタ５は、外部記憶装置１１のデバイス状態を確認して、解放可能状態であれば割当可能状態に変更する。仮想マシンモニタ５は、処理を終了する。【０３１４】
また、情報処理装置１は、上述した処理以外に、基本的なデバイス割当処理、未反映データ処理、記録媒体２が装着されたときの基本的な制御処理、記録媒体２に対する基本的な読み書き処理、基本的なデバイス解放処理、及び記録媒体２が離脱したときの制御処理を実行する。なお、当該処理の手順は、実施の形態１における情報処理装置１が実行する処理の手順と同様であるので、対応する手順に同一のステップ番号を付してその説明を省略する。【０３１５】
このように、情報処理装置１は、キャッシュ未アクセス状態が所定の時間続いている場合、外部記憶装置１１を割当先の仮想マシン４から自動的に解放することができる。その結果、情報処理装置１は、割当待ちの仮想マシン４に外部記憶装置１１を効率的に割り当てることができる。以上、実施の形態５について説明した。
【図１】
2010097933.tif 000003
【図２】
2010097933.tif 000004
【図３】
2010097933.tif 000005
【図４】
2010097933.tif 000006
【図５】
2010097933.tif 000007
【図６】
2010097933.tif 000008
【図７】
2010097933.tif 000009
【図８】
2010097933.tif 000010
【図９】
2010097933.tif 000011
【図１０】
2010097933.tif 000012
【図１１】
2010097933.tif 000013
【図１２】
2010097933.tif 000014
【図１３】
2010097933.tif 000015
【図１４】
2010097933.tif 000016
【図１５】
2010097933.tif 000017
【図１６】
2010097933.tif 000018
【図１７】
2010097933.tif 000019
【図１８】
2010097933.tif 000020
【図１９】
2010097933.tif 000021
【図２０】
2010097933.tif 000022
【図２１】
2010097933.tif 000023
【図２２】
2010097933.tif 000024
【図２３】
2010097933.tif 000025
【図２４】
2010097933.tif 000026
【図２５】
2010097933.tif 000027
【図２６】
2010097933.tif 000028
【図２７】
2010097933.tif 000029
【図２８】
2010097933.tif 000030
【図２９】
2010097933.tif 000031
【図３０】
2010097933.tif 000032
【図３１】
2010097933.tif 000033
【図３２】
2010097933.tif 000034
【図３３】
2010097933.tif 000035
【図３４】
2010097933.tif 000036
【図３５】
2010097933.tif 000037
【手続補正書】
【提出日】平成23年8月2日(2011.8.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
物理資源を論理的に分割して複数の仮想計算機として動作させる情報処理装置であって、
着脱可能な記録媒体に対するデータの読み書きが可能なリーダライタと、
該リーダライタの使用状況を検出する検出手段と、
該検出手段が検出した使用状況に基づき、前記リーダライタを前記仮想計算機のいずれかに割当てる割当手段と
を備え、
割当てたリーダライタは、割当先の仮想計算機からの要求に応じて記録媒体に対するデータの読み書きを行うようにしてあることを特徴とする情報処理装置。 
【請求項２】
前記検出手段が検出した使用状況に基づき、割当てたリーダライタを割当先の仮想計算機から解放する解放手段
を更に備えることを特徴とする請求項1に記載の情報処理装置。 
【請求項３】
前記割当手段は、
前記記録媒体を装着してあるリーダライタを仮想化して仮想資源を生成する生成手段と、
割当てたリーダライタに代えて、生成した仮想資源を割当先の仮想計算機に割当てる手段と
を更に備え、
生成した仮想資源の割当により前記リーダライタが解放可能な状態となるようにしてあることを特徴とする請求項２に記載の情報処理装置。 
【請求項４】
前記生成手段は、既に保存してあるデータが削除される場合、該データを複写し、複写したデータの読み書きが可能な資源を仮想資源として生成するようにしてあることを特徴とする請求項３に記載の情報処理装置。 
【請求項５】
前記リーダライタに装着してある記録媒体への書込みが可能か否かを検出する検出手段
を更に備え、
前記出力手段は、装着してある記録媒体への書込みが不可能であると前記検出手段が判定した場合、装着してある記録媒体を離脱させるべき旨を報知するようにしてあることを特徴とする請求項２乃至４のいずれか一つに記載の情報処理装置。 
【請求項６】
前記検出手段は、割当先の仮想計算機と異なる他の仮想計算機が前記リーダライタの割当を要求したときに前記リーダライタの使用状況を検出し、
前記解放手段は、前記リーダライタが解放可能な状態であることを前記検出手段が検出した場合、割当てたリーダライタを割当先の仮想計算機から解放し、
前記割当手段は、解放したリーダライタを前記他の仮想計算機に割当てるようにしてあることを特徴とする請求項２乃至５のいずれか一つに記載の情報処理装置。 
【請求項７】
物理資源を論理的に分割して複数の仮想計算機として動作させる情報処理方法であって、
着脱可能な記録媒体に対するデータの読み書きが可能なリーダライタの使用状況を検出し、
検出した使用状況に基づき、前記リーダライタを前記仮想計算機のいずれかに割当て、
割当てたリーダライタで割当先の仮想計算機からの要求に応じた記録媒体に対するデータの読み書きを行うことを特徴とする情報処理方法。 
【請求項８】
コンピュータに、物理資源を論理的に分割して複数の仮想計算機として動作させるコンピュータプログラムであって、
コンピュータに、着脱可能な記録媒体に対するデータの読み書きが可能なリーダライタの使用状況を検出させるステップと、
検出した使用状況に基づき、前記リーダライタを前記仮想計算機のいずれかに割当てさせるステップと、
割当てたリーダライタが割当先の仮想計算機からの要求に応じて記録媒体に対するデータの読み書きを行うように制御させるステップと
を実行させることを特徴とするコンピュータプログラム。 
【国際調査報告】
2010097933.tif 000038
2010097933.tif 000039