"スケジュール化された複数の定周期タスクを実行する定周期タスク実行装置において、前記複数の定周期タスクの実行スケジュールを行列化し、その行列化した実行スケジュールの充填率を算出し、この算出される充填率が所定値を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、前記実行スケジュールの行列化を繰り返す行列化手段と、前記行列化手段による行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとして記憶する凝集化実行スケジュール記憶手段と、前記行列化手段による行列化の繰り返しによって除外された定周期タスクを除外タスクとし、この除外タスクの周期および実行タイムスロットの位置を特定するためのオフセット値を記憶する除外タスク実行スケジュール記憶手段とを備えることを特徴とする定周期タスク実行装置。請求項1に記載された定周期タスク実行装置において、前記記憶されている凝集化された実行スケジュールおよび前記除外タスクの周期およびオフセット値を読み出す手段と、前記読み出された除外タスクの周期の最小公倍数の仮想タイムスロットを作成する手段と、前記読み出された除外タスクの周期およびオフセット値に基づいて前記仮想タイムスロットにその除外タスクの実行タイムスロットを当てはめる手段と、前記仮想タイムスロットを前記凝集化された実行スケジュールのタイムスロット数で分割し、その分割された仮想タイムスロットに当てはめられている前記除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される前記凝集化された実行スケジュールに追加する手段とを備えることを特徴とする定周期タスク実行装置。スケジュール化された複数の定周期タスクを実行する定周期タスク実行方法において、前記複数の定周期タスクの実行スケジュールを行列化し、その行列化した実行スケジュールの充填率を算出し、この算出される充填率が所定値を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、前記実行スケジュールの行列化を繰り返す行列化ステップと、前記行列化ステップによる行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとして記憶する凝集化実行スケジュール記憶ステップと、前記行列化ステップによる行列化の繰り返しによって除外された定周期タスクを除外タスクとし、この除外タスクの周期および実行タイムスロットの位置を特定するためのオフセット値を記憶する除外タスク実行スケジュール記憶ステップとを備えることを特徴とする定周期タスク実行方法。請求項3に記載された定周期タスク実行方法において、前記記憶されている凝集化された実行スケジュールおよび前記除外タスクの周期およびオフセット値を読み出すステップと、前記読み出された除外タスクの周期の最小公倍数の仮想タイムスロットを作成するステップと、前記読み出された除外タスクの周期およびオフセット値に基づいて前記仮想タイムスロットにその除外タスクの実行タイムスロットを当てはめるステップと、前記仮想タイムスロットを前記凝集化された実行スケジュールのタイムスロット数で分割し、その分割された仮想タイムスロットに当てはめられている前記除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される前記凝集化された実行スケジュールに追加するステップとを備えることを特徴とする定周期タスク実行方法。しかしながら、従来のメモリへの実行スケジュールの記憶方法によると、周期の長い定周期タスクが混在していた場合、周期が短い定周期タスクの実行タイムスロットを実行スケジュール上に大量に配置しなければならず、メモリの記憶領域の使用効率が悪くなるという問題があった。例えば、図7に示した例では、定周期タスクDと定周期タスクEがなければ、図8に示すように物理タイムスロットをSlot1~Slot4として、メモリM1の記憶領域の使用効率を半減することが可能となる。しかし、長周期の定周期タスクDとEがあるため、短周期の定周期タスクA,B,Cの実行タイムスロットを繰り返し配置しなければならない。これがメモリM1の記憶領域の使用効率を悪くしている。本発明は、このような課題を解決するためになされたもので、その目的とするところは、周期の長い定周期タスクの混在によるメモリの記憶領域の使用効率の悪化を防ぐことが可能な定周期タスク実行装置および方法を提供することにある。このような目的を達成するために本発明請求項1に係る発明は、スケジュール化された複数の定周期タスクを実行する定周期タスク実行装置において、複数の定周期タスクの実行スケジュールを行列化し、その行列化した実行スケジュールの充填率を算出し、この算出される充填率が所定値を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、実行スケジュールの行列化を繰り返す行列化手段と、行列化手段による行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとして記憶する凝集化実行スケジュール記憶手段と、行列化手段による行列化の繰り返しによって除外された定周期タスクを除外タスクとし、この除外タスクの周期および実行タイムスロットの位置を特定するためのオフセット値を記憶する除外タスク実行スケジュール記憶手段とを備えることを特徴とする。この発明によれば、複数の定周期タスクの実行スケジュールが行列化され、その行列化された実行スケジュールの充填率が算出され、この算出される充填率が所定値例えば、50を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、実行スケジュールの行列化が繰り返される。そして、この行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールが凝集化された実行スケジュールとしてメモリに記憶される。また、この行列化の繰り返しによって除外された定周期タスクが除外タスクとされ、この除外タスクの周期およびオフセット値がメモリに記憶される。また、本発明請求項2に係る発明は、記憶されている凝集化された実行スケジュールおよび除外タスクの周期およびオフセット値を読み出す手段と、読み出された除外タスクの周期の最小公倍数の仮想タイムスロットを作成する手段と、読み出された除外タスクの周期およびオフセット値に基づいて仮想タイムスロットにその除外タスクの実行タイムスロットを当てはめる手段と、仮想タイムスロットを凝集化された実行スケジュールのタイムスロット数で分割し、その分割された仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される凝集化された実行スケジュールに追加する手段とを備えることを特徴とする。この発明によれば、メモリに記憶されている凝集化された実行スケジュールおよび除外タスクの周期およびオフセット値が読み出され、読み出された除外タスクの周期の最小公倍数の仮想タイムスロットが作成され、読み出された除外タスクの周期およびオフセット値に基づいて仮想タイムスロットにその除外タスクの実行タイムスロットが当てはめられる。そして、仮想タイムスロットが凝集化された実行スケジュールのタイムスロット数で分割され、その分割された仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットが読み取られ、この読み取られた除外タスクの実行タイムスロットがその分割された仮想タイムスロットに対応するタイミングで実行される凝集化された実行スケジュールに追加される。なお、本発明は、定周期タスク実行装置としてではなく、定周期タスク実行方法としても実現することが可能である。請求項3に係る発明は、請求項1の定周期タスク実行装置での手法を定周期タスク実行方法として実現したものであり、請求項4に係る発明は、請求項2の定周期タスク実行装置での手法を定周期タスク実行方法として実現したものである。本発明によれば、複数の定周期タスクの実行スケジュールを行列化し、その行列化した実行スケジュールの充填率を算出し、この算出される充填率が所定値を超えるまで、最長周期の定周期タスクの実行スケジュールを除外して、実行スケジュールの行列化を繰り返し、この行列化の繰り返しによって最終的に残された行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとして記憶させるとともに、この行列化の繰り返しによって除外された定周期タスクを除外タスクとし、この除外タスクの周期および実行タイムスロットの位置を特定するためのオフセット値を記憶させるようにしたので、周期の長い定周期タスクが混在していても、周期が短い定周期タスクの実行タイムスロットを実行スケジュール上に大量に配置しなくてもよくなり、メモリの記憶領域の使用効率の悪化を防ぐことが可能となる。以下、本発明の実施の形態を図面に基づいて詳細に説明する。図1は本発明に係る定周期タスク実行装置の一実施の形態のハードウェア構成の概略を示す図である。同図において、1はCPU、2はRAM、3はROM、4はハードディスクなどの記憶装置、5~7はインターフェイス、8はディスプレイ、9はキーボード、10はマウスである。この定周期タスク実行装置100において、CPU1は、インターフェイス5~7を介して与えられる各種入力情報を得て、RAM2にアクセスしながら、ROM3に格納されたプログラムに従って動作する。ROM3には、本実施の形態特有のプログラムとして、複数の定周期タスクの実行スケジュールを凝集化する実行スケジュール凝集化プログラムと、凝集化された実行スケジュールに基づいて複数の定周期タスクを実行する定周期タスク実行プログラムとが格納されている。実行スケジュールの凝集化図2にROM3に格納された実行スケジュール凝集化プログラムに従ってCPU1が実行する処理動作のフローチャートを示す。以下、このフローチャートを参照して、CPU1が実行する実行スケジュールの凝集化について説明する。CPU1は、操作者から入力される複数の定周期タスクの実行スケジュールを取り込みステップS101、この取り込んだ複数の定周期タスクの実行スケジュールの行列スケジュール行列を作成するステップS102。図3aに操作者から入力される複数の定周期タスクの実行スケジュールを例示する。この例では、図7を用いて説明した定周期タスクA,B,C,D,Eについて、その実行スケジュールが入力されるものとする。定周期タスクA,B,C,D,Eの実行スケジュールが入力されると、CPU1は、図3bに示されるような、●で示される実行タイムスロットを要素値1とし、他のタイムスロットを要素値0とするスケジュール行列を作成する。そして、CPU1は、このスケジュール行列の充填率スケジュール充填率ρを算出するステップS103。この場合、ρ=要素値1の数/全要素数として、スケジュール充填率ρを算出する。この例において、スケジュール充填率ρは、ρ=17/40=42.5として求められる。次に、CPU1は、この求めたスケジュール充填率ρと予め定められている凝集判別閾値ρthとを比較するステップS104。この例において、凝集判別閾値ρthは50とされているものとする。なお、このステップS104でのスケジュール充填率ρと凝集判別閾値ρthとを比較する処理を凝集化判別処理と呼ぶ図3c参照。この場合、スケジュール充填率ρは42.5であり、凝集判別閾値ρthを超えていないステップS104のNO。このため、CPU1は、ステップS102で作成したスケジュール行列について、最長周期の定周期タスクとして定周期タスクEの実行スケジュールを除外してステップS105、図3d参照、再行列化を行うステップS106。これにより、図3eに示されるようなスケジュール行列が作成される。そして、CPU1は、この作成されたスケジュール行列の充填率スケジュール充填率ρを再び算出するステップS103。この例において、スケジュール充填率ρは、ρ=12/24=50として求められる。CPU1は、この求めたスケジュール充填率ρと凝集判別閾値ρthとを比較するがステップS104、スケジュール充填率ρはまだ凝集判別閾値ρthを超えていないステップS104のNO。このため、CPU1は、ステップS106で作成したスケジュール行列について、最長周期の定周期タスクとして定周期タスクDの実行スケジュールを除外してステップS105、図3d参照、再行列化を行うステップS106。これにより、図3fに示すようなスケジュール行列が作成される。そして、CPU1は、この作成されたスケジュール行列の充填率スケジュール充填率ρを再び算出するステップS103。この例において、スケジュール充填率ρは、ρ=7/12=58.3として求められる。CPU1は、この求めたスケジュール充填率ρと凝集判別閾値ρthとを比較するステップS104。この場合、スケジュール充填率ρは凝集判別閾値ρthを超えているステップS104のYES。CPU1は、スケジュール充填率ρが凝集判別閾値ρthを超えるとステップS104のYES、ステップS103~S106の処理の繰り返しによって最終的に残されたスケジュール行列図3fを凝集化された実行スケジュールの行列とするステップS107。そして、この凝集化された実行スケジュールの行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとし、この凝集化された実行スケジュールを記憶装置4に記憶させるステップS108。図4aに凝集化された実行スケジュールを示す。この凝集化された実行スケジュールSKJ2が記憶装置4に記憶される。また、CPU1は、ステップS103~S106の処理の繰り返しによって除外された定周期タスクDとEを除外タスクとし、この除外タスクDとEの周期Tiとオフセット値Tioffsetを記憶装置4に記憶させるステップS109。この場合、図4bに示すように、除外タスクDの周期T5とオフセット値T5offset=0と、除外タスクEの周期T8とオフセット値T8offset=7とが記憶装置4に記憶される。なお、オフセット値Tioffsetは、除外タスクの実行タイムスロットの位置を特定するための情報である。図3aにおいて、タイムスロットSlot1の位置をオフセット値0とし、タイムスロットSlot8の位置をオフセット値7とする。この場合、除外タスクDはその実行タイムスロットの先頭がタイムスロットSlot1の位置にあるため、オフセット値T5offsetが0とされる。また、除外タスクEはその実行タイムスロットの先頭がタイムスロットSlot8の位置にあるため、オフセット値T8offsetが7とされる。このようにして、本実施の形態では、図4aに示されるような凝集化された実行スケジュールSKJ2と、図4bに示されるような除外タスクの周期Tiとオフセット値Tioffsetとが記憶装置4に記憶されるものとなる。ここで、図7に示した従来の実行スケジュールSKJ1と、本実施の形態による凝集化された実行スケジュールSKJ2とを比較してみる。従来の実行スケジュールSKJ1では物理タイムスロットをSlot1~Slot8の8個としてメモリM1に記憶されるが、本実施の形態による凝集化された実行スケジュールSKJ2では物理タイムスロットをSlot1~Slot4の4個として記憶装置4に記憶される。したがって、本実施の形態によれば、メモリの記憶領域の使用効率が半減される。なお、本実施の形態では、凝集化された実行スケジュールSKJ2と合わせて、除外タスクの周期Tiとオフセット値Tioffsetをメモリへ記憶させる必要があるが、これに必要な記憶領域は極僅かである。定周期タスクの実行図5にROM3に格納された定周期タスク実行プログラムに従ってCPU1が実行する処理動作のタイムチャートを示す。以下、このタイムチャートを参照して、CPU1が行う定周期タスクの実行について説明する。CPU1は、定周期タスクの実行に際して、記憶装置4に記憶されている凝集化された実行スケジュールSKJ2と、除外タスクTiの周期Tiとオフセット値Tioffsetとを読み出す。この例では、除外タスクDの周期T5およびオフセット値T5offset=0と、除外タスクEの周期T8およびオフセット値T5offset=7とを読み出す。そして、読み出した除外タスクD,Eの周期T5とT8の最小公倍数Tvの仮想タイムスロットを作成する図5b。この場合、周期T5はT5=5であり、周期T8はT8=8であるので、最小公倍数TvはTv=5×8=40となり、Tv=40個の仮想タイムスロットが作成される。また、CPU1は、凝集化された実行スケジュールSKJ2を仮想タイムスロットに対応づけるための拡張カウンタをNcとし図5c、除外タスクDの周期カウンタをN5とし図5d、除外タスクEの周期カウンタをN8とし図5e、これら拡張カウンタNcおよび周期カウンタN5,N8のカウント値を0に初期化する。なお、拡張カウンタNcは、Tv=40個の仮想タイムスロットを凝集化された実行スケジュールSKJ2内の最大周期凝集化された実行スケジュールSKJ2のタイムスロット数Tp=4で除した値Tv/Tp-1を最大カウント値とし、Tp=4個のタイムスロットをカウントする毎に、その値が1アップするカウンタである。この拡張カウンタNcによって、Tv=40個の仮想タイムスロットが4個ずつ10分割され、この分割された4個ずつの仮想タイムスロットが拡張カウンタNcの値に対応付けられる。また、周期カウンタN5は、Tv=40個の仮想タイムスロットを周期T5T5=5で除した値Tv/T5-1を最大カウント値とし、タイムスロットを5カウントする毎に、その値が1アップするカウンタである。また、周期カウンタN8は、Tv=40個の仮想タイムスロットを周期T8T8=8で除した値Tv/T8-1を最大カウント値とし、タイムスロットを8カウントする毎に、その値が1アップするカウンタである。CPU1は、周期カウンタN5によってタイムスロットをカウントして行く際、オフセット値T5offset=0の位置で、仮想タイムスロットに除外タスクDの実行タイムスロットを当てはめる図5b,d参照。また、周期カウンタN8によってタイムスロットをカウントして行く際、オフセット値T5offset=7の位置で、仮想タイムスロットに除外タスクEの実行タイムスロットを当てはめる図5b,e参照。また、CPU1は、拡張カウンタNcによってタイムスロットをカウントして行く際、その拡張カウンタNcの値によって対応づけられる分割された仮想タイムスロットからその仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される凝集化された実行スケジュールSKJ2に追加する図5a,b参照。CPU1は、除外タスクの実行タイムスロットが追加された凝集化された実行スケジュールSKJ2をマージされた実行スケジュールとし、このマージされた実行スケジュールの実行後、そのマージされた実行スケジュールから追加された除外タスクの実行タイムスロットを削除する。そして、拡張カウンタNcの値を1アップする。なお、拡張カウンタNcのカウント値がNc=Tv/Tp-1=40/4-1=9となった後は、拡張カウンタNcの値を0に戻し、また、周期カウンタN5の値がN5=Tv/T5-1=40/5-1=7となった後は、周期カウンタN5の値を0に戻し、また、周期カウンタN8の値がN8=Tv/T8-1=40/8-1=4となった後は、周期カウンタN8の値を0に戻し、同様動作を繰り返す。このようにして、CPU1は、拡張カウンタNcの値をアップさせながら、その拡張カウンタNcの値によって対応付けられる仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットを読み取り、その読み取った除外タスクの実行タイムスロットを凝集化された実行スケジュールSKJ2へ追加することによって、定周期タスクA,B,C,D,Eの処理を実行して行く。すなわち、凝集化された実行スケジュールSKJ2に登録されている定周期タスクA,B,Cに加え、登録されていない定周期タスクD,Eについても、その処理を実行して行く。図6に上述した定周期タスク実行装置100の要部の機能ブロック図を示す。定周期タスク実行装置100は、実行スケジュール凝集化部100Aと、メモリ100Bと、定周期タスク実行部100Cとを備えている。実行スケジュール凝集化部100Aは、入力される複数の定周期タスクの実行スケジュールを行列化する行列化部11と、この行列化部11によって行列化された実行スケジュールの充填率スケジュール充填率ρを算出する充填率算出部12と、充填率算出部12によって算出されたスケジュール充填率ρが凝集判別閾値ρthを超えているか否かを判別する凝集化判別部13と、凝集化判別部13によってスケジュール充填率ρが凝集判別閾値ρthを超えていないと判別された場合、行列化部11に対して最長周期の実行スケジュールを除外して再行列化を行わせる最長周期除外部14とを備えている。この実行スケジュール凝集化部100Aにおいて、凝集化判別部13は、スケジュール充填率ρが凝集判別閾値ρthを超えていると判別した場合、最終的に残された実行スケジュールの行列によってその実行タイムスロットが示される実行スケジュールを凝集化された実行スケジュールとしてメモリ100Bに記憶させるとともに、除外された定周期タスクを除外タスクとし、その除外タスクの周期Tiおよびオフセット値Tioffsetをメモリ100Bに記憶させる。定周期タスク実行部100Cは、メモリ100Bに記憶されている凝集化された実行スケジュールおよび除外タスクの周期Tおよびオフセット値Tioffsetを読み出す実行スケジュール読出部15と、実行スケジュール読出部15によって読み出された除外タスクの周期Tiの最小公倍数の仮想タイムスロットを作成する仮想タイムスロット作成部16と、実行スケジュール読出部15によって読み出された除外タスクの周期Tiおよびオフセット値Tioffsetに基づいて仮想タイムスロットにその除外タスクの実行タイムスロットを当てはめる実行タイムスロット当てはめ部17と、仮想タイムスロットを凝集化された実行スケジュールのタイムスロット数で分割し、その分割された仮想タイムスロットに当てはめられている除外タスクの実行タイムスロットを読み取り、この読み取った除外タスクの実行タイムスロットをその分割された仮想タイムスロットに対応するタイミングで実行される凝集化された実行スケジュールに追加する実行タイムスロット追加部18とを備えている。実施の形態の拡張以上、実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。"