(57)【特許請求の範囲】
【請求項１】
発生したイベントの識別子を記憶する記憶装置と、前記イベントに基づいてタスクを生成するタスク制御装置と、前記タスクを処理するタスク処理装置とを備えたタスク処理システムであって、
前記タスク処理装置は、前記タスクを処理した後に、当該処理したタスクに対応するイベントの識別子が前記記憶装置に登録されている否かを検索し、当該検索の結果登録されている場合、前記タスクを処理した際に使用した資源を利用して、前記記憶装置に登録されている識別子のイベントに対応するタスクを処理することを特徴とするタスク処理システム。
【請求項２】
前記検索の結果、前記処理が完了したタスクと同一のタスクを生成する前記識別子を見出さない場合には、前記処理が完了したタスクの資源の一部又は全部を前記記憶装置に開放することを特徴とする請求項１記載のタスク処理システム。
【請求項３】
前記資源を、前記記憶装置から前記タスク制御管理装置を介して前記タスク処理装置に供給した場合には、前記資源を前記記憶装置から削除することを特徴とする請求項２記載のタスク処理システム。
【請求項４】
前記記憶部は、前記タスク処理装置が実行処理中のタスクの識別子を記憶し、前記タスク制御管理装置は、前記実行処理中のタスクと同一のタスクを生成する前記識別子を検索し、前記実行処理の完了を待って、前記実行処理の完了したタスクと同一のタスクを更に処理することを特徴とする請求項３記載のタスク処理システム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、タスク処理システムに関し、特に、小規模なタスクを多量に処理する場合のタスク切り替えのためのオーバーヘッドの発生を抑制して、タスク処理速度を向上させるタスク処理システムに関する。
【０００２】
【従来の技術】
従来、タスク処理システムにおいて、処理すべきタスクがあらかじめ分かっている場合には、あらかじめタスクをスケジューリングすることによりシステムのタスク処理速度を最適にする。
【０００３】
一方、処理すべきタスクが予測不可能な場合には、割り込み等の非同期なイベントによりタスクが処理される。たとえば、特開平１０−３２６１９７号公報に開示された「キュー処理方式」においては、ソフトウエアからの通常イベントと、タイマーやハードウエア割り込み等によるイベントを随時受付けて入力キーに登録し、割込み禁止を行わずに、順次処理する。
【０００４】
図５に示すように、上記公報に開示された「キュー処理方式」においては、具体的には、通常イベントキューには、割り込みイベントも含めてすべてのイベントのキューエントリーを用意する。割り込み１イベントが発生すると、その内容は、割り込み１イベント情報ブロックに格納され、そのイベントキューが、割り込み１イベントキューに追加される。割り込み２イベントが発生した場合も同様である。そして、割り込み１イベント情報ブロック及び割り込み２イベント情報ブロックに格納されたデータを、通常イベント情報ブロックに移動せずに、割り込みイベントキューの登録を解除し、通常イベントとして再登録する。
【０００５】
【発明が解決しようとする課題】
しかし、従来の技術では、システム全体としてのタスク処理速度があがらない。その理由は、タスクをあらかじめスケジューリングすることが出来ないため、タスク処理に必要な資源の解放および確保のオーバーヘッドが発生するためである。
【０００６】
又、従来の技術では、小規模なタスクを多量に処理することに向かない。その理由は、小規模なタスクを多量に処理する場合、タスク切り替えのオーバーヘッドが大量に発生するためである。
【０００７】
そこで、本発明は、小規模なタスクを多量に処理する場合のタスク切り替えのためのオーバーヘッドの発生を抑制して、タスク処理速度を向上させることを課題としている。
【０００８】
【課題を解決するための手段】
上記課題を解決するための本発明は、発生したイベントの識別子を記憶する記憶装置と、前記イベントに基づいてタスクを生成するタスク制御装置と、前記タスクを処理するタスク処理装置とを備えたタスク処理システムであって、前記タスク処理装置は、前記処理が完了したタスクと同一のタスクを生成する前記識別子を検索し、前記処理が完了したタスクと同一のタスクを更に処理する。
また、本発明は、発生したイベントの識別子を記憶する記憶装置と、前記イベントに基づいてタスクを生成するタスク制御装置と、前記タスクを処理するタスク処理装置とを備えたタスク処理システムであって、前記タスク処理装置は、前記タスクを処理した後に、当該処理したタスクに対応するイベントの識別子が前記記憶装置に登録されている否かを検索し、当該検索の結果登録されている場合、前記タスクを処理した際に使用した資源を利用して、前記記憶装置に登録されている識別子のイベントに対応するタスクを処理する。
【０００９】
すなわち、本発明においては、発生するイベントの種類に応じたタスクを処理するシステムにおいて、タスク処理完了後に同一種類のイベントが発生しているかどうかをチェックし、発生していた場合、同タスクを引き続き処理することにより、タスク処理に必要な資源の解放および確保のオーバーヘッドを減らし、システム全体のタスク処理速度を上げるようにしている。
【００１０】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明のタスク処理システムのブロック図である。図１に示すように、本発明のタスク処理システムは、割り込み発生装置等のイベント発生装置１と、情報を記憶する記憶装置２と、プログラム制御等により動作するタスク処理装置４、および、発生したイベントに応じてタスク処理装置４を制御するタスク制御装置３とから構成されている。
【００１１】
記憶装置２は、イベント発生装置で発生したイベントを記憶するイベント記憶部２１とプログラムおよびデータ等のタスク処理に必要な資源を記憶するタスク資源記憶部２２とを備えている。イベント記憶部２１に記憶されたイベントは、イベントの種類を識別するイベント識別子２１１を含む。
【００１２】
タスク制御装置３は、イベントチェック手段３１と、タスク生成手段３２と、タスク資源制御手段３３とを備える。
【００１３】
イベントチェック手段３１は、タスク処理装置４でタスク処理が完了すると、完了したタスクと同一のタスクを生成するイベントがイベント記憶部２１に登録されているかどうかをチェックする。チェックには、イベント識別子２１１が使用される。
【００１４】
タスク生成手段３２は、イベント記憶部２１に登録されたイベントに対応したタスクをタスク処理装置４で起動する制御を行う。イベントとタスクの対応付けには、イベント識別子２１１が使用される。
【００１５】
タスク資源制御手段３３は、タスク実行開始時の資源の確保、および、タスク実行完了時に資源の解放を行う。
【００１６】
イベント記憶部２１に登録されたイベントに応じたタスクがタスク生成手段３２で生成され、タスク処理装置４で処理される。またこの時、タスク処理に必要な資源がタスク資源管理手段３３によってタスク資源記憶部２２から読み出され、タスク処理装置４に供給（以下、資源の確保と呼ぶ）される。
【００１７】
タスク処理装置４でタスク処理が完了した時点で、イベントチェック手段３１により、完了したタスクを生成したイベントと同一種類のイベントがイベント記憶部２１に登録されているかが検査される。登録されていない場合、完了したタスクが必要とした資源のうち、タスク資源記憶部２２への書き戻しの必要な資源がタスク資源管理手段３３により戻される（以下、資源の解放と呼ぶ）。
【００１８】
他の種類のイベントがイベント記憶部２１に登録されている場合、タスク生成および資源の確保が繰り返される。完了したタスクを生成したイベントと同一種類のイベントがイベント記憶部２１に登録されている場合、資源の解放および再確保は行われず、引き続き、同一タスクがタスク処理装置４で処理される。
【００１９】
このようにして、同一タスクを連続して実行することにより、異なるタスクを処理する際に必要な資源の解放および確保のオーバーヘッドを減らし、システム全体のタスク処理速度を向上させる。
【００２０】
図２は、本発明のタスク処理システムの動作を説明するためのフローチャートである。イベント発生装置１で発生したイベントは、イベント記憶部２１に記憶される。記憶には、イベントの種類を示すイベント識別子２１１が含まれる。
【００２１】
まず、イベントチェック手段３１は、イベント記憶部２１に特定の識別子を持つイベントが記憶されているかどうかをチェックする（ステップＡ１およびＡ２）。
【００２２】
イベントが記憶されていれば次に、タスク資源管理手段３３は、イベント識別子２１１に対応するタスクに必要な資源をタスク資源記憶部２２から読み出し、タスク処理装置４に供給する（ステップＡ３）。
【００２３】
さらに、タスク生成手段３２は、タスク処理装置４でイベント識別子２１１に対応するタスクを起動する（タスクを生成する）。この時、イベント記憶部２１からは対応するイベントの記憶が削除される（ステップＡ４）。
【００２４】
イベントチェック手段３１は、イベント記憶部２１に完了したタスクに対応するイベント識別子２１１と同じ識別子を持つイベントが記憶されているかをチェックする（ステップＡ５およびＡ６）。
【００２５】
同じ識別子を持つイベントが記憶されている場合には、ステップＡ４に戻って、完了したタスクと同じタスクがタスク生成手段３２により生成され、イベント記憶部２１からは対応するイベントの記憶が削除される。
【００２６】
最後に、同じ識別子を持つイベントが記憶されていない場合、タスク資源管理手段３３は完了したタスクの使用した資源で解放が必要な資源を、タスク資源記憶部２２に書き戻す（ステップＡ７）。
【００２７】
図３は、本発明の他のタスク処理システムのブロック図である。図３の実施形態が図１の実施形態と異なる点は、タスク処理装置４を、タスク処理装置４１、４２、４Ｎのように複数台とした点と、記憶装置２に、実行タスク記憶部２３を追加した点である。
【００２８】
実行タスク記憶部２３は、タスク処理装置４１、タスク処理装置４２、およびタスク処理装置４Ｎで実行中のタスクを記憶する。実行中タスク記憶部２３に記憶されたタスクは、タスクの種類を識別するイベント識別子２３１を含む。
【００２９】
図４は、図３の本発明の他のタスク処理システムの動作を説明するためのフローチャートである。図４には、タスク処理装置の個数に応じたＮ個のフローチャートが示されているが、これらは、同一のものであり、それぞれ並列に動作する。
【００３０】
図４のステップＢ３１からＢ６１で示される本実施例におけるイベントチェック手段３１、タスク生成手段３２およびタスク資源管理手段３３の動作は、図１に示された実施例の各手段３１、３２および３３の動作と同一である。
【００３１】
イベント発生装置１で発生したイベントは、イベント記憶部２１に記憶される。記憶には、イベントの種類を示すイベント識別子２１１が含まれる。
【００３２】
まず、イベントチェック手段３１は、イベント記憶部２１に実行中タスク記憶部２３に記憶されているタスクのイベント識別子２３１以外の識別子を持つイベントが記憶されているかどうかをチェックする（ステップＢ１１およびＢ２１）。
【００３３】
ステップＢ４１で、タスク生成手段３２は、タスク処理装置４でイベント識別子２１１に対応するタスクを起動する（タスクを生成する）。この時、イベント記憶部２１からは対応するイベントの記憶が削除されると同時に、実行中タスク記憶部２３に記憶される。
【００３４】
最後に、ステップＢ７１で、同じ識別子を持つイベントが記憶されていない場合、タスク資源管理手段３３は完了したタスクの使用した資源で解放が必要な資源を、タスク資源記憶部２２に書き戻す。また、実行中タスク記憶部２３から対応するタスクの記憶が削除される。
【００３５】
【発明の効果】
以上説明した本発明によれば、システム全体のタスク処理速度を向上できる。その理由は、タスク処理に必要な資源の解放および確保のオーバーヘッドを削減しているからである。
【００３６】
又、本発明によれば、規模の小さなタスクを多量に処理できる。その理由は、規模の小さなタスクを多量に処理する場合には特に、タスク処理の切り替えが発生しても、タスク処理に必要な資源の解放および確保のオーバーヘッドが削減されているため高速にタスクを処理することができるからである。
【図面の簡単な説明】
【図１】本発明の第１の実施形態のタスク処理システムのブロック図
【図２】第１の実施形態のタスク処理システムの動作を説明するためのフローチャート
【図３】本発明の第２の実施形態のタスク処理システムのブロック図
【図４】第２の実施形態のタスク処理システムの動作を説明するためのフローチャート
【図５】従来のキュー処理方式
【符号の説明】
１  イベント発生装置
２  記憶装置
３  タスク制御装置
４、４１、４２、４Ｎ  タスク処理装置
２１  イベント記憶部
２２  タスク資源記憶部
２３  実行中タスク記憶部
３１  イベントチェック手段
３２  タスク生成手段
３３  タスク資源管理手段
２１１、２３１  イベント識別子
【図１】
0003601677.tif 000002
【図２】
0003601677.tif 000003
【図３】
0003601677.tif 000004
【図４】
0003601677.tif 000005
【図５】
0003601677.tif 000006