(57)【要約】【課題】実行優先度の異なるオペレーティングシステムをまたがる処理の連携を適切に制御する。【解決手段】ＯＳ１が動作し、アプリケーションプログラムからの各処理要求を処理するタスクを実装する第１の仮想計算機２００と、ＯＳ１よりも実行優先度が低いＯＳ２が動作し、ＵＩタスク３０３を実装する第２の仮想計算機３００と、オペレーティングシステムの実行優先度に応じて、各ＯＳに対するハードウェア資源の割当を制御するハイパーバイザ１００と、を備え、第１の仮想計算機２００は、ＵＩタスク３０３を擬似したＵＩダミータスク２１１を更に実装し、前記第１のタスクからの要求に基づいてＵＩダミータスク２１１は実行されると、ＵＩタスク３０３が実装されたＯＳ２に対するハードウェア資源の割り当てを、ハイパーバイザ１００に要求し、ハイパーバイザ１００は、要求に応じて、ＯＳ２に対してハードウェア資源を割り当てる。【選択図】図５
2011192130.tif 000002
【特許請求の範囲】
【請求項１】
第１のオペレーティングシステムが動作し、アプリケーションプログラムからの各処理要求を処理する第１のタスクを実装する第１の仮想計算機と、
前記第１のオペレーティングシステムよりも実行優先度が低い第２のオペレーティングシステムが動作し、第２のタスクを実装する第２の仮想計算機と、
オペレーティングシステムの実行優先度に応じて、各オペレーティングシステムに対するハードウェア資源の割当を制御する制御部と、を備え、
前記第１の仮想計算機は、前記第２のタスクを擬似した擬似タスクを更に実装し、
前記第１のタスクからの要求に基づいて前記擬似タスクは実行されると、前記制御部に対して、前記擬似タスクが擬似する前記第２のタスクが実装された前記第２のオペレーティングシステムに対するハードウェア資源の割り当てを要求し、
前記制御部は、前記要求に応じて、前記第２のオペレーティングシステムに対してハードウェア資源を割り当てることを特徴とする制御装置。
【請求項２】
前記第１のオペレーティングシステムは、リアルタイムオペレーティングシステムであり、
前記第２のオペレーティングシステムは、非リアルタイムオペレーティングシステムであることを特徴とする請求項１に記載の制御装置。
【請求項３】
第１のオペレーティングシステムが動作し、アプリケーションプログラムからの各処理要求を処理する第１のタスクを実装する第１の仮想計算機と、
前記第１のオペレーティングシステムよりも実行優先度が低い第２のオペレーティングシステムが動作し、第２のタスクを実装する第２の仮想計算機と、
オペレーティングシステムの実行優先度に応じて、各オペレーティングシステムに対するハードウェア資源の割当を制御する制御部と、を備える制御装置と、
前記第１のタスクによって制御される第１の装置と、
前記第２のタスクによって制御される第２の装置と、
を備え、
前記第１の仮想計算機は、前記第２のタスクを擬似した擬似タスクを更に実装し、
前記第１のタスクからの要求に基づいて前記擬似タスク前記擬似タスクは実行されると、前記制御部に対して、前記擬似タスクが擬似する前記第２のタスクが実装された前記第２のオペレーティングシステムに対するハードウェア資源の割り当てを要求し、
前記制御部は、前記要求に応じて、前記第２のオペレーティングシステムに対してハードウェア資源を割り当てることを特徴とする画像形成装置。
【請求項４】
第１のオペレーティングシステムが動作し、アプリケーションプログラムからの各処理要求を処理する第１のタスクを実装する第１の仮想計算機を生成する第１の生成ステップと、
前記第１のオペレーティングシステムよりも実行優先度が低い第２のオペレーティングシステムが動作し、第２のタスクを実装する第２の仮想計算機を生成する第２の生成ステップと、
オペレーティングシステムの実行優先度に応じて、各オペレーティングシステムに対するハードウェア資源の割当を制御する制御ステップと、をコンピュータに実行させ、
前記第１の生成ステップでは、前記第１の仮想計算機に、前記第２のタスクを擬似した擬似タスクを更に実装し、
前記第１のタスクからの要求に基づいて前記擬似タスク前記擬似タスクは実行されると、前記擬似タスクが擬似する前記第２のタスクが実装された前記第２のオペレーティングシステムに対するハードウェア資源の割り当て要求し、
前記制御ステップは、前記要求に応じて、前記第２のオペレーティングシステムに対してハードウェア資源を割り当てることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、画像形成装置、及び制御プログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）の高機能化に伴い、一つの物理計算機上で複数の仮想計算機を実現し、各仮想計算機上でそれぞれＯＳ（Operating System）を動作させる仮想化技術が注目されている。具体的には、ハイパーバイザなどのファームウェア（または、ミドルウェア）によって、一つの物理計算機を複数の論理区画に分割し、各論理区画に対してＣＰＵ、メモリ、及び入出力装置等のハードウェア資源を割当て、各論理区画上でそれぞれＯＳを動作させる。
【０００３】
一方、複合機のような画像形成装置では、スキャナ等の画像読取装置や、プリンタ等の画像出力装置の制御といったリアルタイム性が要求される処理（リアルタイム処理）と、画像形成装置がサーバとして機能する際の通信処理、ユーザインタフェースへのデータ出力といった時間制約がない処理（非リアルタイム処理）とが混在している。ここで、複合機とは、プリント機能、スキャナ機能、ＦＡＸ機能およびコピー機能のうちいずれかを複合的に有する画像形成装置のことをいう。
【０００４】
上述の仮想化技術を使えば、リアルタイム処理を行うアプリケーションを動作させるＯＳと、非リアルタイム処理を行うアプリケーションを動作させるＯＳとを分けることができるため、画像形成装置において仮想化技術が提供する環境に対する期待が高まっている。
【０００５】
特許文献１には、複数の仮想計算機においてそれぞれ動作するＯＳに対し実行すべき優先度が指定されているが、割込みが発生した場合には、優先度が高いＯＳが動作していても、優先度の低いＯＳの割込みを処理させるハイパーバイザが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１７６１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、実行優先度の異なるオペレーティングシステムをまたがる処理の連携を適切に制御する制御装置、画像形成装置、及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に記載の制御装置は第１のオペレーティングシステムが動作し、アプリケーションプログラムからの各処理要求を処理する第１のタスクを実装する第１の仮想計算機と、前記第１のオペレーティングシステムよりも実行優先度が低い第２のオペレーティングシステムが動作し、第２のタスクを実装する第２の仮想計算機と、オペレーティングシステムの実行優先度に応じて、各オペレーティングシステムに対するハードウェア資源の割当を制御する制御部と、を備え、前記第１の仮想計算機は、前記第２のタスクを擬似した擬似タスクを更に実装し、前記第１のタスクからの要求に基づいて前記擬似タスクは実行されると、前記制御部に対して、前記擬似タスクが擬似する前記第２のタスクが実装された前記第２のオペレーティングシステムに対するハードウェア資源の割り当てを要求し、前記制御部は、前記要求に応じて、前記第２のオペレーティングシステムに対してハードウェア資源を割り当てることを特徴とする。
【０００９】
請求項２に記載の制御装置は、請求項１に記載の制御装置において、前記第１のオペレーティングシステムは、リアルタイムオペレーティングシステムであり、前記第２のオペレーティングシステムは、非リアルタイムオペレーティングシステムであることを特徴とする。
【００１０】
請求項３に記載の画像形成装置は、第１のオペレーティングシステムが動作し、アプリケーションプログラムからの各処理要求を処理する第１のタスクを実装する第１の仮想計算機と、前記第１のオペレーティングシステムよりも実行優先度が低い第２のオペレーティングシステムが動作し、第２のタスクを実装する第２の仮想計算機と、オペレーティングシステムの実行優先度に応じて、各オペレーティングシステムに対するハードウェア資源の割当を制御する制御部と、を備える制御装置と、前記第１のタスクによって制御される第１の装置と、前記第２のタスクによって制御される第２の装置と、を備え、前記第１の仮想計算機は、前記第２のタスクを擬似した擬似タスクを更に実装し、前記第１のタスクからの要求に基づいて前記擬似タスク前記擬似タスクは実行されると、前記制御部に対して、前記擬似タスクが擬似する前記第２のタスクが実装された前記第２のオペレーティングシステムに対するハードウェア資源の割り当てを要求し、前記制御部は、前記要求に応じて、前記第２のオペレーティングシステムに対してハードウェア資源を割り当てることを特徴とする。
【００１１】
請求項４に記載の制御プログラムは、第１のオペレーティングシステムが動作し、アプリケーションプログラムからの各処理要求を処理する第１のタスクを実装する第１の仮想計算機を生成する第１の生成ステップと、前記第１のオペレーティングシステムよりも実行優先度が低い第２のオペレーティングシステムが動作し、第２のタスクを実装する第２の仮想計算機を生成する第２の生成ステップと、オペレーティングシステムの実行優先度に応じて、各オペレーティングシステムに対するハードウェア資源の割当を制御する制御ステップと、をコンピュータに実行させ、前記第１の生成ステップでは、前記第１の仮想計算機に、前記第２のタスクを擬似した擬似タスクを更に実装し、前記第１のタスクからの要求に基づいて前記擬似タスク前記擬似タスクは実行されると、前記擬似タスクが擬似する前記第２のタスクが実装された前記第２のオペレーティングシステムに対するハードウェア資源の割り当て要求し、前記制御ステップは、前記要求に応じて、前記第２のオペレーティングシステムに対してハードウェア資源を割り当てることを特徴とする。
【発明の効果】
【００１２】
請求項１に記載の制御装置によれば、実行優先度の異なるオペレーティングシステムをまたがる処理の連携が適切に制御される。また、実行優先度の異なるオペレーティングシステムをまたいだ一連の処理にかかる時間が短縮される。
【００１３】
請求項２に記載の制御装置によれば、リアルタイム処理と非リアルタイム処理との連携が適切に制御される。また、リアルタイム処理と非リアルタイム処理とが連携した一連の処理にかかる時間が短縮される。
【００１４】
請求項３に記載の画像形成装置によれば、実行優先度の異なるオペレーティングシステムをまたがる処理の連携が適切に制御される。また、実行優先度の異なるオペレーティングシステムをまたいだ一連の処理にかかる時間が短縮される。
【００１５】
請求項４に記載の制御プログラムによれば、実行優先度の異なるオペレーティングシステムをまたがる処理の連携が適切に制御される。また、実行優先度の異なるオペレーティングシステムをまたいだ一連の処理にかかる時間が短縮される。
【図面の簡単な説明】
【００１６】
【図１】本発明が適用される画像形成装置のシステム構成の一例を示す図である。
【図２】制御装置のハードウェア構成の一例を示す図である。
【図３】画像形成装置に仮想化技術を適用した場合の、ソフトウェア構成の一例を示す図である。
【図４】図３のソフトウェア構成における、各ＯＳの優先度、及び各ＯＳで実行されるタスクの優先度と、ハードウェアリソースの割当との関係の一例を示す図である。
【図５】ＵＩダミータスクをＯＳ１に組み込んだ場合のソフトウェア構成の一例を示す図である。
【図６】図５のソフトウェア構成における、各ＯＳの優先度、及び各ＯＳで実行されるタスクの優先度と、ハードウェアリソースの割当との関係の一例を示す図である。
【図７】ＵＩタスク及びＵＩダミータスクが実行する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、添付図面を参照しつつ説明する。
【００１８】
図１は、本発明が適用される画像形成装置を含む画像形成システムのシステム構成の一例を示す図である。画像形成システムは、ユーザ端末１と、画像形成装置２とを備える。
【００１９】
ユーザ端末１は、例えばＰＣ（パーソナルコンピュータ）であり、ユーザインタフェースとして機能する。ユーザは、ユーザ端末１を介して、画像形成装置２に画像データを送信したり、画像処理を要求したりできる。また、ユーザは、画像形成装置２で読み取った原稿情報を、ユーザ端末１が備える表示装置に表示させることもできる。
【００２０】
画像形成装置２は、入出力部３、制御装置４、操作表示部５、画像読取装置（ＩＩＴ：Image Input Terminal）６、画像出力装置（ＩＯＴ：Image Output Terminal）７、及びＦＡＸ装置８を備える。なお、本実施例では、画像形成装置２が複合機であるとして説明を行うが、画像形成装置２は、複写機やプリンタであってもよい。
【００２１】
入出力部３は、ユーザ端末１が送信した画像データを受付ける。入出力部３は、ＬＡＮ（Local Area Network）、ＷＡＮ(Wide Area Network)等のネットワークに接続された情報処理装置、スキャナ等の画像入力装置等から画像データを受付けることもできる。また、入出力部３は、ユーザ端末１を介して、画像形成装置２に対するユーザの指示情報を受付ける。入出力部３は、受付けた画像データ及び指示情報を、制御装置４へ出力する。
【００２２】
制御装置４は、入出力部３、操作表示部５、画像読取装置６、画像出力装置７、及びＦＡＸ装置８との間で、信号及びデータの送受信を行い、画像形成装置２の全体の動作を制御する。具体的には、制御装置４は、入出力部３から画像データを受付ける。制御装置４は、受付けた画像データを、画像出力装置７が出力できる形式に変換すると、画像出力装置７を制御して、画像形成装置２に設置された用紙（記録媒体）に、受付けた画像データに基づいた画像を形成させる。また、制御装置４は、画像読取装置６が読み取った原稿の画像データを、入出力部３を介してユーザ端末１に表示させる。また、制御装置４は、ＦＡＸ装置８を制御し、ユーザ端末１から受付けた画像データや、画像読取装置６が読み取った原稿の画像データを、ＦＡＸ送信する。
【００２３】
操作表示部５は、ユーザインタフェースとして機能する。操作表示部５は、ユーザから、例えば画像形成に係る操作入力を受付ける。操作表示部５は、入力された操作に係る情報を制御装置４に出力する。また、操作表示部５は、制御装置４の制御に基づいて、例えば、画像形成に係る情報や、画像処理の結果等を表示する。
【００２４】
画像読取装置６は、例えば、スキャナ装置であり、制御装置４の制御に基づいて画像読取装置６に配置された原稿を読み取り、読み取った原稿の画像データを制御装置４に出力する。
【００２５】
画像出力装置７は、出力対象の画像データを制御装置４から受付け、制御装置４の制御に基づいて、用紙に画像を出力する。
【００２６】
ＦＡＸ装置８は、送信対象の画像データを制御装置４から受付け、制御装置４の制御に基づいてＦＡＸを送信する。また、ＦＡＸ装置８は、受信した画像データを、制御装置４に出力する。
【００２７】
次に、図２を用いて、制御装置４のハードウェア構成の一例について説明する。図２は、制御装置４のハードウェア構成の一例を示す図である。制御装置４は、入出力部４１、ＲＯＭ（Read Only Memory）４２、ＣＰＵ４３、ＲＡＭ（Random Access Memory）４４、及びハードディスク（ＨＤＤ：Hard Disk Drive）４５を備える。
【００２８】
入出力部４１は、入出力部３、操作表示部５、画像読取装置６、画像出力装置７、及びＦＡＸ装置８との間でデータおよび信号の入出力を行なう。ＲＯＭ４２は、ハイパーバイザの機能を実現するためのプログラム（詳細は後述する）等を格納する。ＣＰＵ４３は、ＲＯＭ４２に格納されたプログラムを読み込んで実行する。ＲＡＭ４４は、プログラムを実行する際に使用される一時的なデータを保存する。ＨＤＤ４５は、画像データを含む各種データを格納する。
【００２９】
次に、ＲＯＭ４２に格納されたプログラムのＣＰＵ４３による演算によって実現される、制御装置４のソフトウェアシステムの構成について説明する。まず、図３を用いて、画像形成装置２に仮想化技術を適用した場合のソフトウェア構成の一例について説明する。
【００３０】
図３に示すように、制御装置４のソフトウェアシステムは、ハイパーバイザ１００、第１の仮想計算機２００、及び第２の仮想計算機３００を備える。
【００３１】
ハイパーバイザ（制御部）１００は、上述した制御装置４のハードウェア上にＯＳ１（第１のオペレーティングシステム）が動作する第１の仮想計算機２００、及びＯＳ２（第２のオペレーティングシステム）が動作する第２の仮想計算機３００を生成する。ハイパーバイザ１００は、制御装置４のハードウェアリソースの各ＯＳへの割り当てを制御する。
【００３２】
第１の仮想計算機２００では、ＯＳ１が動作する。本説明では、ＯＳ１は、ＶｘＷｏｒｋｓ（登録商標）、ＱＮＸ（登録商標）等、リアルタイム処理の実行に適した、いわゆるリアルタイムＯＳであるものとする。ＯＳ１には、ファイルの読み出し・書き込みを制御するためのファイルシステムタスク２０１、ネットワークで接続された装置との通信を実現するネットタスク２０２が組み込まれている。また、ＯＳ２には、画像出力装置（ＩＯＴ）７を制御するためのＩＯＴタスク２０３、画像読取装置（ＩＩＴ）６を制御するためのＩＩＴタスク２０４、及びＦＡＸ装置（ＦＡＸ）８を制御するためのＦＡＸタスク２０５が組み込まれている。なお、ファイルシステムタスク２０１、ネットタスク２０２、ＩＯＴタスク２０３、ＩＩＴタスク２０４、及びＦＡＸタスク２０５が第１のタスクに相当する。
【００３３】
ＯＳ１上では、画像処理部２０６、印刷処理部２０７、コピー処理部２０８、ＦＡＸ処理部２０９が動作する。また、ＯＳ１上では、ジョブの登録、削除、ジョブの実行等を各処理部に対して指示するジョブ制御部２１０も動作する。なお、本説明では、ユーザから要求された処理をジョブという。なお、画像処理部２０６、印刷処理部２０７、コピー処理部２０８、ＦＡＸ処理部２０９、及びジョブ制御部２１０は、ＯＳ１上で動作するアプリケーションプログラムのＣＰＵ４３による演算によって実現される。
【００３４】
ファイルシステムタスク２０１に組み込まれたファイルシステム２０１Ａは、ＨＤＤ４５に画像データ等のファイルを書き込む、又は、ＨＤＤ４５からファイルを読み出すための仕組みである。ＯＳ１上で動作する画像処理部２０６、印刷処理部２０７、コピー処理部２０８、ＦＡＸ処理部２０９、及びジョブ制御部２１０は、このファイルシステム２０１Ａを利用できる。例えば、画像処理部２０６は、ファイルシステム２０１Ａを利用して、ＨＤＤ４５から画像データを取得することができる。また、画像処理部２０６は、ファイルシステム２０１Ａを利用して、画像処理を施したデータをＨＤＤ４５に書き込める。また、例えば、ＦＡＸ処理部２０９は、ファイルシステム２０１Ａを利用して、ＦＡＸ８で受信した画像データをＨＤＤ４５に格納できる。ファイルシステム２０１Ａは、プロトコルスタック２０１Ｂを操作して、ＨＤＤ４５へのファイルの書き込み・又は読み出しを実行する。プロトコルスタック２０１Ｂは、ＯＳ２に組み込まれたファイルシステムタスク３０１と通信するための仮想Ｎｅｔデバイスドライバ２０１Ｃを操作する。ファイルシステム２０１Ａは、仮想Ｎｅｔデバイスドライバ２０１Ｃで接続されたファイルシステムタスク３０１を介して、ＨＤＤ４５へのファイルの書き込み、及び、ファイルの読み出しを行う。
【００３５】
ネットタスク２０２に含まれるプロトコルスタック２０２Ａは、ジョブ制御部２１０、画像処理部２０６等の各アプリケーションに対してＩＦ（Interface）を公開する。各アプリケーションは、このＩＦを操作して、各種プロトコルで外部の情報処理装置と通信できる。例えば、画像処理部２０６は、外部から伝送される画像データを受信するために、このＩＦを利用する。プロトコルスタック２０２Ａは、仮想Ｎｅｔデバイスドライバ２０２Ｂを操作することで、ＯＳ２に組み込まれたＮＥＴデバイスドライバ３０２Ｂを操作し、外部の情報処理装置と通信を行う。なお、ＮＥＴデバイスドライバ３０２Ｂは、入出力部３に備えられた、外部の情報処理装置との通信を制御するネットワークコントローラ（Ｎｅｔ）９を制御する。
【００３６】
ＩＯＴタスク２０３のＩＯＴデバイスドライバ２０３Ａは、ＩＯＴ７を制御する。また、ＩＩＴタスク２０４のＩＩＴデバイスドライバ２０４Ａは、ＩＩＴ６を制御する。また、ＦＡＸタスク２０５のＦＡＸデバイスドライバ２０５Ａは、ＦＡＸ８を制御する。
【００３７】
次に、ＯＳ１上で動作する各アプリケーションについて説明する。画像処理部２０６は、ジョブ制御部２１０からの指示に従って、画像処理を実行する。
【００３８】
印刷処理部２０７は、ＩＯＴ７を制御するＩＯＴデバイスドライバ２０３Ａを操作することで、各種画像データを紙面上に印刷する。ここで、印刷される画像データは、ジョブ制御部２１０で指定される
【００３９】
コピー処理部２０８は、ジョブ制御部２１０からの指示に従って、ＩＩＴ６を制御するＩＩＴデバイスドライバ２０４Ａを操作することによって、ＩＩＴ６にセットされた原稿を読み取り、画像データを生成する。また、コピー処理部２０８は、生成した画像データを、ファイルシステム２０１Ａを利用してＨＤＤ４５に書き込む。また、コピー処理部２０８は、画像データを、プロトコルスタック２０２Ａを操作して外部の情報処理装置に伝送する。また、コピー処理部２０８は、ＩＯＴデバイスドライバ２０３Ａを操作することで、取得した画像データの印刷を実行する。
【００４０】
ＦＡＸ処理部２０９は、ジョブ制御部２１０等からの指示、ＦＡＸ８を制御するＦＡＸデバイスドライバ２０５Ａから発行される着呼イベントに従って動作する。例えば、ジョブ制御部２１０からＦＡＸ送信が指示されると、ＩＩＴ６を制御するＩＩＴデバイスドライバ２０４Ａを操作して、ＩＩＴ６にセットされた原稿を読み取る。次に、ＦＡＸ処理部２０９は、ＦＡＸ８を制御するＦＡＸデバイスドライバ２０５Ａを操作して、読み取った画像データを指定された番号にＦＡＸ送信する。また、ＦＡＸデバイスドライバ２０５Ａから着呼イベントが発行された場合には、ＦＡＸ処理部２０９は、ＦＡＸ８から受信した画像データをファイルシステム２０１Ａを利用して、ＨＤＤ４５へ書き込む。
【００４１】
次に、第２の仮想計算機３００について説明する。第２の仮想計算機３００では、ＯＳ２が動作する。本説明では、ＯＳ２は、Ｌｉｎｕｘ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）等の汎用ＯＳ（いわゆる非リアルタイムＯＳ）であるとする。ＯＳ２には、画像データ等のファイルのＨＤＤ４５への読み出し・書き込みを制御するためのファイルシステムタスク３０１、Ｎｅｔ９を制御することによりネットワークを介して接続された装置との通信を実現するネットタスク３０２が組み込まれている。また、ＯＳ２には、ユーザインタフェース（ＵＩ：User Interface）として機能するユーザ端末１、又は操作表示部５への画像表示等を制御するためのＵＩタスク（第２のタスク）３０３が組み込まれている。
【００４２】
ＯＳ２上では、ユーザ端末１、又は操作表示部５への画像表示等を制御するＵＩ制御部３０４が動作する。また、ＯＳ２上では、ジョブの登録、削除、ジョブの実行等を指示するジョブ制御部３０５も動作する。
【００４３】
ファイルシステムタスク３０１に組み込まれたファイルシステム３０１Ｃは、ＨＤＤ４５へのファイルの書き込み・読み出しを制御するＩＤＥデバイスドライバ３０１Ｄを操作して、ＨＤＤ４５に対しファイルの書き込み・読み出しを行う。また、ファイルシステムタスク３０１には、プロトコルスタック３０１Ｂ及び仮想Ｎｅｔデバイスドライバ３０１Ａが組み込まれており、これらの構成によってファイルシステムタスク３０１と、ファイルシステムタスク２０１との間の通信が可能となる。
【００４４】
ネットタスク３０２に組み込まれたプロトコルスタック３０２Ａは、ジョブ制御部３０５にＩＦを公開する。ジョブ制御部３０５は、このＩＦを操作して、各種プロトコルで外部の情報処理装置と通信できる。プロトコルスタック３０２Ａは、Ｎｅｔ９を制御するＮＥＴデバイスドライバ３０２Ｂを操作することで、外部の情報処理装置と通信を行う。
【００４５】
ＵＩ制御部３０４は、ユーザ端末１、又は、操作表示部５を制御するＬＣＤデバイスドライバ３０３Ａを操作することによって、ユーザ端末１、又は操作表示部５に画像を表示する。また、ＵＩ制御部３０４は、ユーザが操作表示部５に対して行った操作で入力されるコマンドを受信して、そのユーザの操作に従った画面の更新や、またジョブ制御部３０５に対して利用者が所望する動作の実行を指示する。ＵＩ１，５の制御は、ＵＩタスク３０３に組み込まれているＬＣＤデバイスドライバ３０３Ａを通して行われる。
【００４６】
ジョブ制御部３０５は、ネットタスク３０２に組み込まれたプロトコルスタック３０２Ａに対し、外部の情報処理装置との通信を命令する。また、ジョブ制御部３０５は、ファイルシステム３０１Ｃに対して、ＨＤＤ４５へのデータの書き込み・読み出しを指示する。
【００４７】
次に、図３に示すソフトウェア構成において、ハイパーバイザ１００により実行されるハードウェアリソースの割当について説明する。ハイパーバイザ１００は、各ＯＳにおいてタスクが実行される場合には、実行優先度が高いＯＳからハードウェアリソースを割り当てる。本実施例では、リアルタイムＯＳであるＯＳ１の方が、非リアルタイムＯＳであるＯＳ２よりも実行の優先度が高いとする。
【００４８】
ハイパーバイザ１００は、ＯＳ２においてタスクが実行されている最中に、ＯＳ２よりも実行優先度の高いＯＳ１のタスクに対する処理要求を検知すると、ハードウェアリソースの割当を、ＯＳ２からＯＳ１へ切替える。その結果、優先度の低いＯＳ２に組み込まれたタスクは、優先度の高いＯＳ１で実行されるタスクでの処理が完了するまで、その処理を中断する。なお、各ＯＳ上に組み込まれたタスクは、それぞれ実行優先度を有しており、ハードウェアリソースを割り当てられたＯＳは、複数のタスクに対して処理が要求されている場合には、優先度の高いタスクから実行する。
【００４９】
図４は、各ＯＳの優先度、及び各ＯＳで実行されるタスクの優先度と、ハードウェアリソースの割当との関係の一例を示している。図中、各タスクに対して示されている実線は、各タスクがハードウェアリソースの一つであるＣＰＵ４３を占有している時間を表す。
【００５０】
本説明では、例えば、図中Ａの時点において、コピー処理部２０８が、ＩＩＴ６で原稿を読み取った後、ユーザ端末１に読み取った原稿の画像イメージを表示させ、ユーザ端末１への画像イメージの表示完了を受けて、再びＩＩＴ６に原稿の読み取りを実行させる処理を行うとする。
【００５１】
この場合、ハイパーバイザ１００は、ＯＳ１にハードウェアリソースを割り当てる。ＯＳ１は、ＩＩＴタスク２０４よりも実行優先度の高いＩＯＴタスク２０３に対する実行要求がなければ、ＩＩＴタスク２０４にハードウェアリソースを割り当てる。ＩＩＴタスク２０４は、原稿の読み取り処理を終えると、ユーザ端末１へ画像イメージを表示するため、ＯＳ２のＵＩタスク３０３に描画処理のリクエストを出力する（Ｂ）。ハイパーバイザ１００は、ＯＳ１で実行されるタスクがないため、ＯＳ２にハードウェアリソースを割り当てる。ハードウェアリソースを割り当てられたＯＳ２は、ＵＩタスク３０３を実行する。
【００５２】
ここで、ＵＩタスク３０３の実行中に、ＯＳ１上で動作する画像処理部２０６に処理要求が入力されたとする（Ｃ）。この場合、ハイパーバイザ１００は、画像処理部２０６が動作するＯＳ１の方が、ＯＳ２よりも実行優先度が高いため、ハードウェアリソースの割り当てを、ＯＳ２からＯＳ１へ切替える。なお、図４では、画像処理部２０６が実行する処理を、画像処理タスクと記載している。画像処理タスクが実行されている間、ハードウェアリソースが割り当てられていないＯＳ２は、ＵＩタスク３０３を実行できないため、ＵＩタスク３０３の処理は中断される。すなわち、図４のＣ〜Ｄの間は、ＵＩタスク３０３は、描画処理を実行できない。
【００５３】
画像処理タスクが終了すると（Ｄ）、ハイパーバイザ１００は、再びＯＳ２にハードウェアリソースを割り当てる。その結果、ＵＩタスク３０３は、処理を再開する。ユーザ端末１への描画処理が完了すると、ＵＩタスク３０３は、ＩＩＴタスク２０４に描画処理が完了したことを通知する（Ｅ）。ＩＩＴタスク２０４は、描画処理の完了通知を受けて、後続の処理を実行する。
【００５４】
上述のように、ＯＳ２のタスクの実行中に、ＯＳ２よりも優先度が高いＯＳ１のタスクに処理要求が入力されると、ハイパーバイザ１００によって、ハードウェアリソースの割当がＯＳ２からＯＳ１に切替えられてしまう。したがって、ＯＳ２で実行中であったＵＩタスク３０３は、ハードウェアリソースが再度ＯＳ２に割り当てられるまで、処理を中断する。その結果、ＵＩ１への描画が遅くなり、ユーザは違和感を覚えたり、なかなかユーザ端末１への描画が終わらないことに不快感を抱いたりしてしまう。また、ＵＩタスク３０３によるユーザ端末１への描画処理の完了を受けて次の処理を実行するＩＩＴタスク２０４も、ＵＩタスク３０３の処理が完了しなければ、処理を継続できない。つまり、図４のＢ〜Ｅの間、ＩＩＴタスク２０４はＩＩＴ６の制御を実行できないため、ＩＩＴタスク２０４の処理が完了するのも遅れてしまう。すなわち、実行優先度が異なるＯＳ１とＯＳ２とをまたいで実行される一連の処理にかかる時間が長くなってしまう。
【００５５】
次に、ＵＩダミータスク（擬似タスク）をＯＳ１に組み込んだ場合のソフトウェア構成の一例について、図５を用いて説明する。図５において、各部が備える機能は図３で説明したものとほぼ同様であるため、図３と異なる場合について説明を行う。図５に示すように、ＯＳ１には、ＵＩダミータスク２１１が組み込まれている。
【００５６】
ＵＩダミータスク２１１は、ＯＳ２の実タスクであるＵＩタスク３０３を擬似したタスクであり、例えば、ＩＯＴタスク２０３、ＩＩＴタスク２０４、及びＦＡＸタスク２０５から、ＵＩ１，５に対する描画処理の要求を受付ける。ＵＩダミータスク２１１は、描画処理の要求を受付けると、仮想ＬＣＤデバイスドライバ２１１Ａから、ＵＩ１，５に対する描画処理の要求をＯＳ１のＵＩタスク３０３に送信する。また、ＵＩダミータスク２１１は、ハイパーバイザコールによって、ＯＳ１に割り当てられたハードウェアリソースをＯＳ２に委譲するように、ハイパーバイザ１００に通知する。これにより、ハイパーバイザ１００は、ハードウェアリソースの割当を、ＯＳ１からＯＳ２に切替える。ＯＳ１からＯＳ２にハードウェアリソースが切替えられると、ＵＩタスク３０３は、ＵＩ１，５に画像データを描画する。
【００５７】
次に、図５の構成における、各ＯＳの優先度、及び各ＯＳで実行されるタスクの優先度と、ハードウェアリソースの割当との関係について説明する。図４と同様に、図中Ａの時点において、コピー処理部２０８が、ＩＩＴ６で原稿を読み取った後、ユーザ端末１に読み取った原稿の画像イメージを表示させ、ユーザ端末１への画像イメージの表示完了を受けて、再びＩＩＴ６に原稿の読み取りを実行させる処理を行うとする。
【００５８】
この場合、ハイパーバイザ１００は、まずＯＳ１にハードウェアリソースを割り当てる。ハードウェアリソースを割り当てられたＯＳ１は、ＩＩＴタスク２０４よりも実行優先度の高いＩＯＴタスク２０３の実行が要求されていなければ、ＩＩＴタスク２０４を実行する。次に、ＩＩＴタスク２０４は、原稿の読み取りを終えると、ＯＳ１のＵＩダミータスク２１１に、描画リクエストを出力する（Ｂ）。ＵＩダミータスク２１１よりも優先度が高いＩＯＴタスク２０３及びＩＩＴタスク２０４の実行が要求されていなければ、ＯＳ１は、ＵＩダミータスク２１１を実行する。
【００５９】
ＵＩダミータスク２１１は実行されると、ＯＳ２のＵＩタスク３０３に描画リクエストを出力する。また、ＵＩダミータスク２１１は、ハイパーバイザコールを利用して、ハイパーバイザ１００に、ＯＳ１に割り当てられたハードウェアリソースをＯＳ２に委譲するよう明示的に通知する。ハイパーバイザ１００は、ＵＩダミータスク２１１からの通知を受けて、ハードウェアリソースの割当を、ＯＳ１からＯＳ２に切替える。これにより、ＯＳ２のＵＩタスク３０３はハードウェアリソースを割り当てられ、ユーザ端末１への描画処理を実行することができる。また、ＯＳ１では、ＵＩダミータスク２１１が実行されていることになっているため、ＵＩダミータスク２１１よりも優先度が低い画像処理タスクが要求されても、ＯＳ１は、画像処理タスクにハードウェアリソースを割り当てることがない。これにより、ＵＩタスク３０３の描画処理を早期に完了できるため、ＩＩＴタスク２０４がＵＩ１への描画処理の完了後に継続して行う処理も早期に実行され、全体としての処理時間が短縮される。
【００６０】
次に、上述のＵＩダミータスク２１１及びＵＩタスク３０３が実行する処理の一例について説明する。図７は、ＯＳ１のＵＩダミータスク２１１及びＯＳ２のＵＩタスク３０３が実行する処理の一例を示している。
【００６１】
図７（Ａ）において、ＵＩダミータスク２１１は、ＩＯＴタスク２０３、ＩＩＴタスク２０４、ＦＡＸタスク２０５から、ＵＩダミータスク２１１に、ＵＩ１，５への描画を要求するＵＩジョブがあるか否か判定する（ステップＳ２０１）。
【００６２】
ＵＩジョブがない場合（ステップＳ２０１／ＮＯ）、ＵＩダミータスク２１１は、ステップＳ２０１の処理を継続する。ＵＩジョブが存在する場合（ステップＳ２０１／ＹＥＳ）、ＵＩダミータスク２１１は、ＯＳ２のＵＩタスク３０３にＯＳ間通知を利用して、ジョブをリクエストする（ステップＳ２０２）。
【００６３】
次に、ＵＩダミータスク２１１は、ハイパーバイザ１００に、ＯＳ１に割り当てられたハードウェアリソースをＯＳ２に委譲するように通知し、ハードウェアリソースが割り当てられるＯＳを切替える（ステップＳ２０３）。
【００６４】
一定のタイムスライスが経過すると、ハイパーバイザ１００は、ハードウェアリソースの割当をＯＳ２からＯＳ１へ切替えるため、ハードウェアリソースを割り当てられたＯＳ１のＵＩダミータスク２１１は、ＵＩタスク３０３が実行するＵＩ描画処理（指定された画像をＵＩ１，５に描画する処理）が終了したか否か判定する（ステップＳ２０４）。なお、ＵＩ描画処理が終了したか否かは、ＵＩタスク３０３からＵＩダミータスク２１１へのＯＳ間通知により判定することができる。
【００６５】
ＵＩ描画処理が終了していない場合（ステップＳ２０４／ＹＥＳ）、ＵＩダミータスク２１１は、再び、ハイパーバイザコールによって、ハードウェアリソースの割当をＯＳ１からＯＳ２に切替える（ステップＳ２０３）。ＵＩ描画処理が終了した場合（ステップＳ２０４／ＹＥＳ）、ＵＩダミータスク２１１は再び、ステップＳ２０１からの処理を実行する。
【００６６】
ハイパーバイザ１００がハードウェアリソースの割当てをＯＳ１からＯＳ２に切替えると、ＵＩタスク３０３は、ジョブリクエストが存在するか否か判定する（図７（Ｂ）：ステップＳ３０１）。ここで、ジョブリクエストとは、ＵＩタスク３０３に対する処理要求を意味する。
【００６７】
ジョブリクエストが存在しない場合（ステップＳ３０１／ＮＯ）、ＵＩタスク３０３は、ステップＳ３０１の処理を継続する。ジョブリクエストが存在する場合（ステップＳ３０１／ＹＥＳ）、ＵＩタスク３０３は、指定された画像をＵＩ１，５に描画する処理（ＵＩ描画処理）を実行する（ステップＳ３０２）。ＵＩタスク３０３は、ＵＩ描画処理が終了したか否か判定する（ステップＳ３０３）。
【００６８】
ＵＩ描画処理が終了していない場合（ステップＳ３０３／ＮＯ）、ＵＩタスク３０３は、ステップＳ３０２のＵＩ描画処理を継続する。ＵＩ描画処理が終了した場合（ステップＳ３０３／ＹＥＳ）、ＵＩタスク３０３は、ＯＳ間通知を用いて、ＵＩ描画処理が完了したことを、ＵＩダミータスク２１１に通知する（ステップＳ３０４）。ＵＩタスク３０３は、ＵＩ描画処理の完了を通知すると、ステップＳ３０１からの処理を再び実行する。
【００６９】
以上の説明から明らかなように、ＵＩダミータスク２１１がＯＳ１に組み込まれていない場合には、ＵＩタスク３０３の実行中でも、ＯＳ１のタスクに実行要求が入ると、ＯＳ１がＯＳ２よりも実行優先度が高いため、ＯＳ２へのハードウェアリソースの割り当ては解除されてしまう。しかしながら、上述の実施例によれば、ＵＩタスク３０３を擬似したＵＩダミータスク２１１が実行されると、ＯＳ１に割り当てられたハードウェアリソースが、ＯＳ２に委譲される。このため、ＯＳ２のＵＩタスク３０３は、ＯＳ１においてＵＩダミータスク２１１よりも優先度の低いタスクに実行要求が入力されても、ハードウェアリソースの割り当てを解除されることがない。これにより、ＯＳ１の各タスクと連携させたいＯＳ２のＵＩタスク３０３が、あたかもリアルタイム処理であるかのように実行される。従って、ＯＳ１のタスクと、ＯＳ１よりも実行優先度が低いＯＳ２のタスクとを連携させた一連の処理にかかる時間が短縮される。
【００７０】
描画処理などは、ユーザが要望する機能の付加、カスタマイズ性等が要求されるため、開発の容易性・柔軟性の観点から、できれば汎用ＯＳ上で動作することが望ましい。しかし、ＵＩ１，５に対する描画処理は、非リアルタイム処理ではあるが、ユーザの使い勝手や満足度に影響する、いわゆるソフトリアルタイム処理にあたるため、処理の遅延や中断は望ましくない。上述の実施例によれば、ＵＩダミータスク２１１が、ハイパーバイザ１００に、リアルタイムＯＳ（ＯＳ１）から非リアルタイムＯＳ（ＯＳ２）へのハードウェアリソース割り当ての切替えを要求することで、ソフトリアルタイム処理であるＵＩタスク３０３に対しても、ハードウェアリソースが割り当てられる。その結果、リアルタイムＯＳで実行されるタスクと、非リアルタイムＯＳで実行されるタスクとの連携が適切に制御され、一連の処理にかかる時間が短縮される。
【００７１】
なお、上述の実施例では、ＵＩタスク３０３を擬似するＵＩダミータスク２１１を用いて説明を行ったが、ダミータスクの登録は、ＵＩタスクだけに限定されるものではない。非リアルタイムＯＳ上で動作するが、あたかもリアルタイム処理のように実行させたい処理に対して、リアルタイムＯＳにダミータスクを組みこむことができる。例えば、ネットタスク３０２を擬似するネットダミータスク、及びファイルシステムタスク３０１を擬似するファイルシステムダミータスクを、ＯＳ１に組み込んでもよい。
【００７２】
上述した実施の形態は、本発明の実施形態の一部である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００７３】
上述の実施例では、ハイパーバイザ１００は、第１の仮想計算機２００及び第２の仮想計算機３００を生成することとしたが、ハイパーバイザ１００が生成する仮想計算機の数は、本実施例に限定されるものではない。
【００７４】
また、各ＯＳの実行優先度、及び各ＯＳ内でのタスクの優先度が変更可能であることは、いうまでもない。
【００７５】
なお、上記の制御装置及び画像処理装置が有する機能は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えるコンピュータによって実現することができる。その場合、制御装置及び画像処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００７６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【００７８】
１…ユーザ端末
２…画像形成装置
４…制御装置
５…操作表示部
６…画像読取装置（ＩＩＴ）
７…画像出力装置（ＩＯＴ）
８…ＦＡＸ装置
１００…ハイパーバイザ
２００…第１の仮想計算機
３００…第２の仮想計算機
２０６…画像処理部
２０７…印刷処理部
２０８…コピー処理部
２０９…ＦＡＸ制御部
２１０…ジョブ制御部
２１１…ＵＩダミータスク
３０３…ＵＩタスク
３０４…ＵＩ制御部
３０５…ジョブ制御部
【図１】
2011192130.tif 000003
【図２】
2011192130.tif 000004
【図３】
2011192130.tif 000005
【図４】
2011192130.tif 000006
【図５】
2011192130.tif 000007
【図６】
2011192130.tif 000008
【図７】
2011192130.tif 000009