本発明は、割り込み処理を行うことができる画像形成装置、そのような画像形成装置におけるプログラム及びその記録媒体に関する。
従来、プリンタ等の画像形成装置において、印刷ジョブ実行中に別の印刷要求を受け付けた場合に、その印刷要求に対応するジョブは、既に受け付け済みのジョブが全て完了した後に実行される。即ち、緊急に印刷を行いたい場合には、既に受け付け済みで、まだ完了していない前のジョブをキャンセルしなければならない。従って、既に受け付け済みのジョブをキャンセルせずに、指定したジョブを優先して印刷できるようにする必要がある。
例えば、特開2003−118209号公報(特許文献1参照。)には、必要なジョブ種に対しては、個々の優先度を付けたジョブよりも更に優先して実行できるようにしたジョブ管理装置が開示されている。特許文献1で開示されたジョブ管理装置は、複数のジョブを管理するジョブ管理装置であって、個々のジョブに対して優先的に実行させるジョブを指定する優先ジョブ指定手段と、この優先ジョブ指定手段により指定されたジョブよりも優先するジョブを登録する最優先ジョブ登録手段とを有する。
特開2003−118209号公報
しかし、特許文献1のジョブ管理装置は、ジョブに優先度を付けることで実行順を変えることができるが、実際の画像形成装置では、PDL(Page Description Language)の画像展開中に別のジョブが割り込んでPDL処理を開始することは困難であるという問題がある。
また、PDLモジュールはオプションとして提供される場合が多く、モジュールのバージョンによっては割り込み処理に対応していないものもあるという問題がある。その他にも、画像形成装置は、様々な制約の中で動作しており、割り込み処理を即座に行うことが困難である場合もある。
従って、本発明は、上記問題を鑑みて、動作状態及び機能により割り込み処理の実行に制約がある場合にも、処理中のジョブをキャンセルせずに後のジョブを優先して処理することを可能にする画像形成装置、プログラム及び記録媒体を提供することを目的とする。
上記目的を達成するために、本発明の画像形成装置は、入力データに基づいて画像を形成する画像形成装置であって、前記入力データに係る情報を記憶し、前記情報の並び順により出力順序を記憶する出力順記憶手段と、前記入力データに対して出力の優先度を決定する優先度決定手段と、該優先度決定手段により決定された優先度に応じて前記出力順記憶手段に記憶された出力順序を変更する出力順変更手段と、前記入力データに対して画像展開を行う複数のPDL解釈手段と、前記出力順記憶手段に記憶された出力順序に従って画像展開を行うよう前記複数のPDL解釈手段を制御するPDL制御手段とを有し、前記入力データに対して前記優先度決定手段により決定された優先度が、前記複数のPDL解釈手段のうちの少なくとも1つのPDL解釈手段で画像展開中のデータよりも高い場合に、前記PDL制御手段は、前記少なくとも1つのPDL解釈手段が割り込み処理に対応しているかどうかを検出し、前記出力順変更手段は、前記入力データが、前記少なくとも1つのPDL解釈手段が割り込み処理に対応している場合には前記画像展開中のデータよりも先に、前記少なくとも1つのPDL解釈手段が割り込み処理に対応していない場合には前記画像展開中のデータの後に、前記複数のPDL解釈手段のうちの他のPDL解釈手段によって画像展開されるよう前記出力順記憶手段に記憶された出力順序を変更する。
これにより、動作状態及び機能により割り込み処理の実行に制約がある場合にも、処理中のジョブをキャンセルせずに後のジョブを優先して処理することを可能にする画像形成装置を提供することができる。特に、オプションとして提供されるPDLモジュールを含むPDL解釈手段が割り込み処理に対応していない場合に、PDL解釈部で実行中のPDL解釈処理が終了した後に優先度が高いジョブが処理されるよう出力順序を制御することにより、優先度が高い後のジョブを先に処理することができる。
望ましくは、本発明の画像形成装置において、前記PDL解釈手段は、前記割り込み処理に対応しているかどうかを示す項目を含む設定ファイルを有し、前記PDL制御手段は、前記設定ファイルに含まれる前記項目に基づいて前記PDL解釈手段が前記割り込み処理に対応しているかどうかを検出する。
これにより、PDL解釈部が割り込み処理に対応しているかどうかを予め知ることが可能となり、未対応であると判断される場合には、無駄なイベントの発生を回避するために、PDL解釈部に対して一時停止要求を行わないようにすることができる。
望ましくは、本発明の画像形成装置は、前記出力順記憶手段に記憶された前記出力順序に従って、前記複数のPDL解釈手段の夫々による画像展開の結果得られた画像データを出力する出力制御手段を更に有し、前記入力データに対して前記優先度決定手段により決定された優先度が、前記出力制御手段によって出力中の画像データよりも高い場合に、前記出力順変更手段は、前記出力順記憶手段に記憶された情報から、前記出力制御手段による画像データの出力のために使用中の特定のリソースが前記入力データに基づく画像データの出力のために使用されることを検出した場合には前記出力中の画像データの後に、前記特定のリソースが前記入力データに基づく画像データの出力のために使用されないことを検出した場合には前記出力中の画像データのよりも先に、前記入力データに基づく画像データが出力されるように、前記出力順記憶手段に記憶された出力順序を変更する。
これにより、PDL解釈処理の終了又は一時停止時点に実行中の印刷出力処理が一時停止不可能な場合であっても、その印刷出力処理が終了した後に優先度が高いジョブが処理されるよう出力順序を制御することで、優先度が高い後のジョブを先に処理することができる。
更に望ましくは、本発明の画像形成装置において、前記出力順変更手段は、前記複数のPDL解釈手段の夫々による画像展開の結果得られた画像データからしか前記特定のリソースが前記入力データに基づく画像データの出力のために使用されるかどうかを検出できない場合には、必ず前記出力制御手段によって出力中の画像データの後に前記入力データに基づく画像データが出力されるように、前記出力順記憶手段に記憶された出力順序を変更する。
これにより、ジョブの印刷条件をPDL解釈部によって処理をなされた結果からしか知ることができないために、優先度が高いジョブに対するPDL解釈処理の開始前に、実行中の印刷出力処理が一時停止不可能であるかどうかを検出できない場合でさえ、優先度が高い後のジョブを先に処理することを保証できる。
更に望ましくは、本発明の画像形成装置において、前記出力制御手段は、前記出力順変更手段が、前記特定のリソースが前記入力データに基づく画像データの出力ために使用されることを検出した場合に、前記使用中の特定のリソースを解放し、前記出力順変更手段は、前記出力中の画像データよりも先に前記入力データに基づく画像データが出力されるように、前記出力順記憶手段に記憶された出力順序を変更する。
これにより、前のジョブに関してはその印刷条件に従った印刷結果が保証されなくなるが、優先度が高いジョブに関しては、印刷出力処理が一時停止不可能であるかどうかに関わらず、その印刷出力処理を最短で割り込ませることができる。
また、更に望ましくは、本発明の画像形成装置において、前記出力順変更手段は、前記出力順記憶手段に記憶された情報から、前記出力制御手段によって出力中の画像データが、並行して前記複数のPDL解釈手段によって画像展開されているデータに基づくことを検出する場合に、前記出力中の画像データの出力の後に前記入力データに基づく画像データが出力されるように、前記出力順記憶手段に記憶された出力順序を変更する。
これにより、画像形成装置がデッドロックに陥ることを回避しながら、優先度が高いジョブを次のジョブとして割り込ませることができる。
また、更に望ましくは、本発明の画像形成装置は、前記出力順記憶手段に記憶された出力順序に従って、前記複数のPDL解釈手段の夫々による画像展開を一時停止するための第1の一時停止要求を前記PDL制御手段へ送信し、前記出力制御部による画像データの出力を一時停止するための第2の一時停止要求を前記出力制御部へ送信する要求送信手段を更に有し、該要求送信手段は、前記第1の一時停止要求及び前記第2の一時停止要求を同時に又は連続して送信する。
これにより、PDL解釈処理又は印刷出力処理のいずれかが一時停止できない状態で他の処理が終了してしまう場合にも、いずれの処理に対しても停止要求が行われていることによって次のジョブの処理開始は必ず待機状態となり、優先度が高いジョブを次のジョブとして割り込ませることが保証される。
また、更に望ましくは、本発明の画像形成装置において、前記PDL制御手段が、前記少なくとも1つのPDL解釈手段が割り込み処理に対応していることを検出する場合に、前記要求送信手段は、前記PDL制御手段に前記第1の一時停止要求を送信し、前記PDL制御手段は、前記第1の一時停止要求に応じて前記少なくとも1つのPDL解釈手段による画像展開を停止して、前記他のPDL解釈手段によって前記入力データを画像展開し、前記PDL制御手段が、前記少なくとも1つのPDL解釈手段が割り込み処理に対応していないことを検出する場合に、前記PDL制御手段は、前記第1の少なくとも1つのPDL解釈手段による画像展開が終了した後に、前記他のPDL解釈手段によって前記入力データを画像展開する。
これにより、PDL解釈部が割り込み処理に対応していない場合でさえ、画像形成装置がデッドロックに陥ることを回避しながら、優先度が高いジョブを次のジョブとして割り込ませることが保証される。
上記目的を達成するために、本発明のプログラムは、入力データに基づいて画像を形成する画像形成装置のおけるプログラムであって、コンピュータに、前記入力データが入力された順を出力順序とする出力順序決定ステップと、前記入力データに対して出力の優先度を決定する優先度決定ステップと、該優先度決定ステップで決定された優先度に応じて前記出力順序決定ステップで決定された出力順序を変更する出力順変更ステップと、該出力順変更ステップで変更された出力順序に従って前記入力データに対して画像展開を行うPDL解釈ステップとを実行させ、前記優先度決定ステップで前記入力データに対して決定された優先度が、前記PDL解釈ステップで画像展開中のデータよりも高い場合に、前記PDL解釈ステップによる画像展開が一時停止可能であるかどうかを検出する検出ステップを更に実行させ、前記出力順変更ステップは、前記入力データが、前記PDL解釈ステップによる画像展開が一時停止可能である場合には前記画像展開中のデータよりも先に、前記PDL解釈ステップによる画像展開が一時停止不可能である場合には前記画像展開中のデータの後に、前記PDL解釈ステップで画像展開されるよう前記出力順序決定ステップで決定された出力順序を変更する。
これにより、画像形成装置において、動作状態及び機能により割り込み処理の実行に制約がある場合にも、処理中のジョブをキャンセルせずに後のジョブを優先して処理することを可能にするプログラムを提供することができる。
上記目的を達成するために、本発明のプログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。
本発明により、動作状態及び機能により割り込み処理の実行に制約がある場合にも、処理中のジョブをキャンセルせずに後のジョブを優先して処理することが可能な画像形成装置を提供することが可能となる。
以下、本発明の実施の形態を、添付の図面を参照して説明する。
図1は、本実施形態に従う画像形成装置を含む画像形成システムの構成例である。
図1の画像形成システム1において、画像形成装置11は、LAN(Local Area Network)等のネットワーク13を介して、パーソナルコンピュータ(PC)及びサーバー等のホスト端末12a及び12bへ接続されている。画像形成装置11は、また、ネットワーク13を介して、PC12a及び12bの夫々との間でデータの送受信をすることができる。
図2は、本実施形態に従う画像形成装置の一例としてのレーザプリンタのハード構成を示すブロック図である。
図2のプリンタ11は、図1に示したようにネットワークを介してホスト端末12へ接続されており、印刷出力を実行するためのプリンタエンジン21と、ユーザによる画像形成装置の操作及び設定、並びにユーザへのプリンタ状態等の表示を行う操作パネル22と、これらを制御するコントローラ23とを有する。
コントローラ23は、更に詳細に述べると、予め設定された制御モード及びホスト端末12から送信された制御コードに従って、ホスト端末12から送信された文書データを画像データに変換してプリンタエンジン21へ出力する制御機構であって、外部インターフェース31と、プログラム記憶部32と、フォント記憶部33と、制御部34と、一時記憶部35と、バックアップ記憶部36と、エンジンインターフェース37と、パネルインターフェース38とを有する。
外部インターフェース31は、ホスト端末12からコマンド及びデータを受信し、且つ、ホスト端末12へステータス信号を送信する送受信手段である。
プログラム記憶部32は、コントローラ23の内部におけるデータ管理及び周辺モジュールの制御のためのプログラムを記憶する記憶手段である。フォント記憶部33は、印刷に使用される様々な種類のフォントを記憶する記憶手段である。プログラム記憶部32及びフォント記憶部33は、例えば、読み出し専用メモリ(ROM)が用いられる。
制御部34は、プログラム記憶部32に記憶されたプログラムに従って、ホスト端末12からのデータを処理する手段であり、例えば、中央演算処理装置(CPU)に含まれる。
一時記憶部35は、制御部34の処理動作時のワークメモリ、ホスト端末12からのデータをページ単位に管理して一時記憶するバッファ、及び、バッファに記憶されたデータを実際の印刷パターンに変換して、画像データを記憶するビットマップメモリ等として用いられる記憶手段であり、例えば、ランダム・アクセス・メモリ(RAM)が用いられる。
バックアップ記憶部36は、プリンタ11の電源を切った後にも保持されるべきデータを記憶する記憶手段であり、例えば、不揮発性RAMが用いられる。
エンジンインターフェース37は、プリンタエンジン21へ制御信号を送信し、且つ、プリンタエンジン21からステータス信号を受信する送受信手段である。
パネルインターフェース38は、プリンタ11の状態、制御モード及びフォント等の切り替えを行うための信号を操作パネル22とやり取りする送受信手段である。
コントローラ23は、更に、オプション記憶部39を有しても良い。
プリンタ11の上記構成要素の夫々は、内部共通バスによって接続されている。
外部インターフェース31を介してホスト端末12から受信したデータは、制御部34によって印刷データ及び印刷制御データとその他のデータとに分けられる。印刷データ及び印刷制御データは、制御コードに変換されて一時記憶部35に記憶される。ホスト端末12から受信したプリント命令及びデータが1頁分を超えている場合に、制御部34は、最初に制御コードを画像データに変換し、その後、エンジンインターフェース37を介してプリンタエンジン21へ印刷開始命令を出す。このようにして、プリンタ11は、ホスト端末12から受信した文書データをプリンタエンジン21により印刷する。プリンタエンジン21は、コントローラ23から受信した画像データ及び制御信号に基づいて感光体上に静電潜像を作って現像し、給紙部より転写紙を給紙し、転写及び定着を行って画像を形成する。
次に、図3は、本実施形態の画像形成装置のモジュール構成図の一例を示す。
図3において、画像形成装置は、図1のようにネットワークを介してホスト端末との間でデータの送受信を行うための通信媒体41と、印刷出力を実行するためのプリンタエンジン42と、ユーザによる画像形成装置の操作及び設定並びにユーザへの画像形成装置の状態等の表示のための操作パネル43と、これらを制御するコントローラ44とを有する。通信媒体41、エンジン42、操作パネル43及びコントローラ44は、共通バスによって接続されている。
コントローラ44は、通信制御部51と、ジョブ管理部52と、PDL解釈部53a、53b及び53cと、システム管理部54と、メモリ制御部55と、エンジン制御部56と、パネル制御部57と、パネル管理部58とを有する。
通信制御部51は、入力部511を有し、これにより通信媒体41を介してホスト端末から送信されたデータを受信する。また、通信制御部51は、通信プロトコル及び印刷プロトコルを解釈し、解釈した結果得られた通信ポート番号及びプリンタ名等のパラメータと、ホスト端末から送信されたPDLデータとをジョブ管理部52へ送信する。
ジョブ管理部52は、通信制御部51より送信された優先度決定パラメータを基に優先度を決定し、それを反映するようジョブの処理順序を変更し、処理順序の変更に応じてPDL解釈部53a、53b及び53cの夫々を制御する制御部であって、出力順記憶部521と、優先度決定部522と、出力順変更部523と、PDL制御部524と、要求送信部525とを有する。出力順記憶部521は、入力部511によるデータの受信順に従って出力順序を記憶する手段である。優先度決定部522は、通信制御部51から受信した優先度決定パラメータを基に優先度を決定する手段である。出力順変更部523は、優先度決定部522により決定された優先度に従って、出力順記憶部521に記憶された出力順序を変更する手段である。PDL制御部524は、出力順記憶部521に記憶された出力順序に従ってPDL解釈部53a、53b及び53cの夫々を制御する手段である。要求送信部525は、出力順記憶部521に記憶された出力順序に従って優先度が高いジョブが先に処理されるよう、PDL制御部524及びエンジン制御部56の夫々へ、ジョブの開始要求又は停止要求を送信する手段である。
ジョブ管理部52は、通信制御部51よりデータ等が送信されると、最初に、通信制御部51から送信されたデータの出力順序を、入力部511によるデータの受信順として、一時的に出力順記憶部521に記憶する。次に、優先度決定部522により、ホスト端末より印刷要求のあったデータの出力に関する優先度が決定され、これに応じて、出力順記憶部521に記憶された出力順序は、出力順変更部523により変更される。出力順記憶部521に記憶されている出力順序が変更された場合には、PDL制御部524は、変更後の出力順序に対応するようPDL解釈部53a、53b及び54dの夫々を制御する。例えば、出力順序が変更された結果、通信制御部51から受信した新たなPDLデータがその時点で第1のPDL解釈部53aにより処理されているデータよりも前に印刷されることになったならば、要求送信部525は、PDL制御部524に対して、第1のPDL解釈部53aで実行中のPDL解釈処理を停止して、出力順序が先である新たなPDLデータのPDL解釈処理を先に実行するよう第2のPDL解釈部53bを制御するよう一時停止要求及び処理開始要求を送信する。これを受けて、PDL制御部524は、第1のPDL解釈部53aで実行中のPDL解釈処理を一時停止して、出力順序が先である新たなPDLデータのPDL解釈処理を第2のPDL解釈部53bに実行させる。その後、PDL制御部524は、第2のPDL解釈部53bによる処理が終了した後に、処理を再開するよう第1のPDL解釈部53aを制御する。
PDL解釈部53a、53b及び53cは、通信制御部51からジョブ管理部52を介して送信されたPDLデータを解釈して、その結果を画像データとしてジョブ管理部52に返す。なお、PDL解釈部は、優先度が取り得るレベルの数だけ構成される。即ち、本実施形態では、優先度が0、1、2の3段階のレベルを取るので、PDL解釈部は3つで構成されている。なお、優先度は、数字が大きいほど高いとする。
システム管理部54は、ジョブ管理部52からの要求に応じて、PDL解釈部53a、53b及び53cの夫々の停止及び再開を制御する。また、システム管理部54は、PDL解釈部53a、53及び53cの夫々に対応した印刷パラメータを保存するための印刷パラメータ保存部541を有する。
メモリ制御部55は、PDL解釈部53a、53b及び53cからジョブ管理部52を介して出力された画像データを保存する。
エンジン制御部56は、ジョブ管理部52の出力順記憶部521に記憶された出力順序に従って、メモリ制御部55に保存されている画像データを印刷するようエンジン42を制御するための出力制御部561を有する。
パネル制御部57は、パネル管理部58の指示に従って操作パネル43を制御する。パネル管理部58は、パネル制御部57を介して、操作パネル43において設定メニューの表示及びエンジン状態の表示等を行う。
以下、具体的な実施例を挙げて、図1〜3を参照して説明した本実施形態に従う画像形成装置の動作について説明する。
図4は、本実施例に従って、出力順序変更前後における図3の出力順記憶部521のデータ構成の一例を示す。
出力順記憶部521は、図4に示すようなデータの状態を管理するテーブルを有する。テーブルの列毎に夫々のデータの状態が表され、夫々の列は、例えば、データを識別するためのID(Identification Data)、通信制御部51より送信されたRawポート印刷のポート番号を表す通信ポート、優先度決定部522により決定された出力の優先度、PDL解釈部53a、53b及び53cによるPDL解釈処理の状態、及びPDL解釈処理のためにデータが割り当てられているPDL解釈部の番号、等の情報を有する。なお、図4に示される例では、出力順序は、テーブル内の並び順として記憶されているとする。また、優先度は、0〜N−1の値で示され(N:PDL解釈部の個数)、上述したように、数字が大きいほど高い。
図4(a)において、テーブルは、ID=1、2、3・・・により識別されるデータの情報が、ID=1、2、3・・・の順に格納されている。ID=1に対応するデータは、優先度=1であり、第1のPDL解釈部53aにおいてPDL解釈処理を実行されている。ID=2に対応するデータは、優先度=0であり、処理待ち状態である。ID=3に対応するデータは、優先度=2であり、同じく処理待ち状態である。
図4(a)のようなテーブル内の並び順により記憶された出力順序が、出力順変更部523によりそれらの優先度に従って変更される場合、出力順記憶部521のテーブルは、図4(b)のようにデータが書き換えられる。出力順序の変更後、ID=1、2、3・・・により識別されるデータの情報は、ID=3、1、2・・・の順に並べ替えられる。優先度=2であるID=3に対応するデータは、第2のPDL解釈部53bにおいてPDL解釈処理を実行されている。次に、優先度=1であるID=1に対応するデータは、出力順序の変更前に実行されていた第1のPDL解釈部53aによる処理が一時停止されている。最後に、優先度=0であるID=2に対応するデータは、出力順序変更前に引き続き、やはり処理待ち状態である。
このような出力順序変更は、出力順変更部523及びPDL制御部524により実行される。図5に、本実施例に従う出力順序変更フローを一例として示す。
通信制御部51よりジョブ管理部52へ新たなデータが送信されると、送信されたデータにID(=S)が付与され、出力順記憶部521は、データに付与されたIDと共にそのデータに係る情報を図4(a)のようなテーブル形式で記憶する。このとき、ID=Sに対応するデータに係る情報は、出力順記憶部521の最後尾に記憶され、また、優先度に関しては、まだ決定されていない。
出力順記憶部521に情報が記憶されると、ステップS101において、優先度決定部522は、通信制御部51より送信された優先度決定パラメータを入力として、優先度決定テーブルから新たに送信されたデータの優先度Pを決定する。優先度決定テーブルについての詳細は後述する。
優先度Pの決定後、ステップS102において、出力順変更部523は、出力順記憶部521の先頭から順に、ステップS101で決定された優先度Pよりも低い優先度を有するデータを検索する。ステップS103において優先度Pよりも低い優先度を有するデータが見つかった場合には(このデータのIDをTとする。)、ステップS104に進み、出力順変更部523は、ID=Sに対応するデータに関する情報を、出力順記憶部521の最後尾から削除し、ID=Tに対応するデータに関する情報の直前に挿入する。このとき、ID=Tに対応するデータに関する情報が出力順記憶部521の先頭に記憶されている場合には、要求送信部525は、ID=Tに対応するデータの出力処理を停止するようエンジン制御部56に要求する。その後、ステップS105に進む。
ステップS103において優先度Pよりも低い優先度を有するデータが見つからなかった場合には、ステップS104を介さずに直接的にステップS105に進む。ステップS105において、要求送信部525は、出力順記憶部521の先頭から順に、状態が"処理中"であるデータを検索する。即ち、いずれかのPDL解釈部により現在PDL解釈処理を実行されているデータを検索する。ステップS106において状態が"処理中"であるデータが見つかった場合には(このデータのIDをUとする。)、ステップS107に進み、要求送信部525は、更に、そのデータの優先度がステップS101で決定された優先度Pよりも低いか否かを判断する。優先度がPよりも高い場合には、ステップS109に進み、低い場合には、ステップS110に進む。ステップS109において、要求送信部525は、今回新たに入力されたID=Sに対応するデータを保留とする。即ち、このデータの状態は、"処理待ち"となる。一方、ステップS110では、要求送信部525は、PDL制御部524に対して、現在ID=Uに対応するデータに対して実行中のPDL解釈処理を停止するよう一時停止要求を送信するするとともに、今回新たに入力されたID=Sに対応するデータのPDL解釈処理を開始するようPDL解釈開始要求を送信する。これを受けて、PDL制御部524は、PDL解釈部53a又は53bにおいて現在ID=Uに対応するデータに対して実行中のPDL解釈処理を一時停止して、今回新たに入力されたID=Sに対応するデータのPDL解釈処理を実行するようPDL解釈部53b又は53cを制御する。このとき、ID=Uに対応するデータの状態は、"処理中"から"一時停止中"となり、ID=Sに対応するデータの状態は、"処理中"となる。
また、ステップS106において状態が"処理中"であるデータが見つからなかった場合には、ステップS108に進み、要求送信部525は、PDL制御部524に対して、今回新たに入力されたID=Sに対応するデータのPDL解釈処理を開始するようPDL解釈開始要求を送信する。これを受けて、PDL制御部524は、今回新たに入力されたID=Sに対応するデータのPDL解釈処理を実行するようPDL解釈部53aを制御する。このとき、このデータの状態は、"処理中"となる。
次に、あるデータに対して実行されていたPDL解釈処理が終了した場合のPDL制御部524の動作について、図6を参照して説明する。図6は、PDL解釈処理終了後のジョブ管理部の動作フローの一例を示す。
あるデータに対して実行されていたPDL解釈処理が終了すると、ステップS201において、PDL制御部524は、PDL解釈処理の終了したデータの状態を"処理終了"に変更する。
次に、ステップS202において、要求送信部525は、出力順記憶部521の先頭から順に、状態が"処理待ち"又は"一時停止中"となっているデータを検索する。ステップS203において状態が"処理待ち"又は"一時停止中"となっているデータが見つかった場合には(このデータのIDをXとする。)、ステップS204に進む。要求送信部525は、更に、そのデータの状態が"一時停止中"であるか否かを判断する。ID=Xに対応するデータの状態が"一時停止中"である場合には、ステップS205に進み、要求送信部525は、PDL制御部524に対して、PDL解釈部53a又は53bにおけるID=Xに対応するデータに対するPDL解釈処理の実行を再開するようPDL解釈再開要求を送信する。
一方、ステップS204においてID=Xに対応するデータの状態が"一時停止中"でない、即ち"処理待ち"であると判断された場合には、ステップS206に進み、要求送信部525は、PDL制御部524に対して、PDL解釈部53a又は53bにおいて新たにID=Xに対応するデータに対してPDL解釈処理を開始するようPDL解釈か医師要求を送信する。
また、ステップS203において状態が"処理待ち"又は"一時停止中"となっているデータが見つからなかった場合には、ジョブ管理部52は一連の動作フローを終了する。
以上、出力順序が変更される場合の動作フローについて、図5及び図6を参照して説明してきたが、画像形成装置の各部の動作を明らかにするために、図7を参照して更に詳細に説明する。
図7は、本実施例に従う画像形成装置において優先度が高いジョブが入力されたことにより出力順序が変更される場合の各モジュール間の動作フローの一例を示す。
最初に、ステップS301において、通信制御部51からジョブ管理部52へデータが入力される。このとき、エンジン42ではエンジン制御部56によって第1のジョブの出力処理が実行中であり、また、第1のPDL解釈部53aではPDL制御部524によって第2のジョブのPDL解釈処理が実行中である。入力されたデータの出力に関する第3のジョブの優先度は、第1のジョブ及び第2のジョブの夫々の優先度よりも高い。ジョブ管理部52は、このデータインのタイミングで、図5を参照して説明した出力順序変更動作を実行する。これにより、ジョブ管理部52において出力順変更部523によって出力順記憶部521に記憶された出力順序が変更される。
次に、ステップS302において、ジョブ管理部52は、第1のPDL解釈部53aに対してPDL解釈停止要求を送信して、第2のジョブに対して実行中のPDL解釈処理を一時停止させる。同時に又は連続して、ステップS303において、ジョブ管理部52は、エンジン制御部56へ印刷停止要求を送信し、エンジン46によって第1のジョブに対して実行中の出力処理を一時停止させる。
PDL解釈処理及び出力処理が一時停止された後、ステップS304において、ジョブ管理部52は、第2のPDL解釈部53bへPDL解釈開始要求を送信し、通信制御部51により入力されたデータに関する第3のジョブのPDL解釈処理を開始させる。更に、ステップS305において、ジョブ管理部52は、第2のPDL解釈部53bによって第3のジョブに対して実行されたPDL解釈処理の結果得られた画像データを印刷するよう、エンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42によって第3のジョブの出力処理を開始する。
その後、第2のPDL解釈部53bによる第3のジョブに対するPDL解釈処理が終了すると、ステップS306において、第2のPDL解釈部53bは、ジョブ管理部52へPDL解釈終了通知を送信する。これによって、ジョブ管理部52は、第2のPDL解釈部53bによる処理が終了したことを認識し、次に、ステップS307において、第1のPDL解釈部53aへPDL処理再開要求を送信し、先のステップS302において一時停止された第2のジョブのPDL解釈処理を再開させる。
更に、エンジン42による第3のジョブに対する出力処理が終了すると、ステップS308において、エンジン制御部56は、ジョブ管理部52へ印刷終了通知を送信する。これによって、ジョブ管理部52は、出力順序において先頭であった優先度が高いデータの印刷が終了したことを認識し、出力順記憶部521に格納されている先頭データを破棄する。次に、ステップS309において、ジョブ管理部52は、エンジン制御部56へ印刷再開要求を送信し、先のステップS303において一時停止された第1のジョブの出力処理を再開させる。
また、上述したように、図3の優先度決定部522は、通信制御部51より送信された優先度決定パラメータを入力として、優先度決定テーブルから新たに送信されたデータの優先度を決定する。以下、優先度パラメータについて、図8を参照して説明する。
図8(a)は、Rawポート番号によって優先度を決定する優先度決定テーブルの例である。図8(a)の優先度決定テーブルは、Rawポート印刷時のポート番号と優先度との間の対応関係を示している。優先度は、9100ポート、9101ポート、9102ポートの順で高くなっている。
図8(b)は、プロトコルによって優先度を決定する優先度決定テーブルの例である。図8(b)の優先度決定テーブルは、通信プロトコルと優先度との間の対応関係を示している。優先度は、Rawポート印刷の場合に最低であり、Apple Talk印刷の場合に最高である。LPR(Line PRinter daemon protocol)印刷及びIPP(Internet Printing Protocol)印刷の優先度は、同じであり、Rawポート印刷の優先度とApple Talk印刷の優先度との間にある。
図8(c)は、プリンタ名によって優先度を決定する優先度決定テーブルの例である。図8(c)の優先度決定テーブルは、LPRプロトコルで指定されるプリンタ名と優先度との間の対応関係を示している。優先度は、"lp1"、"lp2"、"lp3"、"lp4"の順で高くなっている。
このように、優先度は、通信ポート、通信プロトコル及びプリンタ名等によって、任意に設定することが可能である。また、優先度及び優先度を決定するためのパラメータを図8のようなテーブルで管理することにより、優先度の変更を容易に行うことが可能である。
代替的に、優先度は、通信制御部51より送信されたデータ中に記述された優先度によって決定されても良い。
以上、本実施例の画像形成装置は、PDL解釈部を優先度の指定可能な優先度のレベル数だけ設けることにより、PDL展開中においても、前のジョブをキャンセルすることなく、優先度が高い後のジョブを先に処理することができる。即ち、先に入力されたデータが画像展開を実行中であっても、その画像展開を一時停止し、後に入力された印刷の優先度のより高いデータに対する画像展開に当該画像形成装置内のCPU(中央演算処理装置)及びメモリを割り当てることにより、印刷の割り込み処理が可能となる。なお、後に入力されたデータに対する画像展開が終了した後に、停止されていた先のデータに対する画像展開は自動的に再開されるよう構成されても良い。
PDL解釈処理を実行中のジョブよりも出力に関する優先度が高いジョブが入力される場合に、実施例1に従う画像形成装置は、実行中のPDL解釈処理を一時停止して、優先度が高いジョブを先に処理することができる。しかし、画像形成装置に含まれるPDL解釈部がこのような割り込み処理に未対応である場合には、実行中のPDL解釈処理を一時停止することは不可能である。PDL解釈部は、オプションで提供される場合も多く、このような場合には多種多様な機種で使用可能な互換性を有することが多い。従って、PDL解釈部が割り込み印刷機能に対応する以前に作られたモジュールであっても、最新の画像形成装置で使用されることがある。そのような画像形成装置では、一時停止要求のイベントは解釈不能であるとして無視され、実行中のPDL解釈処理が全て終了するまで続けられるので、本来先に処理されるべき優先度が高いジョブを優先して出力することができないという問題が生ずる。
このような問題に対処するため、本実施例に従う画像形成装置は、PDL解釈部が割り込み処理に対応しているかどうかを検出し、未対応である場合には、実行中のPDL解釈処理が終了した後に、そのジョブの出力処理に先立って優先度が高いジョブの出力処理を行うよう構成される。
図9は、本実施例に従って、出力順序変更前後における図3の出力順記憶部521のデータ構成の一例を示す。
出力順記憶部521は、図9に示すようなデータの状態を管理するテーブルを有する。テーブルの列毎に夫々のデータの状態が表され、夫々の列は、例えば、データを識別するためのID(Identification Data)、優先度決定部522により決定された出力の優先度、PDL解釈部53a、53b及び53cによるPDL解釈処理の状態、及びPDL解釈処理のためにデータが割り当てられているPDL解釈部の番号、エンジン制御部56による印刷出力処理の状態等の情報を有する。なお、出力順序及び優先度の本実施例における定義は、実施例1で一例として示された図4と同じである。
図9(a)は、データが入力される前の出力順記憶部521のデータ構成を示す。図9(a)のテーブルは、ID=1、2、・・・により識別されるデータの情報が、ID=1、2、・・・の順に格納されている。本実施例において、IDの番号はデータが入力された順に割り当てられている。ID=1及びID=2に対応する夫々のデータは、いずれも優先度=1である。優先度が同じである場合には、データは入力された順に処理される。ID=1に対応するデータは、第1のPDL解釈部53aにおいてPDL解釈処理を実行されるとともに、エンジン制御部56によってエンジン42において出力処理を実行されている。一方、ID=2に対応するデータは、PDL解釈処理及び出力処理のいずれに関しても処理待ち状態である。
図9(b)は、新たなデータが入力された直後の出力順記憶部521のデータ構成を示す。図9(b)のテーブルにおいて、新たに入力されたデータはID=3を割り当てられ、ID=2に対応するデータの後に格納される。ID=3を割り当てられた新たなデータは、以前に入力されたID=1及びID=2に対応する夫々のデータよりも高い優先度=2を有する。実施例1では、図4を参照して説明したように、この時点でたとえ以前に入力されたデータに対してPDL解釈処理が実行中であったとしても、新たに入力されたデータの優先度が以前に入力されたデータよりも高い場合には、その処理を一時停止して、優先度が高いデータを先に出力するよう出力順序を変更することができた。しかし、PDL解釈部が割り込み処理に対応していない場合には、このような出力順序の変更はすることができない。
図9(c)は、データ入力時に実行中であったPDL解釈処理の終了待機中の出力順記憶部521のデータ構成を示す。本実施例では、PDL解釈部が割り込み処理に対応していない場合に、PDL解釈部による処理の終了後、データに割り当てられた優先度に従って出力順序を変更することができる。図9(c)は、ID=3に対応するデータが入力された時点で実行されていたID=1に対応するデータへのPDL解釈処理が終了した直後のデータ構成であり、ID=1に対応するデータのPDL処理状態は「処理終了」となっているが、ID=2及びID=3に対応する夫々のデータのPDL処理状態は依然として「処理待ち」となっている。
その後、又は、先のPDL解釈処理が終了すると同時に、出力順記憶部521のデータ構成は、出力順変更部523によって図9(d)のように書き換えられる。出力順序の変更後、ID=1、2、3・・・により識別されるデータの情報は、優先度に従ってID=3、1、2・・・の順に並べ替えられる。ID=3に対応するデータは、同じくPDL処理状態が「処理待ち」状態であったID=2に対応するデータよりも高い優先度を有するので、優先して第2のPDL解釈部53bにおいてPDL解釈処理を実行される。また、ID=3に対応するデータは、「印刷中」であったID=1に対応するデータよりも高い優先度を有するので、優先してエンジン制御部56によってエンジン42において出力処理を実行される。従って、ID=1に対応するデータは、出力順序の変更前に実行されていた出力処理を一時停止される。最後に、ID=2に対応するデータは、出力順序変更前に引き続き、やはり処理待ち状態である。
図10は、本実施例に従う画像形成装置のジョブ処理動作フローの一例を示す。
通信制御部51よりジョブ管理部52へ新たなデータが送信されると、実施例1において説明したように優先度が決定される(図5のステップS101)。決定された優先度が、実行中のPDL解釈処理及び出力処理の夫々の対象ジョブよりも高い場合には、ステップS401において、PDL制御部524は、PDL解釈処理を実行中のPDL解釈部が割り込み処理に対応しているかどうか、即ち、一時停止可能かどうかを調べる。
PDL解釈部が一時停止可能である場合には、ステップS402において、PDL制御部524は、実行中のPDL解釈処理を一時停止させる。その後、ステップS404に進む。一方、PDL解釈部が一時停止不可能である場合には、ステップS403において、PDL制御部524は、実行中のPDL解釈処理が終了するまで待機する。
PDL解釈処理が一時停止(S402)又は終了(S403)すると、ステップS404において、ジョブ管理部52は、要求送信部525によりエンジン制御部56へ印刷停止要求を送信し、エンジン42において実行中の出力処理を一時停止させる。
次に、ステップS405において、ジョブ管理部52は、先にPDL解釈処理を実行していたPDL解釈部とは別のPDL解釈部へ要求送信部525によりPDL解釈開始要求を送信し、通信制御部51より入力された優先度が高いデータに対するPDL解釈処理を開始させる。更に、ジョブ管理部52は、このPDL解釈処理の結果得られた画像データを印刷するよう、要求送信部525によりエンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42による出力処理を開始する。
図11は、本実施例に従う画像形成装置においてPDL解釈部が割り込み処理に未対応である場合の各モジュール間の動作フローの一例を示す。
最初に、ステップS501において、通信制御部51からジョブ管理部52へデータが入力される。このとき、エンジン42ではエンジン制御部56によって第1のジョブの出力処理が実行中であり、また、第1のPDL解釈部53aではPDL制御部524によって第2のジョブのPDL解釈処理が実行中である。入力されたデータの出力に関する第3のジョブの優先度は、第1のジョブ及び第2のジョブの夫々の優先度よりも高い。ジョブ管理部52は、PDL制御部524により第1のPDL解釈部53aが割り込み処理に対応していないことが検出されるならば、第1のPDL解釈部53aで実行中の第2のジョブのPDL解釈処理が終了するまで、第3のジョブのPDL解釈処理の開始を待ち合わせる。
その後、第1のPDL解釈部52aによる第2のジョブのPDL解釈処理が終了すると、ステップS502において、第1のPDL解釈部53aは、ジョブ管理部52へPDL解釈終了通知を送信する。この通知を受けて、ジョブ管理部52は、ステップS503において、他のジョブに対して第3のジョブが優先して出力されるように、出力順変更部523によって出力順記憶部521に記憶された出力順序を変更するとともに、エンジン制御部56へ印刷停止要求を送信し、エンジン46によって第1のジョブに対して実行中の出力処理を一時停止させる。
出力処理が一時停止された後、ステップS504において、ジョブ管理部52は、第2のPDL解釈部53bへPDL解釈開始要求を送信し、通信制御部51により入力されたデータに関する第3のジョブのPDL解釈処理を開始させる。更に、ステップS505において、ジョブ管理部52は、第2のPDL解釈部53bによって第3のジョブに対して実行されたPDL解釈処理の結果得られた画像データを印刷するよう、エンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42によって第3のジョブの出力処理を開始する。
その後、第2のPDL解釈部53bによる第3のジョブに対するPDL解釈処理が終了すると、ステップS506において、第2のPDL解釈部53bは、ジョブ管理部52へPDL解釈終了通知を送信する。これによって、ジョブ管理部52は、第2のPDL解釈部53bによる処理が終了したことを認識することができる。
更に、エンジン42による第3のジョブに対する出力処理が終了すると、ステップS507において、エンジン制御部56は、ジョブ管理部52へ印刷終了通知を送信する。これによって、ジョブ管理部52は、出力順序において先頭であった優先度が高いデータの印刷が終了したことを認識し、出力順記憶部521に格納されている先頭データを破棄する。次に、ステップS508において、ジョブ管理部52は、エンジン制御部56へ印刷再開要求を送信し、先のステップS503において一時停止された第1のジョブの出力処理を再開させる。
以上、本実施例で述べたように、PDL解釈部が割り込み処理に対応していない場合があるので、ジョブ管理部52はPDL解釈部の対応状況に応じて動作を変える必要が生ずる。即ち、ジョブ管理部52は、PDL解釈部が割り込み処理に対応している場合には、実施例1のように実行中のPDL解釈処理を一時停止した後に、PDL解釈部が割り込み処理に対応していない場合には、本実施例のように実行中のPDL解釈処理が終了した後に、優先度が高いジョブのPDL解釈処理及び印刷出力処理を実行するよう構成される。これを実現するために、PDL解釈部側の設定ファイルに割り込み処理への対応状況を予め記述しておき、ジョブ管理部52は、これを読み取ることによってPDL解釈部の対応/未対応を判断し、未対応であると判断される場合には一時停止要求を行わないようにする。これにより、PDL解釈部の対応状況を予め知ることが可能となり、無駄なイベントの発生を回避可能となる。
図12は、本実施例に従う画像形成装置においてPDL解釈部のディレクトリ構造及び設定ファイルの記述を一例として表す。
図12(a)は、PDL解釈部のディレクトリ構造の一例を示す。PDL解釈部は少なくとも1つのPDL解釈部を有し、夫々のPDL解釈部ごとに分けられたフォルダが存在する。例えば、図12(a)に示される第1、第2及び第3のフォルダは、夫々、図3に示される第1、第2及び第3のPDL解釈部53a、53b、53cの夫々に対応する。夫々のフォルダには、例えばファイル名"pdl.ini"の設定ファイル62a、62b、62cの夫々が格納される。
図12(b)は、設定ファイルの記述の一例を示す。図12(b)の設定ファイルは、そのPDL解釈部のバージョン620、名称622、及び割り込み処理の対応状況624を示す項目を含む。例えば、割り込み処理の対応状況624は、そのPDL解釈部が一時停止可能である場合にのみ記述され、一時停止不可能である場合には項目自体が記述されないと定義されても良い。
以上、本実施例の画像形成装置は、PDL解釈部が割り込み処理に対応しているかどうかを検出し、対応していない場合には、PDL解釈部で実行中のPDL解釈処理が終了した後に優先度が高いジョブが処理されるよう出力順序を制御することにより、PDL解釈部が割り込み処理に対応していない場合にも、優先度が高い後のジョブを先に処理することができる。
また、印刷条件には様々なものがあるが、例えばステープル機能のように、ジョブ実行中に画像形成装置が有するリソースを占有して印刷出力を行う方法が知られる。
ステープル機能により、一部の用紙束が揃うまでの間は印刷した用紙を排出せずにステープルトレイへスタックしておき、その後用紙束が揃うと、それらの用紙束をステープルで綴じて排出することができる。このように、ステープルトレイは、そのジョブの実行中は占有状態となっている。
実施例1及び実施例2では、エンジン42に出力処理を実行中のジョブがある場合に、そのジョブよりも出力に関して高い優先度を有するジョブが入力されるならば、実行中の出力処理は一時停止され、入力されたジョブに対して優先して出力処理を行う。しかし、この場合に、エンジン42で出力処理を実行中のジョブがステープル機能を設定されているならば、優先度の高い他のジョブを割り込ませることにより、先に実行されていたジョブの印刷結果と、割り込み実行された他のジョブの印刷結果とが一緒にステープルで綴じられるという事態が生ずる。即ち、印刷中のジョブが特定のリソースを占有している場合に、同一のリソースを使用するジョブを割り込ませることは、印刷結果が保証されなくなることを意味する。
このような問題に対処するため、本実施例に従う画像形成装置は、印刷中のジョブが占有している特定のリソースと同一のリソースを使用する優先度が高いジョブを入力された場合には、PDL解釈処理の一時停止又は終了後に直ちに出力処理を一時停止させずに、その出力処理の終了後に優先度が高いジョブの出力処理を行うよう構成される。
図13は、本実施例に従う画像形成装置のジョブ処理動作フローの一例を示す。
通信制御部51よりジョブ管理部52へ新たなデータが送信されると、ジョブ管理部52は、実施例1において説明したように優先度を決定する(図5のステップS101)。決定された優先度が、実行中のPDL解釈処理及び出力処理の夫々の対象ジョブよりも高い場合には、データが送信された時点でPDL解釈部において実行されているPDL解釈処理が一時停止(実施例1)又は終了(実施例2)される。
その後、PDL解釈処理が一時停止又は終了すると、ステップS601において、ジョブ管理部52は、出力順記憶部521に記憶された(図9のような)データから、エンジン42で出力処理を実行されているジョブがあるかどうかを確認する。出力処理実行中のジョブがないならば、ステップS606へ進む。
一方、エンジン42において出力処理が実行されている場合には、ステップS602において、ジョブ管理部52は、出力順記憶部521に記憶されたデータから、エンジン42で実行中の出力処理によって画像形成装置の特定のリソースが占有されているかどうかを確認する。いずれのリソースも占有されていないならば、ステップS604に進む。ステップS604において、ジョブ管理部52は、実行中の他のジョブよりも優先度が高い入力データが優先して処理されるように、出力順変更部523によって出力順記憶部521に記憶される出力順序を変更するとともに、要求送信部525によりエンジン制御部56へ印刷停止要求を送信し、エンジン42によって実行中の出力処理を一時停止させる。
一方、特定のリソースが占有されている場合には、ステップS603において、ジョブ管理部52は、通信制御51により入力されたデータに付随する印刷条件を確認する。即ち、ジョブ管理部52は、優先度が高いジョブが、実行中の出力処理によって占有されているリソースと同じリソースを使用するかどうかを確認する。同一のリソースを使用しないならば、ステップS604に進む。
一方、優先度が高いジョブが、実行中の出力処理によって占有されているリソースと同じリソースを使用する場合には、ステップS605において、ジョブ管理部52は、実行中の出力処理が終了した後に優先度が高い入力データが優先して処理されるように、出力順変更部523によって出力順記憶部521に記憶される出力順序を変更するとともに、エンジン42によって実行中の出力処理に関する終了通知がエンジン制御部56から送信されるまで待機する。
実行中の出力処理が一時停止又は終了すると、ステップS606において、ジョブ管理部52は、要求送信部525によりPDL制御部524を介して、先にPDL解釈処理を実行していたPDL解釈部とは別のPDL解釈部へPDL解釈開始要求を送信し、通信制御部51より入力された優先度が高いデータに対するPDL解釈処理を開始させる。更に、ジョブ管理部52は、このPDL解釈処理の結果得られた画像データを印刷するよう、要求送信部525によりエンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42による出力処理を開始する。
なお、好ましくは、画像形成装置の処理効率を高めるために、先に実行されていた出力処理の終了後に優先度が高いデータに対するPDL解釈処理及び出力処理を並行して実行するのではなく、先に実行されていたPDL解釈処理が一時停止又は終了した直後に先行して優先度が高いデータに対してPDL解釈処理を実行しても良い。
図14は、本実施例に従う画像形成装置において、実行中の印刷出力処理が占有しているリソースを使用する優先度が高いジョブが入力される場合の各モジュール間の動作フローの一例を示す。なお、PDL解釈部は、割り込み処理に対応しているとする。
最初に、ステップS701において、通信制御部51からジョブ管理部52へデータが入力される。このとき、エンジン42ではエンジン制御部56によって第1のジョブの出力処理を実行中であり、また、第1のPDL解釈部53aではPDL制御部524によって第2のジョブのPDL解釈処理を実行中である。入力されたデータの出力に関する第3のジョブの優先度は、第1のジョブ及び第2のジョブの夫々の優先度よりも高い。ジョブ管理部52は、PDL制御部524により第1のPDL解釈部53aが割り込み処理に対応していることを検出すると、ステップS702において、第1のPDL解釈部53aに対してPDL解釈停止要求を送信して、第2のジョブに対して実行中のPDL解釈処理を一時停止させる。
PDL解釈処理が一時停止された後、ステップS703において、ジョブ管理部52は、第2のPDL解釈部53bへPDL解釈開始要求を送信し、通信制御部51により入力されたデータに関する第3のジョブのPDL解釈処理を開始させる。
その後、エンジン42による第1のジョブに対する出力処理が終了すると、ステップS704において、エンジン制御部56は、ジョブ管理部52へ印刷終了通知を送信する。この通知を受けて、ジョブ管理部52は、ステップS705において、第2のPDL解釈部53bによって第3のジョブに対して実行されたPDL解釈処理の結果得られた画像データを印刷するよう、エンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42によって第3のジョブの出力処理を開始する。
その後、第2のPDL解釈部53bによる第3のジョブに対するPDL解釈処理が終了すると、ステップS706において、第2のPDL解釈部53bは、ジョブ管理部52へPDL解釈終了通知を送信する。これによって、ジョブ管理部52は、第2のPDL解釈部53bによる処理が終了したことを認識し、次に、ステップS707において、第1のPDL解釈部53aへPDL処理再開要求を送信し、先のステップS702において一時停止された第2のジョブのPDL解釈処理を再開させる。
更に、エンジン42による第3のジョブに対する出力処理が終了すると、ステップS708において、エンジン制御部56は、ジョブ管理部52へ印刷終了通知を送信する。これによって、ジョブ管理部52は、出力順序において先頭であった優先度が高いデータの印刷が終了したことを認識し、出力順記憶部521に格納されている先頭データを破棄する。
以上、本実施例の画像形成装置は、PDL解釈処理の終了又は一時停止時点に実行中の印刷出力処理が一時停止不可能な場合であっても、その印刷出力処理が終了した後に優先度が高いジョブが処理されるよう出力順序を制御することにより、優先度が高い後のジョブを先に処理することができる。
実施例3に従う画像形成装置は、印刷中のジョブと優先度が高いジョブとが同一のリソースを使用する場合に、印刷中のジョブの終了を待ち合わせることができる。しかし、これは、実際のプリンタでは実現できない場合がある。
実施例3では、ジョブによって使用されるリソースに関する情報を含む印刷条件は、入力データとは別の情報として与えられるか、あるいは、入力データの先頭にPDLの解釈を必要とせずに検知可能な情報として埋め込まれていることを前提とする。しかし、印刷条件は、PDL解釈部によって処理をなされた結果からしか知ることができない場合がある。この場合には、優先度が高いジョブに対してPDL解釈部によるPDL解釈処理を実行する前の段階で、優先度が高いジョブと印刷中ジョブとが同一のリソースを使用するかどうかを判断することはできない。
このような問題に対処するため、本実施例に従う画像形成装置は、ある特定のリソースを占有する印刷方式のジョブが実行されている最中に、優先度が高いジョブが入力される場合には、必ず印刷中ジョブの終了を待ち合わせてから、優先度が高いジョブの出力処理を行うよう構成される。
図15は、本実施例に従う画像形成装置のジョブ処理動作フローの一例を示す。
通信制御部51よりジョブ管理部52へ新たなデータが送信されると、ジョブ管理部52は、実施例1において説明したように優先度を決定する(図5のステップS101)。決定された優先度が、実行中のPDL解釈処理及び出力処理の夫々の対象ジョブよりも高い場合には、データが送信された時点でPDL解釈部において実行されているPDL解釈処理が一時停止(実施例1)又は終了(実施例2)される。
その後、PDL解釈処理が一時停止又は終了すると、ステップS801において、ジョブ管理部52は、出力順記憶部521に記憶された(図9のような)データから、エンジン42で出力処理を実行されているジョブがあるかどうかを確認する。実行中の出力処理がないならば、ステップS805へ進む。
一方、エンジン42において出力処理が実行されている場合には、ステップS802において、ジョブ管理部52は、更に、出力順記憶部521に記憶されたデータから、エンジン42で実行中の出力処理によって画像形成装置の特定のリソースが占有されているかどうかを確認する。いずれのリソースも占有されていないならば、ステップS803に進む。ステップS803において、ジョブ管理部52は、実行中の他のジョブよりも優先度が高い入力データが優先して処理されるように、出力順変更部523によって出力順記憶部521に記憶される出力順序を変更するとともに、要求送信部525によりエンジン制御部56へ印刷停止要求を送信し、エンジン42によって実行中の出力処理を一時停止させる。
一方、特定のリソースが占有されている場合には、ステップS804において、ジョブ管理部52は、実行中の出力処理が終了した後に優先度が高い入力データが優先して処理されるように、出力順変更部523によって出力順記憶部521に記憶される出力順序を変更するとともに、エンジン42によって実行中の出力処理に関する終了通知がエンジン制御部56から送信されるまで待機する。
実行中の出力処理が一時停止又は終了すると、ステップS805において、ジョブ管理部52は、要求送信部525によりPDL制御部524を介して、先にPDL解釈処理を実行していたPDL解釈部とは別のPDL解釈部へPDL解釈開始要求を送信し、通信制御部51より入力された優先度が高いデータに対するPDL解釈処理を開始させる。更に、ジョブ管理部52は、このPDL解釈処理の結果得られた画像データを印刷するよう、要求送信部525によりエンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42による出力処理を開始する。
なお、好ましくは、画像形成装置の処理効率を高めるために、先に実行されていた出力処理の終了後に優先度が高いデータに対するPDL解釈処理及び出力処理を並行して実行するのではなく、先に実行されていたPDL解釈処理が一時停止又は終了した直後に先行して優先度が高いデータに対してPDL解釈処理を実行しても良い。
本実施例では、印刷中ジョブと優先度が高いジョブとが同一のリソースを使用する場合に必ず印刷中ジョブの終了を待ち合わせることにより、PDL解釈部によって処理をなされた結果からしかジョブのリソースに関する情報を知ることができない場合に対応することができる。しかし、これに限らず、優先度が高いジョブの印刷結果に制約を付けることにより対応することもできる。
この場合、画像形成装置は、ある特定のリソースを占有する印刷方式のジョブが実行されている最中に、優先度が高いジョブが入力される場合には、データ入力時点で直ちに印刷中ジョブを一時停止して優先度が高いジョブの処理を開始し、優先度が高いジョブの使用するリソースと印刷中ジョブが占有するリソースとが同じであると分かった段階で、出力制御部によってその機能設定(例えば、ステープル。)を解除して、優先度が高いジョブの印刷を完了させるよう構成される。ただし、このような画像形成装置では、優先度が高いジョブに対する出力処理を最短で割り込ませることが可能となる代わりに、設定された印刷条件通りに印刷が実行されることは保証されなくなる。従って、実際には、PDL解釈部によって処理をなされた結果からしかリソースに関する情報を知ることができない場合には、上記どちらの方法で対応するかをユーザが選択できるようにすることが望ましい。
以上、本実施例の画像形成装置は、ジョブの印刷条件をPDL解釈部によって処理をなされた結果からしか知ることができないために、優先度が高いジョブに対するPDL解釈処理の開始前に、実行中の印刷出力処理が一時停止不可能であるかどうかを検出できない場合には、必ずその印刷出力処理が終了した後に優先度が高いジョブが処理されるよう出力順序を制御することにより、優先度が高い後のジョブを先に処理することを保証できる。
ここまでの実施例では、PDL解釈処理が一時停止又は終了した後に出力処理が一時停止又は終了する方法を考えてきた。しかし、実施例4のように必ず印刷中ジョブの終了を待ち合わせてから、優先度が高いジョブの出力処理を行うよう構成される画像形成装置では、PDL展開中のジョブと印刷中ジョブが同一であって、印刷中ジョブが特定のリソースを占有している場合に問題が生ずることがある。
実施例4において、PDL解釈部が割り込み処理に対応している場合、PDL解釈部でPDL解釈処理を実行中のジョブよりも優先度が高いジョブが入力されると、その時点に実行中のPDL解釈処理は、入力された新たなジョブを優先して処理するために一時停止される。この場合に、優先度が高いジョブが入力された時点に実行中のPDL解釈処理及び出力処理の夫々の対象ジョブが同一のジョブであるならば、PDL解釈処理が完了していない状態で出力処理を完了させることは不可能である。この場合、ジョブ管理部はエンジン制御部から印刷終了通知を受けることができず、画像形成装置はデッドロックに陥って、いつまでも優先度が高いジョブの出力処理を実行することができない。このデッドロックを検知して、PDL解釈処理を再開することで問題を解決することも可能であるが、その場合にはPDL解釈処理の実行及び一時停止を無駄に行うこととなる。
このような問題に対処するために、本実施例の画像形成装置は、PDL解釈処理を一時停止する前に、実行中のPDL解釈処理及び出力処理の夫々の対象ジョブが同一であるかどうかを検知することができるよう構成される。
図16は、本実施例に従う画像形成装置のジョブ処理動作フローの一例を示す。
通信制御部51よりジョブ管理部52へ新たなデータが送信されると、ジョブ管理部52は、実施例1において説明したように優先度を決定される(図5のステップS101)。決定された優先度が、実行中のPDL解釈処理及び出力処理の夫々の対象ジョブよりも高い場合には、ステップS901において、ジョブ管理部52は、出力順記憶部521に記憶された(図9のような)データから、実行中のPDL解釈処理及び出力処理の夫々の対象ジョブが同一であるかどうかを確認する。
いずれかのPDL解釈部でPDL解釈処理をされているジョブが、エンジン42で出力処理をされているジョブと同一でないことが確認された場合には、ステップS903において、ジョブ管理部52は、要求送信部525により、現在PDL解釈処理を実行中であるPDL解釈部に対して、PDL制御手段524を介してPDL解釈処理要求を送信し、実行中のPDL解釈処理を一時停止する。更に、ステップS904において、ジョブ管理部52は、要求送信部525によりエンジン制御部56へ印刷停止要求を送信し、エンジン42で実行中の出力処理を一時停止させる。
一方、いずれかのPDL解釈部でPDL解釈処理をされているジョブが、エンジン42で出力処理をされているジョブと同一である、即ち、PDL解釈部でPDL解釈処理をされたジョブが並行して出力処理をされていることが確認された場合には、ステップS902において、ジョブ管理部52は、更に、出力順記憶部521に記憶されたデータから、エンジン42において実行中の出力処理によって画像形成装置の特定のリソースが占有されているかどうかを確認する。いずれのリソースも占有されていないならば、ステップS903に進む。
一方、特定のリソースが占有されていることが確認された場合には、ステップS905において、ジョブ管理部52は、実行中の出力処理が終了した後に優先度が高い入力データが優先して処理されるように、出力順変更部523によって出力順記憶部521に記憶される出力順序を変更するとともに、エンジン42によって実行中の出力処理に関する終了通知がエンジン制御部56から送信されるまで待機する。
実行中の出力処理が一時停止又は終了すると、ステップS906において、ジョブ管理部52は、要求送信部525によりPDL制御部524を介して、先にPDL解釈処理を実行していたPDL解釈部とは別のPDL解釈部へPDL解釈開始要求を送信し、通信制御部51より入力された優先度が高いデータに対するPDL解釈処理を開始させる。更に、ジョブ管理部52は、このPDL解釈処理の結果得られた画像データを印刷するよう、要求送信部525によりエンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42による出力処理を開始する。
なお、ステップS905において印刷中ジョブの印刷終了を待ち合わせる場合、その間に同一のジョブに対するPDL解釈処理が終了するが、次に、優先度が高いジョブを処理する必要があるので、ジョブの投入順に従って次のジョブを処理することはない。また、ステップS906において優先度が高いジョブに対してPDL解釈処理及び出力処理を並行して実行しているが、好ましくは、画像形成装置の処理効率を高めるために、PDL解釈処理に関しては、優先度が低いジョブのPDL解釈処理の終了次第、ステップS905で印刷終了を待ち合わせている間に開始しても良い。
また、本実施例に対して、PDL解釈部が割り込み処理に対応していない場合の処理(実施例2)を組み合わせる場合には、図16のステップS903の処理を、図10のステップS401〜S403の処理と置き換えれば良い。
図17は、本実施例に従う画像形成装置において、実行中のPDL解釈処理及び印刷出力処理の夫々の対象ジョブが同一である場合の各モジュール間の動作フローの一例を示す。なお、PDL解釈部は、割り込み処理に対応しているとする。
最初に、ステップS1001において、通信制御部51からジョブ管理部52へデータが入力される。このとき、エンジン42ではエンジン制御部56によって第1のジョブの出力処理を実行中であり、また、第1のPDL解釈部53aではPDL制御部524によって同じ第1のジョブのPDL解釈処理を実行中である。入力されたデータの出力に関する第2のジョブの優先度は、第1のジョブの優先度よりも高い。第1のPDL解釈部53aでPDL解釈処理をされているジョブがエンジン42で出力処理をされてないジョブとは別のジョブであるならば、ジョブ管理部52は、PDL制御部524により第1のPDL解釈部53aが割り込み処理に対応していることを検出すると、実施例2〜4のように、第1のPDL解釈部53aに対してPDL解釈停止要求を送信して、実行中のPDL解釈処理を一時停止させる。しかし、本実施例では、ジョブ管理部52は、ステップS1002において第1のPDL解釈部53aがジョブ管理部52へ第1のジョブに関するPDL解釈処理終了通知を送信するまで待機する。
更に、ジョブ管理部52は、出力順記憶部521に記憶された(図9のような)データから、エンジン42で実行中の出力処理によって占有されている画像形成装置の特定のリソースが、優先度が高い第2のジョブの出力処理のために使用されることを検出する場合に(実施例3参照。)、ステップS1003においてエンジン制御部56がジョブ管理部52へ第1のジョブに関する印刷終了通知を送信するまで待機する。
エンジン42による第1のジョブに対する出力処理が終了した後、ステップS1004において、ジョブ管理部52は、第2のPDL解釈部53bへPDL解釈開始要求を送信し、通信制御部51により入力されたデータに関する第2のジョブのPDL解釈処理を開始させる。続けて、ジョブ管理部52は、ステップS1005において、第2のPDL解釈部53bによって第2のジョブに対して実行されたPDL解釈処理の結果得られた画像データを印刷するよう、エンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42によって第2のジョブの出力処理を開始する。
その後、第2のPDL解釈部53bによる第2のジョブに対するPDL解釈処理が終了すると、ステップS1006において、第2のPDL解釈部53bは、ジョブ管理部52へPDL解釈終了通知を送信する。これによって、ジョブ管理部52は、第2のPDL解釈部53bによる処理が終了したことを認識することができる。
更に、エンジン42による第3のジョブに対する出力処理が終了すると、ステップS1007において、エンジン制御部56は、ジョブ管理部52へ印刷終了通知を送信する。これによって、ジョブ管理部52は、出力順序において先頭であった優先度が高いデータの印刷が終了したことを認識し、出力順記憶部521に格納されている先頭データを破棄する。
以上、本実施例の画像形成装置は、優先度が高いジョブが入力された時点で実行中のPDL解釈処理及び印刷出力処理の夫々の対象ジョブが同一であるかどうかを検出し、その結果に従って優先度が高いジョブが処理されるよう出力順序を制御することにより、画像形成装置がデッドロックに陥ることを回避しながら、優先度が高いジョブを次のジョブとして割り込ませることを保証できる。
以上の実施例では、優先度が高いジョブが投入された時点でPDL解釈処理又は印刷出力処理を一時停止することができない場合に、優先度が高いジョブを次に実行されるジョブとして割り込ませることを保証するための方法について述べた。しかし、実際には、印刷出力処理に関しては、優先度が高いジョブをそれが投入された時点に印刷中のジョブの次に割り込ませるということが必ずしも保証されない。これは、PDL解釈処理及び印刷出力処理のいずれの動作も、ジョブ管理部からの一時停止要求を受けて直ちに停止することできるわけではないことに因る。例えば、PDL解釈処理に関しては、PDL展開途中のページは展開が完了するまでは停止することができない。また、印刷出力処理に関しては、給紙を開始した用紙は、それがエンジン内に残っている状態でエンジンを停止させることが不可能であるため必ず排紙される必要があり、従って、この排紙動作の間は停止することができない。このように、PDL解釈処理及び印刷出力処理のいずれも、一時停止要求発生後、実際に停止するまでにタイムラグが生ずる。この結果、PDL解釈処理の一時停止要求発生後、実際にPDL解釈処理の一時停止が完了するまでの間に、他のジョブの印刷出力処理が完了したならば、通常は、次の印刷待ちジョブの印刷出力処理が開始されてしまうこととなる。例えば、次の印刷待ちジョブが画像形成装置の特定のリソースを占有し、且つ、大量のページを印刷するジョブであったならば、この印刷出力処理を一時停止することができないために、優先度が高いジョブの出力までに長時間待たされることになる。
このような問題に対処するために、本実施例の画像形成装置は、PDL解釈処理の一時停止後に印刷出力処理の一時停止を行うのではなく、それらの一時停止を同時に又は連続して行うよう構成される。
図18は、本実施例に従う画像形成装置において、優先度が高いジョブが入力された時点に実行中のPDL解釈処理及び印刷出力処理の夫々に対して同時に又は連続して一時停止要求を行う場合の各モジュール間の動作フローの一例を示す。なお、PDL解釈部は、割り込み処理に対応しているとする。
最初に、ステップS1101において、通信制御部51からジョブ管理部52へデータが入力される。このとき、エンジン42ではエンジン制御部56によって第1のジョブの出力処理を実行中であり、また、第1のPDL解釈部53aではPDL制御部524によって第2のジョブのPDL解釈処理を実行中である。入力されたデータの出力に関する第3のジョブの優先度は、第1のジョブ及び第2のジョブの夫々の優先度よりも高い。ジョブ管理部52は、PDL制御部524により第1のPDL解釈部53aが割り込み処理に対応していることを検出すると、ステップS1102において、要求送信部525によりPDL制御部524を介して、第1のPDL解釈部53aに対してPDL解釈停止要求を送信する。
実施例3のように、PDL解釈処理がジョブ管理部52からの一時停止要求によって直ちに停止されるならば、ジョブ管理部52は、第1のPDL解釈部53aへPDL解釈停止要求を送信した直後に、新たに入力された第3のジョブのPDL解釈処理を実行するよう第2のPDL解釈部53bに要求することができる(図14参照。)。しかし、上述したように、実際の画像形成装置では、実行中のPDL解釈処理の内容により一時停止要求発生後から実際に処理が停止するまでにタイムラグが存在することある。これにより、第2のジョブに対するPDL解釈処理の一時停止よりも、エンジン42での第1のジョブに対する出力処理の終了の方が早かった場合、この時点で、新たに入力された第3のジョブに対するPDL解釈処理は依然として開始されていないので、既にPDL解釈処理が完了した他のジョブが第3のジョブよりも先に印刷出力処理をされることとなる。このような事態となることを防ぐために、ステップS1102と同時に又は連続して、ステップS1103において、ジョブ管理部52は、要求送信部525によりエンジン制御部56へ印刷停止要求を送信する。
その後、エンジン42による第1のジョブに対する出力処理が終了すると、ステップS1104において、エンジン制御部56は、ジョブ管理部52へ印刷終了通知を送信する。この通知を受けて、ジョブ管理部52は、ステップS1105において第1のPDL解釈部53aによる第1のジョブのPDL解釈処理が一時停止するまで待機し、PDL解釈処理が一時停止された後、ステップS1106において、要求送信部525によりPDL制御部524を介して第2のPDL解釈部53bへPDL解釈開始要求を送信し、通信制御部51により入力されたデータに関する第3のジョブのPDL解釈処理を開始させる。
更に、ジョブ管理部52は、ステップS1107において、第2のPDL解釈部53bによって第3のジョブに対して実行されたPDL解釈処理の結果得られた画像データを印刷するよう、要求送信部525によりエンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42によって第3のジョブの出力処理を開始する。
その後、第2のPDL解釈部53bによる第3のジョブに対するPDL解釈処理が終了すると、ステップS1108において、第2のPDL解釈部53bは、ジョブ管理部52へPDL解釈終了通知を送信する。これによって、ジョブ管理部52は、第2のPDL解釈部53bによる処理が終了したことを認識し、次に、ステップS1109において、要求送信部525によりPDL制御部524を介して第1のPDL解釈部53aへPDL処理再開要求を送信し、先のステップS1105において一時停止された第2のジョブのPDL解釈処理を再開させる。
更に、エンジン42による第3のジョブに対する出力処理が終了すると、ステップS1110において、エンジン制御部56は、ジョブ管理部52へ印刷終了通知を送信する。これによって、ジョブ管理部52は、出力順序において先頭であった優先度が高いデータの印刷が終了したことを認識し、出力順記憶部521に格納されている先頭データを破棄する。
以上、本実施例の画像形成装置は、PDL解釈処理又は印刷出力処理のいずれかが一時停止できない状態で他の処理が終了してしまう場合にも、いずれの処理に対しても停止要求が行われていることによって次のジョブの処理開始は必ず待機状態となり、優先度が高いジョブを次のジョブとして割り込ませることを保証できる。
実施例6では、PDL解釈処理及び印刷出力処理に対して同時に又は連続して一時停止要求を行うことにより、一時停止要求発生後から実際に処理が停止されるまでのタイムラグに起因する問題に対応することができる。しかし、実施例6に従う画像形成装置は、PDL解釈部が割り込み処理に対応している場合には提供され得るが、PDL解釈部が割り込み処理に未対応である場合には問題を生ずる。
PDL解釈部が割り込み処理に未対応である場合には、そのPDL解釈部で処理中のジョブは全ての処理が完了した後に、優先度が高いジョブに対するPDL解釈処理が開始される。一方、印刷出力処理が一時停止要求を受けて一時停止可能であるならば、印刷中ジョブのための画像データを格納している領域(メモリ又はHDDの領域)が開放されないまま残ることとなる。この場合に、一時停止不可能なPDL解釈処理中のジョブが大量のページ数又はメモリを消費するようなデータであるならば、印刷中ジョブが印刷を終了して領域を開放しない限り、PDL解釈処理中のジョブのための充分な画像領域を確保することができず、PDL解釈処理を終了させることができない状態となり、画像形成装置はデッドロックに陥る可能性がある。
このような問題に対処するために、本実施例の画像形成装置は、PDL解釈部が割り込み処理に未対応である場合に限り、実行中のPDL解釈処理及び印刷出力処理に対して同時に一時停止を行わずに、PDL解釈処理が完了した時点で印刷出力処理を一時停止させるように構成される。
図19は、本実施例に従う画像形成装置において、優先度が高いジョブが入力された時点に実行中のPDL解釈処理が完了した後に印刷出力処理に対して一時停止要求を行う場合の各モジュール間の動作フローの一例を示す図である。
最初に、ステップS1201において、通信制御部51からジョブ管理部52へデータが入力される。このとき、エンジン42ではエンジン制御部56によって第1のジョブの出力処理を実行中であり、また、第1のPDL解釈部53aではPDL制御部524によって第2のジョブのPDL解釈処理を実行中である。入力されたデータの出力に関する第3のジョブの優先度は、第1のジョブ及び第2のジョブの夫々の優先度よりも高い。ジョブ管理部52は、PDL制御部524により第1のPDL解釈部53aが割り込み処理に対応していないことが検出されるならば、第1のPDL解釈部53aで実行中の第2のジョブのPDL解釈処理が終了するまで、第3のジョブのPDL解釈処理の開始を待ち合わせる。
その後、第1のPDL解釈部52aによる第2のジョブのPDL解釈処理が終了すると、ステップS1202において、第1のPDL解釈部53aは、ジョブ管理部52へPDL解釈終了通知を送信する。この通知を受けて、ジョブ管理部52は、ステップS1203において、他のジョブに対して第3のジョブが優先して出力されるように、出力順変更部523によって出力順記憶部521に記憶された出力順序を変更するとともに、要求送信部525によりエンジン制御部56へ印刷停止要求を送信する。
その後、ステップS1204においてエンジン42による第1のジョブに対する出力処理が一時停止すると、ステップS1205において、ジョブ管理部52は、要求送信部525によりPDL制御部524を介して第2のPDL解釈部53bへPDL解釈開始要求を送信し、通信制御部51により入力されたデータに関する第3のジョブのPDL解釈処理を開始させる。
更に、ジョブ管理部52は、ステップS1206において、第2のPDL解釈部53bによって第3のジョブに対して実行されたPDL解釈処理の結果得られた画像データを印刷するよう、要求送信部525によりエンジン制御部56へ印刷開始要求を送信する。これを受けて、エンジン制御部56は、エンジン42によって第3のジョブの出力処理を開始する。
その後、第2のPDL解釈部53bによる第3のジョブに対するPDL解釈処理が終了すると、ステップS1207において、第2のPDL解釈部53bは、ジョブ管理部52へPDL解釈終了通知を送信する。これによって、ジョブ管理部52は、第2のPDL解釈部53bによる処理が終了したことを認識することができる。
更に、エンジン42による第3のジョブに対する出力処理が終了すると、ステップS1208において、エンジン制御部56は、ジョブ管理部52へ印刷終了通知を送信する。これによって、ジョブ管理部52は、出力順序において先頭であった優先度が高いデータの印刷が終了したことを認識し、出力順記憶部521に格納されている先頭データを破棄する。次に、ステップS1209において、ジョブ管理部52は、エンジン制御部56へ印刷再開要求を送信し、先のステップS1204において一時停止された第1のジョブの出力処理を再開させる。
以上、本実施例の画像形成装置は、PDL解釈部が割り込み処理に対応していない場合には、PDL解釈処理が完了した時点で印刷出力処理に対して一時停止要求を行うことにより、画像形成装置がデッドロックに陥ることを回避しながら、優先度が高いジョブを次のジョブとして割り込ませることを保証できる。
[変形例]
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨を損なわない範囲で変更することが可能である。
例えば、上述した本発明の画像形成装置は、ホスト端末からネットワークを介して送信されるデータに対する割り込み処理に関して説明されたが、画像形成装置自体により読み取られたデータも、同様に、画像形成装置に先に入力されたデータに割り込んで、優先的に出力されうる。
また、本発明は、画像形成装置のハードディスク(HDD)、読出し専用メモリ(ROM)等のメモリに格納されたプログラムによって実現されても良い。即ち、上述したような画像形成装置の割り込み処理を実現する画像形成装置用プログラムをコンピュータ等の情報処理装置で実行することにより、本発明の画像形成装置を実現することができる。
本発明の実施形態に従う画像形成装置を含む画像形成システムの構成の一例である。
本発明の実施形態に従う画像形成装置の一例としてのレーザプリンタのハード構成を示すブロック図である。
本発明の実施形態に従う画像形成装置のモジュール構成図の一例である。
実施例1に従う画像形成装置において出力順記憶部の出力順序変更前後のデータ構成の一例である。
実施例1に従う出力順序変更フローの一例を示す。
実施例1に従う画像形成装置においてPDL解釈処理終了後のジョブ管理部の動作フローの一例を示す。
実施例1に従う画像形成装置において優先度が高いデータが入力されたことにより出力順序が変更される場合の各モジュール間の動作フローの一例である。
Rawポート番号、プロトコル又はプリンタ名によって優先度を決定する優先度決定テーブルの一例である。
実施例2に従う画像形成装置において出力順記憶部の出力順序変更前後のデータ構成の一例である。
実施例2に従う画像形成装置のジョブ処理動作フローの一例を示す。
実施例2に従う画像形成装置においてPDL解釈部が割り込み処理に未対応である場合の各モジュール間の動作フローの一例を示す。
実施例2に従う画像形成装置においてPDL解釈部のディレクトリ構造及び設定ファイルの記述を一例として表す。
実施例3に従う画像形成装置のジョブ処理動作フローの一例を示す。
実施例3に従う画像形成装置において、実行中の印刷出力処理が占有しているリソースを使用する優先度が高いジョブが入力される場合の各モジュール間の動作フローの一例を示す。
実施例4に従う画像形成装置のジョブ処理動作フローの一例を示す。
実施例5に従う画像形成装置のジョブ処理動作フローの一例を示す。
実施例5に従う画像形成装置において、実行中のPDL解釈処理及び印刷出力処理の夫々の対象ジョブが同一である場合の各モジュール間の動作フローの一例を示す。
実施例6に従う画像形成装置において、優先度が高いジョブが入力された時点に実行中のPDL解釈処理及び印刷出力処理の夫々に対して同時に又は連続して一時停止要求を行う場合の各モジュール間の動作フローの一例を示す。
実施例7に従う画像形成装置において、優先度が高いジョブが入力された時点に実行中のPDL解釈処理が完了した後に印刷出力処理に対して一時停止要求を行う場合の各モジュール間の動作フローの一例を示す図である。
符号の説明
11 画像形成装置
12 ホスト端末
13 ネットワーク
41 通信媒体
42 エンジン
43 操作パネル
44 コントローラ
51 通信制御部
511 入力部
52 ジョブ管理部
521 出力順記憶部
522 優先度決定部
523 出力順変更部
524 PDL制御部
525 要求送信部
53a,53b,53c PDL解釈部
54 システム制御部
541 印刷パラメータ保存部
55 メモリ制御部
56 エンジン制御部
561 出力制御部
57 パネル制御部
58 パネル管理部