(57)【要約】【課題】周期の長い定周期タスクの混在によるメモリの記憶領域の使用効率の悪化を防ぐ。【解決手段】定周期タスクＡ〜Ｅの実行スケジュールを行列化し、その行列化した実行スケジュールの充填率ρを算出し、この充填率ρが凝集判別閾値ρｔｈを超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、実行スケジュールの行列化を繰り返す。この行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとしてメモリに記憶させる。また、除外された定周期タスクを除外タスクとし、この除外タスクの周期Ｔｉおよびオフセット値Ｔｉ_offsetをメモリに記憶させる。メモリに記憶されている凝集化された実行スケジュールおよび除外タスクの周期Ｔｉおよびオフセット値Ｔｉ_offsetを用いて定周期タスクＡ〜Ｅを実行する。【選択図】  図３
2013033378.tif 000002
【特許請求の範囲】
【請求項１】
スケジュール化された複数の定周期タスクを実行する定周期タスク実行装置において、
前記複数の定周期タスクの実行スケジュールを行列化し、その行列化した実行スケジュールの充填率を算出し、この算出される充填率が所定値を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、前記実行スケジュールの行列化を繰り返す行列化手段と、
前記行列化手段による行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとして記憶する凝集化実行スケジュール記憶手段と、
前記行列化手段による行列化の繰り返しによって除外された定周期タスクを除外タスクとし、この除外タスクの周期および実行タイムスロットの位置を特定するためのオフセット値を記憶する除外タスク実行スケジュール記憶手段と
を備えることを特徴とする定周期タスク実行装置。
【請求項２】
請求項１に記載された定周期タスク実行装置において、
前記記憶されている凝集化された実行スケジュールおよび前記除外タスクの周期およびオフセット値を読み出す手段と、
前記読み出された除外タスクの周期の最小公倍数の仮想タイムスロットを作成する手段と、
前記読み出された除外タスクの周期およびオフセット値に基づいて前記仮想タイムスロットにその除外タスクの実行タイムスロットを当てはめる手段と、
前記仮想タイムスロットを前記凝集化された実行スケジュールのタイムスロット数で分割し、その分割された仮想タイムスロットに当てはめられている前記除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される前記凝集化された実行スケジュールに追加する手段と
を備えることを特徴とする定周期タスク実行装置。
【請求項３】
スケジュール化された複数の定周期タスクを実行する定周期タスク実行方法において、
前記複数の定周期タスクの実行スケジュールを行列化し、その行列化した実行スケジュールの充填率を算出し、この算出される充填率が所定値を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、前記実行スケジュールの行列化を繰り返す行列化ステップと、
前記行列化ステップによる行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとして記憶する凝集化実行スケジュール記憶ステップと、
前記行列化ステップによる行列化の繰り返しによって除外された定周期タスクを除外タスクとし、この除外タスクの周期および実行タイムスロットの位置を特定するためのオフセット値を記憶する除外タスク実行スケジュール記憶ステップと
を備えることを特徴とする定周期タスク実行方法。
【請求項４】
請求項３に記載された定周期タスク実行方法において、
前記記憶されている凝集化された実行スケジュールおよび前記除外タスクの周期およびオフセット値を読み出すステップと、
前記読み出された除外タスクの周期の最小公倍数の仮想タイムスロットを作成するステップと、
前記読み出された除外タスクの周期およびオフセット値に基づいて前記仮想タイムスロットにその除外タスクの実行タイムスロットを当てはめるステップと、
前記仮想タイムスロットを前記凝集化された実行スケジュールのタイムスロット数で分割し、その分割された仮想タイムスロットに当てはめられている前記除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される前記凝集化された実行スケジュールに追加するステップと
を備えることを特徴とする定周期タスク実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、スケジュール化された複数の定周期タスクを実行する定周期タスク実行装置および方法に関するものである。
【背景技術】
【０００２】
従来より、複数の定周期タスクを実行する場合、定周期タスク毎にその実行スケジュールを作成し、メモリに記憶させている（例えば、特許文献１参照）。
【０００３】
図７にメモリに記憶された実行スケジュールの一例を示す。同図において、Ａは周期Ｔｉが１秒の定周期タスク（周期Ｔ１の定周期タスク）、Ｂは周期Ｔｉが２秒の定周期タスク（周期Ｔ２の定周期タスク）、Ｃは周期Ｔｉが４秒の定周期タスク（周期Ｔ４の定周期タスク）、Ｄは周期Ｔｉが５秒の定周期タスク（周期Ｔ５の定周期タスク）、Ｅは周期Ｔｉが８秒の定周期タスク（周期Ｔ８の定周期タスク）である。Ｓｌｏｔ１〜Ｓｌｏｔ８は物理タイムスロットであり、「●」は各定周期タスクの実行タイムスロットを示す。
【０００４】
この例において、定周期タスクＡは周期Ｔｉが１秒であるので、物理タイムスロットＳｌｏｔ１〜Ｓｌｏｔ８の全てが実行タイムスロットとされる。定周期タスクＢは周期Ｔｉが２秒であるので、物理タイムスロットＳｌｏｔ１，Ｓｌｏｔ３，Ｓｌｏｔ５，Ｓｌｏｔ７が実行タイムスロットとされる。同様にして、定周期タスクＣは周期Ｔｉが４秒であるので、物理タイムスロットＳｌｏｔ４，Ｓｌｏｔ８が実行タイムスロットとされ、定周期タスクＤは周期Ｔｉが５秒であるので、物理タイムスロットＳｌｏｔ１，Ｓｌｏｔ６が実行タイムスロットとされ、定周期タスクＥは周期Ｔｉが８秒であるので、物理タイムスロットＳｌｏｔ８が実行タイムスロットとされる。
【０００５】
従来においては、このような実行タイムスロットを配置して表される定周期タスクＡ〜Ｅの実行スケジュールがメモリＭ１に記憶させている。なお、図７では、定周期タスクＡ〜Ｅの実行スケジュールの全体を実行スケジュールＳＫＪ１として示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２５６０６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のメモリへの実行スケジュールの記憶方法によると、周期の長い定周期タスクが混在していた場合、周期が短い定周期タスクの実行タイムスロットを実行スケジュール上に大量に配置しなければならず、メモリの記憶領域の使用効率が悪くなるという問題があった。
【０００８】
例えば、図７に示した例では、定周期タスクＤと定周期タスクＥがなければ、図８に示すように物理タイムスロットをＳｌｏｔ１〜Ｓｌｏｔ４として、メモリＭ１の記憶領域の使用効率を半減することが可能となる。しかし、長周期の定周期タスクＤとＥがあるため、短周期の定周期タスクＡ，Ｂ，Ｃの実行タイムスロットを繰り返し配置しなければならない。これがメモリＭ１の記憶領域の使用効率を悪くしている。
【０００９】
本発明は、このような課題を解決するためになされたもので、その目的とするところは、周期の長い定周期タスクの混在によるメモリの記憶領域の使用効率の悪化を防ぐことが可能な定周期タスク実行装置および方法を提供することにある。
【課題を解決するための手段】
【００１０】
このような目的を達成するために本発明（請求項１に係る発明）は、スケジュール化された複数の定周期タスクを実行する定周期タスク実行装置において、複数の定周期タスクの実行スケジュールを行列化し、その行列化した実行スケジュールの充填率を算出し、この算出される充填率が所定値を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、実行スケジュールの行列化を繰り返す行列化手段と、行列化手段による行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとして記憶する凝集化実行スケジュール記憶手段と、行列化手段による行列化の繰り返しによって除外された定周期タスクを除外タスクとし、この除外タスクの周期および実行タイムスロットの位置を特定するためのオフセット値を記憶する除外タスク実行スケジュール記憶手段とを備えることを特徴とする。
【００１１】
この発明によれば、複数の定周期タスクの実行スケジュールが行列化され、その行列化された実行スケジュールの充填率が算出され、この算出される充填率が所定値（例えば、５０％）を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、実行スケジュールの行列化が繰り返される。そして、この行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールが凝集化された実行スケジュールとしてメモリに記憶される。また、この行列化の繰り返しによって除外された定周期タスクが除外タスクとされ、この除外タスクの周期およびオフセット値がメモリに記憶される。
【００１２】
また、本発明（請求項２に係る発明）は、記憶されている凝集化された実行スケジュールおよび除外タスクの周期およびオフセット値を読み出す手段と、読み出された除外タスクの周期の最小公倍数の仮想タイムスロットを作成する手段と、読み出された除外タスクの周期およびオフセット値に基づいて仮想タイムスロットにその除外タスクの実行タイムスロットを当てはめる手段と、仮想タイムスロットを凝集化された実行スケジュールのタイムスロット数で分割し、その分割された仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される凝集化された実行スケジュールに追加する手段とを備えることを特徴とする。
【００１３】
この発明によれば、メモリに記憶されている凝集化された実行スケジュールおよび除外タスクの周期およびオフセット値が読み出され、読み出された除外タスクの周期の最小公倍数の仮想タイムスロットが作成され、読み出された除外タスクの周期およびオフセット値に基づいて仮想タイムスロットにその除外タスクの実行タイムスロットが当てはめられる。そして、仮想タイムスロットが凝集化された実行スケジュールのタイムスロット数で分割され、その分割された仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットが読み取られ、この読み取られた除外タスクの実行タイムスロットがその分割された仮想タイムスロットに対応するタイミングで実行される凝集化された実行スケジュールに追加される。
【００１４】
なお、本発明は、定周期タスク実行装置としてではなく、定周期タスク実行方法としても実現することが可能である。請求項３に係る発明は、請求項１の定周期タスク実行装置での手法を定周期タスク実行方法として実現したものであり、請求項４に係る発明は、請求項２の定周期タスク実行装置での手法を定周期タスク実行方法として実現したものである。
【発明の効果】
【００１５】
本発明によれば、複数の定周期タスクの実行スケジュールを行列化し、その行列化した実行スケジュールの充填率を算出し、この算出される充填率が所定値を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、実行スケジュールの行列化を繰り返し、この行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとして記憶させるとともに、この行列化の繰り返しによって除外された定周期タスクを除外タスクとし、この除外タスクの周期および実行タイムスロットの位置を特定するためのオフセット値を記憶させるようにしたので、周期の長い定周期タスクが混在していても、周期が短い定周期タスクの実行タイムスロットを実行スケジュール上に大量に配置しなくてもよくなり、メモリの記憶領域の使用効率の悪化を防ぐことが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係る定周期タスク実行装置の一実施の形態のハードウェア構成の概略を示す図である。
【図２】この定周期タスク実行装置におけるＣＰＵが実行する実行スケジュールの凝集化の処理動作を示すフローチャートである。
【図３】この定周期タスク実行装置におけるＣＰＵが実行する実行スケジュールの凝集化の処理過程を示す図である。
【図４】凝集化された実行スケジュールおよび除外タスクの周期およびオフセット値を例示する図である。
【図５】この定周期タスク実行装置におけるＣＰＵが行う定周期タスクの実行の処理動作を説明するためのタイムチャートである。
【図６】この定周期タスク実行装置の要部の機能ブロック図である。
【図７】メモリに記憶される従来の実行スケジュールの一例を示す図である。
【図８】図７において長周期の定周期タスクＤ，Ｅがない場合の実行スケジュールを示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。図１は本発明に係る定周期タスク実行装置の一実施の形態のハードウェア構成の概略を示す図である。
【００１８】
同図において、１はＣＰＵ、２はＲＡＭ、３はＲＯＭ、４はハードディスクなどの記憶装置、５〜７はインターフェイス、８はディスプレイ、９はキーボード、１０はマウスである。
【００１９】
この定周期タスク実行装置１００において、ＣＰＵ１は、インターフェイス５〜７を介して与えられる各種入力情報を得て、ＲＡＭ２にアクセスしながら、ＲＯＭ３に格納されたプログラムに従って動作する。
【００２０】
ＲＯＭ３には、本実施の形態特有のプログラムとして、複数の定周期タスクの実行スケジュールを凝集化する実行スケジュール凝集化プログラムと、凝集化された実行スケジュールに基づいて複数の定周期タスクを実行する定周期タスク実行プログラムとが格納されている。
【００２１】
〔実行スケジュールの凝集化〕
図２にＲＯＭ３に格納された実行スケジュール凝集化プログラムに従ってＣＰＵ１が実行する処理動作のフローチャートを示す。以下、このフローチャートを参照して、ＣＰＵ１が実行する実行スケジュールの凝集化について説明する。
【００２２】
ＣＰＵ１は、操作者から入力される複数の定周期タスクの実行スケジュールを取り込み（ステップＳ１０１）、この取り込んだ複数の定周期タスクの実行スケジュールの行列（スケジュール行列）を作成する（ステップＳ１０２）。
【００２３】
図３（ａ）に操作者から入力される複数の定周期タスクの実行スケジュールを例示する。この例では、図７を用いて説明した定周期タスクＡ，Ｂ，Ｃ，Ｄ，Ｅについて、その実行スケジュールが入力されるものとする。
【００２４】
定周期タスクＡ，Ｂ，Ｃ，Ｄ，Ｅの実行スケジュールが入力されると、ＣＰＵ１は、図３（ｂ）に示されるような、「●」で示される実行タイムスロットを要素値「１」とし、他のタイムスロットを要素値「０」とするスケジュール行列を作成する。
【００２５】
そして、ＣＰＵ１は、このスケジュール行列の充填率（スケジュール充填率）ρを算出する（ステップＳ１０３）。この場合、ρ＝要素値「１」の数／全要素数として、スケジュール充填率ρを算出する。この例において、スケジュール充填率ρは、ρ＝１７／４０＝４２．５％として求められる。
【００２６】
次に、ＣＰＵ１は、この求めたスケジュール充填率ρと予め定められている凝集判別閾値ρｔｈとを比較する（ステップＳ１０４）。この例において、凝集判別閾値ρｔｈは５０％とされているものとする。なお、このステップＳ１０４でのスケジュール充填率ρと凝集判別閾値ρｔｈとを比較する処理を凝集化判別処理と呼ぶ（図３（ｃ）参照）。
【００２７】
この場合、スケジュール充填率ρは４２．５％であり、凝集判別閾値ρｔｈを超えていない（ステップＳ１０４のＮＯ）。このため、ＣＰＵ１は、ステップＳ１０２で作成したスケジュール行列について、最長周期の定周期タスクとして定周期タスクＥの実行スケジュールを除外して（ステップＳ１０５、図３（ｄ）参照）、再行列化を行う（ステップＳ１０６）。これにより、図３（ｅ）に示されるようなスケジュール行列が作成される。
【００２８】
そして、ＣＰＵ１は、この作成されたスケジュール行列の充填率（スケジュール充填率）ρを再び算出する（ステップＳ１０３）。この例において、スケジュール充填率ρは、ρ＝１２／２４＝５０％として求められる。ＣＰＵ１は、この求めたスケジュール充填率ρと凝集判別閾値ρｔｈとを比較するが（ステップＳ１０４）、スケジュール充填率ρはまだ凝集判別閾値ρｔｈを超えていない（ステップＳ１０４のＮＯ）。
【００２９】
このため、ＣＰＵ１は、ステップＳ１０６で作成したスケジュール行列について、最長周期の定周期タスクとして定周期タスクＤの実行スケジュールを除外して（ステップＳ１０５、図３（ｄ）参照）、再行列化を行う（ステップＳ１０６）。これにより、図３（ｆ）に示すようなスケジュール行列が作成される。
【００３０】
そして、ＣＰＵ１は、この作成されたスケジュール行列の充填率（スケジュール充填率）ρを再び算出する（ステップＳ１０３）。この例において、スケジュール充填率ρは、ρ＝７／１２＝５８．３％として求められる。ＣＰＵ１は、この求めたスケジュール充填率ρと凝集判別閾値ρｔｈとを比較する（ステップＳ１０４）。この場合、スケジュール充填率ρは凝集判別閾値ρｔｈを超えている（ステップＳ１０４のＹＥＳ）。
【００３１】
ＣＰＵ１は、スケジュール充填率ρが凝集判別閾値ρｔｈを超えると（ステップＳ１０４のＹＥＳ）、ステップＳ１０３〜Ｓ１０６の処理の繰り返しによって最終的に残されたスケジュール行列（図３（ｆ））を凝集化された実行スケジュールの行列とする（ステップＳ１０７）。そして、この凝集化された実行スケジュールの行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとし、この凝集化された実行スケジュールを記憶装置４に記憶させる（ステップＳ１０８）。図４（ａ）に凝集化された実行スケジュールを示す。この凝集化された実行スケジュールＳＫＪ２が記憶装置４に記憶される。
【００３２】
また、ＣＰＵ１は、ステップＳ１０３〜Ｓ１０６の処理の繰り返しによって除外された定周期タスクＤとＥを除外タスクとし、この除外タスクＤとＥの周期Ｔｉとオフセット値Ｔｉ_offsetを記憶装置４に記憶させる（ステップＳ１０９）。この場合、図４（ｂ）に示すように、除外タスクＤの周期Ｔ５とオフセット値Ｔ５_offset＝０と、除外タスクＥの周期Ｔ８とオフセット値Ｔ８_offset＝７とが記憶装置４に記憶される。
【００３３】
なお、オフセット値Ｔｉ_offsetは、除外タスクの実行タイムスロットの位置を特定するための情報である。図３（ａ）において、タイムスロットＳｌｏｔ１の位置をオフセット値０とし、タイムスロットＳｌｏｔ８の位置をオフセット値７とする。この場合、除外タスクＤはその実行タイムスロットの先頭がタイムスロットＳｌｏｔ１の位置にあるため、オフセット値Ｔ５_offsetが０とされる。また、除外タスクＥはその実行タイムスロットの先頭がタイムスロットＳｌｏｔ８の位置にあるため、オフセット値Ｔ８_offsetが７とされる。
【００３４】
このようにして、本実施の形態では、図４（ａ）に示されるような凝集化された実行スケジュールＳＫＪ２と、図４（ｂ）に示されるような除外タスクの周期Ｔｉとオフセット値Ｔｉ_offsetとが記憶装置４に記憶されるものとなる。
【００３５】
ここで、図７に示した従来の実行スケジュールＳＫＪ１と、本実施の形態による凝集化された実行スケジュールＳＫＪ２とを比較してみる。従来の実行スケジュールＳＫＪ１では物理タイムスロットをＳｌｏｔ１〜Ｓｌｏｔ８の８個としてメモリＭ１に記憶されるが、本実施の形態による凝集化された実行スケジュールＳＫＪ２では物理タイムスロットをＳｌｏｔ１〜Ｓｌｏｔ４の４個として記憶装置４に記憶される。
【００３６】
したがって、本実施の形態によれば、メモリの記憶領域の使用効率が半減される。なお、本実施の形態では、凝集化された実行スケジュールＳＫＪ２と合わせて、除外タスクの周期Ｔｉとオフセット値Ｔｉ_offsetをメモリへ記憶させる必要があるが、これに必要な記憶領域は極僅かである。
【００３７】
〔定周期タスクの実行〕
図５にＲＯＭ３に格納された定周期タスク実行プログラムに従ってＣＰＵ１が実行する処理動作のタイムチャートを示す。以下、このタイムチャートを参照して、ＣＰＵ１が行う定周期タスクの実行について説明する。
【００３８】
ＣＰＵ１は、定周期タスクの実行に際して、記憶装置４に記憶されている凝集化された実行スケジュールＳＫＪ２と、除外タスクＴｉの周期Ｔｉとオフセット値Ｔｉ_offsetとを読み出す。この例では、除外タスクＤの周期Ｔ５およびオフセット値Ｔ５_offset＝０と、除外タスクＥの周期Ｔ８およびオフセット値Ｔ５_offset＝７とを読み出す。
【００３９】
そして、読み出した除外タスクＤ，Ｅの周期Ｔ５とＴ８の最小公倍数Ｔｖの仮想タイムスロットを作成する（図５（ｂ））。この場合、周期Ｔ５はＴ５＝５であり、周期Ｔ８はＴ８＝８であるので、最小公倍数ＴｖはＴｖ＝５×８＝４０となり、Ｔｖ＝４０個の仮想タイムスロットが作成される。
【００４０】
また、ＣＰＵ１は、凝集化された実行スケジュールＳＫＪ２を仮想タイムスロットに対応づけるための拡張カウンタをＮｃとし（図５（ｃ））、除外タスクＤの周期カウンタをＮ５とし（図５（ｄ））、除外タスクＥの周期カウンタをＮ８とし（図５（ｅ））、これら拡張カウンタＮｃおよび周期カウンタＮ５，Ｎ８のカウント値を０に初期化する。
【００４１】
なお、拡張カウンタＮｃは、Ｔｖ＝４０個の仮想タイムスロットを凝集化された実行スケジュールＳＫＪ２内の最大周期（凝集化された実行スケジュールＳＫＪ２のタイムスロット数）Ｔｐ＝４で除した値（Ｔｖ／Ｔｐ）−１を最大カウント値とし、Ｔｐ＝４個のタイムスロットをカウントする毎に、その値が１アップするカウンタである。この拡張カウンタＮｃによって、Ｔｖ＝４０個の仮想タイムスロットが４個ずつ１０分割され、この分割された４個ずつの仮想タイムスロットが拡張カウンタＮｃの値に対応付けられる。
【００４２】
また、周期カウンタＮ５は、Ｔｖ＝４０個の仮想タイムスロットを周期Ｔ５（Ｔ５＝５）で除した値（Ｔｖ／Ｔ５）−１を最大カウント値とし、タイムスロットを５カウントする毎に、その値が１アップするカウンタである。また、周期カウンタＮ８は、Ｔｖ＝４０個の仮想タイムスロットを周期Ｔ８（Ｔ８＝８）で除した値（Ｔｖ／Ｔ８）−１を最大カウント値とし、タイムスロットを８カウントする毎に、その値が１アップするカウンタである。
【００４３】
ＣＰＵ１は、周期カウンタＮ５によってタイムスロットをカウントして行く際、オフセット値Ｔ５_offset＝０の位置で、仮想タイムスロットに除外タスクＤの実行タイムスロットを当てはめる（図５（ｂ），（ｄ）参照）。また、周期カウンタＮ８によってタイムスロットをカウントして行く際、オフセット値Ｔ５_offset＝７の位置で、仮想タイムスロットに除外タスクＥの実行タイムスロットを当てはめる（図５（ｂ），（ｅ）参照）。
【００４４】
また、ＣＰＵ１は、拡張カウンタＮｃによってタイムスロットをカウントして行く際、その拡張カウンタＮｃの値によって対応づけられる分割された仮想タイムスロットからその仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される凝集化された実行スケジュールＳＫＪ２に追加する（図５（ａ），（ｂ）参照）。
【００４５】
ＣＰＵ１は、除外タスクの実行タイムスロットが追加された凝集化された実行スケジュールＳＫＪ２をマージされた実行スケジュールとし、このマージされた実行スケジュールの実行後、そのマージされた実行スケジュールから追加された除外タスクの実行タイムスロットを削除する。そして、拡張カウンタＮｃの値を１アップする。
【００４６】
なお、拡張カウンタＮｃのカウント値がＮｃ＝（Ｔｖ／Ｔｐ）−１＝（４０／４）−１＝９となった後は、拡張カウンタＮｃの値を０に戻し、また、周期カウンタＮ５の値がＮ５＝（Ｔｖ／Ｔ５）−１＝（４０／５）−１＝７となった後は、周期カウンタＮ５の値を０に戻し、また、周期カウンタＮ８の値がＮ８＝（Ｔｖ／Ｔ８）−１＝（４０／８）−１＝４となった後は、周期カウンタＮ８の値を０に戻し、同様動作を繰り返す。
【００４７】
このようにして、ＣＰＵ１は、拡張カウンタＮｃの値をアップさせながら、その拡張カウンタＮｃの値によって対応付けられる仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットを読み取り、その読み取った除外タスクの実行タイムスロットを凝集化された実行スケジュールＳＫＪ２へ追加することによって、定周期タスクＡ，Ｂ，Ｃ，Ｄ，Ｅの処理を実行して行く。すなわち、凝集化された実行スケジュールＳＫＪ２に登録されている定周期タスクＡ，Ｂ，Ｃに加え、登録されていない定周期タスクＤ，Ｅについても、その処理を実行して行く。
【００４８】
図６に上述した定周期タスク実行装置１００の要部の機能ブロック図を示す。定周期タスク実行装置１００は、実行スケジュール凝集化部１００Ａと、メモリ１００Ｂと、定周期タスク実行部１００Ｃとを備えている。
【００４９】
実行スケジュール凝集化部１００Ａは、入力される複数の定周期タスクの実行スケジュールを行列化する行列化部１１と、この行列化部１１によって行列化された実行スケジュールの充填率（スケジュール充填率）ρを算出する充填率算出部１２と、充填率算出部１２によって算出されたスケジュール充填率ρが凝集判別閾値ρｔｈを超えているか否かを判別する凝集化判別部１３と、凝集化判別部１３によってスケジュール充填率ρが凝集判別閾値ρｔｈを超えていないと判別された場合、行列化部１１に対して最長周期の実行スケジュールを除外して再行列化を行わせる最長周期除外部１４とを備えている。
【００５０】
この実行スケジュール凝集化部１００Ａにおいて、凝集化判別部１３は、スケジュール充填率ρが凝集判別閾値ρｔｈを超えていると判別した場合、最終的に残された実行スケジュールの行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとしてメモリ１００Ｂに記憶させるとともに、除外された定周期タスクを除外タスクとし、その除外タスクの周期Ｔｉおよびオフセット値Ｔｉ_offsetをメモリ１００Ｂに記憶させる。
【００５１】
定周期タスク実行部１００Ｃは、メモリ１００Ｂに記憶されている凝集化された実行スケジュールおよび除外タスクの周期Ｔおよびオフセット値Ｔｉ_offsetを読み出す実行スケジュール読出部１５と、実行スケジュール読出部１５によって読み出された除外タスクの周期Ｔｉの最小公倍数の仮想タイムスロットを作成する仮想タイムスロット作成部１６と、実行スケジュール読出部１５によって読み出された除外タスクの周期Ｔｉおよびオフセット値Ｔｉ_offsetに基づいて仮想タイムスロットにその除外タスクの実行タイムスロットを当てはめる実行タイムスロット当てはめ部１７と、仮想タイムスロットを凝集化された実行スケジュールのタイムスロット数で分割し、その分割された仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される凝集化された実行スケジュールに追加する実行タイムスロット追加部１８とを備えている。
【００５２】
〔実施の形態の拡張〕
以上、実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００５３】
１…ＣＰＵ、２…ＲＡＭ、３…ＲＯＭ、４…記憶装置、５〜７…インターフェイス、８…ディスプレイ、９…キーボード、１０…マウス、ＳＫＪ２…凝集化された実行スケジュール、１１…行列化部、１２…充填率算出部、１３…凝集化判定部、１４…最長周期除外部、１５…実行スケジュール読出部、１６…仮想タイムスロット作成部、１７…実行タイムスロット当てはめ部、１８…実行タイムスロット追加部、１００…定周期タスク実行装置、１００Ａ…実行スケジュール凝集化部、１００Ｂ…メモリ、１００Ｃ…定周期タスク実行部。
【図１】
2013033378.tif 000003
【図２】
2013033378.tif 000004
【図３】
2013033378.tif 000005
【図４】
2013033378.tif 000006
【図５】
2013033378.tif 000007
【図６】
2013033378.tif 000008
【図７】
2013033378.tif 000009
【図８】
2013033378.tif 000010