(57)【要約】【課題】実行負荷が大きいプログラムが含まれている場合でも、実行負荷の集中をリアルタイムで回避する。【解決手段】負荷検出部１６が、各プログラムＰに関するマイクロプロセッサＭＰの実行負荷ＬＤ（ｔ）をリアルタイムで検出し、リアルタイムスケジューリング処理部１７Ｂが、検出した実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈを上回った時点で、各プログラムＰのうちからプログラム設定情報１４Ｂにより調整可に設定されている調整対象プログラムを選択し、実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈ以下となるよう、調整対象プログラムの実行タイミングをシフトする。【選択図】  図１
2019200629.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ個別の実行周期を有する複数のプログラムを、予めスケジューリングして得られた実行スケジュールにしたがって、単独または並列的にマイクロプロセッサで繰り返し実行する演算処理装置であって、
前記複数のプログラムのそれぞれに関する実行タイミングの調整可否を含むプログラム設定情報を記憶する記憶部と、
前記複数のプログラムに関する前記マイクロプロセッサの実行負荷をリアルタイムで検出する負荷検出部と、
前記実行負荷が基準しきい値を上回った時点で、前記複数のプログラムのうちから前記プログラム設定情報により調整可に設定されている調整対象プログラムを選択し、前記実行負荷が前記基準しきい値以下となるよう、前記調整対象プログラムの実行タイミングをシフトするリアルタイムスケジューリング処理部と
を備えることを特徴とする演算処理装置。
【請求項２】
請求項１に記載の演算処理装置において、
前記リアルタイムスケジューリング処理部は、過去に得られた前記実行負荷に基づいて、前記調整対象プログラムを各時刻にシフトした場合における推定負荷を計算し、得られた推定負荷が前記基準しきい値以下となるシフト先時刻に前記調整対象プログラムをシフトすることを特徴とする演算処理装置。
【請求項３】
請求項２に記載の演算処理装置において、
前記プログラム設定情報は、前記調整対象プログラムに関する実行周期の最小値を示す最小周期を含み、
前記リアルタイムスケジューリング処理部は、前記調整対象プログラムをシフトする際、前記調整対象プログラムの最小周期以降の対象期間から、前記シフト先時刻を選択することを特徴とする演算処理装置。
【請求項４】
請求項２に記載の演算処理装置において、
前記プログラム設定情報は、前記調整対象プログラムに関する実行周期の最大値を示す最大周期を含み、
前記リアルタイムスケジューリング処理部は、前記調整対象プログラムをシフトする際、前記調整対象プログラムの最大周期までの対象期間から、前記シフト先時刻を選択することを特徴とする演算処理装置。
【請求項５】
請求項２に記載の演算処理装置において、
前記プログラム設定情報は、前記調整対象プログラムに関する実行周期の最小値を示す最小周期と、前記調整対象プログラムに関する実行周期の最大値を示す最大周期とを含み、
前記リアルタイムスケジューリング処理部は、前記調整対象プログラムをシフトする際、前記調整対象プログラムの最小周期から最大周期までの対象期間から、前記シフト先時刻を選択することを特徴とする演算処理装置。
【請求項６】
請求項１に記載の演算処理装置において、
前記リアルタイムスケジューリング処理部は、過去に得られた前記マイクロプロセッサの実行負荷に基づいて、前記調整対象プログラムの実行タイミングを任意のシフト量だけ一括してシフトした場合における推定負荷を計算し、得られた推定負荷が前記基準しきい値以下となるシフト量に基づいて前記調整対象プログラムの各実行タイミングを一括してシフトすることを特徴とする演算処理装置。
【請求項７】
請求項１に記載の演算処理装置において、
前記リアルタイムスケジューリング処理部は、前記複数のプログラムのうち実行タイミングが時刻指定されたプログラムの実行により、特定の対象時刻でのみ前記実行負荷が前記基準しきい値を上回る場合、前記調整対象プログラムの実行タイミングのうち、前記対象時刻と対応する実行タイミングのみを予めシフトすることを特徴とする演算処理装置。
【請求項８】
請求項１〜請求項７のいずれかに記載の演算処理装置において、
前記実行スケジュールに基づく前記実行タイミングと、前記リアルタイムスケジューリング処理部により変更した実行タイミングとを、同一時間軸上に配置して画面表示するスケジューリング表示部をさらに備えることを特徴とする演算処理装置。
【請求項９】
それぞれ個別の実行周期を有する複数のプログラムを、予めスケジューリングして得られた実行スケジュールにしたがって、単独または並列的にマイクロプロセッサで繰り返し実行する演算処理装置で用いられるスケジューリング方法であって、
記憶部が、前記複数のプログラムのそれぞれに関する実行タイミングの調整可否を含むプログラム設定情報を記憶する記憶ステップと、
負荷検出部が、前記複数のプログラムに関する前記マイクロプロセッサの実行負荷をリアルタイムで検出する負荷検出ステップと、
リアルタイムスケジューリング処理部が、前記実行負荷が基準しきい値を上回った時点で、前記複数のプログラムのうちから前記プログラム設定情報により調整可に設定されている調整対象プログラムを選択し、前記実行負荷が前記基準しきい値以下となるよう、前記調整対象プログラムの実行タイミングをシフトするリアルタイムスケジューリング処理ステップと
を備えることを特徴とするスケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、それぞれ個別の実行周期を有する複数のプログラムをスケジューリングするためのスケジューリング技術に関する。
【背景技術】
【０００２】
産業用コントローラなどの演算処理装置では、それぞれ個別の実行周期を有する複数のプログラムを、予めスケジューリングした順序にしたがって、単独または並列的にマイクロプロセッサで繰り返し実行している。
各プログラムは、それぞれ個別の実行周期を有しているため、プログラムの組み合わせによっては処理集中により大きな実行負荷が生じ、マイクロプロセッサの処理能力が不足して、トラブルが発生する原因となる。
【０００３】
従来、このような、実行負荷を平準化させて効率的にスケジューリングするための技術として、まず実行周期の長いプログラムを、その実行周期に応じた目盛間隔で時間軸上に実行開始点を割り当て、次に実行周期の長いプログラムを割り当てる際には、割当済プログラムの実行時間と重ならない目盛位置に実行開始点を割り当てる技術が提案されている（例えば、特許文献１など参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−０５９８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような従来技術では、各プログラムの実行周期に基づいて各プログラムをスケジューリングしているため、実行負荷が大きいプログラムが含まれている場合には、そのプログラムが実行されるタイミングごとに、マイクロプロセッサの処理能力が不足して、処理遅延などのトラブルが発生する原因となる。
【０００６】
本発明はこのような課題を解決するためのものであり、実行負荷が大きいプログラムが含まれている場合でも、実行負荷の集中をリアルタイムで回避できるスケジューリング技術を提供することを目的としている。
【課題を解決するための手段】
【０００７】
このような目的を達成するために、本発明にかかる演算処理装置は、それぞれ個別の実行周期を有する複数のプログラムを、予めスケジューリングして得られた実行スケジュールにしたがって、単独または並列的にマイクロプロセッサで繰り返し実行する演算処理装置であって、前記複数のプログラムのそれぞれに関する実行タイミングの調整可否を含むプログラム設定情報を記憶する記憶部と、前記複数のプログラムに関する前記マイクロプロセッサの実行負荷をリアルタイムで検出する負荷検出部と、前記実行負荷が基準しきい値を上回った時点で、前記複数のプログラムのうちから前記プログラム設定情報により調整可に設定されている調整対象プログラムを選択し、前記実行負荷が前記基準しきい値以下となるよう、前記調整対象プログラムの実行タイミングをシフトするリアルタイムスケジューリング処理部とを備えている。
【０００８】
また、本発明にかかる上記演算処理装置の一構成例は、前記リアルタイムスケジューリング処理部が、過去に得られた前記実行負荷に基づいて、前記調整対象プログラムを各時刻にシフトした場合における推定負荷を計算し、得られた推定負荷が前記基準しきい値以下となるシフト先時刻に前記調整対象プログラムをシフトするようにしたものである。
【０００９】
また、本発明にかかる上記演算処理装置の一構成例は、前記プログラム設定情報が、前記調整対象プログラムに関する実行周期の最小値を示す最小周期を含み、前記リアルタイムスケジューリング処理部は、前記調整対象プログラムをシフトする際、前記調整対象プログラムの最小周期以降の対象期間から、前記シフト先時刻を選択するようにしたものである。
【００１０】
また、本発明にかかる上記演算処理装置の一構成例は、前記プログラム設定情報が、前記調整対象プログラムに関する実行周期の最大値を示す最大周期を含み、前記リアルタイムスケジューリング処理部は、前記調整対象プログラムをシフトする際、前記調整対象プログラムの最大周期までの対象期間から、前記シフト先時刻を選択するようにしたものである。
【００１１】
また、本発明にかかる上記演算処理装置の一構成例は、前記プログラム設定情報が、前記調整対象プログラムに関する実行周期の最小値を示す最小周期と、前記調整対象プログラムに関する実行周期の最大値を示す最大周期とを含み、前記リアルタイムスケジューリング処理部は、前記調整対象プログラムをシフトする際、前記調整対象プログラムの最小周期から最大周期までの対象期間から、前記シフト先時刻を選択するようにしたものである。
【００１２】
また、本発明にかかる上記演算処理装置の一構成例は、前記リアルタイムスケジューリング処理部が、過去に得られた前記マイクロプロセッサの実行負荷に基づいて、前記調整対象プログラムの実行タイミングを任意のシフト量だけ一括してシフトした場合における推定負荷を計算し、得られた推定負荷が前記基準しきい値以下となるシフト量に基づいて前記調整対象プログラムの各実行タイミングを一括してシフトするようにしたものである。
【００１３】
また、本発明にかかる上記演算処理装置の一構成例は、前記リアルタイムスケジューリング処理部が、前記複数のプログラムのうち実行タイミングが時刻指定されたプログラムの実行により、特定の対象時刻でのみ前記実行負荷が前記基準しきい値を上回る場合、前記調整対象プログラムの実行タイミングのうち、前記対象時刻と対応する実行タイミングのみを予めシフトするようにしたものである。
【００１４】
また、本発明にかかる上記演算処理装置の一構成例は、前記実行スケジュールに基づく前記実行タイミングと、前記リアルタイムスケジューリング処理部により変更した実行タイミングとを、同一時間軸上に配置して画面表示するスケジューリング表示部をさらに備えるものである。
【００１５】
また、本発明にかかるスケジューリング方法は、それぞれ個別の実行周期を有する複数のプログラムを、予めスケジューリングして得られた実行スケジュールにしたがって、単独または並列的にマイクロプロセッサで繰り返し実行する演算処理装置で用いられるスケジューリング方法であって、記憶部が、前記複数のプログラムのそれぞれに関する実行タイミングの調整可否を含むプログラム設定情報を記憶する記憶ステップと、負荷検出部が、前記複数のプログラムに関する前記マイクロプロセッサの実行負荷をリアルタイムで検出する負荷検出ステップと、リアルタイムスケジューリング処理部が、前記実行負荷が基準しきい値を上回った時点で、前記複数のプログラムのうちから前記プログラム設定情報により調整可に設定されている調整対象プログラムを選択し、前記実行負荷が前記基準しきい値以下となるよう、前記調整対象プログラムの実行タイミングをシフトするリアルタイムスケジューリング処理ステップとを備えている。
【発明の効果】
【００１６】
本発明によれば、検出した実行負荷が基準しきい値を上回った時点で、調整対象プログラムの実行タイミングが調整されるため、マイクロプロセッサの実行負荷の集中をリアルタイムで回避することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】演算処理装置の構成を示すブロック図である。
【図２】プログラム設定情報を示す構成例である。
【図３】部分負荷調整処理例（最小周期）を示す説明図である。
【図４】部分負荷調整処理例（最大周期）を示す説明図である。
【図５】部分負荷調整処理例（最小・最大周期）を示す説明図である。
【図６】全体負荷調整処理例（一括）を示す説明図である。
【図７】プログラム設定情報を示す構成例（図６）である。
【図８】全体負荷調整処理例（特定時刻）を示す説明図である。
【図９】プログラム設定情報を示す構成例（図８）である。
【図１０】実行スケジュールの画面表示例である。
【図１１】リアルタイムスケジューリング処理を示すフローチャートである。
【図１２】警告画面の表示例である。
【発明を実施するための形態】
【００１８】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかる演算処理装置１０について説明する。図１は、演算処理装置の構成を示すブロック図である。
この演算処理装置１０は、産業用コントローラ、サーバ装置、ＰＣなどの処理装置からなり、それぞれ個別の実行周期を有する複数のプログラムＰを、予めスケジューリングした順序にしたがって、単独または並列的にマイクロプロセッサＭＰで繰り返し実行する装置である。
【００１９】
図１に示すように、演算処理装置１０は、主な機能部として、通信Ｉ／Ｆ部１１、操作入力部１２、表示部１３、記憶部１４、プログラム実行処理部１５、負荷検出部１６、およびスケジューラ１７を備えており、内部バスＢを介してデータやり取り可能に接続されている。
【００２０】
これら機能部のうち、プログラム実行処理部１５、負荷検出部１６、およびスケジューラ１７は、マイクロプロセッサＭＰ、さらにはその周辺回路から構成されている。マイクロプロセッサＭＰは、記憶部１４の処理用プログラム１４Ｑを実行して、ハードウェアとソフトウェアとを協働させることにより、プログラム実行処理部１５、負荷検出部１６、およびスケジューラ１７などの各種処理部を実現する機能を有している。
【００２１】
通信Ｉ／Ｆ部１１は、上位装置や各種機器（いずれも図示せず）との間でデータ通信を行う機能を有している。
操作入力部１２は、キーボード、マウス、スイッチ、ボタンなどの操作入力装置からなり、オペレータの各種操作を検出する機能を有している。
表示部１３は、ＬＣＤやＬＥＤなどの表示装置からなり、設定内容やスケジューリング結果などの各種データを表示する機能を有している。
【００２２】
記憶部１４は、ハードディスクや半導体メモリなどの記憶装置からなり、マイクロプロセッサで実行する制御用プログラム１４Ｐや処理用プログラム１４Ｑのほか、スケジューリングに用いる各種処理データを記憶する機能を有している。
記憶部１４で記憶する主な処理データとして、前述した実行スケジュール１４Ａに加えて、プログラム設定情報１４Ｂ、実行負荷履歴情報１４Ｃ、およびスケジュール調整情報１４Ｄがある。
【００２３】
プログラム設定情報１４Ｂは、プログラム実行処理部１５で実行する制御用プログラム１４Ｐのスケジューリングに用いる各種設定データである。図２は、プログラム設定情報を示す構成例である。ここでは、プログラムＰごとに、調整可否Ｑ、実行時間（実行所要時間）Ｒ、実行開始（実行開始時刻）Ｓ、実行周期Ｔ、最小周期Ｔｍｉｎ、および最大周期Ｔｍａｘが組として設定されている。
【００２４】
このうち、調整可否Ｑは、リアルタイムスケジューリング時に実行スケジュール１４Ａの実行タイミングからプログラムＰを前後に調整可能か否かを示すフラグである。図２の例では、５つのプログラムＰＡ，ＰＢ，ＰＣ，ＰＤ，ＰＥのうち、プログラムＰＥのみが調整可に設定されている。
【００２５】
また、調整対象プログラムを複数用いる場合には、調整可否Ｑとして優先度を用い、優先度の高い調整対象プログラムから順に選択するようにしてもよい。これにより、１つの調整対象プログラムで実行負荷を軽減できない場合には、次に優先度の高い調整対象プログラムを選択して実行タイミングを調整することにより、実行負荷を軽減でき、より柔軟に対応することが可能となる。この際、優先度が同一の場合には周期が長い方を選択し、周期も同一の場合には後から追加されたプログラムを選択すればよい。
【００２６】
実行負荷履歴情報１４Ｃは、プログラム実行処理部１５で過去に各プログラムＰを実行した際に要した実行負荷ＬＨ（ｔ）の履歴を示すデータである。実行負荷履歴情報１４Ｃについては、プログラムＰごとに実行負荷ＬＨ（ｔ）を履歴として記録されているものとする。この場合、ＬＨ（ｔ）は、直近に得られた実行負荷でもよく、複数個の実行負荷の移動平均値であってもよい。
【００２７】
実行時間Ｒは、プログラムＰの実行に要する時間である。実行周期Ｔは、プログラムＰを繰り返し実行する基準周期（実行間隔）である。最小周期Ｔｍｉｎは、調整可に設定されているプログラムの最小周期（最小実行間隔）である。最大周期Ｔｍａｘは、調整可に設定されているプログラムの最大周期（最大実行間隔）である。これらＲ，Ｔ，Ｔｍｉｎ，Ｔｍａｘは、予め設定した一定時間長（例えば１時間）を有する単位時間の数で表されている。
【００２８】
スケジュール調整情報１４Ｄは、リアルタイムスケジューリング処理部１７Ｂにより調整対象プログラムの実行タイミングを調整した結果を示す処理データである。
【００２９】
プログラム実行処理部１５は、スケジューラ１７により予めスケジューリングして得られた記憶部１４の実行スケジュール１４Ａに基づいて、単独または並列的に記憶部１４に保存されている制御用プログラム１４Ｐ（以下では、単にプログラムという場合もある）を、単独または並列的に繰り返し実行する機能を有している。
【００３０】
負荷検出部１６は、プログラム実行処理部１５でプログラムＰを実行した際に発生する、マイクロプロセッサＭＰの実行負荷をリアルタイムで検出する機能を有している。
【００３１】
スケジューラ１７は、記憶部１４のプログラム設定情報１４Ｂに基づいて、プログラム実行処理部１５で実行するプログラムＰのスケジューリングを行う機能を有している。
スケジューラ１７は、主な処理部として、スケジューリング処理部１７Ａ、リアルタイムスケジューリング処理部１７Ｂ、およびスケジューリング表示部１７Ｃを備えている。
【００３２】
スケジューリング処理部１７Ａは、各プログラムＰの実行周期Ｔに基づいて各プログラムＰをスケジューリングし、得られた実行スケジュール１４Ａを記憶部１４に保存する機能を有している。スケジューリング処理部１７Ａにおけるスケジューリング処理は、例えば前述した特許文献１などの公知の技術に基づくものである。
【００３３】
リアルタイムスケジューリング処理部１７Ｂは、負荷検出部１６で検出したマイクロプロセッサＭＰの実行負荷ＬＤ（ｔ）と基準しきい値Ｌｔｈとを比較することにより、マイクロプロセッサＭＰの高負荷状態を検出する機能と、実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈを上回って高負荷状態となった時点で、プログラムＰのうちからプログラム設定情報１４Ｂにより調整可に設定されている調整対象プログラムを選択する機能と、実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈ以下となるよう、調整対象プログラムの実行タイミングを時間的にシフトする機能とを有している。
【００３４】
この際、リアルタイムスケジューリング処理部１７Ｂは、過去に得られた実行負荷ＬＨ（ｔ）に基づいて、調整対象プログラムを各時刻にシフトした場合における推定負荷ＬＥ（ｔ）を計算し、得られた推定負荷ＬＥ（ｔ）が基準しきい値Ｌｔｈ以下となるシフト先時刻に調整対象プログラムをシフトする機能を有している。
【００３５】
スケジューリング表示部１７Ｃは、操作入力部１２で検出されたオペレータ操作に応じて、記憶部１４に保存されている実行スケジュール１４Ａを表示部１３で画面表示する機能を有している。
【００３６】
［第１の実施の形態の動作］
次に、本実施の形態にかかる演算処理装置１０の動作について説明する。
リアルタイムスケジューリング処理部１７Ｂは、マイクロプロセッサＭＰの実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈを超えた場合、発生した高負荷状態をリアルタイムで回避するための部分負荷調整処理を実行する。部分負荷調整処理には、調整対象プログラムのシフト先時刻を選択する対象期間の違いに応じて、３つの処理方法がある。
【００３７】
［部分負荷調整処理例（最小周期）］
まず、図３を参照して、調整対象プログラムの最小周期以降を対象期間とする場合について説明する。図３は、部分負荷調整処理例（最小周期）を示す説明図である。
図３には、図２のプログラム設定情報１４Ｂにしたがって、５つのプログラムＰＡ，ＰＢ，ＰＣ，ＰＤ，ＰＥを、実行スケジュール１４Ａにしたがって、マイクロプロセッサＭＰで繰り返し実行する場合が示されている。
【００３８】
時刻ｔ０において、プログラムＰＡ，ＰＢ，ＰＣ，ＰＤ，ＰＥの実行が並列的に開始され、負荷検出部１６で検出したマイクロプロセッサＭＰの実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈを超えたものとする。
リアルタイムスケジューリング処理部１７Ｂは、時刻ｔ０において、ＬＤ（ｔ）＞Ｌｔｈであることから、記憶部１４のプログラム設定情報１４Ｂに基づき調整対象プログラムＰＥを選択する。
【００３９】
次に、リアルタイムスケジューリング処理部１７Ｂは、記憶部１４のプログラム設定情報１４Ｂを参照し、ＰＥの最小周期Ｔｍｉｎ（ＰＥ）が「６」であることから、時刻ｔ６以降を対象期間ＴＸとして特定する。
この後、リアルタイムスケジューリング処理部１７Ｂは、記憶部１４の実行負荷履歴情報１４Ｃに基づいて、ＴＸに含まれる時刻ｔｘ（ｔ６，ｔ７，ｔ８，…）ごとに、ＰＥをｔｘで実行した場合における推定負荷ＬＥ（ｔ）を計算する。
【００４０】
この際、例えば、ＬＥ（ｔ６）は、ｔ６で実行されるプログラムＰＡ，ＰＢ，ＰＣ，ＰＤの実行負荷とＰＥの実行負荷との総和から計算され、ＬＥ（ｔ７）は、ｔ７で実行されるプログラムＰＣの実行負荷とＰＥの実行負荷との総和から計算される。
図３の例では、ＬＥ（ｔ６）＞Ｌｔｈとなるものの、ＬＥ（ｔ７）以降ではＬＥ（ｔｘ）≦Ｌｔｈとなるため、ＴＸのうちから最先のｔ７がＰＥのシフト先時刻として選択される。
【００４１】
これにより、リアルタイムスケジューリング処理部１７Ｂは、ＰＥの実行タイミングをシフト先時刻ｔ７へ変更し、ｔ７からＰＥの実行を開始するよう実行スケジュール１４Ａを部分的に調整する。
したがって、ｔ１以降におけるマイクロプロセッサＭＰの実行負荷ＬＤ’（ｔ）は、基準しきい値Ｌｔｈ以下となり、ＰＥの最小周期Ｔｍｉｎ（ＰＥ）を満足しつつ、マイクロプロセッサＭＰの実行負荷の集中がリアルタイムで回避されることになる。
【００４２】
なお、ｔ０におけるＰＥの実行については、直ちに停止してもよいが、今回は高負荷状態のままＰＥの実行を継続し、次回の同一実行タイミングで高負荷状態とならないよう、調整後の実行タイミングに基づいてＰＥを実行するようにしてもよい。この際、高負荷状態の検出タイミングがＰＥの実行終了間際であれば、ＰＥを停止せずに高負荷状態のままＰＥの実行を継続してもよい。また、基準しきい値Ｌｔｈを高低２種類を用意しておき、高いＬｔｈを超えるような高負荷状態が検出された場合に初めてＰＥの実行を直ちに停止するようにしてもよい。
【００４３】
［部分負荷調整処理例（最大周期）］
次に、図４を参照して、調整対象プログラムの最大周期までを対象期間とする場合について説明する。図４は、部分負荷調整処理例（最大周期）を示す説明図である。
図４には、図２のプログラム設定情報１４Ｂにしたがって、５つのプログラムＰＡ，ＰＢ，ＰＣ，ＰＤ，ＰＥを、実行スケジュール１４Ａにしたがって、マイクロプロセッサで繰り返し実行する場合が示されている。
【００４４】
時刻ｔ０において、プログラムＰＡ，ＰＢ，ＰＣ，ＰＤ，ＰＥの実行が並列的に開始され、負荷検出部１６で検出したマイクロプロセッサＭＰの実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈを超えたものとする。
リアルタイムスケジューリング処理部１７Ｂは、時刻ｔ０において、ＬＤ（ｔ）＞Ｌｔｈであることから、記憶部１４のプログラム設定情報１４Ｂに基づき調整対象プログラムＰＥを選択する。
【００４５】
次に、リアルタイムスケジューリング処理部１７Ｂは、記憶部１４のプログラム設定情報１４Ｂを参照し、ＰＥの最大周期Ｔｍａｘ（ＰＥ）が「１２」であることから、ＰＥの実行時間Ｒ（ＰＥ）＝４を考慮して、時刻ｔ０に続く時刻ｔ１から時刻ｔ１５までを対象期間ＴＸとして特定する。
この後、リアルタイムスケジューリング処理部１７Ｂは、記憶部１４の実行負荷履歴情報１４Ｃに基づいて、ＴＸに含まれる時刻ｔｘ（ｔ１，ｔ２，ｔ３，…，ｔ１５）ごとに、ＰＥをｔｘで実行した場合における推定負荷ＬＥ（ｔ）を計算する。
【００４６】
この際、例えば、ＬＥ（ｔ１）は、ｔ１で実行されるプログラムＰＢ，ＰＣ，ＰＤの実行負荷とＰＥの実行負荷との総和から計算される。
図４の例では、ｔ６でＬＥ（ｔｘ）＞Ｌｔｈとなるものの、ＰＥの実行時間Ｔ（ＰＥ）に相当するｔｘ（ｔ１〜ｔ４）ではＬＥ（ｔｘ）≦Ｌｔｈとなるため、ＴＸのうちから最先のｔ１がＰＥのシフト先時刻として選択される。
【００４７】
これにより、リアルタイムスケジューリング処理部１７Ｂは、ＰＥの実行タイミングをシフト先時刻ｔ１へ変更し、ｔ１からＰＥの実行を開始するよう実行スケジュール１４Ａを部分的に調整する。
したがって、ｔ１以降におけるマイクロプロセッサＭＰの実行負荷ＬＤ’（ｔ）は、基準しきい値Ｌｔｈ以下となり、ＰＥの最大周期Ｔｍａｘ（ＰＥ）を満足しつつ、マイクロプロセッサＭＰの実行負荷の集中がリアルタイムで回避されることになる。
【００４８】
［部分負荷調整処理例（最小・最大周期）］
次に、図５を参照して、調整対象プログラムの最小期以降から最大周期までを対象期間とする場合について説明する。図５は、部分負荷調整処理例（最小・最大周期）を示す説明図である。
図５には、図２のプログラム設定情報１４Ｂにしたがって、５つのプログラムＰＡ，ＰＢ，ＰＣ，ＰＤ，ＰＥを、実行スケジュール１４Ａにしたがって、マイクロプロセッサで繰り返し実行する場合が示されている。
【００４９】
時刻ｔ０において、プログラムＰＡ，ＰＢ，ＰＣ，ＰＤ，ＰＥの実行が並列的に開始され、負荷検出部１６で検出したマイクロプロセッサＭＰの実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈを超えたものとする。
リアルタイムスケジューリング処理部１７Ｂは、時刻ｔ０において、ＬＤ（ｔ）＞Ｌｔｈであることから、記憶部１４のプログラム設定情報１４Ｂに基づき調整対象プログラムＰＥを選択する。
【００５０】
次に、リアルタイムスケジューリング処理部１７Ｂは、記憶部１４のプログラム設定情報１４Ｂを参照し、ＰＥの最小周期Ｔｍｉｎ（ＰＥ）が「６」であり、ＰＥの最大周期Ｔｍａｘ（ＰＥ）が「１２」であることから、ＰＥの実行時間Ｒ（ＰＥ）＝４を考慮して、時刻ｔ６から時刻ｔ１５までを対象期間ＴＸとして特定する。
この後、リアルタイムスケジューリング処理部１７Ｂは、記憶部１４の実行負荷履歴情報１４Ｃに基づいて、ＴＸに含まれる時刻ｔｘ（ｔ６，ｔ７，…，ｔ１５）ごとに、ＰＥをｔｘで実行した場合における推定負荷ＬＥ（ｔ）を計算する。
【００５１】
この際、例えば、ＬＥ（ｔ６）は、ｔ６で実行されるプログラムＰＡ，ＰＢ，ＰＣ，ＰＤの実行負荷とＰＥの実行負荷との総和から計算され、ＬＥ（ｔ７）は、ｔ７で実行されるプログラムＰＣの実行負荷とＰＥの実行負荷との総和から計算される。
図５の例では、ＬＥ（ｔ６）＞Ｌｔｈとなるものの、ＬＥ（ｔ７）以降ではＬＥ（ｔｘ）≦Ｌｔｈとなるため、ＴＸのうちから最先のｔ７がＰＥのシフト先時刻として選択される。
【００５２】
これにより、リアルタイムスケジューリング処理部１７Ｂは、ＰＥの実行タイミングをシフト先時刻ｔ７へ変更し、ｔ７からＰＥの実行を開始するよう実行スケジュール１４Ａを部分的に調整する。
したがって、ｔ１以降におけるマイクロプロセッサＭＰの実行負荷ＬＤ’（ｔ）は、基準しきい値Ｌｔｈ以下となり、ＰＥの最小周期Ｔｍｉｎ（ＰＥ）と最大周期Ｔｍａｘ（ＰＥ）の両方を満足しつつ、マイクロプロセッサＭＰの実行負荷の集中がリアルタイムで回避されることになる。
【００５３】
［第１の実施の形態の効果］
このように、本実施の形態は、負荷検出部１６が、各プログラムＰに関するマイクロプロセッサＭＰの実行負荷ＬＤ（ｔ）をリアルタイムで検出し、リアルタイムスケジューリング処理部１７Ｂが、検出した実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈを上回った時点で、各プログラムＰのうちからプログラム設定情報１４Ｂにより調整可に設定されている調整対象プログラムを選択し、実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈ以下となるよう、調整対象プログラムの実行タイミングをシフトするようにしたものである。
【００５４】
一般的には、プログラムＰの実行負荷を考慮せずにスケジューリングした実行スケジュール１４Ａにしたがって、プログラムＰを単独または並列的にマイクロプロセッサＭＰで繰り返し実行する場合、実行負荷が大きいプログラムが含まれている場合には、マイクロプロセッサＭＰで実行負荷が集中することも考えられる。
本実施の形態によれば、検出した実行負荷ＬＤ（ｔ）が基準しきい値Ｌｔｈを上回った時点で、調整対象プログラムの実行タイミングが調整されるため、マイクロプロセッサＭＰの実行負荷の集中をリアルタイムで回避することが可能となる。
【００５５】
また、本実施の形態において、リアルタイムスケジューリング処理部１７Ｂが、過去に得られた実行負荷に基づいて、調整対象プログラムを各時刻にシフトした場合における推定負荷ＬＥ（ｔ）を計算し、得られた推定負荷ＬＥ（ｔ）が基準しきい値Ｌｔｈ以下となるシフト先時刻に調整対象プログラムをシフトするようにしてもよい。
これにより、履歴として得られた各プログラムＰの実行負荷が推定負荷ＬＥ（ｔ）の計算に用いられるため、各プログラムＰの実行負荷を予め設定する必要がなくなる。このため、リアルタイムスケジューリングを導入するための準備作業を省くことができ、極めて容易にリアルタイムスケジューリングを実施することが可能となる。
【００５６】
また、本実施の形態において、リアルタイムスケジューリング処理部１７Ｂが、調整対象プログラムをシフトする際、調整対象プログラムの最小周期Ｔｍｉｎ以降の対象期間ＴＸから、シフト先時刻を選択するようにしてもよい。
これにより、調整対象プログラムの最小周期Ｔｍｉｎを満足しつつ、マイクロプロセッサＭＰの実行負荷の集中をリアルタイムで回避することが可能となる。
【００５７】
また、本実施の形態において、リアルタイムスケジューリング処理部１７Ｂが、調整対象プログラムをシフトする際、調整対象プログラムの最大周期Ｔｍａｘまでの対象期間ＴＸから、シフト先時刻を選択するようにしてもよい。
これにより、調整対象プログラムの最大周期Ｔｍａｘを満足しつつ、マイクロプロセッサＭＰの実行負荷の集中をリアルタイムで回避することが可能となる。
【００５８】
また、本実施の形態において、リアルタイムスケジューリング処理部１７Ｂが、調整対象プログラムをシフトする際、調整対象プログラムの最小周期Ｔｍｉｎから最大周期Ｔｍａｘまでの対象期間ＴＸから、シフト先時刻を選択するようにしてもよい。
これにより、調整対象プログラムの最小周期Ｔｍｉｎおよび最大周期Ｔｍａｘの両方を満足しつつ、マイクロプロセッサＭＰの実行負荷の集中をリアルタイムで回避することが可能となる。
【００５９】
［第２の実施の形態］
次に、本発明の第２の実施の形態にかかる演算処理装置１０について説明する。
実行タイミングが時刻指定されたプログラムが新たに追加された場合や、任意のプログラムの実行タイミングが時刻指定で変更された場合、いずれかの時刻でマイクロプロセッサＭＰの実行負荷の集中が発生する可能性がある。本実施の形態では、プログラムの追加や実行タイミングの変更により、今後発生しうる高負荷状態を回避するための全体負荷調整処理について説明する。
【００６０】
本実施の形態において、リアルタイムスケジューリング処理部１７Ｂは、過去に得られた実行負荷ＬＨ（ｔ）に基づいて、調整対象プログラムの実行タイミングをシフト量Δｔだけ一括してシフトした場合における推定負荷ＬＥ（ｔ）を計算し、得られた推定負荷ＬＥ（ｔ）が基準しきい値Ｌｔｈ以下となるシフト量Δｔに基づいて調整対象プログラムの各実行タイミングを一括してシフトする機能を有している。
なお、本実施の形態にかかる演算処理装置１０のその他の構成については、第１の実施の形態と同様であり、ここでの説明は省略する。
【００６１】
［第２の実施の形態の動作］
次に、図６および図７を参照して、本実施形態にかかる演算処理装置１０の動作について説明する。図６は、全体負荷調整処理例（一括）を示す説明図である。図７は、プログラム設定情報を示す構成例（図６）である。
図６および図７には、４つのプログラムＰＡ，ＰＢ，ＰＣ，ＰＤのスケジューリングが完了している状況で、実行タイミングが時刻指定された新たなプログラムＰＥが追加された場合が示されている。このうちＰＣが調整対象プログラムであるものとする。
【００６２】
まず、リアルタイムスケジューリング処理部１７Ｂは、記憶部１４の実行負荷履歴情報１４Ｃに基づいて、ＰＥ追加後における各時刻ｔの推定負荷ＬＥ（ｔ）を計算する。これにより、時刻ｔ０，ｔ６でＬＥ（ｔ）＞Ｌｔｈとなるため、調整対象プログラムＰＣの実行タイミングを一括してシフトさせる。
図６および図７の例では、ＰＣの実行タイミングが時刻ｔ０，ｔ６，ｔ１２，ｔ１８，…であることから、シフト量Δｔを単位時間ずつ順に増やして、Δｔだけ一括してシフトした場合における推定負荷ＬＥ（ｔ）を再計算する。
【００６３】
この場合、Δｔ＝１とした場合における推定負荷ＬＥ（ｔ）が、すべての時刻ｔにおいてＬＥ（ｔ）≦Ｌｔｈとなるため、リアルタイムスケジューリング処理部１７Ｂは、ＰＣの実行タイミングを、Δｔ＝１ずつシフトした時刻ｔ１，ｔ７，ｔ１３，ｔ１９，…に一括変更する。この際、ＰＣの実行タイミングを一括変更するため、ＰＣの最小周期Ｔｍｉｎ（ＰＣ）と最大周期Ｔｍａｘ（ＰＣ）は変化しない。
したがって、ＰＥ追加後における各時刻ｔのマイクロプロセッサＭＰの実行負荷ＬＤ’（ｔ）は、基準しきい値Ｌｔｈ以下となり、時刻指定されたＰＥの実行タイミングに加えて、ＰＣの最小周期Ｔｍｉｎ（ＰＣ）と最大周期Ｔｍａｘ（ＰＣ）の両方を満足しつつ、マイクロプロセッサＭＰの実行負荷の集中が予め回避されることになる。
【００６４】
［第２の実施の形態の効果］
このように、本実施の形態は、リアルタイムスケジューリング処理部１７Ｂが、過去に得られた実行負荷ＬＨ（ｔ）に基づいて、調整対象プログラムの実行タイミングをシフト量Δｔだけ一括してシフトした場合における推定負荷ＬＥ（ｔ）を計算し、得られた推定負荷ＬＥ（ｔ）が基準しきい値Ｌｔｈ以下となるシフト量Δｔに基づいて調整対象プログラムの各実行タイミングを一括してシフトするようにしたものである。
【００６５】
これにより、実行タイミングが時刻指定されたプログラムが新たに追加された場合や、任意のプログラムの実行タイミングが時刻指定で変更された場合でも、これにより発生しうる、マイクロプロセッサＭＰの実行負荷の集中を、予め回避することが可能となる。
また、調整対象プログラムの実行タイミングは一括変更されるため、調整対象プログラムの最小周期Ｔｍｉｎと最大周期Ｔｍａｘは変化しない。
このため、調整対象プログラムの最小周期Ｔｍｉｎと最大周期Ｔｍａｘの両方を満足しつつ、マイクロプロセッサＭＰの実行負荷の集中を回避することが可能となる。
【００６６】
なお、本実施の形態では、実行タイミングが時刻指定されたプログラムが新たに追加された場合や、任意のプログラムの実行タイミングが時刻指定で変更された場合を例として説明したが、これに限定されるものではなく、例えばリアルタイムで高負荷状態が検出した場合などのタイミングで、本実施の形態にかかる実行タイミングの調整を適用してもよい。
【００６７】
［第３の実施の形態］
次に、実行タイミングが時刻指定されたプログラムが新たに追加された場合や、任意のプログラムの実行タイミングが時刻指定で変更された場合、いずれかの時刻でマイクロプロセッサＭＰの実行負荷の集中が発生する可能性がある。本実施の形態では、プログラムの追加や実行タイミングの変更により、今後発生しうる高負荷状態を回避するための全体負荷調整処理について説明する。
【００６８】
本実施の形態において、リアルタイムスケジューリング処理部１７Ｂは、過去に得られた実行負荷ＬＨ（ｔ）に基づいて、調整対象プログラムのうち特定時刻の実行タイミングのみをシフトした場合における推定負荷ＬＥ（ｔ）を計算し、得られた推定負荷ＬＥ（ｔ）が基準しきい値Ｌｔｈ以下となるシフト先時刻に特定時刻の実行タイミングのみをシフトする機能を有している。
なお、本実施の形態にかかる演算処理装置１０のその他の構成については、第１の実施の形態と同様であり、ここでの説明は省略する。
【００６９】
［第３の実施の形態の動作］
次に、図８および図９を参照して、本実施形態にかかる演算処理装置１０の動作について説明する。図８は、全体負荷調整処理例（特定時刻）を示す説明図である。図９は、プログラム設定情報を示す構成例（図８）である。
図８および図９には、４つのプログラムＰＡ，ＰＢ，ＰＣ，ＰＤのスケジューリングが完了している状況で、実行タイミングが時刻指定された新たなプログラムＰＥが追加された場合が示されている。このうちＰＣが調整対象プログラムであるものとする。
【００７０】
まず、リアルタイムスケジューリング処理部１７Ｂは、記憶部１４の実行負荷履歴情報１４Ｃに基づいて、ＰＥ追加後における各時刻ｔの推定負荷ＬＥ（ｔ）を計算する。これにより、時刻ｔ１５でのみＬＥ（ｔ）＞Ｌｔｈとなるため、特定時刻ｔ１５から開始される調整対象プログラムＰＣ（１）の実行タイミングだけシフトさせる。
図８および図９の例では、ＰＣの最小周期Ｔｍｉｎ（ＰＣ）が「４」で最大周期Ｔｍａｘ（ＰＣ）が「１２」であり、ＰＥの実行時間Ｒ（ＰＥ）＝４であることから、図５の例を適用した場合、特定時刻ｔ６から開始されるＰＣ（０）を基準として時刻ｔ１２を除く時刻ｔ１０から時刻ｔ２１までが対象期間ＴＸとなる。
【００７１】
この後、リアルタイムスケジューリング処理部１７Ｂは、記憶部１４の実行負荷履歴情報１４Ｃに基づいて、ＴＸに含まれる時刻ｔｘ（ｔ１０，ｔ１１，ｔ１２，…，ｔ２１）ごとに、ＰＥをｔｘで実行した場合における推定負荷ＬＥ（ｔ）を再計算する。
この場合、時刻ｔ１０から時刻ｔ１４および時刻ｔ１６から時刻ｔ２１において、ＬＥ（ｔ）≦Ｌｔｈとなるため、ＴＸのうちから時刻ｔ１２に最も近い時刻ｔ１１がＰＣ（１）のシフト先時刻として選択される。
【００７２】
これにより、リアルタイムスケジューリング処理部１７Ｂは、ＰＣ（１）の実行タイミングをシフト先時刻ｔ１１へ変更し、ｔ１１からＰＣ（１）の実行を開始するよう実行スケジュール１４Ａを調整する。
したがって、ＰＥ追加後における各時刻ｔのマイクロプロセッサＭＰの実行負荷ＬＤ’（ｔ）は、基準しきい値Ｌｔｈ以下となり、時刻指定されたＰＥの実行タイミングに加えて、ＰＣの最小周期Ｔｍｉｎ（ＰＣ）と最大周期Ｔｍａｘ（ＰＣ）の両方を満足しつつ、マイクロプロセッサＭＰの実行負荷の集中が予め回避されることになる。
【００７３】
［第３の実施の形態の効果］
このように、本実施の形態は、リアルタイムスケジューリング処理部１７Ｂが、過去に得られた実行負荷ＬＨ（ｔ）に基づいて、調整対象プログラムのうち特定時刻の実行タイミングのみをシフトした場合における推定負荷ＬＥ（ｔ）を計算し、得られた推定負荷ＬＥ（ｔ）が基準しきい値Ｌｔｈ以下となるシフト先時刻に特定時刻の実行タイミングのみをシフトするようにしたものである。
【００７４】
これにより、実行タイミングが時刻指定されたプログラムが新たに追加された場合や、任意のプログラムの実行タイミングが時刻指定で変更された場合でも、これにより発生しうる、マイクロプロセッサＭＰの実行負荷の集中を、予め回避することが可能となる。
また、調整対象プログラムは特定時刻の実行タイミングのみをシフトされるため、実行タイミングの変更による影響を最低限に抑えることができる。
【００７５】
この際、シフト先時刻を選択する対象範囲については、第１の実施の形態と同様、調整対象プログラムの最小周期Ｔｍｉｎ以降、最大周期Ｔｍａｘまで、あるいは、最小周期Ｔｍｉｎから最大周期Ｔｍａｘまでの間とすることにより、調整対象プログラムの最小周期Ｔｍｉｎと最大周期Ｔｍａｘのいずれか一方、または両方を満足しつつ、マイクロプロセッサＭＰの実行負荷の集中を回避することが可能となる。
【００７６】
なお、本実施の形態では、実行タイミングが時刻指定されたプログラムが新たに追加された場合や、任意のプログラムの実行タイミングが時刻指定で変更された場合を例として説明したが、これに限定されるものではなく、例えばリアルタイムで高負荷状態が検出した場合などのタイミングで、本実施の形態にかかる実行タイミングの調整を適用してもよい。
【００７７】
［第４の実施の形態］
次に、本実施の形態にかかる演算処理装置１０について説明する。
リアルタイムスケジューリング処理部１７Ｂで調整対象プログラムの実行タイミングが調整された場合、オペレータが調整後の実行スケジュール１４Ａを画面で確認したい場合がある。本実施の形態は、操作入力部１２で検出されたオペレータ操作に応じて、調整後の実行スケジュール１４Ａを画面表示する場合について説明する。
【００７８】
本実施の形態において、リアルタイムスケジューリング処理部１７Ｂは、調整対象プログラムの実行タイミングを時間的にシフトした結果、すなわちリアルタイムスケジューリング処理の結果を、記憶部１４のスケジュール調整情報１４Ｄに記録する機能と、新たに調整対象プログラムの実行タイミングを調整する場合、実行スケジュール１４Ａとスケジュール調整情報１４Ｄとに基づいて実行タイミングを調整する機能を有している。
【００７９】
また、スケジューリング表示部１７Ｃは、実行スケジュール１４Ａを画面表示する際、実行スケジュール１４Ａに基づく実行タイミングと、リアルタイムスケジューリング処理部１７Ｂにより変更したスケジュール調整情報１４Ｄに基づく実行タイミングとを、同一時間軸上に配置して画面表示する機能と、リアルタイムスケジューリング処理部１７Ｂで計算された、実行タイミングの変更後の各時刻におけるマイクロプロセッサＭＰの推定負荷ＬＥ（ｔ）を表示部１３で画面表示する機能とを有している。
【００８０】
図１０は、実行スケジュールの画面表示例である。ここでは、前述した図３のリアルタイムスケジューリング処理を実行した後における、調整後の実行スケジュールが示されている。
図１０の例では、調整対象プログラムＰＥの実行タイミングとして、当初の実行スケジュール１４Ａに基づく時刻ｔ０の実行タイミングと、リアルタイムスケジューリング処理部１７Ｂでの調整に基づく時刻ｔ７の実行タイミングとが、同一時間軸上に表示されている。
これにより、オペレータは、調整対象プログラムＰＥの実行タイミングが時刻ｔ０から時刻ｔ７に変更されたことを、極めて容易に把握することができる。
【００８１】
スケジュール調整情報１４Ｄについては、リアルタイムスケジューリング処理の実行ごとに追記し、例えば調整から一定時間経過した時点やオペレータ指示に応じて、実行スケジュール１４Ａに反映してもよい。
また、リアルタイムスケジューリング処理部１７Ｂは、調整対象プログラムの実行タイミングを新たに調整する場合、実行スケジュール１４Ａとスケジュール調整情報１４Ｄとに基づいて実行タイミングを調整するようにしてもよい。これにより、最新の実行スケジュールに基づき新たなリアルタイムスケジューリングを実行することができる。
【００８２】
［第５の実施の形態］
次に、図１１を参照して、本発明の第５の実施の形態にかかる演算処理装置１０について説明する。図１１は、リアルタイムスケジューリング処理を示すフローチャートである。
第１〜第３の実施の形態では、リアルタイムスケジューリング処理部１７Ｂでの各種リアルタイムスケジューリングについてそれぞれ説明した。本実施の形態では、これら各種リアルタイムスケジューリングを使い分ける場合について説明する。
【００８３】
リアルタイムスケジューリング処理部１７Ｂは、プログラム実行処理部１５による実行スケジュール１４ＡにしたがったプログラムＰの実行開始に応じて、図１１のリアルタイムスケジューリング処理を実行する。
【００８４】
まず、リアルタイムスケジューリング処理部１７Ｂは、負荷検出部１６で検出したマイクロプロセッサＭＰの実行負荷ＬＤ（ｔ）と基準しきい値Ｌｔｈとを比較することにより、マイクロプロセッサＭＰが高負荷状態か否か確認する（ステップＳ１００）。
ここで、ＬＤ（ｔ）がＬｔｈを上回っており、マイクロプロセッサＭＰが高負荷状態であることが検出された場合（ステップＳ１００：ＹＥＳ）、リアルタイムスケジューリング処理部１７Ｂは、後述するステップＳ１０２〜Ｓ１０４によりリアルタイムスケジューリングを実行する。
【００８５】
一方、ＬＤ（ｔ）がＬｔｈ以下であり、マイクロプロセッサＭＰが高負荷状態でないことが検出された場合（ステップＳ１００：ＮＯ）、リアルタイムスケジューリング処理部１７Ｂは、プログラムの追加・変更により高負荷状態の発生が予測されるかどうか確認する（ステップＳ１０１）。
ここで、高負荷状態の発生が予測されない場合（ステップＳ１０１：ＮＯ）、ステップＳ１００に戻る。一方、高負荷状態の発生が予測される場合（ステップＳ１０１：ＹＥＳ）、リアルタイムスケジューリング処理部１７Ｂは、後述するステップＳ１０２〜Ｓ１０４によりリアルタイムスケジューリングを実行する。
【００８６】
ステップＳ１０２において、リアルタイムスケジューリング処理部１７Ｂは、マイクロプロセッサＭＰが高負荷状態が限定的か否か確認する（ステップＳ１０２）。
ここで、一定長の判定期間における高負荷状態の発生数（発生予測数）が予め設定されている規定回数以下であり、高負荷状態が限定的である場合（ステップＳ１０２：ＹＥＳ）、リアルタイムスケジューリング処理部１７Ｂは、図３〜図５のいずれかで説明した部分負荷調整を実行する（ステップＳ１０３）。
【００８７】
一方、一定長の判定期間における高負荷状態の発生数（発生予測数）が予め設定されている規定回数を上回り、高負荷状態が全体的である場合（ステップＳ１０２：ＮＯ）、リアルタイムスケジューリング処理部１７Ｂは、図６または図８で説明した全体負荷調整を実行する（ステップＳ１０４）。
この後、リアルタイムスケジューリング処理部１７Ｂは、部分負荷調整または全体負荷調整により、調整対象プログラムの実行タイミングを時間的にシフトした結果、すなわちスケジューリング結果を記憶部１４に記録する（ステップＳ１０５）。
【００８８】
次に、リアルタイムスケジューリング処理部１７Ｂは、負荷検出部１６で検出したマイクロプロセッサＭＰの実行負荷ＬＤ（ｔ）と基準しきい値Ｌｔｈとを比較することにより、マイクロプロセッサＭＰが高負荷状態か否か確認する（ステップＳ１０６）。
【００８９】
ここで、高負荷状態が連続して検出されなかった場合（ステップＳ１０６：ＮＯ）、ステップＳ１００に戻る。
一方、高負荷状態が連続して検出された場合（ステップＳ１０６：ＹＥＳ）、リアルタイムスケジューリング処理部１７Ｂは、実行遅延の発生を回避できないと判定し、実行遅延に関係するプログラムＰの実行状況を含む警告画面を表示部１３で画面表示し（ステップＳ１０７）、ステップＳ１００に戻る。
【００９０】
図１２は、警告画面の表示例である。ここでは、４つの警告が表形式されており、警告ごとに、アラームレベル、発生時刻、並列実行プログラム数、マイクロプロセッサＭＰの実行負荷、持続時間、遅延発生の有無が組として表示されている。
これにより、オペレータは、マイクロプロセッサＭＰにおける実行負荷の集中に関する発生状況を、極めて容易に確認することができる。
【００９１】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【００９２】
１０…演算処理装置、１１…通信Ｉ／Ｆ部、１２…操作入力部、１３…表示部、１４…記憶部、１４Ａ…実行スケジュール、１４Ｂ…プログラム設定情報、１４Ｃ…実行負荷履歴情報、１４Ｄ…スケジュール調整情報、１４Ｐ…制御用プログラム、１４Ｑ…処理用プログラム、１５…プログラム実行処理部、１６…負荷検出部、１７…スケジューラ、１７Ａ…スケジューリング処理部、１７Ｂ…リアルタイムスケジューリング処理部、１７Ｃ…スケジューリング表示部。
【図１】
2019200629.tif 000003
【図２】
2019200629.tif 000004
【図３】
2019200629.tif 000005
【図４】
2019200629.tif 000006
【図５】
2019200629.tif 000007
【図６】
2019200629.tif 000008
【図７】
2019200629.tif 000009
【図８】
2019200629.tif 000010
【図９】
2019200629.tif 000011
【図１０】
2019200629.tif 000012
【図１１】
2019200629.tif 000013
【図１２】
2019200629.tif 000014