(57)【要約】【課題】同一のＯＳを実行するドメインを複数起動した場合のメモリの使用効率を向上させることを可能にする。【解決手段】ＯＳ３１０がＯＳ未ロードのページ３１３に対してアクセスを行うと（Ｓ６０１）、ページ無効例外が発生し、当該例外に応じて、ハイパーバイザは、物理メモリ領域を１ページ分割り当て、そこにプログラムのロードを行う（Ｓ６０２）。二次記憶装置からＯＳのデータが物理メモリ４１０上に読み込まれると、ハイパーバイザは、ページテーブルの書き換えを行う（Ｓ６０３）。その後、同じページに対して、他方のＯＳ３２０でアクセスがあった場合は、物理メモリ４１０上へのロードは行われず、既にロード済みのページフレームと、他方のＯＳのページとを対応付けるようにページテーブルが更新される。【選択図】図６
2008077144.tif 000002
【特許請求の範囲】
【請求項１】
１つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のＯＳが実行される仮想化システムであって、
前記ハイパーバイザは、
前記同一のＯＳが実行される各ドメインにおいて、ＯＳが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段と、
前記ページ無効例外が発生した場合に、該当するＯＳのページが物理メモリ上にないときは、該当するＯＳのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段と、
前記ページ無効例外が発生した場合に、該当するＯＳのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段と
を備えた仮想化システム。
【請求項２】
前記ハイパーバイザは、
前記同一のＯＳが実行されるドメインのいずれかにおいて、ＯＳの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段
を更に備える請求項１に記載の仮想化システム。
【請求項３】
前記請求項１または２に記載の仮想化システムが実装された複合機。
【請求項４】
１つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のＯＳが実行される仮想化システムにおけるメモリ管理方法であって、
前記ハイパーバイザは、
前記同一のＯＳが実行される各ドメインにおいて、ＯＳが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定し、
前記ページ無効例外が発生した場合に、該当するＯＳのページが物理メモリ上にないときは、該当するＯＳのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定し、
前記ページ無効例外が発生した場合に、該当するＯＳのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する
メモリ管理方法。
【請求項５】
前記ハイパーバイザは、
前記同一のＯＳが実行されるドメインのいずれかにおいて、ＯＳの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する
請求項４に記載のメモリ管理方法。
【請求項６】
複合機において使用される請求項４または５に記載のメモリ管理方法。
【請求項７】
１つのコンピュータ上で複数のドメインを同時に実行することを可能とする制御プログラムであって、複数のドメイン内で同一のＯＳが実行される場合に、前記コンピュータを、
前記同一のＯＳが実行される各ドメインにおいて、ＯＳが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがいまだロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段、
前記ページ無効例外が発生した場合に、該当するＯＳのページが物理メモリ上にないときは、該当するＯＳのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段、及び、
前記ページ無効例外が発生した場合に、該当するＯＳのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段
として機能させるための制御プログラム。
【請求項８】
前記制御プログラムは、前記コンピュータを更に、
前記同一のＯＳが実行されるドメインのいずれかにおいて、ＯＳの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段
として機能させる請求項７に記載の制御プログラム。
【請求項９】
複合機において実行される請求項７または８に記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合機やプリンタなどの組み込み機器に関し、特に、組み込み機器での仮想化技術に関する。
【背景技術】
【０００２】
最近のオフィス環境においては、コストや専有面積の削減のために、コピー機能、ファクシミリ機能、プリンタ機能等の複数の機能を一台で備えた複合機が使用されている。
【０００３】
従来、このような複合機では、一つのオペレーティング・システム上にソフトウェアシステムを配置し、その中で、様々なアプリケーションを動作させていた。ところが、近年、複合機に要求される機能が多くなり、複数のアプリケーションに影響を及ぼす機能も増えてきている。そのため、一つの機能を追加する際に、複数のアプリケーション間で連携をとる必要が生じ、開発効率が悪化してしまうという問題が発生していた。
【０００４】
一方、最近、一台のハードウェアプラットフォーム上に、ハイパーバイザと呼ばれる仮想化機構を使って複数の独立した仮想マシン（これをドメインと呼ぶ）を構築し、複数のＯＳ（オペレーティングシステム）を実行する仮想化技術がサーバー管理の分野で注目されている。当該仮想化技術を利用して、複数のサーバー機能を１台のハードウェアに実装することにより、ハードウェア資源の有効活用、占有面積の削減、電力消費の削減を図ることができる。
【０００５】
当該仮想化技術においては、各ドメイン（仮想マシン）は独立しているため、当該仮想化技術を複合機に適用した場合、ソリューションを別ドメインとして追加することができ、本体システム側とは別に開発を進めることが可能となる。さらに本体システムとのインターフェイスは明確に分割されているため、基本的に本体システムに影響を与えず開発することができ、開発効率を向上させることができる。また、ソリューション開発において、内部で発生した不具合が他のドメイン（本体システム側など）に影響を与えないため、この点からも開発効率を向上させることができる。
【０００６】
しかし、これまでの仮想化技術で使用されているハイパーバイザでは、一台のハードウェア上に複数のドメインを構築する場合、各ドメインは他のドメインに影響を及ぼさないように独立しているため、複数のドメインで同一のＯＳを使用する場合でも、それぞれのドメイン内に同じＯＳのイメージが必要となる。通常のＯＳは最初からメモリにロードされていることを仮定して作られているものも多いため、同一のＯＳを起動するドメインの数だけのＯＳのロード領域が物理メモリ上に必要となる。つまり、物理メモリ上に、同じＯＳのイメージが複数存在することとなり、これはメモリ量に制約のある組込み機器等では問題となる。一方、ドメインごとに別のＯＳを使用する場合においてはこのようなメモリの無駄は起こらない。
【０００７】
なお、特開２００２−４１３０６号公報には、複数の論理区画で動作するＯＳイメージに、コンソールとオペレータ・パネルの仮想コピーを与えるハイパーバイザが開示されている。
【０００８】
また、特開２００３−１２５１２２号公報には、読取手段、記録手段、記憶手段及びネットワーク通信手段等の各種資源と、資源を使用したプリント処理、コピー処理、ファクシミリ処理等の各種処理を独自に行う複数のアプリケーションとの間に、汎用ＯＳと共通システムサービスとからなるプラットフォームを介在させて、当該プラットフォームが、各アプリケーションに対応する処理を実行するのに必要な資源の割り振り等の共通処理を行う複合装置が開示されている。
【０００９】
また、特表２００６−５０７５６１号公報には、論理的に区分されたプラットフォームのハードウェア資源すべてを仮想化することにより、独立した複数のＯＳイメージを同時に実行することができるハイパーバイザを含み、プロセッサの動的な割振りおよび割振り解除を行うデータ処理システムが開示されている。
【特許文献１】特開２００２−４１３０６号公報
【特許文献２】特開２００３−１２５１２２号公報
【特許文献３】特表２００６−５０７５６１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、同一のＯＳを実行するドメインを複数起動した場合のメモリの使用効率を向上させることを可能にすることにある。
【課題を解決するための手段】
【００１１】
本実施形態に係る仮想化システムは、１つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のＯＳが実行される仮想化システムであって、前記ハイパーバイザは、前記同一のＯＳが実行される各ドメインにおいて、ＯＳが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段と、前記ページ無効例外が発生した場合に、該当するＯＳのページが物理メモリ上にないときは、該当するＯＳのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段と、前記ページ無効例外が発生した場合に、該当するＯＳのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段とを備える。
【００１２】
この場合において、前記ハイパーバイザは、前記同一のＯＳが実行されるドメインのいずれかにおいて、ＯＳの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段を更に備えるようにしてもよい。前記仮想化システムは、例えば、複合機に実装することができる。
【００１３】
本実施形態に係るメモリ管理方法は、１つのコンピュータ上で複数のドメインの同時実行を可能とするハイパーバイザを備え、複数のドメイン内で同一のＯＳが実行される仮想化システムにおけるメモリ管理方法であって、前記ハイパーバイザは、前記同一のＯＳが実行される各ドメインにおいて、ＯＳが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがロードされていないときは、ページ無効例外を発生するようにページテーブルを設定し、前記ページ無効例外が発生した場合に、該当するＯＳのページが物理メモリ上にないときは、該当するＯＳのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定し、前記ページ無効例外が発生した場合に、該当するＯＳのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する。
【００１４】
この場合において、前記ハイパーバイザは、前記同一のＯＳが実行されるドメインのいずれかにおいて、ＯＳの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定するようにしてもよい。前記メモリ管理方法は、例えば、複合機において使用される。
【００１５】
本実施形態に係る制御プログラムは、１つのコンピュータ上で複数のドメインを同時に実行することを可能とする制御プログラム（例えば、ハイパーバイザ）であって、複数のドメイン内で同一のＯＳが実行される場合に、前記コンピュータを、前記同一のＯＳが実行される各ドメインにおいて、ＯＳが配置されるべきアドレスに対してアクセスがされた場合に、当該アドレスに対応するページがいまだロードされていないときは、ページ無効例外を発生するようにページテーブルを設定する手段、前記ページ無効例外が発生した場合に、該当するＯＳのページが物理メモリ上にないときは、該当するＯＳのページを二次記憶装置から読み出し、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段、及び、前記ページ無効例外が発生した場合に、該当するＯＳのページが既に物理メモリ上に存在するときは、そのページに対して読み込みのみ可能なようにページテーブルを設定する手段として機能させる。
【００１６】
この場合において、前記制御プログラムは、前記コンピュータを更に、前記同一のＯＳが実行されるドメインのいずれかにおいて、ＯＳの書き換え可能な領域に対する書き込みが発生した場合に、該当するページが読み込みのみ可能なようにページテーブルが設定されているために書込保護例外が発生したときは、そのページを別に確保した物理メモリ領域にコピーし、そのページに対して書き込み可能なようにページテーブルを設定する手段として機能させるようにしてもよい。前記制御プログラムは、例えば、複合機において実行される。
【発明を実施するための最良の形態】
【００１７】
以下、本実施形態について図面を参照しつつ説明する。
【００１８】
図１は、ハイパーバイザを使用した仮想化システムのソフトウェア構成の実施形態を示した図である。本システムは、例えば、複合機に実装される。なお、本システムが実装される複合機は、例えば、ＣＰＵ、メモリ等の主記憶装置、ハードディスク等の二次記憶装置、入力装置、表示装置等を備える。
【００１９】
同図に示すように、本実施形態の仮想化システム１００は、ハイパーバイザ１１０と、制御ドメイン１２０と、複数のドメイン１３０〜１５０とを備える。
【００２０】
ハイパーバイザ１１０は、ハードウェアを複数のドメインに仮想化するためのモジュールである。ハイパーバイザ１１０は、ＯＳとその上で動作するアプリケーションを１つのドメインとして扱い、１つの実コンピュータのハードウェアを、各ドメインに対して仮想マシンとして認識させる機能を提供し、１つの実コンピュータ上で複数のドメインを同時に実行することを可能にする。
【００２１】
制御ドメイン１２０は、ハイパーバイザ１１０によって最初に起動されるドメインであり、１つの仮想マシン上で動作するものである。制御ドメイン１２０においては、当該仮想マシン上で動作するＯＳが起動され、そのＯＳ上で制御プログラムが実行される。
【００２２】
複数のドメイン１３０〜１５０は、制御ドメイン１２０によって必要に応じて作成されるドメインであり、それぞれのドメイン１３０，１４０，１５０はそれぞれ別の仮想マシン上で動作する。
【００２３】
このようにドメインの数だけ仮想マシンがあるように見せて動作させるのがハイパーバイザ１１０の役割である。
【００２４】
次に、仮想化システム１００において、新たなドメインを作成する処理について説明する。
【００２５】
図２は、新たなドメインを作成するときの処理の実施形態を示す。
【００２６】
同図に示すように、ハイパーバイザ２１０が起動されたときに最初に作られる制御ドメイン２２０内では、制御ドメイン用ＯＳ２２１が動作している。制御ドメイン用ＯＳ２２１は、制御プログラム２２２を実行し、必要に応じて新たなドメインを作成する。
【００２７】
新たなドメインを作成する場合、制御プログラム２２２は、制御ドメイン用ＯＳ２２１を介して新規ドメイン作成要求をハイパーバイザ２１０内の新規ドメイン作成処理部２１１に渡す（Ｓ２０１）。当該新規ドメイン作成要求を受け取った新規ドメイン作成処理部２１１は、新規ドメイン作成処理を実行して新規ドメイン２３０を作成する（Ｓ２０２）。
【００２８】
このようにして作成される新規ドメイン２３０では、例えば、このドメイン専用のＯＳ−Ａ２３１を動作させるように指定されており、新規ドメイン作成処理部２１１は、新規ドメイン２３０用のメモリ領域にＯＳ−Ａ２３１をロードし、新規ドメイン２３０においてＯＳ−Ａ２３１を実行させる。
【００２９】
図３は、図２に示した状態から更に新規ドメインを作成する際の処理の実施形態を示す。
【００３０】
この場合も、基本的に、図２で説明した処理と同様な処理で、新規ドメイン２４０が作成される。すなわち、制御プログラム２２２は、制御ドメイン用ＯＳ２２１を介して新規ドメイン作成要求をハイパーバイザ２１０内の新規ドメイン作成処理部２１１に渡す（Ｓ３０１）。当該新規ドメイン作成要求を受け取った新規ドメイン作成処理部２１１は、新規ドメイン作成処理を実行して新規ドメイン２４０を作成し（Ｓ３０２）、新規ドメイン２４０用のメモリ領域にＯＳ−Ａ２４１をロードして、新規ドメイン２４０においてＯＳ−Ａ２４１を実行させる。
【００３１】
図４は、新規に作成されたドメイン内でＯＳを起動した後の処理の実施形態を示す。
【００３２】
新規ドメイン２３０内のＯＳ−Ａ２３１は、起動されると、決められたプロセス（タスク）を実行する。同図に示した例では、アプリケーションプロセス２３３とアプリケーションの動作に必要なミドルウェア２３２をプログラムとして実行している（Ｓ４０１）。新規ドメイン２４０でも同様の処理が行われ、当該ドメイン２４０が行うべき処理内容に応じて必要なプログラム２４２，２４３が実行される（Ｓ４０２）。
【００３３】
図４に示した状態では、新規ドメイン２３０と新規ドメイン２４０の両方で同じＯＳ−Ａが動作しているが、ハイパーバイザ２１０がＯＳのメモリ割り当てに関与しない限り、ＯＳ−Ａは別々のメモリ領域にコピーがロードされる。すなわち、ひとつの物理メモリ内に同じＯＳのコピーが２つ存在することになる。
【００３４】
本実施形態においては、ドメイン作成時にドメイン内で起動するＯＳが同じものであることをハイパーバイザ２１０に伝えておくことにより、同じＯＳは物理メモリ上には１つしかロードしないようにする。更に、ＯＳ起動時にはＯＳの全ての内容をメモリにロードせず、アクセスがあった部分のみメモリにロードするようにする。
【００３５】
次に、同じＯＳは物理メモリ上には１つしかロードしないようにすると共に、ＯＳ起動時にＯＳの全ての内容をメモリにロードせずに、アクセスがあった部分のみメモリにロードする処理について説明する。
【００３６】
ハイパーバイザは、ＯＳ起動時にはＯＳの内容をメモリにロードせず、ＯＳがドメイン内のどのアドレスにロードされるべきかを管理し、ドメイン専用のページテーブルにおいて、当該アドレスに対応するエントリを無効状態にセットしておく。また、ハイパーバイザは、二次記憶装置（例えば、ハードディスク装置）上にあるＯＳの場所を記憶しておき、ＯＳの任意のオフセットのデータを二次記憶装置からメモリにロードできるようにしておく。
【００３７】
この状態で、ドメイン内のＯＳに、スタートアドレスから実行を開始させると、ＯＳのスタート地点でメモリアクセスがあった時点で、ページ無効例外が発生することになる。
【００３８】
ハイパーバイザは、当該ページ無効例外を検出すると新たな物理メモリ領域を割り当て、二次記憶装置からそのページを物理メモリ上に読み込む。そしてそのページをドメイン内の所定のアドレスにマップするようにページテーブルを書き換えた後、例外処理から元の処理に戻ることにより、そのページの命令の実行が可能となる。
【００３９】
ハイパーバイザは、ＯＳのどのページを物理メモリのどこにロードしたかを管理する。そして、他のドメインの同じＯＳにおいてページ無効例外が発生した場合、ハイパーバイザは、当該ページがすでにメモリ上にロードされているか否かを調べ、すでにメモリ上にロードされているＯＳのページについては、同じＯＳを使用する複数のドメインで共有するようにし、当該ページが共有されるようにページテーブルを書き換える。
【００４０】
図５は、このような処理が進んだ状態を示す。すなわち、第一のドメインのＯＳ３１０と、第二のドメインのＯＳ３２０が同じＯＳである場合において、各ＯＳ３１０，３２０を構成するページと、当該ページがロードされる物理メモリ４１０の関係が示されている。
【００４１】
同図に示すように、ＯＳ３１０は、テキスト部分３１１とデータ部分３１２を備える。テキスト部分３１１は、ＯＳの書き換えできない部分であり、データ部分３１２は、ＯＳの書き換え可能な部分である。同様に、ＯＳ３２０も、書き換えできないテキスト部分３２１と書き換え可能なデータ部分３２２とを備える。
【００４２】
また、物理メモリ４１０は、ページと同じ大きさを持つ複数の領域（ページフレーム）に分割されており、各ページフレームに対して、ＯＳを構成する各ページがロードされる。ＯＳを構成するページと、当該ページがロードされたページフレームとの対応関係は、ページテーブルによって管理される。なお、ページテーブルでは、各ページごとに、当該ページが読み込み専用であるか、書込み可能であるか等の属性情報も管理される。
【００４３】
同図に示した物理メモリ４１０において、ハッチングを付した部分は、使用中の物理メモリ領域（ページフレーム）を示しており、ハッチングを付してない部分は、未使用の物理メモリ領域（ページフレーム）を示している。
【００４４】
また、各ＯＳ３１０，３２０から物理メモリ４１０に向かって伸びる矢印は、各ＯＳ３１０，３２０を構成するページと、物理メモリ４１０のページフレームとの対応関係を示している。各ＯＳ３１０，３２０を構成するページは、例えば、ＯＳ３１０及び３２０のいずれか一方の最初の読み込みアクセスに応じて、物理メモリ４１０上にロードされ、当該ページと、当該ページがロードされたページフレームとの対応関係が、ページテーブルに設定される。その後、同じページに対して、他方のＯＳから読み込みアクセスがあった場合は、物理メモリ４１０上へのロードは行われず、既にロード済みのページフレームと、他方のＯＳのページとの対応関係が、ページテーブルに設定されるのみである。
【００４５】
同図に示すように、ＯＳ３１０及び３２０の両方でアクセスがあったページについては、同じ物理メモリ領域（ページフレーム）に対応付けられている。
【００４６】
図６は、図５に示した状態において、第一のドメインのＯＳ３１０が未ロードのページへのアクセスを行った場合の処理の実施形態を示す。
【００４７】
ＯＳ３１０がＯＳ未ロードのページ３１３に対してアクセスを行うと（Ｓ６０１）、ページ無効例外が発生し、当該例外に応じて、ハイパーバイザは、物理メモリ領域を１ページ分割り当て、そこにプログラムのロードを行う（Ｓ６０２）。二次記憶装置からＯＳのデータが物理メモリ４１０上に読み込まると、ハイパーバイザは、ページテーブルの書き換えを行う（Ｓ６０３）。すなわち、ＯＳ３１０の該当ページと物理メモリ４１０の該当ページフレームとの対応関係をページテーブルに設定する。このとき、当該ページの属性情報として、当該ページが読み込み専用ページであることを示す情報もあわせて設定する。その後、例外処理から戻ることによりＯＳ３１０の該当ページへのアクセスは成功することになる。
【００４８】
以上のような処理を行うことにより、ドメイン起動時にＯＳをメモリ上にロードしておかなくても、ＯＳの動作中に必要に応じて、二次記憶装置から必要なページを物理メモリにロードすることが可能になる。
【００４９】
この処理は、通常のＯＳとプロセスの間で行われているデマンドページングの処理をハイパーバイザとドメイン内のＯＳとの間に適用したものと考えることができる。
【００５０】
図７は、複数のＯＳで共有されているページに対して書込みアクセスがあった場合の処理の実施形態を示す。
【００５１】
同図に示すように、第二のドメインのＯＳ３２０が、第一のドメインのＯＳ３１０と同じ物理メモリ領域（ページフレーム）４１１を共用しているデータ部分のページ３２３に対して書き換えを行おうとすると（Ｓ７０１）、ページテーブルは当初、読み込み専用のマップになっているため、書込み保護例外が発生する。ハイパーバイザは、この例外を受け取ると、新たなページフレーム４１２を割り当て、書き換えようとしたページ３２３の内容（ページフレーム４１１の内容）を新たに割り当てたページフレーム４１２にコピーする（Ｓ７０２）。そして、当該処理の結果を反映させるため、ページテーブルを更新する（Ｓ７０３）。すなわち、ＯＳ３２０の書き換えを行うページ３２３と、新たに割り当てられた物理メモリ４１０のページフレーム４１２との対応関係をページテーブルに設定する。このとき、当該ページの属性情報に、当該ページが書き込み可能であることを示す情報をあわせて設定する。その後、例外処理から戻ることにより、第二のドメインのＯＳ３２０ではデータ部分の書き換えが成功することになる。
【００５２】
上述したように、データ部分を書き換える前にデータをコピーしていることから、第一のドメインのＯＳ３１０からは、同じ部分では依然としてデータを書き換える前の値が見えるようになっている。
【００５３】
この処理は、通常のＯＳとプロセスとの間で行われているコピーオンライトの処理をハイパーバイザとドメイン内のＯＳとの間に適用したものと考えることができる。
【００５４】
通常のＯＳとプロセス間で行われているデマンドページングやコピーオンライトの処理は、ＯＳがＣＰＵ（メモリ管理ユニット）のページテーブルを操作することにより実現されているが、ハイパーバイザとドメイン内のＯＳとの間で行う処理の場合は、ドメイン内のＯＳがそれぞれ仮想的なページテーブルを持っているため、異なった処理が必要となる。
【００５５】
図８は、ハイパーバイザを使ったときのアドレス変換処理の実施形態を示した図である。
【００５６】
ドメイン内のＯＳ上で動いているプロセスは仮想アドレスを使用しており、当該仮想アドレスは、そのプロセスを制御しているＯＳによって、ドメインアドレスに変換される。ドメインを使わない通常のＯＳでは、物理アドレスと仮想アドレスとのマッピングをＣＰＵのページテーブルにセットするが、ドメイン内のＯＳでは物理アドレスではなくドメインアドレス（仮想マシンにおける物理アドレス）を使用し、そのドメインアドレスと仮想アドレスとのマッピングを示す仮想的なページテーブル（仮想マシンにおけるページテーブル）を扱う。
【００５７】
ハイパーバイザは、各ドメイン毎のドメインアドレスと物理アドレスとの対応関係を管理している上に、ドメイン内のＯＳが作成した仮想的なページテーブルを見ることにより、ドメインアドレスと仮想アドレスの関係も管理している。これらの情報を処理して各ドメインの仮想アドレスと物理アドレスの関連を最終的にＣＰＵのページテーブルとしてセットする。
【００５８】
図９は、ページテーブルの更新処理の実施形態を示す図である。
【００５９】
ドメイン内のＯＳは、仮想アドレスとドメインアドレスの対応関係を設定するためにページテーブルを更新するが、この処理は実際のページテーブルを書き換えるのではなく、ページテーブルの書き換え要求を行うためのハイパーコール（ドメインからハイパーバイザへのサービスコール）を通して行われる。これによりハイパーバイザは、そのドメインでの仮想アドレスとドメインアドレスとの対応関係を知ることができる。ハイパーバイザは、全てのドメインについて当該対応関係を管理し、現在どのドメインを実行しているのかという情報から、仮想アドレスと物理アドレスとの対応関係を表している実際のＣＰＵのページテーブルの更新を行う。
【００６０】
以上説明したように、本実施形態によれば、同一のＯＳを実行するドメインを複数起動した場合においても、ドメイン起動時にＯＳの全てのデータをメモリ上にロードしておく必要がなくなる。更に、ＯＳがデータの書き換えを行うまで、複数のドメインでＯＳのデータを共有することが可能となり、ハイパーバイザを使用して複数ドメインで同一のＯＳを起動した場合でも、通常より少ないメモリでの実行が可能となる。
【００６１】
以上、本発明を実施形態をもって説明したが、本発明は、複合機等の組み込み機器や、その他のメモリ資源が少ない機器に適用することができる。また、本発明は図面に示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００６２】
【図１】ハイパーバイザを使用した仮想化システムのソフトウェア構成の実施形態を示した図。
【図２】新たなドメインを作成するときの処理の実施形態を示した図。
【図３】図２に示した状態から更に新規ドメインを作成する際の処理の実施形態を示した図。
【図４】新規に作成されたドメイン内でＯＳを起動した後の処理の実施形態を示した図。
【図５】第一のドメインのＯＳ３１０と、第二のドメインのＯＳ３２０が同じＯＳである場合において、各ＯＳ３１０，３２０のページと、当該ページがロードされる物理メモリ４１０の関係を示す図。
【図６】第一のドメインのＯＳ３１０が未ロードのページへのアクセスを行った場合の処理の実施形態を示した図。
【図７】複数のＯＳで共有されているページに対して書込みアクセスがあった場合の処理の実施形態を示した図。
【図８】ハイパーバイザを使ったときのアドレス変換処理の実施形態を示した図。
【図９】ページテーブルの更新処理の実施形態を示した図。
【符号の説明】
【００６３】
１００…仮想化システム、１１０…ハイパーバイザ、１２０…制御ドメイン、１３０〜１５０…ドメイン、２１０…ハイパーバイザ、２１１…新規ドメイン作成処理部、２２０…制御ドメイン、２２１…制御ドメイン用ＯＳ、２２２…制御プログラム、２３０…新規ドメイン、２３１…ＯＳ−Ａ、２４０…新規ドメイン、２４１…ＯＳ−Ａ、３１０…第一のドメインのＯＳ、３１１…テキスト部分、３１２…データ部分、３２０…第二のドメインのＯＳ、３２１…テキスト部分、３２２…データ部分、４１０…物理メモリ
【図１】
2008077144.tif 000003
【図２】
2008077144.tif 000004
【図３】
2008077144.tif 000005
【図４】
2008077144.tif 000006
【図５】
2008077144.tif 000007
【図６】
2008077144.tif 000008
【図７】
2008077144.tif 000009
【図８】
2008077144.tif 000010
【図９】
2008077144.tif 000011