JP3859564B2 - イベント通知タスク制御処理方式及び方法並びにプログラム - Google Patents
イベント通知タスク制御処理方式及び方法並びにプログラム Download PDFInfo
- Publication number
- JP3859564B2 JP3859564B2 JP2002227480A JP2002227480A JP3859564B2 JP 3859564 B2 JP3859564 B2 JP 3859564B2 JP 2002227480 A JP2002227480 A JP 2002227480A JP 2002227480 A JP2002227480 A JP 2002227480A JP 3859564 B2 JP3859564 B2 JP 3859564B2
- Authority
- JP
- Japan
- Prior art keywords
- event
- processing
- task
- level
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明はイベント通知タスク制御処理方式及び方法並びにプログラムに関し、特に、リアルタイムOSにおけるイベント発生からの遅延時間をタスク側へ通知し、タスク側では遅延時間に応じた適切な処理を実行することを可能とする、イベント通知タスク制御処理方式及び方法並びにプログラムに関する。
【0002】
【従来の技術】
一般に、実時間処理が要求される監視制御装置などのOS(Operating System:オペレーティングシステム)としては、実時間制御での割込み処理や汎用周辺装置との入出力インタフェース機能などを実現するリアルタイムOSが用いられている。
【0003】
リアルタイムOS上で各種の制御処理を実行するプログラムであるところのタスク(task)についても、当然のことながら実時間処理が要求されるようになってきており、リアルタイムOS上の全てのタスクを限られた時間内で処理することが必要となってきている。この要求を満たすために、タスクのスケジューリングアルゴリズムなどの改善が図られ、処理効率が向上するようになってきている。
【0004】
このような、リアルタイムOS上でのタスクの動作を限られた時間内で処理させ得る方式の一例として、特開2001−236236号公報記載の「タスク制御装置およびそのタスクスケジューリング方法」が知られている。
【0005】
この公報では、一定時間間隔で繰り返し実行される定周期タスクをスケジューリングするリアルタイムOSにおいて、タスク切替頻度を低減し、タスクでの処理が限られた時間内に終了しない所謂デッドライン違反の発生を抑制する技術が記載されている。
【0006】
【発明が解決しようとする課題】
しかしながら、上述した従来のタスク制御方式においては、タスクでの処理が過負荷状態となった場合や、負荷状態が継続して輻輳状態となった場合においては、タスクでの処理遅延によるデッドライン異常が発生してしまう、という問題点を有している。
【0007】
この事は、例えば、実時間処理が要求される監視制御装置などにおいて、処理遅延により機器などの監視情報そのものが遅延してしまい、結果として現在の実際の機器状態とは異なる監視情報により無効な制御を行ってしまう、といった状況が発生し得るものとなっている。また、中継装置などにおいては、中継遅延が発生していることを認識できず、結果として遅延したままの無意味な処理を継続する、という状況も発生してしまう。
【0008】
タスクでの処理遅延によるデッドライン異常が発生してしまう要因の1つとして、デッドライン異常をタスク側で認識できていない、という点を挙げることができる。リアルタイムOSでは、或る事象が発生した場合に、これをイベント(event)として捉えており、イベントの処理は該当のタスクに行わせるようスケジューリングを行っている。しかし、優先度レベルが同一のタスクで同時に複数のイベント処理を行おうとする場合や、高優先度レベルのタスク内で処理すべきイベントが多発した場合などにおいては、リアルタイムOS上で認識したイベント発生時から実際にタスク側で該イベントの処理を行うまでの時間に、イベント処理の待ち時間が発生してしまい、該イベントの処理を行うタスクでは、この待ち時間の発生を検知できず、遅延したままでイベント処理を実行してしまうという事である。
【0009】
また、デッドライン異常とはならないまでも、例えば、監視制御装置などにおいて、機器などの状態変化の事象は不定期に発生する割込みイベントとして認識され、リアルタイムOSからタスク側へのイベント通知に遅延が発生してしまうが、タスク側ではこの遅延時間を認識できないため、遅延したままでのイベント処理を実行してしまう、という問題点を有している。
【0010】
そこで本発明の目的は、リアルタイムOSにおけるイベント発生時点からの遅延時間をタスク側へ通知し、タスク側では遅延時間に応じた適切な処理を選択して実行することにより、デッドライン異常をタスク側にて検知して遅延によるシステム障害を事前に回避することを可能とする、イベント通知タスク制御処理方式及び方法並びにプログラムを提供することにある。
【0011】
【課題を解決するための手段】
本発明のイベント通知タスク制御処理方式は、実時間制御での割込み処理や周辺装置との入出力インタフェース機能などを実現するリアルタイムOSと、前記リアルタイムOS上で前記リアルタイムOSが検知するイベントの処理を実行する複数のタスクと、を備えた情報処理装置において、
前記タスクが、前記リアルタイムOSから通知されるイベントの発生時からの遅延時間により、前記遅延時間のデッドラインのレベルを判定し、前記レベルに応じた処理プログラムを選択して実行することにより、該イベントの処理を行うイベント処理手段を備え、
前記リアルタイムOSは、イベントの発生を検知すると該イベントの処理を行う何れかの前記タスクに対し、イベント通知を発行するタスク制御手段を備え、前記タスクの前記イベント処理手段は、前記イベント通知に付された該イベントの発生時からの遅延時間により、前記遅延時間のデッドラインのレベルを判定するレベル判定用しきい値テーブルと、前記レベルに応じた処理プログラムを選択するイベント実行処理マトリクステーブルと、を含む、ことを特徴とする。
【0013】
さらに、前記タスク制御手段は、イベントの発生を検知し該イベントにイベント番号を付す制御を行うイベント発生検知部と、該イベントの処理を担当する何れかの前記タスクを選択してスケジューリングし、該イベントの処理を前記タスクに実行させるためのイベント通知を、前記タスクに発行して前記タスクの起動を制御するイベント通知部と、前記イベント発生検知部にて該イベントの発生を検知した時間から、前記イベント通知部が前記イベント通知を発行する時間までの遅延時間を計測する遅延時間計測部と、から構成され、前記イベント通知には、該イベントの前記イベント番号と前記遅延時間が付される、ことを特徴とする。
【0014】
また、前記レベル判定用しきい値テーブルは、行方向に前記イベント番号が並べられ、列方向にデッドラインのレベルが並べられる構成を取り、各行と列との交点に、前記遅延時間に対する前記レベル毎のしきい値が定義されており、前記イベント実行処理マトリクステーブルは、行方向に前記イベント番号が並べられ、列方向にデッドラインのレベルが並べられる構成を取り、各行と列との交点に、前記イベント番号の前記レベルのイベント処理を実行する処理プログラムのモジュール名が定義されている、ことを特徴とする。
【0015】
さらに、前記イベント処理手段は、前記タスク制御手段から前記イベント通知を受けて前記イベント通知に付されている前記イベント番号のイベント処理を実行する何れかの前記タスクが起動されると、前記タスクが前記レベル判定用しきい値テーブルを参照して前記イベント番号の前記遅延時間のデッドラインのレベルを判定し、次に、前記タスクが前記イベント実行処理マトリクステーブルを参照して前記イベント番号の前記レベルに対応するモジュール名を選択し、前記モジュール名を有する処理プログラムに制御を渡して実行させることにより、前記イベント番号を付されたイベントの処理を行わせる、ことを特徴とする。
【0016】
本発明のイベント通知タスク制御処理方法は、実時間制御での割込み処理や周辺装置との入出力インタフェース機能などを実現するリアルタイムOSと、前記リアルタイムOS上で前記リアルタイムOSが検知するイベントの処理を実行する複数のタスクと、を備えた情報処理装置において、前記タスクが、レベル判定用しきい値テーブルを参照して前記リアルタイムOSから通知されるイベントの発生時からの遅延時間のデッドラインのレベルを判定し、イベント実行処理マトリクステーブルを参照して前記レベルに応じた処理プログラムを選択して実行することにより、該イベントの処理を行う、ことを特徴とする。
【0018】
さらに、前記リアルタイムOSは、イベントの発生を検知すると該イベントにイベント番号を付し、該イベントの発生時からイベント通知発行までの遅延時間を計測し、該イベントの処理を行う何れかの前記タスクを起動可能になると、前記イベント番号と前記遅延時間を付した前記イベント通知を前記タスクに対して発行し、前記タスクは、前記レベル判定用しきい値テーブルを参照して前記イベント番号の前記遅延時間のデッドラインのレベルを判定し、次に、前記タスクは、前記イベント実行処理マトリクステーブルを参照して前記イベント番号の前記レベルに対応するモジュール名を選択し、前記モジュール名を有する処理プログラムに制御を渡して実行させることにより、該イベントの処理を行わせる、ことを特徴とする。
【0019】
本発明のプログラムは、コンピュータに、イベントの発生を検知し、該イベントの処理を行う何れかのタスクプログラムに対し、イベント通知を発行する手順と、前記イベント通知を受けた前記タスクプログラムに、レベル判定用しきい値テーブルを参照して前記イベント通知に付されたイベントの発生時からの遅延時間のデッドラインのレベルを判定する手順と、イベント実行処理マトリクステーブルを参照して前記レベルに応じた処理プログラムを選択させ、前記処理プログラムに制御を渡して実行させる手順と、を実行させることにより該イベントの処理を行わせることを特徴とする。
【0020】
また、コンピュータに、イベントの発生を検知すると該イベントにイベント番号を付す手順と、該イベントの発生時からイベント通知発行までの遅延時間を計測する手順と、該イベントの処理を行う何れかのタスクプログラムを起動可能になると、前記イベント番号と前記遅延時間を付した前記イベント通知を前記タスクプログラムに対して発行する手順と、前記タスクプログラムに、レベル判定用しきい値テーブルを参照して前記イベント番号の前記遅延時間のデッドラインのレベルを判定する手順と、前記イベント番号の前記レベルに対応するモジュール名を選択させる手順と、イベント実行処理マトリクステーブルを参照して前記モジュール名を有する処理プログラムに制御を渡して実行させる手順と、を実行させることにより該イベントの処理を行わせる、ことを特徴とする。
【0023】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【0024】
図1は、本発明のイベント通知タスク制御処理方式の一実施形態を示すブロック図である。
【0025】
図1に示す本実施の形態は、通信機器などの監視・制御を行う監視制御装置など、CPU(Central Processing Unit:中央処理装置)と記憶装置、及びその他必要な周辺機器・周辺装置などによって構成される情報処理装置であるところの装置90を一例として示すものであるが、前述のハードウェアの図示は省略するものとし、ソフトウェアのみの構成を示すものである。
【0026】
図1において、装置90は、実時間制御での割込み処理や周辺装置との入出力インタフェース機能などを実現するリアルタイムOS(Operating System:オペレーティングシステム)80と、リアルタイムOS80上で監視制御の対象機器などから生ずるイベント(事象)の処理を実行するプログラムであるところの複数n個のタスク10と、タスク10が参照してタスク10自身の処理内容を決定するためのレベル判定用しきい値テーブル20と、イベント実行処理マトリクステーブル30と、から構成されている。
【0027】
リアルタイムOS80は、イベントの発生を検知し該イベントの処理を該当のタスク10に実行させるためのイベント通知70を発行するタスク制御部60を備えている。
【0028】
タスク制御部60は、イベントの発生を検知し該イベントにイベント番号を付す制御を行うイベント発生検知部61と、該イベントの処理を担当する該当タスク10を選択してスケジューリングし、該イベントの処理を該当タスク10に実行させるためのイベント通知70を、該当タスク10に発行して該当タスクの起動を制御するイベント通知部63と、イベント発生検知部61にてイベント発生を検知した時間から、イベント通知部63がイベント通知70を発行する時間までの遅延時間を計測する遅延時間計測部62と、から構成されている。イベント通知70には、該イベントのイベント番号と前記の遅延時間が付されるものとなる。
【0029】
タスク10は、タスク10−1からタスク10−n迄の複数n個で構成されており、それぞれイベント通知70で通知されるイベント番号に対応するイベント処理を行う。イベント通知70により起動されたタスク10は、イベント通知70に付されている遅延時間から、レベル判定用しきい値テーブル20を参照して該遅延時間のデッドラインのレベル判定を行い(図1のS0)、判定したレベルに応じた処理を、イベント実行処理マトリクステーブル30を参照して選択し、該イベントの処理(図1のS1〜Sxの何れかの処理)を行うようになっている。
【0030】
ここで、デッドラインとは、イベント発生時点からタスク10でのイベント処理完了迄の制限時間のことである。すなわち、或るイベントの発生時点から該イベントのイベント処理が終了するまでの時間には、該当装置や該当システムで定められる制限時間が存在し、イベント処理の終了が制限時間を超えてしまった場合にはデッドライン異常となる。本実施形態においては、上述の遅延時間がデッドライン異常を判定するために用いられることとなる。
【0031】
デッドラインは、イベントごとに該当装置や該当システムに応じて定められる値であるが、大凡、遅延時間として問題の無いレベルでは、レベル1と判定して通常の処理(図1のS1)を行い、遅延しているとの認識は成されるが再処理を行って問題の無いレベルでは、レベル2と判定してリトライ処理などの準正常処理(図1のS2)を行い、イベント処理的に見てデッドラインを超えていると判定されるレベルでは、レベル3と判定して、イベント処理をタイムアウトとして中止して、処理を中断するなどの異常処理1(図1のS3)を行い、該当装置や該当システムとしてデッドラインを超えていると判定されるレベルでは、レベル4と判定して処理を行わずに他装置など外部へデッドライン異常を報告するなどの異常処理2(図1のS4)を行う。なお、該当装置や該当システムの要求に応じて、更なる判定レベルと対応する処理(図1のSx)を付け加えたものであっても良い。
【0032】
次に、図2を参照して、図1に示したレベル判定用しきい値テーブル20について説明する。
【0033】
図2は、レベル判定用しきい値テーブルの構成の一例を説明する図である。
【0034】
図2のレベル判定用しきい値テーブル20は、遅延時間の付されたイベント通知70を受けたタスク10が、該遅延時間のデッドラインのレベル判定を行うためのテーブルである。レベル判定用しきい値テーブル20の、行方向にはイベント番号が、列方向にはデッドラインのレベルが並べられる構成となっており、各行と列との交点に、遅延時間に対するレベル毎のしきい値が定義されている。
【0035】
例えば、イベント番号がイベント1の行201において、遅延時間0ms(milliーsecond:ミリ秒)〜3ms以内をレベル1と定義する場合は、レベル1の列211のしきい値個所(行201と列211の交点)に「0〜3ms」と定義し、3ms〜12ms以内をレベル2と定義する場合は、レベル2の列212のしきい値個所(行201と列212の交点)に「3〜12ms」と定義する。同様にして、12ms〜30ms以内をレベル3と定義する場合は、レベル3の列213のしきい値個所(行201と列213の交点)に「12〜30ms」と定義する。なお、最高レベルのレベルx(列21x)では、200msより大きい場合は全てレベルxであると定義するため、レベルxの列21xのしきい値個所(行201と列21xの交点)には「200ms〜」と定義されている。
【0036】
イベント番号がイベント2の行202においても同様にしきい値が定義されているが、イベント2においては、レベル2が無くレベル1からレベル3と続くものとしているため、レベル2の列212のしきい値個所(行202と列212の交点)には、レベル1と同じ値、すなわち、「0〜3ms」が定義されている。また、イベント番号がイベントyの行20yにおいては、レベル1、2、3だけのしきい値が定義されており、レベル4以降は無いものとしている。なお、タスク10が遅延時間のデッドラインのレベル判定を行う際には、レベルの低い方から(レベル1の方から)レベル判定用しきい値テーブル20を用いるものとする。
【0037】
次に、図3を参照して、図1に示したイベント実行処理マトリクステーブル30について説明する。
【0038】
図3は、イベント実行処理マトリクステーブルの構成の一例を説明する図である。
【0039】
図3のイベント実行処理マトリクステーブル30は、遅延時間の付されたイベント通知70を受けたタスク10が、該遅延時間のデッドラインのレベル判定を行った後に、判定したレベルに応じた処理を選択するためのテーブルである。イベント実行処理マトリクステーブル30の構成は、レベル判定用しきい値テーブル20と同様のマトリクステーブルで、該当イベント番号の該当レベル毎に、対応するイベント処理を実行するプログラムのモジュール名、すなわち該プログラムのエントリーアドレスを定義しておくテーブルである。
【0040】
例えば、イベント番号がイベント1で、デッドラインのレベル判定を行った結果がレベル2であったとすると、タスク10は、イベント実行処理マトリクステーブル30の行301(イベント1)と列312(レベル2)の交点に定義されている「EVENT1_2」というモジュール名を有するプログラムを実行させることにより、イベント1のレベル2のイベント処理を行う。同様に、イベント番号がイベント2で、レベル判定の結果がレベル3であったとすると、タスク10は、行302(イベント2)と列313(レベル3)の交点に定義されている「EVENT2_3」というモジュール名を有するプログラムを実行させて、イベント2のレベル3のイベント処理を行う。
【0041】
なお、レベル判定用しきい値テーブル20及びイベント実行処理マトリクステーブル30は、タスク10の外部に存在するものとして説明を行ったが、この2つのテーブルを、タスク10の内部に存在させるようにしても良い。この場合には、タスク10の各々が処理するものとなっているイベント番号に関する部分だけのテーブルを、各タスク10が保持すればよい。
【0042】
次に、図4、図5を参照して、本実施形態の動作について詳細に説明する。なお、図4、図5において図1、図2、図3に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略する。
【0043】
図4は、本実施形態の動作の概観を説明する図である。
【0044】
図4において、時刻t1に、機器などの状態変化などの事象であるところの「イベント1」が発生し、これをタスク制御部60のイベント発生検知部61が検知したものとする。この時、「イベント1」のイベント処理を行うタスク10−1よりも高優先度或いは同一優先度のタスク10−mが実行中であるとすると、このタスク10−mの実行が終了するまでの待ち時間が生ずる。この待ち時間が時刻t2まで続いたものとすると、タスク制御部60の遅延時間計測部62は、t2−t1=T1を遅延時間として計測し、その後イベント通知部63がタスク10−1に対して、時刻t2にイベント通知70−1を発行し、タスク10−1を起動する。イベント通知70−1には、イベント番号として「イベント1」が、遅延時間として「T1」が付されている。
【0045】
イベント通知70−1の発行により、時刻t2にタスク10−1が起動され、「イベント1」に対するイベント処理が開始される。イベント処理を行うタスク10−1の動作について図5を参照して説明する。
【0046】
図5は、本実施形態のタスクの動作を説明する図である。
【0047】
図5において、タスク10は、タスク制御部60から「イベント番号」と「遅延時間」が付加されたイベント通知70を受けて、起動される(S10)。
【0048】
次に、タスク10は、レベル判定用しきい値テーブル20を参照し、イベント通知70に付されている「イベント番号」と「遅延時間」からデッドラインのレベル判定を行う(S11)。ここで、タスク10−1の動作として具体的に説明すると、タスク10−1に通知されたイベント通知70−1には、「イベント番号」として「イベント1」が付されているので、先ずレベル判定用しきい値テーブル20の行201(イベント番号=イベント1)を参照することとなる。次に「遅延時間」が行201のどの列に対応するかを判定する。「遅延時間」として「T1」が付されており、「T1」=5msであったとすると、5msは列212に対応するものであるため、そのレベルは「レベル2」であると判定される。
【0049】
次に、タスク10は、イベント実行処理マトリクステーブル30を参照し、ステップS11で求めたレベルに該当するイベント処理を行うモジュール名を求める(S12)。ここで、タスク10−1の動作として具体的に説明すると、「イベント番号」が「イベント1」で、かつ、そのレベルが「レベル2」と判定されたものであるため、イベント実行処理マトリクステーブル30の行301(イベント1)と列312(レベル2)の交点に記載の「EVENT1_2」が、求めるモジュール名となる。なお、今求めたイベント実行処理マトリクステーブル30のマトリクス位置(行301と列312の交点)は、レベル判定用しきい値テーブル20のマトリクス位置(行201と列212の交点)と全く同じ位置である。
【0050】
モジュール名が求まると、タスク10は該モジュール(プログラム)に制御を渡して実行させ、該モジュールがイベント処理を行う(S13)。タスク10−1の動作として具体的に説明すると、ステップS12で求めたモジュール名は「EVENT1_2」であるため、タスク10−1は該モジュール「EVENT1_2」に制御を渡して実行させ、該モジュール「EVENT1_2」が「イベント1」の「レベル2」のイベント処理を行う。「イベント1」の「レベル2」のイベント処理がリトライ処理であるとすれば、「EVENT1_2」のモジュールは、リトライ処理を行うようプログラミングされているモジュールである。
【0051】
上述したように、タスク10−1による「イベント1」のイベント処理は、図4の時刻t2に開始され、図4に示すように「イベント1処理」として時刻t5まで行われる。
【0052】
タスク10−1による「イベント1処理」が行われている間の時刻t3に「イベント2」が発生し、これをタスク制御部60のイベント発生検知部61が検知したものとする。この時、「イベント2」のイベント処理を行うタスク10−2の優先度よりも、「イベント1処理」を実行中のタスク10−1の優先度の方が高い(或いは同一)ものとすると、タスク10−1の実行が終了する時刻t5まで、タスク10−2の起動は待たされることとなり、この間の待ち時間、すなわちt5−t3=T2を、タスク制御部60の遅延時間計測部62が遅延時間として計測する。
【0053】
タスク10−1の「イベント1処理」が時刻t5に終了すると、タスク制御部60のイベント通知部63は、イベント番号が「イベント2」、遅延時間が「T2」のイベント通知70−2を、タスク10−2に対して時刻t5に発行し、タスク10−2を起動する。
【0054】
起動されたタスク10−2は、図5を参照して述べたと同様の動作により、「イベント2処理」を実行する。すなわち、タスク10−2は起動されると(図5のS10)、イベント通知70−2に付加されている「イベント番号=イベント2」と「遅延時間=T2」から、レベル判定用しきい値テーブル20を参照して、「イベント2」のデッドラインのレベル判定を行い(図5のS11)、次に、イベント実行処理マトリクステーブル30を参照して、求めたレベルに該当するイベント処理を行うモジュール名を求め(図5のS12)、求めたモジュール名のプログラムを実行させて、「イベント2処理」を行わせる(図5のS13)。
【0055】
タスク10−1による「イベント1処理」が実行されている間の時刻t4に、「イベント1」が再度検知された場合も同様に、この2度目の「イベント1」のイベント通知70−3は、タスク10−2による「イベント2処理」が終了する時刻t6まで待たされる。そして、時刻t6になった時に、タスク制御部60のイベント通知部63から、「イベント番号=イベント1」、「遅延時間=T3=t6−t4」のイベント通知70−3が、タスク10−1に対して発行され、上述と同様の動作により、時刻t6からタスク10−1による「イベント1処理」が再度実行される。
【0056】
【発明の効果】
以上説明したように、本発明のイベント通知タスク制御処理方式及び方法並びにプログラムは、リアルタイムOSにおけるイベント発生時点からの遅延時間をタスク側へイベント通知として通知し、タスク側では遅延時間のデッドラインレベルの判定を行い、判定レベルに応じた適切な処理(プログラムモジュール)を選択して実行させる事ができるので、デッドライン異常をタスク側で認識可能となり、タスク側でデッドライン異常の段階に応じた処理プログラムを作成可能となる、という効果を有している。従って、デッドライン異常によるシステム障害を事前に回避可能な処理プログラムを作成可能となる。
【0057】
また、タスク側でデッドライン異常の段階に応じた処理プログラムを作成できるので、例えば、遅延時間がデッドライン異常でない時は正常処理、遅延時間がデッドライン異常に近い時は、準正常処理としてリトライ処理、デッドラインを超えていると判定される時は、異常処理その1として処理中断或いは他装置等外部に対し処理不可能であった旨の通知処理、デッドラインを大幅に超えている時は、CPUの輻輳状態や半暴走状態が考えられるため、回復不可能な状態と判断し、異常処理その2として全処理を中断し他装置等外部へ異常事態を通知する処理、などのように処理内容を分離することが可能となると共に、ウォッチドッグタイマのタイムアウト時と同様に、処理プログラム自体の暴走検出機能を持つこととなり、さらに、どのイベントで暴走検出が成されたかを把握することが可能となる、という効果を有している。
【図面の簡単な説明】
【図1】本発明のイベント通知タスク制御処理方式の一実施形態を示すブロック図である。
【図2】レベル判定用しきい値テーブルの構成の一例を説明する図である。
【図3】イベント実行処理マトリクステーブルの構成の一例を説明する図である。
【図4】本実施形態の動作の概観を説明する図である。
【図5】本実施形態のタスクの動作を説明する図である。
【符号の説明】
10 タスク
20 レベル判定用しきい値テーブル
30 イベント実行処理マトリクステーブル
60 タスク制御部
61 イベント発生検知部
62 遅延時間計測部
63 イベント通知部
70 イベント通知
80 リアルタイムOS
90 装置
Claims (8)
- 実時間制御での割込み処理や周辺装置との入出力インタフェース機能などを実現するリアルタイムOSと、前記リアルタイムOS上で前記リアルタイムOSが検知するイベントの処理を実行する複数のタスクと、を備えた情報処理装置において、
前記タスクが、前記リアルタイムOSから通知されるイベントの発生時からの遅延時間により、前記遅延時間のデッドラインのレベルを判定し、前記レベルに応じた処理プログラムを選択して実行することにより、該イベントの処理を行うイベント処理手段を備え、
前記リアルタイムOSは、イベントの発生を検知すると該イベントの処理を行う何れかの前記タスクに対し、イベント通知を発行するタスク制御手段を備え、前記タスクの前記イベント処理手段は、前記イベント通知に付された該イベントの発生時からの遅延時間により、前記遅延時間のデッドラインのレベルを判定するレベル判定用しきい値テーブルと、前記レベルに応じた処理プログラムを選択するイベント実行処理マトリクステーブルと、を含む、ことを特徴とするイベント通知タスク制御処理方式。 - 前記タスク制御手段は、イベントの発生を検知し該イベントにイベント番号を付す制御を行うイベント発生検知部と、該イベントの処理を担当する何れかの前記タスクを選択してスケジューリングし、該イベントの処理を前記タスクに実行させるためのイベント通知を、前記タスクに発行して前記タスクの起動を制御するイベント通知部と、前記イベント発生検知部にて該イベントの発生を検知した時間から、前記イベント通知部が前記イベント通知を発行する時間までの遅延時間を計測する遅延時間計測部と、から構成され、前記イベント通知には、該イベントの前記イベント番号と前記遅延時間が付される、ことを特徴とする請求項1に記載のイベント通知タスク制御処理方式。
- 前記レベル判定用しきい値テーブルは、行方向に前記イベント番号が並べられ、列方向にデッドラインのレベルが並べられる構成を取り、各行と列との交点に、前記遅延時間に対する前記レベル毎のしきい値が定義されており、前記イベント実行処理マトリクステーブルは、行方向に前記イベント番号が並べられ、列方向にデッドラインのレベルが並べられる構成を取り、各行と列との交点に、前記イベント番号の前記レベルのイベント処理を実行する処理プログラムのモジュール名が定義されている、ことを特徴とする請求項2に記載のイベント通知タスク制御処理方式。
- 前記イベント処理手段は、前記タスク制御手段から前記イベント通知を受けて前記イベント通知に付されている前記イベント番号のイベント処理を実行する何れかの前記タスクが起動されると、前記タスクが前記レベル判定用しきい値テーブルを参照して前記イベント番号の前記遅延時間のデッドラインのレベルを判定し、次に、前記タスクが前記イベント実行処理マトリクステーブルを参照して前記イベント番号の前記レベルに対応するモジュール名を選択し、前記モジュール名を有する処理プログラムに制御を渡して実行させることにより、前記イベント番号を付されたイベントの処理を行わせる、ことを特徴とする請求項3に記載のイベント通知タスク制御処理方式。
- 実時間制御での割込み処理や周辺装置との入出力インタフェース機能などを実現するリアルタイムOSと、前記リアルタイムOS上で前記リアルタイムOSが検知するイベントの処理を実行する複数のタスクと、を備えた情報処理装置において、前記タスクが、レベル判定用しきい値テーブルを参照して前記リアルタイムOSから通知されるイベントの発生時からの遅延時間のデッドラインのレベルを判定し、イベント実行処理マトリクステーブルを参照して前記レベルに応じた処理プログラムを選択して実行することにより、該イベントの処理を行う、ことを特徴とするイベント通知タスク制御処理方法。
- 前記リアルタイムOSは、イベントの発生を検知すると該イベントにイベント番号を付 し、該イベントの発生時からイベント通知発行までの遅延時間を計測し、該イベントの処理を行う何れかの前記タスクを起動可能になると、前記イベント番号と前記遅延時間を付した前記イベント通知を前記タスクに対して発行し、前記タスクは、前記レベル判定用しきい値テーブルを参照して前記イベント番号の前記遅延時間のデッドラインのレベルを判定し、次に、前記タスクは、前記イベント実行処理マトリクステーブルを参照して前記イベント番号の前記レベルに対応するモジュール名を選択し、前記モジュール名を有する処理プログラムに制御を渡して実行させることにより、該イベントの処理を行わせる、ことを特徴とする請求項5に記載のイベント通知タスク制御処理方法。
- コンピュータに、イベントの発生を検知し、該イベントの処理を行う何れかのタスクプログラムに対し、イベント通知を発行する手順と、前記イベント通知を受けた前記タスクプログラムに、レベル判定用しきい値テーブルを参照して前記イベント通知に付されたイベントの発生時からの遅延時間のデッドラインのレベルを判定する手順と、イベント実行処理マトリクステーブルを参照して前記レベルに応じた処理プログラムを選択させ、前記処理プログラムに制御を渡して実行させる手順と、を実行させることにより該イベントの処理を行わせることを特徴とするプログラム。
- コンピュータに、イベントの発生を検知すると該イベントにイベント番号を付す手順と、該イベントの発生時からイベント通知発行までの遅延時間を計測する手順と、該イベントの処理を行う何れかのタスクプログラムを起動可能になると、前記イベント番号と前記遅延時間を付した前記イベント通知を前記タスクプログラムに対して発行する手順と、前記タスクプログラムに、レベル判定用しきい値テーブルを参照して前記イベント番号の前記遅延時間のデッドラインのレベルを判定する手順と、前記イベント番号の前記レベルに対応するモジュール名を選択させる手順と、イベント実行処理マトリクステーブルを参照して前記モジュール名を有する処理プログラムに制御を渡して実行させる手順と、を実行させることにより該イベントの処理を行わせる、ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002227480A JP3859564B2 (ja) | 2002-08-05 | 2002-08-05 | イベント通知タスク制御処理方式及び方法並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002227480A JP3859564B2 (ja) | 2002-08-05 | 2002-08-05 | イベント通知タスク制御処理方式及び方法並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004070582A JP2004070582A (ja) | 2004-03-04 |
JP3859564B2 true JP3859564B2 (ja) | 2006-12-20 |
Family
ID=32014507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002227480A Expired - Fee Related JP3859564B2 (ja) | 2002-08-05 | 2002-08-05 | イベント通知タスク制御処理方式及び方法並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3859564B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4009602B2 (ja) * | 2004-03-02 | 2007-11-21 | 日本電気通信システム株式会社 | リアルタイムosを用いたタスク処理方法、装置、及びプログラム |
JP4516898B2 (ja) * | 2005-08-04 | 2010-08-04 | 日本電気株式会社 | タスク制御装置 |
JP5069325B2 (ja) | 2010-03-11 | 2012-11-07 | 株式会社豊田中央研究所 | タスク実行制御装置及びプログラム |
FR3004825B1 (fr) * | 2013-04-19 | 2015-04-24 | Krono Safe | Procede d'allocation temporelle de taches permettant une recuperation d'erreur deterministe en temps reel |
JP7070664B2 (ja) * | 2018-03-30 | 2022-05-18 | 住友電気工業株式会社 | システム、そのサーバコンピュータ、制御方法及びコンピュータプログラム |
JP7118833B2 (ja) * | 2018-09-19 | 2022-08-16 | キヤノン株式会社 | システム及び方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69227664T2 (de) * | 1991-10-15 | 1999-04-22 | Hewlett Packard Co | Hardwarekonfiguriertes Betriebssystemkern für einen Multitaskprozessor |
JPH09244984A (ja) * | 1996-03-08 | 1997-09-19 | Nippon Telegr & Teleph Corp <Ntt> | イベント順序補正方法 |
JPH11237995A (ja) * | 1998-02-23 | 1999-08-31 | Matsushita Electric Ind Co Ltd | イベント制御装置 |
JP3663950B2 (ja) * | 1999-01-20 | 2005-06-22 | 株式会社デンソー | 自動車用電子制御装置 |
-
2002
- 2002-08-05 JP JP2002227480A patent/JP3859564B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004070582A (ja) | 2004-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6434591B1 (en) | Thread control system and method in a computer system | |
US20090150892A1 (en) | Interrupt controller for invoking service routines with associated priorities | |
US7275122B2 (en) | Method and system for maintaining a desired service level for a processor receiving excessive interrupts | |
JP2007018282A (ja) | プロセス制御システム及びその制御方法 | |
WO2006076853A1 (fr) | Procede de traitement multifiliere/multitache/multiprocesseur | |
JP3859564B2 (ja) | イベント通知タスク制御処理方式及び方法並びにプログラム | |
JP5579935B2 (ja) | 割り込み処理に起因する異常動作の検知 | |
JP4761229B2 (ja) | 運用管理装置、運用管理方法ならびにプログラム | |
KR100697988B1 (ko) | 과도한 인터럽트로부터 시스템을 보호하는 장치 및 그 방법 | |
JP2006227962A (ja) | アプリケーションタスク監視システムおよび方法 | |
JP2022102333A (ja) | 実行スケジューリング決定方法及び実行スケジューリング決定プログラム | |
JPH11237995A (ja) | イベント制御装置 | |
JPH10269110A (ja) | 計算機システムのハングアップ回避方法並びにこの方法を用いた計算機システム。 | |
JP4009602B2 (ja) | リアルタイムosを用いたタスク処理方法、装置、及びプログラム | |
JP4387863B2 (ja) | 擾乱発生検出プログラムおよび擾乱発生検出方法 | |
JPH0334037A (ja) | システム異常の検出処理方式 | |
JP2000089971A (ja) | 割込み順位制御方法及び割込み順位制御装置 | |
JP2007041890A (ja) | タスク制御装置 | |
JPH05241906A (ja) | プログラマブル制御装置 | |
JPS62113260A (ja) | マルチcpuシステムにおけるタイマ監視制御方式 | |
JPS63280345A (ja) | プログラム異常検出方法 | |
JPH08329022A (ja) | マルチプロセッサシステムの入出力処理負荷分散制御方式 | |
JPH11327959A (ja) | プロセッサの異常監視方法及び装置 | |
JP2003256243A (ja) | プロセスストール監視方法及び監視システム | |
JP2000259433A (ja) | デッドロック検出装置及びその検出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050304 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050715 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060613 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060802 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060919 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090929 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100929 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |