(57)【要約】【課題】  マルチプロセッサのシステムにおいて、あるプロセッサが故障等で停止した場合であっても、そのプロセッサが処理していたタスクの動作を保証し、システム全体としての動作も保証する。【解決手段】  少なくとも２つのプロセッサを包含するタスク実行システムであって、少なくともタスクと主実行プロセッサと停止時担当プロセッサとの対応関係が登録されるタスク管理テーブルと、前記タスク管理テーブルに登録されたタスクの中から実行可能タスクを選択する手段と、前記選択されたタスクを実行しようとするプロセッサ以外のプロセッサが前記選択されたタスクの主実行プロセッサとして登録されている場合、その主実行プロセッサとして登録されているプロセッサの停止状態をチェックする手段と、前記主実行プロセッサとして登録されているプロセッサが停止している場合、前記選択されたタスクを実行する手段と、を備える。【選択図】図１
2005293070.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのプロセッサを包含するタスク実行システムであって、
少なくともタスクとそのタスクを実行する主実行プロセッサとその主実行プロセッサ停止時にそのタスクを実行する停止時担当プロセッサとの対応関係が登録されるタスク管理テーブルと、
前記タスク管理テーブルに登録されたタスクの中から実行可能タスクを選択する手段と、
前記選択されたタスクを実行しようとするプロセッサ以外のプロセッサが前記選択されたタスクの主実行プロセッサとして登録されている場合、その主実行プロセッサとして登録されているプロセッサの停止状態をチェックする手段と、
前記主実行プロセッサとして登録されているプロセッサが停止している場合、前記選択されたタスクを実行する手段と、
を備えるタスク実行システム。    
【請求項２】
少なくとも２つのプロセッサを包含するタスク実行システムであって、
登録要求されたタスクを主実行プロセッサのタスクとして登録可能か否かを判定する手段と、
前記登録要求されたタスクを停止時担当プロセッサのタスクとして登録可能か否かを判定する手段と、
前記主実行プロセッサのタスクとして登録可能と判定され、かつ前記停止時担当プロセッサのタスクとして登録可能と判定された場合に、前記登録要求されたタスクと主実行プロセッサと停止時担当プロセッサとの対応関係を登録する手段と、
前記登録されたタスクの中から実行可能タスクを選択する手段と、
前記選択されたタスクを実行しようとするプロセッサ以外のプロセッサが前記選択されたタスクの主実行プロセッサとして登録されている場合、その主実行プロセッサとして登録されているプロセッサの停止状態をチェックする手段と、
前記主実行プロセッサとして登録されているプロセッサが停止している場合、前記選択されたタスクを実行する手段と、
を備えるタスク実行システム。
【請求項３】
少なくとも２つのプロセッサを包含するタスク実行システムにおけるタスク実行方法であって、
少なくともタスクとそのタスクを実行する主実行プロセッサとその主実行プロセッサ停止時にそのタスクを実行する停止時担当プロセッサとの対応関係が登録されるタスク管理テーブルに登録されたタスクの中から実行可能タスクを選択し、
前記選択されたタスクを実行しようとするプロセッサ以外のプロセッサが前記選択されたタスクの主実行プロセッサとして登録されている場合、その主実行プロセッサとして登録されているプロセッサの停止状態をチェックし、
前記主実行プロセッサとして登録されているプロセッサが停止している場合、前記選択されたタスクを実行する、タスク実行方法。
【請求項４】
少なくとも２つのプロセッサを包含する情報処理装置を、
少なくともタスクとそのタスクを実行する主実行プロセッサとその主実行プロセッサ停止時にそのタスクを実行する停止時担当プロセッサとの対応関係が登録されるタスク管理テーブル、
前記タスク管理テーブルに登録されたタスクの中から実行可能タスクを選択する手段、
前記選択されたタスクを実行しようとするプロセッサ以外のプロセッサが前記選択されたタスクの主実行プロセッサとして登録されている場合、その主実行プロセッサとして登録されているプロセッサの停止状態をチェックする手段、
前記主実行プロセッサとして登録されているプロセッサが停止している場合、前記選択されたタスクを実行する手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも２つのプロセッサを包含するタスク実行システムに関する。
【背景技術】
【０００２】
従来、処理するタスクを変更する機能を有するものが知られている（例えば特許文献１参照）。しかしながら、マルチプロセッサのシステムにおいて、あるプロセッサが故障等で停止した場合、そのプロセッサが処理していたタスクの動作を保証することが不可能となり、システム全体としての動作も保証できなくなるという問題がある。
【０００３】
なお、本発明に関連すると考えられるものとして、複数のタスクが、タスク間通信によって連携を取りながら機能を実現するシステムにおいて、タスクの追加・削除等によって生じるタスク間におけるメッセージの変更等に対して容易に対応できるタスク処理システム（例えば特許文献２参照）がある。
【特許文献１】特開平１１−２０３１４９号公報
【特許文献２】特開平６−９５８９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の課題は、マルチプロセッサのシステムにおいて、あるプロセッサが故障等で停止した場合であっても、そのプロセッサが処理していたタスクの動作を保証し、システム全体としての動作も保証することにある。
【課題を解決するための手段】
【０００５】
本発明は、上記課題を解決するためになされたものであり、少なくとも２つのプロセッサを包含するタスク実行システムであって、少なくともタスクとそのタスクを実行する主実行プロセッサとその主実行プロセッサ停止時にそのタスクを実行する停止時担当プロセッサとの対応関係が登録されるタスク管理テーブルと、前記タスク管理テーブルに登録されたタスクの中から実行可能タスクを選択する手段と、前記選択されたタスクを実行しようとするプロセッサ以外のプロセッサが前記選択されたタスクの主実行プロセッサとして登録されている場合、その主実行プロセッサとして登録されているプロセッサの停止状態をチェックする手段と、前記主実行プロセッサとして登録されているプロセッサが停止している場合、前記選択されたタスクを実行する手段と、を備える構成とした。
【０００６】
本発明によれば、あるプロセッサ（主実行プロセッサ）で必ず実行させたいタスクを他のプロセッサ（停止時担当プロセッサ）に予め割り振っておき、タスクの受付判定を（その割り振られたタスクを含めて）行っておく。そして、あるプロセッサの停止時には、割り振りが設定されているプロセッサでタスクを実行することで、割り振られたタスクの動作の保証が実現でき、システムとしても必要な動作を保証することが可能となり、結果として、システムの部分的な停止時でもシステムの動作保証の可能性を向上させることが可能となる。
【０００７】
また、本発明は次のように特定することもできる。
少なくとも２つのプロセッサを包含するタスク実行システムであって、登録要求されたタスクを主実行プロセッサのタスクとして登録可能か否かを判定する手段と、前記登録要求されたタスクを停止時担当プロセッサのタスクとして登録可能か否かを判定する手段と、前記主実行プロセッサのタスクとして登録可能と判定され、かつ前記停止時担当プロセッサのタスクとして登録可能と判定された場合に、前記登録要求されたタスクと主実行プ
ロセッサと停止時担当プロセッサとの対応関係を登録する手段と、前記登録されたタスクの中から実行可能タスクを選択する手段と、前記選択されたタスクを実行しようとするプロセッサ以外のプロセッサが前記選択されたタスクの主実行プロセッサとして登録されている場合、その主実行プロセッサとして登録されているプロセッサの停止状態をチェックする手段と、前記主実行プロセッサとして登録されているプロセッサが停止している場合、前記選択されたタスクを実行する手段と、を備えるタスク実行システム。
【０００８】
また、本発明は方法の発明として次のように特定できる。
少なくとも２つのプロセッサを包含するタスク実行システムにおけるタスク実行方法であって、少なくともタスクとそのタスクを実行する主実行プロセッサとその主実行プロセッサ停止時にそのタスクを実行する停止時担当プロセッサとの対応関係が登録されるタスク管理テーブルに登録されたタスクの中から実行可能タスクを選択し、前記選択されたタスクを実行しようとするプロセッサ以外のプロセッサが前記選択されたタスクの主実行プロセッサとして登録されている場合、その主実行プロセッサとして登録されているプロセッサの停止状態をチェックし、前記主実行プロセッサとして登録されているプロセッサが停止している場合、前記選択されたタスクを実行する、タスク実行方法。
【０００９】
また、本発明はプログラムの発明として次のように特定できる。
少なくとも２つのプロセッサを包含する情報処理装置を、少なくともタスクとそのタスクを実行する主実行プロセッサとその主実行プロセッサ停止時にそのタスクを実行する停止時担当プロセッサとの対応関係が登録されるタスク管理テーブル、前記タスク管理テーブルに登録されたタスクの中から実行可能タスクを選択する手段、前記選択されたタスクを実行しようとするプロセッサ以外のプロセッサが前記選択されたタスクの主実行プロセッサとして登録されている場合、その主実行プロセッサとして登録されているプロセッサの停止状態をチェックする手段、前記主実行プロセッサとして登録されているプロセッサが停止している場合、前記選択されたタスクを実行する手段、として機能させるためのプログラム。  
【００１０】
また、本発明は上記プログラムを記録した情報処理装置（コンピュータ）読み取り可能な記録媒体として特定することもできる。
【発明の効果】
【００１１】
本発明によれば、あるプロセッサ（主実行プロセッサ）で必ず実行させたいタスクを他のプロセッサ（停止時担当プロセッサ）に割り振っておき、そのプロセッサの停止時に予め割り振られたプロセッサでタスクを実行することで、システムの部分的な停止時（主実行プロセッサ停止時）でもシステムの動作保証の可能性を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態であるタスク管理システムについて図面を参照しながら説明する。
（本システムの概略構成）
図１は、タスク実行システムの概略構成を説明するための図である。
（システム環境）
本実施形態のタスク実行システムは、ＰＤＡ(Personal Digital Assistants)やパーソナルコンピュータ等の一般的な情報処理装置１００により実現される。
図１に示すように、情報処理装置１００は、２つのプロセッサ１１０、１２０（以下説明の便宜上一方を主実行プロセッサ１１０、他方を停止時担当プロセッサ１２０という）、ハードディスク装置等の記憶装置１３０、及びメモリ１４０等を備えている。また、情報処理装置１００は、各種情報や命令を入力するための入力装置（例えばキーセット）、その処理結果等を表示するための画像表示装置（例えば液晶ディスプレイ）、及び音声出力
装置（例えばスピーカ）等も備えていることがある（いずれも図示せず）。なお、説明の都合上２つのプロセッサ１１０、１２０を例示してあるが、本発明はこれに限定さない。例えば３つ又はそれ以上のプロセッサであっても同様に適用可能である。
（タスクとオペレーティングシステム）
タスク１４１とは、プロセス、スレッドと一般的に呼ばれるプログラム実行単位の総称である。タスク１４１は、タスク登録時に生成されることもあるし、本出願人が先に出願したように予め生成（プール）されていることもある。タスク１４１は、例えば、その所要リソース量を制御可能な可変タスクであるＱｏＳタスクである。
【００１３】
オペレーティングシステム（ＯＳ）１４２は、例えば、各タスク１４１をＤＭ（Deadline Monotonic）法によりスケジューリングする機能（スケジューラ）を有するリアルタイムＯＳである。各スケジューリングタイミングにおいて、実行可能なタスク１４１（本発明の実行対象タスクに相当）の中から、最も短いデッドライン時間を持つタスク１４１がアクティブタスクとされる。各タスク１４１はタスク管理テーブル１４３により管理される。    
【００１４】
図１最下段はタスク管理テーブル１４３の例示である。タスク管理テーブル１４３は、各タスク１４１に関する情報を管理するためのテーブルであり、タスク１４１に関する情報として、タスクＩＤ１４３ａ、主実行プロセッサＩＤ１４３ｂ、停止時担当プロセッサＩＤ１４３ｃ、及びタスク実行用パラメータ１４３ｄ等が登録される。
【００１５】
タスクＩＤ１４３ａは、各タスク１４１を識別するためのものである。主実行プロセッサＩＤ１４３ｂ及び停止時担当プロセッサＩＤ１４３ｃは各プロセッサを識別するためのものである。タスク実行用パラメータ１４３ｄとしては、起動タイミング、実行割当時間、及びデッドライン時間等がある。起動タイミングは、各タスク１４１の実行開始時点から次の実行開始時点までの時間（周期）である。あるタスク１４１が実行されると、その周期の間、このタスク１４１が新たに実行されることはない。実行割当時間は、各タスク１４１に割り当てられるリソース量（例えば、各プロセッサの使用時間）である。なお、一度リソースが割り当てられたタスク１４１が割当時間分だけ連続してリソースを割り当てられるとは限らない。何度かに分けて、時間を割り当てられることがある。また、あるタスク１４１よりも優先順位の高い別のタスク１４１によりプリエンプションされるとそのタスク１４１の処理が中断される。
【００１６】
ある時間内に割当時間が経過すればシステムに影響を与えない。この時間がデッドライン時間である。本実施形態では、デッドライン時間が短いタスク１４１の方が長いタスク１４１に比べて優先度が高く、デッドライン時間が短いタスク１４１（すなわち優先度が高いタスク）がアクティブタスクとされる。
【００１７】
上述のスケジュール機能や以下に説明するその他の諸機能等は、これら機能を提供するＡＰＩ（Application Program Interface）等の所定プログラムが上述の情報処理装置１００に読み込まれ、オペレーティングシステム１４２に組み込まれることにより実現される。なお、これらオペレーティングシステム１４２や所定プログラム等は、記憶装置１２０等にインストールされており、必要に応じて適宜メモリ１４０に読み出されて実行される（図１参照）。
（タスク登録時動作）
次に、上記構成のタスク管理システムの動作について図面を参照しながら説明する。まずは、タスク登録時の処理について説明する。図２は、タスク登録時の処理について説明するためのフローチャートである。
【００１８】
以下の処理は、情報処理装置１００にオペレーティングシステム１４２等が読み込まれ
て実行されることにより実現される。
オペレーティングシステム１４２や所定アプリケーション等からタスク登録要求があると（Ｓ１００）、その登録要求のあったタスク１４１（以下、登録対象タスクともいう。）を主実行プロセッサ１１０（例えばＳ１００の登録要求が主実行プロセッサＩＤを含む場合、その主実行プロセッサＩＤ）のタスクとして登録可能か否かが判定される（Ｓ１０１）。これは、例えば、その登録対象タスク１４１を主実行プロセッサ１１０のタスクとして登録した場合に、その登録対象タスク１４１を含めてＱｏＳを保って実行できるか否かの判断であり、所定条件を満たすか否かが判定される。
【００１９】
その結果、その登録対象タスク１４１を主実行プロセッサ１１０のタスクとして登録可能と判定されなかった場合（Ｓ１０１：Ｎｏ）、その登録対象タスク１４１は登録されず、登録不許可通知がなされる（Ｓ１０２）。
【００２０】
一方、主実行プロセッサ１１０のタスクとして登録可能と判定された場合（Ｓ１０１：Ｙｅｓ）、さらにタスク登録要求（Ｓ１００）は主実行プロセッサのみか否かが判定される（Ｓ１０３）。これは、例えば、タスク登録要求（Ｓ１００）が主実行プロセッサＩＤのみを含むか否か（すなわち停止時担当プロセッサＩＤも含むか否か）で判定することが考えられる。
【００２１】
その結果、主実行プロセッサＩＤのみを含むと判定されなかった場合（例えば、停止時担当プロセッサＩＤも含むと判定された場合）（Ｓ１０３：Ｎｏ）、さらにその登録対象タスク１４１を停止時担当プロセッサのタスクとして登録可能か否かが判定される（Ｓ１０４）。これは、例えば、その登録対象タスク１４１を停止時担当プロセッサ１２０（例えばＳ１００の登録要求が停止時担当プロセッサＩＤを含む場合、その停止時担当プロセッサＩＤ）のタスクとして登録した場合に、その登録対象タスク１４１を含めてＱｏＳを保って実行できるか否かの判断であり、所定条件を満たすか否かが判定される。
【００２２】
その結果、停止時担当プロセッサ１２０のタスクとして登録可能と判定されなかった場合（Ｓ１０４：Ｎｏ）、その登録対象タスク１４１は登録されず、登録不許可通知がなされる（Ｓ１０２）。
【００２３】
一方、停止時担当プロセッサ１２０のタスクとして登録可能と判定された場合（Ｓ１０４：Ｙｅｓ）、その登録対象タスク１４１は、主実行プロセッサ１１０と停止時担当プロセッサ１２０のタスク管理テーブルへ登録される（Ｓ１０５）。すなわち、各タスク管理テーブル１４３には、その登録対象タスク１４１のタスクＩＤ１４３ａ、主プロセッサＩＤ１４３ｂ、停止時担当プロセッサＩＤ１４３ｃ、及びタスク実行用パラメータ１４３ｄが登録される。
【００２４】
一方、Ｓ１０３の判定の結果、登録要求は主実行プロセッサのみと判定された場合（例えば、停止時担当プロセッサＩＤを含まないと判定された場合）（Ｓ１０３：Ｙｅｓ）、その登録対象タスク１４１は、主実行プロセッサのタスク管理テーブル１４３へ登録される（Ｓ１０６）。すなわち、主実行プロセッサのタスク管理テーブル１４３には、その登録要求のあったタスク１４１のタスクＩＤ１４３ａ、主プロセッサＩＤ１４３ｂ、及びタスク実行用パラメータ１４３ｄが登録される。
【００２５】
以上説明したように、タスクの登録を行う際に、主にタスクを実行するプロセッサＩＤ（主実行プロセッサＩＤ）と主にタスクを実行するプロセッサが停止した時に実行を行うプロセッサＩＤ（停止時担当プロセッサＩＤ）を与える。そして、タスクの登録要求（Ｓ１００）があった場合にまず受付判定をするシステムで受付処理を行い（Ｓ１０１、Ｓ１０３、Ｓ１０４）、実行可能であれば要求のあったタスクを登録する（Ｓ１０５、Ｓ１０
６）。
（タスク切替時動作）
次に、タスク切替時の処理について説明する。図３は、タスク切替時の処理について説明するためのフローチャートである。
【００２６】
以下の処理も、情報処理装置１００にオペレーティングシステム１４２（スケジューラなど）等が読み込まれて実行されることにより実現される。
スケジューラが実行されると（Ｓ２００）、自プロセッサの登録タスクの中から実行可能タスクが選択される（Ｓ２０１）。例えば、タスクスケジューリングによる切替タイミングが到来すると、自プロセッサのタスク管理テーブル１４３に登録されたタスク１４１の中から、より短いデッドライン時間のタスクが選択される。なお、実行可能なタスクがなければ（Ｓ２０２：Ｎｏ）、タスク切替の処理を行わず、タスク切替処理を終了する。
【００２７】
一方、実行可能なタスク有りの場合（Ｓ２０２：Ｙｅｓ）、自プロセッサがＳ２０１で選択されたタスク（以下選択タスクともいう）の主実行プロセッサとして設定されているか否かが判定される（Ｓ２０３）。この判定のために、自プロセッサのタスク管理テーブル１４３が参照される。タスク管理テーブル１４３にはタスクＩＤ１４３ａと主担当プロセッサＩＤ１４３ｂとの対応関係が登録されている（図１参照）。従って、このタスク管理テーブル１４３が参照されることで、自プロセッサが選択タスクの主実行プロセッサとして設定されているか否かを判定可能となっている。
【００２８】
その結果、自プロセッサが選択タスクの主実行プロセッサとして設定されていると判定された場合（Ｓ２０３：Ｙｅｓ）、選択タスクが実行タスクとして設定される（Ｓ２０４）。すなわち、選択タスクが実行される。
【００２９】
一方、自プロセッサが選択タスクの主実行プロセッサとして設定されていると判定されない場合（例えば自プロセッサ以外のプロセッサが主実行プロセッサとして設定されている場合）（Ｓ２０３：Ｎｏ）、さらに選択タスクの主実行プロセッサとして設定されているプロセッサは停止しているか否か（すなわち、主実行プロセッサとして設定されているプロセッサの停止状態をチェックする）、及び自プロセッサが選択タスクの停止時担当プロセッサとして設定されているか否かが判定される（Ｓ２０５）。この後者の判定のために、自プロセッサのタスク管理テーブル１４３が参照される。タスク管理テーブル１４３にはタスクＩＤ１４３aと停止時担当プロセッサＩＤ１４３ｃとの対応関係が登録されている（図１参照）。従って、このタスク管理テーブル１４３が参照されることで、自プロセッサが選択タスクの停止時担当プロセッサとして設定されているか否かを判定可能となっている。なお、前者の判定方法としては、選択タスクの主実行プロセッサとして設定されているプロセッサに直接動作状態を問い合わせることで停止状態をチェックすることが考えられる。
【００３０】
その結果、選択タスクの主実行プロセッサとして設定されているプロセッサは停止（故障等により動作不能に陥っている場合等）していると判定され、かつ、自プロセッサが選択タスクの停止時担当プロセッサとして設定されている場合（Ｓ２０５：Ｙｅｓ）、選択タスクが実行タスクとして設定される（Ｓ２０４）。すなわち、選択タスクが実行される。
【００３１】
一方、Ｓ２０５の判定の結果、主実行プロセッサとして設定されているプロセッサは停止していると判定されなかった場合、又は自プロセッサが停止時担当プロセッサとして設定されていない場合（Ｓ２０５：Ｎｏ）、Ｓ２０１へ戻り、再度Ｓ２０１以下の処理が実行される。
【００３２】
以上説明したように、各プロセッサ１１０、１２０でタスクを実行する場合、登録されているタスクの管理情報に従って実行するが、その際、プロセッサＩＤを読みとり、自プロセッサ以外が主なプロセッサとして設定されている場合（Ｓ２０３：Ｎｏ）は、そのプロセッサの停止状況をチェックし（Ｓ２０５）、停止していれば（Ｓ２０５：Ｙｅｓ）、そのタスクを実行する（Ｓ２０４）。
【００３３】
このように、各タスクの動作タイミング時にプロセッサの停止状況もチェックする（Ｓ２０５）ので、タスクの実行の肩代わりが速やかに行われることになる。また、主実行プロセッサ１１０で必ず実行させたいタスクを停止時担当プロセッサ１２０に割り振っておくことで、そのプロセッサ１１０の停止時に予め割り振られたプロセッサ１２０でタスクを実行することが可能となる。従って、システムの部分的な停止時でもシステムの動作保証の可能性を向上させることが可能となる。
【００３４】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。このため、上記の実施形態はあらゆる点で単なる例示にすぎない。これらの記載によって本発明が限定的に解釈されるものではない。
【産業上の利用可能性】
【００３５】
本発明によれば、あるプロセッサ（主実行プロセッサ）で必ず実行させたいタスクを他のプロセッサ（停止時担当プロセッサ）に割り振っておき、そのプロセッサの停止時に予め割り振られたプロセッサでタスクを実行することで、システムの部分的な停止時（主実行プロセッサ停止時）でもシステムの動作保証の可能性を向上させることが可能となる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態であるタスク実行システムの概略構成である。
【図２】本発明の実施形態であるタスク実行システムの動作を説明するためのフローチャートである。
【図３】本発明の実施形態であるタスク実行システムの動作を説明するためのフローチャートである。
【符号の説明】
【００３７】
１００      情報処理装置
１１０      プロセッサ（主実行プロセッサ）
１２０      プロセッサ（停止時担当プロセッサ）
１３０      記憶装置
１４０      メモリ
１４１      タスク
１４２      オペレーティングシステム
１４３      タスク管理テーブル
１４３ａ    タスクＩＤ
１４３ｂ    主実行プロセッサＩＤ
１４３ｃ    停止時担当プロセッサＩＤ
１４３ｄ    タスク実行用パラメータ
【図１】
2005293070.tif 000003
【図２】
2005293070.tif 000004
【図３】
2005293070.tif 000005