JP3005580B1 - デッドロック検出装置及びその検出方法 - Google Patents

デッドロック検出装置及びその検出方法

Info

Publication number
JP3005580B1
JP3005580B1 JP11067449A JP6744999A JP3005580B1 JP 3005580 B1 JP3005580 B1 JP 3005580B1 JP 11067449 A JP11067449 A JP 11067449A JP 6744999 A JP6744999 A JP 6744999A JP 3005580 B1 JP3005580 B1 JP 3005580B1
Authority
JP
Japan
Prior art keywords
task
priority
group
deadlock
watchdog
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
JP11067449A
Other languages
English (en)
Other versions
JP2000259433A (ja
Inventor
毅 木村
Original Assignee
日本電気アイシーマイコンシステム株式会社
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 日本電気アイシーマイコンシステム株式会社 filed Critical 日本電気アイシーマイコンシステム株式会社
Priority to JP11067449A priority Critical patent/JP3005580B1/ja
Application granted granted Critical
Publication of JP3005580B1 publication Critical patent/JP3005580B1/ja
Publication of JP2000259433A publication Critical patent/JP2000259433A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【要約】 【課題】 実行時間の長いタスクであっても、デッドロ
ック検出を確実に行うようにする。 【解決手段】 ウォッチドックタスク3の優先順位を管
理タスク・グループ5の中で最も低い優先順位を持つタ
スク5yと同じ優先順位P2か、それよりも低い優先順
位であり、かつ低優先タスク・グループ6よりも高い優
先順位P3とする。ウォッチドックタスク3を周期起動
する時間を、高優先タスク・グループ4及び管理タスク
・グループ5のタスク実行によるCPU占有時間以上と
する。実行時間の長いタスクが必要となった場合に、実
行時間の長いタスクを低優先タスク・グループ6に配置
することにより、高優先タスク・グループ4及び管理タ
スク・グループ5のタスク実行によるCPU占有時間
を、ウォッチドック・タイマ8で用意されているカウン
ト可能時間よりも短くする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、デッドロック検出
に適したデッドロック検出装置及びその検出方法に関す
る。
【0002】
【従来の技術】リアルタイムOSを使用したシステムで
は、個々に優先順位を持った複数のタスクが存在する
が、実行権が与えられるのは1つのタスクである。各タ
スクの実行は、リアルタイムOSにより管理される。
【0003】各タスクにおいて予め定めた起動事象が発
生すると、リアルタイムOSによりタスクに実行権が与
えられ起動される。ところが、複数のタスクの起動事象
が重なった場合は、各タスクにおいて予め定めた優先順
位により、各タスクは起動又は保留される。
【0004】リアルタイムOSを使用したシステムにお
けるタスク遷移の一例を、図6に示す。
【0005】切換C9においてタスクT1が起動され
る。切換C10においてタスクT3が起動される。切換
C11において、タスクT3より優先順位の高いタスク
T2の起動事象が発生すると、タスクT3が保留され、
タスクT2が起動される。
【0006】切換C12においてタスクT2の実行が終
了すると、保留されていたタスクT3が復帰する。切換
C13においてタスクT1が起動される。切換C14に
おいてタスクT4の起動事象が発生するが、タスクT4
より優先順位の高いタスクT1が実行中であるため、タ
スクT4が保留される。
【0007】切換C15においてタスクT1の実行が終
了し、保留されていたタスクT4が起動される。切換C
16においてタスクT4より優先順位の高いタスクT2
の起動事象が発生すると、タスクT4が保留され、タス
クT2が起動される。
【0008】切換C17において、タスクT4より優先
順位の高いタスクT1の起動事象が発生すると、タスク
T4は保留となり、タスクT1が起動される。切換C1
8においてタスクT1の実行が終了すると、保留されて
いたタスクT4が復帰する。
【0009】また、デッドロック検出とは、ソフトウエ
ア異常動作及びハードウエア異常動作に起因して発生す
るソフトウエア異常動作を検出することである。この検
出は、ソフトウエアによる自動回復を行うためのフェー
ル・セーフ機能である。ウォッチドックとは、予め定め
た時間内に処理が終了しないとき、デッドロック状態で
あると判定する、一般的によく使用されるデッドロック
検出方法である。
【0010】図7は、ウォッチドックのシステム構成
図、図8及び図9は、ウォッチドックの動作を説明する
ためのフローチャートである。
【0011】ウォッチドックシステムは、デッドロック
検出の対象となるCPU7及びデッドロック検出の時間
計測のためのウォッチドックタイマ8で構成されてい
る。CPU7における動作は、予め定めた時間の周期で
実行されるウォッチドックタスク3と、タイマ・カウン
トオーバフローが通知された場合に実行されるウォッチ
ドック割り込み2とからなる。
【0012】また、ウォッチドックタスク3は、ウォッ
チドックタイマ8のタイマ・カウントスタート&クリア
の処理(ステップS9)と、ウォッチドック割り込み3
におけるデッドロック復帰処理(ステップS10)とを
有する。
【0013】CPU7では、予め定めた時間の周期でウ
ォッチドックタスク3により、ウォッチドックタイマ8
のタイマ・カウントスタート&クリアの処理(ステップ
S9)が実行される。
【0014】CPU7で実行されるタスクが何らかの原
因でデッドロック状態に陥った場合、ウォッチドックタ
イマ8のタイマ・カウントスタート&クリアの処理(ス
テップS9)が実行されない。この場合、ウォッチ・ド
ック・タイマ8は、予め設定された時間経過後にタイマ
・カウントのオーバフローを発生して、CPU7に対し
タイマ・カウントオーバフローを通知する。
【0015】CPU7では、ウォッチドックタイマ8か
らタイマ・カウントオーバフローが通知されることでデ
ッドロックを検出すると、ウォッチドック割り込み2に
より、システム・リセット等のデッドロック復帰処理
(ステップS10)が実行される。
【0016】また、ウォッチドック割り込み2は、図1
0に示すように、リアルタイムOS1、タスク・グルー
プ9の複数のタスク91〜9nの実行及びウォッチドッ
ク・タイマ8からタイマ・カウントオーバフローが通知
されることによるデッドロック復帰処理(ステップS1
0)を実行する。
【0017】ウォッチドックタスク3は、予め定めた時
間の周期でウォッチドックタイマ8のタイマ・カウント
スタート&クリアの処理(ステップS9)を実行する。
【0018】また、ウォッチドック割り込み2の優先順
位は、全てのタスクよりも高い優先順位P1である。ウ
ォッチドックタスク3の優先順位は、全てのタスクより
も低い優先順位P4である。ウォッチドックタスク3
は、タスク・グループ9の全てのタスクが起動されてい
ないときのみ実行が可能である。
【0019】タスク・グループ9の何れかのタスクでデ
ッドロックが発生した場合、ウォッチドックタスク3の
実行が不可能となる。このとき、ウォッチドックタイマ
8のタイマ・カウントスタート&クリアの処理(ステッ
プS9)が実行されないことで、ウォッチドックタイマ
8からタイマ・カウントオーバフローが通知される。タ
イマ・カウントオーバフローが通知されると、ウォッチ
ドック割り込み2が起動され、タスク・グループ9のタ
スク91〜9nのデッドロックが検出される。
【0020】ここで、図11のタスク遷移図により、デ
ッドロック検出までのタスク遷移の一例を説明する。
【0021】切換C19においてタスク・グループ9の
タスクが起動される。切換C20においてウォッチドッ
クタスク3が起動される。切換C21においてタスク・
グループ9のタスクが起動される。切換C22において
ウォッチドックタスク3が起動される。
【0022】切換C23においてタスクグループ9のタ
スクが起動される。切換C24においてタスクグループ
9のタスクが何らかの異常によりデッドロックすると、
ウォッチドックタスク3が保留される。
【0023】切換C25においてウォッチドックタイマ
8からタイマ・カウントオーバフローが通知されると、
ウォッチドック割り込み2が起動され、デッドロック復
帰処理(ステップS10)が実行される。
【0024】
【発明が解決しようとする課題】このように、上述した
従来のリアルタイムOS1を使用したシステムでは、ウ
ォッチドックタスク3の優先順位を全てのタスクよりも
低い優先順位としている。このため、全てのタスクが起
動されていないときに限り、実行されることになる。
【0025】ウォッチドックタスク3を周期起動する時
間には、全てのタスク実行によるCPU7の占有時間以
上の時間が設定される。ウォッチドックタイマ8に設定
するタイマ・カウントオーバフロー発生までの時間に
は、それ以上の時間を設定する必要がある。
【0026】よって、ウォッチドックタスク3が、正常
動作しているにも拘らず、設定した時間以内に実行され
なければ、誤ってデッドロックが検出されることにな
る。
【0027】ここで、実行時間の長いタスクが存在した
場合、タスク実行によるCPU7の占有時間が、ウォッ
チドックタイマ8で用意されているカウント可能時間以
上となると、ウォッチドックタイマ8がオーバフローを
発生する前に、ウォッチドックタスク3の起動が行えな
い。このため、デッドロックの検出が行えないことにな
る。
【0028】一般的に、ハードウエアで用意されるウォ
ッチドックタイマ8のカウント可能時間は、数100m
sec程度である。また、継続的に実行されるタスクが
存在した場合も、ウォッチドックタスク3の起動が行え
ないため、デッドロック検出が実現不可能となる。しか
し、近来のソフトウエアに対する要求は増大する方向に
あり、実行時間の長いタスクにも対応が必要となる。
【0029】本発明は、このような状況に鑑みてなされ
たものであり、実行時間の長いタスクであっても、デッ
ドロック検出を確実に行うことができるデッドロック検
出装置及びその検出方法を提供することができるように
するものである。
【0030】
【課題を解決するための手段】請求項1に記載のデッド
ロック検出装置は、ハードウエア制御等の高速性を必要
とする優先度の高いタスクが配置されている高優先タス
ク・グループと、演算処理等の処理時間が遅れても問題
とならない処理を行う優先度の低いタスクが配置されて
いる低優先タスク・グループと、低優先タスク・グルー
プのタスクにおいて、如何なる処理を実行するか(タス
クの動作)を管理するタスクが配置されている管理タス
ク・グループと、ウォッチドックタイマからタイマ・カ
ウントオーバフローが通知されることにより、デッドロ
ック復帰処理を実行するウォッチドック割り込みと、予
め定めた時間の周期で、ウォッチドックタイマのタイマ
・カウントスタート&クリアの処理を実行するウォッチ
ドック・タスクと、各タスクの実行を管理するリアルタ
イムOSとを備え、リアルタイムOSの管理の基に、高
優先タスク・グループ及び管理タスク・グループの何れ
かのタスクでデッドロックが発生した場合、ウォッチド
ック・タスクの実行が不可能となり、ウォッチドック・
タイマのタイマ・カウント・スタート&クリアの処理が
実行されないことで、ウォッチドック・タイマからタイ
マ・カウントオーバフローが通知され、高優先タスク・
グループのタスク及び管理タスク・グループのタスクに
おけるデッドロックを検出することを特徴とする。ま
た、管理タスク・グループのタスクは、動作結果の内容
を判定し、その内容が期待した内容でない場合、又は予
め決められた時間内に動作結果が通知されない場合に、
低優先タスク・グループのタスクのデッドロックを検出
するようにすることができる。また、高優先タスク・グ
ループ、管理タスク・グループ及び低優先タスク・グル
ープの優先順位は、高優先タスク・グループ>管理タス
ク・グループ>低優先タスク・グループであるようにす
ることができる。また、ウォッチドック割り込みの優先
順位は、全てのタスクよりも高い優先順位であり、ウォ
ッチドック・タスクの優先順位は、管理タスク・グルー
プの中で最も低い優先順位を持つタスクと同じ優先順位
か、それよりも低い優先順位であり、かつ低優先タスク
・グループよりも高い優先順位であるようにすることが
できる。また、管理タスク・グループのタスクは、低優
先タスク・グループのタスクに動作指示を行うと、低優
先タスク・グループのタスクは、管理タスク・グループ
のタスクに動作指示に対する動作結果を返すようにする
ことができる。また、管理タスク・グループのタスク
は、動作結果の内容を判定し、その内容が期待した内容
でない場合、又は予め決められた時間内に動作結果が通
知されない場合、低優先タスク・グループのタスクにお
けるデッドロックを検出するようにすることができる。
また、低優先タスク・グループには、実行時間の長いタ
スクが配置されるようにすることができる。請求項8に
記載のデッドロックの検出方法は、ハードウエア制御等
の高速性を必要とする優先度の高いタスクのグループを
配置する第1の工程と、演算処理等の処理時間が遅れて
も問題とならない処理を行う優先度の低いタスクのグル
ープを配置する第2の工程と、優先度の低いタスクのグ
ループにおいて、如何なる処理を実行するか(タスクの
動作)を管理するタスクのグループを配置する第3の工
程と、ウォッチドックタイマからタイマ・カウントオー
バフローが通知されることにより、デッドロック復帰処
理を実行する第4の工程と、予め定めた時間の周期で、
ウォッチドックタイマのタイマ・カウントスタート&ク
リアの処理を実行する第5の工程と、優先度の高いグル
ープのタスク及び管理するグループのタスクの何れかで
デッドロックが発生した場合、タイマ・カウントオーバ
フロー通知により、優先度の高いグループのタスク及び
管理するグループのタスクのデッドロックを検出する第
6の工程とを備えることを特徴とする。また、第3の工
程には、動作結果の内容を判定する工程と、その内容が
期待した内容でない場合、又は予め決められた時間内に
動作結果が通知されない場合に、優先度の低いグループ
のタスクのデッドロックを検出する工程とが含まれるよ
うにすることができる。また、第1〜第3の工程には、
タスクのグループの優先順位を、優先度の高いタスクの
グループ>管理するタスクのグループ>優先度の低いタ
スクのグループとする工程が含まれるようにすることが
できる。また、第4及び第5の工程には、デッドロック
復帰処理を実行するウォッチドック割り込みの優先順位
を、全てのタスクのグループよりも高い優先順位とする
工程と、タイマ・カウントスタート&クリアの処理を実
行するタスクのグループの優先順位を、管理するグルー
プのタスクの中で最も低い優先順位を持つタスクと同じ
優先順位か、それよりも低い優先順位であり、かつ優先
度の低いグループのタスクよりも高い優先順位とする工
程とが含まれるようにすることができる。また、第3の
工程には、優先度の低いタスクのグループに対して動作
指示を行う工程が含まれ、第2の工程には、管理するグ
ループのタスクの動作指示に対する動作結果を返す工程
が含まれるようにすることができる。また、第3の工程
には、動作結果の内容を判定する工程と、その内容が期
待した内容でない場合、又は予め決められた時間内に動
作結果が通知されない場合、優先度の低いグループのタ
スクのデッドロックを検出する工程とが含まれるように
することができる。また、第2の工程には、実行時間の
長いタスクを配置する工程が含まれるようにすることが
できる。本発明に係るデッドロック検出装置及びその検
出方法においては、高優先タスク・グループ及び管理タ
スク・グループの何れかのタスクでデッドロックが発生
した場合、ウォッチドック・タスクの実行が不可能とな
り、ウォッチドック・タイマのタイマ・カウント・スタ
ート&クリアの処理が実行されないことで、ウォッチド
ック・タイマからタイマ・カウントオーバフローが通知
されたとき、高優先タスク・グループのタスク及び管理
タスク・グループのタスクにおけるデッドロックを検出
するように、また管理タスク・グループのタスクによ
り、動作結果の内容が期待した内容でない場合、又は予
め決められた時間内に動作結果が通知されない場合、低
優先タスク・グループのタスクにおけるデッドロックを
検出するようにするようにし、さらに低優先タスク・グ
ループには、実行時間の長いタスクが配置されるように
する。
【0031】
【発明の実施の形態】以下、本発明の実施の形態につい
て説明する。なお、以下に説明する図において、図6〜
図11と共通する部分には同一符号を付すものとする。
【0032】図1は、本発明のデッドロック検出装置の
一実施の形態を示すブロック図、図2は、図1のデッド
ロック検出装置の動作を説明するための図、図3及び図
4は、図1のデッドロック検出装置の動作を説明するた
めのフローチャート、図5は、図1のデッドロック検出
装置の動作を説明するためのタスク遷移図である。
【0033】図1に示すデッドロック検出装置は、各タ
スクの実行を管理するリアルタイムOS1を備えてい
る。リアルタイムOS1は、高優先タスク・グループ
4、管理タスク・グループ5、低優先タスク・グループ
6、ウォッチドック割り込み2及びウォッチドックタス
ク3におけるそれぞれの実行を管理する。
【0034】高優先タスク・グループ4には、ハードウ
エア制御等の高速性を必要とする優先度の高いタスク4
1〜4xが配置されている。管理タスク・グループ5に
は、低優先タスク・グループ6のタスクにおいて、如何
なる処理を実行するか(タスクの動作)を管理するタス
ク51〜5yが配置されている。
【0035】低優先タスク・グループ6には、演算処理
等の処理時間が遅れても問題とならない処理を行う優先
度の低いタスク61〜6zが配置されている。
【0036】ウォッチドック割り込み2は、図7のウォ
ッチドックタイマ8からタイマ・カウントオーバフロー
が通知されたとき、システム・リセット等のデッドロッ
ク復帰処理を実行する。
【0037】ウォッチドックタスク3は、予め定めた時
間の周期で、図7のウォッチドックタイマ8のタイマ・
カウントスタート&クリアの処理を実行する。
【0038】また、3グループの優先順位は、高優先タ
スク・グループ4>管理タスク・グループ5>低優先タ
スク・グループ6である。ウォッチドック割り込み2の
優先順位は、全てのタスクよりも高い優先順位P1であ
る。ウォッチドックタスク3の優先順位は、管理タスク
・グループ5の中で最も低い優先順位を持つタスク5y
と同じ優先順位P2か、低優先タスク・グループ6の優
先順位よりも高い優先順位P3である。
【0039】また、図2において、管理タスク・グルー
プ5の各々のタスク51〜5yは、低優先タスク・グル
ープ6の1つのタスク61又は複数のタスク6m〜6z
の管理を行うことができる。管理タスク・グループ5の
タスク51〜5yは、低優先タスク・グループ6のタス
ク61〜6zに動作指示を行うことができる。低優先タ
スク・グループ6のタスク61〜6zは、管理タスク・
グループ5のタスク51〜5yに動作指示に対する動作
結果を返すことができる。
【0040】さらに、管理タスク・グループ5は、図3
に示すように、低優先タスク・グループ6に動作指示を
行う処理(ステップS1)、予め決められた時間内に動
作結果が通知されない場合のタイムアウト判定を行う処
理(ステップS2)、動作結果通知の有無を判定する処
理(ステップS3)、動作結果の内容を判定する処理
(ステップS4)、低優先タスク・グループ6の動作指
示を行ったタスクに対してリセット等のデッドロック復
帰を行う処理(ステップS5)を実行する。
【0041】また、低優先タスク・グループ6は、図4
に示すように、管理タスク・グループ5からの動作指示
待ちを行う処理(ステップS6)、動作指示に従った動
作を行う処理(ステップS7)、動作指示に対する動作
結果通知を行う処理(ステップS8)を実行する。
【0042】次に、このような構成のデッドロック検出
装置の動作を、図3〜図5を用いて説明する。
【0043】ウォッチドックタスク3は、高優先タスク
・グループ4及び管理タスク・グループ5の全てのタス
クが起動されていないときのみ実行が可能である。
【0044】ここで、高優先タスク・グループ4及び管
理タスク・グループ5の何れかのタスクでデッドロック
が発生した場合、ウォッチドックタスク3の実行が不可
能となる。
【0045】この場合、図7のウォッチドックタイマ8
のタイマ・カウントスタート&クリアの処理が実行され
ないことで、ウォッチドックタイマ8からタイマ・カウ
ントオーバフローが通知される。タイマ・カウントオー
バフローが通知されると、ウォッチドック割り込み2が
起動され、高優先タスク・グループ4のタスク41〜4
x及び管理タスク・グループ5のタスク51〜5yのデ
ッドロックが検出される。
【0046】デッドロック検出までのタスク遷移の一例
を、図5に示す。
【0047】切換C1において低優先タスク・グループ
6のタスクが起動される。切換C2において低優先タス
ク・グループ6のタスクが保留され、ウォッチドックタ
スク3が起動される。
【0048】切換C3においてウォッチドックタスク3
の実行が終了すると、保留されていた低優先タスク・グ
ループ6のタスクが復帰する。切換C4において管理タ
スク・グループ5のタスクが起動される。切換C5にお
いてウォッチドックタスク3が起動される。
【0049】切換C6において高優先タスク・グループ
4のタスクが起動される。切換C7において高優先タス
ク・グループ4のタスクが何らかの異常によりデッドロ
ックすると、ウォッチドックタスク3が保留される。こ
のとき、ウォッチドック・タイマ8のタイマ・カウント
スタート&クリアの処理が実行されない。
【0050】切換C8においてウォッチドックタイマ8
からタイマ・カウントオーバフローが通知されると、ウ
ォッチドック割り込み2が起動され、システム・リセッ
ト等のデッドロック復帰処理が実行される。
【0051】低優先タスク・グループ6の何れかのタス
クでデッドロックが発生した場合、管理タスク・グルー
プ5のタスク51〜5yが低優先タスク・グループ6の
タスク61〜6zの管理を行うとき、低優先タスク・グ
ループ6のタスク61〜6zにおけるデッドロック検出
を行う。
【0052】ここで、管理タスク・グループ5の管理タ
スク51〜5yの動作を、図3及び図4を用いて説明す
る。
【0053】まず、低優先タスク・グループ6に動作指
示(ステップS1)を行う。次に、動作指示に対する低
優先タスク・グループ6からの動作結果通知を待つが、
予め決められた時間内に動作結果が通知されない場合の
タイムアウト判定(ステップS2)を行う。
【0054】ここで、タイムアウトが発生していない場
合は、動作結果通知の有無の判定(ステップS3)を行
う。タイムアウトが発生した場合は、低優先タスク・グ
ループ6で何らかの異常が発生していると判断し、低優
先タスク・グループ6の動作指示を行ったタスクに対し
てデッドロック復帰処理(ステップS5)を行う。
【0055】また、動作結果通知の有無の判定(ステッ
プS3)において、動作結果が通知されない場合は、再
度動作結果通知のタイムアウト判定(ステップS2)を
行う。動作結果が通知された場合は、動作結果内容の判
定(ステップS4)を行う。
【0056】さらに、動作結果内容の判定(ステップS
4)において、動作結果内容が期待値と一致した場合は
処理を終了する。動作結果内容が期待値と不一致であっ
た場合は、低優先タスク・グループ6で何らかの異常が
発生していると判断して、低優先タスク・グループ6の
動作指示を行ったタスクに対し、リセット等のデッドロ
ック復帰処理(ステップS5)を行う。
【0057】なお、上述した管理タスク・グループ5に
よる低優先タスク・グループ6の異常判定では、低優先
タスク・グループ6の異常動作の原因がデッドロックで
あるのか、又はその他の異常によるものであるかを判断
する手段は持たないが、低優先タスク・グループ6のデ
ッドロックを検出して、管理タスク・グループ5により
低優先タスク・グループ6のデッドロック復帰処理を行
うことで、各異常時の復帰が可能となる。
【0058】このように、本実施の形態では、ウォッチ
ドックタスク3の優先順位を管理タスク・グループ5の
中で最も低い優先順位を持つタスク5yと同じ優先順位
P2か、それよりも低い優先順位であり、かつ低優先タ
スク・グループ6よりも高い優先順位P3とした。
【0059】これにより、ウォッチドックタスク3を周
期起動する時間は、高優先タスク・グループ4及び管理
タスク・グループ5のタスク実行によるCPU占有時間
以上の時間を設定することができ、ウォッチドック・タ
イマ8に設定するタイマ・カウントオーバフロー発生ま
での時間には、それ以上の時間を設定することができ
る。
【0060】ここで、実行時間の長いタスクが必要とな
った場合に、実行時間の長いタスクを低優先タスク・グ
ループ6に配置することにより、高優先タスク・グルー
プ4及び管理タスク・グループ5のタスク実行によるC
PU占有時間を、ウォッチドック・タイマ8で用意され
ているカウント可能時間よりも短くすることができるの
で、デッドロックの検出を確実に行うことができる。
【0061】また、継続的に実行されるタスクが必要と
なった場合も、継続的に実行されるタスクを低優先タス
ク・グループ6に配置することにより、ウォッチドック
タスク3の起動が行え、デッドロック検出が可能とな
る。
【0062】
【発明の効果】以上の如く本発明に係るデッドロック検
出装置及びその検出方法によれば、高優先タスク・グル
ープ及び管理タスク・グループの何れかのタスクでデッ
ドロックが発生した場合、ウォッチドック・タスクの実
行が不可能となり、ウォッチドック・タイマのタイマ・
カウント・スタート&クリアの処理が実行されないこと
で、ウォッチドック・タイマからタイマ・カウントオー
バフローが通知されたとき、高優先タスク・グループの
タスク及び管理タスク・グループのタスクにおけるデッ
ドロックを検出するように、また管理タスク・グループ
のタスクにより、動作結果の内容が期待した内容でない
場合、又は予め決められた時間内に動作結果が通知され
ない場合、低優先タスク・グループのタスクにおけるデ
ッドロックを検出するようにするようにし、さらに低優
先タスク・グループには、実行時間の長いタスクが配置
されるようにしたので、実行時間の長いタスクであって
も、デッドロック検出を確実に行うことができる。
【図面の簡単な説明】
【図1】本発明のデッドロック検出装置の一実施の形態
を示すブロック図である。
【図2】図1のデッドロック検出装置の動作を説明する
ための図である。
【図3】図1のデッドロック検出装置の動作を説明する
ためのフローチャートである。
【図4】図1のデッドロック検出装置の動作を説明する
ためのフローチャートである。
【図5】図1のデッドロック検出装置の動作を説明する
ためのタスク遷移図である。
【図6】従来のリアルタイムOSを使用したシステムの
タスク遷移図である。
【図7】図6のウォッチドックのシステム構成図であ
る。
【図8】図6のウォッチドックの動作を説明するための
フローチャートである。
【図9】図6のウォッチドックの動作を説明するための
フローチャートである。
【図10】図6のウォッチドックのシステムを示すブロ
ック図である
【図11】図6のシステムのタスク遷移図である。
【符号の説明】
1 リアルタイムOS 2 ウォッチドック割り込み 3 ウォッチドック・タスク 4 高優先タスク・グループ 41〜4x,51〜5y,61〜6z,91〜9n タ
スク 5 管理タスク・グループ 6 低優先タスク・グループ 7 CPU 8 ウォッチドックタイマ 9 タスク・グループ P1〜P4 優先順位
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 G06F 11/30

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 ハードウエア制御等の高速性を必要とす
    る優先度の高いタスクが配置されている高優先タスク・
    グループと、 演算処理等の処理時間が遅れても問題とならない処理を
    行う優先度の低いタスクが配置されている低優先タスク
    ・グループと、 前記低優先タスク・グループのタスクにおいて、如何な
    る処理を実行するか(タスクの動作)を管理するタスク
    が配置されている管理タスク・グループと、 ウォッチドックタイマからタイマ・カウントオーバフロ
    ーが通知されることにより、デッドロック復帰処理を実
    行するウォッチドック割り込みと、 予め定めた時間の周期で、前記ウォッチドックタイマの
    タイマ・カウントスタート&クリアの処理を実行するウ
    ォッチドック・タスクと、 前記各タスクの実行を管理するリアルタイムOSとを備
    え、 前記リアルタイムOSの管理の基に、前記高優先タスク
    ・グループ及び管理タスク・グループの何れかのタスク
    でデッドロックが発生した場合、前記ウォッチドック・
    タスクの実行が不可能となり、前記ウォッチドック・タ
    イマのタイマ・カウント・スタート&クリアの処理が実
    行されないことで、前記ウォッチドック・タイマからタ
    イマ・カウントオーバフローが通知され、前記高優先タ
    スク・グループのタスク及び前記管理タスク・グループ
    のタスクにおけるデッドロックを検出することを特徴と
    するデッドロック検出装置。
  2. 【請求項2】 前記管理タスク・グループのタスクは、
    動作結果の内容を判定し、その内容が期待した内容でな
    い場合、又は予め決められた時間内に動作結果が通知さ
    れない場合に、前記低優先タスク・グループのタスクの
    デッドロックを検出することを特徴とする請求項1に記
    載のデッドロック検出装置。
  3. 【請求項3】 前記高優先タスク・グループ、管理タス
    ク・グループ及び低優先タスク・グループの優先順位
    は、高優先タスク・グループ>管理タスク・グループ>
    低優先タスク・グループであることを特徴とする請求項
    1に記載のデッドロック検出装置。
  4. 【請求項4】 前記ウォッチドック割り込みの優先順位
    は、全てのタスクよりも高い優先順位であり、前記ウォ
    ッチドック・タスクの優先順位は、前記管理タスク・グ
    ループの中で最も低い優先順位を持つタスクと同じ優先
    順位か、それよりも低い優先順位であり、かつ前記低優
    先タスク・グループよりも高い優先順位であることを特
    徴とする請求項1に記載のデッドロック検出装置。
  5. 【請求項5】 前記管理タスク・グループのタスクは、
    前記低優先タスク・グループのタスクに動作指示を行う
    と、前記低優先タスク・グループのタスクは、前記管理
    タスク・グループのタスクに動作指示に対する動作結果
    を返すことを特徴とする請求項1に記載のデッドロック
    検出装置。
  6. 【請求項6】 前記管理タスク・グループのタスクは、
    動作結果の内容を判定し、その内容が期待した内容でな
    い場合、又は予め決められた時間内に動作結果が通知さ
    れない場合、前記低優先タスク・グループのタスクにお
    けるデッドロックを検出することを特徴とする請求項1
    に記載のデッドロック検出装置。
  7. 【請求項7】 前記低優先タスク・グループには、実行
    時間の長いタスクが配置されることを特徴とする請求項
    1に記載のデッドロック検出装置。
  8. 【請求項8】 ハードウエア制御等の高速性を必要とす
    る優先度の高いタスクのグループを配置する第1の工程
    と、 演算処理等の処理時間が遅れても問題とならない処理を
    行う優先度の低いタスクのグループを配置する第2の工
    程と、 前記優先度の低いタスクのグループにおいて、如何なる
    処理を実行するか(タスクの動作)を管理するタスクの
    グループを配置する第3の工程と、 ウォッチドックタイマからタイマ・カウントオーバフロ
    ーが通知されることにより、デッドロック復帰処理を実
    行する第4の工程と、 予め定めた時間の周期で、前記ウォッチドックタイマの
    タイマ・カウントスタート&クリアの処理を実行する第
    5の工程と、 前記優先度の高いグループのタスク及び管理するグルー
    プのタスクの何れかでデッドロックが発生した場合、前
    記タイマ・カウントオーバフロー通知により、優先度の
    高いグループのタスク及び管理するグループのタスクの
    デッドロックを検出する第6の工程とを備えることを特
    徴とするデッドロックの検出方法。
  9. 【請求項9】 前記第3の工程には、 動作結果の内容を判定する工程と、 その内容が期待した内容でない場合、又は予め決められ
    た時間内に動作結果が通知されない場合に、前記優先度
    の低いグループのタスクのデッドロックを検出する工程
    とが含まれることを特徴とする請求項8に記載のデッド
    ロックの検出方法。
  10. 【請求項10】 前記第1〜第3の工程には、前記タス
    クのグループの優先順位を、前記優先度の高いタスクの
    グループ>前記管理するタスクのグループ>優先度の低
    いタスクのグループとする工程が含まれることを特徴と
    する請求項8に記載のデッドロックの検出方法。
  11. 【請求項11】 前記第4及び第5の工程には、 前記デッドロック復帰処理を実行するウォッチドック割
    り込みの優先順位を、全てのタスクのグループよりも高
    い優先順位とする工程と、 前記タイマ・カウントスタート&クリアの処理を実行す
    るタスクのグループの優先順位を、前記管理するグルー
    プのタスクの中で最も低い優先順位を持つタスクと同じ
    優先順位か、それよりも低い優先順位であり、かつ前記
    優先度の低いグループのタスクよりも高い優先順位とす
    る工程とが含まれることを特徴とする請求項8に記載の
    デッドロックの検出方法。
  12. 【請求項12】 前記第3の工程には、前記優先度の低
    いタスクのグループに対して動作指示を行う工程が含ま
    れ、 前記第2の工程には、前記管理するグループのタスクの
    動作指示に対する動作結果を返す工程が含まれることを
    特徴とする請求項8に記載のデッドロックの検出方法。
  13. 【請求項13】 前記第3の工程には、 動作結果の内容を判定する工程と、 その内容が期待した内容でない場合、又は予め決められ
    た時間内に動作結果が通知されない場合、前記優先度の
    低いグループのタスクのデッドロックを検出する工程と
    が含まれることを特徴とする請求項8に記載のデッドロ
    ックの検出方法。
  14. 【請求項14】 前記第2の工程には、実行時間の長い
    タスクを配置する工程が含まれることを特徴とする請求
    項8に記載のデッドロックの検出方法。
JP11067449A 1999-03-12 1999-03-12 デッドロック検出装置及びその検出方法 Expired - Fee Related JP3005580B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11067449A JP3005580B1 (ja) 1999-03-12 1999-03-12 デッドロック検出装置及びその検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11067449A JP3005580B1 (ja) 1999-03-12 1999-03-12 デッドロック検出装置及びその検出方法

Publications (2)

Publication Number Publication Date
JP3005580B1 true JP3005580B1 (ja) 2000-01-31
JP2000259433A JP2000259433A (ja) 2000-09-22

Family

ID=13345256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11067449A Expired - Fee Related JP3005580B1 (ja) 1999-03-12 1999-03-12 デッドロック検出装置及びその検出方法

Country Status (1)

Country Link
JP (1) JP3005580B1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4608143B2 (ja) * 2001-07-23 2011-01-05 富士通セミコンダクター株式会社 発呼情報処理装置
JP6261389B2 (ja) * 2014-03-05 2018-01-17 三菱電機株式会社 データ送信装置及びデータ送信方法及びプログラム

Also Published As

Publication number Publication date
JP2000259433A (ja) 2000-09-22

Similar Documents

Publication Publication Date Title
US7487503B2 (en) Scheduling threads in a multiprocessor computer
US6434591B1 (en) Thread control system and method in a computer system
JP4562568B2 (ja) 異常検出プログラムおよび異常検出方法
JPH0451335A (ja) データベース処理装置
US7472310B2 (en) Debugging mechanism and debugging register
JP2019114173A (ja) 情報処理装置、情報処理方法及びプログラム
JP3005580B1 (ja) デッドロック検出装置及びその検出方法
JPH10214208A (ja) ソフトウェアの異常監視方式
US20080098404A1 (en) Information processing apparatus, control method for information processing apparatus and program
JP2001282558A (ja) マルチオペレーティング計算機システム
JP2965075B2 (ja) プログラム実行状態監視方法
JP3859564B2 (ja) イベント通知タスク制御処理方式及び方法並びにプログラム
JP3269489B2 (ja) プロセス監視システムおよびプロセス監視方法
JP2006172218A (ja) コンピュータシステム及びシステム監視プログラム
JPH10269110A (ja) 計算機システムのハングアップ回避方法並びにこの方法を用いた計算機システム。
JPS63268042A (ja) マイクロコンピユ−タの相互監視方式
JP2716537B2 (ja) 複合システムにおけるダウン監視処理方式
JPH0836553A (ja) マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法
JPH0962520A (ja) 無限ループ監視装置
CN117056014A (zh) 一种虚拟化设备的智能管控方法及装置
JPH11282725A (ja) 計算機
JPS62113260A (ja) マルチcpuシステムにおけるタイマ監視制御方式
JP2001166953A (ja) デッドロック検出方法
JPH05233333A (ja) タスク起動状態検出システム
JPH0644087A (ja) コンピュータシステムのスケジューリング制御方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees