(57)【特許請求の範囲】
【請求項１】
実時間制御での割込み処理や周辺装置との入出力インタフェース機能などを実現するリアルタイムＯＳと、前記リアルタイムＯＳ上で前記リアルタイムＯＳが検知するイベントの処理を実行する複数のタスクとを備えたタスク制御装置であって、
各タスクに通知される遅延時間の測定をイベント通知の待ち時間で行う測定手段と、
前記測定手段による測定結果をイベント毎に記憶する測定結果記憶手段と、
前記測定結果を外部装置に出力する出力手段と、
前記測定結果に基づいて前記外部装置に設定されたデッドラインしきい値で、レベル判定用しきい値テーブルを更新する更新手段と、
前記タスクが、前記リアルタイムＯＳから通知されるイベントの発生時からの遅延時間により、前記レベル判定用しきい値テーブルに基づいて前記遅延時間のデッドラインのレベルを判定し、各レベルと各レベルの発生回数とに応じた処理プログラムを選択して実行することにより、前記イベントの処理を行うイベント処理手段と、
前記レベル判定用しきい値テーブルと同一のマトリクス構造であり、データとして前記発生回数を記憶するためのカウンタを備える継続発生カウントテーブルに対し、前記レベルの判定で求められた前記レベル判定用しきい値テーブルのマトリクス位置と同位置の前記カウンタを更新するカウント更新手段と
を備えることを特徴とするタスク制御装置。
【請求項２】
前記リアルタイムＯＳは、イベントの発生を検知すると前記イベントの処理を行ういずれかの前記タスクに対し、イベント通知を発行するタスク制御手段を備え、
前記タスクの前記イベント処理手段は、前記イベント通知に付された前記イベントの発生時からの遅延時間により、前記遅延時間のデッドラインのレベルを判定するレベル判定用しきい値テーブルと、各レベルでの継続発生回数を記憶する継続発生カウントテーブルと、前記レベルと前記レベルの発生回数とに応じた処理プログラムを選択するイベント実行処理マトリクステーブルとを含む
ことを特徴とする請求項１に記載のタスク制御装置。
【請求項３】
外部ツールまたは外部装置との間の通信を制御する外部通信インタフェースをさらに備え、
前記外部ツールまたは前記外部装置より、前記外部通信インタフェースを介して前記レベル判定用しきい値テーブルが更新される
ことを特徴とする請求項１または２に記載のタスク制御装置。
【請求項４】
前記レベル判定用しきい値テーブルは、行方向に前記イベントの番号が並べられ、列方向にデッドラインのレベルが並べられる構成を取り、各行と列との交点に、前記遅延時間に対する前記レベル毎のしきい値が定義されており、前記イベント実行処理マトリクステーブルは、行方向に前記イベントの番号が並べられ、列方向にデッドラインのレベルが並べられる構成を取り、各行と列との交点に、前記イベントの番号の前記レベルのイベント処理を実行する処理プログラムのモジュール名が発生回数毎に定義されている
ことを特徴とする請求項２または３に記載のタスク制御装置。
【請求項５】
前記イベント処理手段は、前記タスク制御手段から前記イベント通知を受けて前記イベント通知に付されている前記イベントの番号のイベント処理を実行するいずれかの前記タスクが起動されると、前記タスクが前記レベル判定用しきい値テーブルを参照して前記イベントの番号の前記遅延時間のデッドラインのレベルを判定し、次に、前記タスクが前記イベント実行処理マトリクステーブルを参照して前記イベントの番号の前記レベルおよび発生回数に対応するモジュール名を選択し、前記モジュール名を有する処理プログラムに制御を渡して実行させることにより、前記イベントの番号を付されたイベントの処理を行わせる
ことを特徴とする請求項１乃至４のいずれかに記載のタスク制御装置。
【請求項６】
実時間制御での割込み処理や周辺装置との入出力インタフェース機能などを実現するリアルタイムＯＳと、前記リアルタイムＯＳ上で前記リアルタイムＯＳが検知するイベントの処理を実行する複数のタスクとを備えたタスク制御装置におけるタスク制御方法であって、
各タスクに通知される遅延時間の測定をイベント通知の待ち時間で行う測定ステップと、
前記測定ステップにおける測定結果をイベント毎に記憶する測定結果記憶ステップと、
前記測定結果を外部装置に出力する出力ステップと、
前記測定結果に基づいて前記外部装置に設定されたデッドラインしきい値で、レベル判定用しきい値テーブルを更新する更新ステップと、
前記タスクが、前記リアルタイムＯＳから通知されるイベントの発生時からの遅延時間により、前記レベル判定用しきい値テーブルに基づいて前記遅延時間のデッドラインのレベルを判定し、各レベルと各レベルの発生回数とに応じた処理プログラムを選択して実行することにより、前記イベントの処理を行うイベント処理ステップと、
前記レベル判定用しきい値テーブルと同一のマトリクス構造であり、データとして前記発生回数を記憶するためのカウンタを備える継続発生カウントテーブルに対し、前記レベルの判定で求められた前記レベル判定用しきい値テーブルのマトリクス位置と同位置の前記カウンタを更新するカウント更新ステップと
を備えることを特徴とするタスク制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスク制御装置に関し、特に、リアルタイムＯＳにおけるタスクへのイベント通知において、タスク側でのイベント通知遅延時間のデッドラインレベルによるイベント処理を制御するタスク制御装置に関する。
【背景技術】
【０００２】
一般に、実時間処理が要求される監視制御装置などのＯＳ（Operating System：オペレーティングシステム）としては、実時間制御での割込み処理や汎用周辺装置との入出力インタフェース機能などを実現するリアルタイムＯＳが用いられている。
リアルタイムＯＳ上で各種の制御処理を実行するプログラムであるところのタスク（ｔａｓｋ）についても、当然のことながら実時間処理が要求されるようになってきており、リアルタイムＯＳ上の全てのタスクを限られた時間内で処理することが必要となってきている。この要求を満たすために、タスクのスケジューリングアルゴリズムなどの改善が図られ、処理効率が向上するようになってきている。
このような、リアルタイムＯＳ上でのタスクの動作を限られた時間内で処理させ得る方式の一例として、一定時間間隔で繰り返し実行される定周期タスクをスケジューリングするリアルタイムＯＳにおいて、タスク切替頻度を低減し、タスクでの処理が限られた時間内に終了しない所謂デッドライン違反の発生を抑制するようにしたものがある（例えば、特許文献１参照）。
また、タスクが到着すると、到着した時点でのＣＰＵの負荷状態に応じてタスクをスケジューリングするかどうかを判定し、事前に過負荷を防止する。また、２回目以降では、タスクを実行した結果から得られる通信待ち時間を短くするように適応デッドラインを更新するようにし、動的な環境に適応することができ、またＣＰＵを有効に使用することができるようにしたものがある（例えば、特許文献２参照）。
また、リアルタイムＯＳにおけるイベント発生時点からの遅延時間をタスク側へイベント通知として通知し、タスク側では遅延時間のデッドラインレベルの判定を行い、判定レベルに応じた適切な処理（プログラムモジュール）を選択して実行させるようにして、デッドライン異常をタスク側で認識可能とし、タスク側でデッドライン異常の段階に応じた、デッドライン異常によるシステム障害を事前に回避可能な処理プログラムの作成を可能としたものがある（例えば、特許文献３参照）。
【特許文献１】特開２００１−２３６２３６号公報
【特許文献２】特開２００１−３５０６３９号公報
【特許文献３】特開２００４−０７０５８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の技術では、リアルタイムＯＳの処理効率は向上しても、過負荷状態となった場合や負荷状態が継続し輻輳状態となった場合において、処理遅延（レイテンシ）によるデッドライン異常が発生する。デッドライン異常をタスク側で認識した場合も、負荷状態はすぐには解消されないため継続したデッドライン異常が発生し続け、同じ異常対応処理を繰り返し実行してしまっていた。また、ＣＰＵ速度が変わったり、処理変更を行う場合に再度しきい値の変更や調整を行うことが困難であった。
即ち、従来の技術には以下のような問題点があった。
第１の問題点は、デッドライン異常が発生した場合に、タスク側では負荷状態を継続し同じ異常対応処理を繰り返し実行してしまう点である。その理由は、リアルタイムＯＳ上で認識するイベントの発生から実際にタスク側で処理されるまで（遅延：レイテンシ）に、優先度レベルが同一のタスクで同時にイベント発生した場合や、高優先度レベルのタスク内でイベント発生が多発した場合などに、タスク側へのイベント待ち時間が発生し、その遅延時間におけるデッドライン異常レベルにより処理の振り分けを行っても負荷状態は継続されるため同じようにデッドライン異常レベルのイベントが多発し、また同じ異常対応したイベント処理が何度も繰り返し処理を実行してしまうからである。
第２の問題点は、プログラム設計、および処理変更、追加が発生した場合において、デッドラインしきい値を容易に設定できない点である。その理由は、ＣＰＵ速度、ハード的なスペックにより処理時間が変わった際、全体の処理時間に対し各詳細処理のデッドラインしきい値を設定するのは困難であり、また変更があった場合の調整についても容易に行うことができないからである。
本発明はこのような状況に鑑みてなされたものであり、実際のイベント発生時刻からタスク側でイベント処理を行うまでにリアルタイムＯＳ上のタスク制御で発生する遅延時間と遅延発生回数の情報を通知することで、対応したタスク側で順正常処理や異常処理およびデッドライン異常処理を行うことができるようにすることを目的とする。また、デッドラインのしきい値を容易に変更できるようにすることを目的とする。
【課題を解決するための手段】
【０００４】
請求項１に記載のタスク制御装置は、実時間制御での割込み処理や周辺装置との入出力インタフェース機能などを実現するリアルタイムＯＳと、前記リアルタイムＯＳ上で前記リアルタイムＯＳが検知するイベントの処理を実行する複数のタスクとを備えたタスク制御装置であって、各タスクに通知される遅延時間の測定をイベント通知の待ち時間で行う測定手段と、前記測定手段による測定結果をイベント毎に記憶する測定結果記憶手段と、前記測定結果を外部装置に出力する出力手段と、前記測定結果に基づいて前記外部装置に設定されたデッドラインしきい値で、レベル判定用しきい値テーブルを更新する更新手段と、前記タスクが、前記リアルタイムＯＳから通知されるイベントの発生時からの遅延時間により、前記レベル判定用しきい値テーブルに基づいて前記遅延時間のデッドラインのレベルを判定し、各レベルと各レベルの発生回数とに応じた処理プログラムを選択して実行することにより、前記イベントの処理を行うイベント処理手段と、前記レベル判定用しきい値テーブルと同一のマトリクス構造であり、データとして前記発生回数を記憶するためのカウンタを備える継続発生カウントテーブルに対し、前記レベルの判定で求められた前記レベル判定用しきい値テーブルのマトリクス位置と同位置の前記カウンタを更新するカウント更新手段とを備えることを特徴とする。
また、リアルタイムＯＳは、イベントの発生を検知するとイベントの処理を行ういずれかのタスクに対し、イベント通知を発行するタスク制御手段を備え、タスクのイベント処理手段は、イベント通知に付されたイベントの発生時からの遅延時間により、遅延時間のデッドラインのレベルを判定するレベル判定用しきい値テーブルと、各レベルでの継続発生回数を記憶する継続発生カウントテーブルと、レベルとレベルの発生回数とに応じた処理プログラムを選択するイベント実行処理マトリクステーブルとを含むようにすることができる。
また、外部ツールまたは外部装置との間の通信を制御する外部通信インタフェースをさらに備え、外部ツールまたは外部装置より、外部通信インタフェースを介してレベル判定用しきい値テーブルが更新されるようにすることができる。
また、レベル判定用しきい値テーブルは、行方向にイベントの番号が並べられ、列方向にデッドラインのレベルが並べられる構成を取り、各行と列との交点に、遅延時間に対するレベル毎のしきい値が定義されており、イベント実行処理マトリクステーブルは、行方向にイベントの番号が並べられ、列方向にデッドラインのレベルが並べられる構成を取り、各行と列との交点に、イベントの番号のレベルのイベント処理を実行する処理プログラムのモジュール名が発生回数毎に定義されているようにすることができる。
また、イベント処理手段は、タスク制御手段からイベント通知を受けてイベント通知に付されているイベントの番号のイベント処理を実行するいずれかのタスクが起動されると、タスクがレベル判定用しきい値テーブルを参照してイベントの番号の遅延時間のデッドラインのレベルを判定し、次に、タスクがイベント実行処理マトリクステーブルを参照してイベントの番号のレベルおよび発生回数に対応するモジュール名を選択し、モジュール名を有する処理プログラムに制御を渡して実行させることにより、イベントの番号を付されたイベントの処理を行わせるようにすることができる。
請求項６に記載のタスク制御方法は、実時間制御での割込み処理や周辺装置との入出力インタフェース機能などを実現するリアルタイムＯＳと、前記リアルタイムＯＳ上で前記リアルタイムＯＳが検知するイベントの処理を実行する複数のタスクとを備えたタスク制御装置におけるタスク制御方法であって、各タスクに通知される遅延時間の測定をイベント通知の待ち時間で行う測定ステップと、前記測定ステップにおける測定結果をイベント毎に記憶する測定結果記憶ステップと、前記測定結果を外部装置に出力する出力ステップと、前記測定結果に基づいて前記外部装置に設定されたデッドラインしきい値で、レベル判定用しきい値テーブルを更新する更新ステップと、前記タスクが、前記リアルタイムＯＳから通知されるイベントの発生時からの遅延時間により、前記レベル判定用しきい値テーブルに基づいて前記遅延時間のデッドラインのレベルを判定し、各レベルと各レベルの発生回数とに応じた処理プログラムを選択して実行することにより、前記イベントの処理を行うイベント処理ステップと、前記レベル判定用しきい値テーブルと同一のマトリクス構造であり、データとして前記発生回数を記憶するためのカウンタを備える継続発生カウントテーブルに対し、前記レベルの判定で求められた前記レベル判定用しきい値テーブルのマトリクス位置と同位置の前記カウンタを更新するカウント更新ステップとを備えることを特徴とする。
【発明の効果】
【０００５】
本発明によれば、各タスクに通知される遅延時間の測定を負荷状態で行い、測定結果をイベント毎に記憶し、測定結果を外部装置に出力し、測定結果に基づいてデッドラインしきい値の設定を行い、レベル判定用しきい値テーブルを更新し、タスクが、リアルタイムＯＳから通知されるイベントの発生時からの遅延時間により、レベル判定用しきい値テーブルに基づいて遅延時間のデッドラインのレベルを判定し、各レベルと各レベルの発生回数とに応じた処理プログラムを選択して実行することにより、イベントの処理を行うようにしたので、イベント発生からの遅延時間および発生回数に対応したイベント処理を実行することができる。
また、外部ツールまたは外部装置との間の通信を制御する外部通信インタフェースを介して、外部ツールまたは外部装置より、レベル判定用しきい値テーブルを更新することができる。
【発明を実施するための最良の形態】
【０００６】
本発明のタスクイベント通知遅延時間のタスク通知によるタスク処理方法は、リアルタイムＯＳ１２内でイベント発生（図１のＳ１５）からタスク１１側へのイベント通知（図１のＳ１８）までの間、優先度レベルの低いタスク実行待ちや優先度レベルの同一タスクでの競合における実行待ち、同一タスク内での待ちイベントの連続発生におけるイベントの通知待ち時間が計測され、タスク制御部２７でタスク２１側へのイベント通知時にイベント通知遅延時間を付加したイベント通知が行われる。タスク２１側では通知されたイベント通知遅延時間によりイベント毎に持つ遅延時間のデッドラインレベルを判定し（図２のＳ２２）、レベルに該当する継続発生回数をカウントする。同じデッドラインレベルを継続する場合は図６に示したように発生した回数に対応する継続発生回数判定式６２毎にイベント処理に対応するイベント実行処理関数ラベル６３を定義しておき、該当するイベント処理を実行する。
【０００７】
ここで、デッドラインとは、イベント発生時点からタスク２１でのイベント処理完了迄の制限時間のことである。即ち、或るイベントの発生時点からそのイベントのイベント処理が終了するまでの時間には、該当装置や該当システムで定められる制限時間が存在し、イベント処理の終了が制限時間を超えてしまった場合にはデッドライン異常となる。
【０００８】
また、本発明のデッドラインのしきい値設定方法では、適切な値へ設定するために外部ツール／他装置８６より外部通信インタフェース（Ｉ／Ｆ）８５を介して各種遅延時間の測定を行うことが可能であり、外部ツール／他装置８６より設定を行うことを可能とする。
【０００９】
デッドラインレベルはタスク２１側にて、＜レベル１＞正常処理（図２のＳ２３）、＜レベル２＞順正常処理（１）、順正常処理（２）（図２のＳ２４，Ｓ２５）、＜レベル３＞異常処理（１）（図２のＳ２６）、＜レベル４＞異常処理（２）という具合に段階的に定義し、さらに同一レベルでも発生した回数によって処理を区分する（＜レベル２＞１回目（Ｘ＝１）は順正常処理（１）（図２のＳ２４）、＜レベル２＞２回目以降（Ｘ＞１）は順正常処理（２）（図２のＳ２５）。
【００１０】
各イベント毎に遅延時間のレベル毎のしきい値を決めるレベル判定用しきい値テーブル３１（７６，８２）を作成する。また、同様のマトリクス構造で、イベントのレベル毎に継続して発生した回数をカウントする継続発生カウントテーブル４１（７７）を持ち、同じイベントで同じデッドラインレベルが繰り返し発生する場合はカウントアップする。またレベル変化が発生した場合には前回のレベルのカウントをクリアする。
【００１１】
該当レベルと該当発生回数に応じた処理へジャンプできるようイベント処理名を定義するイベント実行処理マトリクステーブル５１（６１）を作成する。
【００１２】
タスク２１のイベント実行準備処理（図７のＳ７１）にて、タスク制御部２７からのイベント通知時に付加されたイベント通知遅延時間より該当イベントのデッドラインレベルをレベル判定用しきい値テーブル７６で求め（マトリクス位置を求め）（図７のＳ７２）、該当する継続発生カウントテーブル７７のカウンタを更新し（図７のＳ７３）、求めたデッドラインレベルと該当する継続発生回数に応じたイベント実行処理マトリクステーブル７８内の該当イベント処理をコールし（図７のＳ７４）、実行する。
【００１３】
イベント発生１５からの通知遅延時間がしきい値１以内＜レベル１＞であれば通常処理（図２のＳ２３）、しきい値１より大きくしきい値２以内＜レベル２＞であれば順正常処理であるが発生回数が初回（Ｘ＝１）の場合は順正常処理（１）（図２のＳ２４）、発生回数が２回目以降（Ｘ＞１）の場合は順正常処理（２）（図２のＳ２５）、しきい値２より大きい＜レベル３＞であれば異常処理（１）（図２のＳ２６）と処理を分けることが可能となる。
【００１４】
遅延時間の測定は外部ツール／他装置８６よりトリガを与えることにより行われる。即ち、タスク制御部８１に隣接する測定モジュール８４によって各イベント毎に発生した遅延時間が計測され、測定結果が図９に示したレベル判定用測定テーブル９１に測定パターン毎に記録され、外部ツール／他装置８６に対する出力を可能とする。測定した結果により適切なデッドラインしきい値の設定を行い、レベル判定用しきい値テーブル３１（８２）を更新する。即ち、外部ツール／他装置８６より外部通信インタフェース８５を介して書き換えモジュール８３よりデッドラインしきい値テーブル（レベル判定用しきい値テーブル）３１（８２）の更新を行うことが可能となる。
【００１５】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
図１を参照すると、本発明の実施の形態は、監視制御装置などに搭載されるソフトウェアにおいて、タスク１１とリアルタイムＯＳ１２で構成される。リアルタイムＯＳ１２内でイベント発生（図１のＳ１５）からタスク１１側へのイベント通知（図１のＳ１８）までの間、タスク優先度レベルの低いタスク実行待ちや優先度レベルの同一タスクでの競合における実行待ち、同一タスク内での待ちイベントの連続発生におけるイベントの通知待ち時間が存在する。
【００１７】
図２を参照すると、タスク制御部２７からタスク２１側へのイベント通知時にイベント通知遅延時間を付加したイベント通知が行われることにより、タスク２１側では通知されたイベント通知遅延時間によりイベント毎に持つ遅延時間のデッドラインレベルを判定し（図２のＳ２２）、レベルに応じたイベント処理を実行する。
【００１８】
通知遅延時間に対する処理レベルの定義は、そのシステムに応じて異なる場合もあるが、大凡、システム上遅延時間として問題無いレベルではレベル１とし通常の処理（図２のＳ２３）を行い、遅延と認識し再処理を行っても問題無いレベルではレベル２とし、且つ発生回数が初回であれば順正常の処理（１）（図２のＳ２４）を行い、２回目以降も継続して発生する場合においては順正常の処理（２）（図２のＳ２５）を行い、処理的にデッドタイムとするレベルではレベル３とし、且つ発生回数が初回であれば異常警報を発して処理を中止する異常処理（１）（図２のＳ２６）を行い、発生回数が２回目以降であれば処理を行わない等異常停止を行う。
【００１９】
図３を参照すると、デッドラインレベルの判定に用いるための遅延時間に対するレベル毎のしきい値がイベント毎に定義される。例えば遅延時間０ミリ秒（ｍｓｅｃ）から１０ｍｓｅｃ以内をレベル１と定義する場合は、レベル判定用しきい値テーブル３１の該当イベントのレベル１しきい値箇所には１０ｍｓｅｃと定義され、１１ｍｓｅｃから２０ｍｓｅｃ以内をレベル２と定義する場合は、レベル判定用しきい値テーブルの該当イベントのレベル２しきい値箇所には２０ｍｓｅｃと定義とする。また、最高レベルＸでは１０００ｍｓｅｃより大きい場合全てという定義で扱い、レベル２がなくレベル１とレベル３と続く場合等は該当するレベル２の位置はレベル１と同値を定義するなどし、レベル判定の際は、レベルの低い方から判定に用いる。
【００２０】
図４を参照すると、レベル判定用しきい値テーブル３１（７６，８２）と同様のマトリクステーブルで該当イベント該当レベル毎に対応するイベント実行処理名を定義しておき、前のレベル判定で求めた位置と継続発生カウントテーブル４１（７７）の同位置のカウンタを更新することにより該当イベントでの同一レベルでのレベル継続発生回数を記憶しておくことができる。
【００２１】
図６を参照すると、各イベントと各レベル毎に発生回数によって処理を分けるために初回の場合（Ｘ＝１）（Ｘは発生回数）、２回目以降（Ｘ＞１）の場合、２０回目以降（Ｘ＞２０）の場合など、発生した回数に対応する継続発生回数判定式６２毎に、継続発生回数マトリクステーブル（イベント実行処理マトリクステーブル）６１（５１）にて該当するイベント処理に対応するイベント実行処理関数ラベル６３を定義する。
【００２２】
図１０を参照すると、タスク制御部１０３からタスク１０１側へのイベント通知時にイベント通知遅延時間を付加したイベント通知が行われ、タスク１０１側において測定モード中においては測定処理（図１０のＳ１０２）にて通知されたイベント通知遅延時間により測定開始時から該当イベントの発生回数、最大遅延時間、最小遅延時間、平均遅延時間の計測を行い、レベル判定用測定テーブル９１に記録する。
【００２３】
図７を参照すると、タスク２１のイベント実行準備処理（図７のＳ７１）にて、タスク制御部２７からのイベント通知時に付加されたイベント通知遅延時間より該当イベントのデッドラインレベルをレベル判定用しきい値テーブル７６（３１，８２）で求め（マトリクス位置を求め）（図７のＳ７２）、イベント実行処理マトリクステーブル７８（５１，６１）内の該当イベントと求めたレベルおよび発生回数に該当する処理を実行する。
【００２４】
これにより、イベント発生（図１のＳ１５）からの通知遅延時間がしきい値１以内＜レベル１＞であれば通常処理（図２のＳ２３）、しきい値１より大きくしきい値２以内＜レベル２＞でありレベル２発生回数が初回であれば順正常処理（１）（図２のＳ２４）、２回目以降であれば順正常処理（２）（図２のＳ２５）、しきい値２より大きくしきい値３以内＜レベル３＞であれば異常処理（１）（図２のＳ２６）と処理を分けることが可能となる。
【００２５】
図８を参照すると、外部ツール／他装置８６よりトリガを与えることにより、タスク制御部８１に隣接する測定モジュール８４にて各イベント毎に発生した遅延時間を計測し、測定結果を図９に示したレベル判定用測定テーブル９１（図９）に測定パターン毎に記録し、外部ツール／他装置８６に対する出力を可能とする。
【００２６】
測定した結果により適切なデッドラインしきい値の設定を行い、レベル判定用しきい値テーブル３１（８２）を更新する。即ち、外部ツール／他装置８６より外部通信インタフェースを介して、書き換えモジュール８３よりデッドラインしきい値テーブル（レベル判定用しきい値テーブル）８２（３１）の更新を行うことが可能となる。これにより、例えば、ネットワークで接続されたサーバから端末のレベル判定用しきい値テーブル３１の内容を遠隔操作により更新することができる。
【００２７】
上記実施の形態で、イベント通知２８に含まれる遅延時間、およびデッドラインの各レベル発生回数を外部ツールや他装置８６に通知することにより、イベント発生からの遅延時間および発生回数を考慮したイベント処理を行うことができるとともに、デバッグ機能的にＣＰＵの負荷状況を把握することができる。また、イベント通知に含まれる各イベントの遅延時間の傾向および統計より、適切なＣＰＵ速度性能の算出および選択を可能とし、また、リアルタイムＯＳの最適化や最速化を検討することができる。
【００２８】
以上説明したように、本実施の形態により、次のような効果を奏する。
第１の効果は、タスク側へのイベント実行遅延時間を認識しデッドライン異常の発生した回数毎に細かく順正常系の処理を組めることである。その理由は、例えばデッドラインレベル２初回発生時の順正常処理１では再処理（リトライ処理）、２回目以降の順正常処理２では処理中断、デッドラインレベル２初回発生時の異常処理１でＣＰＵの輻輳状態や半暴走状態が考えられ回復できない状態と判断し（他装置等の）外部へ処理できなかったことを通知する処理、２回目以降の異常処理２で全処理を中断しＡＬＭする処理など処理を分離できる。また、レベルの高い時にはソフトウェア自ら暴走検出（ウォッチドックタイマ・タイムアウト）機能を持つこととなり、さらにどのイベントでそれが発生したのか、何回その状態を継続しているかを把握することが可能となるからである。
【００２９】
第２の効果は、各種状態におけるイベント実行遅延時間を測定できることである。その理由は、各イベントの遅延時間の統計より、適切な処理構築ができ処理変更時やハードウェアの性能変更が発生した際の適切なしきい値の予測が可能となるからである。また、ハードウェア初期検討時のＣＰＵ速度性能の選択を可能とし、さらにまた、リアルタイムＯＳ１２の最適化や最速化を検討すること可能となる。
【００３０】
なお、上記実施の形態の構成および動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更することができることは言うまでもない。
【図面の簡単な説明】
【００３１】
【図１】リアルタイムＯＳ上のタスク・イベント処理実行までの遅延をタイムスケールで表す図である。
【図２】本発明のタスク・イベント通知遅延時間が通知されることによりタスク側で遅延時間をレベル判定しレベルに応じた処理へ分岐するフロー図である。
【図３】本発明の各イベント毎に示すレベル判定用しきい値テーブルのデータ構成図である。
【図４】本発明の各イベントと各レベル判定しきい値毎に示す発生回数をカウントするマトリクステーブルのデータ構造図である。
【図５】本発明の各イベントと各レベル判定しきい値毎に示すイベント実行処理マトリクステーブルのデータ構造図である。
【図６】本発明のイベントの詳細な各レベル判定しきい値毎に示すイベント実行処理マトリクステーブルのデータ構造図である。
【図７】本発明のイベント実行準備処理を示すフローチャートである。
【図８】リアルタイムＯＳと本発明におけるタスク遅延時間測定および書き換えを行う各機能ブロックの構成図である。
【図９】本発明の各イベントと各測定パターン毎に計測結果を格納する測定テーブルのデータ構造図である。
【図１０】本発明のタスク・イベント通知遅延時間を計測するための処理フロー図である。
【符号の説明】
【００３２】
１１  タスク
１２  リアルタイムＯＳ
１３，１４，１５  イベント１、２、３の発生
１６  イベント通知遅延時間（Ｔ３）
１７  タスクへのイベント通知
１８  タスク側でのイベント処理
２１  タスク
２７  タスク制御部
２８  イベント通知（イベント内容と遅延時間情報）
３１  レベル判定用しきい値テーブル
４１  継続発生カウントテーブル
５１  レベル継続発生回数マトリクステーブル（イベント実行処理マトリクステーブル）
６１  各イベントと各レベル毎のレベル継続発生回数マトリクステーブル（イベント実行処理マトリクステーブル）
６２  継続発生回数判定式
６３  イベント実行処理関数ラベル
７６  レベル判定用しきい値テーブル
７７  継続発生カウントテーブル
７８  イベント実行処理マトリクステーブル
８１  タスク制御部
８２  レベル判定用しきい値テーブル
８３  書き換えモジュール
８４  測定モジュール
８５  外部通信インタフェース
８６  外部ツールまたは他装置
９１  レベル判定用測定テーブル
１０１  タスク
１０２    測定処理部
１０３  タスク制御部
１０４  イベント通知（イベント内容と遅延時間情報）
【図１】
0004516898.tif 000002
【図２】
0004516898.tif 000003
【図３】
0004516898.tif 000004
【図４】
0004516898.tif 000005
【図５】
0004516898.tif 000006
【図６】
0004516898.tif 000007
【図７】
0004516898.tif 000008
【図８】
0004516898.tif 000009
【図９】
0004516898.tif 000010
【図１０】
0004516898.tif 000011