仮想化システム、メモリ管理方法及び制御プログラム
【課題】同一のOSを実行するドメインを複数起動した場合のメモリの使用効率を向上させることを可能にする。
【解決手段】OS310がOS未ロードのページ313に対してアクセスを行うと(S601)、ページ無効例外が発生し、当該例外に応じて、ハイパーバイザは、物理メモリ領域を1ページ分割り当て、そこにプログラムのロードを行う(S602)。二次記憶装置からOSのデータが物理メモリ410上に読み込まれると、ハイパーバイザは、ページテーブルの書き換えを行う(S603)。その後、同じページに対して、他方のOS320でアクセスがあった場合は、物理メモリ410上へのロードは行われず、既にロード済みのページフレームと、他方のOSのページとを対応付けるようにページテーブルが更新される。
【解決手段】OS310がOS未ロードのページ313に対してアクセスを行うと(S601)、ページ無効例外が発生し、当該例外に応じて、ハイパーバイザは、物理メモリ領域を1ページ分割り当て、そこにプログラムのロードを行う(S602)。二次記憶装置からOSのデータが物理メモリ410上に読み込まれると、ハイパーバイザは、ページテーブルの書き換えを行う(S603)。その後、同じページに対して、他方のOS320でアクセスがあった場合は、物理メモリ410上へのロードは行われず、既にロード済みのページフレームと、他方のOSのページとを対応付けるようにページテーブルが更新される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複合機やプリンタなどの組み込み機器に関し、特に、組み込み機器での仮想化技術に関する。
【背景技術】
【0002】
最近のオフィス環境においては、コストや専有面積の削減のために、コピー機能、ファクシミリ機能、プリンタ機能等の複数の機能を一台で備えた複合機が使用されている。
【0003】
従来、このような複合機では、一つのオペレーティング・システム上にソフトウェアシステムを配置し、その中で、様々なアプリケーションを動作させていた。ところが、近年、複合機に要求される機能が多くなり、複数のアプリケーションに影響を及ぼす機能も増えてきている。そのため、一つの機能を追加する際に、複数のアプリケーション間で連携をとる必要が生じ、開発効率が悪化してしまうという問題が発生していた。
【0004】
一方、最近、一台のハードウェアプラットフォーム上に、ハイパーバイザと呼ばれる仮想化機構を使って複数の独立した仮想マシン(これをドメインと呼ぶ)を構築し、複数のOS(オペレーティングシステム)を実行する仮想化技術がサーバー管理の分野で注目されている。当該仮想化技術を利用して、複数のサーバー機能を1台のハードウェアに実装することにより、ハードウェア資源の有効活用、占有面積の削減、電力消費の削減を図ることができる。
【0005】
当該仮想化技術においては、各ドメイン(仮想マシン)は独立しているため、当該仮想化技術を複合機に適用した場合、ソリューションを別ドメインとして追加することができ、本体システム側とは別に開発を進めることが可能となる。さらに本体システムとのインターフェイスは明確に分割されているため、基本的に本体システムに影響を与えず開発することができ、開発効率を向上させることができる。また、ソリューション開発において、内部で発生した不具合が他のドメイン(本体システム側など)に影響を与えないため、この点からも開発効率を向上させることができる。
【0006】
しかし、これまでの仮想化技術で使用されているハイパーバイザでは、一台のハードウェア上に複数のドメインを構築する場合、各ドメインは他のドメインに影響を及ぼさないように独立しているため、複数のドメインで同一のOSを使用する場合でも、それぞれのドメイン内に同じOSのイメージが必要となる。通常のOSは最初からメモリにロードされていることを仮定して作られているものも多いため、同一のOSを起動するドメインの数だけのOSのロード領域が物理メモリ上に必要となる。つまり、物理メモリ上に、同じOSのイメージが複数存在することとなり、これはメモリ量に制約のある組込み機器等では問題となる。一方、ドメインごとに別のOSを使用する場合においてはこのようなメモリの無駄は起こらない。
【0007】
なお、特開2002−41306号公報には、複数の論理区画で動作するOSイメージに、コンソールとオペレータ・パネルの仮想コピーを与えるハイパーバイザが開示されている。
【0008】
また、特開2003−125122号公報には、読取手段、記録手段、記憶手段及びネットワーク通信手段等の各種資源と、資源を使用したプリント処理、コピー処理、ファクシミリ処理等の各種処理を独自に行う複数のアプリケーションとの間に、汎用OSと共通システムサービスとからなるプラットフォームを介在させて、当該プラットフォームが、各アプリケーションに対応する処理を実行するのに必要な資源の割り振り等の共通処理を行う複合装置が開示されている。
【0009】
また、特表2006−507561号公報には、論理的に区分されたプラットフォームのハードウェア資源すべてを仮想化することにより、独立した複数のOSイメージを同時に実行することができるハイパーバイザを含み、プロセッサの動的な割振りおよび割振り解除を行うデータ処理システムが開示されている。
【特許文献1】特開2002−41306号公報
【特許文献2】特開2003−125122号公報
【特許文献3】特表2006−507561号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明の目的は、同一のOSを実行するドメインを複数起動した場合のメモリの使用効率を向上させることを可能にすることにある。
【課題を解決するための手段】
【0011】
本実施形態に係る仮想化システムは、1つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のOSが実行される仮想化システムであって、前記ハイパーバイザは、前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段と、前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段と、前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段とを備える。
【0012】
この場合において、前記ハイパーバイザは、前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段を更に備えるようにしてもよい。前記仮想化システムは、例えば、複合機に実装することができる。
【0013】
本実施形態に係るメモリ管理方法は、1つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のOSが実行される仮想化システムにおけるメモリ管理方法であって、前記ハイパーバイザは、前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定し、前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定し、前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する。
【0014】
この場合において、前記ハイパーバイザは、前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定するようにしてもよい。前記メモリ管理方法は、例えば、複合機において使用される。
【0015】
本実施形態に係る制御プログラムは、1つのコンピュータ上で複数のドメインを同時に実行することを可能とする制御プログラム(例えば、ハイパーバイザ)であって、複数のドメイン内で同一のOSが実行される場合に、前記コンピュータを、前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがいまだロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段、前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段、及び、前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段として機能させる。
【0016】
この場合において、前記制御プログラムは、前記コンピュータを更に、前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段として機能させるようにしてもよい。前記制御プログラムは、例えば、複合機において実行される。
【発明を実施するための最良の形態】
【0017】
以下、本実施形態について図面を参照しつつ説明する。
【0018】
図1は、ハイパーバイザを使用した仮想化システムのソフトウェア構成の実施形態を示した図である。本システムは、例えば、複合機に実装される。なお、本システムが実装される複合機は、例えば、CPU、メモリ等の主記憶装置、ハードディスク等の二次記憶装置、入力装置、表示装置等を備える。
【0019】
同図に示すように、本実施形態の仮想化システム100は、ハイパーバイザ110と、制御ドメイン120と、複数のドメイン130〜150とを備える。
【0020】
ハイパーバイザ110は、ハードウェアを複数のドメインに仮想化するためのモジュールである。ハイパーバイザ110は、OSとその上で動作するアプリケーションを1つのドメインとして扱い、1つの実コンピュータのハードウェアを、各ドメインに対して仮想マシンとして認識させる機能を提供し、1つの実コンピュータ上で複数のドメインを同時に実行することを可能にする。
【0021】
制御ドメイン120は、ハイパーバイザ110によって最初に起動されるドメインであり、1つの仮想マシン上で動作するものである。制御ドメイン120においては、当該仮想マシン上で動作するOSが起動され、そのOS上で制御プログラムが実行される。
【0022】
複数のドメイン130〜150は、制御ドメイン120によって必要に応じて作成されるドメインであり、それぞれのドメイン130,140,150はそれぞれ別の仮想マシン上で動作する。
【0023】
このようにドメインの数だけ仮想マシンがあるように見せて動作させるのがハイパーバイザ110の役割である。
【0024】
次に、仮想化システム100において、新たなドメインを作成する処理について説明する。
【0025】
図2は、新たなドメインを作成するときの処理の実施形態を示す。
【0026】
同図に示すように、ハイパーバイザ210が起動されたときに最初に作られる制御ドメイン220内では、制御ドメイン用OS221が動作している。制御ドメイン用OS221は、制御プログラム222を実行し、必要に応じて新たなドメインを作成する。
【0027】
新たなドメインを作成する場合、制御プログラム222は、制御ドメイン用OS221を介して新規ドメイン作成要求をハイパーバイザ210内の新規ドメイン作成処理部211に渡す(S201)。当該新規ドメイン作成要求を受け取った新規ドメイン作成処理部211は、新規ドメイン作成処理を実行して新規ドメイン230を作成する(S202)。
【0028】
このようにして作成される新規ドメイン230では、例えば、このドメイン専用のOS−A231を動作させるように指定されており、新規ドメイン作成処理部211は、新規ドメイン230用のメモリ領域にOS−A231をロードし、新規ドメイン230においてOS−A231を実行させる。
【0029】
図3は、図2に示した状態から更に新規ドメインを作成する際の処理の実施形態を示す。
【0030】
この場合も、基本的に、図2で説明した処理と同様な処理で、新規ドメイン240が作成される。すなわち、制御プログラム222は、制御ドメイン用OS221を介して新規ドメイン作成要求をハイパーバイザ210内の新規ドメイン作成処理部211に渡す(S301)。当該新規ドメイン作成要求を受け取った新規ドメイン作成処理部211は、新規ドメイン作成処理を実行して新規ドメイン240を作成し(S302)、新規ドメイン240用のメモリ領域にOS−A241をロードして、新規ドメイン240においてOS−A241を実行させる。
【0031】
図4は、新規に作成されたドメイン内でOSを起動した後の処理の実施形態を示す。
【0032】
新規ドメイン230内のOS−A231は、起動されると、決められたプロセス(タスク)を実行する。同図に示した例では、アプリケーションプロセス233とアプリケーションの動作に必要なミドルウェア232をプログラムとして実行している(S401)。新規ドメイン240でも同様の処理が行われ、当該ドメイン240が行うべき処理内容に応じて必要なプログラム242,243が実行される(S402)。
【0033】
図4に示した状態では、新規ドメイン230と新規ドメイン240の両方で同じOS−Aが動作しているが、ハイパーバイザ210がOSのメモリ割り当てに関与しない限り、OS−Aは別々のメモリ領域にコピーがロードされる。すなわち、ひとつの物理メモリ内に同じOSのコピーが2つ存在することになる。
【0034】
本実施形態においては、ドメイン作成時にドメイン内で起動するOSが同じものであることをハイパーバイザ210に伝えておくことにより、同じOSは物理メモリ上には1つしかロードしないようにする。更に、OS起動時にはOSの全ての内容をメモリにロードせず、アクセスがあった部分のみメモリにロードするようにする。
【0035】
次に、同じOSは物理メモリ上には1つしかロードしないようにすると共に、OS起動時にOSの全ての内容をメモリにロードせずに、アクセスがあった部分のみメモリにロードする処理について説明する。
【0036】
ハイパーバイザは、OS起動時にはOSの内容をメモリにロードせず、OSがドメイン内のどのアドレスにロードされるべきかを管理し、ドメイン専用のページテーブルにおいて、当該アドレスに対応するエントリを無効状態にセットしておく。また、ハイパーバイザは、二次記憶装置(例えば、ハードディスク装置)上にあるOSの場所を記憶しておき、OSの任意のオフセットのデータを二次記憶装置からメモリにロードできるようにしておく。
【0037】
この状態で、ドメイン内のOSに、スタートアドレスから実行を開始させると、OSのスタート地点でメモリアクセスがあった時点で、ページ無効例外が発生することになる。
【0038】
ハイパーバイザは、当該ページ無効例外を検出すると新たな物理メモリ領域を割り当て、二次記憶装置からそのページを物理メモリ上に読み込む。そしてそのページをドメイン内の所定のアドレスにマップするようにページテーブルを書き換えた後、例外処理から元の処理に戻ることにより、そのページの命令の実行が可能となる。
【0039】
ハイパーバイザは、OSのどのページを物理メモリのどこにロードしたかを管理する。そして、他のドメインの同じOSにおいてページ無効例外が発生した場合、ハイパーバイザは、当該ページがすでにメモリ上にロードされているか否かを調べ、すでにメモリ上にロードされているOSのページについては、同じOSを使用する複数のドメインで共有するようにし、当該ページが共有されるようにページテーブルを書き換える。
【0040】
図5は、このような処理が進んだ状態を示す。すなわち、第一のドメインのOS310と、第二のドメインのOS320が同じOSである場合において、各OS310,320を構成するページと、当該ページがロードされる物理メモリ410の関係が示されている。
【0041】
同図に示すように、OS310は、テキスト部分311とデータ部分312を備える。テキスト部分311は、OSの書き換えできない部分であり、データ部分312は、OSの書き換え可能な部分である。同様に、OS320も、書き換えできないテキスト部分321と書き換え可能なデータ部分322とを備える。
【0042】
また、物理メモリ410は、ページと同じ大きさを持つ複数の領域(ページフレーム)に分割されており、各ページフレームに対して、OSを構成する各ページがロードされる。OSを構成するページと、当該ページがロードされたページフレームとの対応関係は、ページテーブルによって管理される。なお、ページテーブルでは、各ページごとに、当該ページが読み込み専用であるか、書込み可能であるか等の属性情報も管理される。
【0043】
同図に示した物理メモリ410において、ハッチングを付した部分は、使用中の物理メモリ領域(ページフレーム)を示しており、ハッチングを付してない部分は、未使用の物理メモリ領域(ページフレーム)を示している。
【0044】
また、各OS310,320から物理メモリ410に向かって伸びる矢印は、各OS310,320を構成するページと、物理メモリ410のページフレームとの対応関係を示している。各OS310,320を構成するページは、例えば、OS310及び320のいずれか一方の最初の読み込みアクセスに応じて、物理メモリ410上にロードされ、当該ページと、当該ページがロードされたページフレームとの対応関係が、ページテーブルに設定される。その後、同じページに対して、他方のOSから読み込みアクセスがあった場合は、物理メモリ410上へのロードは行われず、既にロード済みのページフレームと、他方のOSのページとの対応関係が、ページテーブルに設定されるのみである。
【0045】
同図に示すように、OS310及び320の両方でアクセスがあったページについては、同じ物理メモリ領域(ページフレーム)に対応付けられている。
【0046】
図6は、図5に示した状態において、第一のドメインのOS310が未ロードのページへのアクセスを行った場合の処理の実施形態を示す。
【0047】
OS310がOS未ロードのページ313に対してアクセスを行うと(S601)、ページ無効例外が発生し、当該例外に応じて、ハイパーバイザは、物理メモリ領域を1ページ分割り当て、そこにプログラムのロードを行う(S602)。二次記憶装置からOSのデータが物理メモリ410上に読み込まると、ハイパーバイザは、ページテーブルの書き換えを行う(S603)。すなわち、OS310の該当ページと物理メモリ410の該当ページフレームとの対応関係をページテーブルに設定する。このとき、当該ページの属性情報として、当該ページが読み込み専用ページであることを示す情報もあわせて設定する。その後、例外処理から戻ることによりOS310の該当ページへのアクセスは成功することになる。
【0048】
以上のような処理を行うことにより、ドメイン起動時にOSをメモリ上にロードしておかなくても、OSの動作中に必要に応じて、二次記憶装置から必要なページを物理メモリにロードすることが可能になる。
【0049】
この処理は、通常のOSとプロセスの間で行われているデマンドページングの処理をハイパーバイザとドメイン内のOSとの間に適用したものと考えることができる。
【0050】
図7は、複数のOSで共有されているページに対して書込みアクセスがあった場合の処理の実施形態を示す。
【0051】
同図に示すように、第二のドメインのOS320が、第一のドメインのOS310と同じ物理メモリ領域(ページフレーム)411を共用しているデータ部分のページ323に対して書き換えを行おうとすると(S701)、ページテーブルは当初、読み込み専用のマップになっているため、書込み保護例外が発生する。ハイパーバイザは、この例外を受け取ると、新たなページフレーム412を割り当て、書き換えようとしたページ323の内容(ページフレーム411の内容)を新たに割り当てたページフレーム412にコピーする(S702)。そして、当該処理の結果を反映させるため、ページテーブルを更新する(S703)。すなわち、OS320の書き換えを行うページ323と、新たに割り当てられた物理メモリ410のページフレーム412との対応関係をページテーブルに設定する。このとき、当該ページの属性情報に、当該ページが書き込み可能であることを示す情報をあわせて設定する。その後、例外処理から戻ることにより、第二のドメインのOS320ではデータ部分の書き換えが成功することになる。
【0052】
上述したように、データ部分を書き換える前にデータをコピーしていることから、第一のドメインのOS310からは、同じ部分では依然としてデータを書き換える前の値が見えるようになっている。
【0053】
この処理は、通常のOSとプロセスとの間で行われているコピーオンライトの処理をハイパーバイザとドメイン内のOSとの間に適用したものと考えることができる。
【0054】
通常のOSとプロセス間で行われているデマンドページングやコピーオンライトの処理は、OSがCPU(メモリ管理ユニット)のページテーブルを操作することにより実現されているが、ハイパーバイザとドメイン内のOSとの間で行う処理の場合は、ドメイン内のOSがそれぞれ仮想的なページテーブルを持っているため、異なった処理が必要となる。
【0055】
図8は、ハイパーバイザを使ったときのアドレス変換処理の実施形態を示した図である。
【0056】
ドメイン内のOS上で動いているプロセスは仮想アドレスを使用しており、当該仮想アドレスは、そのプロセスを制御しているOSによって、ドメインアドレスに変換される。ドメインを使わない通常のOSでは、物理アドレスと仮想アドレスとのマッピングをCPUのページテーブルにセットするが、ドメイン内のOSでは物理アドレスではなくドメインアドレス(仮想マシンにおける物理アドレス)を使用し、そのドメインアドレスと仮想アドレスとのマッピングを示す仮想的なページテーブル(仮想マシンにおけるページテーブル)を扱う。
【0057】
ハイパーバイザは、各ドメイン毎のドメインアドレスと物理アドレスとの対応関係を管理している上に、ドメイン内のOSが作成した仮想的なページテーブルを見ることにより、ドメインアドレスと仮想アドレスの関係も管理している。これらの情報を処理して各ドメインの仮想アドレスと物理アドレスの関連を最終的にCPUのページテーブルとしてセットする。
【0058】
図9は、ページテーブルの更新処理の実施形態を示す図である。
【0059】
ドメイン内のOSは、仮想アドレスとドメインアドレスの対応関係を設定するためにページテーブルを更新するが、この処理は実際のページテーブルを書き換えるのではなく、ページテーブルの書き換え要求を行うためのハイパーコール(ドメインからハイパーバイザへのサービスコール)を通して行われる。これによりハイパーバイザは、そのドメインでの仮想アドレスとドメインアドレスとの対応関係を知ることができる。ハイパーバイザは、全てのドメインについて当該対応関係を管理し、現在どのドメインを実行しているのかという情報から、仮想アドレスと物理アドレスとの対応関係を表している実際のCPUのページテーブルの更新を行う。
【0060】
以上説明したように、本実施形態によれば、同一のOSを実行するドメインを複数起動した場合においても、ドメイン起動時にOSの全てのデータをメモリ上にロードしておく必要がなくなる。更に、OSがデータの書き換えを行うまで、複数のドメインでOSのデータを共有することが可能となり、ハイパーバイザを使用して複数ドメインで同一のOSを起動した場合でも、通常より少ないメモリでの実行が可能となる。
【0061】
以上、本発明を実施形態をもって説明したが、本発明は、複合機等の組み込み機器や、その他のメモリ資源が少ない機器に適用することができる。また、本発明は図面に示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【0062】
【図1】ハイパーバイザを使用した仮想化システムのソフトウェア構成の実施形態を示した図。
【図2】新たなドメインを作成するときの処理の実施形態を示した図。
【図3】図2に示した状態から更に新規ドメインを作成する際の処理の実施形態を示した図。
【図4】新規に作成されたドメイン内でOSを起動した後の処理の実施形態を示した図。
【図5】第一のドメインのOS310と、第二のドメインのOS320が同じOSである場合において、各OS310,320のページと、当該ページがロードされる物理メモリ410の関係を示す図。
【図6】第一のドメインのOS310が未ロードのページへのアクセスを行った場合の処理の実施形態を示した図。
【図7】複数のOSで共有されているページに対して書込みアクセスがあった場合の処理の実施形態を示した図。
【図8】ハイパーバイザを使ったときのアドレス変換処理の実施形態を示した図。
【図9】ページテーブルの更新処理の実施形態を示した図。
【符号の説明】
【0063】
100…仮想化システム、110…ハイパーバイザ、120…制御ドメイン、130〜150…ドメイン、210…ハイパーバイザ、211…新規ドメイン作成処理部、220…制御ドメイン、221…制御ドメイン用OS、222…制御プログラム、230…新規ドメイン、231…OS−A、240…新規ドメイン、241…OS−A、310…第一のドメインのOS、311…テキスト部分、312…データ部分、320…第二のドメインのOS、321…テキスト部分、322…データ部分、410…物理メモリ
【技術分野】
【0001】
本発明は、複合機やプリンタなどの組み込み機器に関し、特に、組み込み機器での仮想化技術に関する。
【背景技術】
【0002】
最近のオフィス環境においては、コストや専有面積の削減のために、コピー機能、ファクシミリ機能、プリンタ機能等の複数の機能を一台で備えた複合機が使用されている。
【0003】
従来、このような複合機では、一つのオペレーティング・システム上にソフトウェアシステムを配置し、その中で、様々なアプリケーションを動作させていた。ところが、近年、複合機に要求される機能が多くなり、複数のアプリケーションに影響を及ぼす機能も増えてきている。そのため、一つの機能を追加する際に、複数のアプリケーション間で連携をとる必要が生じ、開発効率が悪化してしまうという問題が発生していた。
【0004】
一方、最近、一台のハードウェアプラットフォーム上に、ハイパーバイザと呼ばれる仮想化機構を使って複数の独立した仮想マシン(これをドメインと呼ぶ)を構築し、複数のOS(オペレーティングシステム)を実行する仮想化技術がサーバー管理の分野で注目されている。当該仮想化技術を利用して、複数のサーバー機能を1台のハードウェアに実装することにより、ハードウェア資源の有効活用、占有面積の削減、電力消費の削減を図ることができる。
【0005】
当該仮想化技術においては、各ドメイン(仮想マシン)は独立しているため、当該仮想化技術を複合機に適用した場合、ソリューションを別ドメインとして追加することができ、本体システム側とは別に開発を進めることが可能となる。さらに本体システムとのインターフェイスは明確に分割されているため、基本的に本体システムに影響を与えず開発することができ、開発効率を向上させることができる。また、ソリューション開発において、内部で発生した不具合が他のドメイン(本体システム側など)に影響を与えないため、この点からも開発効率を向上させることができる。
【0006】
しかし、これまでの仮想化技術で使用されているハイパーバイザでは、一台のハードウェア上に複数のドメインを構築する場合、各ドメインは他のドメインに影響を及ぼさないように独立しているため、複数のドメインで同一のOSを使用する場合でも、それぞれのドメイン内に同じOSのイメージが必要となる。通常のOSは最初からメモリにロードされていることを仮定して作られているものも多いため、同一のOSを起動するドメインの数だけのOSのロード領域が物理メモリ上に必要となる。つまり、物理メモリ上に、同じOSのイメージが複数存在することとなり、これはメモリ量に制約のある組込み機器等では問題となる。一方、ドメインごとに別のOSを使用する場合においてはこのようなメモリの無駄は起こらない。
【0007】
なお、特開2002−41306号公報には、複数の論理区画で動作するOSイメージに、コンソールとオペレータ・パネルの仮想コピーを与えるハイパーバイザが開示されている。
【0008】
また、特開2003−125122号公報には、読取手段、記録手段、記憶手段及びネットワーク通信手段等の各種資源と、資源を使用したプリント処理、コピー処理、ファクシミリ処理等の各種処理を独自に行う複数のアプリケーションとの間に、汎用OSと共通システムサービスとからなるプラットフォームを介在させて、当該プラットフォームが、各アプリケーションに対応する処理を実行するのに必要な資源の割り振り等の共通処理を行う複合装置が開示されている。
【0009】
また、特表2006−507561号公報には、論理的に区分されたプラットフォームのハードウェア資源すべてを仮想化することにより、独立した複数のOSイメージを同時に実行することができるハイパーバイザを含み、プロセッサの動的な割振りおよび割振り解除を行うデータ処理システムが開示されている。
【特許文献1】特開2002−41306号公報
【特許文献2】特開2003−125122号公報
【特許文献3】特表2006−507561号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明の目的は、同一のOSを実行するドメインを複数起動した場合のメモリの使用効率を向上させることを可能にすることにある。
【課題を解決するための手段】
【0011】
本実施形態に係る仮想化システムは、1つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のOSが実行される仮想化システムであって、前記ハイパーバイザは、前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段と、前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段と、前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段とを備える。
【0012】
この場合において、前記ハイパーバイザは、前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段を更に備えるようにしてもよい。前記仮想化システムは、例えば、複合機に実装することができる。
【0013】
本実施形態に係るメモリ管理方法は、1つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のOSが実行される仮想化システムにおけるメモリ管理方法であって、前記ハイパーバイザは、前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定し、前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定し、前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する。
【0014】
この場合において、前記ハイパーバイザは、前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定するようにしてもよい。前記メモリ管理方法は、例えば、複合機において使用される。
【0015】
本実施形態に係る制御プログラムは、1つのコンピュータ上で複数のドメインを同時に実行することを可能とする制御プログラム(例えば、ハイパーバイザ)であって、複数のドメイン内で同一のOSが実行される場合に、前記コンピュータを、前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがいまだロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段、前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段、及び、前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段として機能させる。
【0016】
この場合において、前記制御プログラムは、前記コンピュータを更に、前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段として機能させるようにしてもよい。前記制御プログラムは、例えば、複合機において実行される。
【発明を実施するための最良の形態】
【0017】
以下、本実施形態について図面を参照しつつ説明する。
【0018】
図1は、ハイパーバイザを使用した仮想化システムのソフトウェア構成の実施形態を示した図である。本システムは、例えば、複合機に実装される。なお、本システムが実装される複合機は、例えば、CPU、メモリ等の主記憶装置、ハードディスク等の二次記憶装置、入力装置、表示装置等を備える。
【0019】
同図に示すように、本実施形態の仮想化システム100は、ハイパーバイザ110と、制御ドメイン120と、複数のドメイン130〜150とを備える。
【0020】
ハイパーバイザ110は、ハードウェアを複数のドメインに仮想化するためのモジュールである。ハイパーバイザ110は、OSとその上で動作するアプリケーションを1つのドメインとして扱い、1つの実コンピュータのハードウェアを、各ドメインに対して仮想マシンとして認識させる機能を提供し、1つの実コンピュータ上で複数のドメインを同時に実行することを可能にする。
【0021】
制御ドメイン120は、ハイパーバイザ110によって最初に起動されるドメインであり、1つの仮想マシン上で動作するものである。制御ドメイン120においては、当該仮想マシン上で動作するOSが起動され、そのOS上で制御プログラムが実行される。
【0022】
複数のドメイン130〜150は、制御ドメイン120によって必要に応じて作成されるドメインであり、それぞれのドメイン130,140,150はそれぞれ別の仮想マシン上で動作する。
【0023】
このようにドメインの数だけ仮想マシンがあるように見せて動作させるのがハイパーバイザ110の役割である。
【0024】
次に、仮想化システム100において、新たなドメインを作成する処理について説明する。
【0025】
図2は、新たなドメインを作成するときの処理の実施形態を示す。
【0026】
同図に示すように、ハイパーバイザ210が起動されたときに最初に作られる制御ドメイン220内では、制御ドメイン用OS221が動作している。制御ドメイン用OS221は、制御プログラム222を実行し、必要に応じて新たなドメインを作成する。
【0027】
新たなドメインを作成する場合、制御プログラム222は、制御ドメイン用OS221を介して新規ドメイン作成要求をハイパーバイザ210内の新規ドメイン作成処理部211に渡す(S201)。当該新規ドメイン作成要求を受け取った新規ドメイン作成処理部211は、新規ドメイン作成処理を実行して新規ドメイン230を作成する(S202)。
【0028】
このようにして作成される新規ドメイン230では、例えば、このドメイン専用のOS−A231を動作させるように指定されており、新規ドメイン作成処理部211は、新規ドメイン230用のメモリ領域にOS−A231をロードし、新規ドメイン230においてOS−A231を実行させる。
【0029】
図3は、図2に示した状態から更に新規ドメインを作成する際の処理の実施形態を示す。
【0030】
この場合も、基本的に、図2で説明した処理と同様な処理で、新規ドメイン240が作成される。すなわち、制御プログラム222は、制御ドメイン用OS221を介して新規ドメイン作成要求をハイパーバイザ210内の新規ドメイン作成処理部211に渡す(S301)。当該新規ドメイン作成要求を受け取った新規ドメイン作成処理部211は、新規ドメイン作成処理を実行して新規ドメイン240を作成し(S302)、新規ドメイン240用のメモリ領域にOS−A241をロードして、新規ドメイン240においてOS−A241を実行させる。
【0031】
図4は、新規に作成されたドメイン内でOSを起動した後の処理の実施形態を示す。
【0032】
新規ドメイン230内のOS−A231は、起動されると、決められたプロセス(タスク)を実行する。同図に示した例では、アプリケーションプロセス233とアプリケーションの動作に必要なミドルウェア232をプログラムとして実行している(S401)。新規ドメイン240でも同様の処理が行われ、当該ドメイン240が行うべき処理内容に応じて必要なプログラム242,243が実行される(S402)。
【0033】
図4に示した状態では、新規ドメイン230と新規ドメイン240の両方で同じOS−Aが動作しているが、ハイパーバイザ210がOSのメモリ割り当てに関与しない限り、OS−Aは別々のメモリ領域にコピーがロードされる。すなわち、ひとつの物理メモリ内に同じOSのコピーが2つ存在することになる。
【0034】
本実施形態においては、ドメイン作成時にドメイン内で起動するOSが同じものであることをハイパーバイザ210に伝えておくことにより、同じOSは物理メモリ上には1つしかロードしないようにする。更に、OS起動時にはOSの全ての内容をメモリにロードせず、アクセスがあった部分のみメモリにロードするようにする。
【0035】
次に、同じOSは物理メモリ上には1つしかロードしないようにすると共に、OS起動時にOSの全ての内容をメモリにロードせずに、アクセスがあった部分のみメモリにロードする処理について説明する。
【0036】
ハイパーバイザは、OS起動時にはOSの内容をメモリにロードせず、OSがドメイン内のどのアドレスにロードされるべきかを管理し、ドメイン専用のページテーブルにおいて、当該アドレスに対応するエントリを無効状態にセットしておく。また、ハイパーバイザは、二次記憶装置(例えば、ハードディスク装置)上にあるOSの場所を記憶しておき、OSの任意のオフセットのデータを二次記憶装置からメモリにロードできるようにしておく。
【0037】
この状態で、ドメイン内のOSに、スタートアドレスから実行を開始させると、OSのスタート地点でメモリアクセスがあった時点で、ページ無効例外が発生することになる。
【0038】
ハイパーバイザは、当該ページ無効例外を検出すると新たな物理メモリ領域を割り当て、二次記憶装置からそのページを物理メモリ上に読み込む。そしてそのページをドメイン内の所定のアドレスにマップするようにページテーブルを書き換えた後、例外処理から元の処理に戻ることにより、そのページの命令の実行が可能となる。
【0039】
ハイパーバイザは、OSのどのページを物理メモリのどこにロードしたかを管理する。そして、他のドメインの同じOSにおいてページ無効例外が発生した場合、ハイパーバイザは、当該ページがすでにメモリ上にロードされているか否かを調べ、すでにメモリ上にロードされているOSのページについては、同じOSを使用する複数のドメインで共有するようにし、当該ページが共有されるようにページテーブルを書き換える。
【0040】
図5は、このような処理が進んだ状態を示す。すなわち、第一のドメインのOS310と、第二のドメインのOS320が同じOSである場合において、各OS310,320を構成するページと、当該ページがロードされる物理メモリ410の関係が示されている。
【0041】
同図に示すように、OS310は、テキスト部分311とデータ部分312を備える。テキスト部分311は、OSの書き換えできない部分であり、データ部分312は、OSの書き換え可能な部分である。同様に、OS320も、書き換えできないテキスト部分321と書き換え可能なデータ部分322とを備える。
【0042】
また、物理メモリ410は、ページと同じ大きさを持つ複数の領域(ページフレーム)に分割されており、各ページフレームに対して、OSを構成する各ページがロードされる。OSを構成するページと、当該ページがロードされたページフレームとの対応関係は、ページテーブルによって管理される。なお、ページテーブルでは、各ページごとに、当該ページが読み込み専用であるか、書込み可能であるか等の属性情報も管理される。
【0043】
同図に示した物理メモリ410において、ハッチングを付した部分は、使用中の物理メモリ領域(ページフレーム)を示しており、ハッチングを付してない部分は、未使用の物理メモリ領域(ページフレーム)を示している。
【0044】
また、各OS310,320から物理メモリ410に向かって伸びる矢印は、各OS310,320を構成するページと、物理メモリ410のページフレームとの対応関係を示している。各OS310,320を構成するページは、例えば、OS310及び320のいずれか一方の最初の読み込みアクセスに応じて、物理メモリ410上にロードされ、当該ページと、当該ページがロードされたページフレームとの対応関係が、ページテーブルに設定される。その後、同じページに対して、他方のOSから読み込みアクセスがあった場合は、物理メモリ410上へのロードは行われず、既にロード済みのページフレームと、他方のOSのページとの対応関係が、ページテーブルに設定されるのみである。
【0045】
同図に示すように、OS310及び320の両方でアクセスがあったページについては、同じ物理メモリ領域(ページフレーム)に対応付けられている。
【0046】
図6は、図5に示した状態において、第一のドメインのOS310が未ロードのページへのアクセスを行った場合の処理の実施形態を示す。
【0047】
OS310がOS未ロードのページ313に対してアクセスを行うと(S601)、ページ無効例外が発生し、当該例外に応じて、ハイパーバイザは、物理メモリ領域を1ページ分割り当て、そこにプログラムのロードを行う(S602)。二次記憶装置からOSのデータが物理メモリ410上に読み込まると、ハイパーバイザは、ページテーブルの書き換えを行う(S603)。すなわち、OS310の該当ページと物理メモリ410の該当ページフレームとの対応関係をページテーブルに設定する。このとき、当該ページの属性情報として、当該ページが読み込み専用ページであることを示す情報もあわせて設定する。その後、例外処理から戻ることによりOS310の該当ページへのアクセスは成功することになる。
【0048】
以上のような処理を行うことにより、ドメイン起動時にOSをメモリ上にロードしておかなくても、OSの動作中に必要に応じて、二次記憶装置から必要なページを物理メモリにロードすることが可能になる。
【0049】
この処理は、通常のOSとプロセスの間で行われているデマンドページングの処理をハイパーバイザとドメイン内のOSとの間に適用したものと考えることができる。
【0050】
図7は、複数のOSで共有されているページに対して書込みアクセスがあった場合の処理の実施形態を示す。
【0051】
同図に示すように、第二のドメインのOS320が、第一のドメインのOS310と同じ物理メモリ領域(ページフレーム)411を共用しているデータ部分のページ323に対して書き換えを行おうとすると(S701)、ページテーブルは当初、読み込み専用のマップになっているため、書込み保護例外が発生する。ハイパーバイザは、この例外を受け取ると、新たなページフレーム412を割り当て、書き換えようとしたページ323の内容(ページフレーム411の内容)を新たに割り当てたページフレーム412にコピーする(S702)。そして、当該処理の結果を反映させるため、ページテーブルを更新する(S703)。すなわち、OS320の書き換えを行うページ323と、新たに割り当てられた物理メモリ410のページフレーム412との対応関係をページテーブルに設定する。このとき、当該ページの属性情報に、当該ページが書き込み可能であることを示す情報をあわせて設定する。その後、例外処理から戻ることにより、第二のドメインのOS320ではデータ部分の書き換えが成功することになる。
【0052】
上述したように、データ部分を書き換える前にデータをコピーしていることから、第一のドメインのOS310からは、同じ部分では依然としてデータを書き換える前の値が見えるようになっている。
【0053】
この処理は、通常のOSとプロセスとの間で行われているコピーオンライトの処理をハイパーバイザとドメイン内のOSとの間に適用したものと考えることができる。
【0054】
通常のOSとプロセス間で行われているデマンドページングやコピーオンライトの処理は、OSがCPU(メモリ管理ユニット)のページテーブルを操作することにより実現されているが、ハイパーバイザとドメイン内のOSとの間で行う処理の場合は、ドメイン内のOSがそれぞれ仮想的なページテーブルを持っているため、異なった処理が必要となる。
【0055】
図8は、ハイパーバイザを使ったときのアドレス変換処理の実施形態を示した図である。
【0056】
ドメイン内のOS上で動いているプロセスは仮想アドレスを使用しており、当該仮想アドレスは、そのプロセスを制御しているOSによって、ドメインアドレスに変換される。ドメインを使わない通常のOSでは、物理アドレスと仮想アドレスとのマッピングをCPUのページテーブルにセットするが、ドメイン内のOSでは物理アドレスではなくドメインアドレス(仮想マシンにおける物理アドレス)を使用し、そのドメインアドレスと仮想アドレスとのマッピングを示す仮想的なページテーブル(仮想マシンにおけるページテーブル)を扱う。
【0057】
ハイパーバイザは、各ドメイン毎のドメインアドレスと物理アドレスとの対応関係を管理している上に、ドメイン内のOSが作成した仮想的なページテーブルを見ることにより、ドメインアドレスと仮想アドレスの関係も管理している。これらの情報を処理して各ドメインの仮想アドレスと物理アドレスの関連を最終的にCPUのページテーブルとしてセットする。
【0058】
図9は、ページテーブルの更新処理の実施形態を示す図である。
【0059】
ドメイン内のOSは、仮想アドレスとドメインアドレスの対応関係を設定するためにページテーブルを更新するが、この処理は実際のページテーブルを書き換えるのではなく、ページテーブルの書き換え要求を行うためのハイパーコール(ドメインからハイパーバイザへのサービスコール)を通して行われる。これによりハイパーバイザは、そのドメインでの仮想アドレスとドメインアドレスとの対応関係を知ることができる。ハイパーバイザは、全てのドメインについて当該対応関係を管理し、現在どのドメインを実行しているのかという情報から、仮想アドレスと物理アドレスとの対応関係を表している実際のCPUのページテーブルの更新を行う。
【0060】
以上説明したように、本実施形態によれば、同一のOSを実行するドメインを複数起動した場合においても、ドメイン起動時にOSの全てのデータをメモリ上にロードしておく必要がなくなる。更に、OSがデータの書き換えを行うまで、複数のドメインでOSのデータを共有することが可能となり、ハイパーバイザを使用して複数ドメインで同一のOSを起動した場合でも、通常より少ないメモリでの実行が可能となる。
【0061】
以上、本発明を実施形態をもって説明したが、本発明は、複合機等の組み込み機器や、その他のメモリ資源が少ない機器に適用することができる。また、本発明は図面に示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【0062】
【図1】ハイパーバイザを使用した仮想化システムのソフトウェア構成の実施形態を示した図。
【図2】新たなドメインを作成するときの処理の実施形態を示した図。
【図3】図2に示した状態から更に新規ドメインを作成する際の処理の実施形態を示した図。
【図4】新規に作成されたドメイン内でOSを起動した後の処理の実施形態を示した図。
【図5】第一のドメインのOS310と、第二のドメインのOS320が同じOSである場合において、各OS310,320のページと、当該ページがロードされる物理メモリ410の関係を示す図。
【図6】第一のドメインのOS310が未ロードのページへのアクセスを行った場合の処理の実施形態を示した図。
【図7】複数のOSで共有されているページに対して書込みアクセスがあった場合の処理の実施形態を示した図。
【図8】ハイパーバイザを使ったときのアドレス変換処理の実施形態を示した図。
【図9】ページテーブルの更新処理の実施形態を示した図。
【符号の説明】
【0063】
100…仮想化システム、110…ハイパーバイザ、120…制御ドメイン、130〜150…ドメイン、210…ハイパーバイザ、211…新規ドメイン作成処理部、220…制御ドメイン、221…制御ドメイン用OS、222…制御プログラム、230…新規ドメイン、231…OS−A、240…新規ドメイン、241…OS−A、310…第一のドメインのOS、311…テキスト部分、312…データ部分、320…第二のドメインのOS、321…テキスト部分、322…データ部分、410…物理メモリ
【特許請求の範囲】
【請求項1】
1つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のOSが実行される仮想化システムであって、
前記ハイパーバイザは、
前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段と、
前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段と、
前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段と
を備えた仮想化システム。
【請求項2】
前記ハイパーバイザは、
前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段
を更に備える請求項1に記載の仮想化システム。
【請求項3】
前記請求項1または2に記載の仮想化システムが実装された複合機。
【請求項4】
1つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のOSが実行される仮想化システムにおけるメモリ管理方法であって、
前記ハイパーバイザは、
前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定し、
前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定し、
前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する
メモリ管理方法。
【請求項5】
前記ハイパーバイザは、
前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する
請求項4に記載のメモリ管理方法。
【請求項6】
複合機において使用される請求項4または5に記載のメモリ管理方法。
【請求項7】
1つのコンピュータ上で複数のドメインを同時に実行することを可能とする制御プログラムであって、複数のドメイン内で同一のOSが実行される場合に、前記コンピュータを、
前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがいまだロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段、
前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段、及び、
前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段
として機能させるための制御プログラム。
【請求項8】
前記制御プログラムは、前記コンピュータを更に、
前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段
として機能させる請求項7に記載の制御プログラム。
【請求項9】
複合機において実行される請求項7または8に記載の制御プログラム。
【請求項1】
1つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のOSが実行される仮想化システムであって、
前記ハイパーバイザは、
前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段と、
前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段と、
前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段と
を備えた仮想化システム。
【請求項2】
前記ハイパーバイザは、
前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段
を更に備える請求項1に記載の仮想化システム。
【請求項3】
前記請求項1または2に記載の仮想化システムが実装された複合機。
【請求項4】
1つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のOSが実行される仮想化システムにおけるメモリ管理方法であって、
前記ハイパーバイザは、
前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定し、
前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定し、
前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する
メモリ管理方法。
【請求項5】
前記ハイパーバイザは、
前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する
請求項4に記載のメモリ管理方法。
【請求項6】
複合機において使用される請求項4または5に記載のメモリ管理方法。
【請求項7】
1つのコンピュータ上で複数のドメインを同時に実行することを可能とする制御プログラムであって、複数のドメイン内で同一のOSが実行される場合に、前記コンピュータを、
前記同一のOSが実行される各ドメインにおいて、OSが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがいまだロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段、
前記ページ無効例外が発生した場合に、該当するOSのページが物理メモリ上にないときは、該当するOSのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段、及び、
前記ページ無効例外が発生した場合に、該当するOSのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段
として機能させるための制御プログラム。
【請求項8】
前記制御プログラムは、前記コンピュータを更に、
前記同一のOSが実行されるドメインのいずれかにおいて、OSの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段
として機能させる請求項7に記載の制御プログラム。
【請求項9】
複合機において実行される請求項7または8に記載の制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公開番号】特開2008−77144(P2008−77144A)
【公開日】平成20年4月3日(2008.4.3)
【国際特許分類】
【出願番号】特願2006−252287(P2006−252287)
【出願日】平成18年9月19日(2006.9.19)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成20年4月3日(2008.4.3)
【国際特許分類】
【出願日】平成18年9月19日(2006.9.19)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]