Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3698938B2 - Deadlock detection method - Google Patents
[go: Go Back, main page]

JP3698938B2 - Deadlock detection method - Google Patents

Deadlock detection method Download PDF

Info

Publication number
JP3698938B2
JP3698938B2 JP34694399A JP34694399A JP3698938B2 JP 3698938 B2 JP3698938 B2 JP 3698938B2 JP 34694399 A JP34694399 A JP 34694399A JP 34694399 A JP34694399 A JP 34694399A JP 3698938 B2 JP3698938 B2 JP 3698938B2
Authority
JP
Japan
Prior art keywords
task
memory block
message
detection method
assigned
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
JP34694399A
Other languages
Japanese (ja)
Other versions
JP2001166953A (en
Inventor
謙志 中谷
公子 桑室
Original Assignee
Necマイクロシステム株式会社
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 Necマイクロシステム株式会社 filed Critical Necマイクロシステム株式会社
Priority to JP34694399A priority Critical patent/JP3698938B2/en
Publication of JP2001166953A publication Critical patent/JP2001166953A/en
Application granted granted Critical
Publication of JP3698938B2 publication Critical patent/JP3698938B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、デッドロック検出方法及びデッドロック検出方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【0002】
【従来の技術】
一般に、OSを使用したシステムにおいて、タスク間でメッセージ通信を行う場合はOSが管理する動的メモリブロックを使用する。
OSが管理する動的メモリブロックを使用して、タスク間でメッセージ通信を行う場合の一例を図11及び図12を参照して説明する。
図11及び図12は、タスクA及びタスクB間におけるメッセージ通信の動作を示す図である。
【0003】
図11及び図12によれば、タスクAがメモリブロックを獲得した場合、タスクAからタスクBにメッセージを送信する。タスクBは前記メッセージを受信し、タスクAが獲得したメモリブロックを解放させる。
また、タスクBがメモリブロックを獲得した場合、タスクBからタスクAにメッセージを送信し、タスクAがメッセージを受信すると、タスクAはタスクBが獲得したメモリブロックを解放させる。
即ち、タスクAにて獲得したメモリブロックはメッセージ送信先である(メッセージを受け取る)タスクBによって解放され、同様にタスクBで獲得したメモリブロックはタスクAによって解放される。
以上説明した動作によりタスク間のメッセージ通信は行われる。
【0004】
また、特開平09−026888号公報には、OSが管理している資源毎にタイマを保持し、各タスクの資源獲得時からタイマカウントを行うことで1タスクが1資源を占有している時間の計測によって正否判定を行う排他制御装置が開示されている。係る排他制御装置によれば、獲得から解放までの時間と共有資源占有に要する1つのタスクの所定時間との比較で動作の正常/異常が判断される。
また、タイムアウト(所定時間経過)した際は、下記(a)又は(b)の処理を行っている。
【0005】
(a)他タスクからの資源要求をチェックし、要求がなければタイマをリスタートさせて処理を続行する。要求があれば使用中のタスクから資源を強制解放し、資源要求を行っているタスクに資源を割り当てる。
(b)使用中のタスクから資源を強制解放し、他タスクからの資源要求をチェックする。要求があれば要求を行っているタスクに資源を割り当てる。
【0006】
【発明が解決しようとする課題】
以上説明した従来技術にあっては、メモリブロック獲得/解放処理のタイミングによっては、図11にT90領域として示すように、空きメモリブロックが存在しなくなり、その結果として何れのタスクも待ち状態となる。
従って、何れのタスクの処理も行われなくなり(メモリブロック獲得によるデッドロック)、プログラムの異常動作(デッドロック)が発生してしまうという問題があった。
この様な現象は、メモリブロック獲得/解放処理の記述に論理的な誤りがある場合のみならず、論理的な誤りがない場合であっても発生する。
【0007】
また、特開平09−026888号公報に開示された排他制御装置にあっては、エラー検出時のリカバリ処理として、タスクコンテキストの待機/復帰の処理を行っている。
しかし、獲得タスクと解放タスクが異なる場合、待避するコンテキストは獲得側タスクのものである。即ち、デッドロックから復帰させねばならない解放側タスクとは関係のない情報であるため、リカバリ処理が正常動作しない。
【0008】
また、特開平09−026888号公報に開示された排他制御装置にあっては、必ずタスク毎又は資源毎にタイマを保持する必要がある。従って、1メモリブロック毎にタイマを用意する必要が生じる。
しかし、そのために多数のタイマをハードウエアとして用意することは困難であり、ソフトウエアによるタイマを用いた場合には多量のメモリを必要とするという問題があった。
従って、少量の内蔵RAMしか持たないMCU(Micro Controller Unit)などに応用することは困難である。
また、前記ソフトウエアによるタイマは、カウント用のメモリを用意し、一定時間毎のハードウエア生起によりソフトウエアで複数タイマをカウントするタイマである。
【0009】
更に、特開平09−026888号公報に開示された排他制御装置にあっては、処理の節目毎の判断処理とタイムアウト毎の判断処理を頻繁に必要としていた為にCPUに多大な負荷を与えていた。
【0010】
また、特開昭62−229342号公報に開示されたデータ処理装置にあっては、アイドルタスク実行時に必ずタイマのリスタートを行い、タイマが一定時間を経過することで異常検出を行っている。
しかし、タイマのオーバーフロー時間内に必ずアイドルタスクが実行されることが前提となっているため、アイドルタスクが実行されないほど繁忙なシステムではタイマがリスタートされず、システムが正常動作であっても異常と検出される。
また、実行すべきタスクが待ち状態のまま実行されなくなっても、アイドルタスクでタイマがリスタートされるため、異常が発生しても、異常と判断されないという問題があった。
【0011】
本発明は以上の従来技術における問題に鑑みてなされたものであって、メモリブロック獲得状態及びメモリブロック獲得状態以外のデッドロックを確実に検出することができ、メモリ使用量を低減させ且つCPUに与える負荷を軽減せしめるデッドロック検出方法を提供することを目的とする。
【0012】
【課題を解決するための手段】
前記課題を解決する本出願第1の発明は、オペレーションシステムがメモリブロック群の中から所定のメモリブロックに一のタスクを割り当てた後、メモリブロックが割り当てられた一のタスクから他のタスクにメッセージを送信し、メッセージを受信した他のタスクによってメモリブロックを解放させてソフトウェアの処理を実行するシステムの異常検出を行うデッドロック検出方法であって、メモリブロックに割り当てられた一のタスクが他のタスクにメッセージを送信し、当該他のタスクがメモリブロックの解放要求のメッセージを送信するまでの継続時間を計測手段により計測することを特徴とするデッドロック検出方法である。
前記課題を解決する本出願第2の発明は、オペレーションシステムがメモリブロック群の中から所定のメモリブロックに一のタスクを割り当てた後、メモリブロックが割り当てられた一のタスクから他のタスクにメッセージを送信し、メッセージを受信した他のタスクによってメモリブロックを解放させてソフトウェアの処理を実行するシステムの異常検出を行うデッドロック検出方法であって、最後の空きメモリブロックに割り当てられた一のタスクが他のタスクにメッセージを送信し、当該他のタスクがメモリブロックの解放要求のメッセージを送信するまでの継続時間を計測手段により計測することを特徴とするデッドロック検出方法である。
前記課題を解決する本出願第3の発明は、本出願第1又は第2の発明のデッドロック検出方法において、前記計測手段は、メモリブロック群に割り当てられている一のタスクがメッセージを送信するタイミングで計測を開始し、他のタスクがメッセージを送信するタイミングで計測を停止することで継続時間を計測することを特徴とする。
前記課題を解決する本出願第4の発明は、本出願第1又は第2の発明のデッドロック検出方法において、前記計測手段は、メモリブロック群に割り当てられている一のタスクがメッセージを送信するタイミングでセットし、他のタスクがメッセージを受信するタイミングで計測をリセットすることで継続時間を計測することを特徴とする。
【0013】
したがって、本願発明のデッドロック検出方法によれば、最後の空きメモリブロックにタスクが割り当てられた後に、メモリブロック群に割り当てられている各タスクがメモリブロック群を占有している継続時間を計測手段により計測することでソフトウェアの異常検出を行うことから、メモリブロック獲得待ち状態又はメモリブロック獲得待ち状態以外のデッドロックを確実に検出することができる。また、計測個所が限定されており、一の計測手段でデッドロックを確実に検出することができるため、メモリの使用量を低減させることができると共に、判断個所が低減するためCPUの負荷を軽減させることができる。
また、タスク数に依存することなくデッドロックを検出することができるため、タスク数に変更が生じた場合の異常検出に関する設定を変更する必要がない利点がある。
更に、計測個所が限定されており、一の計測手段でデッドロックを確実に検出することができるため、メモリの使用量を低減させることができる。
更に加えて、判断個所が低減するためCPUの負荷を軽減させることができる。
【0015】
したがって、本願発明のデッドロック検出方法によれば、最後の空きメモリブロックに一のタスクが割り当てられた後に、メモリブロック群に割り当てられている一のタスクがメッセージを送信し、他のタスクがメッセージを受信するまでの継続時間を計測手段により計測することで異常検出を行うことから、メッセージの受信が正常に行われているか否かを判断することができ、メモリブロック獲得待ち状態又はメモリブロック獲得待ち状態以外のデッドロックを確実に検出することができる。
【0017】
したがって、本願発明の発明のデッドロック検出方法によれば、計測手段をタスクのメモリブロック獲得時、タスクのメモリブロック解放時及び空きメモリブロック存在下のアイドルタスク実行時にリスタートさせ、再びリスタートするまでの時間を連続して計測することから、システムの処理状態に依存することなくメモリブロック獲得待ち状態又はメモリブロック獲得待ち状態以外のデッドロックを確実に検出することができる。
【0018】
前記課題を解決する本出願第5の発明は、オペレーションシステムがメモリブロック群の中から所定のメモリブロックに一のタスクを割り当てた後、メモリブロックが割り当てられた一のタスクから他のタスクにメッセージを送信し、メッセージを受信した他のタスクによってメモリブロックを解放させてソフトウェアの処理を実行するシステムの異常検出を行うデッドロック検出方法であって、メモリブロックに割り当てられた一のタスクが他のタスクにメッセージを送信し、当該他のタスクがメモリブロックの解放要求のメッセージを送信するまでの継続時間を計測手段により計測することで異常検出を行うことを特徴とするデッドロック検出方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体である。
前記課題を解決する本出願第6の発明は、オペレーションシステムがメモリブロック群の中から所定のメモリブロックに一のタスクを割り当てた後、メモリブロックが割り当てられた一のタスクから他のタスクにメッセージを送信し、メッセージを受信した他のタスクによってメモリブロックを解放させてソフトウェアの処理を実行するシステムの異常検出を行うデッドロック検出方法であって、最後の空きメモリブロックに割り当てられた一のタスクが他のタスクにメッセージを送信し、当該他のタスクがメモリブロックの解放要求のメッセージを送信するまでの継続時間を計測手段により計測することで異常検出を行うことを特徴とするデッドロック検出方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体である。
前記課題を解決する本出願第7の発明は、本出願第5又は第6の発明のコンピュータ読み取り可能な記録媒体において、前記計測手段は、メモリブロック群に割り当てられている一のタスクがメッセージを送信するタイミングで計測を開始し、他のタスクがメッセージを送信するタイミングで計測を停止することで継続時間を計測して異常検出を行うことを特徴とするデッドロック検出方法をコンピュータに実行させるプログラムを記録したものである。
前記課題を解決する本出願第8の発明は、本出願第5又は第6の発明のコンピュータ読み取り可能な記録媒体において、前記計測手段は、メモリブロック群に割り当てられている一のタスクがメッセージを送信するタイミングでセットし、他のタスクがメッセージを受信するタイミングで計測をリセットすることで継続時間を計測して異常検出を行うことを特徴とするデッドロック検出方法をコンピュータに実行させるプログラムを記録したものである。
【0019】
したがって、本願発明のデッドロック検出方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体によれば、最後の空きメモリブロックにタスクが割り当てられた後に、メモリブロック群に割り当てられている各タスクがメモリブロック群を占有している継続時間を計測手段により計測することから、メモリブロック獲得待ち状態又はメモリブロック獲得待ち状態以外のデッドロックを確実に検出することができる。また、計測個所が限定されているため、メモリの使用量を低減させることができると共に、判断個所が低減するためCPUの負荷を軽減させることができる。
また、記録媒体とは、CD−ROM、DVD−ROM及びフレキシブルディスク等の補助記憶媒体又はハードディスク等の主記憶媒体を含むメディアを指す。
【0021】
したがって、本願発明のデッドロック検出方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体によれば、最後の空きメモリブロックに一のタスクが割り当てられた後に、メモリブロック群に割り当てられている一のタスクがメッセージを送信し、他のタスクがメッセージを受信するまでの継続時間を計測手段により計測することから、メッセージの受信が正常に行われているか否かを判断することができ、メモリブロック獲得待ち状態又はメモリブロック獲得待ち状態以外のデッドロックを確実に検出することができる。また、計測個所が限定されているため、メモリの使用量を低減させることができると共に、判断個所が低減するためCPUの負荷を軽減させることができる。
【0023】
したがって、本願発明のデッドロック検出方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体によれば、計測手段をタスクのメモリブロック獲得時、タスクのメモリブロック解放時及びアイドルタスク実行時にリスタートさせ、再びリスタートする時間を連続して計測することから、システム全体の処理状態が繁忙又は閑散であっても、メモリブロック獲得待ち状態又はメモリブロック獲得待ち状態以外のデッドロックを確実に検出することができる。また、計測個所が限定されているため、メモリの使用量を低減させることができると共に、判断個所が低減するためCPUの負荷を軽減させることができる。
【0024】
【発明の実施の形態】
以下に本発明の実施の形態のデッドロック検出方法及びその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体につき図面を参照して説明する。
【0025】
(実施の形態1)
図1は本発明の実施の形態1のデッドロック検出方法及びその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体を実現するシステムの構成を示す概略図、図2は本発明の実施の形態1のデッドロック検出方法を実現するシステムのOS使用時のメモリブロック獲得/解放処理の動作説明図、図3(a)、図3(b)及び図3(c)は本発明の実施の形態1のデッドロック検出方法の動作を示すタイミングチャート、図4は本発明の実施の形態1の動作を示すフローチャートである。
【0026】
図1に示すように、計測手段であるタイマ1、オペレーティングシステム(以下、OS2)、メモリブロック3及びタスク群4から本発明の実施の形態1のデッドロック検出方法を実現するシステムは構成される。
【0027】
タスク群4は、複数のタスク(タスクA、タスクB、…)からなり、OS2はタスクスケジューリングを行って、タスク群4の中から1つのタスクを選択し、実行させる。
また、前記複数のタスクのうち、タスク4aはメモリブロック群3からOS2の割り当てによって獲得した1つのメモリブロックを使用して、タスク群中のタスク4bとメッセージ通信を行って処理を進めていく(メッセージ通信1回につき、1メモリブロックを使用)。
メッセージ通信に使用されるメモリブロックは、メッセージを送信するタスク4aによって獲得される(メモリブロック獲得処理)。また、メッセージを受信するタスク4bによってメモリブロックが解放される(メモリブロック解放処理)。
【0028】
メモリブロック獲得/解放処理は全てタスク4a及びタスク4bからOS2が用意しているメモリブロック獲得処理のシステムコール5a及びメモリブロック解法処理のシステムコール5bが呼び出されることにより実行される(図2)。
OS2は、メモリブロック獲得処理のシステムコール5aが呼び出されると、メモリブロック群3に空きがある場合のみ、メモリブロック獲得処理のシステムコール5aを呼び出したタスク4aにメモリブロックの割り当てを行う。
メモリブロック群3に空きがなかった場合は、OS2は獲得処理のシステムコール5aを呼び出したタスク4aを待ち状態に切り替える。
また、OS2はメモリブロック解放処理のシステムコール5bが呼び出されると、指定されたメモリブロックを解放する。
【0029】
次に、以上説明した本発明の実施の形態1のデッドロック検出方法を実現するシステムの動作につき説明する。
先ず、タスク群中のタスク4aからメモリブロック獲得処理のシステムコール5aが呼び出されることで、メモリブロック獲得要求がOS2に伝達される。
次に、メモリブロック獲得処理が呼び出されるタイミングで、実際にメモリブロックにタスク4aが割り当てられた後、タスク4aからタスク群中のタスク4bにメッセージが送信される。また、タスク4aからタスク4bにメッセージが送信されるタイミングで、メモリブロック群3に空きがなければタイマ1をスタートさせる。
その後、タスク4bがメッセージを受信し、係る受信によりタスク4bからメモリブロック解放処理のシステムコール5bが呼び出されることで、メモリブロック解放要求がOS2に伝達される。
ここで、タスク4bからメモリブロック解放要求がOS2に伝達されるタイミングでタイマ1をストップさせる。最後の空きメモリブロック獲得時からメモリブロック群3に空きの無い状態(メモリブロックを獲得している各タスクがメモリブロック群3を占有している状態)の継続時間を計測し、前記継続時間が一定期間経過(タイムアウト)した場合は異常発生と判断する。また、一定期間は予め設定される設定値である。
最後に、システムの異常発生と判断された場合はエラー処理を行う。
【0030】
次に本発明の実施の形態1のデッドロック検出方法及びその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体につき図3(a)、図3(b)、図3(c)及び図4を参照して更に詳細に説明する。
先ず、タスク4a及びタスク4bでメモリブロック群3を使用してメッセージ通信を行っている際の動作を以下に説明する。
【0031】
(1)メモリブロック獲得処理後、残りの空きメモリブロックの数が0でない場合(図3(a)及び図4を参照)。
メモリブロック獲得処理(S11)の後、残りの空きメモリブロックの数をチェックする(S12)。この際、タイマ1は停止状態を継続する。
【0032】
(2)メモリブロック獲得処理後の残りの空きメモリブロックの数が0であり、且つ一定期間以内に解放される場合(図3(b)及び図4を参照)。
メモリブロック獲得処理(S11)の後、タイマ1をスタートさせる(S13)。
メモリブロック解放処理(S31)の後、タイマ1をストップさせる(S32)。
【0033】
(3)メモリブロック獲得処理後の残りの空きメモリブロックの数が0であり、且つ一定期間以内に解放されない場合(図3(c)及び図4を参照)。
メモリブロック獲得処理(S11)の後、タイマ1をスタートさせる(S13)。
タイマ1が一定期間経過する迄にメモリブロックが解放されないため、エラー処理を行う(S6)。
【0034】
メッセージ通信が正常に行われている場合(メッセージの送信/メッセージの受信が滞ることなく進められる場合)は、必ず空きメモリブロックが存在する期間が生じるために、タイマ1のタイムアウトが発生することはない。
逆に、メッセージ通信が正常に行われなくなる(即ち、メッセージが受信されることがなくなる)と、メモリブロックが解放されなくなる。従って、徐々にメモリブロック群3の空きが減少し、最終的には全てのメモリブロック群3が使用中(=メモリブロックに空きがない状態)となる。
メモリブロック群3に空きがなくなった状態を継続すると、タイマ1のタイムアウトが発生して異常を検出することができる。
【0035】
次に、本発明の実施の形態1のデッドロック検出方法及びその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体の別態様につき図面を参照して説明する。
図5は本発明の実施の形態1のデッドロック検出方法の動作を示すタイミングチャート、図6は本発明の実施の形態1のデッドロック検出方法の動作を示すフローチャートである。
【0036】
図5及び図6に示すように、メッセージが送信されるタイミング毎にタイマ1をリスタートさせ(S72)、メッセージが受信されるタイミングでタイマ1をストップさせる(S82)。即ち、最後にメッセージが送信されてから、メッセージが受信されるまでに一定時間が経過した場合を異常発生と判断する。
【0037】
また、メッセージ通信はメモリブロックを使用して行われるため、メッセージの送信とメモリブロック獲得処理は必ず対となって行われる。更に、メッセージの受信とメモリブロック解放処理も同様である。
従って、メモリブロック群3に空きが無い場合、メッセージを送信することはできない。
【0038】
また、メッセージが受信されると必ずメモリブロックが解放される。
従って、受信処理が正常に行われている場合は、メモリブロック群3に空きが存在する期間が必ず生じる。
【0039】
(実施の形態2)
次に本発明の実施の形態2のデッドロック検出方法及びその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体につき図面を参照して説明する。
図7は本発明の実施の形態2のデッドロック検出方法及びその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体の構成を示すシステム構成図、図8(a)、図8(b)及び図8(c)は本発明の実施の形態2のデッドロック検出方法の動作を示すタイミングチャート、図9は本発明の実施の形態2のデッドロック検出方法の動作を示すフローチャートである。
【0040】
マイコンが保持するウォッチドッグ・タイマ(以下、WDT6)を利用して異常検査を行う方法につき説明する。
図7に示すように本発明の実施の形態2のデッドロック検出方法及びその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体は、図1で使用しているタイマ1をWDT6とした構成からなる。また、係るWDT6は一度スタートさせるとストップさせることができない。
【0041】
先ず、図8(a)、図8(b)、図8(c)及び図9を参照して、WDT6のリスタート(リセット)を行うタイミングにつき分類して説明する。
【0042】
(1)メモリブロック獲得時(図8(a)及び図9を参照)。
メモリブロック獲得処理(S11)の後、残りの空きメモリブロックの数に関係なく必ずWDT6のリスタートを行う(S13’)。
【0043】
(2)メモリブロック解放時(図8(b)及び図9を参照)。
メモリブロック解放処理(S31)の後、必ずWDT6のリスタートを行う(S32’)。
【0044】
(3)アイドルタスク実行時(図8(c)及び図9を参照)。
アイドルタスク実行時、残りの空きメモリブロックの数が0でなければ、WDT6のリスタートを行う(S9)。
【0045】
以上説明した(1)、(2)及び(3)のタイミングでWDT6をリスタートすることで、全体の処理状態(繁忙、閑散)に関わらず異常の検出を行うことができる。
【0046】
次に、システム全体の処理状態が繁忙期である場合の異常(デッドロック)の検出について、更に図10を参照して説明する。
各タスク間は、メッセージ通信を行いながら処理を進めているため、全体の処理が繁忙である場合は、必ずメッセージ通信に伴うメモリブロックの獲得/解放処理が絶えず行われる。
従って、メッセージ通信が正常に行われている場合(メッセージの送受信が滞ることなく進められる場合)は、同時にメモリブロックの獲得/解放処理が行われるため、上記(1)及び(2)におけるWDT6のリスタートによりWDT6のタイムアウトは発生しない(図8(a)及び図8(b))。
逆に、メッセージ通信が正常に行われなくなると、メモリブロックの獲得/解放処理が行われなくなり、WDT6がリスタートされずタイムアウトを発生するため、異常を検出することができる。
また、前記タイムアウトは、WDT6がスタートしてからリスタートされるまでの予め設定した設定値を基準とする一定時間を経過することをいう。
【0047】
最後にシステム全体の処理が閑散期である場合の異常(デッドロック)の検出を説明する。
閑散期においては、各タスク間におけるメッセージ通信は行われていない。従って、メッセージ通信に伴うメモリブロック獲得/解放処理も行われない。
ここで、上記(3)におけるWDT6のリスタートによって、システム全体の処理が閑散期である場合でも、WDT6がタイムアウトを発生することはない(図8(c))。
しかし、各タスクがメモリブロック獲得待ち状態に陥ったがためにアイドルタスクが実行されている場合は、残りの空きメモリブロックの数の条件によってWDTはリスタートされない。
従って、WDT6のタイムアウトが発生し、異常を検出することができる。
【0048】
【発明の効果】
以上説明した本発明のデッドロック検出方法及びその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体によれば、メモリブロック群3に空きがない状態の継続期間を計測する。
従って、メモリブロック解放処理が滞っている場合のみタイマ1がタイムアウトを発生するため、メモリブロック獲得待ち状態によるデッドロック(異常)を確実に検出することができる。
また、CPUの負荷を軽減させることができると共に、タイマ1が使用するメモリの使用量を低減させることができる。
【0049】
また、何れかのタスクがデッドロックすると、当該タスクが解放処理を行わないため、空きメモリブロックの数が徐々に減少し、その結果としてメモリブロック群3に空きがない状態となる。空きのない状態が所定時間以上継続されるとタイマ1がタイムアウトを発生するため、メモリブロック獲得待ち状態によるデッドロックを確実に検出することができる。
【0050】
更に、タイマ1のスタート及びストップがメモリブロックの獲得時及び解放時に限られているため、アプリケーション側の処理に依存することがない。
従って、異常検出処理(デッドロック検出処理)をOS2内に組み込むことができる。
【0051】
更に加えて、異常検出処理をOS2内に組み込んだ場合、アプリケーション側では異常検出処理を考慮する必要はないため、OS2とリンクさせるだけで異常検出機能が付加される。
従って、異常検出を考慮しないソフトを容易に異常検出対応に変更することができる。
【0052】
また、タイマ1のスタート及びストップがアプリケーション側に依存しないため、タスクの数に変更が生じた場合も、異常検出処理を考慮又は変更する必要がない。即ち、タスクの数に依存しないため、タスクの数に変更が生じた場合も異常検出に関する変更は不要となる利点がある。
【図面の簡単な説明】
【図1】本発明の実施の形態1のデッドロック検出方法の構成を示す構成図
【図2】本発明の実施の形態1のデッドロック検出方法のOS使用時のメモリブロック獲得/解放処理の動作を示す図
【図3】(a)本発明の実施の形態1のデッドロック検出方法の動作を示すタイミングチャート
(b)本発明の実施の形態1のデッドロック検出方法の動作を示すタイミングチャート
(c)本発明の実施の形態1のデッドロック検出方法の動作を示すタイミングチャート
【図4】本発明の実施の形態1のデッドロック検出方法の動作を示すフローチャート
【図5】本発明の実施の形態1のデッドロック検出方法の動作を示すタイミングチャート
【図6】本発明の実施の形態1のデッドロック検出方法の動作を示すフローチャート
【図7】本発明の実施の形態2のデッドロック検出方法を実現するシステム構成図
【図8】(a)本発明の実施の形態2のデッドロック検出方法の動作を示すタイミングチャート
(b)本発明の実施の形態2のデッドロック検出方法の動作を示すタイミングチャート
(c)本発明の実施の形態2のデッドロック検出方法の動作を示すタイミングチャート
【図9】本発明の実施の形態2のデッドロック検出方法の動作を示すフローチャート
【図10】本発明の実施の形態2のデッドロック検出方法の動作を示す図
【図11】従来のデッドロック検出方法の動作を示す説明図
【図12】従来のデッドロック検出方法の動作を示す説明図
【符号の説明】
1 タイマ
2 OS
3 メモリブロック群
4 タスク群
4a タスク
4b タスク
5a システムコール
5b システムコール
6 WDT
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a deadlock detection method and a computer-readable recording medium on which a program for causing a computer to execute the deadlock detection method is recorded.
[0002]
[Prior art]
In general, in a system using an OS, when performing message communication between tasks, a dynamic memory block managed by the OS is used.
An example of message communication between tasks using a dynamic memory block managed by the OS will be described with reference to FIGS.
11 and 12 are diagrams illustrating message communication operations between task A and task B. FIG.
[0003]
According to FIG. 11 and FIG. 12, when task A acquires a memory block, a message is transmitted from task A to task B. Task B receives the message and releases the memory block acquired by task A.
When task B acquires a memory block, task B transmits a message to task A. When task A receives the message, task A releases the memory block acquired by task B.
That is, the memory block acquired by task A is released by task B, which is a message transmission destination (receives a message), and the memory block acquired by task B is released by task A.
Message communication between tasks is performed by the operation described above.
[0004]
Japanese Patent Application Laid-Open No. 09-026888 discloses a time in which one task occupies one resource by holding a timer for each resource managed by the OS and counting the timer from the time when each resource is acquired. An exclusive control device that makes a correct / incorrect determination by measuring the above is disclosed. According to such an exclusive control device, the normality / abnormality of the operation is determined by comparing the time from acquisition to release with a predetermined time of one task required to occupy the shared resource.
Further, when time-out (predetermined time elapses), the following processing (a) or (b) is performed.
[0005]
(A) The resource request from another task is checked. If there is no request, the timer is restarted and the processing is continued. If requested, the resource is forcibly released from the task in use, and the resource is allocated to the task making the resource request.
(B) The resource is forcibly released from the task in use, and a resource request from another task is checked. If requested, allocate resources to the requesting task.
[0006]
[Problems to be solved by the invention]
In the conventional technology described above, depending on the timing of the memory block acquisition / release processing, there is no free memory block as shown as T90 area in FIG. 11, and as a result, any task is in a wait state. .
Accordingly, there is a problem in that any task processing is not performed (deadlock due to acquisition of a memory block), and an abnormal program operation (deadlock) occurs.
Such a phenomenon occurs not only when there is a logical error in the description of the memory block acquisition / release process, but also when there is no logical error.
[0007]
In the exclusive control device disclosed in Japanese Patent Application Laid-Open No. 09-026888, task context standby / return processing is performed as recovery processing upon error detection.
However, if the acquired task and the released task are different, the context to be saved is that of the acquiring task. That is, the recovery process does not operate normally because the information is not related to the release-side task that must be recovered from the deadlock.
[0008]
In the exclusive control device disclosed in Japanese Patent Application Laid-Open No. 09-026888, a timer must be held for each task or each resource. Therefore, it is necessary to prepare a timer for each memory block.
However, it is difficult to prepare a large number of timers as hardware for that purpose, and there is a problem that a large amount of memory is required when a timer using software is used.
Therefore, it is difficult to apply to an MCU (Micro Controller Unit) having a small amount of built-in RAM.
The software timer is a timer which prepares a memory for counting and counts a plurality of timers by software when hardware is generated at regular intervals.
[0009]
Furthermore, in the exclusive control device disclosed in Japanese Patent Application Laid-Open No. 09-026888, a determination process for each process node and a determination process for each timeout are frequently required, so that a large load is applied to the CPU. It was.
[0010]
In the data processing apparatus disclosed in Japanese Patent Application Laid-Open No. 62-229342, the timer is always restarted when the idle task is executed, and the abnormality is detected when the timer passes a certain time.
However, since it is assumed that the idle task is always executed within the timer overflow time, the timer is not restarted in a system that is so busy that the idle task is not executed. Is detected.
In addition, even if a task to be executed is not executed in a waiting state, the timer is restarted in an idle task, so that even if an abnormality occurs, it is not determined as abnormal.
[0011]
The present invention has been made in view of the above problems in the prior art, and can reliably detect a memory block acquisition state and a deadlock other than the memory block acquisition state, thereby reducing the amount of memory used and reducing the CPU usage. An object of the present invention is to provide a deadlock detection method capable of reducing the applied load.
[0012]
[Means for Solving the Problems]
  In the first invention of the present application for solving the above-mentioned problem, after the operation system assigns one task to a predetermined memory block from the memory block group, a message is sent from one task to which the memory block is assigned to another task. A deadlock detection method for detecting an abnormality in a system that executes a software process by releasing a memory block by another task that has received a message,Until one task assigned to a memory block sends a message to another task, and the other task sends a memory block release request messageA deadlock detection method characterized in that the duration is measured by a measuring means.
  In the second invention of the present application for solving the above-mentioned problem, after the operation system assigns one task to a predetermined memory block from the memory block group, a message is sent from one task to which the memory block is assigned to another task. Is a deadlock detection method that detects anomalies in a system that executes a software process by releasing a memory block by another task that has received a message, and is one task assigned to the last free memory block Is a deadlock detection method characterized in that a measurement unit measures a duration until a message is sent to another task and the other task sends a memory block release request message.
  According to a third invention of the present application for solving the above-mentioned problem, in the deadlock detection method of the first or second invention of the present application, the measuring means transmits a message by one task assigned to the memory block group. The measurement is started at the timing, and the duration is measured by stopping the measurement at the timing when another task transmits a message.
  According to a fourth invention of the present application for solving the above-mentioned problem, in the deadlock detection method of the first or second invention of the present application, the measuring means transmits a message by one task assigned to the memory block group. It is set at the timing, and the duration is measured by resetting the measurement at the timing when another task receives the message.
[0013]
  Therefore,Of the present inventionAccording to the deadlock detection method, after a task is assigned to the last free memory block, the duration during which each task assigned to the memory block group occupies the memory block group is measured by the measuring means. Since software abnormality detection is performed, a deadlock other than a memory block acquisition waiting state or a memory block acquisition waiting state can be reliably detected. In addition, the number of measurement points is limited, and the deadlock can be reliably detected with one measurement means, so that the amount of memory used can be reduced and the load on the CPU is reduced because the number of determination points is reduced. Can be made.
  Further, since the deadlock can be detected without depending on the number of tasks, there is an advantage that it is not necessary to change the setting related to abnormality detection when the number of tasks changes.
  Furthermore, the measurement location is limited, and the deadlock can be reliably detected with one measurement means, so that the amount of memory used can be reduced.
  In addition, since the number of determination points is reduced, the load on the CPU can be reduced.
[0015]
  Therefore,Of the present inventionAccording to the deadlock detection method, after one task is assigned to the last free memory block, one task assigned to the memory block group sends a message and another task receives the message. Since anomaly detection is performed by measuring the duration using the measurement means, it is possible to determine whether the message has been received normally. Locks can be reliably detected.
[0017]
  Therefore,Of the present inventionAccording to the deadlock detection method of the invention, the measuring means is restarted when the memory block of the task is acquired, when the memory block of the task is released, or when the idle task is executed in the presence of an empty memory block, and the time until restarting is continued. Therefore, the deadlock other than the memory block acquisition waiting state or the memory block acquisition waiting state can be reliably detected without depending on the processing state of the system.
[0018]
  The fifth invention of the present application for solving the above-mentioned problem isAfter the operation system assigns one task to a predetermined memory block from the memory block group, it sends a message from one task to which the memory block is assigned to another task, and the other task that received the message receives the memory. A deadlock detection method for detecting an abnormality in a system that releases a block and executes software processing,Until one task assigned to a memory block sends a message to another task, and the other task sends a memory block release request messageA computer-readable recording medium recording a program for causing a computer to execute a deadlock detection method characterized in that abnormality detection is performed by measuring a duration time by a measuring means.
  In the sixth invention of the present application for solving the above-mentioned problem, after the operation system assigns one task to a predetermined memory block from the memory block group, a message is sent from one task to which the memory block is assigned to another task. Is a deadlock detection method that detects anomalies in a system that executes a software process by releasing a memory block by another task that has received a message, and is one task assigned to the last free memory block Sends a message to another task, and the abnormality detection is performed by measuring the duration until the other task sends a memory block release request message by measuring means. A computer-readable recording of a program that causes a computer to execute Which is a recording medium.
  The seventh invention of the present application that solves the above-mentioned problems is the computer-readable recording medium of the fifth or sixth invention of the present application, wherein the measuring means has a message assigned to one task assigned to the memory block group as a message. A program that causes a computer to execute a deadlock detection method that starts measurement at the timing of transmission and detects anomalies by measuring the duration by stopping the measurement at the timing when another task transmits a message. Is recorded.
  According to an eighth aspect of the present invention for solving the above-mentioned problem, in the computer-readable recording medium of the fifth or sixth aspect of the present application, the measuring means is characterized in that a task assigned to a memory block group is a message. Records a program that causes a computer to execute a deadlock detection method that is set at the time of transmission and detects the anomaly by measuring the duration by resetting the measurement when another task receives the message. It is a thing.
[0019]
  Therefore,Of the present inventionAccording to the computer-readable recording medium recording the program for causing the computer to execute the deadlock detection method, each task assigned to the memory block group is assigned to the memory block group after the task is assigned to the last free memory block. Since the duration of occupying the memory block is measured by the measuring means, a deadlock other than the memory block acquisition waiting state or the memory block acquisition waiting state can be reliably detected. In addition, since the measurement locations are limited, the amount of memory used can be reduced, and the number of determination locations can be reduced, thereby reducing the load on the CPU.
  The recording medium refers to a medium including an auxiliary storage medium such as a CD-ROM, a DVD-ROM, and a flexible disk, or a main storage medium such as a hard disk.
[0021]
  Therefore,Of the present inventionAccording to the computer-readable recording medium recording the program for causing the computer to execute the deadlock detection method, after one task is assigned to the last free memory block, one task assigned to the memory block group is Since the message is sent and the duration until the other task receives the message is measured by the measuring means, it can be judged whether the message is received normally, and the memory block acquisition waiting state Alternatively, it is possible to reliably detect a deadlock other than the memory block acquisition waiting state. In addition, since the measurement locations are limited, the amount of memory used can be reduced, and the number of determination locations can be reduced, thereby reducing the load on the CPU.
[0023]
  Therefore,Of the present inventionAccording to a computer-readable recording medium that records a program for causing a computer to execute the deadlock detection method, the measuring means is restarted when the memory block of the task is acquired, when the memory block of the task is released, and when the idle task is executed. Since the start time is continuously measured, a deadlock other than the memory block acquisition waiting state or the memory block acquisition waiting state can be reliably detected even when the processing state of the entire system is busy or quiet. In addition, since the measurement locations are limited, the amount of memory used can be reduced, and the number of determination locations can be reduced, thereby reducing the load on the CPU.
[0024]
DETAILED DESCRIPTION OF THE INVENTION
A deadlock detection method according to an embodiment of the present invention and a computer-readable recording medium recording a program for causing a computer to execute the method will be described below with reference to the drawings.
[0025]
(Embodiment 1)
FIG. 1 is a schematic diagram showing the configuration of a system for realizing a deadlock detection method according to Embodiment 1 of the present invention and a computer-readable recording medium on which a program for causing a computer to execute the method is recorded. FIG. FIG. 3 (a), FIG. 3 (b) and FIG. 3 (c) are diagrams for explaining the operation of memory block acquisition / release processing when the OS of the system for realizing the deadlock detection method of the first embodiment is used. FIG. 4 is a flowchart showing the operation of the first embodiment of the present invention. FIG. 4 is a timing chart showing the operation of the deadlock detection method of the first embodiment.
[0026]
As shown in FIG. 1, a system that realizes the deadlock detection method according to the first embodiment of the present invention is constituted by a timer 1, an operating system (hereinafter referred to as OS 2), a memory block 3, and a task group 4 as measurement means. .
[0027]
The task group 4 includes a plurality of tasks (task A, task B,...), And the OS 2 performs task scheduling to select one task from the task group 4 and execute it.
Among the plurality of tasks, the task 4a uses one memory block acquired from the memory block group 3 by the assignment of the OS 2 and performs message communication with the task 4b in the task group to proceed the process ( One memory block is used for each message communication).
The memory block used for message communication is acquired by the task 4a that transmits the message (memory block acquisition process). Further, the memory block is released by the task 4b that receives the message (memory block release processing).
[0028]
All the memory block acquisition / release processes are executed by calling the system call 5a of the memory block acquisition process and the system call 5b of the memory block solving process prepared by the OS 2 from the tasks 4a and 4b (FIG. 2).
When the system call 5a for the memory block acquisition process is called, the OS 2 allocates a memory block to the task 4a that has called the system call 5a for the memory block acquisition process only when the memory block group 3 is free.
If there is no free space in the memory block group 3, the OS 2 switches the task 4a that has called the acquisition process system call 5a to a waiting state.
Further, when the system call 5b for the memory block release process is called, the OS 2 releases the designated memory block.
[0029]
Next, the operation of the system that realizes the deadlock detection method of the first embodiment of the present invention described above will be described.
First, a memory block acquisition request is transmitted to the OS 2 by calling a system call 5a for memory block acquisition processing from the task 4a in the task group.
Next, after the task 4a is actually assigned to the memory block at the timing when the memory block acquisition process is called, a message is transmitted from the task 4a to the task 4b in the task group. If the message is transmitted from the task 4a to the task 4b and the memory block group 3 is not empty, the timer 1 is started.
Thereafter, the task 4b receives the message, and the system block 5b for memory block release processing is called from the task 4b by such reception, whereby the memory block release request is transmitted to the OS2.
Here, the timer 1 is stopped at the timing when the memory block release request is transmitted from the task 4b to the OS2. The duration of the state in which there is no free space in the memory block group 3 (the state in which each task that has acquired the memory block occupies the memory block group 3) has been measured since the last free memory block acquisition. If a certain period of time has elapsed (timeout), it is determined that an abnormality has occurred. The predetermined period is a preset value.
Finally, if it is determined that a system abnormality has occurred, error processing is performed.
[0030]
Next, FIG. 3A, FIG. 3B, and FIG. 3C show a deadlock detection method according to the first embodiment of the present invention and a computer-readable recording medium on which a program for causing the computer to execute the method is recorded. This will be described in more detail with reference to FIG.
First, the operation when message communication is performed using the memory block group 3 in the task 4a and the task 4b will be described below.
[0031]
(1) After the memory block acquisition process, the number of remaining free memory blocks is not 0 (see FIGS. 3A and 4).
After the memory block acquisition process (S11), the number of remaining free memory blocks is checked (S12). At this time, the timer 1 continues to be stopped.
[0032]
(2) When the number of remaining free memory blocks after the memory block acquisition processing is 0 and is released within a certain period (see FIGS. 3B and 4).
After the memory block acquisition process (S11), the timer 1 is started (S13).
After the memory block release process (S31), the timer 1 is stopped (S32).
[0033]
(3) The number of remaining free memory blocks after the memory block acquisition processing is 0 and is not released within a certain period (see FIGS. 3C and 4).
After the memory block acquisition process (S11), the timer 1 is started (S13).
Since the memory block is not released before the timer 1 elapses for a certain period, error processing is performed (S6).
[0034]
When message communication is normally performed (when message transmission / message reception proceeds without delay), a period in which an empty memory block exists is always generated, so that a timeout of timer 1 may occur. Absent.
On the contrary, if the message communication is not normally performed (that is, the message is not received), the memory block is not released. Accordingly, the vacancy in the memory block group 3 gradually decreases, and finally all the memory block groups 3 are in use (= the memory block has no vacancy).
If the state in which the memory block group 3 is full is continued, the timer 1 is timed out and an abnormality can be detected.
[0035]
Next, another embodiment of the deadlock detection method according to the first embodiment of the present invention and a computer-readable recording medium recording a program for causing a computer to execute the method will be described with reference to the drawings.
FIG. 5 is a timing chart showing the operation of the deadlock detection method according to the first embodiment of the present invention, and FIG. 6 is a flowchart showing the operation of the deadlock detection method according to the first embodiment of the present invention.
[0036]
As shown in FIGS. 5 and 6, the timer 1 is restarted every time a message is transmitted (S72), and the timer 1 is stopped when the message is received (S82). That is, it is determined that an abnormality has occurred when a certain time has elapsed from when the message was last transmitted until the message is received.
[0037]
Since message communication is performed using a memory block, message transmission and memory block acquisition processing are always performed in pairs. The same applies to message reception and memory block release processing.
Therefore, when there is no space in the memory block group 3, a message cannot be transmitted.
[0038]
Also, the memory block is released whenever a message is received.
Therefore, when the reception process is normally performed, a period in which there is a vacancy in the memory block group 3 always occurs.
[0039]
(Embodiment 2)
Next, a deadlock detection method according to a second embodiment of the present invention and a computer-readable recording medium on which a program for causing a computer to execute the method will be described with reference to the drawings.
FIG. 7 is a system configuration diagram showing the configuration of a deadlock detection method according to the second embodiment of the present invention and a computer-readable recording medium on which a program for causing the computer to execute the method is recorded. FIG. 8 (a) and FIG. b) and FIG. 8C are timing charts showing the operation of the deadlock detection method according to the second embodiment of the present invention, and FIG. 9 is a flowchart showing the operation of the deadlock detection method according to the second embodiment of the present invention. .
[0040]
A method of performing an abnormality inspection using a watchdog timer (hereinafter referred to as WDT 6) held by the microcomputer will be described.
As shown in FIG. 7, the deadlock detection method according to the second embodiment of the present invention and the computer-readable recording medium on which the program for causing the computer to execute the method is recorded, the timer 1 used in FIG. Consisting of Further, once the WDT 6 is started, it cannot be stopped.
[0041]
First, with reference to FIG. 8A, FIG. 8B, FIG. 8C, and FIG. 9, the timings at which the WDT 6 is restarted (reset) will be classified and described.
[0042]
(1) When acquiring a memory block (see FIGS. 8A and 9).
After the memory block acquisition process (S11), the WDT 6 is always restarted regardless of the number of remaining free memory blocks (S13 ').
[0043]
(2) When a memory block is released (see FIGS. 8B and 9).
After the memory block release process (S31), the WDT 6 is always restarted (S32 ').
[0044]
(3) During idle task execution (see FIGS. 8C and 9).
If the number of remaining free memory blocks is not 0 when the idle task is executed, WDT 6 is restarted (S9).
[0045]
By restarting the WDT 6 at the timings (1), (2), and (3) described above, it is possible to detect an abnormality regardless of the overall processing state (busy, quiet).
[0046]
Next, detection of an abnormality (deadlock) when the processing state of the entire system is a busy period will be further described with reference to FIG.
Since the processing is proceeding while performing message communication between the tasks, the acquisition / release processing of the memory block accompanying the message communication is always performed when the entire processing is busy.
Therefore, when message communication is performed normally (when message transmission / reception proceeds without delay), memory block acquisition / release processing is performed at the same time, so the WDT 6 in (1) and (2) above The timeout of WDT 6 does not occur due to the restart (FIGS. 8A and 8B).
Conversely, when message communication is not normally performed, the acquisition / release process of the memory block is not performed, and the WDT 6 is not restarted and a timeout occurs, so that an abnormality can be detected.
Further, the time-out means that a certain time elapses with reference to a preset setting value from when the WDT 6 is started to when it is restarted.
[0047]
Finally, detection of an abnormality (deadlock) when the processing of the entire system is in a quiet period will be described.
In the off-season, there is no message communication between tasks. Therefore, the memory block acquisition / release process associated with the message communication is not performed.
Here, due to the restart of WDT 6 in (3) above, even when the processing of the entire system is in a quiet period, WDT 6 does not time out (FIG. 8C).
However, when an idle task is executed because each task is in a memory block acquisition waiting state, WDT is not restarted depending on the condition of the number of remaining free memory blocks.
Therefore, a timeout of WDT 6 occurs and an abnormality can be detected.
[0048]
【The invention's effect】
According to the above-described deadlock detection method of the present invention and the computer-readable recording medium on which the program for causing the computer to execute the method is recorded, the duration of the state in which the memory block group 3 is not empty is measured.
Therefore, since the timer 1 times out only when the memory block release processing is delayed, it is possible to reliably detect a deadlock (abnormality) due to the memory block acquisition waiting state.
In addition, the load on the CPU can be reduced and the amount of memory used by the timer 1 can be reduced.
[0049]
When any task deadlocks, the task does not perform the release process, so the number of free memory blocks gradually decreases, and as a result, the memory block group 3 becomes free. Since the timer 1 times out when a state where there is no free space continues for a predetermined time or more, a deadlock due to a memory block acquisition waiting state can be reliably detected.
[0050]
Furthermore, since the start and stop of the timer 1 are limited at the time of acquiring and releasing the memory block, it does not depend on the processing on the application side.
Therefore, an abnormality detection process (deadlock detection process) can be incorporated in the OS 2.
[0051]
In addition, when the abnormality detection process is incorporated in the OS 2, it is not necessary to consider the abnormality detection process on the application side, so that an abnormality detection function is added only by linking with the OS 2.
Therefore, software that does not consider abnormality detection can be easily changed to support abnormality detection.
[0052]
In addition, since the start and stop of the timer 1 do not depend on the application side, it is not necessary to consider or change the abnormality detection process even when the number of tasks changes. That is, since it does not depend on the number of tasks, there is an advantage that no change regarding abnormality detection is required even when the number of tasks changes.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing a configuration of a deadlock detection method according to a first embodiment of the present invention.
FIG. 2 is a diagram showing an operation of memory block acquisition / release processing when the OS is used in the deadlock detection method according to the first embodiment of the present invention;
FIG. 3A is a timing chart showing the operation of the deadlock detection method according to the first embodiment of the present invention.
(B) Timing chart showing the operation of the deadlock detection method according to the first embodiment of the present invention.
(C) Timing chart showing the operation of the deadlock detection method according to the first embodiment of the present invention.
FIG. 4 is a flowchart showing the operation of the deadlock detection method according to the first embodiment of the present invention.
FIG. 5 is a timing chart showing the operation of the deadlock detection method according to the first embodiment of the present invention.
FIG. 6 is a flowchart showing the operation of the deadlock detection method according to the first embodiment of the present invention.
FIG. 7 is a system configuration diagram for realizing the deadlock detection method according to the second embodiment of the present invention;
FIG. 8A is a timing chart showing the operation of the deadlock detection method according to the second embodiment of the present invention.
(B) Timing chart showing the operation of the deadlock detection method according to the second embodiment of the present invention.
(C) Timing chart showing the operation of the deadlock detection method according to the second embodiment of the present invention.
FIG. 9 is a flowchart showing the operation of the deadlock detection method according to the second embodiment of the present invention.
FIG. 10 is a diagram showing the operation of the deadlock detection method according to the second embodiment of the present invention.
FIG. 11 is an explanatory diagram showing the operation of a conventional deadlock detection method.
FIG. 12 is an explanatory diagram showing the operation of a conventional deadlock detection method.
[Explanation of symbols]
1 timer
2 OS
3 Memory block group
4 Task group
4a task
4b task
5a System call
5b System call
6 WDT

Claims (8)

オペレーションシステムがメモリブロック群の中から所定のメモリブロックに一のタスクを割り当てた後、メモリブロックが割り当てられた一のタスクから他のタスクにメッセージを送信し、メッセージを受信した他のタスクによってメモリブロックを解放させてソフトウェアの処理を実行するシステムの異常検出を行うデッドロック検出方法であって、
メモリブロックに割り当てられた一のタスクが他のタスクにメッセージを送信し、当該他のタスクがメモリブロックの解放要求のメッセージを送信するまでの継続時間を計測手段により計測することを特徴とするデッドロック検出方法。
After the operation system assigns one task to a predetermined memory block from the memory block group, it sends a message from one task to which the memory block is assigned to another task, and the other task that received the message receives the memory. A deadlock detection method for detecting an abnormality in a system that releases a block and executes software processing,
One task assigned to a memory block sends a message to another task, and the duration until the other task sends a memory block release request message is measured by a measuring means. Lock detection method.
オペレーションシステムがメモリブロック群の中から所定のメモリブロックに一のタスクを割り当てた後、メモリブロックが割り当てられた一のタスクから他のタスクにメッセージを送信し、メッセージを受信した他のタスクによってメモリブロックを解放させてソフトウェアの処理を実行するシステムの異常検出を行うデッドロック検出方法であって、
最後の空きメモリブロックに割り当てられた一のタスクが他のタスクにメッセージを送信し、当該他のタスクがメモリブロックの解放要求のメッセージを送信するまでの継続時間を計測手段により計測することを特徴とするデッドロック検出方法。
After the operation system assigns one task to a predetermined memory block from the memory block group, it sends a message from one task to which the memory block is assigned to another task, and the other task that received the message receives the memory. A deadlock detection method for detecting an abnormality in a system that releases a block and executes software processing,
One task assigned to the last free memory block transmits a message to another task, and the duration until the other task sends a memory block release request message is measured by the measuring means. Deadlock detection method.
前記計測手段は、メモリブロック群に割り当てられている一のタスクがメッセージを送信するタイミングで計測を開始し、他のタスクがメッセージを送信するタイミングで計測を停止することで継続時間を計測することを特徴とする請求項1又は請求項2に記載のデッドロック検出方法。The measuring means starts measuring at the timing when one task assigned to the memory block group transmits a message, and measures the duration by stopping the measurement at the timing when another task transmits the message. The deadlock detection method according to claim 1 or 2, characterized by the above-mentioned. 前記計測手段は、メモリブロック群に割り当てられている一のタスクがメッセージを送信するタイミングでセットし、他のタスクがメッセージを受信するタイミングで計測をリセットすることで継続時間を計測することを特徴とする請求項1又は請求項2に記載のデッドロック検出方法。The measuring means sets the time when one task assigned to the memory block group transmits a message, and measures the duration by resetting the measurement when the other task receives the message. The deadlock detection method according to claim 1 or 2. オペレーションシステムがメモリブロック群の中から所定のメモリブロックに一のタスクを割り当てた後、メモリブロックが割り当てられた一のタスクから他のタスクにメッセージを送信し、メッセージを受信した他のタスクによってメモリブロックを解放させてソフトウェアの処理を実行するシステムの異常検出を行うデッドロック検出方法であって、
メモリブロックに割り当てられた一のタスクが他のタスクにメッセージを送信し、当該他のタスクがメモリブロックの解放要求のメッセージを送信するまでの継続時間を計測手段により計測することで異常検出を行うことを特徴とするデッドロック検出方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
After the operation system assigns one task to a predetermined memory block from the memory block group, it sends a message from one task to which the memory block is assigned to another task, and the other task that received the message receives the memory. A deadlock detection method for detecting an abnormality in a system that releases a block and executes software processing,
One task assigned to a memory block sends a message to another task, and anomaly detection is performed by measuring the duration until the other task sends a memory block release request message by the measuring means. A computer-readable recording medium on which a program for causing a computer to execute the deadlock detection method is recorded.
オペレーションシステムがメモリブロック群の中から所定のメモリブロックに一のタスクを割り当てた後、メモリブロックが割り当てられた一のタスクから他のタスクにメッセージを送信し、メッセージを受信した他のタスクによってメモリブロックを解放させてソフトウェアの処理を実行するシステムの異常検出を行うデッドロック検出方法であって、
最後の空きメモリブロックに割り当てられた一のタスクが他のタスクにメッセージを送信し、当該他のタスクがメモリブロックの解放要求のメッセージを送信するまでの継続時間を計測手段により計測することで異常検出を行うことを特徴とするデッドロック検出方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
After the operation system assigns one task to a predetermined memory block from the memory block group, it sends a message from one task to which the memory block is assigned to another task, and the other task that received the message receives the memory. A deadlock detection method for detecting an abnormality in a system that releases a block and executes software processing,
One task assigned to the last free memory block sends a message to another task, and the measurement means measures the duration until the other task sends a memory block release request message. A computer-readable recording medium having recorded thereon a program for causing a computer to execute a deadlock detection method characterized by performing detection.
前記計測手段は、メモリブロック群に割り当てられている一のタスクがメッセージを送信するタイミングで計測を開始し、他のタスクがメッセージを送信するタイミングで計測を停止することで継続時間を計測して異常検出を行うことを特徴とするデッドロック検出The measuring means starts the measurement at the timing when one task assigned to the memory block group transmits a message, and measures the duration by stopping the measurement at the timing when another task transmits the message. Deadlock detection characterized by anomaly detection 方法をコンピュータに実行させるプログラムを記録した請求項5又は請求項6に記載のコンピュータ読み取り可能な記録媒体。The computer-readable recording medium according to claim 5 or 6 recording a program for causing a computer to execute the method. 前記計測手段は、メモリブロック群に割り当てられている一のタスクがメッセージを送信するタイミングでセットし、他のタスクがメッセージを受信するタイミングで計測をリセットすることで継続時間を計測して異常検出を行うことを特徴とするデッドロック検出方法をコンピュータに実行させるプログラムを記録した請求項5又は請求項6に記載のコンピュータ読み取り可能な記録媒体。The measuring means is set at the timing when one task assigned to the memory block group transmits a message and resets the measurement when the other task receives the message, thereby measuring the duration and detecting an abnormality. 7. A computer-readable recording medium according to claim 5, wherein a program for causing a computer to execute a deadlock detection method is recorded.
JP34694399A 1999-12-06 1999-12-06 Deadlock detection method Expired - Fee Related JP3698938B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34694399A JP3698938B2 (en) 1999-12-06 1999-12-06 Deadlock detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34694399A JP3698938B2 (en) 1999-12-06 1999-12-06 Deadlock detection method

Publications (2)

Publication Number Publication Date
JP2001166953A JP2001166953A (en) 2001-06-22
JP3698938B2 true JP3698938B2 (en) 2005-09-21

Family

ID=18386877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34694399A Expired - Fee Related JP3698938B2 (en) 1999-12-06 1999-12-06 Deadlock detection method

Country Status (1)

Country Link
JP (1) JP3698938B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2502123C1 (en) * 2012-07-20 2013-12-20 Федеральное государственное унитарное предприятие "Центральный научно-исследовательский институт машиностроения" (ФГУП ЦНИИмаш) Method for dynamic control of dead-end situations in information and communication system and apparatus for realising said method
WO2014112066A1 (en) * 2013-01-17 2014-07-24 富士通株式会社 Information processing device, memory management method, and program
JP6263940B2 (en) * 2013-10-08 2018-01-24 株式会社リコー Exclusive control program, information processing apparatus, exclusive control method

Also Published As

Publication number Publication date
JP2001166953A (en) 2001-06-22

Similar Documents

Publication Publication Date Title
US5918049A (en) Method for managing resources allocated in a computer
US8245236B2 (en) Lock based moving of threads in a shared processor partitioning environment
US7418627B2 (en) Cluster system wherein failover reset signals are sent from nodes according to their priority
JP2000353103A (en) Method and device for controlling number of servers in multiple-system cluster
CN106959895B (en) Resource scheduling method and system for quickly releasing threads
JP2001101033A (en) Fault monitoring method for operating system and application program
JP2007115246A (en) Method and apparatus for dynamically allocating resource used by software
WO2016000298A1 (en) System exception capturing method, main system, shadow system and intelligent device
CN102222036B (en) Automatic testing method and equipment
US20030018682A1 (en) Computer system and computer-readable record medium
JP3698938B2 (en) Deadlock detection method
WO2015180111A1 (en) Method, apparatus and device for managing system resource
WO2011104812A1 (en) Multi-core processor system, interrupt program, and interrupt method
JP5625379B2 (en) Lock contention management device, lock contention management method, and program
JP2012517057A (en) Apparatus, method, and computer program for maintaining data integrity (apparatus for maintaining data consistency)
CN112363828B (en) Memory fragmentation management method, device, vehicle-mounted system and vehicle
JPWO2018211865A1 (en) Vehicle control device
CN115080247B (en) High-availability thread pool switching method and device
CN119806762B (en) Distributed task scheduling method, system and program product
JPH10116261A (en) Checkpoint restart method for parallel computer system
JP4773715B2 (en) How to get checkpoint
JP5867630B2 (en) Multi-core processor system, multi-core processor system control method, and multi-core processor system control program
CN115495239B (en) Test resource multiplexing method and device, storage medium and computer equipment
CN104714924B (en) A kind of resource control method and device
JPH0527993A (en) Deadlock detection processing method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041220

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: 20050614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050706

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130715

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees