(57)【要約】【課題】  リソースの開放を待たなくても、ジョブを処理できるシステムや方法を提供する。【解決手段】  このシステムは、所定の機能を使用した他のジョブの処理中にジョブを受け付ける受付部４０と、受け付けたジョブを構成する複数のサブセットの各々につき、各サブセットの処理で該機能を使用するか否かを判断する判断部４３と、該機能を使用すると判断したサブセットに対して該機能で使用するリソースの確保を行うリソース確保部４４と、該機能を使用してサブセットの処理が終了したことを受けて、該サブセットに対して確保したリソースを開放するリソース開放部４５と、該機能を使用しないと判断したサブセットの割込処理を実行し、リソースの確保を待つことなく、該サブセットの処理を実行させる処理部４１とを含む。【選択図】  図２
2015153358.tif 000002
【特許請求の範囲】
【請求項１】
ジョブの処理を制御するためのジョブ制御システムであって、
所定の機能を使用した他のジョブの処理中にジョブを受け付ける受付部と、
前記受付部が受け付けた前記ジョブを構成する複数のサブセットの各々につき、各前記サブセットの処理で前記機能を使用するか否かを判断する判断部と、
前記判断部が前記機能を使用すると判断した前記サブセットに対して該機能で使用するリソースの確保を行うリソース確保部と、
前記機能を使用して前記サブセットの処理が終了したことを受けて、前記リソース確保部が該サブセットに対して確保した前記リソースを開放するリソース開放部と、
前記判断部が前記機能を使用しないと判断した前記サブセットの割り込み処理を実行し、前記リソースの確保を待つことなく、該割り込み処理を実行した該サブセットの処理を実行させる処理部とを含む、ジョブ制御システム。
【請求項２】
前記処理部は、前記判断部が前記機能を使用しないと判断した前記サブセットが複数存在する場合、該機能を使用しないと判断された複数の前記サブセットの割り込み処理を実行する、請求項１に記載のジョブ制御システム。
【請求項３】
前記処理部が前記機能を使用しないと判断した前記サブセットの全ての割り込み処理を実行して該サブセットの全ての処理を実行させた後、前記他のジョブの処理が終了し、前記他のジョブで確保された前記リソースが開放されたことを受けて、前記リソース確保部が、前記機能を使用すると判断した前記サブセットに対して前記リソースを確保する、請求項２に記載のジョブ制御システム。
【請求項４】
請求項１〜３のいずれか１項に記載のジョブ制御システムを備える電子機器。
【請求項５】
前記電子機器は、印刷を実行する画像形成装置であり、前記画像形成装置が処理する他のジョブで使用する所定の機能は、印刷の後処理を行うためのステープル機能、パンチ機能、製本機能のいずれかである、請求項４に記載の電子機器。
【請求項６】
ジョブの処理を制御するためのジョブ制御システムにより実行される方法であって、
所定の機能を使用した他のジョブの処理中にジョブを受け付けるステップと、
受け付けた前記ジョブを構成する複数のサブセットの各々につき、各前記サブセットの処理で前記機能を使用するか否かを判断するステップと、
前記機能を使用しないと判断された前記サブセットの割り込み処理を実行し、前記リソースの確保を待つことなく、該割り込み処理を実行した該サブセットの処理を実行させるステップと、
前記機能を使用すると判断された前記サブセットに対して該機能で使用するリソースの確保を行うステップと、
前記機能を使用して前記サブセットの処理が終了したことを受けて、該サブセットに対して確保された前記リソースを開放するステップとを含む、ジョブ制御方法。
【請求項７】
前記実行させるステップでは、前記判断するステップで前記機能を使用しないと判断した前記サブセットが複数存在する場合、該機能を使用しないと判断された複数の前記サブセットの割り込み処理を実行する、請求項６に記載のジョブ制御方法。
【請求項８】
前記実行させるステップで前記機能を使用しないと判断された前記サブセットの全ての割り込み処理を実行して該サブセットの全ての処理を実行させた後、前記他のジョブの処理が終了し、前記他のジョブで確保された前記リソースが開放されたことを受けて、前記リソースの確保を行うステップを実行し、前記機能を使用すると判断した前記サブセットに対して前記リソースを確保する、請求項７に記載のジョブ制御方法。
【請求項９】
請求項６〜８のいずれか１項に記載のジョブ制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブの処理を制御するためのジョブ制御システム、そのシステムを備えた電子機器、ジョブ制御方法およびその方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
所定のアプリケーションにより１つのジョブを複数の部分（サブセット）に分け、任意のサブセットに対して所定の機能を使用した処理を実行する技術が知られている。例えば、特許文献１では、印刷アプリケーションで印刷ジョブを、ステープル指定されたサブセットと、ステープル指定されていないサブセットに分け、ステープル指定されたサブセットに対してステープルする技術を開示している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記特許文献１に記載の技術では、ステープルを行うサブセットが印刷ジョブの一部であっても、印刷ジョブ全体に対してステープル処理に必要なリソースを確保しようとしてしまう。既にコピー機能等でステープル処理を行っているときに印刷ジョブの割り込みを行う場合、ステープル処理に必要なリソースを確保できないので、ステープル指定されていないサブセットの処理であっても割り込むことはできない。このため、そのステープル処理を行っているコピー機能等がそのリソースを開放するまでは、その印刷ジョブが待たされてしまうという問題があった。
【０００４】
そこで、リソースの開放を待たなくても、割り込み処理を行い、ジョブを処理することができるシステムや方法等の提供が望まれていた。
【課題を解決するための手段】
【０００５】
本発明は、上記課題に鑑み、ジョブの処理を制御するためのジョブ制御システムであって、所定の機能を使用した他のジョブの処理中にジョブを受け付ける受付部と、受付部が受け付けたジョブを構成する複数のサブセットの各々につき、各サブセットの処理で上記機能を使用するか否かを判断する判断部と、判断部が上記機能を使用すると判断したサブセットに対して該機能で使用するリソースの確保を行うリソース確保部と、上記機能を使用してサブセットの処理が終了したことを受けて、リソース確保部が該サブセットに対して確保したリソースを開放するリソース開放部と、判断部が上記機能を使用しないと判断したサブセットの割り込み処理を実行し、リソースの確保を待つことなく、該割り込み処理を実行したサブセットの処理を実行させる処理部とを含む、ジョブ制御システムが提供される。
【発明の効果】
【０００６】
本発明によれば、リソースの開放を待たなくても、割り込み処理を行い、ジョブを処理することができる。
【図面の簡単な説明】
【０００７】
【図１】ジョブ制御システムの一例としてのコントローラを含む画像形成装置の構成例を示した図。
【図２】図１に示すコントローラの機能ブロック図。
【図３】図２に示すコントローラが実行する１つの処理の流れを示したフローチャート。
【図４】既に実行しているコピージョブの構成と、割り込み処理としての印刷ジョブの構成を例示した図。
【図５】各ジョブで実行されるリソースの確保および開放の流れを例示したシーケンス図。
【図６】図２に示すコントローラが実行する別の処理の流れを示したフローチャート。
【図７】各ジョブで実行されるリソースの確保および開放の流れを例示したシーケンス図。
【発明を実施するための形態】
【０００８】
図１は、ジョブを制御するためのジョブ制御システムの一例としてのコントローラを含む画像形成装置の構成例を示した図である。図１では、コントローラが画像形成装置に実装された一例を示しているが、このコントローラは、ＰＣ、サーバ、テレビ、プロジェクタ、ファクシミリ等の電子機器に実装されていてもよい。画像形成装置は、複写機、コピー機、プリンタ、これらの機能を備えるＭＦＰ(Multi Function Peripheral)といった複合機のいずれであってもよい。以下、画像形成装置をＭＦＰとして説明する。なお、ジョブ制御システムは、コントローラとして画像形成装置等に実装された形態に限られるものではなく、画像形成装置等に接続された外部機器に実装された形態であってもよい。
【０００９】
ＭＦＰ１０は、ネットワーク１１を介して複数のＰＣ１２〜１４と接続される。ネットワーク１１には、ＰＣ１２〜１４のほか、他のＰＣや各種サーバ等が接続されていてもよい。ネットワーク１１は、有線ネットワークであってもよいし、無線ネットワークであってもよい。ＰＣ１２〜１４は、デスクトップＰＣ、ノートＰＣ、タブレットＰＣ等であり、ネットワーク１１を介してＭＦＰ１０へ印刷ジョブを送信する。
【００１０】
ＰＣ１２〜１４は、印刷ジョブを生成して送信するため、所定のアプリケーションおよびプリンタドライバを実装する。アプリケーションは、文書を作成するためのアプリケーションであってもよいし、プレゼンテーション用資料を作成するためのアプリケーションであってもよい。アプリケーションは、プリンタドライバに対して作成した文書データ等の印刷要求を送る。プリンタドライバは、その印刷要求を受け付け、出力先のＭＦＰ１０が解釈可能なページ記述言語(PDL)等に変換し、それを印刷ジョブとしてＭＦＰ１０へ送信する。ＰＤＬとしては、例えば、Ａｄｏｂｅ社のＰｏｓｔＳｃｒｉｐｔ（登録商標）等を挙げることができる。
【００１１】
ＰＣ１２〜１４のハードウェア構成については詳述しないが、一般的に使用されるＰＣと同様、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、入力装置、表示装置、通信Ｉ／Ｆ等を備える。ＰＣ１２〜１４は、ＨＤＤにＯＳや上記のアプリケーション等を実装し、ＯＳによる制御の下、アプリケーション等を実行し、所望の機能を実現する。所望の機能は、例えば、文書作成機能や通信機能等である。
【００１２】
ＭＦＰ１０は、コントローラ２０と、エンジン部３０とを備える。コントローラ２０は、ジョブ制御システムとしても機能し、そのハードウェアとして、ＣＰＵ２１と、記憶装置２２と、ネットワークＩ／Ｆ２３と、コンソール２４とを備える。ＣＰＵ２１は、ＭＦＰ１０全体の制御を行う。記憶装置２２は、例えば、ＲＯＭ、ＲＡＭ、ＨＤＤを含んで構成され、ＭＦＰ１０を起動させるプログラム、ＯＳ、各種機能を実現するためのアプリケーション、各種設定データ等を記憶する。なお、ＲＡＭは、ＣＰＵ２１が作業を行うための記憶領域を提供する。ＣＰＵ２１は、上記のＯＳやアプリケーションを実行し、所望の機能を実現する。
【００１３】
ネットワークＩ／Ｆ２３は、ＭＦＰ１０をネットワーク１１と接続し、そのネットワーク１１に接続されたＰＣ１２〜１４との通信を可能にする。ネットワーク１１を介した通信は、ＴＣＰ／ＩＰ等の適切な通信プロトコルを使用して行われる。コンソール２４は、ＭＦＰ１０を操作するために使用される入出力装置で、操作パネルや入力キー等とすることができる。コンソール２４は、ユーザからの設定変更や機能モードの変更等を受け付け、また、その設定変更等を行うための設定画面の表示を行う。
【００１４】
ネットワークＩ／Ｆ２３は、ＰＣ１２〜１４からネットワーク１１を介して送信された印刷ジョブを受信する。コンソール２４は、プリンタの設定やＰＣ１２〜１４からコントローラ２０へ送信されて記憶装置２２に保存されている印刷ジョブに対する設定変更を行った後、ＣＰＵ２１が所定の処理を行う。ネットワークＩ／Ｆ２３は、受信した印刷ジョブや設定変更情報等をＣＰＵ２１へ渡し、ＣＰＵ２１が所望の処理を行う。設定変更については、記憶装置２２に記憶されている設定データを、その設定変更情報に基づき変更し、上書きして更新する。印刷ジョブについては、描画処理（ＲＩＰ処理）を行い、処理済みの印刷データとして記憶装置２２へエンジン部３０が処理可能となるまで保存する。
【００１５】
エンジン部３０は、プリンタエンジン３１と、エンジンパネル３２とを備える。プリンタエンジン３１は、コントローラ２０から送信される処理済みの印刷データに基づき、紙に印刷して出力する。エンジンパネル３２は、プリンタエンジン３１により実行される処理の状況やエラー等の表示を行う。
【００１６】
ＣＰＵ２１は、記憶装置２２に記憶されたプログラムを実行し、印刷処理に必要なリソースを確保できるかどうかを判断し、確保できれば、ＲＩＰ処理を行い、プリンタエンジン３１が印刷可能なデータに変換する。そして、ＣＰＵ２１は、変換して得られたデータを、処理済みの印刷データとして記憶装置２２に保存する。その後、ＣＰＵ２１は、プリンタエンジン３１で印刷が可能になったことを受けて、処理済みの印刷データを記憶装置２２から取り出し、プリンタエンジン３１へ送信して印刷を実行させる。
【００１７】
ここでは、エンジン部３０にプリンタエンジン３１のみを備える構成を例示しているが、原稿を読み取るスキャナエンジン等を備えていてもよい。また、図１に示すハードウェア以外の原稿を自動的に給紙する自動給紙装置(ADF)、ＦＡＸモデム、ＳＤカード等の記録メディアに読み書きを行うメディアドライブ、認証ＩＣカードを読み取るカードリーダ等を備えることもできる。
【００１８】
図２を参照して、コントローラが備える機能について詳細に説明する。コントローラ２０は、その機能部として、ジョブを受け付ける受付部４０と、受け付けたジョブを処理する処理部４１と、処理済みのジョブを記憶する記憶部４２とを備える。受付部４０は、ＰＣ１２〜１４からジョブを受信するネットワークＩ／Ｆ２３およびＣＰＵ２１により実現される。処理部４１は、ＣＰＵ２１により、記憶部４２は、記憶装置２２により、それぞれ実現される。なお、受付部４０および処理部４１は、ＣＰＵ２１が記憶装置２２に記憶されたプログラムを実行することにより実現される。
【００１９】
受付部４０は、他のジョブの処理中に、当該他のジョブとは異なるジョブを受け付けることができる。受付部４０が受け付けたジョブは、予めコンソール２４でそのジョブを複数の部分（サブセット）に分けており、その分けられた複数のサブセットから構成されているとする。例えば、ジョブは、印刷の後処理の違い等により、複数のサブセットに分割し、その分割した複数のサブセットにより構成することができる。より具体的には、後処理としてステープル処理するサブセットと、後処理として何もしないサブセットに分割し、その分割した複数のサブセットにより、１つのジョブを構成することができる。以下、ジョブを印刷ジョブとし、リソースを必要とする機能をステープル機能として説明する。
【００２０】
従来、ステープル機能を使用する他のジョブの処理中に、ステープル機能を使用するサブセットを含むジョブを受け付けた場合、当該他のジョブが終了し、ステープル処理に必要なリソースが開放されるまでジョブを処理できなかった。これでは、リソースが開放されるまで待たなければ、ジョブ全体の処理を開始することができない。そこで、コントローラ２０は、リソースが開放されるまで待たなくてもジョブを処理することができるようにするべく、判断部４３、リソース確保部４４、リソース開放部４５をさらに含んで構成される。これらも、ＣＰＵ２１が記憶装置２２に記憶された上記プログラムを実行することにより実現される。
【００２１】
判断部４３は、受付部４０が受け付けたジョブ（印刷ジョブ）を構成する各サブセットにつき、ステープル機能を使用するか否か、すなわちステープル処理が必要か否かを判断する。印刷ジョブを構成する各サブセットは、印刷に際して設定された印刷設定情報が含まれており、当該印刷設定情報からステープル処理が必要か否かを判断することができる。印刷設定情報は、印刷範囲、印刷部数、ステープル機能の使用有無、パンチ機能の使用有無、両面印刷の有無、カラー印刷／モノクロ印刷の指定等の情報が含まれる。
【００２２】
リソース確保部４４は、判断部４３においてステープル処理が必要と判断されたサブセットに対してのみ、サブセット毎にリソースの確保を行う。リソース開放部４５は、リソース確保部４４が１つのサブセットに対して確保したリソースを開放し、その開放した旨をリソース確保部４４に通知し、他のジョブや他のサブセットに対してそのリソースを確保できるようにする。なお、リソース開放部４５は、処理部４１からそのリソースを使用した処理が終了した旨の通知を受け、そのリソースを開放する。
【００２３】
進行中の他のジョブがステープル処理を必要とする場合、そのジョブが終了し、そのステープル処理に必要なリソースが開放された後に、リソース確保部４４が、ステープル処理が必要なサブセットに対してリソースの確保を行う。そして、リソース開放部４５は、そのサブセットの処理が終了したところで、そのリソースを開放し、ステープル処理が必要と判断された次のサブセットに対してそのリソースを確保できるようにする。
【００２４】
リソースは、ステープル処理を行うために必要とされるＣＰＵ２１の処理速度や記憶装置２２の記憶容量等である。リソースは、ジョブやサブセットを割り当てることにより確保することができ、その割り当てを解除することにより開放することができる。リソースは、例えば、リソース使用権を設定することにより確保し、そのリソース使用権を破棄することにより開放することができる。
【００２５】
処理部４１は、ジョブやそのジョブとは異なる他のジョブにおけるＲＩＰ処理等も実行することができるが、判断部４３でステープル処理が不要と判断されたサブセットに対して割り込み処理も実行する。割り込み処理を実行した場合、処理部４１は、そのサブセットの処理として、ＲＩＰ処理、記憶部４２への保存、プリンタエンジン３１への処理済みのジョブの送信を行う。これにより、処理部４１は、リソース確保部４４によるリソースの確保を待つことなく、そのサブセットの処理を実行することができる。このため、従来に比較してジョブを短時間で処理することが可能となる。
【００２６】
ステープル処理が必要なサブセットの処理は、当該他のジョブが終了し、当該他のジョブがステープル処理に必要なリソースを開放したことを受けて、リソース確保部４４がそのリソースを確保し、それを処理部４１へ通知する。処理部４１は、その通知を受けて、そのサブセットの処理を実行する。そのサブセットの処理が終了したとき、処理部４１は、リソース開放部４５にその旨を通知し、リソース開放部４５がそのサブセットのステープル処理に対して確保されたリソースを開放する。
【００２７】
図３を参照して、コントローラ２０が実行する１つの処理について説明する。コントローラ２０は、既に他のジョブの処理中である。ステップ３００から処理を開始し、ステップ３０５では、受付部４０が、ＰＣ１２〜１４のいずれかからネットワーク１１を介す、または、コンソール２４で記憶装置２２に保存されている印刷ジョブの設定変更処理を行い、印刷ジョブを受け付ける。受付部４０は、その印刷ジョブを判断部４３に渡す。
【００２８】
ステップ３１０では、判断部４３が、印刷ジョブを構成する複数のサブセットの１つを選択し、そのサブセットに対する処理を開始する。複数のサブセットは、１つずつ順に選択される。選択される順は、いかなる順番であってもよい。ステップ３１５では、既に処理中の他のジョブでステープルを使用しているかどうかを判断する。他のジョブのジョブ情報として設定された設定情報に基づき、その使用の有無を判断することができる。使用している場合は、ステップ３２０へ進み、使用していない場合は、ステップ３３５へ進む。
【００２９】
ステップ３２０では、判断部４３は、その選択したサブセットでステープル処理が必要かどうかを判断する。これは、そのサブセットに対して設定された印刷設定情報に基づき判断することができる。必要でないと判断された場合、ステップ３２５へ進み、判断部４３は、処理部４１に指示し、処理部４１がそのサブセットの割り込み処理を実行する。
【００３０】
ステップ３２０で必要と判断された場合は、ステップ３３０へ進み、処理中の他のジョブが終了し、ステープル処理に必要なリソースが開放されるまで、そのサブセットの処理を待つ。ステップ３３５では、そのリソースが開放されたところで、リソース確保部４４が、ステープル処理に必要なリソースを確保する。
【００３１】
ステップ３４０では、処理部４１は、サブセットの処理として、ＲＩＰ処理を行い、記憶部４２に処理済みの印刷データを保存する。ステップ３４５では、処理部４１が記憶部４２に保存された処理済みの印刷データをプリンタエンジン３１へ送信し、プリンタエンジン３１がその印刷データに基づき、印刷を実行する。サブセットがステープル処理を必要とする場合においても、ステップ３４５では、既にリソースが確保されているので、ステープル処理を行うことができる。
【００３２】
ステップ３５０では、リソース開放部４５が、処理部４１から印刷が終了した旨の通知を受け、そのサブセットの処理が終了したところで、そのサブセットに対して確保したリソースを開放する。ステップ３５５では、そのジョブを構成するサブセットで、まだ選択していないサブセットがあるかどうかを判断する。ある場合は、ステップ３１０へ戻り、その選択していないサブセットを選択する。ない場合は、ステップ３６０へ進み、この処理を終了する。
【００３３】
処理中の他のジョブを、コピージョブとし、割り込み処理により実行するジョブを、印刷ジョブとして、ステープル処理に必要なリソースの確保および開放する処理の流れを、図４および図５を参照して詳細に説明する。図４には、コピージョブの構成と、印刷ジョブの構成とが例示されている。コピージョブは、サブセットを識別するためのサブセット名が「Ｃ１」で表された１つのサブセットのみから構成され、印刷の後処理としてステープルが指定されている。すなわち、ステープル処理が必要という設定になっている。
【００３４】
印刷ジョブは、サブセット名が「Ｓ１」、「Ｓ２」、「Ｓ３」で表された３つのサブセットから構成され、印刷の後処理として、Ｓ２のみがステープル処理を必要とする設定になっている。Ｓ１およびＳ３は、ステープル処理を必要としない設定になっている。
【００３５】
コピージョブが処理中に印刷ジョブの割り込みが発生するので、図５に示すように、コピージョブのＣ１に対して、ステープル処理を行うためにリソースを確保し、そのジョブを開始する。このジョブの途中、印刷ジョブによる割り込みが発生する。図５では、Ｓ１が最初に選択され、Ｓ１についての処理開始時に、判断部４３がステープル処理を必要とするかを判断する。図４に示すように、Ｓ１は、ステープル処理を必要としないので、割り込みを開始する。割り込みの間、Ｃ１の処理は中断し、Ｓ１についてＲＩＰ処理、印刷を実行した後、その割り込みを終了する。この終了後、Ｃ１についての処理を再開する。
【００３６】
Ｓ１の処理の終了後、次にＳ２が選択される。Ｓ２についての処理開始時に、判断部４３がステープル処理を必要とするかを判断する。図４に示すように、Ｓ２は、ステープル処理を必要とするので、割り込みを開始することができない。それは、Ｃ１がそのステープル処理に必要なリソースを使用しているからである。そこで、Ｃ１の処理が終了し、そのリソースが開放されるまで、Ｓ２の処理を待つ。
【００３７】
Ｓ２は、Ｃ１について確保されたリソースが開放された後に、処理を開始し、最初にそのリソースを確保する。そして、Ｓ２についてＲＩＰ処理、印刷を実行した後、リソースを開放する。最後にＳ３が選択され、同様にステープル処理を必要とするかを判断する。Ｓ３は、ステープル処理を必要としないので、そのリソースを確保することなく、ＲＩＰ処理、印刷を実行する。Ｓ２、Ｓ３の処理時には、他のジョブの処理が行われていないので、Ｓ２、Ｓ３については待ち時間なく印刷処理を実行することができる。
【００３８】
図３に示した処理では、図４のＳ１から順に選択し、ステープル処理を必要とするＳ２が選択されたとき、処理中のＣ１が終了するまで待ち、リソースが開放されたことを受けて、Ｓ２、Ｓ３について処理を行っている。Ｓ３は、そのリソースを必要としないのに、その処理が待たされてしまう。そこで、このようなリソースを必要としないサブセットを先に処理し、リソースを必要するサブセットのみを後で処理するようにすれば、効率的に処理を行うことができる。この処理の流れについて、図６を参照して説明する。
【００３９】
図６は、コントローラ２０が実行する別の処理の流れを例示したフローチャートである。コントローラ２０は、既に他のジョブの処理中である。ステップ６００から処理を開始し、ステップ６０５では、受付部４０が、ＰＣ１２〜１４のいずれかからネットワーク１１を介して、印刷ジョブを受け付ける。受付部４０は、その印刷ジョブを判断部４３に渡す。
【００４０】
ステップ６１０では、判断部４３が、印刷ジョブを構成する複数のサブセットの１つを選択し、そのサブセットに対する処理を開始する。この選択は、複数のサブセットを１つずつ順に行われる。ステップ６１５では、既に処理中の他のジョブでステープルを使用しているかどうかを判断する。他のジョブのジョブ情報として設定された設定情報に基づき、その使用の有無を判断することができる。使用している場合は、ステップ６２０へ進み、使用していない場合は、ステップ６４０へ進む。
【００４１】
ステップ６２０では、判断部４３は、その選択したサブセットでステープル処理が必要かどうかを判断する。これは、そのサブセットに対して設定された印刷設定情報に基づき判断することができる。必要でないと判断された場合、ステップ６２５へ進み、判断部４３は、処理部４１に指示し、処理部４１がそのサブセットを割り込み処理を実行する。
【００４２】
ステップ６２０で必要と判断された場合は、ステップ６３０へ進み、最後のサブセットまで、上記のステープル処理が必要かどうかの確認を行ったかどうかを判断する。これにより、選択されたサブセットがステープル処理に必要なリソースを確保できず、後回しになったサブセットかどうかを判断する。後回しになったサブセットである場合、ステップ６３５へ進み、そうでない場合は、ステップ６１０へ戻り、選択していない次のサブセットを選択する。このとき、選択されたサブセットは、後回しにされる。なお、後回しになったサブセットは、最後に選択されるサブセットとされる。
【００４３】
ステップ６３５では、処理中の他のジョブが終了し、ステープル処理に必要なリソースが開放されるまで、そのサブセットの処理を待つ。ステップ６４０では、そのリソースが開放されたところで、リソース確保部４４が、ステープル処理に必要なリソースを確保する。
【００４４】
ステップ６４５では、処理部４１は、サブセットの処理として、ＲＩＰ処理を行い、記憶部４２に処理済みの印刷データを保存する。ステップ６５０では、処理部４１が記憶部４２に保存された処理済みの印刷データをプリンタエンジン３１へ送信し、プリンタエンジン３１がその印刷データに基づき、印刷を実行する。サブセットがステープル処理を必要とする場合においても、ステップ６５０では、既にリソースが確保されているので、ステープル処理を行うことができる。
【００４５】
ステップ６５５では、リソース開放部４５が、処理部４１から印刷が終了した旨の通知を受け、そのサブセットの処理が終了したところで、そのサブセットに対して確保したリソースを開放する。ステップ６６０では、そのジョブを構成するサブセットで、まだ選択していないサブセットがあるかどうかを判断する。ある場合は、ステップ６１０へ戻り、その選択していない次のサブセットを選択する。ない場合は、ステップ６６５へ進む。
【００４６】
ステップ６６５では、後回しになったサブセットのように、未処理のサブセットが存在するかどうかを判断する。未処理のサブセットが存在する場合、ステップ６１０へ戻り、そのサブセットを選択し、その処理を行う。未処理のサブセットが存在しない場合は、ステップ６７０へ進み、この処理を終了する。
【００４７】
この場合のリソースの確保および開放する処理の流れを、図７を参照して詳細に説明する。図７中のコピージョブと印刷ジョブの構成は、図４に示した構成と同様である。すなわち、コピージョブは、Ｃ１という１つのサブセットのみから構成され、印刷の後処理で、ステープル処理が必要とされる設定になっている。
【００４８】
印刷ジョブは、Ｓ１、Ｓ２、Ｓ３という３つのサブセットから構成され、印刷の後処理として、Ｓ２のみがステープルを使用する設定になっており、Ｓ１、Ｓ３は、ステープル処理を必要としない設定になっている。
【００４９】
コピージョブが処理中に印刷ジョブの割り込みが発生するので、図７に示すように、コピージョブのＣ１に対して、ステープル処理を行うためにリソースを確保し、そのジョブを開始する。このジョブの途中、印刷ジョブによる割り込みが発生する。図７では、Ｓ１が最初に選択され、Ｓ１についての処理開始時に、判断部４３がステープル処理を必要とするかを判断する。図４に示すように、Ｓ１は、ステープル処理を必要としないので、割り込みを開始する。割り込みの間、Ｃ１の処理は中断し、Ｓ１についてＲＩＰ処理、印刷を実行した後、その割り込みを終了する。この終了後、Ｃ１についての処理を再開する。
【００５０】
Ｓ１の処理の終了後、次にＳ２が選択される。Ｓ２についての処理開始時にも、判断部４３がステープル処理を必要とするかを判断する。図４に示すように、Ｓ２は、ステープル処理を必要とするので、割り込みを開始することができない。このため、Ｓ２については、Ｃ１の処理が終了し、そのリソースが開放されるまで、その処理を待つ必要がある。そこで、Ｓ２は後回しにし、最後のＳ３を選択する。
【００５１】
Ｓ３についても、その処理開始時に、判断部４３がステープル処理を必要とするかを判断する。図４に示すように、Ｓ３は、ステープル処理を必要としないので、割り込みを開始する。割り込みの間、Ｃ１の処理は中断し、Ｓ３についてＲＩＰ処理、印刷を実行した後、その割り込みを終了する。この終了後、Ｃ１についての処理を再開する。
【００５２】
未処理のサブセットとしてＳ２が存在するが、Ｓ２の処理は、Ｃ１の処理が終了し、そのリソースが開放されるまで行われない。Ｃ１に対して確保したリソースが開放された後、リソース確保部４４がＳ２に対してそのリソースを確保し、処理部４１がＳ２についてＲＩＰ処理を行い、プリンタエンジン３１が印刷を実行する。この印刷の実行において、ステープル処理が実行される。Ｓ２の処理が終了した後、リソース開放部４５がステープル処理に必要なリソースを開放する。
【００５３】
必要なリソースが使用されていてリソースを確保できない場合、次のサブセットの処理に遷移し、最終のサブセットの処理が終了した後に、未処理のサブセットを処理することで、より効率的に割り込み処理を実行することができる。  これまで、ステープル機能を一例に挙げて説明してきたが、これに限られるものではなく、ＭＦＰ１０においては、リソースの確保が必要な機能として、パンチ機能や製本機能等の他の後処理機能のいずれであってもよい。
【００５４】
これまで本発明を、ジョブ制御システム、そのジョブ制御システムを備える電子機器およびジョブ制御方法として上述した実施の形態をもって説明してきた。しかしながら、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができるものである。また、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。したがって、画像形成装置以外の電子機器にも適用することができ、また、ジョブ制御方法をコンピュータに実行させるためのプログラムやそのプログラムが記録された記録媒体としても提供することができるものである。
【符号の説明】
【００５５】
１０…ＭＦＰ、１１…ネットワーク、１２〜１４…ＰＣ、２０…コントローラ、２１…ＣＰＵ、２２…記憶装置、２３…ネットワークＩ／Ｆ、２４…コンソール、３０…エンジン部、３１…プリンタエンジン、３２…エンジンパネル、４０…受付部、４１…処理部、４２…記憶部、４３…判断部、４４…リソース確保部、４５…リソース開放部
【先行技術文献】
【特許文献】
【００５６】
【特許文献１】特開２００３−９１３８０号公報
【図１】
2015153358.tif 000003
【図２】
2015153358.tif 000004
【図３】
2015153358.tif 000005
【図４】
2015153358.tif 000006
【図５】
2015153358.tif 000007
【図６】
2015153358.tif 000008
【図７】
2015153358.tif 000009