(57)【要約】【課題】処理の実行順序を並べ替える場合にも、処理結果により他の処理の処理内容に影響を与えるかどうかといった他の処理への影響度を踏まえて並べ替えて処理させる。【解決手段】受信手段により受信されたコマンドに対応する処理が、当該処理の処理結果が他の処理の処理内容に影響を与えるものとして予め指定された処理である場合、スケジューリング手段によるスケジュールに関わらず、その指定された処理を割り込みにより先に実行させる割り込み手段を備えるようにする。【選択図】図１
2011039922.tif 000002
【特許請求の範囲】
【請求項１】
コマンドを受信する受信手段と、
予め定められた時間毎に各処理を実行させるスケジューリング手段と、
前記受信手段により受信されたコマンドに対応する処理が、当該処理の処理結果が他の処理の処理内容に影響を与えるものとして予め指定された処理である場合、前記スケジューリング手段によるスケジュールに関わらず、該指定された処理を割り込みにより先に実行させる割り込み手段と、
を備えたことを特徴とするコマンド実行スケジュール制御方式。
【請求項２】
前記予め指定された処理に対応するコマンドが予め登録される優先コマンド登録テーブルを備え、
前記割り込み手段は、前記優先コマンド登録テーブルに登録されたコマンドが前記受信手段により受信された場合、該受信されたコマンドに対応する処理を割り込みにより先に実行させることを特徴とする請求項１記載のコマンド実行スケジュール制御方式。
【請求項３】
前記受信手段は、印刷装置から非同期に送信されるコマンドを受信することを特徴とする請求項１または２記載のコマンド実行スケジュール制御方式。
【請求項４】
コマンドを受信する受信手順と、
予め定められた時間毎に各処理を実行させるスケジューリング手順と、
前記受信手順により受信されたコマンドに対応する処理が、当該処理の処理結果が他の処理の処理内容に影響を与えるものとして予め指定された処理である場合、前記スケジューリング手順によるスケジュールに関わらず、該指定された処理を割り込みにより先に実行させる割り込み手順と、
をコンピュータに実行させることを特徴とするコマンド実行スケジュール制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば印刷制御装置などでのコマンド実行順序を制御するコマンド実行スケジュール制御方式およびプログラムに関する。
【背景技術】
【０００２】
一般に、印刷制御装置において印刷装置から送信されるコマンドは印刷進行に関するもの、エラー情報に関するものと多種にわたり、各々のコマンドに対応した処理が用意される。
【０００３】
印刷装置から受信されたコマンドは、受信処理部により、各コマンドに対応する処理（タスク）として順次登録され、逐次実行される。これらの処理は複数存在するため、印刷制御装置のスケジューリング機能により一定時間毎に実行されるのが一般的である。
【０００４】
各処理がスケジューリングされて実行されるため、複数個のコマンドを短い時間で受信した場合は、受信した順番通りに処理が完了するとは限らない。これは各処理のスケジューリング時間が違う場合に発生する。
例えば、処理Ａと処理Ｂは１秒でスケジューリングされていて、処理Ｃが２秒でスケジューリングされていたとする。この時、処理Ａに対応したコマンドＡ１、処理Ｂに対応したコマンドＢ１、及び処理Ｃに対応したコマンドＣ１を０．１秒間隔で、「Ｃ１→Ａ１→Ｂ１」の順番で受信したとしても、処理Ｃのスケジューリング時間が処理Ａ及び処理Ｂのスケジューリング時間の倍であるため、これらのコマンド実行順は、「処理Ａ→処理Ｂ→処理Ｃ」或いは「処理Ｂ→処理Ａ→処理Ｃ」となる可能性が高い。
【０００５】
また、処理実行方法として、通知された要求コマンドを、予め設定された優先順位に応じて、その優先順位毎の待ち行列に通知される順に配列し、処理を実行すべき処理対象の要求コマンドを、優先順位の高い待ち行列から順に且つ各待ち行列の先頭から順に検索するようにしたものがある（例えば、特許文献１参照）。
【０００６】
また、本出願人による印刷制御プログラムとして、プリンタに印刷動作を実行させる印刷ジョブが利用されたか否かを区別する識別情報を有する印刷ログを生成し、既に利用した印刷ジョブを未利用の印刷ジョブと区別するようにしたものがある（例えば、特許文献２参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した一般的なスケジューリング機能の例では、処理Ａで処理するコマンドＡ１が処理Ｃで処理するコマンドＣ１の結果により処理内容が変わる場合、処理Ｃの内容が反映されて無い可能性が高いため、問題となる虞があった。例えば印刷システムなどでは、エラーの種類に応じてリカバリー内容が変わるのが一般的である。例えば、コマンドＣ１の結果内容がエラー種類（用紙ジャム、用紙切れ等の情報）であり、コマンドＡ１の内容がページキャンセル情報であり、コマンドＡ１の処理はエラー種類の情報により必要なリカバリー処理を実行する場合、上述の例のような実行順では正しいリカバリー処理が実行されない問題があった。
【０００８】
こうした問題に対して、各処理のスケジューリング時間を同じ時間に設定すれば問題の発生を防止できる可能性は高いが、「処理Ａ→処理Ｂ→処理Ｃ」のようにラウンドロビン型で順番にスケジューリングされるようなケースでは、コマンドを受信するタイミングによっては、依然として問題が生じる可能性が有る。
例えば、処理Ｃを抜けた後で短時間に「Ｃ１→Ａ１→Ｂ１」の順番でコマンドを受信した場合、コマンドＣ１の内容が反映されない状態でコマンドＡ１の処理が実行されることになってしまう。また、コマンドを短時間で受信しないケースであっても、例えば処理Ｃに対応するコマンドの受信間隔が非常に長い場合、処理Ｃの実行タイミングに入ってもコマンドが無い場合が生じ、結果として、何も処理を実行されずに処理Ｃを抜けることになってしまう。  
【０００９】
また、処理Ｃで処理するコマンドのうち特定のコマンドのみ（本例ではコマンドＣ１のみ）の緊急度が高いケースでは、スケジューリング時間が他の処理と同等になることで必要な処理が待たされてしまい、処理実行効率が悪くなる虞があった。
【００１０】
また、上述した特許文献１のものは、バッファのサービスの順番を一律に並び替えてしまうものであり、各サービスの因果関係（他の処理への影響度）に基づいてスケジューリングすることについてまで考慮されたものではなかった。
そのため、例えば、「処理Ａ→処理Ｂ→処理Ｃ」のラウンドロビン型スケジュールで、処理Ａが処理Ｃの影響を受ける場合に、処理Ｃを優先させるコマンドを受信すると、タイミングによって、処理Ａの結果が、処理Ｃの結果を踏まえた本来あるべき結果にならない問題があった。
【００１１】
また、上述した特許文献２のものは、印刷ジョブの処理順序を制御するスケジューリング機能についてまで考慮されたものではなかった。
【００１２】
本発明はこのような状況に鑑みてなされたものであり、処理結果により他の処理の処理内容に影響を与えるかどうかといった他の処理への影響度を踏まえて、処理の実行順序を決定することができるコマンド実行スケジュール制御方式およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
かかる目的を達成するために、本発明に係るコマンド実行スケジュール制御方式は、コマンドを受信する受信手段と、予め定められた時間毎に各処理を実行させるスケジューリング手段と、上記受信手段により受信されたコマンドに対応する処理が、当該処理の処理結果が他の処理の処理内容に影響を与えるものとして予め指定された処理である場合、上記スケジューリング手段によるスケジュールに関わらず、該指定された処理を割り込みにより先に実行させる割り込み手段と、を備えたことを特徴とする。
【００１４】
また、本発明に係るコマンド実行スケジュール制御プログラムは、コマンドを受信する受信手順と、予め定められた時間毎に各処理を実行させるスケジューリング手順と、上記受信手順により受信されたコマンドに対応する処理が、当該処理の処理結果が他の処理の処理内容に影響を与えるものとして予め指定された処理である場合、上記スケジューリング手順によるスケジュールに関わらず、該指定された処理を割り込みにより先に実行させる割り込み手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１５】
以上のように、本発明によれば、処理結果により他の処理の処理内容に影響を与えるかどうかといった他の処理への影響度をふまえて、処理の実行順序を決定することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態としてのコマンド制御モジュールを概略的に示すブロック図である。
【図２】各コマンドに対応する処理と実行周期の例を示す図である。
【図３】本実施形態によるソフトウェア割り込み処理の動作概略を示すフローチャートである。
【発明を実施するための形態】
【００１７】
次に、本発明に係るコマンド実行スケジュール制御方式およびプログラムを、印刷制御装置に適用した一実施形態について、図面を用いて詳細に説明する。
【００１８】
図１は、印刷制御装置におけるコマンド制御モジュールの構成図である。コマンド受信処理（１０１）は印刷装置から送信されてきたコマンド（印刷装置からの制御情報）を、対応する処理へメッセージ形式で送信する。対応する各処理（タスク）は、コマンド受信処理（１０１）から送信されてきたメッセージ形式のデータをＦＩＦＯ形式のキュー（１０３）に格納していく。
【００１９】
各タスクは、タスクスケジュール処理（１０２）により一定時間毎にスケジューリングされて実行権を与えられ、当該処理を実行する。例えば、タスクＡ（１０４）にデータ１→データ２→データ３の順にコマンド受信処理（１０１）からコマンドデータが送信されてきた場合、タスクＡは、タスクスケジュール処理（１０２）から実行権を与えられる都度、キュー（１０３）からデータ１→データ２→データ３の順にデータを取り出して処理を実行していく。処理の終了により実行権をタスクスケジュール処理（１０２）に返すことで、次のタスクに実行権が移行していくことになる。
【００２０】
図１に示すように、コマンド制御モジュールがタスクＡ（１０４）、タスクＢ（１０５）、タスクＣ（１０６）の３つから構成されているケースを考える。各タスクはタスクスケジュール処理（１０２）により一定時間毎に実行権を与えられてキュー（１０３）にコマンドデータが格納されていた場合は処理を実行し、コマンドデータが格納されていない場合は即時終了する。
【００２１】
タスクスケジュール処理（１０２）により実行権を与えられる間隔（以降、スケジューリング時間と称する。）は任意に設定可能であるが、通常は緊急度が高い、又はコマンド受信頻度が高い処理のスケジューリング時間を短く設定する。
【００２２】
図２に、各コマンドに対応する処理と実行周期の例を示す。
この図２では、説明のため、タスクＡ，タスクＢ，タスクＣの周期が同期した時点からＴ／２後に、コマンドＣ１を受信し、その後Ｔ／２後にコマンドＡ１、さらにＴ／２後にコマンドＢ１を受信した場合の例について示す。
【００２３】
この図２の例の場合、コマンドＡ１のＴ／２前に、コマンドＣ１を受信したが、コマンドＣ１の実行周期は４Ｔのため、次回コマンドＣ１が実行可能となるのは３．５Ｔ後であり、更に、コマンドＣ１の処理結果が得られるのは３．５Ｔ＋２．５Ｔの６Ｔ後となる。したがって、その間の処理ＡにはコマンドＣ１の処理結果は反映されないこととなる。
【００２４】
このように、本実施形態は、決まった周期で、コマンドＡ１、コマンドＢ１、コマンドＣ１が入ってくる場合の例ではなく、コマンドＣ１→（Ｔ／２）→コマンドＡ１→（Ｔ／２）→コマンドＢ１という間隔でコマンド受信した時に、タスクスケジュールにおいて、コマンドＡ１の対応処理ＡおよびコマンドＢ１の対応処理Ｂの実行周期が周期Ｔなのに対し、コマンドＣ１対応処理Ｃの実行周期が周期４Ｔと長いために、処理Ｃの結果が処理Ａに反映されなくなってしまうという問題への対処例を示すものである。
【００２５】
図１に示すコマンド制御モジュールの構成では、タスクＡ（１０４）とタスクＢ（１０５）のスケジューリング時間がＴに設定され、タスクＣ（１０６）はコマンド受信頻度が小さいためにスケジューリング時間が４Ｔに設定されているものとする。この場合、シングルタスク処理の場合、タスクＣ（１０６）が１回実行権を与えられる度に、タスクＡ（１０４）とタスクＢ（１０５）は２回ずつ処理を実行完了していることになる。
スケジューリングはタスクＡ（１０４）→タスクＢ（１０５）→タスクＣ（１０６）の順にラウンドロビン方式で巡回していくものとする。
【００２６】
コマンドＡ１、コマンドＢ１、コマンドＣ１は各々非同期に印刷装置より送信され、タスクＡのコマンドＡ１処理はタスクＣに対応したコマンドＣ１処理の実行結果により影響を受けるものとし、直近でコマンドＣ１受信によるタスクＣが実行されていない場合には、過去に処理された最新のコマンドＣ１処理の結果を使用する。
【００２７】
タスクＣ（１０６）が実行終了直後にタスクＣ（１０６）に対応したコマンドＣ１、タスクＡ（１０４）に対応したコマンドＡ１、タスクＢ（１０５）に対応したコマンドＢ１をＴ／２間隔で受信した場合を考える。各々のコマンドはコマンド受信処理（１０１）により対応したタスクに送信され、各タスクのキュー（１０３）に格納される。
【００２８】
一般的なスケジューリングでは、タスクＡ（１０４）とタスクＢ（１０５）のスケジューリング時間がＴであり、タスクＣ（１０６）のスケジューリング時間が４Ｔであるというスケジューリング時間の関係から、コマンド受信の順番であるタスクＣ（１０６）からの実行ではなく、タスクＡ（１０４）、タスクＢ（１０５）から実行されてしまう。
【００２９】
本実施形態では、コマンドＣ１はタスクＡ（１０４）に対応したコマンドＡ１処理実行結果に影響を与えるために、コマンド受信処理（１０１）内部にある優先コマンド登録テーブル（１０７）に予め登録されているコマンドとなっている。
【００３０】
コマンド受信処理（１０１）は、優先コマンド登録テーブル（１０７）にコマンドＣ１が登録されているために、タスクスケジュール処理（１０２）に対してソフトウェア割り込み（タスクＣ強制実行）を入れる。
タスクスケジュール処理（１０２）は、ソフトウェア割り込み（タスクＣ強制実行）が入ることでスケジューリングを保留状態にしてからソフトウェア割り込みの内容に対応したタスクＣ（１０６）に実行権を与える。
【００３１】
タスクＣ（１０６）は、コマンドＣ１の処理終了後、通常のスケジューリング機能に戻り、タスクスケジュール処理（１０２）により実行権を与えられたタスクＡ（１０４）がコマンドＡ１の処理を実行する。このタスクＡ（１０４）のコマンドＡ１処理は、直前に実行されたコマンドＣ１の実行結果が反映された正しい処理が実行されることになる。
【００３２】
タスクスケジュール処理（１０２）の１つの機能である上述したソフトウェア割り込み処理の概略フローを図３に示す。
【００３３】
コマンド受信処理（１０１）からソフトウェア割り込みの命令がない場合（ステップＳ１；Ｎｏ）、タスクスケジュール処理（１０２）は、通常のタスクスケジューリング処理を実行している。
【００３４】
コマンド受信処理（１０１）からソフトウェア割り込みの命令が入ると（ステップＳ１；Ｙｅｓ）、タスクスケジュール処理（１０２）は、それまでのスケジューリング情報をメモリに一旦退避させ（ステップＳ２）、実行権を移すタスクを割り込み命令のタスク（上述の例ではタスクＣ）に決定し（ステップＳ３）、その割り込み命令のタスク（上述の例ではタスクＣ）に実行権を与える（ステップＳ４）。
【００３５】
こうして割り込み命令の処理が実行され、実行が終了すると（ステップＳ５；Ｙｅｓ）、タスクスケジュール処理（１０２）は、上述したステップＳ２で一旦退避させたスケジューリング情報を復帰させ（ステップＳ６）、その復帰させたスケジューリング情報によりタスクスケジューリング処理を継続する（ステップＳ７）。
【００３６】
以上のように、本実施形態により、複数の処理を一定時間毎に実行するスケジューリング機能を有する印刷制御装置において、コマンド受信時に、受信されたコマンドが優先コマンド登録テーブル（１０７）に予め登録されていればソフトウェア割り込み処理を行うことで、緊急度の高いコマンド受信時に本来のスケジューリングを保留状態にし、対応する緊急度の高い処理を実行させることが可能となる。
【００３７】
優先コマンド登録テーブル（１０７）には複数のコマンドを登録することが可能であり、さらにはソフトウェア割り込み処理は複数の処理に対応している。そのため、例えば、コマンドＡ４受信時にはタスクＡ（１０４）に実行権を移行し、コマンドＢ２受信時にはタスクＢ（１０５）に実行権を移行する、といった柔軟な対応も可能である。
【００３８】
また、優先コマンド登録テーブル（１０７）に、処理結果が他のタスクの処理内容に影響を与えるタスクに対応したコマンドを予め登録することで、そのコマンドが受信された場合に対応するタスクをソフトウェア割り込みにより強制実行させることができる。このため、そのタスクの処理結果により処理内容が影響を受けるタスクを、本来の望ましい処理内容により実行させることができる。
優先コマンド登録テーブル（１０７）へのコマンド登録は、ユーザが不図示の入力手段から事前に手入力で登録する方法など、各種の方法であってよい。
【００３９】
このように、本実施形態は、一定の順番で巡回している処理実行順を、「受信したサービス内容に応じて変える」ことを特徴とするものである。このため、例えば、「タスクＡ→タスクＢ→タスクＣ」の実行順を、優先コマンド登録テーブル（１０７）に登録されたコマンドに対応するタスクＣのサービスを優先させたい場合に、「タスクＣ→タスクＡ→タスクＢ」のように変更することができる。
【００４０】
このように、本実施形態は、ラウンドロビン型のような一定時間巡回方式によるスケジューリングで、各処理に制御が移行する印刷制御装置において、高優先度のコマンド受信時に対応する処理を実行させるような機能を実装することで、処理実行効率を向上させると共に、処理実行順序不正による障害発生を防ぐことができる。
【００４１】
また、本実施形態は、コマンドを受信する手段と、印刷装置から受信したコマンドに対応した処理を呼び出す手段と、複数の処理を一定時間毎に実行するスケジューリング機能を有する印刷制御装置について、優先コマンド受信時にソフトウェア割り込み機能を呼び出す処理と優先コマンドを登録したテーブルを用意することで、優先コマンドを印刷装置から受信した場合に、対応した処理がスケジューリング機能により回ってくるまで待たずに、ソフトウェア割り込み機能により即時実行させることでリアルタイム処理を実現することを特徴としている。
【００４２】
なお、上述した各実施形態は本発明の好適な実施形態であり、本発明はこれに限定されることなく、本発明の技術的思想に基づいて種々変形して実施することが可能である。
【００４３】
例えば、上述した実施形態では、本発明を印刷制御装置に適用した例について説明したが、複数の処理をスケジューリングして実行させていく装置であればこの例に限定されず、各種の情報処理装置であっても本発明は同様に実現することができる。
【００４４】
また、上述した実施形態によるコマンド実行スケジュール制御方式を実現するための処理手順をプログラムとして記録媒体に記録することにより、本発明の実施形態による上述した各機能を、その記録媒体から供給されるプログラムによって、システムを構成するコンピュータのＣＰＵに処理を行わせて実現させることができる。
この場合、上記の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
すなわち、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体および該記録媒体から読み出された信号は本発明を構成することになる。
この記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ-ＲＯＭ、ＣＤ-Ｒ、ＣＤ-ＲＷ、ＤＶＤ-ＲＯＭ、ＤＶＤ-ＲＡＭ、ＤＶＤ-ＲＷ、ＤＶＤ+ＲＷ、磁気テープ、不揮発性のメモリーカード、ＲＯＭ等を用いてよい。
【００４５】
この本発明に係るプログラムによれば、当該プログラムによって制御される各種の情報処理装置に、上述した実施形態における各機能を実現させることができる。
【符号の説明】
【００４６】
１０１    コマンド受信処理
１０２    タスクスケジュール処理
１０３    キュー
１０４〜１０６    タスク（処理）
【先行技術文献】
【特許文献】
【００４７】
【特許文献１】特開平１０−７８８７７号公報
【特許文献２】特開２００２−３４２０５１号公報
【図１】
2011039922.tif 000003
【図２】
2011039922.tif 000004
【図３】
2011039922.tif 000005