(57)【特許請求の範囲】
【請求項１】
複数の仮想マシンが動作可能な仮想マシン動作環境を有する情報処理装置であって、
他の情報処理装置とネットワークを介して通信する通信手段と、
前記通信手段を介して前記他の情報処理装置から転送されてきた、該他の情報処理装置の他の仮想マシン動作環境で動作していた仮想マシンを含む、当該情報処理装置の仮想マシン動作環境で動作する仮想マシンについて、仮想マシンを固有に識別するためのＩＤと、その仮想マシンを実現する仮想ディスクファイルを記憶する当該情報処理装置あるいは前記他の情報処理装置の物理ディスク上での前記仮想ディスクファイルの記憶位置を示すアドレス情報との対応関係を示す対応関係情報をストレージ対応表で管理する管理手段と、
前記管理手段で管理される前記ストレージ対応表を参照して、アクセス要求を発行した仮想マシンを実現する仮想ディスクファイルに対応するアドレス情報に従って、前記仮想マシンから、前記アドレス情報が示す当該情報処理装置あるいは前記他の情報処理装置の前記物理ディスク上での記憶位置の仮想ディスクファイルへのアクセスを制御する制御手段と、
前記仮想マシンとともに、その仮想マシンに対応する前記ストレージ対応表における、前記ＩＤ及び当該情報処理装置を特定する情報を含む前記アドレス情報からなる前記対応関係情報を、前記通信手段を介して前記他の情報処理装置へ転送する転送手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記転送手段は、前記仮想マシン上で実行中のジョブを前記他の情報処理装置へ転送する場合には、前記仮想マシンを一時停止した状態で該仮想マシンとその仮想マシンに対応する前記ストレージ対応表における、前記ＩＤ及び当該情報処理装置を特定する情報を含む前記アドレス情報からなる前記対応関係情報とを、前記通信手段を介して転送先の前記他の情報処理装置へ転送し、前記転送先の他の情報処理装置で前記仮想マシンを再開させることで、前記実行中のジョブを転送する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記仮想マシンを動作させるための、当該情報処理装置のメモリの空きメモリ容量に基づいて、前記仮想マシン動作環境の前記仮想マシンの動作を継続できるか否かを判定する判定手段を更に備え、
前記判定手段の判定の結果、前記空きメモリ容量が閾値以下であることで、前記仮想マシンの動作を継続できないと判定する場合、前記転送手段は、前記仮想マシンとともに、その仮想マシンに対応する前記ストレージ対応表における、前記ＩＤ及び当該情報処理装置を特定する情報を含む前記アドレス情報からなる前記対応関係情報を前記通信手段を介して前記他の情報処理装置へ転送する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記管理手段は、前記通信手段を介して転送した仮想マシンに対する前記対応関係情報については前記ストレージ対応表から削除し、前記通信手段を介して転送されてきた仮想マシンに対する前記対応関係情報については、前記ストレージ対応表へ追加する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
複数の仮想マシンが動作可能な仮想マシン動作環境を有する情報処理装置の制御方法であって、
当該情報処理装置の通信部を介して前記他の情報処理装置から転送されてきた、該他の情報処理装置の他の仮想マシン動作環境で動作していた仮想マシンを含む、当該情報処理装置の仮想マシン動作環境で動作する仮想マシンについて、仮想マシンを固有に識別するためのＩＤと、その仮想マシンを実現する仮想ディスクファイルを記憶する当該情報処理装置あるいは前記他の情報処理装置の物理ディスク上での前記仮想ディスクファイルの記憶位置を示すアドレス情報との対応関係を示す対応関係情報をストレージ対応表で管理する管理工程と、
前記管理工程で管理される前記ストレージ対応表を参照して、アクセス要求を発行した仮想マシンを実現する仮想ディスクファイルに対応するアドレス情報に従って、前記仮想マシンから、前記アドレス情報が示す当該情報処理装置あるいは前記他の情報処理装置の前記物理ディスク上での記憶位置の仮想ディスクファイルへのアクセスを制御する制御工程と、
前記仮想マシンとともに、その仮想マシンに対応する前記ストレージ対応表における、前記ＩＤ及び当該情報処理装置を特定する情報を含む前記アドレス情報からなる前記対応関係情報を、前記通信部を介して前記他の情報処理装置へ転送する転送工程と
を備えることを情報処理装置の制御方法。
【請求項６】
複数の仮想マシンが動作可能な仮想マシン動作環境を有する情報処理装置の制御をコンピュータに実行させるためのプログラムであって、
当該情報処理装置の通信部を介して前記他の情報処理装置から転送されてきた、該他の情報処理装置の他の仮想マシン動作環境で動作していた仮想マシンを含む、当該情報処理装置の仮想マシン動作環境で動作する仮想マシンについて、仮想マシンを固有に識別するためのＩＤと、その仮想マシンを実現する仮想ディスクファイルを記憶する当該情報処理装置あるいは前記他の情報処理装置の物理ディスク上での前記仮想ディスクファイルの記憶位置を示すアドレス情報との対応関係を示す対応関係情報をストレージ対応表で管理する管理工程と、
前記管理工程で管理される前記ストレージ対応表を参照して、アクセス要求を発行した仮想マシンを実現する仮想ディスクファイルに対応するアドレス情報に従って、前記仮想マシンから、前記アドレス情報が示す当該情報処理装置あるいは前記他の情報処理装置の前記物理ディスク上での記憶位置の仮想ディスクファイルへのアクセスを制御する制御工程と、
前記仮想マシンとともに、その仮想マシンに対応する前記ストレージ対応表における、前記ＩＤ及び当該情報処理装置を特定する情報を含む前記アドレス情報からなる前記対応関係情報を、前記通信部を介して前記他の情報処理装置へ転送する転送工程と
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の仮想マシンが動作可能な仮想マシン動作環境を有する情報処理装置及びその制御方法、プログラムに関するものである。
【背景技術】
【０００２】
ネットワーク環境の普及に伴い、ネットワークに接続可能なプリンタ装置やＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）が登場し、オフィス環境において、複数のユーザで複数のＭＦＰを共有して使用する環境が一般的になってきた。
【０００３】
このような環境では、ある機器でジョブが実行不可能になった場合でも、ネットワーク上の別の機器ではジョブを実行できる場合があるため、ジョブを他の機器へ転送して実行する転送ジョブ技術が提案されている（例えば、特許文献１参照）。
【０００４】
このような転送ジョブ技術では、ジョブを転送するために、ジョブを何らかの静的な中間データに変換しなければならない制約がある。
【０００５】
実行中のジョブは、ハードディスク上の一時ファイル、ＯＳが管理するメモリ領域等に演算途中の一時データをストアするため、この転送ジョブ技術のみでは実行中のジョブタを任意のタイミングで単純に転送することはできない。
【０００６】
例えば、用紙なし、トナーなし等を理由にジョブを転送する場合は、ジョブを実行できないことがわかってから中間データへ変換して転送すればよい。しかしながら、メモリ不足等で中間データ変換の演算すらできないことが原因でジョブを転送する場合は、上記転送ジョブ技術では転送不可能である。
【０００７】
この場合は、演算中のデータを一旦破棄して、転送先で演算をやり直す手順になるが、破棄した分の演算が２重にかかるため必要以上にプリント時間がかかる問題がある。
【０００８】
また、実行中の演算が複雑なＰＤＬデータのレンダリング等であった場合、数十分の演算時間のロスになる。
【０００９】
一方、ＶＭｗａｒｅ，ｘｅｎ等に代表される仮想マシン技術がサーバ台数の削減目的などで、一般的になってきている。
【００１０】
仮想マシン技術では、ＯＳを含め機器上で動作する全プログラムを一時停止し、この停止状態（ＣＰＵレジスタ上のデータ、ＲＡＭ上のデータ）を仮想マシンの状態ファイルとして保存し、この停止状態からの再開を可能にするレジューム機能が提供されている。
【００１１】
上記転送ジョブ技術と上記仮想マシン技術のレジューム機能を組み合わせて使うことで、実行中のジョブを転送できる。
【００１２】
つまり、動作中のジョブを仮想マシン毎に一時停止して、仮想マシンの状態ファイルを転送して、転送先で再開することで実行中のジョブを転送できる（特許文献１）。
【特許文献１】特開平７−１２１３３０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、仮想マシンが実際に動作を再開するには、仮想マシンがアクセスするハードディスク等のストレージが必要になる。ここで、仮想マシンを再開するために必要な１００Ｇｂｙｔｅ程度のハードディスクデータをネットワーク経由で転送することは、転送時間、転送先で必要になるストレージ容量の観点から現実的ではない。
【００１４】
そのため、一般的に仮想マシンを転送する場合は、ストレージをあらかじめネットワーク上のサーバへ配置しておき、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）等のＯＳが提供する仕組みを用いることでアクセスする構成が取られている。
【００１５】
しかしながら、ＭＦＰではプリント処理中にストレージに画像処理の一時ファイルである画像データを頻繁に読み書きするため、ＣＰＵとストレージの間で大量のトラフィックが発生し、このトラフィック速度がプリント速度に直結する。
【００１６】
この場合、ストレージがネットワーク上に存在すると、プリント速度が低下するため、常に、ネットワーク上にストレージを配置する構成はプリントパフォーマンスの観点から問題となる。
【００１７】
本発明は上記の課題を解決するためになされたものであり、ネットワーク上の機器間で仮想マシンを転送してジョブを処理する場合のパフォーマンスを改善することができる情報処理装置及びその制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
複数の仮想マシンが動作可能な仮想マシン動作環境を有する情報処理装置であって、
他の情報処理装置とネットワークを介して通信する通信手段と、
前記通信手段を介して前記他の情報処理装置から転送されてきた、該他の情報処理装置の他の仮想マシン動作環境で動作していた仮想マシンを含む、当該情報処理装置の仮想マシン動作環境で動作する仮想マシンについて、仮想マシンを固有に識別するためのＩＤと、その仮想マシンを実現する仮想ディスクファイルを記憶する当該情報処理装置あるいは前記他の情報処理装置の物理ディスク上での前記仮想ディスクファイルの記憶位置を示すアドレス情報との対応関係を示す対応関係情報をストレージ対応表で管理する管理手段と、
前記管理手段で管理される前記ストレージ対応表を参照して、アクセス要求を発行した仮想マシンを実現する仮想ディスクファイルに対応するアドレス情報に従って、前記仮想マシンから、前記アドレス情報が示す当該情報処理装置あるいは前記他の情報処理装置の前記物理ディスク上での記憶位置の仮想ディスクファイルへのアクセスを制御する制御手段と、
前記仮想マシンとともに、その仮想マシンに対応する前記ストレージ対応表における、前記ＩＤ及び当該情報処理装置を特定する情報を含む前記アドレス情報からなる前記対応関係情報を、前記通信手段を介して前記他の情報処理装置へ転送する転送手段と
を備える。
【発明の効果】
【００２６】
本発明によれば、ネットワーク上の機器間で仮想マシンを転送してジョブを処理する場合のパフォーマンスを改善することができる情報処理装置及びその制御方法、プログラムを提供できる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００２８】
図１は本発明に係る電子部品としてのコントローラユニットが搭載された画像入出力装置（データ処理装置）の一実施形態を示すブロック構成図である。
【００２９】
画像入出力装置１は、イーサネット（登録商標）等のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）４００を介してホストコンピュータ（本実施形態では、第一、第二のホストコンピュータ３、４）に接続されている。
【００３０】
画像入出力装置（システム）１は、画像データの読取処理を行うリーダ部５と、画像データの出力処理を行うプリンタ部６と、画像データの入出力操作を行うキーボード２及び画像データや各種機能の表示を行う液晶パネルを備える操作部７とを備える。また、画像入出力装置１は、制御プログラムや画像データ等のデータが予め書き込まれたハードディスクドライブ８及び９を装着している。
【００３１】
また、画像入出力装置１は、画像入出力装置１の各構成要素に接続されて、該構成要素に接続されて該構成要素を制御する単一の電子部品からなるコントローラユニット１１０を備える。
【００３２】
リーダ部５は、原稿用紙を搬送する原稿給紙ユニット（ＤＦユニット）１０と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナユニット１１とを有する。
【００３３】
プリンタ部６は、記録用紙を収容する複数段の給紙カセットを備える給紙ユニット１２と画像データを記録用紙に印刷（転写、定着）するマーキングユニット１３を有する。また、プリンタ部６は、印刷された記録用紙にソート処理やステイプル処理等の後処理を施して、外部に排出する排紙ユニット１４とを有している。
【００３４】
ここで、画像入出力装置１は、画像を含む各種情報（データ）を入力して、目的とする処理を実行して出力することができる情報処理装置として捉えることもできる。
【００３５】
次に、リーダ部５及びプリンタ部６の詳細を示す内部構造について、図２を用いて説明する。
【００３６】
図２は本発明の実施形態のリーダ部及びプリンタ部の詳細を示す図である。
【００３７】
リーダ部５はプリンタ部６に載置されている。そして、リーダ部５では、原稿給紙ユニット１０に積層された原稿用紙がその積層順に従って、先頭から順次１枚ずつプラテンガラス１５上に給送される。スキャナユニット１１で、所定の読取動作が終了した後、読み取られた原稿用紙はプラテンガラス１５上から原稿給紙ユニット１０に排出される。
【００３８】
また、スキャナユニット１１では、原稿用紙がプラテンガラス１５上に搬送されてくるとランプ１６が点灯し、次いで光学ユニット１７の移動を開始させ、読取位置で固定する。
【００３９】
光学ユニット１７は、搬送される原稿用紙を下方から照射し、走査する。そして、原稿用紙からの反射光は、複数のミラー１８〜２０、及びレンズ２１を介してＣＣＤイメージセンサ（以下、単に「ＣＣＤ」と記す）２２へと導かれ、走査された原稿画像はＣＣＤ２２によって読み取られる。そして、ＣＣＤ２２で読み取られた画像データは、所定の処理が施された後、コントローラユニット１１０（図２では図示省略）に転送される。あるいは、原稿プラテン上に載置された原稿を同様にランプ１６を点灯し、次いで光学ユニット１７の移動を開始させ、原稿用紙を下方から照射し、走査することで、走査された原稿画像をＣＣＤ２２によって読み取ることが可能である。
【００４０】
以上の手順で送出されたリーダ部５からの画像データは、スキャナコネクタ５６（図１）を介してコントローラユニット１１０に送出される。
【００４１】
次いで、プリンタ部６では、コントローラユニット１１０から出力された画像データに対応するレーザ光が、レーザドライバ２３により駆動されるレーザ発光部２４から発光される。このレーザ光によって、マーキングユニット１３内の感光ドラム２５にレーザ光に応じた静電潜像が形成され、現像器２６により静電潜像の部分に現像剤が付着する。
【００４２】
一方、レーザ光の照射開始と同期したタイミングで、給紙ユニット１２（給紙カセット１２ａ、１２ｂ）から記録用紙が給紙されて転写ユニット２７に搬送され、感光ドラム２５に付着している現像剤を記録用紙に転写する。画像データが転写された記録用紙は定着ユニット２８に搬送され、定着ユニット２８における加熱・加圧処理により画像データが記録紙に定着される。
【００４３】
そして、画像データを記録用紙に片面記録する場合は、定着ユニット２８を通過した記録用紙が排出ローラ２９によってそのまま排紙ユニット１４に排出される。排紙ユニット１４は、排出された記録用紙を束ねて記録用紙の仕分けを行い、また、仕分けされた記録用紙のステイプル処理を行う。
【００４４】
また、画像データを記録用紙に両面記録する場合は、排出ローラ２９まで記録用紙を搬送した後、排出ローラ２９の回転方向を逆転させる。その後、フラッパ３０によって再給紙搬送路３１へと導かれ、再給紙搬送路３１に導かれた記録用紙は上述と同様にして転写ユニット２７に搬送される。
【００４５】
コントローラユニット１１０は、上述したように単一の電子部品で構成される。ここで、コントローラユニット１１０は、リーダ部５から読み取った画像データをコードデータに変換し、ＬＡＮ４００を介して第一及び第二のホストコンピュータ３及び４に送信するスキャナ機能を有する。また、コントローラユニット１１０は、ホストコンピュータ３及び４からＬＡＮ４００を介して受信したコードデータを画像データに変換し、プリンタ部６に出力するプリンタ機能、その他の機能ブロックを有している。
【００４６】
次に、コントローラユニット１１０の詳細構成について、図３を用いて説明する。
【００４７】
図３は本発明の実施形態のコントローラユニットの詳細構成を示すブロック図である。
【００４８】
メインコントローラ３２は、ＣＰＵ３３とバスコントローラ３４と後述する各種コントローラ回路を含む機能ブロックとを内蔵する。さらに、メインコントローラ３２は、ＲＯＭ  Ｉ／Ｆ３５を介してＲＯＭ３６と接続され、また、ＤＲＡＭ  Ｉ／Ｆ３７を介してＤＲＡＭ３８と接続される。
【００４９】
さらに、メインコントローラ３２は、コーデックＩ／Ｆ３９を介してコーデック４０と接続され、また、ネットワークＩ／Ｆ４１（通信部）を介してネットワークコントローラ４２と接続されている。
【００５０】
ＲＯＭ３６は、メインコントローラ３２のＣＰＵ３３で実行される各種制御プログラムや演算データを記憶している。ＤＲＡＭ３８は、ＣＰＵ３３が動作するための作業領域や画像データを蓄積するための領域として使用される。コーデック４０は、ＤＲＡＭ３８に蓄積されたラスタイメージデータを、ＭＨ／ＭＲ／ＭＭＲ／ＪＢＩＧ等の周知の圧縮方式で圧縮し、また、圧縮データをラスタイメージデータに伸長する。また、コーデック４０にはＳＲＡＭ４３が接続されており、このＳＲＡＭ４３は、コーデック４０の一時的な作業領域として使用される。
【００５１】
ネットワークコントローラ４２は、コネクタ４４を介してＬＡＮ４００との間で所定の制御動作を行う。
【００５２】
また、メインコントローラ３２は、スキャナバス４５を介してスキャナＩ／Ｆ４６に接続され、プリンタバス４７を介してプリンタＩ／Ｆ４８に接続される。
【００５３】
メインコントローラ３２は、さらにＰＣＩバス等の汎用高速バス４９を介して拡張ボードを接続するための拡張コネクタ５０及び入出力制御部（Ｉ／Ｏ制御部）５１に接続されている。
【００５４】
Ｉ／Ｏ制御部５１は、リーダ部５やプリンタ部６との間で制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ５２を２チャンネル装備している。
【００５５】
このシリアル通信コントローラ５２は、Ｉ／Ｏバス５３を介してスキャナＩ／Ｆ４６及びプリンタＩ／Ｆ４８に接続されている。
【００５６】
スキャナＩ／Ｆ４８は、第一の調歩同期シリアルＩ／Ｆ５４及び第一のビデオＩ／Ｆ５５を介してスキャナコネクタ５６に接続され、さらに、スキャナコネクタ５６はリーダ部５のスキャナユニット１１に接続されている。
【００５７】
そして、スキャナＩ／Ｆ４６は、スキャナユニット１１から受信した画像データに対し所望の２値化処理や、主走査方向及び／又は副走査方向の変倍処理を行う。また、スキャナＩ／Ｆ４６は、スキャナユニット１１から送信されてきたビデオ信号に基づいて制御信号を生成し、スキャナバス４５を介してメインコントローラ３２に転送する。
【００５８】
プリンタＩ／Ｆ４８は、第２の調歩同期シリアルＩ／Ｆ５７及び第２のビデオＩ／Ｆ５８を介してプリンタコネクタ５９に接続され、さらに、プリンタコネクタ５９はプリンタ部６のマーキングユニット１３に接続されている。
【００５９】
そして、プリンタ／Ｆ４８は、メインコントローラ３２から出力された画像データにスムージング処理を施して、その画像データをマーキングユニット１３に出力する。また、プリンタ／Ｆ４８は、マーキングユニット１３から送信されてきたビデオ信号に基づいて、生成された制御信号をプリンタバス４７を介してメインコントローラ３２に転送する。
【００６０】
ＣＰＵ３３は、ＲＯＭ３６からＲＯＭ  Ｉ／Ｆ３５を介して読み込まれた制御プログラムに基づいて動作する。
【００６１】
例えば、ＣＰＵ３３は、第１及び第２のホストコンピュータ３及び４から受信したＰＤＬ（ページ記述言語）データを解釈し、ラスタイメージデータの展開処理を行う。
【００６２】
また、バスコントローラ３４は、スキャナＩ／Ｆ４６、プリンタＩ／Ｆ４８、拡張コネクタ５０を介して接続された外部機器から入出力されるデータ転送を制御し、特に、バス競合時のアービトレーション（調停）やＤＭＡデータ転送の制御を行う。即ち、バスコントローラ３４は、例えば、ＤＲＡＭ３８とコーデック４０間のデータ転送、スキャナユニット１１からＤＲＡＭ３８へのデータ転送、ＤＲＡＭ３８からマーキングユニット１３へのデータ転送等を制御する。そして、これらのデータ転送は、ＤＭＡ転送によって実現される。
【００６３】
Ｉ／Ｏ制御部５１は、ＬＣＤコントローラ６０及びキー入力Ｉ／Ｆ６１を介してパネルＩ／Ｆ６２に接続されている。パネルＩ／Ｆ６２は、操作部７に接続されている。
【００６４】
Ｉ／Ｏ制御部５１は、不揮発性メモリとしてのＥＥＰＲＯＭ６６に接続されている。また、Ｉ／Ｏ制御部５１は、Ｅ−ＩＤＥコネクタ６３を介してハードディスクドライブ８及び９に接続され、さらに、機器内で管理する日付と時刻を更新／保存するリアルタイムクロックモジュール６４に接続されている。
【００６５】
尚、リアルタイムクロックモジュール６４は、バックアップ用電池６５に接続されて、このバックアップ用電池６５によりバックアップされている。
【００６６】
次に、メインコントローラ３２の内部詳細構成について、図４を用いて説明する。
【００６７】
図４は本発明の実施形態のメインコントローラの内部詳細を示すブロック構成図である。
【００６８】
バスコントローラ３４は、４×４の６４ビットクロスバススイッチで構成され、６４ビットのプロセッサバス（Ｐバス）６７を介してＣＰＵ３３に接続される。また、バスコントローラ３４は、メモリ専用のローカルバス（Ｍバス）６８を介してキャッシュメモリ６９ａを備えるメモリコントローラ（ＭＣ）６９に接続されている。
【００６９】
尚、メモリコントローラ６９は、ＲＯＭ３６やＤＲＡＭ３８等のメモリ類と接続され、これらのメモリ類の動作を制御する。
【００７０】
さらに、バスコントローラ３４は、グラフィックスバス（Ｇバス）７０を介してＧバスアービタ７１及びスキャン・プリンタコントローラ７２と接続されている。また、バスコントローラ３４は、入出力バス（Ｂバス）７３を介して、Ｂバスアービタ７４、Ｇバスアービタ７１、インタラプトコントローラ７５、及び各種機能ブロックと接続されている。  ここで、各種機能ブロックには、パワーマネージメント（電力管理）ユニット７６、ＵＡＲＴ等のシリアルＩ／Ｆコントローラ７７、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コントローラ（ＵＳＢＣ）７８がある。
【００７１】
また、各種機能ブロックには、ＩＥＥＥ１２８４等のパラレルＩ／Ｆコントローラ７９、ＬＡＮコントローラ８０、汎用入出力コントローラ８１がある。
【００７２】
また、各種機能ブロックには、Ｂバス７３と外部バスであるＰＣＩバスとの間でＩ／Ｆ動作を司るＰＣＩバスインタフェース８２、及びスキャナ・プリンタコントローラ７２がある。
【００７３】
Ｂバスアービタ７４は、Ｂバス７３を協調制御するアービトレーションであり、Ｂバス７３のバス使用要求を受け付け、調停の後、使用許可が選択された一つのマスタに与えられ、これにより同時に２つ以上のマスタがバスアクセスを行うのを禁止している。尚、アービトレーション方式は、３段階の優先権を有し、それぞれの優先権に複数のマスタが割り当てられる。
【００７４】
インタラプトコントローラ７５は、上述の各機能ブロック及びコントローラユニット１１０の外部からインタラプトを集積し、ＣＰＵ３３がサポートする各種コントローラ（７２、７７〜８１）及びノンマスカブルインタラプト（ＮＭＩ）に再配分する。
【００７５】
電力管理ユニット７６は、機能ブロック毎に電力を管理し、さらに１チップで構成されている電子部品としてコントローラユニット１１０の消費電力量の監視を行う。即ち、コントローラユニット１１０は、ＣＰＵ３３を内蔵した大規模なＡＳＩＣ（特定用途向けＩＣ）で構成されている。このため、全ての機能ブロックが同時に動作すると大量の熱を発生して、コントローラユニット１１０自体が破壊されてしまう虞がある。
【００７６】
そこで、このような事態を防止するために、電力管理ユニット７６は、各機能ブロック毎に消費電力を管理し、各機能ブロックの消費電力量はパワーマネージメントレベルとして電力管理ユニット７６に集積される。そして、電力管理ユニット７６では、各機能ブロックの消費電力量を合計し、この消費電力量が限界消費電力を超えないように各機能ブロックの消費電力量を一括して監視する。
【００７７】
Ｇバスアービタ７１は、中央アービトレーション方式によりＧバス７０を協調制御しており、各バスマスタに対して専用の要求信号と許可信号とを有する。バスマスタへの優先権の付与方式として、全てのバスマスタを同じ優先権として、公平にバス権を付与する公平アービトレーションモードを指定できる。または、いずれか一つのバスマスタに対して優先的にバスを使用させる優先アービトレーションモードを指定することができる。
【００７８】
次に、このような構成の画像入出力装置上で動作する仮想マシンのソフトウェア構成について、図５を用いて説明する。
【００７９】
図５は本発明の実施形態の仮想マシンを実現するソフトウェア構成を示す図である。
【００８０】
仮想マシン１０６は、実マシン１００上で動作する１つのプログラムとして実現され、実マシン１００上では他の仮想マシン１１３や仮想マシン動作環境１０２と同時実行される構成を取る。また、仮想マシン動作環境１２０では、仮想マシン１０６及び１１３を含む複数の仮想マシンが動作可能である。
【００８１】
仮想マシン１０６上で動作するソフトウェア（ＯＳ１１２、制御ソフトウェア１１１等）も、実マシン１００上のソフトウェアと同様にＣＰＵ、ＲＡＭ、ディスク等のデバイスと相互作用を行いながら処理を実現する。この時、仮想マシン１０６上のソフトウェアから見えるデバイス（仮想ＲＡＭ１０７、仮想ディスク１１４、仮想ＣＰＵ１０８等）は、実マシン１００のデバイスではなく、仮想デバイスとなる。
【００８２】
仮想デバイスは全て仮想マシン１０６上のソフトウェアモジュールとして実現され、実マシン１００をエミュレーションしている。
【００８３】
例えば、仮想ＲＡＭ１０７は、仮想マシン１０６のプロセスのワークメモリ上に領域を割り当て、実ＲＡＭ１０１と全く同じレイアウトとＩ／Ｆで値を保持することで、仮想マシン１０６上のソフトウェアに実ＲＡＭ１０１がそこにあるように見せかける。
【００８４】
また、例えば、仮想ＣＰＵ１０８は、仮想マシン１０６内のモジュールとして実ＣＰＵ１０３と全く同じ振る舞いを実現する。具体的には、仮想ＣＰＵ１０８は、ワークメモリ上に割り当てた領域に、実ＣＰＵ１０３の実レジスタ１０４と全く同じレジスタセットを保持することで、仮想マシン１０６上のソフトウェアに実ＣＰＵ１０３がそこにあるように見せかける。
【００８５】
また、例えば、仮想ディスク１１４は、実ディスク１０５のビットパターンを保持する１つのファイルとして実現され、ファイルの実体は実マシン１００上の実ディスク１０５に保持される。さらに、仮想ディスク１１４は、仮想マシン１０６が実ディスク１０５と全く同じＩ／Ｆでファイルの内容を見せることで、仮想マシン１０６上のソフトウェアに実ディスク１０５がそこにあるように見せかける。
【００８６】
通常時は、上記の構成で動作していることを踏まえて、一時停止時の動作について、以下に説明する。
【００８７】
仮想マシン動作環境１０２から仮想マシン１０６に一時停止が指示されると、仮想マシン１０６は、そのタイミングで仮想ＣＰＵ１０８の動作を停止し、仮想レジスタ１０９の内容を実マシン１００上のファイルとして実ディスク１０５に書き出す。
【００８８】
次に、仮想ＲＡＭ１０７上のビットパターンを実マシン１００上のファイルとして実ディスク１０５に書き出す。その後、仮想マシン１０６のプロセスを終了して、実ＲＡＭ１０１上からいなくなる。
【００８９】
次に、一時停止後に、仮想マシン１０６を再開する時の動作について説明する。
【００９０】
仮想マシン動作環境１０２から仮想マシン１０６の再開が指示されると、仮想マシン１０６のプロセスが起動する。この時、まだ、仮想ＣＰＵ１０８のモジュールは動作していない。
【００９１】
次に、実ディスク１０５上のファイルから前回終了時の仮想レジスタ１０９の値を読み込み仮想ＣＰＵ１０８にセットする。
【００９２】
次に、実ディスク１０５上のファイルから前回終了時の仮想ＲＡＭ１０７の値を読み込み、仮想ＲＡＭ１０７にセットする。
【００９３】
次に、この状態で仮想ＣＰＵ１０８のモジュールの動作を開始させる。
【００９４】
以上の動作を行うことで、仮想マシン１０６上で様々なソフトウェアが動作中であっても、仮想ＣＰＵ１０８を含めその瞬間の状態を保持したまま動作を中断し、任意のタイミングで動作を再開することができる。
【００９５】
次に、上述のような構成の画像入出力装置と仮想マシンの構成を例に挙げ、本発明の具体的な実施形態を、図６〜図１２を用いて説明する。
【００９６】
図６は本発明の実施形態のストレージアクセスと仮想マシンの転送のシーケンスを示す図である。
【００９７】
特に、図６では、ストレージアクセスと仮想マシンの転送のシーケンスについてモジュール間の関係を中心に説明する。
【００９８】
尚、ストレージアクセスとは、装置に搭載されるハードディスク等のストレージデバイス（記憶部）へのアクセスを意味する。
【００９９】
転送元機器２００上で通常動作時にストレージアクセスが発生すると、仮想マシン２０２上で動作するＯＳ２０３は、仮想マシン動作環境２０１が提供する仮想ディスクへアクセスする。仮想ディスクへのアクセスが発生すると、仮想マシン動作環境２０１内で動作する、ストレージサービス２０４へアクセス要求が発生する（ステップＳ１）。
【０１００】
ストレージサービス２０４がアクセス要求を受けると、ストレージとの対応関係情報（ストレージ対応表）を元に仮想ディスクファイル２０８へアクセスし、仮想マシン２０２へストレージのデータを返す（ステップＳ２）。
【０１０１】
メモリ監視サービス２０６は、ＯＳ２０３を監視し、メモリ枯渇を検知すると仮想マシン２０２の転送動作を開始する（ステップＳ３）。
【０１０２】
尚、メモリ枯渇とは、例えば、メモリの記憶容量に対して、空きメモリ容量が閾値以下になっている場合を意味する。また、この閾値は、空きメモリ容量不足に起因して、仮想マシンのデバイスが正常に動作しない、処理が正常に実行できない、継続できない等の通常動作ができない場合の空きメモリ容量に基づいて決定される。このように、メモリ監視サービス２０６は、仮想マシンが通常動作を継続できるか否かを判定する判定機能を実現する。そして、判定の結果、仮想マシンの通常動作が継続できない場合、仮想マシンは転送される。
【０１０３】
メモリ監視サービス２０６は、仮想マシン動作環境２０１内で動作するジョブ転送サービス２０５へ転送指示を発行する（ステップＳ４）。
【０１０４】
ジョブ転送サービス２０５は、転送指示を受信すると、仮想マシン２０２に対して動作の一時中断を指示する中断指示を発行する（ステップＳ５）。
【０１０５】
中断指示を受信した仮想マシン２０２は、動作を停止し、仮想マシン動作環境２０１は、仮想マシン２０２の状態のデータをスナップショットデータ２０９として実ディスク２０７へ書き込む（ステップＳ６）。ここで、仮想マシン２０２の状態のデータは、仮想マシン２０２の仮想ＲＡＭのデータ、仮想ＣＰＵのレジスタのデータを含んでいる。
【０１０６】
ジョブ転送サービス２０５は、仮想マシン２０２の停止を確認した後、転送先機器２５０上で動作する仮想マシン動作環境２５１の内部で動作するジョブ転送サービス２５５へ、ＬＡＮ２８０を介して通信を開始する。そして、ジョブ転送サービス２０５は、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）データとして、仮想マシン２０２のスナップショットデータ２０９と、ストレージとの対応関係情報を転送する（ステップＳ７）。
【０１０７】
ジョブ転送サービス２５５は、スナップショットデータ２０９を受信すると、転送先機器２５０の実ディスク２５７へスナップショットデータ２５９として書き込む（ステップＳ８）。
【０１０８】
ジョブ転送サービス２５５は、スナップショットデータ２５９の書込が完了したことを確認した後、仮想マシン２５２に動作再開を指示する（ステップＳ９）。尚、メモリ監視サービス２５６は、メモリ監視サービス２０６と同様の動作を実現する。
【０１０９】
仮想マシン動作環境２５１は、スナップショットデータ２５９を読み込み、仮想マシン２５２のプロセスを開始し、スナップショットデータ２５９に基づき仮想ＣＰＵレジスタと仮想ＲＡＭにデータを設定し、仮想ＣＰＵの動作を開始する（ステップＳ１０）。
【０１１０】
これにより、仮想マシン２５２は、仮想マシン２０２が停止した時点からの続きの処理を開始することができる。
【０１１１】
仮想マシン２５２上のＯＳ２５３からディスクアクセスが発生すると、仮想マシン２５２は、ストレージサービス２５４へアクセス要求を発行する（ステップＳ１１）。
【０１１２】
ストレージサービス２５４は、対応関係情報を元に、ＬＡＮ２８０を介して転送元機器２００で動作するストレージサービス２０４への通信を開始し、アクセス要求を発行する（ステップＳ１２）。
【０１１３】
ストレージサービス２０４は、アクセス要求に従い、仮想ディスクファイル２０８へアクセスし、ストレージのデータを返す（ステップＳ１３）。
【０１１４】
上記のシーケンス内で説明したストレージとの対応関係について、図７〜図９を用いて説明する。
【０１１５】
図７は本発明の実施形態中の転送前のストレージ対応表の状態を示す図である。図８は本発明の実施形態の転送時のストレージ対応表の状態を示す図である。図９は本発明の実施形態の転送後のストレージ対応表の状態を示す図である。
【０１１６】
転送元機器において、その仮想マシンの動作時にストレージへのアクセス要求がある場合は、転送元機器で動作するストレージサービスが持つストレージ対応表には、ローカルディレクトリに存在するファイルが記述されている。そのため、ローカルのファイルへのストレージサービスがアクセスを行うことになる。
【０１１７】
例えば、図７ではストレージ対応表に、仮想マシンｖｍ１がアクセスする仮想ディスクファイルを管理するｍａｓｔｅｒディスクは、ローカルの実ディスクの／ｄｉｓｋ／ｖｍ１ｍ．ｉｍｇであると記述されている。そのため、ストレージサービスは、ローカルの実ディスクの／ｄｉｓｋ／ｖｍ１ｍ．ｉｍｇを仮想ディスクファイルとして使用する。
【０１１８】
仮想マシンの転送時には、転送元機器のストレージサービスが持つストレージ対応表から、転送対象の仮想マシンに対するエントリを削除する。
【０１１９】
ここで、ストレージ対応表の各エントリは、仮想マシンを固有に識別するためのＩＤ、仮想マシンを実現する仮想ディスクファイルを記憶管理する物理ディスク名、その所在（記憶位置）を示すアドレス情報であるパス名で構成される。図７では、ＩＤが「ｖｍｉｄ」、物理ディスク名が「ｓｔｏｒａｇｅ」、パス名が「Ｖｉｒｔｕａｌ  ｄｉｓｋ  ｆｉｌｅ」に対応する。
【０１２０】
次に、転送元機器のストレージサービスが転送対象の仮想マシンに対応するストレージ対応関係を示す対応関係情報を転送先機器のストレージサービスに通知する。これを受けて、転送先機器のストレージサービスが持つストレージ対応表に転送対象の仮想マシンのエントリを追加する。
【０１２１】
例えば、図８では、転送元機器のストレージ対応表の「ｖｍｉｄ」が「ｖｍ１」であるエントリが全て削除されて、転送先機器のストレージ対応表に「ｖｍｉｄ」が「ｖｍ１」であるエントリが追加される。このとき、転送された仮想マシンのエントリの「Ｖｉｒｔｕａｌ  ｄｉｓｋ  ｆｉｌｅ」に記述されるファイル名は、転送元機器を特定する情報（図８では、ＩＰアドレス）が記述されている。
【０１２２】
転送先機器において、仮想マシンが動作時にストレージへのアクセス要求がある場合は、転送先機器で動作するストレージサービスが持つストレージ対応表には、リモートディレクトリに存在するファイルが記述されている。そのため、リモートのファイルへストレージサービスがアクセスを行うことになる。
【０１２３】
例えば、図９では、ストレージ対応表に「ｖｍ１」のｍａｓｔｅｒディスクは、１９２.１６８.１２３.１（転送元機器のＩＰアドレス）の実ディスクの／ｄｉｓｋ／ｖｍ１ｍ．ｉｍｇであると記述されている。そのため、ストレージサービスは、リモートの実ディスクの／ｄｉｓｋ／ｖｍ１ｍ．ｉｍｇを仮想ディスクとして使用する。
【０１２４】
このように、転送先機器及び転送元機器それぞれにおいて、仮想マシンの転送に伴い転送する対応関係情報に基づいて、各機器が管理するストレージ対応表の内容を更新（エントリの削除／追加）する。
【０１２５】
次に、ジョブの開始から終了までの間での転送処理の転送元機器のフローについて、図１０を用いて説明する。
【０１２６】
図１０は本発明の実施形態の転送元機器におけるジョブ開始からジョブ終了までの転送処理を示すフローチャートである。
【０１２７】
ジョブ（例えば、ＰＤＬデータ）が投入されると、ジョブ開始状態になる（ステップＳ１００）。ジョブ開始状態になると、仮想マシンは、そのジョブのレンダリングが終了したか否かを判定する（ステップＳ１０１）。このレンダリングは、例えば、仮想マシン上で実現されるコントローラソフトウェアのＰＤＬレンダラによって実現される（図６）。
【０１２８】
レンダリングが終了している場合（ステップＳ１０１でＹＥＳ）、仮想マシンは、残りの処理を実行後、ジョブの終了状態へ遷移する（ステップＳ１１０）。
【０１２９】
一方、レンダリングが終了していない場合（ステップＳ１０１でＮＯ）、メモリ監視サービスは、メモリ不足であるか否かを判定する（ステップＳ１０２）。メモリ不足でない場合（ステップＳ１０２でＮＯ）、ステップＳ１０１に戻る。一方、メモリ不足である場合（ステップＳ１０２でＹＥＳ）、仮想マシンは、転送先機器が存在するか否かを判定する（ステップＳ１０３）。
【０１３０】
尚、転送先機器は、予め決められた転送先機器であってもよいし、負荷の軽い機器を適応的に探すロジックであってもよい。また、メモリ不足であるか否かの判定は、上述のように、例えば、空きメモリ容量が閾値以下の場合にメモリ不足と判定する。
【０１３１】
転送先機器が存在しない場合（ステップＳ１０３でＮＯ）、ステップＳ１０１へ戻る。一方、転送先機器が存在する場合（ステップＳ１０３でＹＥＳ）、メモリ監視サービスは、ジョブ転送サービスへ転送指示を発行する（ステップＳ１０４）。
【０１３２】
転送指示を受信すると、ジョブ転送サービスは、仮想マシンの中断指示を発行する（ステップＳ１０５）。
【０１３３】
中断が完了すると、ジョブ転送サービスは、転送先機器のジョブ転送サービスへ仮想マシンデータ（ＶＭデータ）、即ち、仮想メモリのスナップショットデータと、仮想レジスタの内容と、仮想ディスクのファイルパスを転送する（ステップＳ１０６）。
【０１３４】
ジョブ転送サービスは、転送が完了したら転送先機器でレンダリングが終了して仮想マシンデータが転送されるまで待機する（ステップＳ１０７）。
【０１３５】
転送先機器のジョブ転送サービスから仮想マシンデータの転送が行われたら、ジョブ転送サービスは、仮想マシンデータを受信する（ステップＳ１０８）。
【０１３６】
仮想マシンデータを受信したジョブ転送サービスは、仮想マシンの動作の再開を指示する（ステップＳ１０９）。
【０１３７】
再開した仮想マシンは、残りの処理を実行後、ジョブ終了状態へ遷移する（ステップＳ１１０）。
【０１３８】
次に、ジョブの開始から終了までの間での転送処理の転送先機器のフローについて、図１１を用いて説明する。
【０１３９】
図１１は本発明の実施形態の転送先機器におけるジョブ開始からジョブ終了までの転送処理を示すフローチャートである。
【０１４０】
転送元機器から仮想マシンデータが転送されたら、転送先機器のジョブ転送サービスは、仮想マシンデータを受信する（ステップＳ１５０）。
【０１４１】
仮想マシンデータを受信した仮想マシン転送サービスは、仮想マシンの再開を指示する（ステップＳ１５１）。
【０１４２】
再開した仮想マシンは自動的にジョブの続きを実行しはじめるので、再びレンダリングが終了したか否かを判定する（ステップＳ１５２）。
【０１４３】
レンダリングが終了していない場合（ステップＳ１５２でＮＯ）、レンダリングが終了するまで待機する。一方、レンダリングが終了している場合（ステップＳ１５２でＹＥＳ）、ジョブ転送サービスへ転送指示を発行する（ステップＳ１５３）。
【０１４４】
転送指示を受信すると、ジョブ転送サービスは、仮想マシンの中断指示を発行する（ステップＳ１５４）。
【０１４５】
中断が完了すると、仮想マシンデータを転送元機器のジョブ転送サービスへ転送する（ステップＳ１５５）。
【０１４６】
次に、転送先機器の仮想マシンがファイル読込を発行してから、データを取得するまでのフローについて、図１２を用いて説明する。
【０１４７】
図１２は本発明の実施形態の仮想マシンがファイル読込を発行してから、データを取得する処理を示すフローチャートである。
【０１４８】
仮想マシン上で動作するＯＳの動きに応じて、仮想マシンは、ファイル読込要求を発行する（ステップＳ２０１）。仮想マシンは、ストレージサービスへアクセス要求を発行する（ステップＳ２０２）。
【０１４９】
仮想マシンは、ストレージサービスが内部に持つストレージ対応表を参照して、アクセス要求元の仮想マシンと仮想ディスクファイルの対応関係を取得する（ステップＳ２０３）。この対応関係には、仮想ディスクファイルのロケーション情報、即ち、リモートの機器（転送元機器（例えば、サーバ））上にあるか、ローカルのディスク上にあるのかの情報を含んでいる。
【０１５０】
仮想マシンは、得られるロケーション情報を元に仮想ディスクファイルがリモートにあるか否かを判定する（ステップＳ２０４）。
【０１５１】
仮想ディスクファイルがリモートにない場合（ステップＳ２０４でＮＯ）、即ち、ローカルにある場合、ストレージ対応表から、仮想ディスクファイルのファイルパスを確認する（ステップＳ２５１）。ファイルパスが示す仮想ディスクファイルから、ステップＳ２０１で指定されたファイルのデータを読み込む（ステップＳ２５２）。ストレージサービスが読み込んだファイルのデータを仮想マシンへ転送する（ステップＳ２５３）。そして、仮想マシンは、そのファイルのデータを取得する（ステップＳ２１０）。
【０１５２】
一方、ステップＳ２０４において、仮想ディスクファイルがリモートにある場合（ステップＳ２０４でＹＥＳ）、仮想マシンは、リモートのストレージサービスへアクセス要求を発行する（ステップＳ２０５）。
【０１５３】
アクセス要求先の仮想マシンは、リモートのストレージサービスで内部に持つストレージ対応表を参照して、アクセス要求元の仮想マシンと仮想ディスクファイルの対応関係を取得する。そして、仮想ディスクファイルのファイルパスを確認する（ステップＳ２０６）。
【０１５４】
アクセス要求先の仮想マシンは、ファイルパスが示す仮想ディスクファイルから、ステップＳ２０１で指定されたファイルのデータを読み込む（ステップＳ２０７）。
【０１５５】
リモートのストレージサービスは、ローカルのストレージサービスへ読み込んだファイルのデータを送信する（ステップＳ２０８）。
【０１５６】
ローカルのストレージサービスは、受信したファイルのデータを仮想マシンへ転送する（ステップＳ２０９）。そして、仮想マシンは、そのファイルのデータを取得する（ステップＳ２１０）。
【０１５７】
以上説明したように、本実施形態によれば、仮想マシンと仮想ディスクファイルの対応関係を、仮想マシンが参照可能に管理する。これにより、この対応関係を参照することで、仮想マシン上で動作するＯＳは、必要とするデータの所在（アドレス情報）がローカルにある、あるいはリモートにあることに関係なく、シームレスに必要とするデータを取得することができる。
【０１５８】
換言すれば、仮想マシンの転送前は、そのローカルストレージにアクセスし、仮想マシンの転送後はそれが転送する前に存在した転送元機器のリモートストレージに透過的にアクセスすることができる。これにより、任意のタイミングで実行中のジョブを転送することができ、ユーザは不要な処理時間（例えば、印刷待ち時間）を浪費する必要が無くなる。
【０１５９】
より具体的には、メモリ枯渇等でジョブを継続できなくなった場合でも、任意のタイミングでジョブを転送することができ、転送先機器においても、転送元機器のハードディスクを参照できる。これにより中間データを任意のタイミングで、転送元機器のハードディスクに出力することができる。
【０１６０】
また、通常時は、ローカルのハードディスクを使用することでパフォーマンスを低下させることなくジョブを実行し、転送時のみネットワーク経由で、転送元機器のハードディスクを使用することで、スループットの低下を低減させることができる。
【０１６１】
また、ジョブ、ＯＳは、機器のロケーションを意識することなく、ディスクにアクセスできるため、任意のタイミングで停止、転送、再開を行うことが可能になる。
【０１６２】
尚、上記実施形態では、画像形成装置において仮想マシン動作環境が実現される場合を例に挙げて説明しているが、これに限定されるものではない。例えば、パーソナルコンピュータ等の情報処理装置についても、同様に、本発明を適用できることは言うまでもない。
【０１６３】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１６４】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１６５】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１６６】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１６７】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスクがある。また、更に、記録媒体としては、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１６８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、その接続先のホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１６９】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１７０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１７１】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１７２】
【図１】本発明に係る電子部品としてのコントローラユニットが搭載された画像入出力装置（データ処理装置）の一実施形態を示すブロック構成図である。
【図２】本発明の実施形態のリーダ部及びプリンタ部の詳細を示す図である。
【図３】本発明の実施形態のコントローラユニットの詳細構成を示すブロック図である。
【図４】本発明の実施形態のメインコントローラの内部詳細を示すブロック構成図である。
【図５】本発明の実施形態の仮想マシンを実現するソフトウェア構成を示す図である。
【図６】本発明の実施形態のストレージアクセスと仮想マシンの転送のシーケンスを示す図である。
【図７】本発明の実施形態中の転送前のストレージ対応表の状態を示す図である。
【図８】本発明の実施形態中の転送時のストレージ対応表の状態を示す図である。
【図９】本発明の実施形態中の転送後のストレージ対応表の状態を示す図である。
【図１０】本発明の実施形態の転送元機器におけるジョブ開始からジョブ終了までの転送処理を示すフローチャートである。
【図１１】本発明の実施形態の転送先機器におけるジョブ開始からジョブ終了までの転送処理を示すフローチャートである。
【図１２】本発明の実施形態の仮想マシンがファイル読込を発行してから、データを取得する処理を示すフローチャートである。
【符号の説明】
【０１７３】
１００  実マシン
１０１  実ＲＡＭ
１０２  仮想マシン動作環境
１０３  実ＣＰＵ
１０４  実レジスタ
１０５  実ディスク
１０６  仮想マシン
１０７  仮想ＲＡＭ
１０８  仮想ＣＰＵ
１０９  仮想レジスタ
１１０  仮想ディスク
２００  転送元機器
２０１  転送元の仮想マシン動作環境
２０２  転送前の仮想マシン
２０３  転送前のＯＳ
２０４  転送元のストレージサービス
２０５  転送元のジョブ転送サービス
２０６  転送前のメモリ監視サービス
２０７  転送元の実ディスク
２０８  仮想ディスクファイル
２０９  転送前の仮想マシンのスナップショットデータ
２５０  転送先機器
２５１  転送先の仮想マシン動作環境
２５２  転送後の仮想マシン
２５３  転送後のＯＳ
２５４  転送先のストレージサービス
２５５  転送先のジョブ転送サービス
２５６  転送後のメモリ監視サービス
２５７  転送先の実ディスク
２５９  転送後の仮想マシンのスナップショットデータ
２８０  ＬＡＮ
【図１】
0005089429.tif 000002
【図２】
0005089429.tif 000003
【図３】
0005089429.tif 000004
【図４】
0005089429.tif 000005
【図５】
0005089429.tif 000006
【図６】
0005089429.tif 000007
【図７】
0005089429.tif 000008
【図８】
0005089429.tif 000009
【図９】
0005089429.tif 000010
【図１０】
0005089429.tif 000011
【図１１】
0005089429.tif 000012
【図１２】
0005089429.tif 000013