少なくとも1つのプロセッサを含むハードウェア資源と、a制御対象に関する異常の発生を監視する安全監視プログラム、b通常時における前記制御対象の制御に関連する通常制御プログラム、およびc異常時における前記制御対象の制御に関連する安全制御プログラムに対する前記プロセッサの実行時間の割り当てを制御するためのシステムプログラムと、を備え、前記システムプログラムは、d前記安全監視プログラムに前記実行時間を割り当てる第1のタイムパーティション、e前記通常制御プログラムに前記実行時間を割り当てる第2のタイムパーティション、およびf前記安全制御プログラムに前記実行時間を割り当てる第3のタイムパーティションを含むスケジューリングパターンに従って、次にスケジューリングするタイムパーティションを選択決定するパーティションスケジューラを一部に有し、前記プロセッサは、前記システムプログラムを実行することによって、前記パーティションスケジューラを周期的に動作させ、前記パーティションスケジューラは、前記第1乃至第3のタイムパーティションの少なくとも1つのタイムパーティション内で実行されるプログラムからの実行結果通知に応じて、前記スケジューリングパターンに含まれるタイムパーティションのうちで実行不要なプログラムを含むタイムパーティションをスキップする安全制御装置。前記パーティションスケジューラは、前記第1のタイムパーティション内で実行される前記安全監視プログラムによって異常が検知されたことの前記実行通知結果を受取ると、以後のスケジューリングでは、前記第3のタイムパーティション以外のタイムパーティションをスキップすることを特徴とする請求項1に記載の安全制御装置。前記パーティションスケジューラは、前記第1乃至第3のタイムパーティション内でプログラムの初期化処理がそれぞれ実行されて終了したことに応じて、以後のスケジューリングでは、前記第3のタイムパーティションをスキップすることを特徴とする請求項1又は2に記載の安全制御装置。前記ハードウェア資源のリセットを行うリセット回路を更に備え、前記パーティションスケジューラは、前記第1乃至第3のタイムパーティションの少なくとも1つのタイムパーティション内で実行されるプログラムから緊急停止を有する異常であるとの通知に応じて、前記リセット回路にリセット指示信号を出力し、前記リセット回路は、前記リセット指示信号を受けた場合に、前記ハードウェア資源のリセットを行うことを特徴とする請求項1乃至3いずれか1項に記載の安全制御装置。前記ハードウェア資源のリセットを行うリセット回路を更に備え、前記パーティションスケジューラは、前記リセット回路に定期的に信号を送信し、前記第1乃至第3のタイムパーティションの少なくとも1つのタイムパーティション内で実行されるプログラムから緊急停止を有する異常であるとの通知に応じて、前記リセット回路への前記信号の送信を停止し、前記リセット回路は、前記パーティションスケジューラから送信される前記信号が途絶えた場合に、前記ハードウェア資源のリセットを行うことを特徴とする請求項1乃至3いずれか1項に記載の安全制御装置。a制御対象に関する異常の発生を監視する安全監視プログラムにプロセッサの実行時間を割り当てる第1のタイムパーティション、b通常時における前記制御対象の制御に関連する通常制御プログラムに前記実行時間を割り当てる第2のタイムパーティション、およびc異常時における前記制御対象の制御に関連する安全制御プログラムに前記実行時間を割り当てる第3のタイムパーティションを含むスケジューリングパターンに従って、次にスケジューリングするタイムパーティションを前記プロセッサに選択決定させるべく周期的に動作するステップと、前記第1乃至第3のタイムパーティションの少なくとも1つのタイムパーティション内で実行されるプログラムからの実行結果通知に応じて、前記スケジューリングパターンに含まれるタイムパーティションのうちで実行不要なプログラムを含むタイムパーティションを前記プロセッサにスキップさせるべく動作するステップと、を備える制御対象の安全制御方法。前記第1のタイムパーティション内で実行される前記安全監視プログラムによって異常が検知されたことの前記実行通知結果を受取ると、以後のスケジューリングでは、前記第3のタイムパーティション以外のタイムパーティションを前記プロセッサにスキップさせるべく動作するステップをさらに備えることを特徴とする請求項6に記載の安全制御方法。前記第1乃至第3のタイムパーティション内でプログラムの初期化処理がそれぞれ実行されて終了したことに応じて、以後のスケジューリングでは、前記第3のタイムパーティションを前記プロセッサにスキップさせるべく動作するステップをさらに備えることを特徴とする請求項6又は7に記載の安全制御方法。前記プロセッサを含むハードウェア資源のリセットを行うリセット回路を更に備え、前記安全制御方法は、前記第1乃至第3のタイムパーティションの少なくとも1つのタイムパーティション内で実行されるプログラムから緊急停止を有する異常であるとの通知に応じて、前記リセット回路にリセット指示信号を出力するステップと、前記リセット回路を用いて、前記リセット指示信号を受けた場合に、前記ハードウェア資源のリセットを行うステップと、をさらに備えることを特徴とする請求項6乃至8いずれか1項に記載の安全制御方法。前記プロセッサを含むハードウェア資源のリセットを行うリセット回路を更に備え、前記安全制御方法は、前記リセット回路に定期的に信号を送信し、前記第1乃至第3のタイムパーティションの少なくとも1つのタイムパーティション内で実行されるプログラムから緊急停止を有する異常であるとの通知に応じて、前記リセット回路への前記信号の送信を停止するステップと、前記リセット回路を用いて、前記パーティションスケジューラから送信される前記信号が途絶えた場合に、前記ハードウェア資源のリセットを行うステップと、をさらに備えることを特徴とする請求項6乃至8いずれか1項に記載の安全制御方法。しかしながら、特許文献1に例示されるような従来の安全制御装置には、以下に説明するような問題点があった。まず、第1の問題点について、図11Aを用いて具体的に説明する。なお、図11Aでは、TP1は安全監視プログラムを実行するタイムパーティションであり、TP2は通常制御プログラムを実行するタイムパーティションであり、TP3は安全制御プログラムを実行するタイムパーティションである。従来技術に係るシステムプログラムは、予め定められた固定スケジューリングパターンに従って、タイムパーティションの切り替えを行っていた。このため、例えば、図11Aの上部に示す通常制御時のスケジューリングパターン固定パターンに従ってスケジューリングが行われていた場合に異常が発生したときには、図11Aの下部に示す安全制御時のスケジューリングパターン固定パターンへとスケジューリングパターンが切り替えられ、以後は、安全制御時のスケジューリングパターン固定パターンに従ってスケジューリングを行っていた。しかしながら、異常の種類によっては、異常発生時に即座の対応を要するものが存在する。このような異常に関して、例えば図11Aの下部に示す安全制御時のスケジューリングパターンに従ってスケジューリングを実行すると、異常対応のために即時の実行が求められるTP3のみならず、発生した異常に関しては実行が不必要であるTP1についてまでもが繰り返して実行されてしまう。このため、安全が確保されるまでの間はTP3を即時かつ連続して実行させる必要があるにも関わらず、固定パターンとして含まれているTP1までをも実行する必要があった。従って、異常発生時に、安全制御プログラムを実行するタイムパーティションのみを即時かつ連続して実行させることができず、安全制御プログラムによる処理の実行が遅れてしまい、その結果、異常発生時における安全制御が適切に行われないおそれがある、という問題点があった。次に、第2の問題点について、図12及び図13を用いて具体的に説明する。なお、図12は、従来技術に係る通常制御時のスケジューリングパターンの具体例を示している。図13は、従来技術に係るシステムプログラムによるタスク初期化処理に関する処理手順の具体例を示している。タイムパーティションニング機能を備えるシステムプログラムにおいては、安全監視プログラム等によって生成されるタスクを実行するために、そのタスクを実行するタイムリソースタイムパーティションが与えられる必要がある。また、タイムパーティションが与えられてタスクを実行するためには、通常のタスク処理の実行に先立って初期化処理を行う必要がある。さらに、タスクの初期化処理のためには、少なくとも1つのタイムパーティションを必要とする。ここで、従来技術に係るシステムプログラムが、図12に例示する基本的なスケジューリングパターンに従って、スケジューリングを実行していく場合を想定する。ここでは、基本的なスケジューリングパターンとして、1サイクル中に全ての種類のタイムパーティションここでは、TP1、TP2、TP3を含んでいる場合を例に説明する。図13に、従来技術に係るシステムプログラムによるタスク初期化処理に関する処理手順の具体例を示す。図13では、パーティションスケジューラによってTPXTP1~TP3のいずれかのTPに関するタスクが動作させられS111、全てのタイムパーティションに関するタスクの初期化処理が終了するまでの間、TPXに関するタスクの初期化処理が順次、実行されていくS112~S114。そして、全てのタイムパーティションに関するタスクの初期化処理が終了した場合、パーティションスケジューラがTPXに関するタスクを動作させ、以後、通常のタスク処理の実行が開始されるS115。従って、従来技術に係るシステムプログラムが、図13に例示した処理手順に基づいて基本的なスケジューリングパターン例えば図12に従ってスケジューリングを実行する際には、まずは、最初のサイクルにおいて、全てのタイムパーティションTP1、TP2、TP3に関するタスクの初期化処理を、それぞれ少なくとも1つのタイムパーティションで実行し、全てのタスクについての初期化処理が終了した後に、2番目以後のサイクルに含まれるタイムパーティションにおいて、通常のタスク処理を開始することができる。しかし、異常が発生しない場合には、TP3に関しては通常のタスク処理が実行されることはない。このため、2番目以後のサイクルに含まれるTP3は、何らタスクが実行されないことになる。すなわち、最初のサイクルにおいてTP3に関するタスクの処理化処理を終了した場合に、2番目以後のサイクルに含まれるTP3には、異常時以外は実行するタスクが存在しないことになる。よって、全てのタスクについての初期化処理が終了した以後、異常がほとんど発生しないような情況においても、実際には不要なTP3が毎サイクルスケジューリングされることになる。通常制御プログラムにより生成されるタスクに関しては、安全監視プログラムにより生成されるタスク等と比較して、より長くの実行時間を確保できることが好ましいといえる。従来技術では、初期化処理が終了した以後においても不要なTP3がスケジューリングされるために、結果として、通常制御プログラムにより生成されるタスクの実行時間TP2に対して、より長い時間を割り当てることができない、という問題点があった。本願の発明者は、特許文献1に開示された従来技術を鋭意検討し、上述したような問題点が以下の原因によって生じることを見出した。まず、特許文献1に開示されたOS100では、安全監視プロセス21が、タイムパーティションの切り替え順序およびタイミングを規定するスケジューリングパターンの選択を行い、OS100が、スケジューリングパターンに従って、パーティションスケジューリングを行うものである特許文献1の段落0036及び段落0039、図4など参照。。すなわち、安全監視プロセス21によって指定された固定のスケジューリングパターンに従って、OS100がタイムパーティションの切り替えを行う点が開示されている。従って、特許文献1に開示されたOS100では、パーティションの切り替えに関して、TP1での安全監視プロセス21による選択結果に依存するものであるために、スケジューリングパターンに当初予定されていたTP1をスキップすることはできないものである。また、特許文献1に開示されたOS100では、TP1での安全監視プロセス21によって、通常制御プロセス22の実行状況の監視と、I/Oポート12の入出力データの監視と、を行うものにすぎず特許文献1の段落0036など参照。、安全制御プロセス23や安全監視プロセス21自身の実行状況を考慮した上で、いずれのTPをスキップ対象とするのかについて選択決定することができないものである。このように、特許文献1に開示されたOS100では、各タイムパーティションにおいて生成されるプロセスからパーティションスケジューリング機能が独立しておらず、また、パーティションスケジューリング機能が全てのプロセスの実行状況を把握できていないために、実行が不要なタイムパーティションを意図的にスキップすることができないという課題があった。その結果、上述した問題点を解決することができないものであった。本発明は、上述した知見に基づいてなされたものであって、実行が不要なタイムパーティションのスキップを可能とする安全制御装置及び安全制御方法を提供することを目的とする。本発明の一態様にかかる安全制御装置は、少なくとも1つのプロセッサを含むハードウェア資源と、a制御対象に関する異常の発生を監視する安全監視プログラム、b通常時における前記制御対象の制御に関連する通常制御プログラム、およびc異常時における前記制御対象の制御に関連する安全制御プログラムに対する前記プロセッサの実行時間の割り当てを制御するためのシステムプログラムと、を備える。前記システムプログラムは、d前記安全監視プログラムに前記実行時間を割り当てる第1のタイムパーティション、e前記通常制御プログラムに前記実行時間を割り当てる第2のタイムパーティション、およびf前記安全制御プログラムに前記実行時間を割り当てる第3のタイムパーティションを含むスケジューリングパターンに従って、次にスケジューリングするタイムパーティションを選択決定するパーティションスケジューラを一部に有する。前記プロセッサは、前記システムプログラムを実行することによって、前記パーティションスケジューラを周期的に動作させる。前記パーティションスケジューラは、前記第1乃至第3のタイムパーティションの少なくとも1つのタイムパーティション内で実行されるプログラムからの実行結果通知に応じて、前記スケジューリングパターンに含まれるタイムパーティションのうちで実行不要なプログラムを含むタイムパーティションをスキップする。上述した本発明の一態様によれば、パーティションスケジューラは、各タイムパーティションに関する状況を一元的に把握することができ、実行が不要なタイムパーティションについてはスキップすることが可能となる。また、前記パーティションスケジューラは、前記第1のタイムパーティション内で実行される前記安全監視プログラムによって異常が検知されたことの前記実行通知結果を受取ると、以後のスケジューリングでは、前記第3のタイムパーティション以外のタイムパーティションをスキップするものしてもよい。これにより、異常発生時に、安全制御プログラムを実行するタイムパーティションのみを即時かつ連続して実行させることができ、異常発生時における安全制御を適切に行うことができる。さらにまた、前記パーティションスケジューラは、前記第1乃至第3のタイムパーティション内でプログラムの初期化処理がそれぞれ実行されて終了したことに応じて、以後のスケジューリングでは、前記第3のタイムパーティションをスキップするものしてもよい。これにより、通常制御プログラムに対して、より長い実行時間を割り当てることができる。また、前記ハードウェア資源のリセットを行うリセット回路を更に備え、前記パーティションスケジューラは、前記第1乃至第3のタイムパーティションの少なくとも1つのタイムパーティション内で実行されるプログラムから緊急停止を有する異常であるとの通知に応じて、前記リセット回路にリセット指示信号を出力し、前記リセット回路は、前記リセット指示信号を受けた場合に、前記ハードウェア資源のリセットを行うものしてもよい。さらにまた、前記ハードウェア資源のリセットを行うリセット回路を更に備え、前記パーティションスケジューラは、前記リセット回路に定期的に信号を送信し、前記第1乃至第3のタイムパーティションの少なくとも1つのタイムパーティション内で実行されるプログラムから緊急停止を有する異常であるとの通知に応じて、前記リセット回路への前記信号の送信を停止し、前記リセット回路は、前記パーティションスケジューラから送信される前記信号が途絶えた場合に、前記ハードウェア資源のリセットを行うものとしてもよい。本発明によれば、実行が不要なタイムパーティションのスキップを可能とする安全制御装置及び安全制御方法を提供することができる。以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。<発明の実施の形態1>本実施の形態にかかる安全制御装置1は、サービスロボットや運輸機器等に搭載されて機能安全確保のための安全制御を実行する。安全制御装置1は、安全関連アプリケーションと非安全関連アプリケーションを同一のコンピュータシステムで実行するよう構成される。図1は、本実施の形態にかかる安全制御装置1の構成例を示すブロック図である。プロセッサ10は、プログラム命令ストリームの取得、命令のデコード、命令のデコード結果に応じた演算処理を行う。なお、図1では、1つのプロセッサ10のみを示しているが、安全制御装置1は、複数のプロセッサ10を有するマルチプロセッサ構成であってもよい。また、プロセッサ10は、マルチコアプロセッサでもよい。プロセッサ10は、システムプログラムとしてのオペレーティングシステムOS100を実行することによりマルチプログラミング環境を提供する。マルチプログラミング環境とは、複数のプログラムを定期的に切り替えて実行したり、あるイベントの発生に応じて実行するプログラムを切り替えたりすることによって、複数のプログラムがあたかも並列実行されているような環境を意味する。マルチプログラミングは、マルチプロセス、マルチスレッド、マルチタスク等と呼ばれる場合もある。プロセス、スレッド及びタスクは、マルチプログラミング環境で並列実行されるプログラム単位を意味する。本実施の形態のプロセッサ10が具備するマルチプログラミング環境は、マルチプロセス環境でもよいし、マルチスレッド環境でもよい。実行用メモリ11は、プロセッサ10によるプログラム実行のために使用されるメモリである。実行用メモリ11には、不揮発性メモリ13からロードされたプログラムOS100及びアプリケーション101~103等、プロセッサ10の入出力データ等が記憶される。なお、プロセッサ10は、プログラムを不揮発性メモリ13から実行用メモリ11にロードすることなく、これらのプログラムを不揮発性メモリ13から直接実行してもよい。具体的には、実行用メモリ11は、SRAMStaticRandomAccessMemory、DRAMDynamicRandomAccessMemory等のランダムアクセス可能な揮発性メモリとすればよい。図1の実行用メモリ11は、論理的な構成単位を示している。すなわち、実行用メモリ11は、例えば、複数のSRAMデバイスの組み合わせ、複数のDRAMデバイスの組み合わせ、又はSRAMデバイスとDRAMデバイスの組み合わせでもよい。I/Oポート12は、外部デバイスとの間のデータ送受信に使用される。例えば、安全制御装置1がサービスロボットに搭載される場合であれば、外部デバイスは、サービスロボット周囲の障害物を計測可能な視覚センサ、サービスロボットを動作させるアクチュエータ等である。不揮発性メモリ13は、電力の供給を受けることなく、実行用メモリ11に比べて安定的に記憶内容を維持することが可能なメモリデバイスである。例えば、不揮発性メモリ13は、ROMReadOnlyMemory、フラッシュメモリ、ハードディスクドライブ若しくは光ディスクドライブ、又はこれらの組み合わせである。不揮発性メモリ13は、OS100及びアプリケーション101~103を格納する。なお、不揮発性メモリ13の少なくとも一部は安全制御装置1から取り外し可能に構成されてもよい。例えば、アプリケーション101~103が格納されたメモリを取り外し可能としてもよい。また、不揮発性メモリ13の少なくとも一部は、安全制御装置1の外部に配置されてもよい。OS100は、プロセッサ10によって実行されることにより、プロセッサ10及び実行用メモリ11及び不揮発性メモリ13等のハードウェア資源を利用して、タスクスケジューリングを含むタスク管理、割り込み管理、時間管理、資源管理、タスク間同期およびタスク間通信機構の提供等を行う。さらに、機能安全の確保に関連する安全監視アプリケーション101及び安全制御アプリケーション103の通常制御アプリケーション102からの独立性を高めるため、OS100は、ハードウェア資源を、時間的および空間的に保護する機能を有する。ここで、ハードウェア資源とは、プロセッサ10、実行用メモリ11、I/Oポート12を含む。このうち、時間的な保護は、プロセッサ10の実行時間という時間的な資源をパーティショニングすることにより行う。具体的に述べると、時間的な保護は、プロセッサ10の実行時間をパーティショニングし、各パーティションタイムパーティションと呼ぶにタスクプロセス又はスレッドを割り当てることにより行う。OS100のスケジューリング機能パーティションスケジューラ21は、各タイムパーティション以下、TPと略称する場合がある。に割り当てられたタスクに対して、プロセッサ10の実行時間を含む資源の利用を保証する。図2は、タイムパーティショニングに関する概念図である。図2の例では、予め定められた1サイクル時間を3つのTP1、TP2及びTP3に分割する例を示している。例えば、1サイクル時間を100Tickとした場合、このうち前半の20TickがTP1、中間の30TickがTP2、後半の50TickがTP3と規定される。また、図2の例では、第1アプリケーションAPL1~第4アプリケーションAPL4が、TP1~TP3のいずれかに割り当てられている。OS100のスケジューリング機能パーティションスケジューラ21は、時間の経過に応じて、TP1~TP3のいずれをアクティブにするかを選択決定する。そして、アクティブなTPに割り当てられているアプリケーションが、プロセッサ10で実行される。一方、空間的な保護は、実行用メモリ11及びI/Oポート12を含む固定的な資源をパーティショニングし、各パーティションリソースパーティションと呼ぶにタスクを割り当てることにより行う。OS100のスケジューリング機能パーティションスケジューラ21は、予め割り当てられたリソースパーティション以下、RPと略称する場合がある。を超えてタスクが他のリソースにアクセスすることを禁止する。図3は、リソースパーティショニングに関する概念図である。図3の例では、2つのRPRP1及びRP2を示している。RP1には、実行用メモリ11及び不揮発性メモリ13の一部A領域と、I/Oポート12の一部ポートAが割り当てられている。また、RP2には、実行用メモリ11及び不揮発性メモリ13の他の一部B領域と、I/Oポート12の他の一部ポートBが割り当てられている。RP1からはRP2に割り当てられたリソースへのアクセスが禁止され、RP2からはRP1に割り当てられたリソースへのアクセスが禁止される。なお、全てのリソースがいずれかのRPに排他的に割り当てられる必要はない。つまり、複数のRPによって共有されるリソースがあってもよい。例えば、サービスロボットの安全制御を行う場合、アクチュエータには、通常制御アプリケーション101及び安全制御アプリケーション102の双方からアクセスできる必要がある。よって、通常制御アプリケーション101が属するRPと安全制御アプリケーション102が属するRPによって、アクチュエータを制御するためのI/Oポートを共有するとよい。図1に戻り説明を続ける。アプリケーション101~103は、OS100及びプロセッサ10によって提供されるマルチプログラミング環境で実行される。このうち、安全監視アプリケーション101は、通常制御アプリケーション102の実行状況の監視と、安全制御アプリケーション103の実行状況の監視と、I/Oポート12への入出力データの監視と、をプロセッサ10に実行させるための命令コードを含む。さらに、安全監視アプリケーション101は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。つまり、安全監視アプリケーション101は、安全関連アプリケーションである。また、通常制御アプリケーション102は、サービスロボット等の制御対象に通常の機能動作を行わせるための制御手順をプロセッサ10に実行させるための命令コードを含む。さらに、通常制御アプリケーション102は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。つまり、通常制御アプリケーション102は、非安全関連アプリケーションである。また、安全制御アプリケーション103は、何らかの異常が検出された場合に対応して、機能安全を確保するために定められた制御手順をプロセッサ10に実行させるための命令コードを含む。さらに、安全制御アプリケーション103は、パーティションスケジューラ21への結果通知をプロセッサ10に実行させるための命令コードを含む。つまり、安全制御アプリケーション103は、安全関連アプリケーションである。リセット回路14は、OS100からの信号に基づき、マイクロコントローラ15のリセットを行う。リセット回路14を用いたマイクロコントローラ15のリセット機構については後述する。続いて以下では、パーティションスケジューラ21と、アプリケーション101~103の起動により生成されるタスクと、の関係について、図4を用いて説明する。図4は、OS100によって提供されるマルチプログラミング環境で起動される、パーティションスケジューラ21とタスク24、26、28との関係を示す図である。マイクロコントローラ15は、プロセッサ10、実行用メモリ11、I/Oポート12、不揮発性メモリ13等を含む。なお、図4では、マイクロコントローラ15の外部にリセット回路14を備える構成を例示しているが、マイクロコントローラ15の内部にリセット回路14を含む構成としてもよい。マイクロコントローラ15には、外部のクロック源からのクロック信号が供給され、プロセッサ10等は、このクロック信号に基づく所定のタイマー周期で動作する。本実施の形態では、所定のタイマー周期を、1Tickであるとして説明する。このため、プロセッサ10によりOS100が実行されることで、パーティションスケジューラ21が1Tickごとに動作すると共に、各TP内で、タスクスケジューラ23、25、27およびタスク安全監視タスク24、通常制御タスク26、安全制御タスク28が、1Tickごとに動作する。パーティションスケジューラ21は、1Tickごとに動作し、TPの切り替えパーティションスケジューリングを行う。パーティションスケジューラ21は、次の1Tickの間にTP1~TP3のいずれをアクティブにするかを選択決定する。さらに、パーティションスケジューラ21は、選択したTPに関するタスクスケジューラの動作を開始させる。パーティションスケジューラ21によるパーティションスケジューリングについて具体的に述べると、パーティションスケジューラ21は、スケジューリングテーブル22を参照し、TPの設定を定めたスケジューリングパターンに従って、パーティションスケジューリングを行う。スケジューリングテーブル22は、TPの切り替え順序およびタイミングを規定したスケジューリングパターンを保持している。なお、スケジューリングテーブル22は、少なくとも2つの異なるスケジューリングパターンを保持している。1つは、安全監視タスク24による異常検知が行われていない場合つまり通常時に適用されるスケジューリングパターンである。もう1つは、安全監視タスク24によって異常が検知された場合に適用されるスケジューリングパターンである。以下では、通常時に適用されるスケジューリングパターンを通常制御スケジューリングパターンと呼ぶ。また、異常検知時に適用されるスケジューリングパターンを安全制御スケジューリングパターンと呼ぶ。図5Aは、通常制御スケジューリングパターンの具体例を示している。図5Aでは、通常制御タスク26が属するTP2が1サイクル時間の前半T1に割り当てられている。また、安全監視タスク24が属するTP1が1サイクル時間の後半T2に割り当てられている。図5Aのスケジューリングパターンによれば、通常制御タスク26と安全監視タスク24が繰り返しスケジューリングされる。図5Bは、安全制御スケジューリングパターンの具体例を示している。図5Bでは、安全制御タスク28が属するTP3が1サイクル時間の前半T3に割り当てられている。また、安全監視タスク24が属するTP1が1サイクル時間の後半T4に割り当てられている。図5Bのスケジューリングパターンによれば、安全制御タスク28と安全監視タスク24が繰り返しスケジューリングされる。図4に戻り説明を続ける。タスクスケジューラ23、25、27は、それぞれが属するTP内でのタスクのスケジューリングを行う。各TP内でのタスクのスケジューリングには、一般的な優先度ベースのスケジューリングを適用すればよい。なお、図4では、各TPはそれぞれ1つのタスクのみを含むものとして図示しているが、実際には、1以上のタスクが含まれている。例えば、通常制御用のTP2内には、通常制御タスクA及び通常制御タスクBの2つのタスクが含まれていてもよい。安全監視タスク24は、安全監視アプリケーション101の起動によって生成されるタスクである。図4の例では、安全監視タスク24は、TP1及びRP1に割り当てられている。安全監視タスク24は、非安全関連アプリケーションである通常制御タスク26の実行状況の監視と、安全関連アプリケーションである安全制御タスク28の実行状況の監視と、I/Oポート12の入出力データを監視する。さらに、安全監視タスク24は、タスクの実行状況結果を、パーティションスケジューラ21へ通知する。通常制御タスク26は、通常制御アプリケーション102の起動によって生成されるタスクである。図4の例では、通常制御タスク26は、TP2及びRP2に割り当てられている。通常制御タスク26は、サービスロボット等の制御対象に通常の機能動作を行わせるための制御を行う。さらに、通常制御タスク26は、タスクの実行状況結果を、パーティションスケジューラ21へ通知する。安全制御タスク28は、安全制御アプリケーション103の起動によって生成されるタスクである。図4の例では、安全制御タスク28は、TP3及びRP3に割り当てられている。安全制御タスク28は、何らかの異常が検出された場合に対応して、機能安全を確保するために定められた制御を行う。さらに、安全制御タスク28は、タスクの実行状況結果を、パーティションスケジューラ21へ通知する。なお、各タスクからパーティション21へと結果を通知する具体的な構成としては、様々な手法を採用することができる。例えば、タスクがOS100のシステムコールサービスコールを呼び出し、OS100を介して、パーティションスケジューラ21に結果を通知することができる。また、例えば、タスクの実行状況に関するフラグを実行用メモリ11に格納するものとして、タスクがその実行状況に応じてフラグの値を設定し、パーティションスケジューラ21がフラグの設定値に応じてタスクの実行状況を判断することもできる。上述したように、パーティションスケジューラ21が1Tickごとに動作し、TP1~TP3のいずれをアクティブにするかを選択決定する。さらに、パーティションスケジューラ21が、選択したTPに関するタスクスケジューラの動作を開始させる。そして、タスクスケジューラ23、25、27が動作を開始することでタスクのスケジューリングが行われ、プロセッサ10が、タスクスケジューラ23、25、27によりスケジューリングされた順序に従って、TP内でのタスクを実行していく。これによって、アクティブなTPに割り当てられているアプリケーションが、プロセッサ10で実行される。続いて以下では、パーティションスケジューラ21によるパーティションスケジューリングについて、図6を用いて説明する。図6は、パーティションスケジューラ21の処理手順の具体例を示すフローチャートである。なお、図6では、通常制御スケジューリングパターン例えば図5Aまたは安全制御スケジューリングパターン例えば図5Bに従って、スケジューリングを実行する場合を例に説明する。すなわち、TP2またはTP3に続く次のTPはTP1であり、かつ、TP2での異常がTP1で検知された場合に、TP1からの結果を受けて次に選択決定されるTPはTP3である場合を例に説明する。まず、1Tickごとに動作するパーティションスケジューラ21が、TPXのタスクスケジューラを動作させるS11。ここで、変数XはTPの番号を示し、Xは1以外の値とする。すなわち、S11では、安全監視用のTP1を除いた、TP2又はTP3のいずれかを動作させる。S11で動作を開始したTPXのタスクスケジューラは、TPX内のタスクを優先度に応じて実行するS12。そして、1Tickが経過すると、パーティションスケジューラ21が、TPのスケジューリングを開始するS13。すなわち、パーティションスケジューラ21は、スケジューリングパターンに従って、次の1Tickの間にいずれのTPをアクティブにするかを選択決定する。パーティションスケジューラ21は、次にアクティブにするTPを変更しないS14でNo場合には、S11に戻り、同一のTPXについての動作を継続させる。このため、TPXの切り替えタイミングとなるまでの間、S11~S14までの処理が繰り返される。パーティションスケジューラ21は、次にアクティブにするTPを変更するS14でYes場合には、その変更するタイムパーティションのタスクスケジューラを動作させるS15。ここでは、TP1のタスクスケジューラを動作させる。そして、TP1のタスクスケジューラ23が、TP1内のタスクを優先度に応じて実行するS16。TP1で実行される安全監視タスク24は、通常制御タスク26の実行状況の監視と、I/Oポート12の入出力データの監視を行い、これらが正常であるか判断するS17。判断の結果、異常であると判断したS18でNo場合、安全監視タスク24は、パーティションスケジューラ21に対して、その結果を通知するS19。1Tickが経過すると、パーティションスケジューラ21が、再びスケジューリングを開始するS20。パーティションスケジューラ21は、スケジューリングパターンに従って、次の1Tickの間にいずれのTPをアクティブにするかを選択決定し、次にアクティブにするTPを変更しないS21でNo場合には、S15に戻り、TP1についての動作を継続させる。パーティションスケジューラ21は、次にアクティブにするTPを変更するS21でYes場合には、さらに、S19でのTP1からの通知結果に応じて、TPXが正常であったか否かを判断するS22。判断の結果、異常であったS22でNo場合、パーティションスケジューラ21は、次の1Tickの間にアクティブにするTPとして、TP3を選択決定するS23。判断の結果、正常であったS22でYes場合、パーティションスケジューラ21は、次の1Tickの間にアクティブにするTPとして、TP1とTP3以外のTPXを選択決定するS24。図6で示した処理に関して、パーティションスケジューリングの具体例を説明する。まず、図5Aに例示した通常制御スケジューリングパターンに従って、S11においてスケジューリングを開始した場合を説明する。この場合、S11ではTPX=TP2として開始し、S12~S14にかけてもTPX=TP2のままである。そして、S15でTP2からTP1へと変更され、S15~S21にかけてTP1のままである。S18でTP2に関する実行状況データ入出力が正常であると判定されていた場合には、S24では、TPX=TP2となるつまり、TP2から開始する通常制御スケジューリングパターンが継続される。。一方で、S18でTP2に関する実行状況データ入出力が異常であると判定されていた場合には、S23で、TPX=TP3となるつまり、TP3から開始する安全制御スケジューリングパターンに切り替わる。。また、図5Bに例示した安全制御スケジューリングパターンに従って、S11においてスケジューリングを開始した場合を説明する。この場合、S11ではTPX=TP3として開始し、S12~S14にかけてもTPX=TP3のままである。そして、S15でTP3からTP1へと変更され、S15~S21にかけてTP1のままである。S18でTP3に関する実行状況データ入出力が正常であると判定されていた場合には、S24では、TPX=TP2となるつまり、TP2から開始する通常制御スケジューリングパターンに切り替わる。。一方で、S18でTP3に関する実行状況データ入出力に異常があると判定されていた場合には、S23で、TPX=TP3となるつまり、TP3から開始する安全制御スケジューリングパターンが継続される。。なお、上述の例では、スケジューリングパターンとして、3つのTP安全監視用のTP1、通常制御用のTP2、安全制御用のTP3のみを組み合わせた場合を例に説明したが、TP2のような通常制御用パーティションや、TP3のような安全制御用パーティションについては、それぞれ複数個存在するものとしてもよい。例えば、2つの通常制御用のTP2及びTP4と、安全監視用のTP1と、2つの安全制御用のTP3及びTP5と、が存在し、これら5つのTPTP1~TP5を組み合わせてスケジューリングパターンを構成してもよい。この場合、S23では、パーティションスケジューラ21が、TPXに関する実行状況データ入出力の異常状態の種類を判定し、その異常種類に応じて、安全制御用のTP3またはTP5のいずれかを選択すればよい。また、S24では、通常制御用のTP2またはTP4のいずれかを選択すればよい。上述したように、本実施の形態では、OS100は、安全監視用のTP1からの通知、または、各TPからの通知に応じて、次にアクティブとするパーティションを選択決定するパーティションスケジューラ21を備えている。パーティションスケジューラ21は、各TP内で実行されるタスクとは独立して、所定のタイマー周期で動作する。所定のタイマー周期で独立して動作するパーティションスケジューラ21がパーティションスケジューリング機能を有することで、以下の効果を奏することができる。まず、一般的に、通常制御タスク26の実行時間を十分に確保するために、安全監視タスク24の実行時間を可能な限り短縮したいという要求がある。従来技術例えば特許文献1では、安全監視タスク24が、通常制御タスク26の実行状況の監視と、I/Oポート12の入出力データの監視と、に加えて、スケジューリングパターンの選択決定についても行っていたために、この選択決定に要する実行時間についても、安全監視タスク24が属するTP2に関して割り当てておく必要があった。また、機能安全の確保を保証するためには、基本的には、安全監視タスク24と通常制御タスク26とが交互に実行される必要がある。このため、従来技術では、通常制御タスク26の実行に伴って安全監視タスク24によるスケジューリングパターンの選択決定までもが毎回実行されることになり、複数のサイクルにわたって合計すると、多くの実行時間を、安全監視タスク24によるスケジューリングパターンの選択決定のために要することになってしまう。これに対して、本実施の形態によれば、安全監視タスク24自体は、スケジューリングパターンの選択決定を実行する必要がない。また、パーティションスケジューラ21がスケジューリングパターンの選択決定に要する実行時間は短時間で済む。このため、従来技術と比較して、安全監視用のTP1はより短時間の割り当てで済み、かつ、通常制御用のTP2にはより長時間の割り当てを行うことができるという効果を奏する。さらに、図6で例示した処理では、パーティションスケジューラ21が、TP1からの結果通知に応じて、安全制御用のTP3を選択決定するS23、または、通常制御用のTP2を選択決定するS24ものとして説明したが、本発明はこれに限定されない。例えば、安全監視用のTP1のみからパーティションスケジューラ21に対して結果を通知する構成に代えて、TP1~TP3のそれぞれからパーティションスケジューラ21に対して実行状況結果を通知する構成とし、パーティションスケジューラ21が、各TPからの結果通知に応じて、安全制御用のTP3を選択決定するものとしてもよい。各TPとは独立に動作するパーティションスケジューラ21が、全てのTPから結果通知を受ける構成を採用することで、パーティションスケジューラ21は、全てのTPに関する状況を一元的に把握することができる。このため、例えば、パーティションスケジューラ21が、各TPからの結果通知に基づいて各TPの状況を考慮した上で、実行が不要なTPについてはスキップするなどの判断を実行することができる。従って、実行が不要なタイムパーティションのみを意図的にスキップすることができるという効果を奏する。また、例えば、パーティションスケジューラ21が、安全監視用のTP1からの結果通知に基づいて各TPの状況を考慮した上で、正常状態にあるTPのみから次のパーティションを決定選択することができる。従って、従来技術と比較して、より正確なパーティションスケジューリングを実現することができるという効果を奏する。続いて以下では、リセット回路14を用いたマイクロコントローラ15のリセット機構について、図7及び図8を用いて説明する。図7及び図8は、リセット回路14を用いたマイクロコントローラ15のリセット処理手順の具体例を示すフローチャートである。本実施の形態では、1Tickごとに動作するパーティションスケジューラ21が、マイクロコントローラ15のリセット機能を有している。パーティションスケジューラ21は、OS100における異常を検出した場合に、リセット回路14と連動して異常処置を行う。リセット回路14は、パーティションスケジューラ21からの信号に基づき、マイクロコントローラ15のリセットを行う。まず、図7を用いて、リセット回路14を用いたマイクロコントローラ15のリセット処理手順の具体例について説明する。図7に示す処理では、パーティションスケジューラ21からリセット指示信号を受けた場合に、リセット回路14がマイクロコントローラ15をリセットするものである。なお、図7では、TPXは、TP1とTP3以外のTPである。まず、S31~S33では、パーティションスケジューラ21がTPXの動作を開始させることで、次にアクティブにするTPが変更されるまでの間、TPXに関する処理が実行される。そして、パーティションスケジューラ21がTP1のタスクスケジューラ23の動作を開始させたS34後に、TP1に属する安全監視タスク24が、TPXに関する処理入出力が正常であったかを判断するS35。判断の結果、正常であったS35でYes場合、S31に戻り、同一のTPXについての動作が継続される。判断の結果、異常であったS35でNo場合、TP1に属する安全監視タスク24が、TPXでの異常がTP3に属する安全制御タスク28で対応可能な異常であるかを判断するS36。TP3で対応可能な異常ではなかったS36でNo場合、TP1に属する安全監視タスク24が、パーティションスケジューラ21に対して、緊急停止を有する異常であることを通知するS37。TP1に属する安全監視タスク24からの通知を受けたパーティションスケジューラ21が、リセット回路14にリセット指示信号を出力し、リセット指示信号を受けたリセット回路14がマイクロコントローラ15のリセットを行うS38。TP3で対応可能な異常であったS36でYes場合、TP1に属する安全監視タスク24は、パーティションスケジューラ21に対して、TPXが異常であることを通知するS39。TP1からの通知を受けたパーティションスケジューラ21は、TPXからTP3へと切り替えるS40。次に、図8を用いて、リセット回路14を用いたマイクロコントローラ15のリセット処理手順の他の具体例について説明する。図8に示す処理では、パーティションスケジューラ21からリセット回路14に定期的に信号を送信し、リセット回路14は、パーティションスケジューラ21からの送信信号が途絶えた場合に、マイクロコントローラ15をリセットするものである。なお、図8では、TPXは、TP1とTP3以外のTPである。図7のS31~S35にかけての処理と比較して、図8のS53では、パーティションスケジューラ21が1Tickごとに動作する点が明確化され、また、S54及びS55で、パーティションスケジューラ21がリセット回路14に定期的に信号を送信する点で異なっている。その他の図8に示すS51~S57にかけての処理は、図7に示したS31~S35にかけての処理と基本的に同一である。また、図7のS36~S40にかけての処理と比較して、図8のS60では、パーティションスケジューラ21がリセット回路14への送信信号を停止し、S63では、パーティションスケジューラ21がリセット回路14への信号を送信する点で異なっている。さらに、図8のS61では、パーティションスケジューラ21からの送信信号が途絶えたことに応じて、リセット回路14がマイクロコントローラ15のリセットを行う点で異なっている。その他の図8に示すS58~S64にかけての処理については、図7に示したS36~S40にかけての処理と基本的に同一である。さらに、図8のS71及びS72に示すように、S51~S64にかけての処理と並行して、パーティションスケジューラ21において不具合が発生した場合、または、パーティションスケジューラ21からリセット回路14への信号線において不具合が発生した場合には、パーティションスケジューラ21からリセット回路14への送信信号が伝達されなくなる。この場合にも、パーティションスケジューラ21からの送信信号が途絶えたことに応じて、リセット回路14がマイクロコントローラ15のリセットを行うS61。図8に示した処理によれば、パーティションスケジューラ21からリセット回路14へ意図的にリセット指示を行う場合に加えて、パーティションスケジューラ21自身が何らかの原因により正常に動作しない場合、または、パーティションスケジューラ21からリセット回路14へ送信信号を伝達する信号線に不具合が発生した場合においても、マイクロコントローラ15のリセットを確実に行うことができる。また同時に、TPの切り替えが、1Tickごとに正常に実行されているかについても保証することができる。なお、図7及び図8では、パーティションスケジューラ21は、TP1からの結果通知に応じて、リセット回路14へのリセット指示信号の出力、または、リセット回路14への送信信号の停止を行うものとして説明したが、TP1~TP3のいずれかからの結果通知に応じて、リセット回路14へのリセット指示信号の出力、または、リセット回路14への送信信号の停止を行うものとしてもよい。<発明の実施の形態2>本実施の形態にかかる安全制御装置は、上述した安全制御装置1の変形である。本実施の形態にかかる安全制御装置の全体的な構成は、図1に示した安全制御装置1の構成と同様とすればよい。また、本実施の形態にかかる安全制御装置が有するOSによって提供されるタスク実行環境は、図4に示したタスク実行環境の構成と同様とすればよい。次に、図9及び図11Bを用いて、本実施の形態にかかる安全制御装置1による処理について、より詳細に説明する。図9は、本実施の形態に係るパーティションスケジューラ21の処理手順の具体例を示すフローチャートである。なお、以下の説明では、図6で説明した処理と同一の処理内容については説明を簡略化し、異なる処理内容についてより詳細に説明する。まず、1Tickごとに動作するパーティションスケジューラ21が、TPXのタスクスケジューラを動作させるS81。ここで、変数XはTPの番号を示し、Xは1以外の値とする。なお、図9のS81~S83にかけての処理内容は、図6のS11~S13にかけての処理内容と同一であるため、ここではその詳細な説明を省略する。なお、図9では、通常制御スケジューリングパターン例えば図5Aに従ってスケジューリングを開始した場合に、安全制御スケジューリングパターン例えば図5Bに切り替えた場合を例に説明する。すなわち、TP2に続く次のTPはTP1であり、かつ、TP2での異常がTP1で検知された場合に、TP1からの結果を受けて次に選択決定されるTPはTP3である場合を例に説明する。パーティションスケジューラ21は、TP3でのタスクを現在実行中であるか判断するS95。TP3でのタスクの実行中でないS95でNo場合、パーティションスケジューラ21は、次にアクティブにするTPを変更しないS84でNo場合には、S81に戻り、同一のTPXについての動作を継続させる。なお、図9のS85~S93にかけての処理内容は、図6のS15~S23にかけての処理内容と同一であるため、ここではその詳細な説明を省略する。図9で示した処理に関して、パーティションスケジューリングの具体例を説明する。ここでは、図5Aに例示した通常制御スケジューリングパターンに従って、S81においてスケジューリングを開始した場合を説明する。この場合、S81ではTPX=TP2として開始し、S82~S84にかけても、S93を経てTPX=TP3となるまでは、TPX=TP2のままである。そして、S85でTP2からTP1へと変更され、S85~S91にかけてTP1のままである。S88でTP2に関する実行状況データ入出力が正常であると判定されていた場合には、S94では、TPX=TP2となるつまり、TP2から開始する通常制御スケジューリングパターンが継続される。。一方で、S88でTP2に関する実行状況データ入出力が異常であると判定されていた場合には、S93で、TPX=TP3となるつまり、TP3から開始する安全制御スケジューリングパターンに切り替わる。。さらに、S93においてTPX=TP3となった場合には、S95及びS93において、パーティションスケジューラ21によって、TPX=TP3が維持される。すなわち、パーティションスケジューラ21は、TP3を連続して選択決定するように、パーティションスケジューリングを実行する。なお、図9の例では、TPXとしてTP3が連続して選択決定された後に、安全制御によって安全が確保された結果、TP3からTP2へと切り替える処理については特に図示されていないが、これを実現するためには、例えば、パーティションスケジューラ21が、TP3でのタスクからの結果通知を受ける構成として、TP3での結果通知の内容に応じて、TP2への切り替えを判断するものとしてもよい。なお、図9の例では、スケジューリングパターンとして、3つのTP安全監視用のTP1、通常制御用のTP2、安全制御用のTP3のみを組み合わせた場合を例に説明したが、TP2のような通常制御用パーティションや、TP3のような安全制御用パーティションについては、それぞれ複数個存在するものとしてもよい。例えば、2つの通常制御用のTP2及びTP4と、安全監視用のTP1と、2つの安全制御用のTP3及びTP5と、が存在し、これら5つのTPTP1~TP5を組み合わせてスケジューリングパターンを構成してもよい。この場合、S95では、パーティションスケジューラ21が、安全制御用のTP3またはTP5でのいずれかのタスクが現在実行中であるかを判断し、S83では、パーティションスケジューラ21が、TPXに関する実行状況データ入出力の異常状態の種類を判定し、その種類に応じて、安全制御用のTP3またはTP5のいずれかを選択すればよい。以上に説明した本実施の形態によれば、異常が発生した場合には、以後のスケジューリングでは、安全制御用以外のタスクを実行するためのTPはスキップし、安全制御用のTP3でのタスクのみを実行させることができる。この結果、例えば図11Bの上部に示す通常制御時のスケジューリングパターンに従ってスケジューリングが行われていた場合に異常が発生したときには、図11Bの下部に示すスケジューリングパターンへと切り替えることができ、TP3のみを即時かつ連続して実行させることができる。これにより、安全制御プログラムによる処理をより迅速に開始することができる。また、パーティションスケジューラ21が各TPからの結果通知を受け、全てのTPの状況を考慮して切り替える構成を採用した場合には、予め定められたスケジューリングパターンがどのようなものであっても、安全制御用のTP3へと切り替え、かつ、安全確保されまでの間はTP3を継続させることができる。さらに、TP3の実行によって安全が確保されたことをTP3からの結果通知に基づいて判断することで、タイムパーティションをTP2へと切り替える通常制御時のパターンに復帰させることもできる。従って、異常発生時における安全制御を適切に行うことができる。<発明の実施の形態3>本実施の形態にかかる安全制御装置は、上述した安全制御装置1の変形である。本実施の形態にかかる安全制御装置の全体的な構成は、図1に示した安全制御装置1の構成と同様とすればよい。また、本実施の形態にかかる安全制御装置が有するOSによって提供されるタスク実行環境は、図4に示したタスク実行環境の構成と同様とすればよい。次に、図10を用いて、本実施の形態にかかる安全制御装置1による処理について、より詳細に説明する。図10は、本実施の形態に係るパーティションスケジューラ21の処理手順の具体例を示すフローチャートである。図10は、パーティションスケジューラ21によるタスク初期化処理に関する処理手順の具体例を示している。まず、1Tickごとに動作するパーティションスケジューラ21が、TPXのタスクスケジューラを動作させるS101。ここで、変数XはTPの番号を示し、TPとしては、スケジューリングパターン中に含まれる全ての種類のTPが対象となる。S101で動作を開始したTPXのタスクスケジューラが、TPX内のタスクを実行することで、タスクの初期化処理が実行される。そして、1Tickが経過すると、パーティションスケジューラ21が、TPXでのタスクの初期化処理が終了したかを判断するS102。タスクの初期化処理が終了していないS102でNo場合には、S101へと戻り、TPXでのタスクの初期化処理が継続される。なお、例えば、パーティションスケジューラ21は、TPXからの実行状況結果の通知に基づいて、TPXでのタスクの初期化処理が終了したかを判断すればよい。また、初期化処理を終了した場合には、タスクが、初期化処理の終了を示すようにフラグの値を設定し、パーティションスケジューラ21が、フラグの値に応じて、終了を判断するものとしてもよい。タスクの初期化処理が終了したS102でYes場合には、パーティションスケジューラ21は、スケジューリングパターン中に含まれる全ての種類のTPに関して、タスクの初期化処理が終了したかを判断するS103。全てのTPに関してタスクの初期化処理が終了していないS103でNo場合には、パーティションスケジューラ21は、次のTPXへと切り替えS104る。この結果、S101へと処理が戻り、切り替えられたTPXでのタスクの初期化処理が継続される。全てのTPに関してタスクの初期化処理が終了したS103でYes場合には、パーティションスケジューラ21は、以後は、アクティブにするTPXとして、TP3を除く他のTPを選択決定し、その選択決定したTPXのタスクスケジューラを動作させるS105。例えば、パーティションスケジューラ21は、TP3をスキップし、TP1及びTP2のみを実行させる。なお、TP3を除いて他のTPのみを選択決定する手法としては、例えば、次にアクティブにするタイムパーティションの候補がTP3であった場合に、パーティションスケジューラ21が、TP3以外のタイムパーティションを選択決定するようにすればよい。以上に説明した本実施の形態によれば、タスクの初期化処理時においてのみ全てのTPに対して実行時間が付与され、通常のタスク処理の実行が開始された以後は、安全制御用のタスクを実行させるためのTP3はスキップし、安全監視用のタスクを実行させるためのTP1及び通常制御用のタスクを実行させるためのTP2のみを実行させることができる。従って、全てのTPに関してタスクの初期化処理が終了した以後で、異常がほとんど発生しないような情況においては、不要なTP3を実行させずに済む。このため、結果として、通常制御プログラムにより生成されるタスクの実行時間TP2に対してより長い時間を割り当てることができる。さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述した各実施の形態それぞれを実施するものとしてもよいし、複数の実施の形態を組合せて実施するものとしてもよい。例えば、タスクの初期化処理時には全てのTPに対して実行時間を付与し、通常のタスク処理の実行が開始された以後は、TP3をスキップすると共にTP1及びTP2のみを実行させる構成と、さらに、異常が発生した場合には、TP3から開始するスケジューリングパターンへと切り替えて、以後のスケジューリングでは、TP3以外のTPをスキップすると共にTP3でのタスクのみを実行させる構成と、を組み合わせてもよい。