JP3524700B2 - タスク監視方法 - Google Patents
タスク監視方法Info
- Publication number
- JP3524700B2 JP3524700B2 JP29134396A JP29134396A JP3524700B2 JP 3524700 B2 JP3524700 B2 JP 3524700B2 JP 29134396 A JP29134396 A JP 29134396A JP 29134396 A JP29134396 A JP 29134396A JP 3524700 B2 JP3524700 B2 JP 3524700B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- monitoring
- monitored
- priority
- monitoring task
- 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
Landscapes
- Debugging And Monitoring (AREA)
Description
するマルチタスクシステムにおけるタスク監視方法に関
するものである。
ムにおける従来のタスク監視方法としては、特開平5−
233333号公報、特開平6−4318号公報に開示
されているように監視タスクのプライオリティを最上位
にして、各タスクの動作を監視する方法がある。この方
法によると、監視タスクの実行はどのタスクの実行より
も優先して行われる事になるので、メッセージの通信等
により常に他のタスクの監視を行う事ができる。よっ
て、異常が生じたタスクを容易に発見できる。
来例においては、監視タスクの実行はどのタスクよりも
優先して行われるので、他のタスクの実行に影響を及ぼ
す事になる。更に、監視タスクの監視内容を複雑にする
と、監視タスクに多くの資源(CPUパワー)が消費さ
れるため、アプリケーションの実行効率が落ちたり、タ
イミング等に影響を及ぼすという問題も生じる。
のであり、監視タスクを設けてタスクを監視するシステ
ムにおいて、監視タスクの実行が他のタスクの実行に与
える影響ができる限り少ないタスク監視方法を提供する
事を目的とする。
つの被監視タスクと該被監視タスクを監視する第1の監
視タスクとを有するマルチタスクシステムのタスク監視
方法において、前記第1の監視タスクのプライオリティ
を前記被監視タスクのプライオリティより低くし、前記
マルチタスクシステムは第1の監視タスクの動作のみを
監視する第2の監視タスクを有し、前記第2の監視タス
クのプライオリティは前記被監視タスクのプライオリテ
ィより高くするように構成する。
クへメッセージで問い合わせたり、各監視タスクの状態
を示すフラグを読み込む事によって被監視タスクの監視
を行う事ができる。ここで、第1の監視タスクのプライ
オリティは、どの被監視タスクより低いので、第1の監
視タスクの監視動作が他の被監視タスクの実行に及ぼす
影響は少ない。
視タスクによりなされる事になる。また、第2の監視タ
スクの実行は第1の監視タスクの監視を行うだけなの
で、実行内容は単純であり、実行時間を短くする事は可
能なので、他の被監視タスクの実行に大きな影響を与え
ることはない。
タスクの状態を監視し、各被監視タスク固有のとり得る
状態以外の状態であると判断した被監視タスクを異常と
判断するようにする。つまり、第1の監視タスクは被監
視タスクは被監視タスクの状態を読み込み、その状態を
予めテーブル等に登録されている状態と比較し、異常か
どうかを判定する事ができる。そして異常なタスクが特
定されたならば、その異常なタスクを例えば強制終了さ
せれば、システム全体がスムーズに実行される事にな
る。
基本構成を示すブロック図である。リアルタイムOS6
上に、制御実行するn個の被監視タスク31〜3nと、被
監視タスク3を監視する第1の監視タスク1と、第1の
監視タスク1を監視する第2の監視タスク2とテーブル
14が設けられている。
照できるように設定されている。被監視タスク3のプラ
イオリティは31、32、33、・・・、3nとなるに従っ
て低くなる。第1の監視タスク1のプライオリティは、
全ての被監視タスク3のプライオリティより低く設定さ
れている。
るもので、実行可能状態のタスクが複数個存在した場
合、プライオリティの高いタスクから実行状態に遷移す
るようになっている。この事について、一般的なタスク
の状態と遷移の様子を示す図6を用いて説明する。タス
クは三つの基本状態、すなわち実行可能状態7、実行状
態8、待機状態9をとる。実行可能状態7はCPUの使
用が可能な状態であり、実行状態8はCPUを使用中の
状態であり、待機状態9は入出力動作などの終了を待っ
ている状態でCPUが使用できない状態である。
の終了を待つ場合、矢印10に従って遷移する。待って
いた事象(例えば入出力終了)が発生したタスクは、矢
印11に従って遷移する。CPU使用中のタスクがCP
U使用権を他のタスクに移す場合、矢印12に従って遷
移する。CPU使用権が与えられたタスクは、矢印13
に従って遷移する。
に複数のタスクで一つのCPUを使用する場合は、実行
状態8のタスクはシステムに一つしか存在しない。よっ
て、実行可能状態7にあるタスクの中から、プライオリ
ティの最も高いタスクが実行状態に遷移する事になる。
監視タスク1の実行は、実行可能状態7の他のタスクが
存在しないときのみ行われる事になる。また、第1の監
視タスク1が実行状態8にある場合においても、他のタ
スクが実行可能状態7となれば他のタスクの実行の割り
込みを受け付ける。よって、第1の監視タスクの実行は
被監視タスク3のリアルタイムの実行に対してはほとん
ど影響を与える事がない。
ィが最も高くなるように設定されている。従って、第2
の監視タスク2の実行は実行可能状態7のタスクが複数
存在しても、どのタスクの実行よりも優先して行われる
事になる。よって、被監視タスク3の実行に影響を与え
る事になるので、できるだけ短い時間で行う必要があ
る。本実施形態では、第2の監視タスク2の実行内容は
第1の監視タスク1を監視するだけなので、実行時間を
短くする事ができる。
ク3を監視する監視方法を示すフローチャートである。
第1の監視タスク1は、まず始めにステップ#10で周
期起床設定を行う。次にステップ#15で最初に監視を
行う被監視タスク3xを指定する(xは1≦x≦nとな
る整数)。ここでタスクは実行可能状態7となり、ステ
ップ#20のスリープである一定時間待って、ステップ
#25で実行状態8に遷移する。
で指定した被監視タスク3xの状態を取得する。これ
は、被監視タスク3xにセットされている現在の状態を
示すフラグを読み込む事によって行う。そして、ステッ
プ#30では取得した状態がテーブル14にある状態か
否か判定する。テーブル14には表1に示すように予め
各被監視タスク3の取り得る状態が登録されている。
タスク3xの状態がテーブル14に登録されている状態
でなければ、ステップ#40に進みERRに1をセット
して、ステップ#45で第2の監視タスク2へ監視を行
った被監視タスク3xが異常であったというメッセージ
を送る。このメッセージを受けた第2の監視タスク2は
異常である被監視タスク3xの強制終了を行う。
ーブルに登録されている状態であれば、ステップ#35
でERRに0をセットして、ステップ#45で第2の監
視タスク2へ異常がなかったというメッセージを送る。
ッセージの送信が終了すると、ステップ#50では、先
に監視を行った被監視タスク3xがテーブル上に登録さ
れている最後の被監視タスク3か否かを判定する。最後
の被監視タスク3でなければステップ#55へ進み、次
に監視を行う被監視タスク3x'を指定して、ステップ#
20へ戻る。ステップ#50で最後の被監視タスク3で
あると判定されれば再びテーブル14上に登録されてい
る被監視タスク3の監視を繰り返すので、ステップ#1
5へ戻り最初に監視を行う被監視タスク3を指定する。
は、第2の監視タスク2により異常タスクの強制終了が
なされる。しかし、異常タスクを強制終了後再起動させ
てもまだ異常であるとの情報が送られてくる場合は、第
2の監視タスク2はシステム全体のデータを保持しなが
らシステムをリセットし、システムがウォームスタート
するようにセットする。図3にリセット後のシステムの
処理内容のフローチャートを示す。
ハードウェアの初期化を行う。そして、ステップ#70
でウォームスタートか否かを判定し、ウォームスタート
であればステップ#75のメモリの初期化を行わずにス
テップ#80へジャンプする。尚、前述の場合は、ここ
でウォームスタートであると判断する。ステップ#80
では、初期タスクを起動する。以上でシステムのリセッ
ト後の処理が終了する。尚、ステップ#70でウォーム
スタートでないと判断された場合は、ステップ#75で
メモリの初期化を行ってからステップ#80へ進む事に
なる。
プライオリティが最上位であるために、これを監視する
タスクは用意されていない。この第2の監視タスク2の
監視はウォッチドッグタイマでハードウェア的に行う。
以下、その監視方法について説明する。
ッグタイマ(WDT)5の関係を示した図である。第2
の監視タスク2は動作する度に、ハードウェアとして独
立して動作するウォッチドッグタイマ5のリセットを行
う。第2の監視タスク2に異常が生じウォッチドッグタ
イマ5のリセットが行われないと、ウォッチドッグタイ
マ5は不図示のクロックをカウントし、所定時間をカウ
ントした後、システム4に対しリセットをかける。リセ
ット後、システム4は図3に示すフローチャートの処理
を行う。この場合は、ウォームスタートではないのでス
テップ#75のメモリの初期化は行われる事になる。
明する。図5(a)は基本構成を示すブロック図であ
る。リアルタイムOS6上にn個の被監視タスク31〜
3nと、第1の監視タスク1と第2の監視タスク2が設
けられている。被監視タスク3のプライオリティは
31、32、33、・・・、3nの順に従って低くなる。第
1の監視タスク1のプライオリティは全ての被監視タス
ク3のプライオリティより低く、第2の監視タスク2の
プライオリティは全ての被監視タスク3のプライオリテ
ィより高く設定されている。
まりこれよりプライオリティの高い被監視タスク3の実
行が順調に進み第1の監視タスク1が実行状態に移る毎
に、イベントフラグをセットしてイベントフラグの情報
を第2の監視タスク2に送る。第2の監視タスク2は第
1の監視タスク1から送られてくるイベントフラグの情
報を一定時間毎に監視し、ある一定時間以上イベントフ
ラグがセットされないと第1の監視タスク1が実行され
ていないと判断し異常とする。
異常であると判断すると、図5(b)に示すように第1
の監視タスク1のプライオリティを1段階上げる。つま
り、第1の監視タスク1のプライオリティが被監視タス
ク3nと3n-1の間のプライオリティになるようにする。
タスク1からの情報を一定時間待つ。一定時間待って
も、イベントフラグがセットされたとの情報が送られて
こないと、第2の監視タスク2は図5(c)に示すよう
に第1の監視タスク1のプライオリティをもう1段階上
げる。つまり、第1の監視タスク1のプライオリティが
被監視タスク3n-1と3n-2の間のプライオリティになる
ようにする。
1の監視タスク1のイベントフラグがセットされるよう
になるまで繰り返し、異常である被監視タスク3を特定
する。ここで、例えば図5(c)に示すようにセットし
たときに、第1の監視タスク1からイベントフラグがセ
ットされたとの情報が送られてくるようになったとする
と、第2の監視タスク2は被監視タスク3n-1が異常で
あったと判断する。
ティが、被監視タスク3n-1のプライオリティより高く
なってようやく第1の監視タスク1が実行されるように
なったので、異常である被監視タスク3n-1が第1の監
視タスク1の実行を妨げていたと判断するからである。
視タスク3を特定すると、その被監視タスク3の強制終
了を行う。その後、第1の監視タスク1を最下位つまり
図5(a)の状態に戻して、強制終了させた被監視タス
ク3を再起動させる。このようにしても、まだ第1の監
視タスク1からイベントフラグがセットされたとの情報
が送られてこない場合は、第2の監視タスク2はデータ
を保持しながら、システム全体をウォームスタートさせ
る。その際の処理方法は第1の実施形態と同様であるの
で説明を省略する。
態と同様にプライオリティが最上位であるため、ウォッ
チドッグタイマ5でハードウェア的に監視がなされる。
このときの監視方法は第1の実施形態と同様であるので
説明を省略する。
ライオリティは全ての被監視タスクのプライオリティよ
りも低く構成される事になるので、第1の監視タスクの
実行つまりタスクの監視は、他の被監視タスクの実行に
影響を与える事がない。従って、システムのアプリケー
ション効率を維持したまま、監視内容を厳密にする事も
できる。
監視タスクも構成される事になるので、第1の監視タス
クの異常を発見する事が可能となる。また、第2の監視
タスクの実行内容は第1の監視タスクの監視を行うだけ
なので、実行時間は短くて済み、他のタスクの実行に大
きな影響を及ぼす事はない。
るので、システムが正常に動作するようにその後の処理
を行う事ができるようになる。
スクが被監視タスクの状態を読み込み、この状態と被監
視タスク固有のあるべき状態とを比較するという動作を
行うだけで異常タスクの特定ができる。つまり、被監視
タスクとしては特別な動作が必要なく、システム全体も
複雑にはならない。
ャート。
ャート。
係を示すブロック図。
ク図と(b)、(c)第1の監視タスクのプライオリテ
ィを上げた後のブロック図。
図。
Claims (2)
- 【請求項1】 少なくとも一つの被監視タスクと該被監
視タスクを監視する第1の監視タスクとを有するマルチ
タスクシステムのタスク監視方法において、前記第1の
監視タスクのプライオリティを前記被監視タスクのプラ
イオリティより低くし、前記マルチタスクシステムは第
1の監視タスクの動作のみを監視する第2の監視タスク
を有し、前記第2の監視タスクのプライオリティは前記
被監視タスクのプライオリティより高くする事を特徴と
するタスク監視方法。 - 【請求項2】 前記第1の監視タスクは前記被監視タス
クの状態を監視し、各被監視タスク固有のとり得る状態
以外の状態であると判断した被監視タスクを異常と判断
する事を特徴とする請求項1に記載のタスク監視方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29134396A JP3524700B2 (ja) | 1996-11-01 | 1996-11-01 | タスク監視方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29134396A JP3524700B2 (ja) | 1996-11-01 | 1996-11-01 | タスク監視方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10133887A JPH10133887A (ja) | 1998-05-22 |
JP3524700B2 true JP3524700B2 (ja) | 2004-05-10 |
Family
ID=17767701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29134396A Expired - Fee Related JP3524700B2 (ja) | 1996-11-01 | 1996-11-01 | タスク監視方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3524700B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4609381B2 (ja) * | 2006-06-14 | 2011-01-12 | 株式会社デンソー | 異常監視用プログラム、記録媒体及び電子装置 |
JP5335552B2 (ja) * | 2009-05-14 | 2013-11-06 | キヤノン株式会社 | 情報処理装置、その制御方法、及びコンピュータプログラム |
JP5418066B2 (ja) * | 2009-08-25 | 2014-02-19 | 富士通モバイルコミュニケーションズ株式会社 | 情報処理装置 |
-
1996
- 1996-11-01 JP JP29134396A patent/JP3524700B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10133887A (ja) | 1998-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7137117B2 (en) | Dynamically variable idle time thread scheduling | |
US7849463B2 (en) | Dynamically variable idle time thread scheduling | |
EP1508856A1 (en) | Processor system, task control method on computer system, computer program | |
US20030233485A1 (en) | Event queue | |
JP2001154885A (ja) | コンピュータシステムのロックアップ防止方法及びコンピュータシステムをモニターする方法 | |
US7231468B2 (en) | Future activity list for peripheral bus host controller | |
US20040031034A1 (en) | System, method and software for reducing interrupt latency while polling in system management mode | |
WO2000073895A1 (en) | Method and device for monitoring the creation and destruction of child processes within an application executing in a computer system | |
EP1297432B1 (en) | Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts | |
JP2001160041A (ja) | オンラインシステムのcpu負荷軽減方式 | |
JP3524700B2 (ja) | タスク監視方法 | |
US5241676A (en) | Method for controlling process priority in semaphore operation | |
CN111352803A (zh) | 业务数据处理方法、装置、设备和存储介质 | |
WO2000028418A1 (en) | Scheduling resource requests in a computer system | |
EP1503270A2 (en) | Apparatus and method for controlling CPU speed transition | |
JP2004213122A (ja) | クライアント/サーバによる制御システムの安定稼働方法及びそのプログラム | |
CN111796949A (zh) | 通讯任务处理方法、装置、设备及存储介质 | |
JP3494788B2 (ja) | プログラム実行管理システム及びプログラム実行管理方法 | |
US20080141267A1 (en) | Cooperative scheduling of multiple partitions in a single time window | |
JP2005182594A (ja) | コンピュータ及びプログラム | |
JPH09305414A (ja) | プロセス管理方法 | |
JPH0962520A (ja) | 無限ループ監視装置 | |
CN113656468A (zh) | 基于nifi的任务流程触发方法及装置 | |
CN114237954A (zh) | 非对称多核amp分时循环工作方法 | |
CN115599540A (zh) | 一种多线程调用系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031218 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040213 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090220 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100220 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |