JPH11232143A - マルチスレッドの監視方法 - Google Patents
マルチスレッドの監視方法Info
- Publication number
- JPH11232143A JPH11232143A JP10052793A JP5279398A JPH11232143A JP H11232143 A JPH11232143 A JP H11232143A JP 10052793 A JP10052793 A JP 10052793A JP 5279398 A JP5279398 A JP 5279398A JP H11232143 A JPH11232143 A JP H11232143A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- threads
- primary
- processing
- primary thread
- 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.)
- Pending
Links
Abstract
に、プロセスを構成する複数のスレッドのうちの一つで
異常が発生したときに、その異常を早期に発見し、か
つ、プロセスを復旧させる。 【解決手段】 プロセス1中のプライマリスレッド2
が、プロセス1を構成する複数のスレッド3、4、5の
動作を、ポーリングを通じて監視する。異常が発生する
と、そのスレッドは、プライマリスレッド2の問い合わ
せ信号に対し、応答信号を返すことができない。応答信
号の有無に基づき、プライマリスレッド2は、各スレッ
ドの動作が正常か否かを判断する。異常が発生したと判
断すると、プライマリスレッド2は、全てのスレッド
3、4、5の動作を終了させ、かつ、初期化を行う。
Description
行されるプロセスを構成する複数のスレッドの動作を監
視するマルチスレッドの監視方法に関する。
理の基本単位として、プロセスが用いられている。例え
ば、特定の処理がCPU(Central Processing Unit)
を専有せずに、複数のタスクを公平に進めるという、プ
リエンプティブなマルチタスクOSでは、CPUの実行
単位としてスレッドを採用する。これにより、リソース
を浪費しない効率的なシステムを構築することが可能に
ある。
間通信が増大すると、システムのパフォーマンスの向上
が妨げられる虞れがある。しかし、1つのプロセスに複
数のスレッドを割り当てることにより、プロセス間通信
を使用せずに、同等の機能を実現することが可能であ
り、より高速なプログラムを作ることができる。
な従来の技術の場合、複数のスレッドから構成されるプ
ロセスでは、各スレッドが非同期に動作する。この結
果、様々な不具合を引き起こす虞れがある。これらの不
具合は、プログラムを作成する過程において、完全に取
り除かれることが望ましい。しかし、現実には、不具合
を完全に除去することは困難である。特に、スレッドの
数が多かったり、処理が複雑であったりする場合には、
予期し難い不具合が発生する虞れがある。それらの不具
合をプログラムの開発段階で発見し、その対策を講じる
ことは時間的にも経済的にも極めて困難である。しか
も、プログラムの運用が開始された後に、何らかの原因
でスレッドの動作に不具合が生じたときには、プログラ
ムが停止する。この場合、オペレータや保守員がその不
具合を発見し、プログラムを復旧させるために必要な再
立上げ等を行わなければならない。無人の場所で運用さ
れる自動化装置の場合には、適切な監視システムが無い
と、不具合の発見並びに再立上げが遅れて、異常の状態
のままで放置されてしまう虞れもある。
するため次の構成を採用する。 〈構成1〉プロセスが実行するべき処理の一部を割り当
てられて動作する複数のスレッドに対して、プライマリ
スレッドから周期的に問い合わせ信号を送信し、上記ス
レッドのうちのいずれかから応答信号を受信することが
できないときには、プライマリスレッドは、全てのスレ
ッドを初期化することを特徴とするマルチスレッドの監
視方法。
一部を割り当てられて動作する複数のスレッドに対し
て、プライマリスレッドから周期的に問い合わせ信号を
送信し、上記スレッドのうちのいずれかから応答信号を
受信することができないときには、プライマリスレッド
は、上記全てのスレッドとスレッド同士の間の通信を初
期化することを特徴とするマルチスレッドの監視方法。
一部を割り当てられて動作する複数のスレッドに対し
て、プライマリスレッドから周期的に問い合わせ信号を
送信し、上記スレッドのうちのいずれかから応答信号を
受信することができないときには、プライマリスレッド
は、異常が発生したスレッドを初期化し、初期化したス
レッド以外のスレッドの動作状態を収集し、収集された
動作状態を初期化されたスレッドに通知して、その動作
状態を設定することを特徴とするマルチスレッドの監視
方法。
視方法を用いたプロセスの具体例について説明する。 〈具体例1〉図1は、本発明に係るマルチスレッドの監
視方法を用いたプロセスの具体例1の構成図である。図
1に示すように、具体例1のプロセス1は、コンピュー
タ9によって処理され、その処理Pは、外部から入力さ
れた値Aについて、値Bを出力することである。このプ
ロセス1は、プライマリスレッド2及び複数のスレッド
3、4、5から構成される。プライマリスレッド2は、
コンピュータ9がプロセス1の実行を開始する際に生成
される。スレッド3、4、5は、プライマリスレッド2
によって生成される。
する処理Pを実行するのに必要な処理の一部をそれぞれ
割り当てられている。より具体的には、処理Pを実行す
るのに処理Sa、処理Sb、処理Scが必要であるとす
ると、スレッド3は、処理Saを割り当てられ、スレッ
ド4は、処理Sbを割り当てられ、スレッド5は、処理
Scを割り当てられる。処理Pを実行するときには、ス
レッド3、4、5は、他のスレッドの動作とは非同期的
に、すなわち、他のスレッドの動作とは独立して、それ
ぞれの処理Sa、Sb、Scを実行する。必要に応じ、
スレッド3、4、5は、他のスレッドとの間で通信を行
う。ここで、スレッド同士の間の通信とは、一のスレッ
ドから他のスレッドへ処理の結果を出力したり、一のス
レッドから他のスレッドへコマンドとパラメータを受け
渡し、そのパラメータを用いた、そのコマンドに対応す
る処理の結果を他のスレッドから一のスレッドへ戻した
りすることをいう。例えば、各スレッド3、4、5は、
周期的にイベントの受信関数をコールし、イベントを受
信した場合には、そのイベントの内容(コマンド、パラ
メータ)に対応する処理を行う。と同時に、スレッド間
でイベントを送受することにより、処理Pが進行する。
ド3、4、5を管理する機能を有する。スレッド3、
4、5を生成することに加えて、プライマリスレッド2
は、それらのスレッド3、4、5を初期化したり、終了
させたりする。また、プライマリスレッド2は、スレッ
ド同士の間の通信に必要な初期設定を行う。さらに、プ
ライマリスレッド2は、各スレッド3、4、5の動作を
監視する。
されると、まず、プライマリスレッド2が生成される。
生成されたプライマリスレッド2は、スレッド3、4、
5を生成する。そして、それぞれに処理Sa、Sb、S
cを割り当てた後、それらのスレッド3、4、5を初期
化するとともに、スレッド同士の間の通信も初期化す
る。生成され、かつ、初期化されると、スレッド3、
4、5は、それぞれ割り当てられた処理Sa、Sb、S
cを実行すべきか否かを確認し、実行する必要が生じる
と、それらの処理Sa、Sb、Scを実行する。例え
ば、スレッド3は、外部から入力を与えられると、処理
Saを開始する。以後、各スレッドは、各々の処理S
a、Sb、Scを、他のスレッドとは非同期的に実行す
ると共に、必要に応じて他のスレッドとの間で通信を行
うことにより、プロセス1の処理Pを完了する。例え
ば、スレッド3は、値Aを入力されたことを契機に処理
Saを開始し、値Aを用いて処理Saを完了すると、ス
レッド間の通信により、コマンドと、パラメータ、すな
わち、処理の結果をスレッド4、5にいずれかに、ある
いは、その両方に出力する。スレッド4、5も同様にし
て、入力されたコマンドとパラメータとに基づき、それ
ぞれの処理Sb、Scを実行する。このようにして、最
後に、スレッド5が値Bを出力する。
ている間、プライマリスレッド2は、それぞれのスレッ
ド3、4、5が正常に動作しているか否かを確認するべ
く、予め定められた問い合わせ信号を周期的に送信す
る。各スレッドは、その動作が正常であれば、プライマ
リスレッド2から受信した問い合わせ信号に応答して、
予め定められた応答信号をプライマリスレッド2へ返信
する。反対に、スレッド3、4、5は、その動作が異常
であれば、問い合わせ信号を受信することができず、あ
るいは、たとえ受信することができても、予め定められ
た応答信号を返信することができない。
4、5から応答信号を受信することができている限りに
おいては、スレッド3、4、5に対し何ら特別な処理を
行わない。従って、例えば、スレッド3へ問い合わせ信
号を送信、スレッド3から応答信号を受信、スレッド4
へ問い合わせ信号を送信、スレッド4から応答信号を受
信、…、スレッド5から応答信号を受信、スレッド3へ
問い合わせ信号を送信、というようなポーリングの動作
を続ける。
ド3、4、5から応答信号を受信することができないと
きには、プライマリスレッド2は、直ちに、全てのスレ
ッド3、4、5の動作を終了させた後、異常を生じたス
レッドだけでなく、他のスレッドをも初期化する。より
具体的には、プライマリスレッド2は、異常を生じた時
点において存在する全てのスレッド3、4、5の動作を
終了させた後、それら全てのスレッド3、4、5を消滅
させ、それらのスレッド3、4、5に対応する新たなス
レッド6、7、8を生成した後、それらのスレッド6、
7、8を初期化すると共に、スレッド同士の間の通信も
初期化する。
セスの構成図である。図2に示すように、新たなスレッ
ド6、7、8によりプロセス1の処理Pが実行される。
これらのスレッド6、7、8によりそれぞれの処理S
a、Sb、Scが実行されている間も、上記の場合と同
様に、プライマリスレッド2は、それらのスレッド6、
7、8に対しポーリングを行うことにより、各スレッド
6、7、8の動作が正常か否かを確認する。
例1のマルチスレッドの監視方法では、プライマリスレ
ッド2が周期的にスレッド3、4、5の動作を確認する
べく、問い合わせ信号を送信する。それらのスレッド
3、4、5が正常であれば、問い合わせ信号に対応する
応答信号を受信し、異常であれば、問い合わせ信号に対
応する応答信号を受信しない。これにより、万が一、ス
レッド同士の間で予期し難いタイミングでコマンドやパ
ラメータの授受が行われ、スレッドの動作が異常になっ
た場合であっても、プライマリスレッド2は、早期にそ
の異常を検出することが可能となる。従って、従来の場
合と異なり、保守員等が異常を発見する必要がないだけ
でなく、保守員等がいない無人の場所であっても、異常
を発見して立上げを行うことができる。これにより、保
守員等による発見が遅れて、そのプロセスの稼働率が低
下してしまうという事態を回避することが可能になる。
言い換えれば、プロセスの稼働率の低減を最小限に押さ
えることが可能になる。スレッドに発生した異常を検出
した場合に、プライマリスレッド2は、その検出した時
点において存在する全てのスレッド3、4、5や通信を
初期化することにより、誤動作の結果として、例えば、
値Bの代わりに値bが出力されてしまうという事態を回
避することが可能になる。プライマリスレッド2は、現
存するスレッド3、4、5を単に初期化するだけでな
く、それらのスレッド3、4、5に相当するスレッドを
新たに生成することにより、プロセス1の処理Pを早期
に再開することが可能となる。
視方法では、あるスレッドに異常が発生した場合に、プ
ライマリスレッド2は、その時点において存在する全て
のスレッドの動作を終了させたり、初期化したりする。
このようなプライマリスレッド2の動作とは対照的に、
プライマリスレッド2は、異常が発生したスレッドの動
作のみを終了させ、かつ、そのスレッドのみを初期化す
ることも可能である。これにより、全てのスレッドの動
作を終了させ、かつそれら全てのスレッドを初期化する
場合に比べて、プロセス1の処理Pをより早期に再開す
ることが可能となる。プライマリスレッド2は、異常が
発生したスレッド以外のスレッドの動作の状況を収集す
る。そして、その収集された動作の状況を、初期化され
たスレッドに通知あるいはその動作の状況に対応する、
初期化されたスレッドが有するべき動作の状況を設定す
る。これにより、さらに迅速かつ確実にプロセス1の処
理Pを再開することが可能となる。
の監視方法の具体例2について説明する。具体例2のマ
ルチスレッドの監視方法は、具体例1のマルチスレッド
の監視方法と概ね同じである。具体例2は、具体例1の
マルチスレッドの監視方法が実際の通信ネットワークシ
ステムに適用された例である。図3は、具体例2のマル
チスレッドの監視方法を用いたプロセスの構成図であ
る。図3に示すように、複数の端末同士の間で通信を行
うためのシステムである通信ネットワークシステム10
は、通信プロセス20を含む網管理システム(NMS:
Network Management System)により管理される。通信
プロセス20は、通信ネットワークシステム10を管理
するために必要なデータやコマンド等を格納するMIB
(Management Information Base)プロセス30との間
で、適宜、それらのデータやコマンド等を授受する。通
信プロセス20は、複数のスレッド21〜27及びプラ
イマリスレッド28から構成される。以下の説明におい
て、通信ネットワークシステム10と通信プロセス20
との間、通信プロセス20とMIBプロセス30との
間、通信プロセス20内のスレッド同士の間で授受され
るデータやコマンドをメッセージと総称する。
ッド28の機能は、以下の通りである。スレッド21
は、通信プロセス20を代表して、MIBプロセス30
との間で、メッセージを授受する。スレッド22は、ス
レッド21から渡されたメッセージを元に、通信ネット
ワークシステム10に適したメッセージ20Sを生成す
る。スレッド23は、生成されたメッセージ20Sの送
信を制御する。スレッド24は、所定の通信プロトコル
に従って、メッセージ20Sを通信ネットワークシステ
ム10へ送信する。スレッド25は、スレッド24と同
様に、所定の通信プロトコルに従って、通信ネットワー
クシステム10からメッセージを受信する。スレッド2
6は、スレッド25から渡されたメッセージを元に、M
IBプロセス30に適したメッセージ20Rを生成す
る。スレッド27は、生成されたメッセージ20Rの送
信を制御する。スレッド21は、メッセージ20RをM
IBプロセス30へ送出する。
て、スレッド23は、スレッド26と協同して、メッセ
ージ20Sに対応するメッセージが通信ネットワークシ
ステムから返送されたか否かを確認する。返送されたこ
とが確認されると、スレッド21は、そのメッセージ2
0Sを消去する。同様に、スレッド27は、スレッド2
2と協同して、メッセージ20Rに対応するメッセージ
がMIBプロセス30から返送されたか否かを確認す
る。返送されたことが確認されると、スレッド26は、
そのメッセージ20Rを消去する。プライマリスレッド
28は、通信プロセス20の実行が開始される際に生成
される。そして、スレッド21〜27を生成し、それら
のスレッド及びスレッド間の通信を初期化した後、それ
らのスレッドの動作を監視する。
実行される間、即ち、各スレッド21〜27の処理が実
行される間、プライマリスレッド28は、それらのスレ
ッド21〜27の動作が正常か否かを確認するべく、問
い合わせ信号を周期的に送信する。各スレッド21〜2
7は、正常であれば、その問い合わせ信号に対応する応
答信号をプライマリスレッド28へ返答することができ
る。しかし、異常であれば、応答信号をプライマリスレ
ッド28へ返答することができない。プライマリスレッ
ド28は、応答信号の有無に基づき、各スレッド21〜
27が正常であるか異常であるかを判断する。あるスレ
ッドに異常が発生したと判断した場合には、プライマリ
スレッド28は、全てのスレッド21〜27の動作を終
了させた後、それらのスレッド21〜27を初期化す
る。このようにして、通信プロセス20の処理が再開さ
れる。
例2の通信プロセス20では、具体例1のプロセス1と
同様に、プライマリスレッド28が、複数のスレッド2
1〜27へ周期的に各スレッドの動作が正常か否かを確
認するための問い合わせ信号を送信し、各スレッドは、
正常であれば応答信号を返送し、異常であれば応答信号
を返送しない。従って、プライマリスレッド28は、各
スレッド21〜27から応答信号が返信されるか否かに
基づいて、各スレッド21〜27が正常に動作している
か否かを速やかに検出することができる。さらに、異常
を検出した場合に、プライマリスレッド28は、全ての
スレッド21〜27の動作を終了させ、かつ、全てのス
レッド21〜27を初期化する。従って、通信プロセス
20の処理を速やかに再開することが可能となる。
である。
Claims (3)
- 【請求項1】 プロセスが実行するべき処理の一部を割
り当てられて動作する複数のスレッドに対して、 プライマリスレッドから周期的に問い合わせ信号を送信
し、 前記スレッドのうちのいずれかから応答信号を受信する
ことができないときには、プライマリスレッドは、全て
のスレッドを初期化することを特徴とするマルチスレッ
ドの監視方法。 - 【請求項2】 プロセスが実行するべき処理の一部を割
り当てられて動作する複数のスレッドに対して、 プライマリスレッドから周期的に問い合わせ信号を送信
し、 前記スレッドのうちのいずれかから応答信号を受信する
ことができないときには、プライマリスレッドは、前記
全てのスレッドとスレッド同士の間の通信を初期化する
ことを特徴とするマルチスレッドの監視方法。 - 【請求項3】 プロセスが実行するべき処理の一部を割
り当てられて動作する複数のスレッドに対して、 プライマリスレッドから周期的に問い合わせ信号を送信
し、 前記スレッドのうちのいずれかから応答信号を受信する
ことができないときには、プライマリスレッドは、異常
が発生したスレッドを初期化し、初期化したスレッド以
外のスレッドの動作状態を収集し、収集された動作状態
を初期化されたスレッドに通知して、その動作状態を設
定することを特徴とするマルチスレッドの監視方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10052793A JPH11232143A (ja) | 1998-02-18 | 1998-02-18 | マルチスレッドの監視方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10052793A JPH11232143A (ja) | 1998-02-18 | 1998-02-18 | マルチスレッドの監視方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11232143A true JPH11232143A (ja) | 1999-08-27 |
Family
ID=12924726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10052793A Pending JPH11232143A (ja) | 1998-02-18 | 1998-02-18 | マルチスレッドの監視方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11232143A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006277115A (ja) * | 2005-03-28 | 2006-10-12 | Fujitsu Ten Ltd | 異常検出プログラムおよび異常検出方法 |
JP2019028593A (ja) * | 2017-07-27 | 2019-02-21 | キヤノン株式会社 | システム、システムの制御方法、情報処理装置、情報処理装置の制御方法、及びプログラム |
CN111459591A (zh) * | 2020-03-31 | 2020-07-28 | 杭州海康威视数字技术股份有限公司 | 待渲染对象处理方法、装置和终端 |
CN114090270A (zh) * | 2022-01-21 | 2022-02-25 | 武汉中科通达高新技术股份有限公司 | 线程管理方法、装置、电子设备及计算机可读存储介质 |
-
1998
- 1998-02-18 JP JP10052793A patent/JPH11232143A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006277115A (ja) * | 2005-03-28 | 2006-10-12 | Fujitsu Ten Ltd | 異常検出プログラムおよび異常検出方法 |
JP2019028593A (ja) * | 2017-07-27 | 2019-02-21 | キヤノン株式会社 | システム、システムの制御方法、情報処理装置、情報処理装置の制御方法、及びプログラム |
CN111459591A (zh) * | 2020-03-31 | 2020-07-28 | 杭州海康威视数字技术股份有限公司 | 待渲染对象处理方法、装置和终端 |
CN114090270A (zh) * | 2022-01-21 | 2022-02-25 | 武汉中科通达高新技术股份有限公司 | 线程管理方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3737695B2 (ja) | 透過的時間ベースの選択的ソフトウェア若返りのためのシステム及び方法 | |
EP1099164B1 (en) | Method and program for processing administrative requests of a distributed network application executing in a clustered computing environment | |
JPH0576654B2 (ja) | ||
KR20030067712A (ko) | 네트웍 매체 링크상태 기능을 이용한 컴퓨터 클러스터링시스템의 가용도 개선방법 | |
JPH08328880A (ja) | 複数のアプリケーションプログラムを同時に実行できるオペレーティングシステムにおける計算機運転管理システム | |
JP2005209191A (ja) | 高可用性システムの遠隔エンタープライズ管理 | |
JPH0145658B2 (ja) | ||
JP2003173272A (ja) | 情報処理システム,情報処理装置及び保守センタ | |
JPH11232143A (ja) | マルチスレッドの監視方法 | |
JP2000222376A (ja) | 計算機システムとその運用方法 | |
US6810487B2 (en) | CORBA partial restart system in built-in device | |
JP2001331330A (ja) | プロセス異常検知及び復旧システム | |
JP3190880B2 (ja) | スタンバイシステム、スタンバイ方法、および記録媒体 | |
JPH0736721A (ja) | 多重化コンピュータシステムの制御方式 | |
US7873941B2 (en) | Manager component that causes first software component to obtain information from second software component | |
JPH10171769A (ja) | 複合計算機システム | |
KR102517831B1 (ko) | 미션 크리티컬 시스템 환경에서의 소프트웨어 관리방법 및 그 시스템 | |
KR20030058144A (ko) | 정보통신 시스템의 프로세스 장애 감시방법 및 복구방법 | |
JPH10269110A (ja) | 計算機システムのハングアップ回避方法並びにこの方法を用いた計算機システム。 | |
JP2977705B2 (ja) | ネットワーク接続された多重化コンピュータシステムの制御方式 | |
JPH0271336A (ja) | プロセッサの障害状態監視方式 | |
JP2908430B1 (ja) | マルチプロセッサシステムのホストプロセッサ監視装置および監視方法 | |
JPH0340040A (ja) | 計算機システム | |
JPS62180454A (ja) | 通信システムの障害情報収集方法 | |
JPH02310755A (ja) | ヘルスチェック方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050324 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071120 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080401 |