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
Application number
JP29134396A
Other languages
English (en)
Other versions
JPH10133887A (ja
Inventor
行弥 樋口
公夫 中川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP29134396A priority Critical patent/JP3524700B2/ja
Publication of JPH10133887A publication Critical patent/JPH10133887A/ja
Application granted granted Critical
Publication of JP3524700B2 publication Critical patent/JP3524700B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のタスクを有
するマルチタスクシステムにおけるタスク監視方法に関
するものである。
【0002】
【従来の技術】監視タスクを有するマルチタスクシステ
ムにおける従来のタスク監視方法としては、特開平5−
233333号公報、特開平6−4318号公報に開示
されているように監視タスクのプライオリティを最上位
にして、各タスクの動作を監視する方法がある。この方
法によると、監視タスクの実行はどのタスクの実行より
も優先して行われる事になるので、メッセージの通信等
により常に他のタスクの監視を行う事ができる。よっ
て、異常が生じたタスクを容易に発見できる。
【0003】
【発明が解決しようとする課題】しかしながら、上記従
来例においては、監視タスクの実行はどのタスクよりも
優先して行われるので、他のタスクの実行に影響を及ぼ
す事になる。更に、監視タスクの監視内容を複雑にする
と、監視タスクに多くの資源(CPUパワー)が消費さ
れるため、アプリケーションの実行効率が落ちたり、タ
イミング等に影響を及ぼすという問題も生じる。
【0004】本発明は、上記問題点を鑑みてなされたも
のであり、監視タスクを設けてタスクを監視するシステ
ムにおいて、監視タスクの実行が他のタスクの実行に与
える影響ができる限り少ないタスク監視方法を提供する
事を目的とする。
【0005】
【課題を解決するための手段】本発明は、少なくとも一
つの被監視タスクと該被監視タスクを監視する第1の監
視タスクとを有するマルチタスクシステムのタスク監視
方法において、前記第1の監視タスクのプライオリティ
を前記被監視タスクのプライオリティより低くし、前記
マルチタスクシステムは第1の監視タスクの動作のみを
監視する第2の監視タスクを有し、前記第2の監視タス
クのプライオリティは前記被監視タスクのプライオリテ
ィより高くするように構成する。
【0006】第1の監視タスクは、例えば各被監視タス
クへメッセージで問い合わせたり、各監視タスクの状態
を示すフラグを読み込む事によって被監視タスクの監視
を行う事ができる。ここで、第1の監視タスクのプライ
オリティは、どの被監視タスクより低いので、第1の監
視タスクの監視動作が他の被監視タスクの実行に及ぼす
影響は少ない。
【0007】また、第1の監視タスクの監視も第2の監
視タスクによりなされる事になる。また、第2の監視タ
スクの実行は第1の監視タスクの監視を行うだけなの
で、実行内容は単純であり、実行時間を短くする事は可
能なので、他の被監視タスクの実行に大きな影響を与え
ることはない。
【0008】また、前記第1の監視タスクは前記被監視
タスクの状態を監視し、各被監視タスク固有のとり得る
状態以外の状態であると判断した被監視タスクを異常と
判断するようにする。つまり、第1の監視タスクは被監
視タスクは被監視タスクの状態を読み込み、その状態を
予めテーブル等に登録されている状態と比較し、異常か
どうかを判定する事ができる。そして異常なタスクが特
定されたならば、その異常なタスクを例えば強制終了さ
せれば、システム全体がスムーズに実行される事にな
る。
【0009】
【0010】
【0011】
【発明の実施の形態】図1は本発明の第1の実施形態の
基本構成を示すブロック図である。リアルタイムOS6
上に、制御実行するn個の被監視タスク31〜3nと、被
監視タスク3を監視する第1の監視タスク1と、第1の
監視タスク1を監視する第2の監視タスク2とテーブル
14が設けられている。
【0012】テーブル14は、第1の監視タスク1が参
照できるように設定されている。被監視タスク3のプラ
イオリティは31、32、33、・・・、3nとなるに従っ
て低くなる。第1の監視タスク1のプライオリティは、
全ての被監視タスク3のプライオリティより低く設定さ
れている。
【0013】尚、プライオリティとは実行優先度を決め
るもので、実行可能状態のタスクが複数個存在した場
合、プライオリティの高いタスクから実行状態に遷移す
るようになっている。この事について、一般的なタスク
の状態と遷移の様子を示す図6を用いて説明する。タス
クは三つの基本状態、すなわち実行可能状態7、実行状
態8、待機状態9をとる。実行可能状態7はCPUの使
用が可能な状態であり、実行状態8はCPUを使用中の
状態であり、待機状態9は入出力動作などの終了を待っ
ている状態でCPUが使用できない状態である。
【0014】CPUを使用中のタスクが入出力動作など
の終了を待つ場合、矢印10に従って遷移する。待って
いた事象(例えば入出力終了)が発生したタスクは、矢
印11に従って遷移する。CPU使用中のタスクがCP
U使用権を他のタスクに移す場合、矢印12に従って遷
移する。CPU使用権が与えられたタスクは、矢印13
に従って遷移する。
【0015】本実施形態のマルチタスクシステムのよう
に複数のタスクで一つのCPUを使用する場合は、実行
状態8のタスクはシステムに一つしか存在しない。よっ
て、実行可能状態7にあるタスクの中から、プライオリ
ティの最も高いタスクが実行状態に遷移する事になる。
【0016】つまり、プライオリティの最も低い第1の
監視タスク1の実行は、実行可能状態7の他のタスクが
存在しないときのみ行われる事になる。また、第1の監
視タスク1が実行状態8にある場合においても、他のタ
スクが実行可能状態7となれば他のタスクの実行の割り
込みを受け付ける。よって、第1の監視タスクの実行は
被監視タスク3のリアルタイムの実行に対してはほとん
ど影響を与える事がない。
【0017】一方、第2の監視タスク2はプライオリテ
ィが最も高くなるように設定されている。従って、第2
の監視タスク2の実行は実行可能状態7のタスクが複数
存在しても、どのタスクの実行よりも優先して行われる
事になる。よって、被監視タスク3の実行に影響を与え
る事になるので、できるだけ短い時間で行う必要があ
る。本実施形態では、第2の監視タスク2の実行内容は
第1の監視タスク1を監視するだけなので、実行時間を
短くする事ができる。
【0018】図2は、第1の監視タスク1の被監視タス
ク3を監視する監視方法を示すフローチャートである。
第1の監視タスク1は、まず始めにステップ#10で周
期起床設定を行う。次にステップ#15で最初に監視を
行う被監視タスク3xを指定する(xは1≦x≦nとな
る整数)。ここでタスクは実行可能状態7となり、ステ
ップ#20のスリープである一定時間待って、ステップ
#25で実行状態8に遷移する。
【0019】ステップ#25では、先にステップ#15
で指定した被監視タスク3xの状態を取得する。これ
は、被監視タスク3xにセットされている現在の状態を
示すフラグを読み込む事によって行う。そして、ステッ
プ#30では取得した状態がテーブル14にある状態か
否か判定する。テーブル14には表1に示すように予め
各被監視タスク3の取り得る状態が登録されている。
【0020】
【表1】
【0021】ステップ#30では、監視を行った被監視
タスク3xの状態がテーブル14に登録されている状態
でなければ、ステップ#40に進みERRに1をセット
して、ステップ#45で第2の監視タスク2へ監視を行
った被監視タスク3xが異常であったというメッセージ
を送る。このメッセージを受けた第2の監視タスク2は
異常である被監視タスク3xの強制終了を行う。
【0022】監視を行った被監視タスク3xの状態がテ
ーブルに登録されている状態であれば、ステップ#35
でERRに0をセットして、ステップ#45で第2の監
視タスク2へ異常がなかったというメッセージを送る。
【0023】ステップ#45で第2の監視タスクへのメ
ッセージの送信が終了すると、ステップ#50では、先
に監視を行った被監視タスク3xがテーブル上に登録さ
れている最後の被監視タスク3か否かを判定する。最後
の被監視タスク3でなければステップ#55へ進み、次
に監視を行う被監視タスク3x'を指定して、ステップ#
20へ戻る。ステップ#50で最後の被監視タスク3で
あると判定されれば再びテーブル14上に登録されてい
る被監視タスク3の監視を繰り返すので、ステップ#1
5へ戻り最初に監視を行う被監視タスク3を指定する。
【0024】尚、異常タスクが発見され特定された場合
は、第2の監視タスク2により異常タスクの強制終了が
なされる。しかし、異常タスクを強制終了後再起動させ
てもまだ異常であるとの情報が送られてくる場合は、第
2の監視タスク2はシステム全体のデータを保持しなが
らシステムをリセットし、システムがウォームスタート
するようにセットする。図3にリセット後のシステムの
処理内容のフローチャートを示す。
【0025】システムはリセット後、ステップ#65で
ハードウェアの初期化を行う。そして、ステップ#70
でウォームスタートか否かを判定し、ウォームスタート
であればステップ#75のメモリの初期化を行わずにス
テップ#80へジャンプする。尚、前述の場合は、ここ
でウォームスタートであると判断する。ステップ#80
では、初期タスクを起動する。以上でシステムのリセッ
ト後の処理が終了する。尚、ステップ#70でウォーム
スタートでないと判断された場合は、ステップ#75で
メモリの初期化を行ってからステップ#80へ進む事に
なる。
【0026】また、本実施形態の第2の監視タスク2は
プライオリティが最上位であるために、これを監視する
タスクは用意されていない。この第2の監視タスク2の
監視はウォッチドッグタイマでハードウェア的に行う。
以下、その監視方法について説明する。
【0027】図4は、第2の監視タスク2とウォッチド
ッグタイマ(WDT)5の関係を示した図である。第2
の監視タスク2は動作する度に、ハードウェアとして独
立して動作するウォッチドッグタイマ5のリセットを行
う。第2の監視タスク2に異常が生じウォッチドッグタ
イマ5のリセットが行われないと、ウォッチドッグタイ
マ5は不図示のクロックをカウントし、所定時間をカウ
ントした後、システム4に対しリセットをかける。リセ
ット後、システム4は図3に示すフローチャートの処理
を行う。この場合は、ウォームスタートではないのでス
テップ#75のメモリの初期化は行われる事になる。
【0028】次に、本発明の第2の実施形態について説
明する。図5(a)は基本構成を示すブロック図であ
る。リアルタイムOS6上にn個の被監視タスク31
nと、第1の監視タスク1と第2の監視タスク2が設
けられている。被監視タスク3のプライオリティは
1、32、33、・・・、3nの順に従って低くなる。第
1の監視タスク1のプライオリティは全ての被監視タス
ク3のプライオリティより低く、第2の監視タスク2の
プライオリティは全ての被監視タスク3のプライオリテ
ィより高く設定されている。
【0029】第1の監視タスク1は実行される毎に、つ
まりこれよりプライオリティの高い被監視タスク3の実
行が順調に進み第1の監視タスク1が実行状態に移る毎
に、イベントフラグをセットしてイベントフラグの情報
を第2の監視タスク2に送る。第2の監視タスク2は第
1の監視タスク1から送られてくるイベントフラグの情
報を一定時間毎に監視し、ある一定時間以上イベントフ
ラグがセットされないと第1の監視タスク1が実行され
ていないと判断し異常とする。
【0030】第2の監視タスク2は第1の監視タスクが
異常であると判断すると、図5(b)に示すように第1
の監視タスク1のプライオリティを1段階上げる。つま
り、第1の監視タスク1のプライオリティが被監視タス
ク3nと3n-1の間のプライオリティになるようにする。
【0031】その後、第2の監視タスク2は第1の監視
タスク1からの情報を一定時間待つ。一定時間待って
も、イベントフラグがセットされたとの情報が送られて
こないと、第2の監視タスク2は図5(c)に示すよう
に第1の監視タスク1のプライオリティをもう1段階上
げる。つまり、第1の監視タスク1のプライオリティが
被監視タスク3n-1と3n-2の間のプライオリティになる
ようにする。
【0032】第2の監視タスク2はこのような操作を第
1の監視タスク1のイベントフラグがセットされるよう
になるまで繰り返し、異常である被監視タスク3を特定
する。ここで、例えば図5(c)に示すようにセットし
たときに、第1の監視タスク1からイベントフラグがセ
ットされたとの情報が送られてくるようになったとする
と、第2の監視タスク2は被監視タスク3n-1が異常で
あったと判断する。
【0033】これは、第1の監視タスク1のプライオリ
ティが、被監視タスク3n-1のプライオリティより高く
なってようやく第1の監視タスク1が実行されるように
なったので、異常である被監視タスク3n-1が第1の監
視タスク1の実行を妨げていたと判断するからである。
【0034】そして、第2の監視タスク2は異常な被監
視タスク3を特定すると、その被監視タスク3の強制終
了を行う。その後、第1の監視タスク1を最下位つまり
図5(a)の状態に戻して、強制終了させた被監視タス
ク3を再起動させる。このようにしても、まだ第1の監
視タスク1からイベントフラグがセットされたとの情報
が送られてこない場合は、第2の監視タスク2はデータ
を保持しながら、システム全体をウォームスタートさせ
る。その際の処理方法は第1の実施形態と同様であるの
で説明を省略する。
【0035】また、第2の監視タスク2は第1の実施形
態と同様にプライオリティが最上位であるため、ウォッ
チドッグタイマ5でハードウェア的に監視がなされる。
このときの監視方法は第1の実施形態と同様であるので
説明を省略する。
【0036】
【発明の効果】本発明によると、第1の監視タスクのプ
ライオリティは全ての被監視タスクのプライオリティよ
りも低く構成される事になるので、第1の監視タスクの
実行つまりタスクの監視は、他の被監視タスクの実行に
影響を与える事がない。従って、システムのアプリケー
ション効率を維持したまま、監視内容を厳密にする事も
できる。
【0037】また、第1の監視タスクを監視する第2の
監視タスクも構成される事になるので、第1の監視タス
クの異常を発見する事が可能となる。また、第2の監視
タスク実行内容は第1の監視タスクの監視を行うだけ
なので、実行時間は短くて済み、他のタスクの実行に大
きな影響を及ぼす事はない。
【0038】また、異常のある被監視タスクが特定され
るので、システムが正常に動作するようにその後の処理
を行う事ができるようになる
【0039】また、この発明においては、第1の監視タ
スクが被監視タスクの状態を読み込み、この状態と被監
視タスク固有のあるべき状態とを比較するという動作を
行うだけで異常タスクの特定ができる。つまり、被監視
タスクとしては特別な動作が必要なく、システム全体も
複雑にはならない。
【0040】
【0041】
【図面の簡単な説明】
【図1】第1の実施形態の基本構成を示すブロック図。
【図2】第2の監視タスクの監視方法を示したフローチ
ャート。
【図3】リセット後のシステムの処理を示したフローチ
ャート。
【図4】第2の監視タスクとウォッチドッグタイマの関
係を示すブロック図。
【図5】第2の実施形態の(a)基本構成を示すブロッ
ク図と(b)、(c)第1の監視タスクのプライオリテ
ィを上げた後のブロック図。
【図6】タスクの三つの基本状態と遷移の関係を示す
図。
【符号の説明】
1 第1の監視タスク 2 第2の監視タスク 3 被監視タスク 4 システム 5 ウォッチドッグタイマ 6 リアルタイムOS 14 テーブル
フロントページの続き (56)参考文献 特開 平4−245547(JP,A) 特開 平2−212940(JP,A) 特開 平7−219790(JP,A) 特開 平5−233333(JP,A) 特開 平6−4318(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 G06F 11/30

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 少なくとも一つの被監視タスクと該被監
    視タスクを監視する第1の監視タスクとを有するマルチ
    タスクシステムのタスク監視方法において、前記第1の
    監視タスクのプライオリティを前記被監視タスクのプラ
    イオリティより低くし、前記マルチタスクシステムは第
    1の監視タスクの動作のみを監視する第2の監視タスク
    を有し、前記第2の監視タスクのプライオリティは前記
    被監視タスクのプライオリティより高くする事を特徴と
    するタスク監視方法。
  2. 【請求項2】 前記第1の監視タスクは前記被監視タス
    クの状態を監視し、各被監視タスク固有のとり得る状態
    以外の状態であると判断した被監視タスクを異常と判断
    する事を特徴とする請求項1に記載のタスク監視方法。
JP29134396A 1996-11-01 1996-11-01 タスク監視方法 Expired - Fee Related JP3524700B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 富士通モバイルコミュニケーションズ株式会社 情報処理装置

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
US5748959A (en) Method of conducting asynchronous distributed collective operations
US20050039181A1 (en) Processor system, task control method on computer system, computer program
US20030233485A1 (en) Event queue
US7043729B2 (en) Reducing interrupt latency while polling
JP2001154885A (ja) コンピュータシステムのロックアップ防止方法及びコンピュータシステムをモニターする方法
US7231468B2 (en) Future activity list for peripheral bus host controller
WO2000073895A1 (en) Method and device for monitoring the creation and destruction of child processes within an application executing in a computer system
US6795873B1 (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) タスク監視方法
JPH02300939A (ja) セマフォオペレーション方式
CN111352803A (zh) 业务数据处理方法、装置、设备和存储介质
WO2000028418A1 (en) Scheduling resource requests in a computer system
JP2001236236A (ja) タスク制御装置およびそのタスクスケジューリング方法
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) プロセス管理方法
CN113656468A (zh) 基于nifi的任务流程触发方法及装置
CN114237954A (zh) 非对称多核amp分时循环工作方法

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