(57)【要約】【課題】  実用的な範囲でタスクの受付ができるようにする。【解決手段】  少なくとも２つのプロセッサを包含するタスク処理システムであって、登録要求されたタスクの登録の可否を判定する受付判定プロセッサと、前記受付判定プロセッサによって登録可と判定されたタスクを登録する手段と、前記登録されたタスクを実行するタスク実行プロセッサと、を備える。また、ネットワークに接続された少なくとも２つの情報処理装置をさらに備え、前記受付判定プロセッサは前記一方の情報処理装置に設けられ、前記タスク実行プロセッサは前記他方の情報処理装置に設けられる。【選択図】図１
2005301411.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのプロセッサを包含するタスク処理システムであって、
登録要求されたタスクの登録の可否を判定する受付判定プロセッサと、
前記受付判定プロセッサによって登録可と判定されたタスクを登録する手段と、
前記登録されたタスクを実行するタスク実行プロセッサと、
を備えるタスク処理システム。
【請求項２】
ネットワークに接続された少なくとも２つの情報処理装置をさらに備え、
前記受付判定プロセッサは前記一方の情報処理装置に設けられ、
前記タスク実行プロセッサは前記他方の情報処理装置に設けられる、
請求項１に記載のタスク処理システム。
【請求項３】
少なくとも受付判定プロセッサとタスク実行プロセッサとを包含するタスク処理システムにおけるタスク処理方法であって、
前記受付判定プロセッサが、登録要求されたタスクの登録の可否を判定し、
前記タスク実行プロセッサが、前記受付判定プロセッサによって登録可と判定されたタスクを登録し、その登録されたタスクを実行する、
タスク処理方法。
【請求項４】
タスク処理装置が包含する受付判定プロセッサを、登録要求されたタスクの登録の可否を判定する手段、前記タスク処理装置が包含するタスク実行プロセッサを、前記手段によって登録可と判定されたタスクを登録する手段、及び前記登録されたタスクを実行する手段、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも２つのプロセッサを包含するタスク処理システムに関する。
【背景技術】
【０００２】
従来、タスクの受付はタスクを実行しているプロセッサで行っていたが、この場合、プロセッサには登録されたタスクの実行と実用的な範囲でタスクを受け付ける充分な能力が必要であった。しかし、携帯電話機や車載ナビ（ナビゲーション装置）といった所謂組み込みシステムでは、コスト面等からプロセッサにはタスクの実行に十分な程度の能力のものが使用される。このため、組み込みシステムでは、予め実行するタスクを決定しておき、実行の途中で新規のタスクの受付を行わないようにすることで対応することが想定される。
【０００３】
しかし、それではシステムが稼働中に新しいタスクを追加することができなくなるという問題がある。
【０００４】
また、従来、タスクの受付はタスクを実行しているプロセッサで行うか、又は予め設計段階で実行するタスクを決定することで実現していたが、前者では負荷状況により受付処理が遅れたり、後者では新規のタスクの受付が困難となるという問題がある。
【０００５】
なお、本発明に関連すると考えられるものとして、複数のタスクを通信により連携を取りながら実行するタスク処理システム（例えば特許文献１参照）、少ないオーバヘッドで優先度の逆転が生じないタスクスケジュール装置（例えば特許文献２参照）がある。
【特許文献１】特開平６−９５８９６号公報
【特許文献２】特開平１１−２０３１４９号公報
【特許文献３】特開平７−８４６８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、実用的な範囲でタスクの受付ができるようにすることにある。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するためになされたものであり、少なくとも２つのプロセッサを包含するタスク処理システム（又はタスク処理装置）であって、登録要求されたタスクの登録の可否を判定する受付判定プロセッサと、前記受付判定プロセッサによって登録可と判定されたタスクを登録する手段と、前記登録されたタスクを実行するタスク実行プロセッサと、を備える構成とした。
【０００８】
本発明によれば、実際にタスクを実行するプロセッサ（タスク実行プロセッサ）と受付判定を行うプロセッサ（受付判定プロセッサ）を分離することになることから、スムーズなタスクの受付、すなわち実用的な範囲でタスクの受付が可能となる。なお、タスクを登録する手段については、受付判定プロセッサに担当させてもよいし、タスク実行プロセッサに担当させてもよいし、それ専用のプロセッサを設けてこれに担当させてもよい。
【０００９】
上記タスク処理システムにおいては、例えば、ネットワークに接続された少なくとも２つの情報処理装置をさらに備え、前記受付判定プロセッサは前記一方の情報処理装置に設けられ、前記タスク実行プロセッサは前記他方の情報処理装置に設けられる。
【００１０】
例えば、ネットワークに接続された少なくとも２つの情報処理装置としては、自動車のＥＣＵ１００群（本発明の第２実施形態参照）や、携帯電話機と携帯で動くアプリをダウンロードするサーバ等が考えられる。
【００１１】
また、本発明は方法の発明として次のように特定できる。
【００１２】
少なくとも受付判定プロセッサとタスク実行プロセッサとを包含するタスク処理システムにおけるタスク処理方法であって、前記受付判定プロセッサが、登録要求されたタスクの登録の可否を判定し、前記タスク実行プロセッサが、前記受付判定プロセッサによって登録可と判定されたタスクを登録し、その登録されたタスクを実行する、タスク処理方法。
【００１３】
また、本発明はプログラムの発明として次のように特定できる。
【００１４】
タスク処理装置が包含する受付判定プロセッサを、登録要求されたタスクの登録の可否を判定する手段、前記タスク処理装置が包含するタスク実行プロセッサを、前記手段によって登録可と判定されたタスクを登録する手段、及び前記登録されたタスクを実行する手段、として機能させるためのプログラム。
【００１５】
また、本発明は上記プログラムを記録した情報処理装置（コンピュータ）読み取り可能な記録媒体として特定することもできる。
【発明の効果】
【００１６】
本発明によれば、実際にタスクを実行するプロセッサと受付判定を行うプロセッサを分離することで、スムーズなタスクの受付、すなわち実用的な範囲でタスクの受付が可能となる。
【発明を実施するための最良の形態】
【００１７】
（第１実施形態）
以下、本発明の第１実施形態であるタスク処理システムについて図面を参照しながら説明する。
（本システムの概略構成）
図１は、タスク処理システム（マルチプロセッサシステム）の概略構成を説明するための図である。
（システム環境）
本実施形態のタスク処理システムは、ＰＤＡ(Personal Digital Assistants)やパーソナルコンピュータ等の一般的な情報処理装置１００により実現される。
【００１８】
図１に示すように、情報処理装置１００は、受付判定プロセッサ１１０、タスク実行プロセッサ１２０、ハードディスク装置等の記憶装置１３０、及びメモリ１４０等を備えている。また、情報処理装置１００は、各種情報や命令を入力するための入力装置（例えばキーセット）、その処理結果等を表示するための画像表示装置（例えば液晶ディスプレイ）、及び音声出力装置（例えばスピーカ）等も備えていることがある（いずれも図示せず）。
（タスクとオペレーティングシステム）
タスク１４１とは、プロセス、スレッドと一般的に呼ばれるプログラム実行単位の総称である。タスク１４１は、タスク登録時に生成されることもあるし、予め生成（プール）されていることもある。タスク１４１は、例えば、その所要リソース量を制御可能な可変タスクであるＱｏＳタスクである。
【００１９】
オペレーティングシステム（ＯＳ）１４２は、例えば、各タスク１４１をＤＭ（Deadline Monotonic）法によりスケジューリングする機能（スケジューラ）を有するリアルタイムＯＳである。各スケジューリングタイミングにおいて、実行可能なタスク１４１（本発明の実行対象タスクに相当）の中から、最も短いデッドライン時間を持つタスク１４１がアクティブタスクとされる。各タスク１４１はタスク管理テーブル１４３により管理される。    
【００２０】
図１最下段はタスク管理テーブル１４３の例示である。タスク管理テーブル１４３は、各タスク１４１に関する情報を管理するためのテーブルであり、タスク１４１に関する情報として、タスク識別子１４３ａ、起動タイミング１４３ｂ、実行割当時間１４３ｃ、及びデッドライン時間１４３ｄ等が登録される。
【００２１】
タスク識別子１４３ａは、各タスク１４１を識別するためのものである。起動タイミング１４３ｂは、各タスク１４１の実行開始時点から次の実行開始時点までの時間（周期）である。あるタスク１４１が実行されると、その周期の間、このタスク１４１が新たに実行されることはない。実行割当時間１４３ｃは、各タスク１４１に割り当てられるリソース量（例えば、各プロセッサの使用時間）である。なお、一度リソースが割り当てられたタスク１４１が割当時間分だけ連続してリソースを割り当てられるとは限らない。何度かに分けて、時間を割り当てられることがある。また、あるタスク１４１よりも優先順位の高い別のタスク１４１によりプリエンプションされるとそのタスク１４１の処理が中断される。
【００２２】
ある時間内に割当時間が経過すればシステムに影響を与えない。この時間がデッドライン時間１４３ｄである。本実施形態では、デッドライン時間１４３ｄが短いタスク１４１の方が長いタスク１４１に比べて優先度が高く、デッドライン時間が短いタスク１４１（すなわち優先度が高いタスク）がアクティブタスクとされる。
【００２３】
なお、タスク管理テーブル１４３については、各プロセッサ１１０、１２０が共通にアクセス可能なように共通のメモリ上に保持するようにしてもよいし、各プロセッサ１１０、１２０ごとのメモリ上にそれぞれ保持するようにしてもよい。
【００２４】
上述のスケジュール機能や以下に説明するその他の諸機能等は、これら機能を提供するＡＰＩ（Application Program Interface）等の所定プログラムが上述の情報処理装置１００に読み込まれ、オペレーティングシステム１４２に組み込まれることにより実現される。なお、これらオペレーティングシステム１４２や所定プログラム等は、記憶装置１３０等にインストールされており、必要に応じて適宜メモリ１４０に読み出されて実行される（図１参照）。
（タスク登録時動作）
次に、上記構成のタスク処理システムの動作について図面を参照しながら説明する。まずは、タスク登録時の処理について説明する。図２は、タスク登録時の処理について説明するためのフローチャートである。
【００２５】
以下の処理は、情報処理装置１００にオペレーティングシステム１４２等が読み込まれて実行されることにより実現される。
【００２６】
オペレーティングシステム１４２やそのオペレーティングシステム上で実行される所定アプリケーション等からタスク登録要求があると（Ｓ１００）、受付判定プロセッサ１１０は、その登録要求のあったタスク１４１（以下、登録対象タスクともいう。）を登録可能か否か判定する（Ｓ１０１）。これは、例えば、その登録対象タスク１４１を登録した場合に、その登録対象タスク１４１を含めてＱｏＳを保って実行できるか否かの判断であ
り、その判断のために、タスク管理テーブル１４３が参照され、所定条件を満たすか否かが判定される。
【００２７】
その結果、その登録対象タスク１４１を登録可能と判定されなかった場合、その登録対象タスク１４１は登録されず、登録不許可通知がなされる（Ｓ１０２）。
【００２８】
一方、Ｓ１０１の判定の結果、その登録対象タスク１４１を登録可能と判定された場合、受付判定プロセッサ１１０は、その旨をタスク実行プロセッサ１２０へ通知する（Ｓ１０３）。なお、受付判定を行うシステムとタスクを実行するシステムで個別に管理情報（タスク管理テーブル１４３）を持っている場合には、その通知の際、受付判定を行うシステムからタスクを実行するシステムへ登録される情報（タスクＩＤ等）を通知する。
【００２９】
その通知を受けると、タスク実行プロセッサ１２０は、その登録対象タスク１４１をタスク管理テーブルへ登録する（Ｓ１０４）。すなわち、タスク管理テーブル１４３には、その登録対象タスク１４１のタスク識別子１４３ａ、起動タイミング１４３ｂ、実行割当時間１４３ｃ、及びデッドライン時間１４３ｄが登録される。
【００３０】
その登録処理が完了すると、タスク実行プロセッサ１２０は、その旨を受付判定プロセッサ１１０へ通知する（Ｓ１０５）。その通知を受けると、受付判定プロセッサ１１０は、タスク登録完了をタスク登録要求元へ通知する（Ｓ１０６）。
（タスク切替時動作）
次に、タスク切替時の処理について説明する。
【００３１】
上記のように登録されたタスク１４１は従来と同様に実行される。すなわち、タスクスケジューリングによる切替タイミングが到来すると、タスク管理テーブル１４３に登録されたタスク１４１の中から、より短いデッドライン時間のタスクが選択され、この選択されたタスクが実行される。なお、実行可能なタスクがなければ、タスク切替の処理を行わず、タスク切替処理を終了する。なお、タスク実行主体は、受付判定プロセッサ１１０ではなく、タスク実行プロセッサ１２０である。
【００３２】
以上説明したように、本実施形態のタスク処理システム（マルチプロセッサシステム）においては、複数のプロセッサ１１０、１２０が存在し、実際にタスク１４１を実行する部分とタスクの受付判定を行う部分が別々のプロセッサ１１０、１２０に分離されている。
【００３３】
そして、タスクの登録要求があった場合（Ｓ１００）にまず受付判定をするシステム（受付判定プロセッサ１１０）が判定処理を行い（Ｓ１０１）、実行可能であれば要求のあったタスクを登録し（Ｓ１０４）、タスクを実行するシステム（タスク実行プロセッサ１２０）がタスクを実行する。
【００３４】
このように、実際にタスク１４１を実行する部分とタスクの受付判定を行う部分を分離することで、タスク１４１の実行による負荷状況に依存せずタスク１４１の受付登録が可能となる。また、タスクを実行する側（タスク実行プロセッサ１２０）で受付判定処理が必要無くなるため、メモリ量の節約が可能となる。
（第２実施形態）
以下、本発明の第２実施形態であるタスク処理システム（ネットワークシステム）について図面を参照しながら説明する。
（本システムの概略構成）
図３は、タスク処理システムの概略構成を説明するための図である。
（システム環境）
本実施形態のタスク処理システムは上記第１実施形態で説明したのとほぼ同様の構成であるが、本実施形態では受付判定プロセッサ１１０が車内ＬＡＮ等のネットワークＮを介して接続されている点が上記第１実施形態と異なる。以下、第１実施形態と同様の構成については同一の符号を用いその説明を省略する。
【００３５】
図３に示すように、本実施形態のタスク処理システムは、１つ又は複数の情報処理装置１００（図３中複数のＥＣＵ(electronic control unit)１００を例示）と、サーバとして機能する情報処理装置２００（図３中ＥＣＵ２００を例示）とを包含する。これらは、車内ＬＡＮ等のネットワークＮに接続されており、このネットワークを介して相互にデータ通信可能となっている。
【００３６】
情報処理装置１００は、タスク実行プロセッサ１２０、ハードディスク装置等の記憶装置１３０、メモリ１４０、及び車内ＬＡＮ等のネットワークへ接続された通信装置（図示せず）等を備えている。また、情報処理装置１００は、各種情報や命令を入力するための入力装置（例えばキーセット）、その処理結果等を表示するための画像表示装置（例えば液晶ディスプレイ）、及び音声出力装置（例えばスピーカ）等も備えていることがある（いずれも図示せず）。
【００３７】
情報処理装置２００は、受付判定プロセッサ１１０、メモリ（図示せず）、及び車内ＬＡＮ等のネットワークＮへ接続された通信装置（図示せず）等を備えている。情報処理装置２００は、情報処理装置１００のタスク管理テーブル１４３（情報処理装置１００がそのメモリ１４０等に保持するタスク管理テーブル１４３）と同一のテーブルをそのメモリ等に保持している。このテーブルは、例えば、情報処理装置１００がそのタスク管理テーブル１４３を定期的に情報処理装置２００へ送信することで取得され保持される。なお、ネットワークＮに複数の情報処理装置１００が接続されている場合は、情報処理装置２００は各情報処理装置１００のタスク管理テーブル１４３を保持することになる。
（タスク登録時動作）
次に、上記構成のタスク処理システムの動作について図面を参照しながら説明する。まずは、タスク登録時の処理について説明する。なお、本実施形態のタスク処理システムの動作は上記第１実施形態で図２を参照しながら説明したのとほぼ同様であるので、ここでも図２を参照しながら説明する。
【００３８】
以下の処理は、情報処理装置１００にオペレーティングシステム１４２等が読み込まれて実行されることにより実現される。
【００３９】
オペレーティングシステム１４２やそのオペレーティングシステム上で実行される所定アプリケーション等からネットワークＮを介してタスク登録要求があると（Ｓ１００）、情報処理装置２００（受付判定プロセッサ１１０）は、その登録要求のあったタスク１４１（以下、登録対象タスクともいう。）を登録可能か否か判定する（Ｓ１０１）。これは、例えば、その登録対象タスク１４１を登録した場合にその登録対象タスク１４１を含めてＱｏＳを保って実行できるか否かの判断であり、その判断のために、タスク登録要求元の情報処理装置１００（そのタスクを実行する予定の情報処理装置１００）のタスク管理テーブル１４３と同一のテーブル（例えば情報処理装置２００がそのメモリ等に保持する）が参照され、所定条件を満たすか否かが判定される。
【００４０】
その結果、その登録対象タスク１４１を登録可能と判定されなかった場合、その登録対象タスク１４１は登録されず、登録不許可通知がなされる（Ｓ１０２）。
【００４１】
一方、Ｓ１０１の判定の結果、その登録対象タスク１４１を登録可能と判定された場合、情報処理装置２００（受付判定プロセッサ１１０）は、ネットワークＮを介してその旨
をタスク登録要求元の情報処理装置１００（タスク実行プロセッサ１２０）へ通知する（Ｓ１０３）。なお、本実施形態では、受付判定を行うシステムとタスクを実行するシステムで個別に管理情報（タスク管理テーブル１４３）を持っているので、Ｓ１０３の通知の際、受付判定を行うシステムからタスクを実行するシステムへ登録される情報（タスクＩＤ等）を通知する。
【００４２】
その通知を受けると、タスク登録要求元の情報処理装置１００（タスク実行プロセッサ１２０）は、その登録対象タスク１４１を自己のタスク管理テーブル１４３へ登録する（Ｓ１０４）。すなわち、タスク管理テーブル１４３には、その登録対象タスク１４１のタスク識別子１４３ａ、起動タイミング１４３ｂ、実行割当時間１４３ｃ、及びデッドライン時間１４３ｄが登録される。
【００４３】
その登録処理が完了すると、タスク登録要求元の情報処理装置１００（タスク実行プロセッサ１２０）は、ネットワークＮを介してその旨を情報処理装置２００（受付判定プロセッサ１１０）へ通知する（Ｓ１０５）。その通知を受けると、情報処理装置２００（受付判定プロセッサ１１０）は、タスク登録完了をタスク登録要求元の情報処理装置１００（タスク実行プロセッサ１２０）へ通知する（Ｓ１０６）。なお、タスク登録要求（Ｓ１００）元の情報処理装置１００と登録処理（Ｓ１０４）を行った情報処理装置１００とが同一で有れば、このＳ１０６の通知を省略することも可能である。
（タスク切替時動作）
次に、タスク切替時の処理について説明する。
【００４４】
上記のように登録されたタスク１４１は上記第１実施形態と同様に実行される。すなわち、情報処理装置１００において、タスクスケジューリングによる切替タイミングが到来すると、自己のタスク管理テーブル１４３に登録されたタスク１４１の中から、より短いデッドライン時間のタスクが選択され、この選択されたタスクが実行される。なお、実行可能なタスクがなければ、タスク切替の処理を行わず、タスク切替処理を終了する。なお、タスク実行主体は、受付判定プロセッサ１１０ではなく、タスク実行プロセッサ１２０である点は第１実施形態と同様である。
【００４５】
以上説明したように、本実施形態のタスク処理システム（ネットワークシステム）によれば、複数のプロセッサ１１０、１２０が存在し、実際にタスク１４１を実行する部分（タスク実行プロセッサ１２０）とタスクの受付判定を行う部分（受付判定プロセッサ１１０）が別々の端末１００、２００に分離されている。
【００４６】
そして、タスクの登録要求があった場合（Ｓ１００）にまず受付判定をするシステム（情報処理装置２００）で判定処理を行い（Ｓ１０１）、実行可能であれば要求のあったタスクを登録し（Ｓ１０４）、タスクを実行するシステム（情報処理装置１００）がタスクを実行する。
【００４７】
このように、実際にタスク１４１を実行する部分とタスクの受付判定を行う部分を分離することで、タスク１４１の実行による負荷状況に依存せずタスク１４１の受付登録が可能となる。また、タスクを実行する側（情報処理装置１００）で受付判定処理が必要無くなるため、情報処理装置１００におけるメモリ量の節約が可能となる。
【００４８】
なお、本実施形態では、自動車のＥＣＵ１００群とそれを結合するＬＡＮで構成されるシステムについて説明したが、本発明はこれに限定されない。例えば、携帯電話機と携帯で動くアプリをダウンロードするサーバで構成されるシステム等についても同様に適用可能である。
【００４９】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。このため、上記の実施形態はあらゆる点で単なる例示にすぎない。これらの記載によって本発明が限定的に解釈されるものではない。
【産業上の利用可能性】
【００５０】
本発明によれば、実際にタスクを実行するプロセッサと受付判定を行うプロセッサを分離することで、スムーズなタスクの受付、すなわち実用的な範囲でタスクの受付が可能となる。特に、タスクの実行に十分な程度の能力のプロセッサしか持たないいわゆる組み込みシステムにおいて有用である。
【図面の簡単な説明】
【００５１】
【図１】本発明の第１実施形態であるタスク処理システムの概略構成である。
【図２】本発明の第１実施形態であるタスク処理システムの動作を説明するためのフローチャートである。
【図３】本発明の第２実施形態であるタスク処理システムの概略構成である。
【符号の説明】
【００５２】
１００      情報処理装置
１１０      プロセッサ（受付判定プロセッサ）
１２０      プロセッサ（タスク実行プロセッサ）
１３０      記憶装置
１４０      メモリ
１４１      タスク
１４２      オペレーティングシステム
１４３      タスク管理テーブル
１４３ａ    タスクＩＤ
１４３ｂ    起動タイミング
１４３ｃ    実行割当時間
１４３ｄ    デッドライン時間
２００      情報処理装置
【図１】
2005301411.tif 000003
【図２】
2005301411.tif 000004
【図３】
2005301411.tif 000005