(57)【要約】【課題】全ての処理を実行させながらも、優先して処理を行う処理については単位サイクルに処理時間内の実働率を上げ、プログラム自体の処理能力を向上させることのできるタスク管理方法を提供すること。【解決手段】複数の処理のうち特定の処理におけるジョブを優先して実行させる旨の命令を受けた場合に、前記命令を受信してから前記ジョブを完了するまでの間、前記複数の処理を順次実行する単位サイクルの処理時間内における前記特定の処理の実働率が前記命令を受信する前よりも大きくなるように、前記複数の処理について予め設定されていたタイマ値を変化させる補正処理を行う。【選択図】    図１
2004302986.tif 000002
【特許請求の範囲】
【請求項１】
プログラムが実行する複数の処理をそれぞれタスクに分割し、各処理のタスクを各処理に設定されたタイマ値に基づいて時分割で切り替え、前記複数の処理を所定の順番に従って実行するタスク管理方法であって、前記複数の処理のうち特定の処理におけるジョブを優先して実行させる旨の命令を受けた場合に、前記命令を受信してから前記ジョブを完了するまでの間、前記複数の処理を順次実行する単位サイクルの処理時間内における前記特定の処理の実働率が前記命令を受信する前よりも大きくなるように、前記複数の処理について予め設定されていたタイマ値を変化させる補正処理を行うことを特徴とするタスク管理方法。
【請求項２】
前記補正処理は、前記特定の処理については、予め設定されていたタイマ値を長大にし、および／または、その他の処理については、予め設定されていたタイマ値を短小にする制御を行うことを特徴とする請求項１に記載のタスク管理方法。
【請求項３】
前記プログラムはプリンタの動作制御のためのプログラムであり、前記プログラムが実行する複数の処理は、受信した記録情報を解析して実際の記録に用いる記録データに変換するメイン処理および前記メイン処理により形成した記録データに基づいてプリンタメカニズムを駆動するメカ処理の２つの処理を含むことを特徴とする請求項１または請求項２に記載のタスク管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムが実行する複数の処理を並列処理するためのタスク管理方法に関する。
【０００２】
【従来の技術】
一般に、コンピュータ、ファクシミリ等の出力装置として、記録媒体に文字や図形等の所望の画像を記録することのできる熱転写プリンタ、インクジェットプリンタ等の各種プリンタが、高印刷品質、低騒音、低コスト、メンテナンスの容易性等の理由により用いられている。
【０００３】
このような各種プリンタは、複数の処理を並列させて実行可能なプログラムを有し、前記プログラムに基づいて、このプリンタの動作制御がなされている。このようなプリンタの動作制御の一例について説明する。
【０００４】
このプリンタは、例えば、受信した記録情報を解析して実際の記録に用いる記録データに変換する第１処理と、この第１処理により形成した記録データに基づいてプリンタメカニズムを駆動する第２処理と、前記プリンタメカニズムのエラーの表示および解除を行う第３処理との３つの処理を並列させて実行するプログラムを有する。そして、前記プログラムは、複数の処理をそれぞれタスクに分割し、各処理のタスクを各処理に設定されたタイマ値に基づいて時分割で切り替え、前記複数の処理を所定の順番に従って実行する動作制御（以下、タスク管理という）を行なうようになされている。なお、タスクとは、前記プログラムの実行に伴う作業の単位をいう。
【０００５】
前記タスク管理は、まず、第１処理、第２処理および第３処理をそれぞれタスクに分割する。前記３つの処理は、第１処理の後に第２処理、第２処理の後に第３処理、そして第３処理の後は、再び前記第１処理という順序でそれぞれの処理が実行されるようになっており、前記第１処理の実行開始から第３処理の実行終了までが前記３つの処理を順次実行するための単位サイクルとされている。
【０００６】
そして、このタスク管理においては、まず第１処理のタスクを実行する。このとき、プリンタに搭載されているＣＰＵの汎用タイマにより、前記第１処理に予め設定された稼動切り替え時間値（以下、タイマ値という）に基づいて稼動時間を管理し、所定の時間が経過したときに、前記第１処理が終了していない場合であっても、前記第１処理を中断し、前記プログラムの切り替え処理によって強制的に次の処理である第２処理に切り替え、前記第２処理のタスクを実行する。この第２処理においても、前記汎用タイマにより、前記第２処理に予め設定されたタイマ値に基づいて稼動時間を管理し、所定の時間が経過したときに、前記第２処理が終了していない場合であっても、前記第２処理を中断し、前記プログラムの切り替え処理によって強制的に次の処理である第３処理に切り替え、そのタスクを実行する。さらに、この第３処理においても、前記汎用タイマにより、前記第３処理に予め設定されたタイマ値に基づいて稼動時間を管理し、所定の時間が経過したときに、前記第３処理が終了していない場合であっても、前記第３処理を中断し、前記プログラムの切り替え処理によって強制的に次の処理である前記第１処理に切り替え、そのタスクを実行する。
【０００７】
このように、各処理を所定の順番によって強制的に切り替えて時分割で実行することにより、前記第１処理、第２処理および第３処理の３つの処理を実行することができる。
【０００８】
【特許文献１】
特開２００１−１２１７８７号公報
【特許文献２】
特開２００３−３６１７７号公報
【０００９】
【発明が解決しようとする課題】
しかし、前述した従来のタスク管理方法においては、現在実行されている処理の次の処理に処理すべき事象（以下、ジョブという）がない場合であっても、切り替え処理により所定の順番になると無条件に前記次の処理へ切り替えられる。そして、前記次の処理においては、タスクに処理すべき事象がないことを確認し、所定のタイマ値に基づいた時間の経過を待った後に、前記プログラムの切り替え処理によりさらに後続の処理へ切り替えられる。このため、処理すべき事象がない処理において不要な時間を費やしていた。この結果、前記プリンタの処理効率が低下するという問題を有していた。
【００１０】
この問題点を解決する１つの方法として、本願の発明者は、前記特許文献２に開示したように、次の処理に処理すべき事象があるかないかを判断し、処理すべき事象がない場合にはその処理のタスクの順番をとばすこと、つまり、実行を削除することによりプリンタの動作制御の効率を向上させるタスクの管理方法を発明している。
【００１１】
前記特許文献２に開示した発明は、次の処理に処理すべき事象の有無で各処理のタスクの実行の有無が判断されるものであり、各処理の相互間における優先性（処理の軽重）を考慮するものではなかった。
【００１２】
本発明はこれらの点に鑑みてなされたものであり、全ての処理を実行させながらも、優先して処理を行う処理については単位サイクルの処理時間内の実働率を上げ、プログラム自体の処理能力を向上させることのできるタスク管理方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
前記目的を達成するため、本発明に係るタスク管理方法は、プログラムが実行する複数の処理をそれぞれタスクに分割し、各処理のタスクを各処理に設定されたタイマ値に基づいて時分割で切り替え、前記複数の処理を所定の順番に従って実行するタスク管理方法であって、前記複数の処理のうち特定の処理におけるジョブを優先して実行させる旨の命令を受けた場合に、前記命令を受信してから前記ジョブを完了するまでの間、前記複数の処理を順次実行する単位サイクルの処理時間内における前記特定の処理の実働率が前記命令を受信する前よりも大きくなるように、前記複数の処理について予め設定されていたタイマ値を変化させる処理を行うことを特徴とする。
【００１４】
この本発明に係るタスク管理方法によれば、全ての処理を実行させながらも、優先性の高いジョブを優先的に実働させることができ、前記ジョブを短時間で完了させることができる。
【００１５】
また、本発明に係るタスク管理方法は、前記処理は、前記特定の処理については、予め設定されていたタイマ値を長大にし、および／または、その他の処理については、予め設定されていたタイマ値を短小にする制御を行うことを特徴とする。
【００１６】
この本発明に係るタスク管理方法によれば、確実に前記複数の処理を順次実行する単位サイクルの処理時間内における前記特定の処理の実働率を前記命令を受信する前よりも大きくすることができる。
【００１７】
さらに、前記プログラムはプリンタの動作制御のためのプログラムで有り、前記プログラムが実行する複数の処理には、受信した記録情報を解析して実際の記録に用いる記録データに変換するメイン処理および前記メイン処理により形成した記録データに基づいてプリンタメカニズムを駆動するメカ処理の２つの処理を含むことを特徴とする。
【００１８】
この本発明に係るタスク管理方法によれば、プリンタの動作制御のためのプログラムが並列処理する複数の処理について、全ての処理を実行させながらも、優先性の高い処理を優先的に実働させることができる。
【００１９】
【発明の実施の形態】
本実施形態は、コンピュータやプリンタ等に搭載されたＣＰＵにより、第１処理から第３処理までの３つの処理を並列して実行するプログラムにおいてなされるタスク管理方法である。
【００２０】
前記プログラムは、前記３つの処理をそれぞれタスクに分割し、各処理のタスクを各処理に設定されたタイマ値に基づいて時分割で切り替える処理（切り替え処理）を実行し、前記３つの処理を、第１処理の後に第２処理、第２処理の後に第３処理、そして第３処理の後は再び前記第１処理という順序で実行するようになされている。
【００２１】
図１は本実施形態のタスク管理方法におけるタスク処理信号を示す概説図である。（１）は、前記３つの処理のうち特定の処理におけるジョブを優先して実行させる旨の命令がでていない状態（以下、通常時という）における前記３つの処理のタスク処理信号を示しており、図１（２）乃至図１（４）は、本発明の要旨である補正処理を行なった、３つのケースにおけるそれぞれのタスク処理信号を示すタイミングチャートである。
【００２２】
本実施形態において、これらの図１（１）乃至（４）にそれぞれ色つきの帯枠で示した前記第１処理の実行開始から第３処理の実行終了までが、前記３つの処理を順次実行するための単位サイクル（図には１単位サイクルを網掛けで示す）とされている。そして、前記プログラムは、通常時は図１（１）に示すように、単位サイクルの処理時間内における前記第１処理、第２処理そして第３処理の実働率を等しくするように、前記切り替え処理がなされている。なお、この切り替え処理は、前記プログラムを実行する前記ＣＰＵに搭載された汎用タイマにより時間を測定し、前記タイマ値に基づいて行なうようになされている。
【００２３】
そして、本実施形態のタスク管理方法においては、プログラムに前記３つの処理のうち特定の処理のジョブを優先して実行させる旨の命令がなされた場合に、前記命令を受信してから前記特定の処理のジョブを完了するまでの間、前記単位サイクルの処理時間内における前記特定の処理の実働率が通常時よりも大きくなるように、前記３つの処理について、予め設定されていたタイマ値を変化させる補正処理を行う。
【００２４】
前記補正処理は、例えば、
第１方法：前記特定の処理については、予め設定されていたタイマ値を長大にし、その他の処理については、予め設定されていたタイマ値を短小にする制御を行なう方法（図１（２）参照）
第２方法：前記特定の処理については、予め設定されていたタイマ値を長大にし、その他の処理については、予め設定されていたタイマ値のままとする制御を行う方法（図１（３）参照）
第３方法：前記特定の処理については、予め設定されていたタイマ値はそのままとし、その他の処理については、予め設定されていたタイマ値を短小にする制御を行う方法（図１（４）参照）が考えられる。
【００２５】
これらのいずれの補正処理を行う場合であっても、前記単位サイクルの処理時間内における前記特定の処理の実働率を通常時よりも大きくすることができ、結果として、前記特定の処理のジョブを短時間で完了させることができる。
【００２６】
ここで、前記補正処理を図２に示すフローチャートを用いて行なう。
【００２７】
前記プログラムにおいて通常時のタイマ値に基づいて複数の処理を実行している間に、特定の処理のジョブを優先して実行させる旨の命令を受けた場合、まず、前記特定の処理について、前記ＣＰＵ内のレジスタにフラグを立てる。それとともに、前記通常時のタイマ値を、予め規定された補正処理用のタイマ値（以下、補正タイマ値）に補正する（ＳＴ１）。
【００２８】
前記補正処理用のタイマ値は、前記ＣＰＵのＲＯＭ等に格納しておくものとする。また、前記補正処理用のタイマ値は１通りである必要はなく、例えば、特定の処理のタイマ値を３倍にするモード、５倍にするモードといったように、複数段階で設定し、ＲＯＭのテーブルに格納しておいてもよく、前記ジョブの優先性の高さをユーザー或いは前記プログラムが判断して、適当なモードを選択可能とすることもできる。
【００２９】
そして、プログラムにおいて実行される次の処理が前記特定の処理であるか否か、つまり、次の処理にフラグが立っているか否かを判断する（ＳＴ２）。
【００３０】
次の処理にフラグが立っていない場合（ＳＴ２においてＮｏ）には、その処理のタスクを補正処理用のタイマ値にて実行する（ＳＴ３）。そして、次の処理への切り替え（ＳＴ４）、再び、前記ステップ２へ戻って、次の処理にフラグが立っているか否かを判断する（ＳＴ２）。
【００３１】
一方、次の処理にフラグが立っている場合（ＳＴ２においてＹｅｓ）には、その処理のタスクを補正処理用のタイマ値にて実行する（ＳＴ５）。なお、このステップ５の処理内においては、当該タスクに割り当てられた前記優先すべきジョブが完了したかどうかを常に監視することとし（ＳＴ１１、ＳＴ１２）、当該タスクの実行により、前記ジョブが完了した場合には、前記補正タイマ値が満了していない場合にも当該タスクの実行は中止させるように制御する。そして、次のステップにおいては、優先性の高いジョブがすべて完了したか否かを判断する（ＳＴ６）。前記ジョブがすべて完了していない場合（ＳＴ６においてＮｏ）には、次の処理への切り替え処理を行い（ＳＴ７）、再び、前記ステップ２へ戻って、次の処理にフラグが立っているか否かを判断する（ＳＴ２）。また、前記タスクの実行により前記ジョブがすべて完了した場合（ＳＴ６においてＹｅｓ）には、前記補正タイマ値を元のタイマ値に戻し（ＳＴ７）、補正処理を終了させる。
【００３２】
ここで、本実施形態の作用について確認する。
【００３３】
図１（２）乃至図１（４）はそれぞれ、前記第１処理に優先性の高いジョブの命令がなされた場合であって、このジョブは通常時における５つのタスクで完了するボリュームのものである（図１（１）参照）場合を想定している。なお、前記命令は前記プログラムが第２処理を実行した時に受信されたものとする。
【００３４】
そして、図１（２）においては、前記第１処理については、予め設定されていたタイマ値を３倍にし、第２処理および第３処理については、予め設定されていたタイマ値を１／２倍にする補正処理を行ない、前記プログラムの動作を制御した場合を示している。この場合における前記第１処理の単位サイクルの時間内における実働率は７５％（第１処理：第２処理：第３処理＝６：１：１）であり、実働率が３３．３％（第１処理：第２処理：第３処理＝１：１：１）であった通常時に比較して２倍以上の実働率となるタイマ値の補正が行われることになる。
【００３５】
この図１（２）に示した補正処理によれば、通常時における５つのタスクで完了するボリュームのジョブは、前記命令を受けた後、第１処理の２つ目のタスクの実行途中で完了することになり、図１（１）に示す従来の方法によってジョブを実行した場合に比べ、図１（２）に両矢印にしめしたタイミング分だけ、早く処理することができる。
【００３６】
また、図１（３）においては、前記第１処理については、予め設定されていたタイマ値を２倍にし、第２処理および第３処理については、予め設定されていたタイマ値のままとする補正処理を行ない、前記プログラムの動作を制御した場合を示している。この場合における前記第１処理の単位サイクルの時間内における実働率は５０％（第１処理：第２処理：第３処理＝２：１：１）であり、実働率が３３．３％（第１処理：第２処理：第３処理＝１：１：１）であった通常時に比較して約１．５倍の実働率となるタイマ値の補正が行われることになる。
【００３７】
この図１（３）に示した補正処理によれば、通常時における５つのタスクで完了するボリュームのジョブは、前記命令を受けた後、第１処理の３つ目のタスクの実行途中で完了することになり、図１（１）に示す従来の方法によってジョブを実行した場合に比べ、図１（３）に両矢印にしめしたタイミング分だけ、早く処理することができる。
【００３８】
図１（４）においては、前記第１処理については、予め設定されていたタイマ値はそのままとし、第２処理および第３処理については、予め設定されていたタイマ値を１／２倍にする補正処理を行ない、前記プログラムの動作を制御した場合を示している。この場合における前記第１処理の単位サイクルの時間内における実働率は５０％（第１処理：第２処理：第３処理＝２：１：１）であり、実働率が３３．３％（第１処理：第２処理：第３処理＝１：１：１）であった場合通常時に比較して約１．５倍の実働率となるタイマ値の補正が行われることになる。
【００３９】
この図１（４）に示した補正処理によれば、通常時における５つのタスクで完了するボリュームのジョブは、やはり、前記命令を受けた後、第１処理の５つ目のタスクの完了時に完了することとなるが、前記第２処理および第３処理のタイマ値を１／２としたことにより、図１（１）に示す従来の方法によってジョブを実行した場合に比べ、図１（４）に両矢印に示したタイミング分だけ、早く処理することができる。
【００４０】
なお、前記特定の処理のジョブを完了したのちは、前述の通常時のタイマ値に基づいて、前記３つの処理を所定の順番に従って実行するタスク管理を行う。
【００４１】
ところで、前述のタスク管理方法は、プリンタの動作制御のプログラムのタスク管理に用いることができる。以下、プリンタの動作制御のプログラムにおけるタスク管理を実施例として説明する。
【００４２】
前記プリンタは、受信した記録情報を解析して実際の記録に用いる記録データに変換するメイン処理と、このメイン処理により形成した記録データに基づいてプリンタメカニズムを駆動するメカ処理と、前記プリンタメカニズムのエラーの表示および解除を行うエラー処理とを実行するプログラムにより動作制御される。また、前記プリンタには、プリンタの各部の動作制御を指示するＣＰＵが搭載されており、このＣＰＵは、前記プリンタの動作制御において、これらメイン処理、メカ処理およびエラー処理をそれぞれ分離して個別のタスクとし、これらのタスクを時分割し、切り替え処理によってメイン処理、メカ処理、エラー処理の順番に強制的に切り替えて実行するようになされている。さらに、前記ＣＰＵに搭載されている汎用タイマは、前記各タスクを実行する時間を測定するようになされている。
【００４３】
このように構成されたプリンタに前記他タスク管理方法を適用した場合、例えば、前記メイン処理に優先性の高いジョブの命令があった場合、前記命令を受信してから前記ジョブを完了するまでの間、単位サイクルの処理時間内における前記メイン処理の実働率を大きくすることで、全ての処理を実行させながらも、優先性の高い処理を優先的に実働させ、３つの処理を効率よく確実に実行することができる。
【００４４】
このようなタスク管理が行われることにより、プリンタのプログラムの処理能力を向上させることができる。特に、情報量の多い画像データをプリンタ出力するような場合には、前記画像データを解析して実際の記録に用いる記録データに変換するメイン処理の実働率を向上させることにより、プリンタの動作能力も向上させることができる。
【００４５】
なお、前記プリンタが並列処理するプログラムは、少なくとも前記メイン処理およびメカ処理を含むことで、格段の効果を得ることができるものであり、本実施例のように構成されたプログラムに限定されるものではない。例えば、スキャナを備えたプリンタを用いる場合であって、画像データを取り込む際に画像データがあるか否かを検索する処理のような新規な処理を加えた複数の処理によって動作制御されるものであってもよい。
【００４６】
なお、本発明は前記実施形態や実施例に限定されるものではなく、必要に応じて種々変更することが可能である。
【００４７】
【発明の効果】
以上述べたように、本発明に係るタスク管理方法によれば、全ての処理を実行させながらも、優先して行う処理については単位サイクルの処理時間内の実働率を上げ、優先性の高いジョブを優先的に実働させることができ、前記ジョブを短時間で完了させることができ、プログラム自体の処理能力を向上させることができる。
【００４８】
また、本発明に係るタスク管理方法をプリンタの動作制御のためのプログラムに適用することにより、特に、画像データのような大きなボリュームのデータ処理を優先させた処理を行うように補正処理をすることにより、プリンタの動作能力を向上させることができる。
【図面の簡単な説明】
【図１】タスク処理におけるタスク処理信号を示すタイミングチャートの比較説明図であり、（１）は通常時におけるジョブの処理時間、（２）は実施形態の第１方法により補正処理を行った一例における前記ジョブの処理時間、（３）は実施形態の第２方法により補正処理を行った一例における前記ジョブの処理時間、（４）は実施形態の第３方法により補正処理を行った一例における前記ジョブの処理時間を示す。
【図２】本発明のタスク管理方法における補正処理を説明するフローチャート。
【図１】
2004302986.tif 000003
【図２】
2004302986.tif 000004