(57)【要約】【課題】仮想化に伴う処理負荷を抑えることができる情報処理装置及び情報処理方法を提供する。【解決手段】実環境上で動作し、主記憶部６０の所定記憶領域に処理対象の情報を読み出して処理し、実環境上で所定の機能を実現するホストＯＳ２０と、実環境上に構築される仮想環境上で動作し、ホストＯＳ２０に主記憶部６０の所定記憶領域へ処理対象の情報を読み出させ、所定記憶領域へ読み出された処理対象の情報を処理し、仮想環境上で所定の機能を実現するゲストＯＳ３０と、を備える。【選択図】図２
2016115286.tif 000002
【特許請求の範囲】
【請求項１】
実環境上で動作し、主記憶部の所定記憶領域に第１の処理対象の情報を読み出して処理し、前記実環境上で所定の機能を実現する第１の処理部と、
前記実環境上に構築される仮想環境上で動作し、前記第１の処理部に、前記主記憶部の前記所定記憶領域へ第２の処理対象の情報を読み出させ、前記所定記憶領域へ読み出された前記第２の処理対象の情報を処理し、前記仮想環境上で前記所定の機能を実現する第２の処理部と、
を備える情報処理装置。
【請求項２】
前記所定の機能は、ファイルシステムであり、
前記ファイルシステムに関する情報を複数記憶する補助記憶部を更に備え、
前記第１の処理対象の情報は、前記複数の情報の少なくともいずれかであり、
前記第２の処理対象の情報は、前記複数の情報の少なくともいずれかであり、
前記第１の処理部は、前記補助記憶部から前記第１の処理対象の情報を前記所定記憶領域にキャッシュし、前記所定記憶領域にキャッシュした前記第１の処理対象の情報にアクセスして、前記実環境上で前記ファイルシステムのアクセスを実現し、
前記第２の処理部は、前記第１の処理部に、前記補助記憶部から前記第２の処理対象の情報を前記所定記憶領域にキャッシュさせ、前記所定記憶領域にキャッシュされた前記第２の処理対象の情報にアクセスして、前記仮想環境上で前記ファイルシステムのアクセスを実現する請求項１に記載の情報処理装置。
【請求項３】
前記ファイルシステムに関する情報は、前記１以上のファイル毎に、当該ファイル自身の情報であるファイル情報を含み、
前記第１の処理対象の情報は、前記１以上のファイル情報のいずれかであり、
前記第２の処理対象の情報は、前記１以上のファイル情報のいずれかである請求項２に記載の情報処理装置。
【請求項４】
前記ファイルシステムに関する情報は、前記ファイルシステムを構成する１以上のファイル及び１以上のディレクトリを前記実環境上で管理する１以上の実管理情報、及び前記ファイルシステムを構成する１以上のファイル及び１以上のディレクトリを前記仮想環境上で管理する１以上の仮想管理情報を含み、
前記第１の処理対象の情報は、前記１以上の実管理情報のいずれかであり、
前記第２の処理対象の情報は、前記１以上の仮想管理情報のいずれかである請求項２又は３に記載の情報処理装置。
【請求項５】
前記第２の処理部は、前記第２の処理対象の情報の仮想管理情報を実管理情報に変換し、当該実管理情報を用いて、前記第１の処理部に、前記補助記憶部から前記第２の処理対象の情報を前記所定記憶領域にキャッシュさせる請求項４に記載の情報処理装置。
【請求項６】
前記第２の処理部は、前記第１の処理部から、前記第２の処理対象の情報がキャッシュされた前記所定記憶領域の物理アドレスを取得し、当該物理アドレスを用いて、前記所定記憶領域にキャッシュされた前記第２の処理対象の情報にアクセスする請求項５に記載の情報処理装置。
【請求項７】
実環境上で動作する第１の処理部が、主記憶部の所定記憶領域に第１の処理対象の情報を読み出して処理し、前記実環境上で所定の機能を実現する第１の処理ステップと、
前記実環境上に構築される仮想環境上で動作する第２の処理部が、前記第１の処理部に、前記主記憶部の前記所定記憶領域へ第２の処理対象の情報を読み出させ、前記所定記憶領域へ読み出された前記第２の処理対象の情報を処理し、前記仮想環境上で前記所定の機能を実現する第２の処理ステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
従来からＯＳ（Operating  System）の完全仮想化や準仮想化などの仮想化技術が知られている（例えば、特許文献１参照）。
【０００３】
例えば、このような仮想化技術により、実環境上に構築される仮想環境上で動作するゲストＯＳが仮想環境上でファイルシステムを実現し、ファイルアクセスを行うとする。この場合、実環境上で動作するホストＯＳが、ゲストＯＳの指示を受け、アクセス対象のファイルをＨＤＤ（Hard  Disk  Drive）などの外部記憶装置からメモリなどの主記憶装置上のホストＯＳ用のキャッシュ領域に読み出し、当該キャッシュ領域の内容をメモリ上のゲストＯＳ用のキャッシュ領域にコピーして同期した上で、ゲストＯＳが、メモリ上のゲストＯＳ用のキャッシュ領域からアクセス対象のファイルを読み出す。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したような従来技術では、仮想化を実現するために、ホストＯＳ用のキャッシュ領域とゲストＯＳ用のキャッシュ領域とを別々に用意し、両キャッシュ領域の内容を同期する必要があるため、オーバーヘッドが生じ、処理負荷が増大してしまう。
【０００５】
本発明は、上記事情に鑑みてなされたものであり、仮想化に伴う処理負荷を抑えることができる情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の一態様にかかる情報処理装置は、実環境上で動作し、主記憶部の所定記憶領域に処理対象の情報を読み出して処理し、前記実環境上で所定の機能を実現する第１の処理部と、前記実環境上に構築される仮想環境上で動作し、前記第１の処理部に前記主記憶部の前記所定記憶領域へ前記処理対象の情報を読み出させ、前記所定記憶領域へ読み出された前記処理対象の情報を処理し、前記仮想環境上で前記所定の機能を実現する第２の処理部と、を備える。
【発明の効果】
【０００７】
本発明によれば、仮想化に伴う処理負荷を抑えることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施形態の情報処理装置のハードウェア構成の一例を示すブロック図である。
【図２】図２は、本実施形態の情報処理装置の機能構成の一例を示すブロック図である。
【図３】図３は、本実施形態のオブジェクト間の一例を示す関係図である。
【図４】図４は、本実施形態のシステムコールとオブジェクト間の一例を示す関係図である。
【図５】図５は、本実施形態の情報処理装置で実行されるゲストＯＳのファイル読出処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、本発明にかかる情報処理装置及び情報処理方法の実施形態を詳細に説明する。
【００１０】
図１は、本実施形態の情報処理装置１０のハードウェア構成の一例を示すブロック図である。図１に示すように、情報処理装置１０は、ＣＰＵ（Central  Processing  Unit）やＧＰＵ（Graphics  Processing  Unit）などの制御装置１１と、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）などの主記憶装置１２と、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）などの補助記憶装置１３と、ディスプレイなどの表示装置１４と、マウス、キーボード、タッチパネル、又はキースイッチなどの入力装置１５と、通信インタフェースなどの通信装置１６と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００１１】
但し、情報処理装置１０のハードウェア構成は、これに限定されず、ＩＣ（Integrated  Circuit）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、及び各種センサなどを更に備えていてもよい。
【００１２】
情報処理装置１０は、例えば、ＰＣ（Personal  Computer）、スマートフォン、タブレット端末、ウェアラブル端末、画像形成装置、プロジェクタ、テレビ会議装置、電子黒板、蛍光灯、カメラ、エアコン、冷蔵庫、自販機、及び産業用機器などが挙げられる。画像形成装置は、例えば、印刷装置、複写機、複合機、スキャナ装置、及びファクシミリ装置などが挙げられる。複合機は、複写機能、印刷機能、スキャナ機能、及びファクシミリ機能のうち少なくとも２つの機能を有するものである。
【００１３】
図２は、本実施形態の情報処理装置１０の機能構成の一例を示すブロック図である。図２に示すように、情報処理装置１０は、ホストＯＳ（Operating  System）２０（第１の処理部の一例）と、ゲストＯＳ３０（第２の処理部の一例）と、Ｖｉｒｔｉｏ４０と、補助記憶部５０と、主記憶部６０とを、含む。
【００１４】
ホストＯＳ２０、ゲストＯＳ３０、及びＶｉｒｔｉｏ４０は、例えば、制御装置１１及び主記憶装置１２により実現でき、補助記憶部５０は、例えば、補助記憶装置１３により実現でき、主記憶部６０は、例えば、主記憶装置１２により実現できる。
【００１５】
ホストＯＳ２０は、情報処理装置１０の実環境上で動作するＯＳである。実環境とは、ハードウェアによって物理的に構築されたコンピュータ環境である。詳細には、ホストＯＳ２０は、情報処理装置１０上の基盤となるＯＳであり、ゲストＯＳ３０を動作させるための仮想環境を構築するソフトウェアであるＶＭ（Virtual  Machine）を動作させる。
【００１６】
なお本実施形態では、ホストＯＳ２０が、ＬＩＮＵＸ（登録商標）やＢＳＤ（Berkeley  Software  Distribution）派生ＯＳなど、バッファキャッシュ、ページキャッシュ、及びＶＦＳ（Virtual  File  System）等を有するＯＳである場合を例に取り説明するが、これに限定されるものではなく、バッファキャッシュ、ページキャッシュ、及びＶＦＳと同等の機能を有する他のＯＳであってもよい。
【００１７】
ゲストＯＳ３０は、情報処理装置１０の実環境上に構築される仮想環境上で動作するＯＳである。仮想環境とは、ホストＯＳ２０上で動作するＶＭによって仮想的に構築されたコンピュータ環境である。詳細には、ゲストＯＳ３０は、仮想マシン（ホストＯＳ２０）上で動作するＯＳである。
【００１８】
Ｖｉｒｔｉｏ４０は、ホストＯＳ２０及びゲストＯＳ３０間のＶＭ間通信を実現するインタフェースである。但し、これに限定されず、例えば、ＶＭにＸｅｎを用いる場合には、ＸｅｎＳｏｃｋｅｔを、ＶＭ間通信を実現するインタフェースに用いてもよいし、ベンダが独自に提供するインタフェースを、ＶＭ間通信を実現するインタフェースに用いてもよい。
【００１９】
補助記憶部５０は、ファイルシステムに関する情報を複数記憶する。ファイルシステムに関する情報は、ファイルシステムを構成する１以上のファイル及び１以上のディレクトリを実環境上で管理する１以上の実管理情報、ファイルシステムを構成する１以上のファイル及び１以上のディレクトリを仮想環境上で管理する１以上の仮想管理情報、及び１以上のファイル毎に当該ファイル自身の情報であるファイル情報を含む。
【００２０】
１以上の実管理情報は、実環境上でのファイルシステム自体のメタ情報（例えば、スーパーブロックなど）、実環境上でのファイルシステムのオブジェクト（例えば、ファイルやディレクトリなど）に関する基本情報であるｉｎｏｄｅ、及び実環境上でのファイルシステムのディレクトリエントリ（例えば、ファイルパス情報など）とｉｎｏｄｅとを関連付けるｄｅｎｔｒｙなどが挙げられる。なお、ｉｎｏｄｅは、ｉｎｏｄｅを更に抽象化したｖｎｏｄｅであってもよい。
【００２１】
１以上の仮想管理情報は、仮想環境上でのファイルシステム自体のメタ情報、仮想環境上でのファイルシステムのオブジェクトに関する基本情報であるｉｎｏｄｅ、及び仮想環境上でのファイルシステムのディレクトリエントリとｉｎｏｄｅとを関連付けるｄｅｎｔｒｙなどが挙げられる。なお、ｉｎｏｄｅは、ｉｎｏｄｅを更に抽象化したｖｎｏｄｅであってもよい。なお、仮想管理情報のｄｅｎｔｒｙは、実管理情報のｄｅｎｔｒｙに対し、ゲストＯＳ３０のマウントポイントを含んだパスとなる。
【００２２】
主記憶部６０は、所定記憶領域を有する。所定記憶領域は、補助記憶部５０から処理対象の情報がキャッシュされるキャッシュ領域であり、実管理情報や仮想管理情報がキャッシュされるバッファキャッシュ領域や、ファイル情報がキャッシュされるページキャッシュ領域を含む。なお本実施形態では、ホストＯＳ２０及びゲストＯＳ３０は、所定記憶領域を共有する。つまり、所定記憶領域は、ホストＯＳ２０、ゲストＯＳ３０毎に用意されているのではなく、ホストＯＳ２０及びゲストＯＳ３０共通で用意されている。
【００２３】
ホストＯＳ２０は、主記憶部６０の所定記憶領域に第１の処理対象の情報を読み出して処理し、実環境上で所定の機能を実現する。本実施形態では、所定の機能がファイルシステムである場合を例に取り説明するが、これに限定されず、ホストＯＳ２０の他の機能についても同様に適用できる。
【００２４】
所定の機能がファイルシステムである場合、ホストＯＳ２０は、補助記憶部５０から、ファイルシステムに関する複数の情報のいずれかである第１の処理対象の情報を主記憶部６０の所定記憶領域にキャッシュし、当該所定記憶領域にキャッシュした第１の処理対象の情報にアクセスして、実環境上でファイルシステムのアクセスを実現する。なお、第１の処理対象の情報は、例えば、実管理情報やファイル情報などが挙げられる。
【００２５】
ここで、ホストＯＳ２０の詳細構成について説明する。図２に示すように、ホストＯＳ２０は、ドライバ２１と、具象ファイルシステム２２と、ＶＦＳ２３と、ＶＦＳファサード２４とを、含む。
【００２６】
ドライバ２１は、補助記憶部５０を制御するためのデバイスドライバである。具象ファイルシステム２２は、ファイルシステムを実環境上で（補助記憶部５０上で）直接扱うファイルシステム（例えば、ｅｘｔｆｓやｕｆｓなど）であり、ＶＦＳ２３は、具象ファイルシステム２２を抽象化して一元的に扱うためのファイルシステムである。ＶＦＳファサード２４は、ゲストＯＳ３０からＶＦＳ２３を操作するためのインタフェースである。
【００２７】
例えば、ホストＯＳ２０のプロセス（図示省略）から、あるディレクトリへのアクセスが指示されることで、当該あるディレクトリのｉｎｏｄｅがＶＦＳ２３に通知されたとする。この場合、通知されるｉｎｏｄｅは、実管理情報のｉｎｏｄｅである。ＶＦＳ２３は、具象ファイルシステム２２に、ドライバ２１を介して補助記憶部５０にアクセスさせ、通知されたｉｎｏｄｅに基づいて、１以上の実管理情報の中から当該あるディレクトリの配下にあるディレクトリやファイルのｉｎｏｄｅ及びｄｅｎｔｒｙを読み出させ、主記憶部６０の所定記憶領域（詳細には、バッファキャッシュ領域）にキャッシュする。なお、これらのｉｎｏｄｅ及びｄｅｎｔｒｙが既に主記憶部６０の所定記憶領域にキャッシュされている場合には、この動作は省略される。そしてＶＦＳ２３は、当該所定記憶領域にキャッシュしたｉｎｏｄｅ及びｄｅｎｔｒｙにアクセスし（を読み出し）、ホストＯＳ２０のプロセスに返却することで、実環境上でファイルシステムのディレクトリへのアクセスを実現する。
【００２８】
また例えば、ホストＯＳ２０のプロセス（図示省略）から、あるファイルへのアクセスが指示されることで、当該あるファイルのｉｎｏｄｅがＶＦＳ２３に通知されたとする。この場合、通知されるｉｎｏｄｅは、実管理情報のｉｎｏｄｅである。ＶＦＳ２３は、具象ファイルシステム２２に、ドライバ２１を介して補助記憶部５０にアクセスさせ、通知されたｉｎｏｄｅに基づいて、１以上の実管理情報の中から当該あるファイルのファイル情報を読み出させ、主記憶部６０の所定記憶領域（詳細には、ページキャッシュ領域）にキャッシュする。なお、このファイル情報が既に主記憶部６０の所定記憶領域にキャッシュされている場合には、この動作は省略される。そしてＶＦＳ２３は、当該所定記憶領域にキャッシュしたファイル情報にアクセスし（を読み出し）、ホストＯＳ２０のプロセスに返却することで、実環境上でファイルシステムのファイルへのアクセスを実現する。
【００２９】
ゲストＯＳ３０は、ホストＯＳ２０に、主記憶部６０の所定記憶領域へ第２の処理対象の情報を読み出させ、所定記憶領域へ読み出された第１の処理対象の情報を処理し、仮想環境上で所定の機能を実現する。本実施形態では、前述のように、所定の機能がファイルシステムである場合を例に取り説明するが、これに限定されず、ゲストＯＳ３０の他の機能についても同様に適用できる。
【００３０】
所定の機能がファイルシステムである場合、ゲストＯＳ３０は、ホストＯＳ２０に、補助記憶部５０から、ファイルシステムに関する複数の情報のいずれかである第２の処理対象の情報を主記憶部６０の所定記憶領域にキャッシュさせ、当該所定記憶領域にキャッシュされた第２の処理対象の情報にアクセスして、仮想環境上でファイルシステムのアクセスを実現する。なお、第２の処理対象の情報は、例えば、仮想管理情報やファイル情報などが挙げられる。
【００３１】
具体的には、ゲストＯＳ３０は、第２の処理対象の情報の仮想管理情報を実管理情報に変換し、当該実管理情報を用いて、ホストＯＳ２０に、補助記憶部５０から第２の処理対象の情報を主記憶部６０の所定記憶領域にキャッシュさせる。そしてゲストＯＳ３０は、ホストＯＳ２０から、第２の処理対象の情報がキャッシュされた所定記憶領域の物理アドレスを取得し、当該物理アドレスを用いて、所定記憶領域にキャッシュされた第２の処理対象の情報にアクセスする。
【００３２】
ここで、ゲストＯＳ３０の詳細構成について説明する。図２に示すように、ゲストＯＳ３０は、具象ファイルシステム３１と、ＶＦＳ３２と、ＶＦＳファサード３３と、Ｐａｇｅｒ３４とを、含む。
【００３３】
具象ファイルシステム３１は、ファイルシステムを仮想環境上で（ＶＭ上で）直接扱うファイルシステムであり、通常のファイルシステムやＮＦＳ（Network  File  System）などの共有ファイルシステム同様、具象ファイルシステムの１種として動作する。
【００３４】
ＶＦＳ３２は、具象ファイルシステム３１を抽象化して一元的に扱うためのファイルシステムである。詳細には、具象ファイルシステム３１毎に、具象の操作関数群が用意されているので、この具象の操作関数群を用いて、該当する具象ファイルシステム３１を操作する。なお、具象の操作関数群としては、例えば、スーパーブロックに対する操作関数、ｉｎｏｄｅに対する操作関数、及びアドレス空間に関する操作関数などが挙げられる。
【００３５】
ＶＦＳファサード３３は、ゲストＯＳ３０からホストＯＳ２０のＶＦＳ２３を操作するためのモジュールである。なお、ゲストＯＳ３０からホストＯＳ２０のＶＦＳ２３を操作するためには、実環境上でのファイルシステムのオブジェクトを対象として操作を指定する必要がある。このため、ＶＦＳファサード３３は、仮想環境上でのファイルシステムのオブジェクトの仮想管理情報を実想環境上でのファイルシステムのオブジェクトの実管理情報に変換して、操作を実行する。仮想管理情報の実管理情報への変換は、専用の変換関数を用いて行えばよい。
【００３６】
Ｐａｇｅｒ３４は、主記憶部６０の所定記憶領域へのデータの読み書きを行うモジュールである。なお、Ｐａｇｅｒ３４は、所定記憶領域の物理アドレスをホストＯＳ２０から取得して、ゲストＯＳ３０のメモリ空間にマップし（詳細には、ゲストＯＳ３０のページング記憶管理領域外のルックアップテーブルに登録し）、メモリ空間において物理アドレスが対応付けられた論理アドレスを用いて、主記憶部６０の所定記憶領域からデータを読み出す。なお本実施形態では、ゲストＯＳ３０は、物理アドレス取得時のホストＯＳ２０による主記憶部６０の所定記憶領域の管理の振る舞いを熟知しており、メモリ破壊等は生じないものとする。
【００３７】
例えば、ゲストＯＳ３０のプロセス（図示省略）から、あるディレクトリへのアクセスが指示されることで、当該あるディレクトリのｉｎｏｄｅ及びｄｅｎｔｒｙがＶＦＳ３２に通知されたとする。この場合、通知されるｉｎｏｄｅ及びｄｅｎｔｒｙは、仮想管理情報のｉｎｏｄｅ及びｄｅｎｔｒｙである。ＶＦＳファサード３３は、ＶＦＳ３２から具象ファイルシステム３１を介してｉｎｏｄｅ及びｄｅｎｔｒｙが通知されると、専用の変換関数を用いて、通知された仮想管理情報のｄｅｎｔｒｙを実管理情報のｄｅｎｔｒｙに変換する。なお、仮想管理情報のｄｅｎｔｒｙは通知されたｉｎｏｄｅを含むため、変換された実管理情報のｄｅｎｔｒｙから、通知された仮想管理情報のｉｎｏｄｅを変換した実管理情報のｉｎｏｄｅも分かる。そしてＶＦＳファサード３３は、Ｖｉｒｔｉｏ４０を介したＶＭ間通信を行い、ホストＯＳ２０のＶＦＳファサード２４を介してＶＦＳ２３に変換されたｉｎｏｄｅを通知する。
【００３８】
ＶＦＳ２３は、具象ファイルシステム２２に、ドライバ２１を介して補助記憶部５０にアクセスさせ、通知されたｉｎｏｄｅに基づいて、１以上の実管理情報の中から当該あるディレクトリの配下にあるディレクトリやファイルのｉｎｏｄｅ及びｄｅｎｔｒｙを読み出させ、主記憶部６０の所定記憶領域（詳細には、バッファキャッシュ領域）にキャッシュする。なお、これらのｉｎｏｄｅ及びｄｅｎｔｒｙが既に主記憶部６０の所定記憶領域にキャッシュされている場合には、この動作は省略される。そしてＶＦＳ２３は、ＶＦＳファサード２４に、Ｖｉｒｔｉｏ４０を介したＶＭ間通信を行わせ、ゲストＯＳ３０のＶＦＳファサード３３を介して具象ファイルシステム３１に、当該あるディレクトリの配下にあるディレクトリやファイルのｉｎｏｄｅ及びｄｅｎｔｒｙがキャッシュされた所定記憶領域の物理アドレスを通知する。
【００３９】
具象ファイルシステム３１は、この物理アドレスをＰａｇｅｒ３４に通知し、Ｐａｇｅｒ３４は、この物理アドレスを用いて、主記憶部６０の所定記憶領域にキャッシュされたｉｎｏｄｅ及びｄｅｎｔｒｙにアクセスし（を読み出し）、ゲストＯＳ３０のプロセスに返却することで、仮想環境上でファイルシステムのディレクトリへのアクセスを実現する。
【００４０】
また例えば、ゲストＯＳ３０のプロセス（図示省略）から、あるファイルへのアクセスが指示されることで、当該あるファイルのｉｎｏｄｅ及びｄｅｎｔｒｙがＶＦＳ３２に通知されたとする。この場合、通知されるｉｎｏｄｅ及びｄｅｎｔｒｙは、仮想管理情報のｉｎｏｄｅ及びｄｅｎｔｒｙである。ＶＦＳファサード３３は、ＶＦＳ３２から具象ファイルシステム３１を介してｉｎｏｄｅ及びｄｅｎｔｒｙが通知されると、専用の変換関数を用いて、通知された仮想管理情報のｄｅｎｔｒｙを実管理情報のｄｅｎｔｒｙに変換する。なお、仮想管理情報のｄｅｎｔｒｙは通知されたｉｎｏｄｅを含むため、変換された実管理情報のｄｅｎｔｒｙから、通知された仮想管理情報のｉｎｏｄｅを変換した実管理情報のｉｎｏｄｅも分かる。そしてＶＦＳファサード３３は、Ｖｉｒｔｉｏ４０を介したＶＭ間通信を行い、ホストＯＳ２０のＶＦＳファサード２４を介してＶＦＳ２３に変換されたｉｎｏｄｅを通知する。
【００４１】
ＶＦＳ２３は、具象ファイルシステム２２に、ドライバ２１を介して補助記憶部５０にアクセスさせ、通知されたｉｎｏｄｅに基づいて、１以上の実管理情報の中から当該あるファイルのファイル情報を読み出させ、主記憶部６０の所定記憶領域（詳細には、バッファキャッシュ領域）にキャッシュする。なお、このファイル情報が既に主記憶部６０の所定記憶領域にキャッシュされている場合には、この動作は省略される。そしてＶＦＳ２３は、ＶＦＳファサード２４に、Ｖｉｒｔｉｏ４０を介したＶＭ間通信を行わせ、ゲストＯＳ３０のＶＦＳファサード３３を介して具象ファイルシステム３１に、当該あるファイルのファイル情報がキャッシュされた所定記憶領域の物理アドレスを通知する。
【００４２】
具象ファイルシステム３１は、この物理アドレスをＰａｇｅｒ３４に通知し、Ｐａｇｅｒ３４は、この物理アドレスを用いて、主記憶部６０の所定記憶領域にキャッシュされたファイル情報にアクセスし（を読み出し）、ゲストＯＳ３０のプロセスに返却することで、仮想環境上でファイルシステムのファイルへのアクセスを実現する。
【００４３】
図３及び図４は、ゲストＯＳ３０がファイルを読み出す場合の動作説明図の一例であり、図３は、オブジェクト間の関係図の一例を示し、図４は、システムコールとオブジェクト間の関係図の一例を示す。
【００４４】
例えば、ゲストＯＳ３０のプロセスがあるファイルを呼び出すためシステムコールのｓｙｓ＿ｒｅａｄ（）を呼んだ場合、ゲストＯＳ３０の具象ファイルシステム３１が、ｆｉｌｅ＿ｏｐｅｒａｔｉｏｎｓにあるｒｅａｄ（）を呼ぶ。なお、具象ファイルシステム３１は、実体としてｇｅｎｅｒｉｃ_ｆｉｌｅ_ｒｅａｄ（）が登録されている場合、ｇｅｎｅｒｉｃ_ｆｉｌｅ_ｒｅａｄ（）を呼ぶ。
【００４５】
この結果、ホストＯＳ２０のＶＦＳファサード３３は、ａｄｄｒｅｓｓ_ｓｐａｃｅ_ｏｐｅｒａｔｉｏｎｓ構造体に登録されているｒｅａｄｐａｇｅ（）を呼ぶ。なお、ｒｅａｄｐａｇｅ（）の変数であるｉｎｏｄｅのポインタについては、ゲストＯＳ３０のＶＦＳファサード３３により、実管理情報のｉｎｏｄｅのポインタに変換されている。
【００４６】
これにより、ホストＯＳ２０の具象ファイルシステム２２は、実管理情報のｉｎｏｄｅのｉ_ｆｏｐを参照し、当該あるファイルの具体的な読取位置を把握し、補助記憶部５０から当該あるファイルのファイル情報を読み出し、ホストＯＳ２０のＶＦＳ２３は、主記憶部６０の所定記憶領域にキャッシュし、当該ファイル情報がキャッシュされた所定記憶領域の物理アドレスをゲストＯＳ３０に返す。
【００４７】
なお、当該ファイル情報が既に主記憶部６０の所定記憶領域にキャッシュされている場合は、所定記憶領域へキャッシュする動作は行われず、当該ファイル情報が既にキャッシュされた所定記憶領域の物理アドレスがゲストＯＳ３０に返される。
【００４８】
図５は、本実施形態の情報処理装置１０で実行されるゲストＯＳ３０のファイル読出処理の一例を示すシーケンス図である。
【００４９】
まず、ゲストＯＳ３０のプロセスがあるファイルを呼び出すためシステムコールのｓｙｓ＿ｒｅａｄ（）を呼ぶ（ステップＳ１０１）。
【００５０】
続いて、ゲストＯＳ３０の具象ファイルシステム３１は、ｓｙｓ＿ｒｅａｄ（）が呼ばれると、ｆｉｌｅ＿ｏｐｅｒａｔｉｏｎｓにあるｒｅａｄ（）を呼び、ゲストＯＳ３０のＶＦＳファサード３３は、ｒｅａｄ（）の変数であるｉｎｏｄｅのポインタを、実管理情報のｉｎｏｄｅのポインタに変換してＦａｃａｄｅ＿ｒｅａｄ（）を呼ぶ（ステップＳ１０３）。
【００５１】
続いて、ホストＯＳ２０のＶＦＳファサード２４は、Ｆａｃａｄｅ＿ｒｅａｄ（）が呼ばれると、ｒｅａｄｐａｇｅ（）を呼ぶ（ステップＳ１０５）。
【００５２】
続いて、ホストＯＳ２０のＶＦＳ２３は、ｒｅａｄｐａｇｅ（）が呼ばれると、ホストＯＳ２０の具象ファイルシステム２２に、補助記憶部５０から当該あるファイルのファイル情報であるページを読み出させ、主記憶部６０の所定記憶領域にキャッシュし、当該ページがキャッシュされた所定記憶領域の物理アドレスを戻り値としてＶＦＳファサード２４に返す（ステップＳ１０９）。
【００５３】
続いて、ＶＦＳファサード２４は、ｒｅａｄｐａｇｅ（）の戻り値をゲストＯＳ３０に返す（ステップＳ１１１）。
【００５４】
続いて、ゲストＯＳ３０のＰａｇｅｒ３４は、ｒｅａｄｐａｇｅ（）の戻り値を用いて、主記憶部６０の所定記憶領域にキャッシュされたページを読み出し（ステップＳ１１３）、ゲストＯＳ３０のプロセスに返す（ステップＳ１１５）。
【００５５】
以上のように本実施形態によれば、ホストＯＳ用のキャッシュ領域とゲストＯＳ用のキャッシュ領域とが共用され、両キャッシュ領域の内容を同期する必要がないため、同期に伴うオーバーヘッドが生じず、仮想化に伴う処理負荷を抑えることができる。
【００５６】
（プログラム）
上記実施形態の情報処理装置１０で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ（Digital  Versatile  Disk）、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【００５７】
また、上記実施形態の情報処理装置１０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施形態の情報処理装置１０で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記実施形態の情報処理装置１０で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【００５８】
上記実施形態の情報処理装置１０で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、ＣＰＵがＲＯＭからプログラムをＲＡＭ上に読み出して実行することにより、上記各機能部がコンピュータ上で実現されるようになっている。
【符号の説明】
【００５９】
１０  情報処理装置
１１  制御装置
１２  主記憶装置
１３  補助記憶装置
１４  表示装置
１５  入力装置
１６  通信装置
２０  ホストＯＳ
２１  ドライバ
２２  具象ファイルシステム
２３  ＶＦＳ
２４  ＶＦＳファサード
３０  ゲストＯＳ
３１  具象ファイルシステム
３２  ＶＦＳ
３３  ＶＦＳファサード
３４  Ｐａｇｅｒ
４０  Ｖｉｒｔｉｏ
５０  補助記憶部
６０  主記憶部
【先行技術文献】
【特許文献】
【００６０】
【特許文献１】特開２０１２−３８１１７号公報
【図１】
2016115286.tif 000003
【図２】
2016115286.tif 000004
【図３】
2016115286.tif 000005
【図４】
2016115286.tif 000006
【図５】
2016115286.tif 000007