少なくとも1つのプロセッサを含むハードウェア資源と、プログラムに対する前記プロセッサの実行時間の割り当てを制御するためのシステムプログラムと、を備え、前記システムプログラムは、前記プログラムに前記実行時間を割り当てるタイムパーティションを含むスケジューリングパターンに従って、次にスケジューリングするタイムパーティションを選択決定するパーティションスケジューラを一部に有し、前記プロセッサは、前記システムプログラムを実行することによって、前記パーティションスケジューラを周期的に動作させ、前記パーティションスケジューラは、前記タイムパーティション内における前記プログラムが実行に必要とする実行時間の占める割合に応じて、前記ハードウェア資源の動作周波数を低下させる安全制御装置。前記システムプログラムは、前記タイムパーティション内における前記プログラムが実行に必要とする実行時間の占める割合が、タイムパーティションごとに予め設定された実行テーブルを一部に有し、前記パーティションスケジューラは、前記実行テーブルを参照して、前記ハードウェア資源の動作周波数を低下させることを特徴とする請求項1に記載の安全制御装置。前記パーティションスケジューラは、低下後の動作周波数に基づいて前記ハードウェア資源を動作させた場合に、前記タイムパーティションに割り当てられた時間に対して前記プログラムによる実行時間が所定の割合に収まるように、前記ハードウェア資源の動作周波数を低下させることを特徴とする請求項1または2に記載の安全制御装置。前記スケジューリングパターンは、割り込み処理プログラムに前記実行時間を割り当てる割り込み処理専用タイムパーティションを更に含み、前記パーティションスケジューラは、前記割り込み処理専用タイムパーティションを含む前記スケジューリングパターンに従って、次にスケジューリングするタイムパーティションを選択決定し、前記割り込み処理専用タイムパーティション内において前記割り込み処理プログラムが実行される場合には、前記ハードウェア資源の動作周波数を変更しないことを特徴とする請求項1乃至3いずれか1項に記載の安全制御装置。前記パーティションスケジューラは、前記割り込み処理専用タイムパーティション内における前記割り込み処理プログラムの実行が終了した場合には、前記ハードウェア資源の動作周波数を低下させることを特徴とする請求項4に記載の安全制御装置。前記スケジューリングパターンは、割り込み処理プログラムに前記実行時間を割り当てる割り込み処理専用タイムパーティションを更に含み、前記パーティションスケジューラは、前記割り込み処理専用タイムパーティションを含む前記スケジューリングパターンに従って、次にスケジューリングするタイムパーティションを選択決定し、前記割り込み処理専用タイムパーティション内において前記割り込み処理プログラムが実行されない場合には、前記ハードウェア資源の動作周波数を低下させることを特徴とする請求項1乃至3いずれか1項に記載の安全制御装置。前記パーティションスケジューラは、前記ハードウェア資源の動作周波数を所定の動作周波数まで低下させることを特徴とする請求項5又は6に記載の安全制御装置。プログラムにプロセッサの実行時間を割り当てるタイムパーティションを含むスケジューリングパターンに従って、次にスケジューリングするタイムパーティションを前記プロセッサに選択決定させるべく周期的に動作するステップと、次にスケジューリングするタイムパーティション内における前記プログラムが実行に必要とする実行時間の占める割合に応じて、前記プロセッサを含むハードウェア資源の動作周波数を前記プロセッサに低下させるべく動作するステップと、を備える制御対象の安全制御方法。前記安全制御方法は、前記タイムパーティション内における前記プログラムが実行に必要とする実行時間の占める割合が、タイムパーティションごとに予め設定された実行テーブルを参照して、前記ハードウェア資源の動作周波数を前記プロセッサに低下させるべく動作することを特徴とする請求項8に記載の安全制御方法。前記安全制御方法は、低下後の動作周波数に基づいて前記ハードウェア資源を動作させた場合に、前記タイムパーティションに割り当てられた時間に対して前記プログラムによる実行時間が所定の割合に収まるように、前記ハードウェア資源の動作周波数を前記プロセッサに低下させるべく動作することを特徴とする請求項8または9に記載の安全制御方法。前記スケジューリングパターンには、割り込み処理プログラムに前記実行時間を割り当てる割り込み処理専用タイムパーティションが更に含まれ、前記安全制御方法は、前記割り込み処理専用タイムパーティションを含む前記スケジューリングパターンに従って、次にスケジューリングするタイムパーティションを選択決定し、前記割り込み処理専用タイムパーティション内において前記割り込み処理プログラムが実行される場合には、前記ハードウェア資源の動作周波数を前記プロセッサにより変更しないことを特徴とする請求項8乃至10いずれか1項に記載の安全制御方法。前記安全制御方法は、前記割り込み処理専用タイムパーティション内における前記割り込み処理プログラムの実行が終了した場合には、前記ハードウェア資源の動作周波数を前記プロセッサに低下させるべく動作するステップを更に備えることを特徴とする請求項11に記載の安全制御方法。前記スケジューリングパターンには、割り込み処理プログラムに前記実行時間を割り当てる割り込み処理専用タイムパーティションが更に含まれ、前記安全制御方法は、前記割り込み処理専用タイムパーティションを含む前記スケジューリングパターンに従って、次にスケジューリングするタイムパーティションを選択決定し、前記割り込み処理専用タイムパーティション内において前記割り込み処理プログラムが実行されない場合には、前記ハードウェア資源の動作周波数を前記プロセッサに低下させるべく動作することを特徴とする請求項8乃至10いずれか1項に記載の安全制御方法。前記安全制御方法は、前記ハードウェア資源の動作周波数を前記プロセッサに所定の動作周波数まで低下させるべく動作することを特徴とする請求項12又は13に記載の安全制御方法。しかしながら、タイムパーティショニング機能を備える従来技術では、以下に説明する問題点があった。以下、図11及び図12を用いて、問題点について説明する。まず、図11を用いて問題点について具体的に説明する。図11Aに例示するように、タイムパーティショニング機能を備える従来のOSでは、OSにより割り当てられたタイムパーティションTP2に対して、TP2内で実行されるタスクが実際に必要とする時間が短いことが通常であり、少なからず実行時間が余ってしまうという問題がある。また、図11Bに例示するように、割り込み処理を専用に実行させるために、TP1などのタイムパーティションに加えて割り込み処理専用のタイムパーティションを設けることが考えられるが、かかる場合に、割り込み処理が1つも存在しなったときには、割り込み処理専用タイムパーティションでは何ら処理が実行されないことになる。すなわち、図11A、Bに示すように、TP内で余った時間が存在する場合や、割り込み処理専用タイムパーティションが存在するような場合には、マイクロコントローラプロセッサを含むは何ら処理を実行しないことになり、電力を無駄に消費することになってしまう。次に、図12を用いて、上記の問題点についてより具体的に説明する。図12に例示するように、タイムパーティショニング機能を備える従来のOSでは、各タイムパーティションに割り当てる時間は、所定のタイマー周期図では1Tick単位の倍数単位しか与えることができない。このため、各タイムパーティションにおいて実際に必要となる時間との間で、乖離が生じる。しかし、タイムパーティションにおいて何ら処理が実行されていない場合であっても、OSを動作させるマイクロコントローラ自体は、処理を実行している場合と同じ程度の計算能力で、常に動作し続けている。すなわち、タイムパーティション内で処理を実行中か否かに関わらず、マイクロコントローラは常に一定の動作周波数で動作を行っている。このため、タイムパーティション内での実行状況とは無関係に、マイクロコントローラでは、一定の消費電力を常に必要とする。本発明は、上述した知見に基づいてなされたものであって、マイクロコントローラによる消費電力の抑制を可能とする安全制御装置及び安全制御方法を提供することを目的とする。本発明の一態様にかかる安全制御装置は、少なくとも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に示したタスク実行環境の構成と同様とすればよい。本実施の形態では、パーティションスケジューラ21が、タイムパーティション内でタスクが必要とする実行時間に応じて、マイクロコントローラ15の動作周波数を変更することを特徴とする。なお、マイクロコントローラ15の動作周波数とパーティションスケジューラ21の動作周期1Tickごとは、共に、同一の外部のクロック源からのクロック信号に基づいて決定されるが、マイクロコントローラ15の動作周波数を変更する際には、マイクロコントローラ15の動作周波数のみを独立に変更するものとしてもよい。あるいは、マイクロコントローラ15の動作周波数とパーティションスケジューラ21の動作周期1Tickごととが同期するものとして、パーティションスケジューラ21が動作する1Tick時間、割り当てTick数、及び実行時間と、変更後のマイクロコントローラ15の動作周波数と、の整合性がとれるように、所定の演算式を用いて、変更後のマイクロコントローラ15の動作周波数を求めるものとしてもよい。次に、図9及び図10を用いて、本実施の形態にかかる安全制御装置1による処理について、より詳細に説明する。本実施の形態では、パーティションスケジューラ21が、実行テーブル例えば図9を保持している。そして、パーティションスケジューラ21が、実行テーブルを参照して、タイムパーティション内でタスクが必要とする実行時間に応じて、マイクロコントローラ15の動作周波数を変更する。なお、実行テーブルに関しては、パーティションスケジューラ21が参照可能であればよく、パーティションスケジューラ21が実行テーブルを保持するものとしてもよいし、OS100が、パーティションスケジューラ21とは独立して実行テーブルを保持するものとしてもよい。図9は、実行テーブルの具体例を示している。パーティション名の列には、タイムパーティション名が設定されている。割り当てTickの列には、各タイムパーティションに割り当てるTick数が設定されている。実行時間の列には、各タイムパーティションに割り当てられた実行時間に対して、タスクが実際に実行に必要とする実行時間の割合が設定されている。なお、実行テーブルのこれらの設定は、ユーザによって適当な値が予め設定される。図10は、本実施の形態に係るパーティションスケジューラ21の処理手順の具体例を示すフローチャートである。まず、1Tickごとに動作するパーティションスケジューラ21が、スケジューリングパターンに従って、タイムパーティションをスケジューリングするS81。パーティションスケジューラ21は、S81でスケジューリングされた次のタイムパーティションに関して、実行テーブルを参照するS82。パーティションスケジューラ21は、実行テーブルを参照して、次のタイムパーティションに関する、割り当てTickと、実行時間と、を取得する。パーティションスケジューラ21は、次のタイムパーティションが割り込み処理専用タイムパーティションであるかを判断するS83。割り込み処理専用タイムパーティションでなかったS84でNo場合、パーティションスケジューラ21は、次のタイムパーティションに関する実行時間に基づいて、マイクロコントローラ15の動作周波数を低下させるS85。具体的には、例えば、マイクロコントローラ15には、その動作周波数を設定するためのレジスタが備えられており、変更したい動作周波数の値をパーティションスケジューラ21が前記レジスタに設定することで、マイクロコントローラ15の動作周波数を変更することができる。マイクロコントローラ15の動作周波数を最も低くさせる場合、タイムパーティションに割り当てられていた時間を100使用してタスクが実行される程度にまで低下させることができる。例えば、実行テーブルに設定された実行時間が50である場合には、マイクロコントローラ15の動作周波数は、最も低い場合で、50の動作周波数まで低下させることができる。パーティションスケジューラ21は、例えば図9に示した実行テーブルを参照した場合に、TP2に関しての動作周波数を502分の1の動作周波数に低下させることができる。この場合、TP2内でのタスクの実行処理速度が50となるため、TP2内で実際に実行されるタスクは、2倍の時間をかけて実行されることになる。この結果、TP2内で実際に実行されるタスクの実行時間は、もともとは1Tick相当分の実行時間2Tickが割り当てられていたうちの50であったのが、あたかも2Tick相当分の時間で実行されることになる。このため、TP2内では、無駄な処理が何ら実行されないことになる。つまり、TP2に割り当てられていた時間を100使用して、タスクが実行されるようになる。また、TP1に関しては、754分の3の動作周波数に低下させることができる。また、動作周波数を低下させる際には、各TPに割り当てられたTickの時間全てを利用して実行することに代えて、低下後の動作周波数に基づいてマイクロコントローラ15を動作させた場合に、タイムパーティションに割り当てられた時間に対してタスクによる実行時間が所定の割合に収まるように、マイクロコントローラ15の動作周波数を低下させるようにしてもよい。具体的には、割り当てられたTickの時間分のXを利用して実行できるように、マイクロコントローラ15の動作周波数を低下させるようにしてもよい。例えば、X=80と設定すれば、割り当てられたTickの時間分の80を利用して実行できるように、マイクロコントローラ15の動作周波数を低下させることになる。これにより、動作周波数を低下させた場合においても、残りの20分の時間を利用することができ、例えば、同一のタイムパーティション内で突発的に発生する割り込み処理について、この残った時間内で対応することができる。図10に戻り説明を続ける。次のタイムパーティションが割り込み処理専用タイムパーティションであったS84でYes場合、パーティションスケジューラ21は、次のタイムパーティションにおいて、処理すべき割り込み処理が存在するか否かを判断するS86。処理すべき割り込み処理が存在しなかったS85でNo場合には、パーティションスケジューラ21は、次のタイムパーティションに関する実行時間に基づいて、マイクロコントローラ15の動作周波数を所定の動作周波数に低下させるS87。割り込み処理専用タイムパーティションにおいて、処理すべき割り込み処理が存在したS85でYes場合には、パーティションスケジューラ21は、まずは割り込み処理を実行する。パーティションスケジューラ21は、割り込み処理の実行が終了されて同一タイムパーティション内で時間が余っていた場合には、マイクロコントローラ15の動作周波数を所定の動作周波数に低下させるS88。具体的に述べると、例えば、パーティションスケジューラ21は、割り込み処理が終了又は休止したことを検出することで割り込み処理の終了の判定を行い、割り込み処理が終了していた場合には、割り込み処理専用タイムパーティションに割り当てられていたTick数から、割り込み処理終了時までに経過したTick数を減算することで、余りのTickがあるかどうかすなわち、時間が余っているかを判断することができる。なお、S87及びS88では、割り込み処理専用タイムパーティションにおいて、処理すべき割り込み処理が存在しない、または、割り込み処理が終了したのであるから、マイクロコントローラ15の動作周波数を所定の動作周波数をまで低下させる。所定の動作周波数は、ユーザによって適当な値が予め設定され、システムの制御に問題を及ぼさない範囲で最も低い動作周波数とすればよい。S85、S87、及びS88において、マイクロコントローラ15の動作周波数を低下させた場合には、低下後の動作周波数で動作するプロセッサ10によってタスクが実行される。そして、1Tickが経過した後には、S81へと戻り処理が続けられ、次のタイムパーティションがスケジューリングされる。そして、S83乃至S88にかけて、次のタイムパーティションに関する実行時間に基づいて、変更すべきマイクロコントローラ15の動作周波数が決定され、その決定された動作周波数へと変更される。以上に説明した本実施の形態によれば、パーティション内で、実際に必要となるタスクの実行時間は予め分かっている。このため、各パーティションへの割り当て時間を可能な限り無駄なく利用してタスクの実行を進めることができるように、パーティションスケジューラ21が、必要実行時間が設定された実行テーブルを参照して、マイクロコントローラ15の処理速度を抑制する。これによって、消費電力を抑制することができる。さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述した各実施の形態それぞれを実施するものとしてもよいし、複数の実施の形態を組合せて実施するものとしてもよい。