JPH04160639A - 並列処理方法 - Google Patents
並列処理方法Info
- Publication number
- JPH04160639A JPH04160639A JP28589190A JP28589190A JPH04160639A JP H04160639 A JPH04160639 A JP H04160639A JP 28589190 A JP28589190 A JP 28589190A JP 28589190 A JP28589190 A JP 28589190A JP H04160639 A JPH04160639 A JP H04160639A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- message
- information
- parallel processing
- infrastructure
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims description 13
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 13
- 230000010365 information processing Effects 0.000 claims 3
- 238000004891 communication Methods 0.000 abstract description 38
- 230000005540 biological transmission Effects 0.000 abstract description 23
- 230000006870 function Effects 0.000 description 84
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 10
- 230000005856 abnormality Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- AYFVYJQAPQTCCC-GBXIJSLDSA-N L-threonine Chemical compound C[C@@H](O)[C@H](N)C(O)=O AYFVYJQAPQTCCC-GBXIJSLDSA-N 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 150000003839 salts Chemical class 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
この発明は、オブジェクト指向ソフトウェアにおける並
列処理方式に関するものである。
列処理方式に関するものである。
(従来技術)
情報とその操作をカプセル化し、メツセージによっての
みアクセスされる、オブジェクト指向と呼ばれる概念に
基づいて設計されるアプリケーションソフトウェアとオ
ブジェクトを管理・制御するソフトウェア(以下、オブ
ジェクトインフラという)によって構成されるソフトウ
ェアでは、並列処理における処理能力等の観点から、効
率のよいシステム設計が出来るように以下の様々オブジ
ェクトの実行形態を設けている。
みアクセスされる、オブジェクト指向と呼ばれる概念に
基づいて設計されるアプリケーションソフトウェアとオ
ブジェクトを管理・制御するソフトウェア(以下、オブ
ジェクトインフラという)によって構成されるソフトウ
ェアでは、並列処理における処理能力等の観点から、効
率のよいシステム設計が出来るように以下の様々オブジ
ェクトの実行形態を設けている。
■ 並列オブジェクト
並列処理の主体となるオブジェクト毎にリアルタイムO
8のリソースであるタスクを対応させる実行形態である
。この実行形態に従って動作するオブジェクトを並列オ
ブジェクトという。並列オブジェクトへのメッセージ送
信は、タスク間通信により実現される。
8のリソースであるタスクを対応させる実行形態である
。この実行形態に従って動作するオブジェクトを並列オ
ブジェクトという。並列オブジェクトへのメッセージ送
信は、タスク間通信により実現される。
■ 直列オブジェクト
並列オブジェクトの下で従属的に動作する実行形態であ
る。この実行形態に従って動作するオブジェクトを直列
オブジェクトという。直列オブジェクトへのメツセージ
送信は、関数コールすることにより実現される。
る。この実行形態に従って動作するオブジェクトを直列
オブジェクトという。直列オブジェクトへのメツセージ
送信は、関数コールすることにより実現される。
(参考文献:電子情報通信学会技術研究報告Vo1.8
9A128SSE89−65”オブジェクト構造交換ソ
フトウェアの試作評価”′稲船正春、橋本光、能登谷厚
共著) アプリケーションプログラムにおいてメツセージ送信式
を記述する上で、オブジェクトの実行形態を意識するこ
となく設計できるようにプログラミング言語レベルで一
律の構文とし、実行形態はシステム設計時に、プログラ
ムとは別に与えられる。
9A128SSE89−65”オブジェクト構造交換ソ
フトウェアの試作評価”′稲船正春、橋本光、能登谷厚
共著) アプリケーションプログラムにおいてメツセージ送信式
を記述する上で、オブジェクトの実行形態を意識するこ
となく設計できるようにプログラミング言語レベルで一
律の構文とし、実行形態はシステム設計時に、プログラ
ムとは別に与えられる。
オブジェクトインフラは、オブジェクト生成時にオブジ
ェクトの実行形態に応じてタスク等のOSリンースを、
生成すべきオブジェクトに対して割り当てる。
ェクトの実行形態に応じてタスク等のOSリンースを、
生成すべきオブジェクトに対して割り当てる。
また、アプリケーションが意識するオブジェクト間通信
の形態としては、メツセージを送信した後に送信先から
の実行結果を待たない非回期通信、メツセージを送信し
てから送信先からの実行結果を待った後、処理を続ける
同期通信などの形態がある。
の形態としては、メツセージを送信した後に送信先から
の実行結果を待たない非回期通信、メツセージを送信し
てから送信先からの実行結果を待った後、処理を続ける
同期通信などの形態がある。
以下に、オブジェクトのメッセージ送信を図面に従って
説明する。
説明する。
第2図は、従来の並列オブジェクトへのメツセージ送信
を説明するための図である。オブジェクト26(obj
a)は送信元のオブジェクト、オブジェクト2s (
obj b )は送信先のオブジェクト、タスク29
(tsk b )はタスクである。
を説明するための図である。オブジェクト26(obj
a)は送信元のオブジェクト、オブジェクト2s (
obj b )は送信先のオブジェクト、タスク29
(tsk b )はタスクである。
オブジェク) 2 B (obj b )が生成され
た時に、同時にタスク29(tsk b )も生成さ
れ、オブジェクト2 B (obj b )に割り付
けられている。メッセージ制御機能部27は、オブジェ
クト26からのメツセージ送信要求を受けるとメツセー
ジの宛先(この場合は、objb)を判定し、オブジェ
クト28の実行形態に応じて適切なメツセージ送信手段
(この場合は、タスク間通信)を選択し、オブジェクト
28へのメッセージ送信を実行する。
た時に、同時にタスク29(tsk b )も生成さ
れ、オブジェクト2 B (obj b )に割り付
けられている。メッセージ制御機能部27は、オブジェ
クト26からのメツセージ送信要求を受けるとメツセー
ジの宛先(この場合は、objb)を判定し、オブジェ
クト28の実行形態に応じて適切なメツセージ送信手段
(この場合は、タスク間通信)を選択し、オブジェクト
28へのメッセージ送信を実行する。
(発明が解決しようとする課題)
しかし以上述べた方式では、以下のような問題点がある
。
。
■ オブジェクトの実行形態を意識せずに設計したアプ
リケーションの中から、並列処理の効果を発揮できるオ
ブジェクトを、システム設計時に見付は出すことが実際
には困難である。
リケーションの中から、並列処理の効果を発揮できるオ
ブジェクトを、システム設計時に見付は出すことが実際
には困難である。
■ オブジェクト相互の同期通信がある場合、システム
設計の誤りから、オブジェクトの実行中に第3図に示す
ようなデッドロックを生じる恐れがある。
設計の誤りから、オブジェクトの実行中に第3図に示す
ようなデッドロックを生じる恐れがある。
第3図は、デッドロックの現象を説明するための図であ
る。オブジェク)26(obj a)、オブジェク)
2 B (obj b )は、相互の同期通信を行
う並列オブジェクトである。オブジェクト26は、オブ
ジェクト28にメツセージを送信した後、オブジェクト
28か゛らの実行結果を待つ状態になる。オブジェクト
28は、そのメツセージに対する処理の中で、オブジェ
クト26にメツセージを送信した後、オブジェクト26
からの実行結果を待つ状態になる。このため双方とも実
行結果を待つ状態のままとなってしまう。
る。オブジェク)26(obj a)、オブジェク)
2 B (obj b )は、相互の同期通信を行
う並列オブジェクトである。オブジェクト26は、オブ
ジェクト28にメツセージを送信した後、オブジェクト
28か゛らの実行結果を待つ状態になる。オブジェクト
28は、そのメツセージに対する処理の中で、オブジェ
クト26にメツセージを送信した後、オブジェクト26
からの実行結果を待つ状態になる。このため双方とも実
行結果を待つ状態のままとなってしまう。
■ タスクを個々のオブジェクトに対して専用的に割り
当てるので必ずしもタスクが効率的に利用されない。
当てるので必ずしもタスクが効率的に利用されない。
■ 異常時即ち、システムの都合によりあるオブジェク
トを初期設定する必要が生じた時の対処について考慮さ
れていない。
トを初期設定する必要が生じた時の対処について考慮さ
れていない。
■ マルチプロセッサ環境における並列処理をサポート
していない。
していない。
この発明は、オプ・ゾエクトの実行形態をメツセージ送
信式の形態に対応させることにより、オブジェクト間通
信を合理的に実行し、かつタスクを効率的に利用する。
信式の形態に対応させることにより、オブジェクト間通
信を合理的に実行し、かつタスクを効率的に利用する。
またアプリケーションの設計・変更において並列オブジ
ェクトを直接意識する必要を無ぐすることにより、アプ
リケーションの設計・変更を容易にする並列処理方式を
提供することを目的とする。
ェクトを直接意識する必要を無ぐすることにより、アプ
リケーションの設計・変更を容易にする並列処理方式を
提供することを目的とする。
この発明はまた、前記異常時の対処方法を盛り込み、さ
らにマルチプロセッサ環境においても有効な並列処理方
式を提供することを目的とする。
らにマルチプロセッサ環境においても有効な並列処理方
式を提供することを目的とする。
(問題点を解決するだめの手段)
アプリケーションには並列オブジェクトは存在せず、オ
ブジェクトインフラがアプリケーションに対して、並列
処理単位としての意味だけを持つ仮想的な並列オブジェ
クト(以下、スレッドという)を提供する。捷た非同期
メツセージを並列に対応させ、同期メツセージを直列に
対応させることとする。すなわち、送信先オブジェクト
実行用のスレッドを新たに生成捷たは捕捉することによ
り非同期メツセージ送信を実現し、送信元オブジェクト
を実行しているスレッドが送信先オブジェクトも実行す
ることにより同期メツセージ送信を実現する。
ブジェクトインフラがアプリケーションに対して、並列
処理単位としての意味だけを持つ仮想的な並列オブジェ
クト(以下、スレッドという)を提供する。捷た非同期
メツセージを並列に対応させ、同期メツセージを直列に
対応させることとする。すなわち、送信先オブジェクト
実行用のスレッドを新たに生成捷たは捕捉することによ
り非同期メツセージ送信を実現し、送信元オブジェクト
を実行しているスレッドが送信先オブジェクトも実行す
ることにより同期メツセージ送信を実現する。
スレッドは、非同期メツセージを実行する機能の他、各
オブジェクトの識別情報とその初期設定タイプ(以下、
ログ情報という)を蓄積する機能、オブジェクトインフ
ラが実行中のオブジェクトを初期設定する場合あるいは
オブジェクトから要求がある場合において、スレッドが
実行している処理を放棄(以下、アテートという)する
ときに、蓄積されたログ情報を基にして該当するオブジ
ェクトを初期設定する機能を持つ。
オブジェクトの識別情報とその初期設定タイプ(以下、
ログ情報という)を蓄積する機能、オブジェクトインフ
ラが実行中のオブジェクトを初期設定する場合あるいは
オブジェクトから要求がある場合において、スレッドが
実行している処理を放棄(以下、アテートという)する
ときに、蓄積されたログ情報を基にして該当するオブジ
ェクトを初期設定する機能を持つ。
またスレッドに対して、プロセッサ構成に依存しないス
レッド即ち、アプリケーションを設計する上で認識する
だけで実体がないスレッド(以下、仮想スレッドという
)の概念を導入し、各ゾロセッサ毎に管理される実体の
あるスレッド(以下、物理スレッドという)を用いてア
プリケーションに対して仮想スレッドを提供することに
より、並列動作単位としてのスレッドがプロセッサ構成
に依存しない普遍的な概念としてアプリケーションから
認識される(以下、並列透過性という)機能を実現する
。
レッド即ち、アプリケーションを設計する上で認識する
だけで実体がないスレッド(以下、仮想スレッドという
)の概念を導入し、各ゾロセッサ毎に管理される実体の
あるスレッド(以下、物理スレッドという)を用いてア
プリケーションに対して仮想スレッドを提供することに
より、並列動作単位としてのスレッドがプロセッサ構成
に依存しない普遍的な概念としてアプリケーションから
認識される(以下、並列透過性という)機能を実現する
。
(作用)
オブジェク) 1 (obj a )は、オブジェク
トインフラのメツセージ制御機能/スレッド管理機能部
2に対し、非同期メツセージの送信を要求する。
トインフラのメツセージ制御機能/スレッド管理機能部
2に対し、非同期メツセージの送信を要求する。
メツセージ制御機能/スレッド管理機能部2は、オブジ
ェクトlから非同期メツセージの送信要求をうけると、
メツセージの宛先を判定し、スレン) 3 (Thre
ad X )を生成または捕捉する。
ェクトlから非同期メツセージの送信要求をうけると、
メツセージの宛先を判定し、スレン) 3 (Thre
ad X )を生成または捕捉する。
生成または捕捉されたスレッド3は、タスク4(tsk
x)を生成または捕捉し、オブジェクト5の登録をスタ
ートアドレスとしてタスク4を起動する。そし゛てオブ
ジェクト5の処理が正常に終了すると、タスク4を解放
し、自分自身を解放する。
x)を生成または捕捉し、オブジェクト5の登録をスタ
ートアドレスとしてタスク4を起動する。そし゛てオブ
ジェクト5の処理が正常に終了すると、タスク4を解放
し、自分自身を解放する。
またオブジェクト5から渡されるログ情報を記録してお
き、スレッド3がアポートするとき、ログ情報に基づい
てオブジェクト50強制終了またはオブジェクト5に対
するアポート処理の起動を行う。
き、スレッド3がアポートするとき、ログ情報に基づい
てオブジェクト50強制終了またはオブジェクト5に対
するアポート処理の起動を行う。
起動されたタスク4は、メツセージに対応するオブジェ
クト5の処理を実行する。
クト5の処理を実行する。
オブジェクト5は、並列処理単位であるスレッド3の下
で従属的に動作する。また動作を開始するとき、必要に
応じてスレッド3に対して自身のログ情報の記録を要求
する。またスレッド3によって起動されるアポート処理
を実行する。
で従属的に動作する。また動作を開始するとき、必要に
応じてスレッド3に対して自身のログ情報の記録を要求
する。またスレッド3によって起動されるアポート処理
を実行する。
次にプロセッサ間のメツセージ送信については、オブジ
ェクト8は、メッセージ制御機能/スレッド管理機能部
9に対し、非同期メッセージまたは同期メツセージの送
信を要求する。同期メッセージの送信を要求した後には
、送信先オブジェクトの実行結果を待つ状態となシ、メ
ッセージ制御機能/スレッド管理機能部9から実行結果
をうけると、続きの処理を行う。非同期メツセージの送
信を要求した後には、そのまま続きの処理を行う。
ェクト8は、メッセージ制御機能/スレッド管理機能部
9に対し、非同期メッセージまたは同期メツセージの送
信を要求する。同期メッセージの送信を要求した後には
、送信先オブジェクトの実行結果を待つ状態となシ、メ
ッセージ制御機能/スレッド管理機能部9から実行結果
をうけると、続きの処理を行う。非同期メツセージの送
信を要求した後には、そのまま続きの処理を行う。
メツセージ制御機能/スレッド管理機能部9は、オブジ
ェクト8から非同期メッセージまたは同期メツセージの
送信要求をうけると、メッセージの宛先を判定し、宛先
が異なるプロセッサに収容されたオブジェクトのとき、
プロセッサ間通信機能部lOに対し、メツセージを処理
するために必要な情報の転送を要求する。またプロセッ
サ間通信機能部10から情報をうけ、その情報が同期メ
ツセージに対する実行結果に関するものであるとき、オ
ブジェクト8にその実行結果を渡し、その情報がスレッ
ド13から送られるログ情報に関するものであるとき、
スレッド6にそのログ情報を渡す。
ェクト8から非同期メッセージまたは同期メツセージの
送信要求をうけると、メッセージの宛先を判定し、宛先
が異なるプロセッサに収容されたオブジェクトのとき、
プロセッサ間通信機能部lOに対し、メツセージを処理
するために必要な情報の転送を要求する。またプロセッ
サ間通信機能部10から情報をうけ、その情報が同期メ
ツセージに対する実行結果に関するものであるとき、オ
ブジェクト8にその実行結果を渡し、その情報がスレッ
ド13から送られるログ情報に関するものであるとき、
スレッド6にそのログ情報を渡す。
プロセッサ間通信機能部10は、メツセージ制御機能/
スレッド管理機能部9から情報の転送要求をうけると、
プロセッサ間通信機能部11に対し、その情報を転送す
る。またプロセッサ間通信機能部1ノから転送されてき
た情報をメツセージ制御機能/スレッド管理機能部9に
渡す。
スレッド管理機能部9から情報の転送要求をうけると、
プロセッサ間通信機能部11に対し、その情報を転送す
る。またプロセッサ間通信機能部1ノから転送されてき
た情報をメツセージ制御機能/スレッド管理機能部9に
渡す。
プロセッサ間通信機能部1ノは、プロセッサ間通信機能
部10から転送されてきた情報をメツセージ制御機能/
スレッド管理機能部12に渡す。
部10から転送されてきた情報をメツセージ制御機能/
スレッド管理機能部12に渡す。
またメッセージ制御機能/スレッド管理機能部12から
情報の転送要求をうけると、プロセッサ間通信機能部ノ
θに対し、その情報を転送する。
情報の転送要求をうけると、プロセッサ間通信機能部ノ
θに対し、その情報を転送する。
メツセージ制御機能/スレッド管理機能部12は、プロ
セッサ間通信機能部1ノから情報をうけ、その情報が非
同期メツセージまたは同期メツセージの送信要求に関す
るものであるとき、スレッド13を生成または捕捉する
。、またスレッド13から同期メツセージに対する実行
結果をうけたとき、プロセッサ間通信機能部11に対し
、その実行績果に関する情報の転送を要求する。またス
レッド13からログ情報をうけたとき、プロセッサ間通
信機能部11に対し、そのログ情報に関する情報の転送
を要求する。
セッサ間通信機能部1ノから情報をうけ、その情報が非
同期メツセージまたは同期メツセージの送信要求に関す
るものであるとき、スレッド13を生成または捕捉する
。、またスレッド13から同期メツセージに対する実行
結果をうけたとき、プロセッサ間通信機能部11に対し
、その実行績果に関する情報の転送を要求する。またス
レッド13からログ情報をうけたとき、プロセッサ間通
信機能部11に対し、そのログ情報に関する情報の転送
を要求する。
スレッド13は、タスク14を生成または捕捉し、オブ
ジェクト15の登録をスタートアドレスとしてタスク1
4を起動する。そしてスレッド13が非同期メツセージ
の送信要求に対応して生成または捕捉されたものである
ときは、オブジェクト15の処理が正常に終了すると、
タスク14を解放し1、自分自身を解放する。またスレ
ッド13が同期メツセージの送信要求に対応して生成ま
たは捕捉されたものであるときは、メツセージ制御機能
/スレッド管理機能部12に対し、実行結果を渡し、ロ
グ情報が蓄積されていればそのログ情報も渡し、タスク
14を解放し、自分自身を解放する。
ジェクト15の登録をスタートアドレスとしてタスク1
4を起動する。そしてスレッド13が非同期メツセージ
の送信要求に対応して生成または捕捉されたものである
ときは、オブジェクト15の処理が正常に終了すると、
タスク14を解放し1、自分自身を解放する。またスレ
ッド13が同期メツセージの送信要求に対応して生成ま
たは捕捉されたものであるときは、メツセージ制御機能
/スレッド管理機能部12に対し、実行結果を渡し、ロ
グ情報が蓄積されていればそのログ情報も渡し、タスク
14を解放し、自分自身を解放する。
次にアポート処理については、スレッド管理機能部19
は、プロセッサ間通信機能部2oから情報をうけ、その
情報がスレッド23がらのアポ−トの通知に関するもの
であるとき、スレッド16にそのアボートの通知を行う
。またスレッド16からアボート要求メツセージの送信
要求をうけると、プロセッサ間通信機能部20に対し、
アボート要求メツセージを処理するために必要な情報の
転送を要求する。
は、プロセッサ間通信機能部2oから情報をうけ、その
情報がスレッド23がらのアポ−トの通知に関するもの
であるとき、スレッド16にそのアボートの通知を行う
。またスレッド16からアボート要求メツセージの送信
要求をうけると、プロセッサ間通信機能部20に対し、
アボート要求メツセージを処理するために必要な情報の
転送を要求する。
プロセッサ間通信機能部20は、スレッド管理機能部1
9から情報の転送要求をうけると、プロセンサ間通信機
能部21に対し、その情報を転送する。またプロセッサ
間通信機能部21から転送されてきた情報をスレッド管
理機能部19に渡す。
9から情報の転送要求をうけると、プロセンサ間通信機
能部21に対し、その情報を転送する。またプロセッサ
間通信機能部21から転送されてきた情報をスレッド管
理機能部19に渡す。
プロセッサ間通信機能部21は、プロセッサ間通信機能
部20から転送されてきた情報をスレッド管理機能部2
2に渡す。またスレッド管理機能部22から情報の転送
要求をうけると、プロセッサ間通信機能部20に対し、
その情報を転送する。
部20から転送されてきた情報をスレッド管理機能部2
2に渡す。またスレッド管理機能部22から情報の転送
要求をうけると、プロセッサ間通信機能部20に対し、
その情報を転送する。
スレッド管理機能部22は、スレッド23からアボート
通知の要求をうけると、プロセッサ間通信機能部2ノに
対し、アボート通知に関する情報の転送を要求する。ま
たプロセッサ間通信機能部21から情報をうけ、その情
報がアボート要求メツセージの送信要求に関するもので
あるとき、スレッド23のアポート処理を起動する。
通知の要求をうけると、プロセッサ間通信機能部2ノに
対し、アボート通知に関する情報の転送を要求する。ま
たプロセッサ間通信機能部21から情報をうけ、その情
報がアボート要求メツセージの送信要求に関するもので
あるとき、スレッド23のアポート処理を起動する。
スレッド23は、動作中に異常(タスク24の異常終了
等)を検出すると、スレッド管理機能部22に対し、ア
ボート通知の要求を行う。またスレッド管理機能部22
によってアボート処理が起動されると、もしオブジェク
ト25のログ情報が記録されていれば、そのログ情報に
基づいてオブジェクト25の強制終了またはオブジェク
ト25に対するアボート通知の起動を行う。
等)を検出すると、スレッド管理機能部22に対し、ア
ボート通知の要求を行う。またスレッド管理機能部22
によってアボート処理が起動されると、もしオブジェク
ト25のログ情報が記録されていれば、そのログ情報に
基づいてオブジェクト25の強制終了またはオブジェク
ト25に対するアボート通知の起動を行う。
(実施例)
第1図は、非同期のメツセージ送信及びスレッドのアポ
ート処理を説明するための図である。1はオブジェク)
a (obj a )で送信元のオブジェクト、5
はオブジェクトb (obj b )で送信先のオブ
ジェクト、スレッド3 (Thread X)はオブ
ジェク) 5 (obj b )を実行するスレッド
。
ート処理を説明するための図である。1はオブジェク)
a (obj a )で送信元のオブジェクト、5
はオブジェクトb (obj b )で送信先のオブ
ジェクト、スレッド3 (Thread X)はオブ
ジェク) 5 (obj b )を実行するスレッド
。
タスク4(tsk−X)はタスクである。メツセージ制
御機能/スレッド管理機能部2は、オブジェクト1から
の非同期メツセージの送信要求を受けるとメツ七−ノの
宛先(この場合は、objb)を判定し、スレッド3
(Thread X )を生成または捕捉する。
御機能/スレッド管理機能部2は、オブジェクト1から
の非同期メツセージの送信要求を受けるとメツ七−ノの
宛先(この場合は、objb)を判定し、スレッド3
(Thread X )を生成または捕捉する。
即ちスレッド管理機能部2のスレッド制御ブロック管理
テーブルを検索し、解放中のスレッド制御ブロックが1
つもなかった場合、未使用メモリエリアから新たにスレ
ッド制御ブロックエリアを確保し、この壬リアを使用中
としてスレッド制御ブロック管理テーブル欄を生成する
。又はスレッド制御ブロック管理テーブルを検索し、解
放中のスレッド制御ブロックを1つ捕捉し使用中とする
。
テーブルを検索し、解放中のスレッド制御ブロックが1
つもなかった場合、未使用メモリエリアから新たにスレ
ッド制御ブロックエリアを確保し、この壬リアを使用中
としてスレッド制御ブロック管理テーブル欄を生成する
。又はスレッド制御ブロック管理テーブルを検索し、解
放中のスレッド制御ブロックを1つ捕捉し使用中とする
。
スレッド3は、タスク4を生成または捕捉し、送信先オ
ブジェクトである。オブジェクト5の登録をスタートア
ドレスとしてタスク4を起動する。
ブジェクトである。オブジェクト5の登録をスタートア
ドレスとしてタスク4を起動する。
本メツセージに対するオブジェクト5の処理が正常に終
了すると、スレッド3はタスク4を解放して自分自身を
解放する。
了すると、スレッド3はタスク4を解放して自分自身を
解放する。
次にスレッドが行うアポート処理について説明する。オ
ブジェクト5は、動作を開始するとき、必要に応じてス
レッド3に対してオブジェクト5の識別情報とその初期
設定タイプの記録を要求する。初期設定タイプには、オ
ブジェクトを強制終了するタイプと、オブジェクトに対
するアポート処理を実行するタイプがある。そしてスレ
ッド3においてアボートが発生した場合、スレッド3は
初期設定タイプに応じて、オブジェクト5を強制終了す
るかもしくは、オブジェクト5に対するアポート処理を
起動する。
ブジェクト5は、動作を開始するとき、必要に応じてス
レッド3に対してオブジェクト5の識別情報とその初期
設定タイプの記録を要求する。初期設定タイプには、オ
ブジェクトを強制終了するタイプと、オブジェクトに対
するアポート処理を実行するタイプがある。そしてスレ
ッド3においてアボートが発生した場合、スレッド3は
初期設定タイプに応じて、オブジェクト5を強制終了す
るかもしくは、オブジェクト5に対するアポート処理を
起動する。
次にプロセッサ間に渡るメツセージ送信について説明す
る。まず説明に先立って、次の3つの用語を定義する。
る。まず説明に先立って、次の3つの用語を定義する。
■ アクティビティ
スレッドのもとで行われる実際の動作を仮想化したもの
である。アクティビティは仮想スレッドに唯一つ存在す
る。
である。アクティビティは仮想スレッドに唯一つ存在す
る。
■ マスタスレッド
仮想スレッドと同時に生成される物理スレッドである。
■ スレーブスレッド
マスタスレッド以外の物理スレッドである。
第4図は、プロセッサ間に渡るメツセージ送信を説明す
るための図である。オブジェクトインフラX30とオブ
ジェクトインフラY40は、異なるプロセッサ上で動作
するオブジェクトインフラであり、オブジェク) 8
(obj a )は、オブジェクトインフラX30に
より管理・制御されるオブジェクト、オブジェク)75
(objb)は、オブジェクトインフラY40により管
理・制御されるオブジェクト、スレッド6 (Thre
ad X )は、オブジェクト8を実行するマスタス
レッド、スレッド13 (Thread Y)は、オ
ブジェクト8からオブジェクト15へのメツセージを実
行するマスタスレッドもしくはスレーブスレッド、タス
ク14(tsk k)はオブジェクトインフラY40の
タスクである。
るための図である。オブジェクトインフラX30とオブ
ジェクトインフラY40は、異なるプロセッサ上で動作
するオブジェクトインフラであり、オブジェク) 8
(obj a )は、オブジェクトインフラX30に
より管理・制御されるオブジェクト、オブジェク)75
(objb)は、オブジェクトインフラY40により管
理・制御されるオブジェクト、スレッド6 (Thre
ad X )は、オブジェクト8を実行するマスタス
レッド、スレッド13 (Thread Y)は、オ
ブジェクト8からオブジェクト15へのメツセージを実
行するマスタスレッドもしくはスレーブスレッド、タス
ク14(tsk k)はオブジェクトインフラY40の
タスクである。
第4図を用いて、捷ず、非同期のメツセージ送信につし
・て説明する。オブジェクトインフラX40のメツセー
ジ制御機能/スレッド管理機能部9は、オブジェクト8
からの非同期メツセージの送信要求を受けるとメツセー
ジの宛先(この場合は、オブジェクト15)を判定し、
プロセッサ間通信機能10.11を利用して、メツセー
ジを処理するために必要な情報、即ち送信先のオブジェ
クト識別情報、メツセージ塩、通信形態(同期/非同期
)、送信元のスレッド識別情報を、オブジェクトインフ
ラY40のメツセージ制御機能/スレッド管理機能部1
2に転送する。オブジェクトインフラY40のメツセー
ジ制御機能/スレッド管理機能部12は、これを受けて
マスタスレッドテするスレッド13を生成または捕捉す
る。スレッド13は、タスク14を生成または捕捉し、
送信先オブジェクトであるオブジェクト15の登録をス
タートアドレスとしてタスク14を起動する。
・て説明する。オブジェクトインフラX40のメツセー
ジ制御機能/スレッド管理機能部9は、オブジェクト8
からの非同期メツセージの送信要求を受けるとメツセー
ジの宛先(この場合は、オブジェクト15)を判定し、
プロセッサ間通信機能10.11を利用して、メツセー
ジを処理するために必要な情報、即ち送信先のオブジェ
クト識別情報、メツセージ塩、通信形態(同期/非同期
)、送信元のスレッド識別情報を、オブジェクトインフ
ラY40のメツセージ制御機能/スレッド管理機能部1
2に転送する。オブジェクトインフラY40のメツセー
ジ制御機能/スレッド管理機能部12は、これを受けて
マスタスレッドテするスレッド13を生成または捕捉す
る。スレッド13は、タスク14を生成または捕捉し、
送信先オブジェクトであるオブジェクト15の登録をス
タートアドレスとしてタスク14を起動する。
本メツセージに対するオブジェクト15の処理が正常に
終了すると、スレッド13はタスク14を解放して自分
自身を解放する。
終了すると、スレッド13はタスク14を解放して自分
自身を解放する。
次に、同期のメツセージ送信について第4図により説明
する。オブジェクトインフラX30のメツセージ制御機
能/スレッド管理機能部9は、obj aからの同期
メツセージの送信要求を受けるとメツセージの宛先(こ
の場合は、objb)を判定し、obj bが異なる
プロセッサに収容されているので、プロセッサ間通信機
能を利用して、メツセージを処理するために必要な送信
先のオブジェクト識別情報、メツセージ塩・通信形態、
送信元のスレッド識別情報をオブジェクトインフラY4
0のメッセージ制御機能/スレッド管理機能部12に転
送し、アクティビティを送信先に渡す、オブジェクトイ
ンフラY40のメツセージ制御機能/スレッド管理機能
部12は、′これを受けてスレーブスレッドであるスレ
ブト13を生成または捕捉する。スレッド13は、タス
ク14を生成または捕捉し、送信先オブジェクトである
。オブジェクト15の登録をスタートアドレスとしてタ
スク14を起動する。本メツセージに対するオブジェク
ト15の処理が正常に終了し、送信元のスレッドである
スレッド6にアクティビティが返された時点で、スレッ
ド13はタスク14を解放して自分自身を捕捉する。ス
レッド13がアクテイビティを返すとき、スレッド13
にログ情報が蓄積されているときはこれも同時に転送さ
れ、スレッド6に蓄積される。
する。オブジェクトインフラX30のメツセージ制御機
能/スレッド管理機能部9は、obj aからの同期
メツセージの送信要求を受けるとメツセージの宛先(こ
の場合は、objb)を判定し、obj bが異なる
プロセッサに収容されているので、プロセッサ間通信機
能を利用して、メツセージを処理するために必要な送信
先のオブジェクト識別情報、メツセージ塩・通信形態、
送信元のスレッド識別情報をオブジェクトインフラY4
0のメッセージ制御機能/スレッド管理機能部12に転
送し、アクティビティを送信先に渡す、オブジェクトイ
ンフラY40のメツセージ制御機能/スレッド管理機能
部12は、′これを受けてスレーブスレッドであるスレ
ブト13を生成または捕捉する。スレッド13は、タス
ク14を生成または捕捉し、送信先オブジェクトである
。オブジェクト15の登録をスタートアドレスとしてタ
スク14を起動する。本メツセージに対するオブジェク
ト15の処理が正常に終了し、送信元のスレッドである
スレッド6にアクティビティが返された時点で、スレッ
ド13はタスク14を解放して自分自身を捕捉する。ス
レッド13がアクテイビティを返すとき、スレッド13
にログ情報が蓄積されているときはこれも同時に転送さ
れ、スレッド6に蓄積される。
次に、プロセッサ間に渡るアポート処理について説明す
る。スレッドのアポートには、末端のスレッド即ちアク
ティビティの存在するスレッドで発生する場合と、中間
のスレッド即ちアクティビティの存在しないスレッドで
発生する場合とがある。前者は動作中に異常を検出した
場合、後者はスレッド上にある特定のオブジェクトを強
制終了する場合が考えられる。いずれの場合にも、制御
は、マスタスレッドのアポート処理に渡される。
る。スレッドのアポートには、末端のスレッド即ちアク
ティビティの存在するスレッドで発生する場合と、中間
のスレッド即ちアクティビティの存在しないスレッドで
発生する場合とがある。前者は動作中に異常を検出した
場合、後者はスレッド上にある特定のオブジェクトを強
制終了する場合が考えられる。いずれの場合にも、制御
は、マスタスレッドのアポート処理に渡される。
アポート処理の内容は、マスタスレッドもスレーブスレ
ッドも同様であり、以下の様に行われる。
ッドも同様であり、以下の様に行われる。
■ 送信先のスレーブスレッドが存在する場合、もしく
は異なるプロセッサに収容されたオブジェクトに関する
ログ情報が記録されている場合、該当するプロセッサ上
のスレッド管理機能に対し、アポートを要求するメツセ
ージを送出する。
は異なるプロセッサに収容されたオブジェクトに関する
ログ情報が記録されている場合、該当するプロセッサ上
のスレッド管理機能に対し、アポートを要求するメツセ
ージを送出する。
■ ログ情報に基づいて、オブジェクトの強制終了、ま
たは、オブジェクトに対するアポート処理の起動を行う
。
たは、オブジェクトに対するアポート処理の起動を行う
。
第5図は、末端のスレッドでアホートが発生した場合の
アボート処理を説明するだめの図である。
アボート処理を説明するだめの図である。
オブジェクトイン、フラX50とオブジェクトインフラ
Y60は、異なるプロセッサ上で動作するオブジェクト
インフラであシ、オブジェクト18(obj a)は
、オブジェクトインフラX50により管理・制御される
オブジェクト、オブジェク) 25 (obj b
)は、オブジェクトインフラY60によシ管理・制御さ
れるオブジェクト、スレッド16 (Thread
X )は、オブジェクト18(obja)を実行中のマ
スタスレッド、スレッド23 (Thread Y
)は、オブジェクト18からオブジェクト25への同期
のメツセージを実行中のスレーブスレンド、タスクl
7 (tsk x )は、オブジェクトインフラX5
0のタスク、タスク24(tsk−y)は、オブジェク
トインフラY60のタスクである。ここでスレッド23
(Thread Y)が動作中に異常を検出した時、
制御は、マスタスレッドであるスレッド16 (Thr
ead X )に渡される。スレッド16は、オブジ
ェクトインフラY60のスレッド管理機能部22に対し
てアポート要求メツセージを送出し、もしオブジェクト
18に関するログ情報が記録されていれば、そのログ情
報に基づいて、オブジェクト18の強制終了またはオブ
ジェクト18に対するアボート処理の起動を行う。オブ
ジェクトインフラY60のスレッド管理機能部22は、
オブジェクトインフラX50のスレッド管理機能部19
からアポート要求メツセージを受けると、スレッド23
のアボート処理を起動する。
Y60は、異なるプロセッサ上で動作するオブジェクト
インフラであシ、オブジェクト18(obj a)は
、オブジェクトインフラX50により管理・制御される
オブジェクト、オブジェク) 25 (obj b
)は、オブジェクトインフラY60によシ管理・制御さ
れるオブジェクト、スレッド16 (Thread
X )は、オブジェクト18(obja)を実行中のマ
スタスレッド、スレッド23 (Thread Y
)は、オブジェクト18からオブジェクト25への同期
のメツセージを実行中のスレーブスレンド、タスクl
7 (tsk x )は、オブジェクトインフラX5
0のタスク、タスク24(tsk−y)は、オブジェク
トインフラY60のタスクである。ここでスレッド23
(Thread Y)が動作中に異常を検出した時、
制御は、マスタスレッドであるスレッド16 (Thr
ead X )に渡される。スレッド16は、オブジ
ェクトインフラY60のスレッド管理機能部22に対し
てアポート要求メツセージを送出し、もしオブジェクト
18に関するログ情報が記録されていれば、そのログ情
報に基づいて、オブジェクト18の強制終了またはオブ
ジェクト18に対するアボート処理の起動を行う。オブ
ジェクトインフラY60のスレッド管理機能部22は、
オブジェクトインフラX50のスレッド管理機能部19
からアポート要求メツセージを受けると、スレッド23
のアボート処理を起動する。
(発明の効果)
以上、詳細に説明したようにこの発明によれば、以下の
ような効果が期待できる。
ような効果が期待できる。
■ オブジェクトが非同期メツセージを要求したとき、
スレッドと呼ばれる並列処理単位を生成または捕捉する
ので、オブジェクト間通信を合理的に実行し、かつタス
クを効率的に利用できる。
スレッドと呼ばれる並列処理単位を生成または捕捉する
ので、オブジェクト間通信を合理的に実行し、かつタス
クを効率的に利用できる。
■ 並列処理を実現するための機構がオブジェクトイン
フラに局所化されるため、不必要なバグの散在を防止で
きる。
フラに局所化されるため、不必要なバグの散在を防止で
きる。
■ デッドロックを生じる恐れがないので、ある同期メ
ッセージを処理するオブジェクトが送信元のオブジェク
トに対して同期メツ七−ジを送信するという手法(以下
、再帰呼びという)が自由に使える。この再帰呼びを使
b1ことにより、アプリケーションの追加・変更の容易
性を増すことができる。
ッセージを処理するオブジェクトが送信元のオブジェク
トに対して同期メツ七−ジを送信するという手法(以下
、再帰呼びという)が自由に使える。この再帰呼びを使
b1ことにより、アプリケーションの追加・変更の容易
性を増すことができる。
■ アプリケーションに対して並列処理動作に関する透
過性を実現するので、本並列処理方法が単にマルチプロ
セッサ環境において適用可能であるばかシテなく、プロ
セッサ構成を意識することなくアプリケーション設計を
行える(即ち移植性の高いアプリケーションが設計でき
る)。
過性を実現するので、本並列処理方法が単にマルチプロ
セッサ環境において適用可能であるばかシテなく、プロ
セッサ構成を意識することなくアプリケーション設計を
行える(即ち移植性の高いアプリケーションが設計でき
る)。
■ スレッドのアボート処理をサポートしているので、
交換システムのようなフォールトトレランス性の要求さ
れるシステムにおいて充分適用可能である。
交換システムのようなフォールトトレランス性の要求さ
れるシステムにおいて充分適用可能である。
第1図は本発明の非同期メツセージ送信及びスレッドの
アボート処理の説明図、第2図は従来の並列オブジェク
トのメツセージ送信の説明図、第3図はテントロック現
象の説明図、第4図は本発明に係るプロセッサ間メッセ
ージ送信の説明図、第5図は本発明に係るアボート処理
の説明図である。 1.5,8,15.1B、25,26.28・・・オブ
ジェクト、2e9,12・・・メツセージ制御機能/ス
レッド管理機能部、3,6,13,16゜23・・・ス
レッド、4,7,14.17,24゜29・・・タスク
、10,11,20.21・・・プロセッサ間通信機能
部、27・・・メツセージ制御機能部。 特許出願人 沖電気工業株式会社 アホー′F対理l 第5 ” tyt、 J7T凹 因
アボート処理の説明図、第2図は従来の並列オブジェク
トのメツセージ送信の説明図、第3図はテントロック現
象の説明図、第4図は本発明に係るプロセッサ間メッセ
ージ送信の説明図、第5図は本発明に係るアボート処理
の説明図である。 1.5,8,15.1B、25,26.28・・・オブ
ジェクト、2e9,12・・・メツセージ制御機能/ス
レッド管理機能部、3,6,13,16゜23・・・ス
レッド、4,7,14.17,24゜29・・・タスク
、10,11,20.21・・・プロセッサ間通信機能
部、27・・・メツセージ制御機能部。 特許出願人 沖電気工業株式会社 アホー′F対理l 第5 ” tyt、 J7T凹 因
Claims (5)
- (1)情報と情報の処理操作をカプセル化し、メッセー
ジによってアクセスするオブジェクト指向と呼ばれる概
念に基づいて設計するアプリケーションソフトウェアと
オブジェクトを管理・制御する並列処理方法において、 オブジェクトがオブジェクトインフラに非同期メッセー
ジ送信を要求し、該要求によって前記オブジェクトイン
フラは並列処理を行うスレッドを生成または捕捉するこ
とを特徴とした並列処理方法。 - (2)情報と情報の処理操作をカプセル化し、メッセー
ジによってアクセスするオブジェクト指向と呼ばれる概
念に基づいて設計するアプリケーションソフトウェアと
オブジェクトを管理・制御する並列処理方法において、 オブジェクトがオブジェクトインフラに非同期メッセー
ジ送信を要求し、該要求によって前記オブジェクトイン
フラは並列処理を行うスレッドを生成または捕捉し、オ
ブジェクトがスレッドにオブジェクト識別情報と、その
初期設定タイプの記録を要求するとスレッドは前記識別
情報と初期設定タイプを記録し、スレッドが実行中の処
理を放棄すると前記スレッドが記録した識別情報と初期
設定タイプに基づいてオブジェクトの初期設定を実行す
ることを特徴とした並列処理方法。 - (3)情報と情報の処理操作をカプセル化し、メッセー
ジによってアクセスするオブジェクト指向と呼ばれる概
念に基づいて設計するアプリケーションソフトウェアと
オブジェクトを管理・制御する並列処理方法において、 オブジェクトがオブジェクトインフラに対し非同期メッ
セージ送信を要求し、オブジェクトインフラがメッセー
ジの宛先を異なるプロセッサに収容されたオブジェクト
と判定すると、受信側オブジェクトのあるプロセッサに
マスタスレッドを生成または捕捉し、該マスタスレッド
が受信側オブジェクトの処理を実行することを特徴とし
た並列処理方法。 - (4)オブジェクトがオブジェクトインフラに対し同期
メッセージ送信を要求し、オブジェクトインフラがメッ
セージの宛先を異なるプロセッサに収容されたオブジェ
クトと判定すると受信側オブジェクトのあるプロセッサ
にスレーブスレッドを生成または捕捉し、該スレーブス
レッドが受信側オブジェクトの処理を実行し、該実行が
終了すると送信側スレッドに制御を転送することを特徴
とする特許請求の範囲第3項記載の並列処理方法。 - (5)スレーブスレッドがオブジェクトの処理の実行を
終了すると前記オブジェクトに蓄積されたオブジェクト
識別情報とその初期設定タイプを送信側スレッドに転送
することを特徴とする特許請求の範囲第4項記載の並列
処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28589190A JP2793712B2 (ja) | 1990-10-25 | 1990-10-25 | 並列処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28589190A JP2793712B2 (ja) | 1990-10-25 | 1990-10-25 | 並列処理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04160639A true JPH04160639A (ja) | 1992-06-03 |
| JP2793712B2 JP2793712B2 (ja) | 1998-09-03 |
Family
ID=17697364
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP28589190A Expired - Fee Related JP2793712B2 (ja) | 1990-10-25 | 1990-10-25 | 並列処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2793712B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08110860A (ja) * | 1994-02-11 | 1996-04-30 | Internatl Business Mach Corp <Ibm> | インターフエース機構、クラス・ライブラリ及び非同期のデータ処理方法 |
-
1990
- 1990-10-25 JP JP28589190A patent/JP2793712B2/ja not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08110860A (ja) * | 1994-02-11 | 1996-04-30 | Internatl Business Mach Corp <Ibm> | インターフエース機構、クラス・ライブラリ及び非同期のデータ処理方法 |
| US5999987A (en) * | 1994-02-11 | 1999-12-07 | International Business Machines Corporation | Concurrent processing in object oriented parallel and near parallel |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2793712B2 (ja) | 1998-09-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7058948B2 (en) | Synchronization objects for multi-computer systems | |
| JP5688591B2 (ja) | システム・タスクを実行する複数の処理コアを含む情報処理システムの決定論的実行および同期のための方法 | |
| US6560626B1 (en) | Thread interruption with minimal resource usage using an asynchronous procedure call | |
| JP3339482B2 (ja) | 分散デバッグ装置及びデバッグ方法並びに制御プログラムを記録した記録媒体 | |
| JP2698049B2 (ja) | 多重処理サーバにおけるモニタ装置及び動作方法 | |
| CN1055557C (zh) | 多处理机控制系统中控制单位程序信息过载的方法 | |
| KR20160083916A (ko) | 정보 처리 장치, 정보 처리 방법, 기록 매체, 계산 처리 장치, 계산 처리 방법 | |
| JP4957765B2 (ja) | ソフトウェアプログラム実行装置、ソフトウェアプログラム実行方法、及びプログラム | |
| US20030018682A1 (en) | Computer system and computer-readable record medium | |
| JP2000132529A (ja) | 並列処理装置、並列処理方法および記録媒体 | |
| CN100442240C (zh) | 数据处理系统及其控制方法 | |
| CN101408851A (zh) | 应用程序紧急暂停系统及方法 | |
| JPH04160639A (ja) | 並列処理方法 | |
| WO2013051067A1 (ja) | 計算機および計算機制御方法 | |
| KR101102930B1 (ko) | 로봇용 소프트웨어 컴포넌트 장치 및 이를 이용한 쓰레드 처리 방법 | |
| US20090019259A1 (en) | Multiprocessing method and multiprocessor system | |
| JPH0981526A (ja) | マルチプロセッサシステム | |
| JP2553526B2 (ja) | マルチタスク処理装置 | |
| JPS6239789B2 (ja) | ||
| JP2003005987A (ja) | エミュレーション装置 | |
| JP2552452B2 (ja) | ビジヨンシステム | |
| CN120066582A (zh) | 基于多核的中断任务的并行执行方法、装置、设备及介质 | |
| Wang et al. | HSEB: optimizing microkernel performance for network I/O-intensive applications via High-Speed Event Bus mechanism | |
| JP3039918B2 (ja) | プロセッサシステム | |
| JP2965133B2 (ja) | プロセッサシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |