JPH07141180A - オブジェクト並列実行方法 - Google Patents

オブジェクト並列実行方法

Info

Publication number
JPH07141180A
JPH07141180A JP29036193A JP29036193A JPH07141180A JP H07141180 A JPH07141180 A JP H07141180A JP 29036193 A JP29036193 A JP 29036193A JP 29036193 A JP29036193 A JP 29036193A JP H07141180 A JPH07141180 A JP H07141180A
Authority
JP
Japan
Prior art keywords
queue
processing
message
time
parallel execution
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
Application number
JP29036193A
Other languages
English (en)
Inventor
Soichiro Saito
壮一郎 斉藤
Kiyoshi Tanaka
潔 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP29036193A priority Critical patent/JPH07141180A/ja
Publication of JPH07141180A publication Critical patent/JPH07141180A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 複数オブジェクトの同一時刻のタスク処理を
時分割で起動して並列処理させる際に、先に起動された
オブジェクトの処理が他オブジェクトの同一時刻のタス
ク処理に影響させないようにする。 【構成】 OS1及びとオブジェクトobjA、obj
B群間に介在する直並列実行変換部3はオブジェクト間
のメッセージ転送に介在する。直並列実行変換部は、処
理段階区別用の各オブジェクトに係るTキュー3a1、
Rキュー3a2を管理する。直並列実行変換部は、起動
するオブジェクトに係るRキューが存在する場合、メッ
セージを引渡す。タスク処理が起動されたオブジェクト
から他オブジェクトへのメッセージを受信したとき、転
送先オブジェクトのTキューにキューイングする。ある
時刻における全てのオブジェクトのタスク処理を実行さ
せたとき、TキューからRキューへの移送処理を行な
い、その後に次の時刻の処理に進む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、同一時刻に係る複数の
オブジェクトのタスク処理を時分割によるスイッチング
によって擬似的に並列に実行するオブジェクト並列実行
方法に関し、例えばオブジェクト指向の概念で作成され
た通信システム用シミュレータに適用し得るものであ
る。
【0002】
【従来の技術】例えば、交換システム等の通信システム
が設計された場合や最適な通信システムを模索している
場合、通信システムは大規模のものであるので、実際に
システムを構築して評価することはできず、そこで、そ
の設計システムと等価なシステム(シミュレータ)を、
例えばソフトウェアを中心としてワークステーション等
の上に構築し、その設計システムの評価を行なうことが
多くなされている。このようなシミュレータとして、例
えば、文献『西ケ谷岳、伊藤直人、井手敏博、平山昌
弘、伯田晃著、「通信エージェントによるネットワーク
モデルの一考察」、電子情報通信学会技術研究報告Vo
l.91、No.455、SSE91−124(199
2年)』に記載されたようなオブジェクト指向をベース
としたものがある。
【0003】このようなシミュレータでは、システムの
各構成要素毎にオブジェクトを作成し、各オブジェクト
がメッセージの受信によって自己に係るタスク(又はプ
ロセス)の動作を行なうものであった。例えば、図2に
示すように、いわゆるOS(オペレーティングシステ
ム)1の管理下でオブジェクトOBJaはメッセージを
受信したときにタスクを実行し、タスク実行後にOS1
の管理下でメッセージを次のオブジェクトOBJbに送
信し、このメッセージの受信によりオブジェクトOBJ
bがタスクを実行し、タスク実行後にOS1の管理下で
メッセージを次のオブジェクトOBJcに送信し、以
下、このようなメッセージの送受信及びタスクの実行を
順次進めていく。
【0004】ところで、各オブジェクトが相当するシミ
ュレーション対象システム(例えば通信システム)の各
構成要素は、実際上、ある時点をとらえて見た場合、並
列に動作することが多い。しかしながら、オブジェクト
指向をベースとしたシミュレータでは、上述のように、
各オブジェクトのタスク(そのオブジェクトを動作させ
る実態となるタスク)をシリアルにスイッチングしてい
るので、すなわち、本来、並列に実行される動作をも直
列に動作させているので、動作時に必要な情報(メッセ
ージ)がすれ違っている等の不都合が生じていた。
【0005】そこで、複数のオブジェクトのタスク処理
を、全体として擬似的に並列に動作させるようなシミュ
レーション方法も既に考えられている。
【0006】第1に、時間を基準として全オブジェクト
を並列に動作させるために、クロック用メッセージを全
オブジェクトに送信して各オブジェクトがその時刻に応
じたタスク処理を実行するようにすることが考えられて
いる。第2に、同一時刻に係る複数のオブジェクトのタ
スク処理を時分割によるスイッチングによって順次実行
することが考えられている。第3に、各オブジェクトに
実行優先順位を設定し、各オブジェクトのタスク処理を
実行優先順位に従って時分割でスイッチングすることに
より、全体として並列動作を実現する方法が考えられて
いる。
【0007】
【発明が解決しようとする課題】しかしながら、第1の
擬似的なオブジェクト並列実行方法では、各オブジェク
トにおいてクロック用メッセージ以外のメッセージのキ
ューイングによってクロック用メッセージの受信が影響
を受け、各オブジェクトでクロックの基準が異なってし
まうことがあり、同一時刻の完全なる並列動作が困難で
あるという問題がある。
【0008】この点、同一時刻に係る複数のオブジェク
トのタスク処理を時分割によるスイッチングによって実
行する第2の擬似的なオブジェクト並列実行方法の方が
好ましい。しかし、この第2の擬似的なオブジェクト並
列実行方法では、先に実行されたオブジェクトのタスク
の結果が、同一時刻に並列で実行されるため本来は影響
を受けないはずの他のオブジェクトのタスク処理に影響
を与えるという不都合を生じることがある。すなわち、
同一時刻の並列動作であるためスイッチングの順番設定
に無関係であるシミュレーション結果が、スイッチング
の順番の設定の仕方に影響されることも生じていた。
【0009】例えば、図3に示すような4個のノードN
OD1〜NOD4で構成されているネットであって、こ
のノード順でデータが巡回するリング状ネットワークを
シミュレーション対象とし、各ノード毎にオブジェクト
を形成し、各オブジェクトにタスクを1個ずつ割り当て
たとする。また、各オブジェクトが面数1のFIFOキ
ューを有し、タスクはFIFOキューを1回シフトする
動作を行ない、このシフト時にFIFOキューにデータ
フレームが入っていた場合にデータフレームが送信され
ると同時にキューがクリアされて次のデータフレームを
受信できる状態になり、FIFOキューにデータフレー
ムが入っていない場合に1回シフトするとなにも送信さ
れないとする。そして、1秒間に各オブジェクトのタス
ク処理を時分割で順次行なうとし、所定時間経過したと
きの網内で受信された単位時間当りのデータフレームの
ビット数をシミュレーション結果(評価対象:網内スル
ープット)とする。さらに、初期状態においては、ノー
ド(オブジェクト)NOD1にデータフレームが格納さ
れ、他のノードNOD2〜NOD4が空き状態であった
とする。
【0010】まず、同一時刻におけるタスクのスイッチ
ングがNOD4−NOD3−NOD2−NOD1の順で
行なわれる場合を考える。
【0011】この場合、最初の1秒間において、ノード
NOD4は空き状態であるので何も処理せず、ノードN
OD3及びNOD2も同様に何もせず、最後のタスクス
イッチングによるノードNOD1はノードNOD2にデ
ータフレームを転送する。次の1秒間において、ノード
NOD4及びNOD3は空き状態であるので何も処理せ
ず、ノードNOD2はノードNOD3にデータフレーム
を転送し、ノードNOD1は空き状態であるので何も処
理しない。以下、同様にして、各1秒間において、4個
のノード中1個のノードが次のノードへのデータフレー
ムの転送を行ない、他のノードはなんらの動作も実行し
ない。
【0012】次に、同一時刻におけるタスクのスイッチ
ングがNOD1−NOD2−NOD3−NOD4の順で
行なわれる場合を考える。
【0013】この場合、最初の1秒間において、ノード
NOD1はノードNOD2にデータフレームを転送し、
これによりノードNOD2はデータフレームを有するの
でノードNOD3にデータフレームを転送し、同様に、
ノードフレームNOD3及びNOD4も次のノードNO
D4及びNOD1にデータフレームを転送する。それ以
降の各時刻(計時単位を1秒とする)においても、全て
のノードNOD1〜NOD4がデータフレームの転送動
作を行なう。
【0014】従って、第2の擬似的なオブジェクト並列
実行方法では、タスクのスイッチング順番の選定によっ
て異なるシミュレーション結果となることがある。
【0015】かかる不都合は、各オブジェクトのタスク
処理に実行優先順位を設定し、各オブジェクトのタスク
処理を実行優先順位に従ってスイッチングする第3の擬
似的なオブジェクト並列実行方法では、実行優先順位の
設定のために生じない。
【0016】しかし、第3の擬似的なオブジェクト並列
実行方法においては、対象システムに応じて、または、
処理状況に応じて、実行優先順位を定めなければならな
いという問題があり、優先順位が低いオブジェクトが処
理状況によっては実行されないことも生じて並列実行性
が低下するという問題がある。
【0017】複数のオブジェクトの並列動作が必要なシ
ステムは、シミュレータ以外にも存在するが、このよう
なシステムでも上記と同様な問題が生じている。
【0018】本発明は、以上の点を考慮してなされたも
のであり、同一時刻に係る複数のオブジェクトのタスク
処理を時分割で順次起動して擬似的に並列処理を実行さ
せる際に、タスク処理に優先順位を設けることなく、先
に起動されたオブジェクトの処理が他のオブジェクトの
同一時刻のタスク処理に影響を与えることを防止でき、
並列処理を正確に実行できるオブジェクト並列実行方法
を提供しようとしたものである。
【0019】
【課題を解決するための手段】かかる課題を解決するた
め、本発明においては、同一時刻に係る複数のオブジェ
クトのタスク処理を時分割によるスイッチングによって
擬似的に並列に実行するオブジェクト並列実行方法にお
いて、シリアルな動作のオペレーティングシステムと並
列動作が必要なオブジェクト群との間に介在する、各オ
ブジェクトに係る第1及び第2のキューを管理する直並
列実行変換部を設けた。そして、直並列実行変換部が、
同一時刻に係る複数のオブジェクトのタスク処理を時分
割で順次起動すると共に、起動するオブジェクトに係る
第2のキューが存在する場合にはそのオブジェクトにメ
ッセージを引き渡し、タスク処理が起動されたオブジェ
クトから他のオブジェクトへ転送するメッセージが与え
られたときには、転送先オブジェクトに係る第1のキュ
ーにキューイングし、ある時刻における全てのオブジェ
クトのタスク処理を実行させたときには、第1のキュー
から第2のキューへの移送処理を行ない、その後に次の
時刻の処理に進むことを特徴とする。
【0020】
【作用】本発明において、シリアルな動作のオペレーテ
ィングシステムと並列動作が必要なオブジェクト群との
間に介在させた直並列実行変換部が、同一時刻に係る複
数のオブジェクトのタスク処理を時分割で順次起動する
ことで擬似的に並列処理を実現する。
【0021】ここで、同一時刻になされる並列処理であ
れば、先に起動されたオブジェクトの処理が、他のオブ
ジェクトの同一時刻のタスク処理に影響を与えることは
本来有り得ない。しかし、各オブジェクトのタスク処理
を単純に所定順番で起動すると、先に起動されたオブジ
ェクトの処理が他のオブジェクトの同一時刻のタスク処
理に影響を与えることも生じてしまう。
【0022】そこで、本発明においては、オブジェクト
間のメッセージ転送には直並列実行変換部を介在させる
こととし、また、直並列実行変換部が各オブジェクトに
係る第1及び第2のキューを管理することとした。
【0023】そして、直並列実行変換部は、起動するオ
ブジェクトに係る第2のキューが存在する場合にはその
オブジェクトにメッセージを引き渡し、タスク処理が起
動されたオブジェクトから他のオブジェクトへ転送する
メッセージが与えられたときには、転送先オブジェクト
に係る第1のキューにキューイングし、ある時刻におけ
る全てのオブジェクトのタスク処理を実行させたときに
は、第1のキューから第2のキューへの移送処理を行な
い、その後に次の時刻の処理に進む。
【0024】すなわち、直並列実行変換部に2種類のキ
ューを設け、各オブジェクトから他のオブジェクトへ転
送されるメッセージを一時的に保留し、この保留に係る
処理段階(時刻)を2種類のキューによって、一つ前の
処理の段階と次の処理の段階とに明確に区別した。
【0025】これにより、タスク処理のスイッチングに
優先順位を設けることなく、先に起動されたオブジェク
トの処理が他のオブジェクトの同一時刻のタスク処理に
影響を与えることを防止できる。
【0026】
【実施例】以下、本発明を、オブジェクト指向をベース
としたシミュレータに適用した一実施例を図面を参照し
ながら詳述する。
【0027】この実施例のシミュレータも、ワークステ
ーションやパーソナルコンピュータ等によって実現さ
れ、そのソフトウェア構成は図4に示す通りである。
【0028】図4において、この実施例のシミュレータ
は、OS(オペレーティングシステム)1と、複数のオ
ブジェクトobjA、objB、…でなるシミュレーシ
ョンモデル2とに加えて、直並列実行変換部(オブジェ
クトパラレルドライバ)3を備える。
【0029】シミュレーションモデル2は、シミュレー
ション対象システムの動作単位(部品単位)毎にオブジ
ェクトobjA、objB、…を生成したものであり、
各オブジェクトobjA、objB、…はそれぞれキュ
ー(以下、Tキューと呼ぶ)を有する。この実施例の場
合、メッセージを授受する2個のオブジェクト間で直接
メッセージを授受するのではなく、直並列実行変換部3
を介してメッセージを授受する。
【0030】直並列実行変換部3は、これ自体が1個の
オブジェクト(タスク)であり、シリアルな動作のOS
1とパラレルな動作が必要なシミュレーションモデル2
との間に介在して、シミュレーションモデル2における
複数のオブジェクトobjA、objB、…の並列実行
性を補償するものである。直並列実行変換部3は、ある
オブジェクトから送信されたメッセージを一時的に保留
して送信先オブジェクトに引渡すことにより、一つ前の
処理の段階と次の処理の段階とを分割し、全てのオブジ
ェクトに対してある処理段階における並列実行性を補償
するものである。この補償動作は、全てのオブジェクト
に共通クロックを供給することに相当するものである。
【0031】直並列実行変換部3は、シミュレーション
モデル2の構造に関する情報を有すると共に、図5に詳
細を示すオブジェクト管理エリア3Aを有し、また、こ
のオブジェクト管理エリア3Aの1個の所定エリアを特
定するオブジェクト実行ポインタ(オブジェクト登録番
号で指定)3Bを記憶しており、さらに、上述したよう
に、各オブジェクトからのメッセージ3Cを図6に示す
フォーマットに従ってチェイン状に一時的に保留してい
る。
【0032】直並列実行変換部3は、あるオブジェクト
から送信されたメッセージ3Cを、メッセージチェイン
のテールに繋げる。直並列実行変換部3の中では、各メ
ッセージは、図6に示すように、次のメッセージの先頭
アドレス3c1と、メッセージの送信先オブジェクトに
係る登録番号(図5参照)3c2と、メッセージの送信
元オブジェクトに係る登録番号(図5参照)3c3と、
データ3c5と、メソッド番号3c4とからなるフォー
マットに従っている。
【0033】オブジェクト管理エリア3Aは、シミュレ
ーションモデル2における全てのオブジェクトに対する
管理エリアを有し、各管理エリアは、通し番号でなるオ
ブジェクト登録テーブル3Dと、オブジェクトのアドレ
ス3a3と、そのオブジェクトがメッセージの送信先で
ある場合のメッセージチェインにおけるメッセージの待
機状態を表す、メッセージのライトアドレス及びリード
アドレスの組でなるTキュー3a1及びRキュー3a2
とから構成されている。Tキュー3a1及びRキュー3
a2において、ライトアドレスは、そのオブジェクトに
係るメッセージチェインの1以上のメッセージのうち最
新書き込まれたものを指示し、一方、リードアドレス
は、そのオブジェクトに係るメッセージチェインの1以
上のメッセージのうち最古に書き込まれたもの(読出時
の最初のメッセージ)を指示している。従って、ライト
アドレスとリードアドレスとが異なっていることがあ
る。
【0034】なお、通常のオブジェクト指向をベースと
したプログラム等では、各オブジェクトが取り扱うキュ
ーは1種類であるが、この実施例では、直並列実行変換
部(オブジェクト)3が取り扱うキューをTキュー3a
1及びRキュー3a2の2種類とすることで、一つ前の
処理段階と次の処理段階とを明確に分割し、擬似的な並
列動作を実現している。
【0035】図1は、直並列実行変換部3の処理を示す
フローチャートである。以下、この図1を主に参照しな
がら直並列実行変換部3の処理を説明する。
【0036】まず、直並列実行変換部3は、シミュレー
ション動作を実行する時間を規定するクロックの終了値
を設定する(ステップ100)。なお、クロックの値自
体は、ある時刻を表している。
【0037】次に、直並列実行変換部3は、ユーザが定
義した初期設定ルーチンをコールし、部品単位に形成さ
れているオブジェクトを直並列実行変換部3内に生成さ
せたり、オブジェクトの総数をカウントしたり、各オブ
ジェクト間の接続等の処理を行なってシミュレーション
モデル2の構成を内部に登録する(ステップ101)。
【0038】シミュレーション対象システムが交換シス
テムであれば、端末、交換ノード、伝送路、測定データ
管理部等の全体又はその要素毎に作成したプログラムル
ーチンのアドレスを直並列実行変換部3内部に設定する
ことでオブジェクトを登録し、また、そのようなプログ
ラムルーチン(オブジェクト)の接続関係を設定するこ
とで網接続状態を直並列実行変換部3内部に登録する。
【0039】このようなプログラムルーチン(オブジェ
クト)は、例えば、C言語の場合、関数として作成し、
1回コールすることで1ステップ動作とするようにし、
また、データ部分と手続き部分とで構成し、データ部分
は関数内でメモリアロケーション関数を用いて領域の割
当を行ない、手続き部分はswitch文(状態分岐及
びメソッド分岐)とサブルーチンとで記述するようにす
れば良い。例えば、idA=create(objA,
data,class1)によって、オブジェクトアド
レスidAを有するオブジェクト登録番号objAのし
かもクラスがクラス定義関数class1で定まってい
るオブジェクトが生成登録される。オブジェクトデータ
は、オブジェクトアドレスidAによりアクセスされ
る。このようなオブジェクトの生成登録動作によって、
図7に示すように、上述したオブジェクト管理エリア3
Aにこのオブジェクトに係る管理エリアが用意される。
【0040】例えば、意図するシミュレーションモデル
2が、図8に示すような広帯域ISDNにおけるコネク
ションレスサービスに関する場合、この図8におけるト
ランスレータ、ルーチングスイッチ、クロック等を独立
したオブジェクトにより実現して部品として用意してお
き、ヒューマンマシンインタフェース(HMI)画面上
にメニューとして表示し、マウスクリックにより選択登
録される。なお、これらオブジェクトをグルーピングす
ることでより大きなオブジェクトを形成して直並列実行
変換部3に登録するようにしても良い。
【0041】この図8のシミュレーションモデル例にお
いて、端末は、送信時には、ランダム時間間隔メッセー
ジ発生部201が発生したメッセージをメッセージ分解
部202がセルに分解し、そのセルにタイムスタンプ書
込み部203が送信時間を書き込んでFIFO送信キュ
ー204に蓄積する動作を行なう。また、受信時には、
FIFO受信キュー205に蓄積されたセルがクロック
206によって取り出され、タイムスタンプ読出し部2
07によって現在の時間との差分から遅延時間が計算さ
れ、画面表示用FIFOキュー208に蓄積された後、
メッセージ組立部209によりメッセージに組み立てら
れて表示部210により画面表示される動作を行なう。
【0042】また、この図8のシミュレーションモデル
例において、各交換ノード(図8上では1個を示してい
る)は、全てのFIFO受信キュー211に蓄積された
セルをクロック212で読み出して処理系のFIFOキ
ュー213に与え、この処理系のFIFOキュー213
に蓄積されたセルがクロック214によって読み出さ
れ、ルーチングスイッチ215に与えられ、トランスレ
ータ216によってルーチング先のキュー217がどこ
であるかが翻訳され、これに応じてルーチングスイッチ
215が送信を行ない、送信先のFIFOキュー217
に蓄積する動作を行なう。なお、図8では、交換ノード
を1個で示したが、モデル内には複数の交換ノードが設
定される。
【0043】以上のようなそのときのシミュレーション
モデル2に所望の動作を実行させるように、ステップ1
01によって、オブジェクト登録テーブル3Dへオブジ
ェクト登録番号が登録され、また、オブジェクト管理エ
リア3Aが生成される。
【0044】その後、直並列実行変換部3は、クロック
カウンタを初期化して時刻を開始時刻に設定してシミュ
レーション動作に進む(ステップ102)。
【0045】シミュレーション動作においては、まず、
オブジェクト実行ポインタ3Bを初期化する(ステップ
103)。例えば、オブジェクト登録番号が最も小さい
オブジェクト(登録番号0)を実行対象とする。そし
て、そのオブジェクトに係る状態分岐処理を行なった
後、オブジェクト実行ポインタ3Bが指示していオブジ
ェクト管理エリア3AからRキューをポップする(ステ
ップ104、105)。その後、Rキューの内容に応じ
てメソッド分岐処理を行なう(ステップ106)。オブ
ジェクト実行ポインタ3Bが指示しているオブジェクト
処理の実行が不要であれば(少なくともRキューが空き
状態であることが要件)、ステップ109に進む。Rキ
ューにメッセージ情報が挿入されていたならば、またR
キューにメッセージ情報が挿入されていないが現時点で
処理対象のオブジェクトのメソッド処理が必要ならば、
ユーザが定義した分岐されたメソッド処理を実行する
(ステップ107)。
【0046】すなわち、図9に示すように、オブジェク
ト実行ポインタ3Bが指示している管理エリアのオブジ
ェクトアドレスを取り出して、例えばメソッド処理の中
のメッセージ送信文でそのオブジェクトのTキューにプ
ッシュする(ステップ108)。このメソッド処理の
際、Rキューに情報が挿入されていないときには、その
オブジェクトのメソッド処理を終了し、他方、Rキュー
にメッセージ情報が挿入されていたならば、そのRキュ
ーから1個だけメッセージ情報を取り出し、そのオブジ
ェクトはメソッド処理を実行し、実行終了後にメッセー
ジ送信により返答する。オブジェクトをコールする際の
メッセージ送信文は、例えば、C言語では、送信先オブ
ジェクト登録番号objX、メソッド番号metho
d、メッセージ情報の先頭アドレスadr(メモリアロ
ケーション関数を用いて領域が割り当てられている)を
変数として含むresult=sendmsg(obj
X,method,adr);であり、オブジェクトが
受信を報告するメッセージ受信文は、例えば、resu
lt=recvmsg(&method,adr);で
ある。
【0047】オブジェクトは、タスクを実行した結果、
他のオブジェクトにメッセージを送信する必要があれ
ば、図10に示すように、オブジェクトは、送信先オブ
ジェクトを指定するパラメータ(例えばオブジェクト登
録番号)で直並列実行変換部3をコールしてメッセージ
を送信する。このとき、直並列実行変換部3は、受信メ
ッセージを図6のフォーマットに従うようにしてTキュ
ーのメッセージチェインのテールに繋げると共に、送信
先オブジェクトに係るオブジェクト管理エリア3AのT
キューのライトポインタにメッセージチェインの先頭ア
ドレスを登録する(ステップ107の一部)。
【0048】このように、直並列実行変換部3において
は、オブジェクトからメッセージを受信した際には(オ
ブジェクトから見てメッセージの送信時には)、Tキュ
ーだけを操作し、Rキューをなんら操作しない。すなわ
ち、各オブジェクトの同一時刻のタスク処理を順次起動
している際においては、直並列実行変換部3からオブジ
ェクトに対するメッセージの送信時にはRキューだけが
変化し、オブジェクトから直並列実行変換部3に対する
メッセージの送信時にはTキューだけが変化し、第1の
オブジェクトから第2のオブジェクトへのメッセージ送
信時に直並列実行変換部3が介在しても、Rキューが操
作されないので、このクロックが指示する時刻で第1の
オブジェクトが送信したメッセージを第2のオブジェク
トに与えることはない。
【0049】以上のように、直並列実行変換部3は、ユ
ーザが定義したメソッド処理が終了すると、ステップ1
09に進む。
【0050】ステップ109では、オブジェクト実行ポ
インタ3Bを1インクリメントして次の登録番号を有す
るオブジェクトを実行対象に変更する。そして、オブジ
ェクト実行ポインタ3Bの値とオブジェクト総数とを大
小比較し、全てのオブジェクトに対して、ステップ10
4〜108でなる処理が終了したか否かを確認し(ステ
ップ110)、全てのオブジェクトに対する処理が終了
していないときは、ステップ104に戻って、新たに実
行対象となったオブジェクトに対してステップ104〜
108でなる処理を行なう。
【0051】このようにして、そのときのクロックカウ
ンタの値が規定する時刻における全てのオブジェクトの
タスク処理を実行させ、ステップ110で肯定結果を得
ると、直並列実行変換部3は、オブジェクト実行ポイン
タ3Bを再び初期値(0)にする(ステップ111)。
そして、直並列実行変換部3は、図11に示すように、
オブジェクト実行ポインタ3Bが指示しているオブジェ
クト管理エリア3AにおけるTキューの内容を同一管理
エリアのRキューのテールに移す(ステップ112)。
なお、各オブジェクトから複数のメッセージ送信がある
場合には、Tキューに係るメッセージも複数あり、その
情報が全てRキューに移送される。
【0052】このようにして、直並列実行変換部3は、
あるオブジェクトについてTキューからRキューへの移
送操作が終了すると、オブジェクト実行ポインタ3Bを
1インクリメントして次の登録番号を有するオブジェク
トを対象とする(ステップ113)。そして、直並列実
行変換部3は、オブジェクト実行ポインタ3Bの値とオ
ブジェクト総数とを大小比較し、全てのオブジェクトに
対して、ステップ112のTキューからRキューへの移
送操作が終了したか否かを確認し(ステップ114)、
全てのオブジェクトに対する処理が終了していないとき
は、ステップ112に戻って、新たに対象となったオブ
ジェクトについてTキューからRキューへの移送操作を
行なう。
【0053】このようにして、そのときのクロックカウ
ンタの値が規定する時刻を変更することなく、全てのオ
ブジェクトについてTキューからRキューへの移送操作
を実行させ、ステップ114で肯定結果を得ると、直並
列実行変換部3は、クロックカウンタを1インクリメン
トする(ステップ115)。そして、クロックカウンタ
の値を終了値と大小比較することにより、シミュレーシ
ョン動作させる時間を越えたか否かを確認し(ステップ
116)、越えていない場合は、ステップ103に戻っ
て、クロックカウンタの値が指示している次の時刻の処
理を行なう。一方、実行された時間が規定されているシ
ミュレーション動作時間を越えると、直並列実行変換部
3はシミュレーション動作を終了させるための各種の処
理(ガーベージ処理)を実行して一連の処理を終了する
(ステップ117)。
【0054】以上のように、上記実施例によれば、オブ
ジェクト間のメッセージの授受を直並列実行変換部を介
して行なうと共に、直並列実行変換部内でTキュー及び
Rキューの2種類のキューを設け、オブジェクトからの
メッセージを受信したときにはTキューだけ操作し、同
一時刻に係る全てのオブジェクトのタスク処理が終了し
たときにTキューからRキューへの移送を行ない、次の
時刻以降でオブジェクトがメッセージを取り出すことが
できるようにしたので、あるオブジェクトがその時刻の
処理で送信が必要になったメッセージを、他のオブジェ
クトがその時刻で受信してそれに応じた処理を行なうこ
とを防止でき、すなわち、時刻が明確に切り分けられ、
オブジェクトの処理実体であるタスクが現在時刻を越え
た処理を行なうことを防止できる。その結果、シミュレ
ーション結果として正確なものを得ることができる。
【0055】このように時刻が切り分けられて各オブジ
ェクトがその時刻のタスク処理を正確に行なうので、所
望のシミュレーション結果として、伝搬遅延時間等の時
間情報を設定することができる。このことは、シミュレ
ーションモデルが交換システム等のトラフィックに係る
ものである場合には、有用な結果が得られることを意味
する。
【0056】以上のように、この方法によれば、時刻が
明確に切り分けられ、複数のオブジェクトの並列動作が
正確になされるので、各オブジェクトのタスク処理に優
先順位を設定することは不要である。
【0057】上述の「発明が解決しようとする課題」の
項の説明で用いた図3に示すリング状ネットワーク(シ
ミュレーションモデル)に対して、上記実施例に従っ
て、シミュレーションを実行した場合を考えて見る。
【0058】なお、ここでも、1秒間に各オブジェクト
のタスク処理を時分割で順次行なうとし、所定時間経過
したときの網内で送信された単位時間当りのビット数を
シミュレーション結果(評価対象:網内スループット)
とし、初期状態においては、ノード(オブジェクト)N
OD1にデータフレームが格納され、他のノードNOD
2〜NOD4が空き状態であったとする。
【0059】まず、同一時刻におけるタスクのスイッチ
ングがNOD4−NOD3−NOD2−NOD1の順で
行なわれる場合を考える。
【0060】この場合、最初の1秒間において、ノード
NOD4は空き状態であるので何も処理せず、ノードN
OD3及びNOD2も同様に何もせず、最後のタスクス
イッチングによるノードNOD1はノードNOD2にデ
ータフレームを転送する。ノードNOD2へのデータフ
レームの転送は、直接には直並列実行変換部3になさ
れ、まずはTキューにキューイングされる。このように
して、各ノードNOD4、NOD3、NOD2、NOD
1のタスク処理を一巡させた後に、TキューからRキュ
ーへの移送がなされ、ここでは、直並列実行変換部3内
において、ノードNOD2について、TキューからRキ
ューへの移送がなされる。
【0061】次の1秒間において、ノードNOD4及び
NOD3は空き状態であるので何も処理せず、ノードN
OD2はRキューに基づいてデータフレームを取り出し
た後、ノードNOD3にデータフレームを転送し、ノー
ドNOD1は空き状態であるので何も処理しない。ここ
でも、ノードNOD2からノードNOD3へのデータフ
レームの転送は、直接には直並列実行変換部3になさ
れ、まずはTキューにキューイングされる。この時刻に
おいても、各ノードNOD4、NOD3、NOD2、N
OD1のタスク処理を一巡させた後に、TキューからR
キューへの移送がなされ、ここでは、直並列実行変換部
3内において、ノードNOD3について、Tキューから
Rキューへの移送がなされる。
【0062】以下、同様にして、各1秒間において、4
個のノード中1個のノードが次のノードへのデータフレ
ームの転送を行ない、他のノードはなんらの動作も実行
しない。
【0063】次に、同一時刻におけるタスクのスイッチ
ングがNOD1−NOD2−NOD3−NOD4の順で
行なわれる場合を考える。
【0064】この場合、最初の1秒間において、ノード
NOD1はノードNOD2にデータフレームを転送す
る。この転送動作は、直並列実行変換部3のTキューへ
の登録であり、ノードNOD2に係るRキューは空き状
態であるので、ノードNOD2は何も処理せず、また、
ノードNOD3及びNOD4も空き状態であるので何も
処理しない。この時刻において、各ノードNOD1、N
OD2、NOD3、NOD4のタスク処理を一巡させた
後に、TキューからRキューへの移送がなされ、ここで
は、直並列実行変換部3内において、ノードNOD2に
ついて、TキューからRキューへの移送がなされる。
【0065】次の1秒間において、ノードNOD1は空
き状態であるので何も処理せず、ノードNOD2はRキ
ューに基づいてデータフレームを取り出した後、ノード
NOD3にデータフレームを転送する。このノードNO
D3への転送動作は、直並列実行変換部3のTキューへ
の登録であり、ノードNOD3に係るRキューは空き状
態であるので、ノードNOD3は何も処理せず、また、
ノードNOD4も空き状態であるので何も処理しない。
この時刻においても、各ノードNOD1、NOD2、N
OD3、NOD4のタスク処理を一巡させた後に、Tキ
ューからRキューへの移送がなされ、ここでは、直並列
実行変換部3内において、ノードNOD3について、T
キューからRキューへの移送がなされる。
【0066】以下、同様にして、各1秒間において、4
個のノード中1個のノードが次のノードへのデータフレ
ームの転送を行ない、他のノードはなんらの動作も実行
しない。
【0067】以上のように、上記実施例を適用した場合
には、従来方法とは異なり、タスクのスイッチング順番
の設定の仕方によってシミュレーション結果が異なるよ
うなことは発生しない。
【0068】なお、上記実施例においては、本発明をシ
ミュレータに適用したものを示したが、本発明の適用対
象はこれに限定されず、並列動作が必要なオブジェクト
が複数ある処理システムに適用することができる。
【0069】本発明は、シリアルな動作のOSとパラレ
ルな動作が必要なオブジェクト群との間に介在して、オ
ブジェクト群の並列実行性を補償する直並列実行変換部
を設けたこと、この直並列実行変換部に2種類のキュー
を設けて各オブジェクトから送信されたメッセージを一
時的に保留して対象オブジェクトに引渡す際に一つ前の
処理の段階と次の処理の段階とを明確に分割したことに
特徴を有するものであり、このような特徴を実現できる
ならば、直並列実行変換部におけるキューのデータ構造
やチェイン化されたメッセージのフォーマットは、上記
実施例のものに限定されるものではない。
【0070】
【発明の効果】以上のように、本発明によれば、シリア
ルな動作のOSとパラレルな動作が必要なオブジェクト
群との間に介在して、オブジェクト群の並列実行性を補
償する直並列実行変換部を設け、この直並列実行変換部
に2種類のキューを設けて、各オブジェクトから他のオ
ブジェクトへ転送されるメッセージを一時的に保留する
際に保留段階(時刻)を一つ前の処理の段階と次の処理
の段階とで明確に区別するようにしたので、同一時刻に
係る複数のオブジェクトのタスク処理を時分割で順次起
動して擬似的に並列処理を実行させる際に、タスク処理
に優先順位を設けることなく、先に起動されたオブジェ
クトの処理が、他のオブジェクトの同一時刻のタスク処
理に影響を与えることを防止でき、並列処理を正確に実
行させることができる。
【図面の簡単な説明】
【図1】実施例の直並列実行変換部の処理フローチャー
トである。
【図2】従来のオブジェクト指向をベースとしたシミュ
レータを示す説明図である。
【図3】従来の考えられる並列実行方法の欠点の説明図
である。
【図4】実施例のシミュレータの構成を示す説明図であ
る。
【図5】そのオブジェクト管理テーブルの構成を示す説
明図である。
【図6】直並列実行変換部内部でのメッセージフォーマ
ットを示す説明図である。
【図7】オブジェクト管理テーブルにオブジェクトを登
録することの説明図である。
【図8】シミュレーションモデルの具体例を示すブロッ
ク図である。
【図9】直並列実行変換部のメッセージ受信を示す説明
図である。
【図10】直並列実行変換部からのメッセージ送信を示
す説明図である。
【図11】直並列実行変換部でのTキューからRキュー
への操作を示す説明図である。
【符号の説明】
1…オペレーティングシステム(OS)、2…シミュレ
ーションモデル、3…直並列実行変換部、3A…オブジ
ェクト管理エリア、3B…オブジェクト実行ポインタ、
3C…メッセージ、3D…オブジェクト登録テーブル、
objA、objB、objX…オブジェクト登録番
号、3a1…Tキュー、3a2…Rキュー。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 同一時刻に係る複数のオブジェクトのタ
    スク処理を時分割によるスイッチングによって擬似的に
    並列に実行するオブジェクト並列実行方法において、 シリアルな動作のオペレーティングシステムと並列動作
    が必要なオブジェクト群との間に介在する、各オブジェ
    クトに係る第1及び第2のキューを管理する直並列実行
    変換部を設け、 直並列実行変換部は、 同一時刻に係る複数のオブジェクトのタスク処理を時分
    割で順次起動すると共に、 起動するオブジェクトに係る第2のキューが存在する場
    合にはそのオブジェクトにメッセージを引き渡し、 タスク処理が起動されたオブジェクトから他のオブジェ
    クトへ転送するメッセージが与えられたときには、転送
    先オブジェクトに係る第1のキューにキューイングし、 ある時刻における全てのオブジェクトのタスク処理を実
    行させたときには、第1のキューから第2のキューへの
    移送処理を行ない、 その後に次の時刻の処理に進むことを特徴とするオブジ
    ェクト並列実行方法。
JP29036193A 1993-11-19 1993-11-19 オブジェクト並列実行方法 Pending JPH07141180A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29036193A JPH07141180A (ja) 1993-11-19 1993-11-19 オブジェクト並列実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29036193A JPH07141180A (ja) 1993-11-19 1993-11-19 オブジェクト並列実行方法

Publications (1)

Publication Number Publication Date
JPH07141180A true JPH07141180A (ja) 1995-06-02

Family

ID=17755043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29036193A Pending JPH07141180A (ja) 1993-11-19 1993-11-19 オブジェクト並列実行方法

Country Status (1)

Country Link
JP (1) JPH07141180A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101448861B1 (ko) * 2012-11-16 2014-10-13 한남대학교 산학협력단 동기적 메시지 기반 대량 병렬처리 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101448861B1 (ko) * 2012-11-16 2014-10-13 한남대학교 산학협력단 동기적 메시지 기반 대량 병렬처리 시스템

Similar Documents

Publication Publication Date Title
US4855906A (en) System for handling unsolicited messages from lower-tier controllers
US5428781A (en) Distributed mechanism for the fast scheduling of shared objects and apparatus
Jacobs et al. D-SOL; a distributed Java based discrete event simulation architecture
US6295518B1 (en) System and method for emulating telecommunications network devices
EP0561541A2 (en) A method of processing a program by parallel processing, and a processing unit thereof
CN1497442A (zh) 用于多结点处理控制系统的仿真系统
IL137085A (en) Method for effective utilizing of shared resources in computerized systems
Ball et al. RIG, Rochester's intelligent gateway: System overview
CN100588197C (zh) 一种网格模拟方法及其模拟器
CN114285695B (zh) 通信方法、装置、设备、系统和存储介质
CN105487403A (zh) 一种基于can的运动控制系统建立及其仿真建模方法
US20020052726A1 (en) Performance simulation apparatus, performance simulation method, and recording medium containing performance simulation program
CN116974765A (zh) 一种异构计算机的存储管理系统
JPH07141180A (ja) オブジェクト並列実行方法
US6370589B1 (en) Process for performing at least one test on at least one of the objects of an object-oriented program capable of running in parallel on a computer
Craessaerts et al. A Windows-based design environment for combine automation via CANbus
JPH10510082A (ja) 個々の抽象状態を基礎とする機械を各々が表す複数の相互接続された機能モジュールを具えるシステムを特定する方法およびそのようにして特定されたシステム
WO2020078945A1 (en) Neural network evaluation tool and method
JPH06161859A (ja) 分散共有資源管理方式
JP2001320386A (ja) 電子システム
Huang et al. Development of a virtual factory emulator based on three-tier architecture
EP0434158A2 (en) Methods of operating a data processing system, and data processing systems
Sang et al. A simulation testbed based on lightweight processes
JPH0690240A (ja) 多重伝送システム
Badeig et al. Contextual activation for agent-based simulation