(57)【要約】      （修正有）【課題】排他制御による遅延を低減可能な画像形成装置を提供する。【解決手段】画像形成装置１０１は、画像形成装置のモジュール３０１，３０２に係る複数の処理によって使用される画像データ、又は前記画像データを記憶する記憶領域と、一つ以上のハードウェアとを複数のリソース３０５〜３０８として管理するリソース管理手段３０４と、前記複数のリソースのうちの少なくとも一のリソースが使用される場合、前記少なくとも一のリソース対する排他制御を行い、前記モジュールに対する排他制御を停止又は終了する排他制御手段３０３と、を有する。【選択図】図３
2014197377.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置のモジュールに係る複数の処理によって使用される画像データ、又は前記画像データを記憶する記憶領域と、一つ以上のハードウェアとを複数のリソースとして管理するリソース管理手段と、
前記複数のリソースのうちの少なくとも一のリソースが使用される場合、前記少なくとも一のリソースに対する排他制御を行い、前記モジュールに対する排他制御を停止又は終了する排他制御手段と、
を有する画像形成装置。
【請求項２】
前記排他制御手段は、前記少なくとも一のリソースに対する排他制御を行う前に、前記モジュールに対する排他制御を行う請求項１に記載の画像形成装置。
【請求項３】
前記排他制御手段は、前記少なくとも一のリソースに対する排他制御を停止又は終了する前に前記モジュールに対する排他制御を停止又は終了する請求項１又は２に記載の画像形成装置。
【請求項４】
前記複数の処理のうちの一の処理に係る排他制御は、前記複数のリソースに基づいて複数の処理単位に細分化されている請求項１乃至３のいずれか一項に記載の画像形成装置。
【請求項５】
前記一の処理に係る排他制御は、前記複数のリソースの処理速度に基づいて細分化されている請求項４に記載の画像形成装置。
【請求項６】
前記複数のリソースは、連動して所定の処理を行う２つ以上のリソースを含み、
前記所定の処理は、前記複数の処理単位のうちの一の処理単位に含まれる請求項４又は５に記載の画像形成装置。
【請求項７】
前記複数のリソースは、同等の処理を並行して実行可能な複数の実行ユニットを含み、
前記一の処理に係る排他制御は、前記複数の実行ユニットの数に応じて細分化されている請求項４に記載の画像形成装置。
【請求項８】
前記少なくとも一のリソースは前記少なくとも一のリソースをさらに細分化した複数のサブリソースを含み、
前記サブリソースを使用するとき、前記少なくとも一のリソースに対する排他制御を停止又は終了する請求項１乃至７のいずれか一項に記載の画像形成装置。
【請求項９】
前記複数のリソースとして管理される複数の記憶領域を有する請求項１乃至８のいずれか一項に記載の画像形成装置。
【請求項１０】
前記リソース管理手段は、予め定められた機能を実現するソフトウェア資源の少なくとも一つを前記複数のリソースとして管理する請求項１乃至９のいずれか一項に記載の画像形成装置。
【請求項１１】
前記リソース管理手段は、前記複数のリソースのうちのいくつかを１つのリソースとして管理する請求項１乃至１０のいずれか一項に記載の画像形成装置。
【請求項１２】
画像形成装置のモジュールに係る複数の処理によって使用される画像データ、又は前記画像データを記憶する記憶領域と、一つ以上のハードウェアとを複数のリソースとして管理し、
前記複数のリソースのうちの少なくとも一のリソースが使用される場合、前記少なくとも一のリソースに対する排他制御を行い、前記モジュールに対する排他制御を停止又は終了する画像形成装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及び画像形成装置の制御方法に関する。
【背景技術】
【０００２】
従来、ファクシミリ、プリンタ、コピー及びスキャナ等の機能を備えた複合機が知られている。複合機では、高速化及び画像の高解像度、高階調化に伴い、画像データの転送時間が増加するため、管理エリアの情報の高速なハンドリング及び処理が重要である。特許文献１には、データ記録中の電源断等によるデータの不整合を防止して、ハードディスクのデータの整合性を維持する画像形成装置、ハードディスク管理方法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に開示された技術では、データの整合性を重視して排他制御が行われており、その排他制御が行われている間は他の処理が割り込めないという問題点があった。
【０００４】
本発明の実施の形態は、上記問題点を鑑みてなされたものであって、排他制御による遅延を低減可能な画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、一実施形態に係る画像形成装置は、画像形成装置のモジュールに係る複数の処理によって使用される画像データ、又は前記画像データを記憶する記憶領域と、一つ以上のハードウェアとを複数のリソースとして管理するリソース管理手段と、前記複数のリソースのうちの少なくとも一のリソースが使用される場合、前記少なくとも一のリソースに対する排他制御を行い、前記モジュールに対する排他制御を停止又は終了する排他制御手段と、を有する。
【発明の効果】
【０００６】
本発明の実施の形態によれば、排他制御による遅延を低減可能な画像形成装置を提供することができる。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に係る複合機の構成図である。
【図２】一実施形態に係る複合機のハードウェア構成図である。
【図３】一実施形態に係る複合機の機能構成図である。
【図４】一実施形態に係るモジュールとリソースの関係を示す図である。
【図５】一実施形態に係るリソースの取得手順を示すフローチャートである。
【図６】第１の実施形態に係る処理が１つの場合の排他制御の流れを示す図である。
【図７】処理が２つの場合の処理の一例（本実施の形態を実施していない場合）を示す図である。
【図８】第1の実施形態に係る処理が２つの場合の排他制御の流れを示す図である。
【図９】第１の実施形態に係る処理が３つの場合の排他制御の流れを示す図である。
【図１０】第１の変形例によるリソースの構成例を示す図である。
【図１１】第２の変形例によるリソースの構成例を示す図である。
【図１２】第２の変形例による排他制御の流れを示す図である。
【図１３】第３の変形例によるリソースの構成例を示す図である。
【図１４】第４の変形例によるリソースの構成例を示す図である。
【図１５】第２の実施形態に係る処理１の排他制御の処理単位を示す図である。
【図１６】第２の実施形態に係る処理２の排他制御の処理単位を示す図である。
【図１７】従来の入力処理の一例を示す図である。
【図１８】第２の実施形態に係る入力処理の例を示す図である。
【図１９】第３の実施形態に係る処理１の排他制御の処理単位を示す図である。
【図２０】第３の実施形態に係る処理２の排他制御の処理単位を示す図である。
【図２１】第３の実施形態に係る入力処理の例を示す図である。
【図２２】第４の実施形態に係るリソースの構成を示す図である。
【図２３】第４の実施形態に係る処理の一例を示す図である。
【図２４】第４の実施形態に係る処理の別の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下に、本発明の実施の形態について、添付の図面を参照して説明する。
【０００９】
＜システム構成＞
図１に、一実施形態に係る画像形成装置（以下、複合機と称す）１００の構成図を示す。複合機１００は、ソフトウェア群１０１と、複合機起動部１０２と、ハードウェア資源１０３とを有する。ハードウェア資源１０３は、スキャナ１２４、白黒レーザプリンタ（以下、白黒ＬＰと称す）１２５、カラーレーザプリンタ（以下、カラーＬＰと称す）１２６及びその他のハードウェアリソース１２３を含む。
【００１０】
複合機起動部１０２は、複合機１００の電源投入時に最初に起動され、アプリケーション層１０４及びプラットフォーム層１０５を起動する。例えば複合機起動部１０２は、アプリケーション層１０４及びプラットフォーム層１０５のプログラムを、後述するハードディスク装置等から読み出し、読み出した各プログラムをメモリ領域に転送して起動する。
【００１１】
ソフトウェア群１０１は、ＵＮＩＸ（登録商標）等のオペレーティングシステム（以下、ＯＳと称す）上に起動されているアプリケーション層１０４とプラットフォーム層１０５とを含む。アプリケーション層１０４は、プリンタ、コピー、ファックス及びスキャナ等の画像形成に係るユーザサービスにそれぞれ固有の処理を行うプログラムを含む。
【００１２】
アプリケーション層１０４は、プリンタアプリ１０８と、コピーアプリ１０９と、ファックスアプリ１１０と、スキャナアプリ１１１等を含む。プリンタアプリ１０８は、プリンタ用のアプリケーションである。コピーアプリ１０９はコピー用のアプリケーションである。ファックスアプリ１１０はファックス用のアプリケーションである。スキャナアプリ１１１は、スキャナ用のアプリケーションである。
【００１３】
また、プラットフォーム層１０５は、アプリケーション層１０４からの処理要求を解釈してハードウェア資源１０３の獲得要求を発生するコントロールサービス層１０６と、1つ以上のハードウェア資源１０３の管理を行ってコントロールサービス層１０６からの獲得要求を調停するシステムリソースマネージャ（以下、ＳＲＭと称す）１２０と、ＳＲＭ１２０からの獲得要求に応じてハードウェア資源１０３の管理を行うハンドラ層１０７とを含む。
【００１４】
コントロールサービス層１０６は、ネットワークコントロールサービス（以下、ＮＣＳと称す）１１２、デリバリーコントロールサービス（以下、ＤＣＳと称す）１１３、オペレーションコントロールサービス（以下、ＯＣＳと称す）１１４、ファックスコントロールサービス（以下、ＦＣＳと称す）１１５、エンジンコントロールサービス（以下、ＥＣＳと称す）１１６、メモリコントロールサービス（以下、ＭＣＳと称す）１１７、ユーザインフォメーションコントロールサービス（以下、ＵＣＳと称す）１１８、システムコントロールサービス（以下、ＳＣＳと称す）１１９等、一つ以上のサービスモジュールを含むように構成されている。
【００１５】
尚、プラットフォーム層１０５は、予め定義されている関数により、アプリケーション層１０４からの処理要求を受信可能にするアプリケーションプログラミングインタフェース（以下、ＡＰＩ称す）１２８を有する。オペレーティングシステム（以下、ＯＳと称す）は、アプリケーション層１０４及びプラットフォーム層１０５の各ソフトウェアをプロセスとして並列実行する。
【００１６】
ネットワークコントロールサービスであるＮＣＳ１１２のプロセスは、ネットワーク入出力を必要とするアプリケーションに対して共通に利用できるサービスを提供するものである。ＮＣＳ１１２は、ネットワーク側から各プロトコルによって入手したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。例えば、ＮＣＳ１１２は、ネットワークを介して接続されるネットワーク機器とのデータ通信をｈｔｔｐｄ（Hyper Text Transfer Protocol Daemon）により、ＨＴＴＰ（Hyper Text Transfer Protocol）で制御する。
【００１７】
デリバリーコントロールサービスであるＤＣＳ１１３のプロセスは、蓄積文書の配信等の制御を行う。オペレーションコントロールサービスであるＯＣＳ１１４のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。ファックスコントロールサービスであるＦＣＳ１１５のプロセスは、アプリケーション層１０４からＰＳＴＮ等を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録／引用、ファックス読み取り、ファックス受信印刷等を行うためのＡＰＩを提供する。
【００１８】
エンジンコントロールサービスであるＥＣＳ１１６のプロセスは、スキャナ１２４、白黒レーザプリンタ（白黒ＬＰ）１２５、カラーレーザプリンタ（カラーＬＰ）１２６、その他のハードウェアリソース１２３等の、エンジン部の制御を行う。メモリコントロールサービスであるＭＣＳ１１７のプロセスは、メモリの取得及び開放、ハードディスク装置の利用等のメモリ制御を行う。ユーザインフォメーションコントロールサービスであるＵＣＳ１１８のプロセスは、ユーザ情報の管理を行う。
【００１９】
システムコントロールサービスであるＳＣＳ１１９のプロセスは、アプリケーション管理、操作部制御、システム画面表示、ＬＥＤ表示、ハードウェア資源管理、割り込みアプリケーション制御等の処理を行う。
【００２０】
システムリソースマネージャであるＳＲＭ１２０のプロセスは、スキャナ１２４、白黒ＬＰ１２５やカラーＬＰ１２６等のハードウェア資源１０３を含むリソースを利用する上位層からの獲得要求に従って調停を行い、実行制御する。具体的には、ＳＲＭ１２０のプロセスは、リソースが利用可能であるか（他の獲得要求により利用されていないかどうか）を判定し、利用可能であれば獲得要求されたリソース利用可能である旨を上位層に通知する。また、ＳＲＭ１２０のプロセスは、上位層からの獲得要求に対してリソースを利用するためのスケジューリングを行い、要求内容（例えば、プリンタエンジンによる紙搬送と作像要求、メモリ確保、ファイル生成等）を直接実施している。
【００２１】
また、ハンドラ層１０７は、後述するファックスコントロールユニット（以下、ＦＣＵと称す）の管理を行うファックスユニットハンドラ（以下、ＦＣＵＨと称す）１２１と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行うイメージメモリハンドラ（以下、ＩＭＨと称す）１２２とを含む。ＳＲＭ１２０及びＦＣＵＨ１２１は、予め定義されている関数によりハードウェア資源１０３に対する処理要求を送信可能とするエンジンインタフェース（以下、エンジンＩ／Ｆと称す）１２７を利用して、ハードウェア資源１０３に対する処理要求を行う。
【００２２】
また、ＩＭＨ１２２は、ハードウェア資源１０３や画像データ又は画像データを記憶する記憶領域をリソースとして管理する。さらに、ＯＳから提供されている排他の仕組みを使用して、上記リソース等の排他制御を行い、情報やハードウェアの競合を防いでいる。
【００２３】
複合機１００は、各アプリケーションで共通的に必要な処理をプラットフォーム層１０５で一元的に処理することができる。
【００２４】
上記構成において、例えば、画像の読み込みを行う場合には、コピーアプリ１０９、ファックスアプリ１１０又はスキャナアプリ１１１等にて要求が発生する。要求に応じてスキャナ１２４等で読み込まれた画像のデータは、プラットフォーム層１０５を通じて、メモリ等の記憶領域に書き込まれる。記憶領域に書き込まれた画像データは、エンジンＩ／Ｆ１２８を介して、例えば、白黒ＬＰ１２５、カラーＬＰ１２６等で印刷することができる。
【００２５】
＜ハードウェア構成＞
図２は、複合機１００の一実施の形態におけるハードウェア構成図を示している。複合機１００は、コントローラボード２００と、オペレーションパネル２０９と、ＦＣＵ２１０と、エンジン部２１３とを含む。エンジン部２１３は、例えば、図１のスキャナ１２４、白黒ＬＰ１２５、カラーＬＰ１２６等を含む。また、コントローラボード２００は、ＣＰＵ２０１と、ＡＳＩＣ２０６と、ハードディスク装置（以下、ＨＤＤと称す）２０８と、システムメモリ（ＭＥＭ−Ｐ）２０２と、ローカルメモリ（ＭＥＭ−Ｃ）２０７と、ノースブリッジ（以下、ＮＢと称す）２０３と、サウスブリッジ（以下、ＳＢと称す）２０４と、ＮＩＣ２１４（Network Interface Card）と、ＵＳＢデバイス２１１と、ＩＥＥＥ１３９４デバイス２１２と、セントロニクスデバイス２１５とを含む。
【００２６】
オペレーションパネル２０９は、コントローラボード２００のＡＳＩＣ２０６に接続されている。また、ＳＢ２０４と、ＮＩＣ２１４と、ＵＳＢデバイス２１１と、ＩＥＥＥ１３９４デバイス２１２と、セントロニクスデバイス２１５は、ＮＢ２０３にＰＣＩバスで接続されている。また、ＦＣＵ２１０と、エンジン部２１３は、コントローラボード２００のＡＳＩＣ２０６にＰＣＩバスで接続されている。
【００２７】
尚、コントローラボード２００は、ＡＳＩＣ２０６にローカルメモリ２０７、ＨＤＤ２０８等が接続されると共に、ＣＰＵ２０１とＡＳＩＣ２０６とがＣＰＵチップセットのＮＢ２０３を介して接続されている。このように、ＮＢ２０３を介してＣＰＵ２０１とＡＳＩＣ２０６とを接続すれば、ＣＰＵ２０１のインタフェースが公開されていない場合に対応できる。
【００２８】
また、ＡＳＩＣ２０６とＮＢ２０３とは、ＰＣＩバスを介して接続されているのではなく、ＡＧＰ（Accelerated Graphic Port）２０５を介して接続されている。このように、図１のアプリケーション層１０４やプラットフォーム層１０５を形成する一つ以上のプロセスを実行制御するため、ＡＳＩＣ２０６とＮＢ２０３とを低速のＰＣＩバスではなく、ＡＧＰ２０５を介して接続し、パフォーマンスの低下を防いでいる。
【００２９】
ＣＰＵ２０１は、複合機１００の全体制御を行うものである。ＣＰＵ２０１は、ＮＣＳ１１２、ＤＣＳ１１３、ＯＣＳ１１４、ＦＣＳ１１５、ＥＣＳ１１６、ＭＣＳ１１７、ＵＣＳ１１８、ＳＣＳ１１９、ＳＲＭ１２０、ＦＣＵＨ１２１、ＩＭＨ１２２をＯＳ上にそれぞれプロセスとして起動して実行させる。さらに、アプリケーション層１０４を形成するプリンタアプリ１０８、コピーアプリ１０９、ファックスアプリ１１０、スキャナアプリ１１１を同様に起動して実行させる。
【００３０】
ＮＢ２０３は、ＣＰＵ２０１、システムメモリ２０２、ＳＢ２０４及びＡＳＩＣ２０６を接続するためのブリッジである。システムメモリ２０２は、複合機１００の描画用メモリ等として用いるメモリである。ＳＢ２０４は、ＮＢ２０３とＰＣＩバス、周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ２０７は、コピー用画像バッファ、符号バッファとして用いるメモリである。システムメモリ２０２又はローカルメモリ２０７は、以下の説明で、単にメモリ、又は記憶領域と表現する場合がある。
【００３１】
ＡＳＩＣ２０６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣである。ＨＤＤ２０８は、画像の蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積等を行うためのストレージである。また、オペレーションパネル２０９は、ユーザからの入力操作を受け付けると共に、ユーザに向けた表示を行う操作部である。
【００３２】
＜機能構成＞
図３に、複合機１００の機能構成の一例を示す。複合機１００は、一つ以上のモジュール３０１、３０２、排他制御手段３０３、リソース管理手段３０４、及び複数のリソース３０５、３０６、３０７、３０８を含む。尚、モジュール３０１、３０２及び、リソース３０５〜３０８の数は一例であって、その数は他の数であっても良い。
【００３３】
モジュール３０１、３０２は、ＣＰＵ２０１等に予め定められた機能を実現させるためのプログラムであり、例えば、アプリケーション層１０４のアプリケーションや、コントロールサービス層１０６のサービス等である。リソース管理手段３０４は、ハードウェア資源１０３や、画像データ又は画像データを記憶する記憶領域等を、それぞれリソース３０５〜３０８として管理する。排他制御手段３０３は、リソース３０５〜３０８やモジュール３０１、３０２等の排他制御を行う。尚、リソース管理手段３０４、排他制御手段３０３は、例えば、ＣＰＵ２０１で動作するプログラムによって実現される。このプログラムは、例えば、図２のＨＤＤ２０８等のストレージデバイス、及び／又はＵＳＢデバイス２１１等に接続されたＵＳＢメモリ等の記録媒体に格納することができる。
【００３４】
次に、モジュールとリソースの関係について説明する。図４は、一実施の形態に係るモジュールとリソースの関係を示す図である。モジュール３０１は、その処理の中で、ハードウェア資源４０１、４０２、４０３、及び画像データ４０４を使用する。ここで、リソース管理手段３０４は、これらのハードウェア資源４０１〜４０３、及び画像データ４０４等をそれぞれリソース３０５〜３０８として管理する。尚、ハードウェア資源４０１のように、同じハードウェアが複数搭載されている場合には、その複数のハードウェアをまとめて１つのリソースとして管理しても良い。
【００３５】
モジュール３０１が行う処理によって、必要なリソースは決まっており、必要の無いリソースにはアクセスしない。そのため、排他制御手段３０３は、処理に必要なリソースに応じて、排他制御を行う。
【００３６】
排他制御手段３０３は、例えば、リソース３０５がモジュール３０１の処理によって使用される場合、リソース３０５の排他制御を行い、リソース３０５の使用が終わったときにリソース３０５の排他制御を停止又は終了する。但し、ランダムに各リソースの権利を取得していくとデッドロックが発生する恐れがあるため、各リソースを使用する前にモジュール３０１の排他制御を行い、モジュール３０１の処理は、モジュール３０１を介して各リソースの権利を取得する。
【００３７】
図５に、本実施の形態に係るリソースの取得手順を示すフローチャートを示す。例えば、モジュール３０１の処理が、リソース３０５を使用する場合、排他制御手段３０３は、モジュール３０１の排他制御を行う（ステップＳ５０１）。次に、排他制御手段３０３は、リソース３０５の排他制御を開始し、モジュール３０１の排他制御を停止又は終了する（ステップＳ５０２）。次に、ステップＳ５０３において、リソース３０５における処理が終わった後、リソース３０５の排他制御を停止又は終了する（ステップＳ５０４）。モジュール３０１は、各リソースへの排他制御等の状況を一元管理することにより、各リソースへの重複した排他制御を防止し、デッドロックを防止している。
【００３８】
＜動作の説明＞
次に複合機１００の動作について説明する。
【００３９】
［第１の実施の形態］
図６は、第１の実施形態に係る処理が１つの場合の排他制御の流れを示す図である。ここでは、処理１はリソース３０５から、３０６、３０７、３０８の順番に使用していくものとする。
【００４０】
処理１のリソース３０５に対応する処理である処理１−１がリソース３０５を使用する場合、排他制御手段３０３は、時刻Ｔ１において、モジュール３０１の排他制御を行い、その後、時刻Ｔ３においてリソース３０５の排他制御を開始する。尚、本実施の形態では、排他制御手段３０３は、リソース３０５の排他制御を開始する時刻Ｔ３、またはその前にモジュール３０１の排他制御を停止又は終了するものとして説明を行うが、本発明の範囲を限定するものではない。例えば、排他制御手段３０１は、リソース３０５の排他制御を開始した後に、モジュール３０１の排他制御を停止又は終了するものであっても良い。時刻Ｔ５において処理１−１によるリソース３０５の使用が終わると、リソース管理手段３０４は、リソース３０５の排他制御を終了する。
【００４１】
時刻Ｔ５において、処理１−１が終わると、次のリソース３０６に係る処理である処理１−２を開始する。排他制御手段３０３は、時刻Ｔ５において、モジュール３０１の排他制御を行い、その後時刻Ｔ７において、リソース３０６の排他制御を開始する。尚、排他制御手段３０３は、リソース３０６の排他制御を開始する時刻Ｔ７又はその前にモジュール３０１の排他制御を終了する。同様にして、処理１−３、処理１−４についても、順次処理を行い、最後に処理１−５を実行して、時刻Ｔ１９に処理１を完了する。このように排他制御手段３０３は、処理１が使用するリソースに対応して、処理１に係る排他制御を複数の処理単位に細分化（分割）する。また、排他制御手段３０３は、各リソースで処理を行っているとき、モジュール３０１の排他制御を停止又は終了する。
【００４２】
次に処理が２つの場合の動作について説明する。図７は、本実施の形態を実施していない場合の処理の流れの一例を示す図である。図７において、処理１は、リソース３０５とリソース３０７を使用する処理である。また、処理２は、リソース３０６とリソース３０５を使用する処理である。図７では、図６のように処理１に係る排他制御が各リソースに対応する複数の処理単位に細分化されていないので、処理１の処理が始まる時刻Ｔ１から処理が終わる時刻Ｔ５までモジュール３０１の排他制御は解除されない。そのため、処理２は、時刻Ｔ９まで処理を開始できず、大きな遅延が発生する。
【００４３】
次に、図８は第１の実施形態に係る処理が２つの場合の排他制御の流れを示す図である。図８の時刻Ｔ１において、処理１のリソース３０５に係る処理である処理１−１を開始すると、それに応じて排他制御手段３０３は、モジュール３０１の排他制御を行う。この排他制御が行われている間、処理１−１以外の処理はモジュール３０１を使用することができない。次に排他制御手段３０３は、時刻Ｔ３にモジュール３０１の排他制御を終了し、リソース３０５の排他制御を行う。これにより、処理１−１は、リソース３０５を使用できるようになる。一方、リソース３０５は、処理１−１以外の処理からは使用できなくなる。
【００４４】
時刻Ｔ３において、モジュール３０１の排他制御が解除されると、処理２は、リソース３０７に係る処理である処理２−１を開始する。処理２−１の開始に応じて、排他制御手段３０３は時刻Ｔ３よりモジュール３０１の排他制御を開始し、モジュール３０１は処理２−１以外の処理では使用できなくなる。
【００４５】
時刻Ｔ５において、排他制御手段３０３は、処理２−１に係るモジュール３０１の排他制御を終了し、リソース３０７の排他制御を開始する。一方、時刻Ｔ５において、処理１−１によるリソース３０５に係る処理が終わると、排他制御手段３０３は、リソース３０５の排他制御を終了する。Ｔ５において、処理１−１が終了し、モジュール３０１が使用可能であるため、処理１の次のリソースであるリソース３０７に係る処理１−２を開始する。排他制御手段３０３は、処理１−２の開始に応じてモジュール３０１の排他制御を開始する。
【００４６】
時刻Ｔ７において、排他制御手段３０３は、処理１−２に係るモジュール３０１の排他制御を終了し、リソース３０６の排他制御を開始する。一方、時刻Ｔ７において、処理２−１が完了すると、排他制御手段３０３はリソース３０７の排他制御を終了する。また、時刻Ｔ７において、処理２の次のリソースであるリソース３０５に係る処理である処理２−２を開始する。処理２−２の開始に応じて、排他制御手段３０３は、時刻Ｔ７よりモジュール３０１の排他制御を開始する。
【００４７】
時刻Ｔ９において、排他制御手段３０３は、処理２−２に係るモジュール３０１の排他制御を終了し、リソース３０５の排他制御を開始する。また、時刻Ｔ９において、処理1は、処理１−２を終え、処理１−３に処理を移行する。次に、時刻Ｔ１１において、処理２は、処理２−２を終え、処理２−３に処理を移行する。
【００４８】
このようにして、各処理に係る排他制御を複数のリソースに対応する複数の処理単位に細分化することにより、必要最低限のリソース又はモジュールだけを排他制御することができる。従って、複数の処理が並行して動作した場合に、排他制御による遅延を低減することができる。
【００４９】
ここで、図５、６における、リソース３０５、３０６、３０７と各ハードウェア資源１０３の対応について、具体的な一例をあげて説明する。例えば、図８において、リソース３０５をデータの一時記憶領域、リソース３０６をカラーＬＰ１２６、リソース３０７をスキャナ１２４とする。また、処理１を一時記憶領域のデータをカラーＬＰ１２６で印刷する処理、処理２をスキャナ１２４から入力したデータを一時記憶領域に保存する処理とする。
【００５０】
この場合、図７の動作では、一時記憶領域のデータをカラーＬＰ１２６で印刷する処理が終了するまで、スキャナ１２４からの入力処理を行うことができなかった。しかし、図８に示す本実施の形態では、一時記憶領域からデータを読み出している期間（時刻Ｔ３からＴ５）、及びカラーＬＰ１２６が印刷を行っている期間（時刻Ｔ７からＴ９）には、スキャナ１２４からのデータ入力を開始することができる。
【００５１】
尚、図６、７、８において、説明を簡単にするため、各処理の排他制御期間が等しく記載されているが、本発明の範囲を制限するものではない。例えば、図８のＴ５において、処理２−１は、モジュール３０１の排他制御を終了し、リソース３０７の排他制御を開始している。しかし、例えば、時刻Ｔ４において処理２−１によるモジュール３０１の処理が完了していれば、時刻Ｔ４においてモジュール３０１の排他制御を終了し、リソース３０７の排他制御を開始しても良い。他の処理による排他制御期間についても、必要な期間だけ、必要なモジュール又はリソースを排他制御すれば良いことは言うまでもない。
【００５２】
次に、複数の処理の間でリソースが競合する場合の動作について説明する。図９は、第１の実施形態における処理が３つの場合の排他制御の流れを示す図である。尚、基本的な排他制御の流れは図８と同じであるので、図８との相違点を中心に説明する。
【００５３】
モジュール３０１の処理である処理１、２、３はそれぞれ、リソース３０５とリソース３０７、リソース３０７とリソース３０８、リソース３０７とリソース３０８を使用する。従って、処理１、２、３は、いずれもリソース３０７を使用することになる。
【００５４】
図９の時刻Ｔ１において、排他制御手段３０３は処理１−１に係るモジュール３０１の排他制御を行う。次に、時刻Ｔ４に処理１−１に係るモジュール３０１の排他制御を終了し、リソース３０５の排他制御を開始する。時刻Ｔ４にモジュール３０１が利用可能になると、排他制御手段３０３は、処理２−１に係るモジュール３０１の排他制御を行う。その後、時刻Ｔ５に処理２−１に係るモジュール３０１の排他制御を終了し、リソース３０７の排他制御を開始する。時刻Ｔ５には、処理２−１に係るモジュール３０１の排他制御が終了するため、モジュール３０１が利用可能になるが、処理１及び処理２は他の処理を実行しているため、モジュール３０１を利用しない。このとき、新たな処理である処理３がモジュール３０１を利用できる。
【００５５】
時刻Ｔ５において、排他制御手段３０３は処理３−１に係るモジュール３０１の排他制御を行い、時刻Ｔ６にモジュール３０１の排他制御を終了する。しかし、時刻Ｔ６において、処理３−１が使用したいリソース３０７は、処理２−１によって使用中なので、処理３−１はリソース３０７の使用権を獲得することができない。
【００５６】
時刻Ｔ７において、処理２−１が完了し、リソース３０７の排他制御が終了すると、リソース３０７が利用可能になる。しかし、時刻Ｔ７には、処理１−２に係るモジュール３０１も排他制御が終了するので、時刻Ｔ７においてリソース３０７には、処理１−２、処理３−１の双方からの利用要求が発生する。ここで、排他制御手段３０３は、処理３よりも先に実行を開始した処理１に係る処理１−２に優先的にリソース３０７を割り当てるものとする。この場合、排他制御手段３０３は、処理１−２が完了し、リソース３０７の排他制御が終了する時刻Ｔ９に、処理３−１に係るリソース３０７の排他制御を開始する。
【００５７】
同様に、時刻Ｔ１１において、処理２−２と処理３−１との間でモジュール３０１への要求が競合するが、処理３よりも先に実行を開始した処理２に係る処理２−２を優先して実行させる。
【００５８】
尚、上記動作は本実施の形態の一例であって本発明の範囲を限定するものではない。例えば、図７の時刻Ｔ７において、先に実行を開始した処理１に係る処理１−２を先に処理したが、システムの要求等に応じて、先に処理を終えた、処理３−１を先に処理するものであっても良い。
【００５９】
以上より、本実施の形態によれば、排他制御による遅延を低減した画像形成装置を提供することができる。
【００６０】
尚、本実施の形態は本発明の範囲を限定するものではない。システムやユーザ等の要求に応じて様々な応用が可能であることは言うまでもない。以下に、いくつかの変形例をあげて説明する。
【００６１】
（第１の変形例）
図４において、リソース管理手段３０４は、ハードウェア資源４０１、４０２、４０３、及び画像データ４０４をそれぞれリソース３０５、３０６、３０７、３０８として管理するものとして説明を行った。しかし、画像データ４０４に代えて、画像データを記憶する一時記憶領域をリソース３０８として管理しても良い。また、より好適な例として、図１０に示すように、画像データを記憶する一時記憶領域を複数のリソースに分けて管理すると良い。
【００６２】
図１０において、リソース管理手段３０４は、ハードウェア資源４０１、４０２、４０３、及び、メモリ上に設けられた複数の一時記憶領域１００１、１００２、１００３をそれぞれ、リソース３０５、３０６、３０７、１００４、１００５、１００６として管理する。
【００６３】
上記構成により、例えば処理１によって一時記憶領域１００１が使用されている場合でも、他の処理は記憶領域１００２又は１００３を使って処理を行うことができるので、一時記憶領域１００１の排他制御による遅延を低減できる。
【００６４】
（第２の変形例）
図１１は、第２の変形例におけるリソースの構成の一例である。各リソースは、その中にさらに細分化されたサブリソースを有していても良い。図１１の例では、リソース１００６は、サブリソース１１０１、１１０２を有している。図１２に、サブリソース１１０１、１１０２を処理１、２が利用する場合の排他制御の流れを示す。
【００６５】
図１２において、処理１がサブリソース１１０１を使用し、処理２がサブリソース１１０２を使用する場合の処理の流れについて説明する。時刻Ｔ１において、排他制御手段３０３は処理１に係るモジュール３０１の排他制御を行う。時刻Ｔ３において、排他制御手段３０３は、処理１に係るモジュール３０１の排他制御を停止又は終了し、リソース１００６の排他制御を行う。さらに、時刻Ｔ５において、排他制御手段３０３は、処理１に係るリソース１００６の排他制御を停止又は終了し、サブリソース１１０１の排他制御を開始する。時刻Ｔ９において、処理１によるサブリソース１１０１の使用が終わると、排他制御手段３０３は、サブリソース１１０１の排他制御を終了し、処理１に係るリソース１００６の排他制御を行う。次に、時刻Ｔ１１において、排他制御手段３０３は処理１に係るリソース１００６の排他制御を終了し、モジュール３０１の排他制御を開始する。処理２についても、同様に処理を行う。
【００６６】
上記動作の中で、サブリソース１１０１の排他制御を開始する時刻Ｔ５において、リソース１００６の排他制御を停止又は終了しているため、処理２は、時刻Ｔ７より、並行してサブリソース１１０２を使用することが可能となる。
【００６７】
上記構成により、リソースを複数のサブリソースに細分化して管理することが可能となり、また、リソース及びサブリソースの排他制御による遅延を低減できる。
【００６８】
（第３の変形例）
図１３に第３の変形例に係るリソースの構成の例を示す。リソース管理手段３０４が管理するリソースとして、ハードウェア資源や、画像データ又は画像データを記憶する記憶領域に加えて、圧縮、伸張のライブラリ等のソフトウェア資源を管理しても良い。
【００６９】
例えば、リソース管理手段３０４は、図１３の画像圧縮ライブラリ１３０１、画像伸張ライブラリ１３０２をそれぞれ、リソース１３０３、１３０４として管理する。
【００７０】
上記構成により、モジュール３０１の処理が、画像圧縮ライブラリ１３０１及び画像伸張ライブラリ１３０２を使用する際にも、排他制御による遅延を低減することができる。
【００７１】
（第４の変形例）
図１４に第４の変形例に係るリソースの構成の例を示す。リソース管理手段３０４は必要に応じて、複数のハードウェア資源や、画像データ、記憶領域等を１つのリソースとしてまとめて管理しても良い。図１４の例では、ハードウェア資源４０１、４０１をまとめてリソース１４０４として管理している。また、複数の画像データ１４０１、１４０２、１４０３をまとめてリソース１４０６として管理している。
【００７２】
例えば、コピー動作を他の処理よりも優先させたいような場合には、スキャナ１２４と白黒ＬＰ１２５をまとめてリソースとして管理することによって、他の処理の排他制御による遅延を防止することができる。
【００７３】
[第２の実施形態]
第１の実施形態では、画像形成装置１００のモジュールの複数の処理に係る排他制御をリソースに応じて細分化（分割）する場合の例について説明を行った。第２の実施形態では、モジュールの複数の処理に係る排他制御を細分化する際の好適な一例として、排他制御の処理単位が、複数のリソースの処理速度に基づいて細分化されている場合の例について説明する。
【００７４】
図１５は、第２の実施形態に係る処理１の排他制御の処理単位を示す図である。図１５において、モジュール１５０１は、出力部１５０２、入力部１５０３、画像データを記憶する複数の記憶領域１５０４、１５０５、ＨＤＤ１５０６等の複数のリソースを含む。
【００７５】
出力部１５０２は、例えば、図１の白黒ＬＰ１２５、カラーＬＰ１２６等のプリンタエンジン部である。入力部１５０３は、例えば、図２のスキャナ１２４等の画像入力部である。複数の記憶領域１５０４、１５０５は、例えば、図２のシステムメモリ２０２、ローカルメモリ２０７等のメモリ上に設けられた記憶領域である。ＨＤＤ１５０６は、例えば、図２のＨＤＤ２０８等のストレージデバイスである。
【００７６】
処理１は、入力部１５０３から読込んだ画像データを記憶領域１５０４に記憶し、記憶領域１５０４に記憶した画像データをＨＤＤ１５０６に保存する入力処理であるものとする。また、処理１は、複数のリソースである入力部１５０３、記憶領域１５０４、ＨＤＤ１５０６を利用し、記憶領域１５０４の処理速度は、入力部１５０３及びＨＤＤ１５０６の処理速度よりも十分に速いものとする。
【００７７】
このような場合、処理１の排他制御を３つのリソースに合わせて３分割するのではなく、比較的処理が遅いリソースである、入力部１５０３に係る処理と、ＨＤＤ１５０６に係る処理とに着目して、排他制御を２つの処理単位に分割すると良い。例えば、図１５に示すように、入力部１５０３及び記憶領域１５０４を処理単位１５０７、記憶領域１５０４及びＨＤＤ１５０６を処理単位１５０８とする。これにより、処理速度の遅い２つのリソースが同時に排他制御されることを防止することができる。尚、記憶領域１５０４の処理速度は、入力部１５０３又はＨＤＤ１５０６の処理速度よりも十分に速いので、入力部１５０３又はＨＤＤ１５０６と共に排他制御を行っても遅延時間への影響が少ない。
【００７８】
図１６は、第２の実施形態に係る処理２の排他制御単位を示す図である。処理２は、入力部１５０３から読込んだ画像データを記憶領域１５０５に記憶し、記憶領域１５０５に記憶した画像データをＨＤＤ１５０６に保存する入力処理であるものとする。本実施の形態では、図１５と同様に、比較的処理が遅いリソースである、入力部１５０３に係る処理と、ＨＤＤ１５０６に係る処理と、に２分割して排他制御を行う。例えば、図１６に示すように、入力部１５０３及び記憶領域１５０５を処理単位１６０１、記憶領域１５０５及びＨＤＤ１５０６を処理単位１６０２とする。これにより、処理１と同様に、処理速度の遅い２つのリソースが同時に排他制御されることを防止することができる。
【００７９】
尚、図１５、１６では、処理速度が遅いリソースが２つの場合について説明を行ったが、処理速度が遅いリソースの数が３つ以上ある場合、処理速度が遅いリソースの数に合わせて排他制御の処理単位を分割すれば良い。
【００８０】
また、処理速度が遅いか否かの判断は、例えば、複数のリソースの処理速度に係る情報、例えば、処理時間、又は処理が遅いことを示すフラグ等を記録したテーブルを、例えば、図２のＨＤＤ２０８等に記憶しておくと良い。
【００８１】
＜処理の流れ＞
図１７は、従来の入力処理の一例を示す図である。図１７において、時刻Ｔ１に処理１を開始すると、排他制御手段３０３はモジュール１５０１の排他制御を行う。ここで、処理１は、例えば、使用するリソースのアクセス権を取得する処理等を含む開始処理を行う。続いて、時刻Ｔ２において、排他制御手段３０３は、処理１がアクセス権を取得した入力部１５０３、記憶領域（例えば、記憶領域１５０４）、及びＨＤＤ１５０６の排他制御を行う。
【００８２】
処理１は、時刻Ｔ２〜Ｔ８の間、入力部１５０３、記憶領域、及びＨＤＤ１５０６を用いて所定の入力処理を行う。時刻Ｔ８に、処理１による入力処理が終わると、排他制御手段３０３は、入力部１５０３、記憶領域、及びＨＤＤ１５０６の排他制御を終了する。処理１は、例えば、使用が終わったリソースのアクセス権を開放する処理等を含む終了処理を行う。時刻Ｔ９には、排他制御手段３０３は、処理１に係るモジュール１５０１の排他制御を終了し、処理１は終了する。
【００８３】
尚、上記時刻Ｔ１〜Ｔ９の期間、モジュール１５０１が排他制御されているため、処理２は、モジュール１５０１を利用して処理を開始することができない。また、時刻Ｔ２〜Ｔ８の期間、入力部１５０３、記憶領域、及びＨＤＤ１５０６が排他制御されているため、処理２はもちろん、他のモジュール等からも上記リソースにアクセスすることはできない。
【００８４】
また、時刻Ｔ９に処理１に係るモジュール１５０１の排他制御が終了すると、処理２の実行を開始する。処理２が時刻Ｔ９に実行を開始すると、排他制御手段３０３はモジュール１５０１の排他制御を行う。ここで、処理２は、例えば、例えば、使用するリソースのアクセス権を取得する処理等を含む開始処理を行う。続いて、時刻Ｔ１０において、排他制御手段３０３は、処理２がアクセス権を取得した入力部１５０３、記憶領域（例えば、記憶領域１５０４）、及びＨＤＤ１５０６の排他制御を行う。
【００８５】
処理２は、時刻Ｔ１０〜Ｔ１６の間、入力部１５０３、記憶領域、及びＨＤＤ１５０６を用いて所定の入力処理を行う。時刻Ｔ１６に、処理２による入力処理が終わると、排他制御手段３０３は、入力部１５０３、記憶領域、及びＨＤＤ１５０６の排他制御を終了する。ここで、処理２は、例えば、使用が終わったリソースのアクセス権を開放する処理等を含む終了処理を行う。続いて、時刻Ｔ１７において、排他制御手段３０３は、処理２に係るモジュール１５０１の排他制御を終了し、処理２は終了する。
【００８６】
このように、従来の排他制御方法では、例えば、処理時間の比較的長い入力部１５０３及びＨＤＤ１５０６と、モジュール１５０１とを共に排他制御するため、排他制御による遅延時間が長くなる。
【００８７】
但し、従来は、ＨＤＤ１５０６の処理時間（転送時間）が、入力部１５０３の処理時間（入力時間）よりも短かったため、図１７の排他制御方法でも問題は顕在化しなかった。しかし、近年、入力部１５０３の高速化等により入力部１５０３の処理時間が短くなり、また、画像の高画質化に伴いＨＤＤ１５０６の転送時間が長くかかるようになってきた。その影響により、例えば、入力部１５０３とＨＤＤ１５０６を同時に排他制御することによる遅延時間の影響が無視できなくなってきた。
【００８８】
今後、さらに入力部１５０３の処理の高速化、及び画像の高画質化が進むことにより、例えば、ＨＤＤ１５０６の処理時間が、入力部１５０３の処理時間よりも大きくなる可能性もあり、ＨＤＤ１５０６の処理時間がボトルネックとなり、高速化された要求スペックを達成できなくなることが懸念される。本実施の形態に係る排他制御は、このような問題を低減する。
【００８９】
図１８は、第２の実施形態に係る入力処理の例を示す図である。本実施の形態では、記憶領域を複数に分割し（記憶領域１５０４、１５０５）、それぞれをリソースとして管理する。また、処理１の排他制御の処理単位を、処理速度が遅い、入力部１５０３に係る処理（処理単位１５０７）と、ＨＤＤ１５０６に係る処理（処理単位１５０８）とに分割する。同様に、処理２の排他制御の処理単位を、入力部１５０３に係る処理（処理単位１６０１）と、ＨＤＤ１５０６に係る処理（処理単位１６０２）とに分割する。
【００９０】
図１８の時刻Ｔ１において、処理１の実行を開始すると、排他制御手段３０３はモジュール１５０１の排他制御を行う。ここで、処理１は、処理単位１５０７で用いるリソースである入力部１５０３及び記憶領域１５０４のアクセス権を取得する処理等を含む開始処理を行う。尚、本実施の形態では、リソースを排他制御する前に、モジュール１５０１の排他制御を行い、排他制御されたモジュール１５０１でリソースのアクセス権等を管理することにより、デッドロックの発生を防止している。
【００９１】
次に、時刻Ｔ２において、排他制御手段３０３は、処理１がアクセス権を有するリソースである入力部１５０３及び記憶領域１５０４に対して排他制御を行い、モジュール１５０１に対する排他制御を終了（停止又は終了）する。
【００９２】
尚、ここで、排他制御を行うとは、対象となるリソース及び／又はモジュールを、他の処理が使用できないように制御（ロック）することである。また、排他制御を終了（停止又は終了）するとは、他の処理が使用できないように制御されたリソース及び／又はモジュールを、他の処理が使用できるように制御（ロックを解除）することである。
【００９３】
また、図１８の「排他制御期間」は、処理１又は処理２によって排他制御が行われている期間を示している。従って、例えば、図１８において、時刻Ｔ３〜Ｔ５の期間、モジュール１５０１は、処理１又は処理２によって排他制御されていないことを示す。つまり、図１８は、例えば時刻Ｔ３〜Ｔ５の期間、処理１、２がモジュール１５０１にアクセス可能であることを示すものであり、モジュール１５０１で処理１、２が実行されていないことを示すものではない。従って、排他制御手段３０３が、例えば、図１８の時刻Ｔ３の前にモジュール１５０１の排他制御を終了すると、例えば、時刻Ｔ３に任意の処理がモジュール１５０１を利用することができるようになる。
【００９４】
尚、排他制御手段３０３がモジュール１５０１の排他制御を終了するタイミングは、リソースの排他制御を開始する時刻、例えば、時刻Ｔ２の前であっても良いし、時刻Ｔ２以降であっても良い。
【００９５】
例えば、図１８の時刻Ｔ２の後の斜線部の期間、モジュール１５０１の排他制御を続けた場合であっても、他の処理は、例えば、時刻Ｔ３からモジュール１５０１を利用することができるので、排他制御による遅延時間を短縮する効果が期待できる。つまり、排他制御手段３０３がモジュール１５０１の排他制御を終了するタイミングは、入力部１５０３、記憶領域１５０４等のリソースの排他制御を終了するよりも前、例えば、図１８の時刻Ｔ５よりも前であることが望ましい。これにより、処理１に係るリソースの排他制御を終了するよりも前に、処理２を開始することができるようになる。以降の処理についても同様である。
【００９６】
尚、図１８の例では、処理２は、初めに入力部１５０３を使用するので、処理１が入力部１５０３のリソースを開放するまで待機している。しかし、例えば、ＨＤＤ１５０６の画像データを出力部１５０２に出力する処理等、入力部１５０３を使用しない処理は、例えば、時刻Ｔ３から実行を開始することができる。
【００９７】
時刻Ｔ５に、処理１の処理単位１５０７に係る処理が終わると、排他制御手段３０３は、入力部１５０３及び記憶領域１５０４の排他制御を終了し、モジュール１５０１の排他制御を行う。次に、処理１は、例えば、入力部１５０３のアクセス権を開放し、次の処理単位１５０８で用いるＨＤＤ１５０６のアクセス権を取得する処理等を行う。また、処理１は、次の処理単位１５０８でも引き続き使用する記憶領域１５０４のアクセス権を保持する。或いは、処理１は、記憶領域１５０４のアクセス権を改めて取得するものであっても良い。
【００９８】
次に、時刻Ｔ６において、排他制御手段３０３は、処理１がアクセス権を有するリソースである記憶領域１５０４及びＨＤＤ１５０６に対して排他制御を行い、モジュール１５０１に対する排他制御を終了する。
【００９９】
時刻Ｔ６には、モジュール１５０１及び入力部１５０３が利用可能となるので、処理２は、実行を開始する。時刻Ｔ６において、処理２の実行を開始すると、排他制御手段３０３は、モジュール１５０１の排他制御を行う。ここで、処理２は、処理単位１６０１で用いるリソースである入力部１５０３及び記憶領域１５０５のアクセス権を取得する処理等を含む開始処理を行う。続いて、時刻Ｔ７には、排他制御手段３０３は、処理２がアクセス権を有するリソースである入力部１５０３及び記憶領域１５０５に対して排他制御を行い、モジュール１５０１に対する排他制御を終了する。
【０１００】
次に、時刻Ｔ９に処理１の処理単位１５０８に係る処理が終わると、排他制御手段３０３は、記憶領域１５０４及びＨＤＤ１５０６の排他制御を終了し、モジュール１５０１の排他制御を行う。ここで、処理１は、記憶領域１５０４及びＨＤＤ１５０６のアクセス権を開放する処理等を含む終了処理を行う。時刻Ｔ１０において、処理１は終了し、排他制御手段３０３は、処理１に係るモジュール１５０１の排他制御を終了する。
【０１０１】
一方、時刻Ｔ１０には、処理２の処理単位１６０１の処理が終わるので、排他制御手段３０３は、入力部１５０３及び記憶領域１５０５の排他制御を終了し、モジュール１５０１の排他制御を行う。ここで、処理２は、例えば、入力部１５０３のアクセス権を開放し、次の処理単位１６０２で用いるＨＤＤ１５０６のアクセス権を取得する処理等を行う。また、処理２は、次の処理単位１６０２でも引き続き使用する記憶領域１５０５のアクセス権を、例えば、保持する。
【０１０２】
次に、時刻Ｔ１１において、排他制御手段３０３は、処理２がアクセス権を有するリソースである記憶領域１５０５及びＨＤＤ１５０６に対して排他制御を行い、モジュール１５０１に対する排他制御を終了する。
【０１０３】
時刻Ｔ１４に処理２の処理単位１６０２に係る処理が終わると、排他制御手段３０３は、記憶領域１５０５及びＨＤＤ１５０６の排他制御を終了し、モジュール１５０１の排他制御を行う。ここで、処理２は、記憶領域１５０５及びＨＤＤ１５０６のアクセス権を開放する処理等を含む終了処理を行う。時刻Ｔ１５において、処理２に係る処理は終了し、排他制御手段３０３は、処理２に係るモジュール１５０１の排他制御を終了する。
【０１０４】
以上、本実施の形態によれば、複数のリソースの処理速度に基づいて排他制御の処理単位を分割（細分化）する。これにより、処理速度が比較的遅いリソースを同時に排他制御することを防止することができる。また、排他制御を必要以上に細分化することなく、排他制御による処理の遅延を効果的に低減することができる。
【０１０５】
［第３の実施の形態］
第３の実施の形態では、複数のリソースが、連動して所定の処理を行う２つ以上のリソースを含み、所定の処理が排他制御の１つの処理単位に含まれる場合の例について説明する。
【０１０６】
図１９は、第３の実施形態に係る処理１の排他制御の処理単位を示す図である。モジュール１９０１は、出力部１９０２、入力部１９０３、画像データを記憶する複数の記憶領域１９０４、１９０５、回転器１９０７、圧縮器１９０８、ＨＤＤ１９０６等の複数のリソースを含む。
【０１０７】
このうち、出力部１９０２、入力部１９０３、複数の記憶領域１９０４、１９０５、及びＨＤＤ１９０６については、図１５に示した第２の実施の形態と同様である。回転器１９０７は、データの並べ替え等により、画像データを回転させる（例えば、９０°回転、２７０°回転等）画像処理部であり、例えば、図２の画像処理用のＡＳＩＣ２０６に含まれるデジタル回路等で構成される。また、圧縮器１９０８は、画像データを圧縮させる画像処理部であり、例えば、ＡＳＩＣ２０６に含まれるデジタル回路等で構成される。
【０１０８】
本実施の形態では、回転器１９０７及び圧縮器１９０８は、ＨＤＤ１９０６と連動して、画像データを回転及び圧縮してＨＤＤ１５０６に保存する処理が可能であるものとする。このような場合、例えば、連動して処理が可能な回転器１９０７、圧縮器１９０８、及びＨＤＤ１９０６の排他制御を細分化してしまうと、処理効率（速度）の低下を招く場合がある。このような場合、連動して処理が可能な回転器１９０７、圧縮器１９０８、及びＨＤＤ１９０６を、１つの排他制御の処理単位に含むようにすると良い。
【０１０９】
例えば、図１９において、処理１は、入力部１９０３から読込んだ画像データを記憶領域１９０４に記憶し、記憶領域１５０４に記憶した画像データを回転及び圧縮して、ＨＤＤ１９０６に保管する入力処理であるものとする。本実施の形態では、処理１に係る排他制御を、入力部１９０３に係る処理単位１９０９と、回転器１９０７、圧縮器１９０８及びＨＤＤ１９０６に係る処理単位１９１０とに２分割して排他制御を行う。
【０１１０】
図２０は、第３の実施形態に係る処理２の排他制御の処理単位を示す図である。処理２は、入力部１９０３から読込んだ画像データを記憶領域１９０５に記憶し、記憶領域１５０５に記憶した画像データを回転及び圧縮して、ＨＤＤ１９０６に保管する入力処理であるものとする。本実施の形態では、処理２に係る排他制御を、入力部１９０３に係る処理単位１９０９と、回転器１９０７、圧縮器１９０８及びＨＤＤ１９０６に係る処理単位１９１０とに２分割して排他制御を行う。
【０１１１】
図２１は、第３の実施形態に係る入力処理の例を示す図である。図２１は、回転器１９０７及び圧縮器１９０８の処理速度は、ＨＤＤ１９０６の処理速度よりも十分に速く、図１８と同様のタイミングで入力処理が行われる場合の例を示している。尚、排他制御の流れは、図１８と同様のため説明を省略する。
【０１１２】
このように、複数のリソースが、連動して所定の処理を行う二つ以上のリソースを含む場合、連動して処理が可能な二つ以上のリソースを、排他制御の一の処理単位に含むことにより、処理効率を高めることができる場合がある。例えば、ＡＳＩＣ化されたハードウェアリソース等は、ＡＳＩＣの仕様に応じて、適切な処理単位で排他制御を行うことが望ましい。
【０１１３】
また、このような制御により、排他制御の処理単位を必要以上に細分化することなく、排他制御による処理の遅延を効果的に低減することができる。
【０１１４】
［第４の実施の形態］
第４の実施の形態では、複数のリソース、例えば、入力部、出力部、回転器、圧縮器、ＨＤＤ等が複数の実行ユニットを有する場合の例について説明する。
【０１１５】
図２２は、第４の実施形態に係る複数のリソースの構成を示す図である。モジュール２２０１は、４つの出力部２２０２、２２０３、２２０４、２２０５と、４つの入力部２２０６、２２０７、２２０８、２２０９と、６つの記憶領域２２１０、２２１１、２２１２、２２１３、２２１４、２２１５と、２つの回転器２２１６、２２１７と、２つの圧縮器２２１８、１１２９と、１つのＨＤＤ２２２０と、を含む。
【０１１６】
出力部２２０２、２２０３、２２０４、２２０５は、出力部の４つの実行ユニットである。また、入力部２２０６、２２０７、２２０８、２２０９は、入力部の４つの実行ユニットである。入力部及び出力部は、それぞれ４つの実行ユニットにより、例えば、ＣＭＹＫ（Cyan Mazenta Yellow Key plate color model）形式のカラー画像に含まれる、Ｃ（Cyan：水色）、Ｍ（Magenta：赤紫色）、Ｙ（Yellow：黄色）、Ｋ（黒色）の４色を並行して処理することができる。
【０１１７】
回転器及び圧縮器についても、４つの実行ユニットを有していることが処理速度の面では望ましい。しかし、本実施の形態では、例えば、コスト及び／又は実装上の理由等により、それぞれ２つの２つの実行ユニット、回転器２２１６、２２１７及び圧縮器２２１８、１１２９を有しているものとする。
【０１１８】
図２３は、第４の実施形態に係る処理の一例を示す図である。図２３は、入力部２２０６〜２２０９からカラー画像（ＣＭＹＫ画像）を入力して記憶領域２２１０〜２２１３に記憶し、記憶したカラー画像を回転及び圧縮してＨＤＤ２２２０に保管する場合の処理の例を示している。尚、本実施の形態においても、各リソースの排他制御を行う前後にモジュール２２０１の排他制御を行っているが、モジュール２２０１の排他制御については、第２及び第３の実施例と同様のため、図２３、２４及びその説明では省略する。
【０１１９】
本実施の形態では、入力部２２０６、２２０７、２２０８、２２０９、記憶領域２２１０、２２１１、２２１２、２２１３、２２１４、２２１５、回転器２２１６、２２１７、圧縮器２２１８、２２１９、及びＨＤＤ２２２０をそれぞれリソースとして管理する。また、排他制御手段３０３は、同時に処理が可能なリソースの数に基づいて、排他制御の処理単位を細分化する。
【０１２０】
＜処理の流れ＞
図２３の時刻Ｔ１において、排他制御手段３０３は、入力部２２０６〜２２０９、及び記憶領域２２１０〜２２１３の排他制御を行う。このように、処理に必要なリソースを１度に確保できる場合は、排他制御の処理単位も１つにすることが望ましい。
【０１２１】
入力部２２０６は、入力処理として、ＣＭＹＫ画像のＣ成分に係るデータを取得し、記憶領域２２１０に記憶する。同様に、入力部２２０７、２２０８、２２０９は、それぞれ、ＣＭＹＫ画像のＭ成分、Ｙ成分、Ｋ成分に係るデータを記憶領域２２１１、２２１２、２２１３に記憶する。時刻Ｔ３に入力処理が終わると、排他制御手段３０３は、入力部２２０６〜２２０９、及び記憶領域２２１０〜２２１３の排他制御を終了する。
【０１２２】
続いて、時刻Ｔ３以降に、記憶領域２２１０、２２１１、２２１２、２２１３に記憶されたＣ、Ｍ、Ｙ、Ｋ成分のデータをそれぞれ回転及び圧縮しＨＤＤ２２２０に保存する処理が行われる。しかし、本実施の形態に係る画像形成装置１００は、回転器及び圧縮器の実行ユニットを２つ、ＨＤＤ２２２０を１つしか有していないため、Ｃ、Ｍ、Ｙ、Ｋ成分の４つのデータを同時に処理することはできない。
【０１２３】
従って、例えば、第３の実施形態のように、記憶領域と、回転器と、圧縮器と、ＨＤＤと、を連動させて処理する場合、実行ユニットの数が最も少ないＨＤＤ２２２０の数「１」に応じて、Ｃ、Ｍ、Ｙ、Ｋ成分のデータの圧縮、回転及び保存の処理を４回に分けて行う。この場合、排他制御の処理単位も、Ｃ、Ｍ、Ｙ、Ｋ成分のデータの圧縮、回転及び保存の処理に合わせて、４分割することが望ましい。
【０１２４】
また、仮にＨＤＤの機能を有するリソースが２つある場合には、Ｃ、Ｍ、Ｙ、Ｋ成分のデータの圧縮、回転及び保存の処理を、２色ずつ２回に分けて実行することができるので、排他制御の処理単位も、同様に２回に分割すると良い。
【０１２５】
尚、仮にＨＤＤの機能を有するリソースが４つある場合であっても、回転器及び圧縮器の機能を有するリソースは２つしかないので、Ｃ、Ｍ、Ｙ、Ｋ成分のデータの圧縮、回転及び保存の処理は２色ずづ２回に分けて行われる。この場合、排他制御の処理単位も２回に分割する。
【０１２６】
このように、処理に必要なリソースを１度に確保できず、実行ユニットの数に応じて処理を複数に分割して実行する場合、排他制御の処理単位も分割された処理と同様に分割することが望ましい。
【０１２７】
図２３に戻って、処理の一例の説明を続ける。排他制御手段３０３は、時刻Ｔ３〜Ｔ５の期間に、記憶領域２２１０、回転器２２１６、圧縮器２２１８及びＨＤＤ２２２０の排他制御を行う。この期間に、画像形成装置１００は、Ｃ成分に係るデータの圧縮、回転及び保存の処理を行う。尚、このとき、処理を待っている、Ｍ、Ｙ、Ｋ成分のデータを記憶する記憶領域２２１１、２２１２、２２１３についても排他制御を行いデータを保護することが望ましい。
【０１２８】
時刻Ｔ５にＣ成分に係るデータの圧縮、回転及び保存の処理が終わると、排他制御手段３０３は、記憶領域２２１０、回転器２２１６、圧縮器２２１８及びＨＤＤ２２２０の排他制御を終了する。
【０１２９】
次に、図２３の時刻Ｔ５〜Ｔ７の期間に、排他制御手段３０３は、記憶領域２２１１、回転器２２１７、圧縮器２２１９及びＨＤＤ２２２０の排他制御を行う。この期間に、画像形成装置１００は、Ｍ成分に係るデータの圧縮、回転及び保存の処理を行う。尚、このとき、処理を待っている、Ｙ、Ｋ成分のデータを記憶する記憶領域２２１２、２２１３についても排他制御を行いデータを保護することが望ましい。
【０１３０】
時刻Ｔ７にＭ成分に係るデータの圧縮、回転及び保存の処理が終わると、排他制御手段３０３は、記憶領域２２１１、回転器２２１７、圧縮器２２１９及びＨＤＤ２２２０の排他制御を終了する。
【０１３１】
尚、このように、各色の処理に合わせて排他制御の処理単位を細分化することにより、他の処理、例えば、白黒画像Ｂの入力処理を時刻Ｔ４等に開始することができるようになる。白黒画像Ｂの入力処理は、例えば、入力部２２０６から入力された白黒画像データを記憶領域２２１４に記憶し、記憶した白黒画像データを時刻Ｔ６に使用されていない回転器２２１６を用いて回転し、記憶領域２２１５に記憶する処理であるものとする。
【０１３２】
次に、図２３の時刻Ｔ７〜Ｔ９の期間に、排他制御手段３０３は、記憶領域２２１２、回転器２２１７、圧縮器２２１８及びＨＤＤ２２２０の排他制御を行う。この期間に、画像形成装置１００は、Ｙ成分に係るデータの圧縮、回転及び保存の処理を行う。尚、このとき、処理を待つ、Ｋ成分のデータを記憶する記憶領域２２１３についても排他制御を行いデータを保護することが望ましい。
【０１３３】
時刻Ｔ９にＹ成分に係るデータの圧縮、回転及び保存の処理が終わると、排他制御手段３０３は、記憶領域２２１２、回転器２２１７、圧縮器２２１８及びＨＤＤ２２２０の排他制御を終了する。
【０１３４】
同様に、図２３の時刻Ｔ９〜Ｔ１１の期間に、排他制御手段３０３は、記憶領域２２１３、回転器２２１６、圧縮器２２１９及びＨＤＤ２２２０の排他制御を行う。この期間に、画像形成装置１００は、Ｋ成分に係るデータの圧縮、回転及び保存の処理を行う。
【０１３５】
時刻Ｔ１１にＫ成分に係るデータの圧縮、回転及び保存の処理が終わると、排他制御手段３０３は、記憶領域２２１３、回転器２２１６、圧縮器２２１９及びＨＤＤ２２２０の排他制御を終了する。
【０１３６】
時刻Ｔ１１において、Ｃ、Ｍ、Ｙ、Ｋ成分のデータの圧縮、回転及び保存の処理が終わると、例えば、時刻Ｔ４に開始した白黒画像の入力処理によって、記憶領域２２１５に記憶された白黒画像Ｂに回転処理を施した画像データをＨＤＤ２２２０に保存することができるようになる。
【０１３７】
図２４は、第４の実施形態に係る処理の別の一例を示す図である。図２４は、入力部２２０６〜２２０９からカラー画像（ＣＭＹＫ画像）を入力して記憶領域２２１０〜２２１３に記憶し、記憶したカラー画像に回転処理を施して、出力部２２０２〜２２０６に出力する処理の例を示している。
【０１３８】
図２４の例においても、入力部２２０６、２２０７、２２０８、２２０９、記憶領域２２１０、２２１１、２２１２、２２１３、回転器２２１６、２２１７、出力部２２０２、２２０３、２２０４及び２２０５をそれぞれリソースとして管理し、同時に処理が可能なリソースの数に基づいて排他制御の処理単位の細分化を行う。
【０１３９】
図２４の時刻Ｔ１において、排他制御手段３０３は、入力部２２０６〜２２０９、及び記憶領域２２１０〜２２１３の排他制御を行う。このように、必要なリソースを１度に確保できる処理は、排他制御の処理単位を１つにすることが望ましい。
【０１４０】
入力部２２０６は、入力処理として、ＣＭＹＫ画像のＣ成分に係るデータを取得し、記憶領域２２１０に記憶する。同様に、入力部２２０７、２２０８、２２０９は、それぞれ、ＣＭＹＫ画像のＭ成分、Ｙ成分、Ｋ成分に係るデータを取得し、記憶領域２２１１、２２１２、２２１３に記憶する。時刻Ｔ３に入力処理が終わると、排他制御手段３０３は、入力部２２０６〜２２０９の排他制御を終了する。
【０１４１】
続いて、時刻Ｔ３以降に、記憶領域２２１０、２２１１、２２１２、２２１３に記憶されたＣ、Ｍ、Ｙ、Ｋ成分のデータをそれぞれ回転し、出力部２２０２〜２２０６に出力する処理が行われる。しかし、本実施の形態に係る画像形成装置１００は、回転器の実行ユニットを２つしか有していないため、Ｃ、Ｍ、Ｙ、Ｋ成分の４つのデータを同時に処理することはできない。
【０１４２】
そのため、本実施の形態では、実行ユニットの数が最も少ない回転器２２１６、２２１７の数２に応じて、Ｃ、Ｍ、Ｙ、Ｋ成分のデータの回転の処理を２回に分けて行う。
この場合、排他制御の処理単位も、Ｃ、Ｍ、Ｙ、Ｋ成分のデータの回転処理の数に合わせて、２分割することが望ましい。
【０１４３】
尚、本実施の形態では、出力部の実行ユニットが４つあり、Ｃ、Ｍ、Ｙ、Ｋ成分のデータを１度に出力することができるため、出力部の排他制御の処理単位を回転処理の排他制御と分割することが望ましい。
【０１４４】
図２４に戻って、処理の一例の説明を続ける。時刻Ｔ３〜Ｔ５の期間、排他制御手段３０３は、記憶領域２２１０、２２１１、２２１４、２２１５及び回転器２２１６、２２１７の排他制御を行う。回転器２２１６は、記憶領域２２１０に記憶されたＣＭＹＫ画像のＣ成分に係るデータに回転処理を施し、記憶領域２２１４に記憶する。同様に、回転器２２１７は、記憶領域２２１１に記憶されたＣＭＹＫ画像のＭ成分に係るデータに回転処理を施し、記憶領域２２１５に記憶する。尚、このとき、処理を待っている、Ｙ、Ｋ成分のデータを記憶する記憶領域２２１２、２２１３についても排他制御を行いデータを保護することが望ましい。
【０１４５】
時刻Ｔ５にＣ成分及びＭ成分に係るデータの回転処理が終わると、排他制御手段３０３は、記憶領域２２１０、２２１１、２２１４、２２１５及び回転器２２１６、２２１７の排他制御を終了する。尚、ここで排他制御を終了することにより、記憶領域２２１０、２２１１を再利用することができるようになる。
【０１４６】
次に、時刻Ｔ５〜Ｔ７の期間、排他制御手段３０３は、記憶領域２２１０、２２１１、２２１２、２２１３及び回転器２２１６、２２１７の排他制御を行う。回転器２２１６は、記憶領域２２１２に記憶されたＣＭＹＫ画像のＹ成分に係るデータに回転処理を施し、記憶領域２２１０に記憶する。同様に、回転器２２１７は、記憶領域２２１３に記憶されたＣＭＹＫ画像のＫ成分に係るデータに回転処理を施し、記憶領域２２１１に記憶する。
【０１４７】
時刻Ｔ７にＹ成分及びＫ成分に係るデータの回転処理が終わると、排他制御手段３０３は、記憶領域２２１０、２２１１、２２１２、２２１３及び回転器２２１６、２２１７の排他制御を終了する。
【０１４８】
続いて、時刻Ｔ７〜Ｔ９の期間、排他制御手段３０３は、記憶領域２２１０、２２１１、２２１４、２２１５及び出力部２２０２、２２０３、２２０４、２２０５の排他制御を行う。出力部２２０２、２２０３、２２０４、２２０５は、記憶領域２２１０、２２１１、２２１４、２２１５に記憶されたＣＭＹＫ画像データの出力処理（例えば、カラープリント）を行う。
【０１４９】
時刻Ｔ９にＣＭＹＫ画像データの出力処理が終わると、排他制御手段３０３は、記憶領域２２１０、２２１１、２２１４、２２１５及び出力部２２０２、２２０３、２２０４、２２０５の排他制御を終了する。
【０１５０】
以上、本実施の形態では、複数のリソースが、同等の機能を並行して実行可能な複数の実行ユニットを含む場合、排他制御の処理単位を複数のリソースの実行ユニットの数に基づいて細分化する。これにより、一つの処理で同時に利用できない複数の実行ユニットの一部を、他の処理が利用できるようになる。また、排他制御の処理単位を必要以上に細分化することなく、排他制御による処理の遅延を効果的に低減することができる。
【０１５１】
＜まとめ＞
以上、上記各実施の形態によれば、画像形成装置１００は、画像形成装置１００のモジュールに係る複数の処理によって使用される画像データ、又は画像データを記憶する記憶領域と、一つ以上のハードウェアとを複数のリソースとして管理する。また、複数のリソースのうちの少なくとも一のリソースが使用される場合、使用されるリソースに対する排他制御を行い、モジュールに対する排他制御を終了する。
【０１５２】
上記動作により、画像形成装置１００のモジュールに係る一の処理がリソースを使用している期間、他の処理がモジュールを利用して処理を開始することができるので、排他制御による遅延を低減することができる。
【０１５３】
また、排他制御手段３０３は、複数のリソースのうちの少なくとも一つのリソースが使用される場合、使用されるリソースを排他制御する前に、モジュールに対する排他制御を行う。リソースを排他制御する前に、排他制御されたモジュールでリソースのアクセス権等を管理することにより、デッドロックの発生を防止することができる。
【０１５４】
また、排他制御手段３０３は、上記リソースに対する排他制御が終了するよりも前に、上記モジュールに対する排他制御を終了する。これにより、リソースの排他制御の終了前に、他の処理を開始することができる。
【０１５５】
さらに、画像形成装置１００では、モジュールの複数の処理に係る排他制御は、複数のリソースに基づいて、複数の処理単位に分割（細分化）されている。排他制御を複数の処理単位に細分化することにより、使用していないリソースの排他制御を終了（開放）することができる。
【０１５６】
また、好適な一例として、モジュールの複数の処理に係る排他制御は、複数のリソースの処理速度に基づいて、細分化されていると良い。これにより、処理速度が遅い複数のリソースが同時に排他制御されることを防止することができる。また、排他制御を必要以上に細分化することなく、排他制御による処理の遅延を低減することができる。
【０１５７】
さらに、上記複数のリソースが、連動して所定の処理を行う２つ以上のリソースを含む場合、上記所定の処理は、排他制御の１つの処理単位に含まれていると良い。これにより、連動して動作する２つ以上のリソースを効率よく動作させることができるようになる。また、排他制御が必要以上に細分化されることを防止することができる。
【０１５８】
また、別の好適な一例として、上記複数のリソースが、同等の処理を並行して実行可能な複数の実行ユニットを含む場合、上記モジュールの処理に係る排他制御は、上記実行ユニットの数に基づいて、細分化されていると良い。これにより、一つの処理では同時に利用できない複数の実行ユニットの一部を、他の処理で有効利用できるようになる。また、排他制御が必要以上に細分化されることを防止することができる。
【符号の説明】
【０１５９】
１００    複合機（画像形成装置）
３０１、３０２、１５０１、１９０１、２２０１    モジュール
３０３    排他制御手段
３０４    リソース管理手段
３０５、３０６、３０７、３０８    リソース
４０１、４０２、４０３    ハードウェア資源
４０４    画像データ
１００１、１００２、１００３    一時記憶領域
１１０１、１１０２    サブリソース
１３０１、１３０２    ソフトウェア資源
１５４０、１５０５、１９０４、１９０５、２２１０〜２２１５    記憶領域
【先行技術文献】
【特許文献】
【０１６０】
【特許文献１】特開２００５−２０２８９０号公報
【図１】
2014197377.tif 000003
【図２】
2014197377.tif 000004
【図３】
2014197377.tif 000005
【図４】
2014197377.tif 000006
【図５】
2014197377.tif 000007
【図６】
2014197377.tif 000008
【図７】
2014197377.tif 000009
【図８】
2014197377.tif 000010
【図９】
2014197377.tif 000011
【図１０】
2014197377.tif 000012
【図１１】
2014197377.tif 000013
【図１２】
2014197377.tif 000014
【図１３】
2014197377.tif 000015
【図１４】
2014197377.tif 000016
【図１５】
2014197377.tif 000017
【図１６】
2014197377.tif 000018
【図１７】
2014197377.tif 000019
【図１８】
2014197377.tif 000020
【図１９】
2014197377.tif 000021
【図２０】
2014197377.tif 000022
【図２１】
2014197377.tif 000023
【図２２】
2014197377.tif 000024
【図２３】
2014197377.tif 000025
【図２４】
2014197377.tif 000026