JPH09114693A - プログラム開発支援装置及びプログラム実行装置 - Google Patents

プログラム開発支援装置及びプログラム実行装置

Info

Publication number
JPH09114693A
JPH09114693A JP7265803A JP26580395A JPH09114693A JP H09114693 A JPH09114693 A JP H09114693A JP 7265803 A JP7265803 A JP 7265803A JP 26580395 A JP26580395 A JP 26580395A JP H09114693 A JPH09114693 A JP H09114693A
Authority
JP
Japan
Prior art keywords
job
execution
procedure
task
execution order
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
JP7265803A
Other languages
English (en)
Inventor
Toshibumi Seki
俊文 關
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP7265803A priority Critical patent/JPH09114693A/ja
Publication of JPH09114693A publication Critical patent/JPH09114693A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 処理の並列性をできる限り保持しながらも逐
次テストの処理結果の再現性を保証すること。 【解決手段】 並行化装置13は,各ジョブの実行履歴
をタスク毎に分け、そのタスク内のジョブ毎の手続き間
の実行順序制約を求めるとともに、得られた順序制約と
解析装置8で得られた手続き間の依存関係からジョブ間
の実行順序制約ルール14を求める。逐次化制御手段1
5は、実行順序制約ルール14に従って並行プログラム
7をスケジューリングする。これにより、逐次実行時に
得られた正しい処理結果を維持しながらも、最終的な結
果に影響を与えない並列性を導入して動作可能とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のタスクがメ
ッセージを交換しながら並行に動作している並行/並列
/分散システムにおけるプログラム開発支援装置及びプ
ログラム実行装置に関する。
【0002】
【従来の技術】近年の半導体集積回路技術の進歩によ
り、複雑なプロセッサ及び大容量のメモリが小型かつ低
価格で実現できるようになり、多数のプロセッサからな
る並列処理システムや分散処理システムが実用化されて
いる。このようなハードウェアに対しては、専用のプロ
グラム、即ち並列プログラムや分散処理プログラム等
(以下、「並行プログラム」という。)を用いなければ
ならない。従って、かかる並行プログラムをいかに効率
よく開発するかは、優れたアルゴリズムを検討する場合
と同様に、重要な課題となっている。
【0003】ところで、プログラム開発においては、プ
ログラム中のエラーを見つけ修正すること、即ち、デバ
ッグと呼ばれる開発工程がプログラム開発の効率に大き
く影響する。
【0004】しかしながら、並行プログラムの開発にお
いては、逐次プログラムの開発においては遭遇すること
のない、並行プログラム特有の問題を考慮する必要があ
る。即ち、この並行プログラム特有の問題とは、並行プ
ログラムを構成する各プロセスは、各プロセス間におけ
る相互作用のタイミングによりさまざまな振る舞いをす
る可能性があるため、並行プログラム全体が正しく動作
しないということである。このような問題は、並行プロ
グラムの性質に基づくものであり、これを一般に「非決
定性」と呼んでいる。
【0005】例えば、図19に示す並列プログラムがあ
ったとする。同図において、プロセスP1は、共有メモ
リCMの初期設定initを行うプロセス、プロセスP2
は、共有メモリCMから読み出しreadを行うプロセス、
プロセスP3は、共有メモリCMに書き込みwrite を行
うプロセスであることを示している。これらのプロセス
を並列処理システム等で動作させた場合、全部で3階乗
通りの動作の組み合わせがあることになる。通常、シス
テムの初期設定後、処理を開始するのであるから、今、
プロセスP1→P2→P3又はP1→P3→P2の順番
でプログラムが動作する場合に正しい結果が得られるの
ものとすると、残りの4通り、例えば、P2→P3→P
1は、初期化が最初に行われないため、明らかに正しい
結果が得られないことがわかる。同様に、1プロセス内
に複数の手続きが同時に動作する並行プログラムにおい
ても、手続き間の実行順序により正しい結果が得られな
い場合がある。
【0006】このようにプロセスの振る舞いに関する非
決定性は、並行プログラムを動作させる毎に、その時点
におけるシステムの状況等によって結果を異なったもの
にする。従って、この非決定性に関する問題を解決しな
い限り、その並行プログラムは、デバッグにおいてたと
え正常に動作することがあっても、常に、正常に動作す
るという保証はない。また、非決定性に関するバグは、
−般に、逐次プログラムにおけるバグを見つける場合よ
りも困難である。なぜなら、逐次プログラムにおいて
は、デバッグ時にプログラム中の全てのパスを実行する
ことによって動作を確認することができるのに対し、並
行プログラムにおいては、全てのパス、即ち各プロセス
中の全てのパスのみならず、プロセス相互間の振る舞い
をも考慮してパスを実行しなければならないからであ
る。即ち、上述した例のように、プロセスの数が少ない
場合にあっては、各プロセス相互間の振る舞いを把握す
ることは比較的容易であるが実際のプログラム開発にあ
ってはその数は膨大なものとなり、その組み合わせも膨
大なものとなるため、全ての振る舞いを把握することは
もはや不可能なものとなる。
【0007】以上のように、並行プログラム開発におけ
るデバッグは、逐次プログラム開発におけるデバッグに
比較して、非常に困難なものとなっていた。特に、プロ
グラム自体が巨大化した今日においては、このデバッグ
は一層困難なものとなっていた。
【0008】このように非決定性のある並行プログラム
を効率よくデバッグする方法として、逐次化という方法
がある。これは、本来並行して動作するタスクに実行の
制約を与え、1タスクずつ順次動作させ、プログラムの
動作解析を容易にするとともに、処理の再現性を与える
ものである。この逐次化手法の一つとして、ログ情報に
基づいて行う方法がある。そこでは、実行経過をログ情
報として保存し、以降のプログラムデバッグ時には、保
存したログ情報に従ってタスク群を動作させる。よっ
て、タスク群の非決定的動作はなくなり、ログ情報に指
示された順序に動作するようになり、プログラムの再現
性が実現される。
【0009】
【発明が解決しようとする課題】しかし、上述したログ
情報に基づく方法は、システムへの特定の入力毎にログ
情報を作成しデバッグする方法であり、複数の入力が同
時にシステムに投入される場合には、各入力に応じた処
理手順間に共有部分がない場合を除いて正しい動作を保
証できない。以下、ある入力に応じた処理全体の流れを
「ジョブ」と呼ぶことにする。即ち、複数のジョブが様
々なタイミングでシステムに投入される場合は、前記従
来技術の問題として指摘したプロセスをジョブと読み変
えたときと同様の問題が発生する。即ち、個々のジョブ
のみを実行した場合は正しく動作するが、複数のジョブ
を並行に動作させると処理タイミングによる共有メモリ
更新の不具合等が生じるとともに、処理の再現性も失わ
れる。よって、ジョブ間にもジョブの実行順序を規定し
逐次化を行うことが並行プログラムの効率的開発のため
に望まれる。但し、ジョブ実行順序の逐次化の際には、
単にジョブを逐次的に実行するのでは処理効率が悪いと
いう問題が生じる。このため、ジョブ間のプロセス間で
並行動作をさせても各ジョブの処理結果に影響を与えな
い部分については、並行動作可能とし、処理効率を高く
することが望まれる。複数のジョブを同時に実行させて
も個々に実行させた場合と同様の結果を得る技術とし
て、データベースのトランザクション制御(直列可能
性)を実現する技術があり、そこでは共有メモリに対し
てロックを行う方法やタイムスタンプを用いる方法、さ
らにスケジューラを用いる方法が存在する。
【0010】しかし、ロック法では複数プロセスからな
るジョブにおいて、複数の異なるプロセスが同一共有メ
モリをアクセスする場合には、ジョブを構成するプロセ
スの処理手順を予め考慮してプログラミングしなければ
ならず、他のジョブとプロセスを共有することが難し
く、さらに不十分な排他制御では処理の非決定性により
デバッグを困難にする問題がある。タイムスタンプ法で
はジョブを構成するプロセス数が多くなると処理がアボ
ートされる可能性が高くなり処理効率が悪くなる問題が
ある。さらにスケジューラを用いる方法は、ジョブ開始
時に一連の処理手順を全てスケジューラに通知しておか
なければ共有データの解放タイミングが分からないが、
ジョブの最初のプロセスが後続するプロセスの処理まで
考慮して一連の処理手順を与えることは難しいといった
問題がある。
【0011】本発明は、上記問題点を解決するため、複
数の手続きからなるタスクが互いにメッセージを交換し
ながら並行に動作する実行環境を有するシステムにあっ
て、処理の並列性をできる限り保持しながらも逐次テス
トの処理結果の再現性を保証することができる、即ち複
数ジョブの同時実行時にも逐次的にジョブを実行した場
合と同一の結果を効率よくかつ確実に得ることができる
プログラム開発支援装置及びプログラム実行装置を提供
することを目的としている。
【0012】
【課題を解決するための手段】かかる課題を解決するた
め、請求項1記載の本発明のプログラム開発支援装置
は、複数の手続きからなるタスクが互いにメッセージを
交換しながら並行に動作する実行環境を有するシステム
において、前記実行環境上で動作するタスク群の実行履
歴を取得するログ情報取得手段と、前記ログ情報取得手
段により取得されたログ情報を保存するログ情報記憶手
段と、前記ログ情報記憶手段に保存されているログ情報
をタスク毎に分割し、分割したログ情報を基に各タスク
のジョブ毎の実行順序制約を決定する並行化手段と、前
記各タスク毎に設けられ、前記決定された実行順序制約
を記憶する実行順序制約記憶手段と、前記各タスク毎に
設けられ、当該タスクに記憶された前記実行順序制約に
基づき当該タスクの実行を制御する逐次化制御手段とを
具備する。
【0013】請求項2記載の本発明のプログラム開発支
援装置は、複数の手続きからなるタスクが互いにメッセ
ージを交換しながら並行に動作する実行環境を有するシ
ステムにおいて、前記実行環境上で動作するタスク群の
実行履歴を取得するログ情報取得手段と、前記ログ情報
取得手段により取得されたログ情報を保存するログ情報
記憶手段と、前記システムへの入力に対する処理系列で
あるジョブ毎に一意に決定され、前記メッセージに付加
されるジョブ識別子を発番するジョブ識別子発番手段
と、前記ログ情報記憶手段に保存されているログ情報を
タスク毎に分割し、分割したログ情報を基に各タスクの
ジョブ毎の実行順序制約を決定する並行化手段と、前記
各タスク毎に設けられ、前記決定された実行順序制約を
記憶する実行順序制約記憶手段と、前記各タスク毎に設
けられ、前記ジョブ識別子発番手段により発番されたジ
ョブ識別子が付加されたメッセージを受信し、受信した
メッセージに付加されたジョブ識別子及び当該タスクに
記憶された前記実行順序制約に基づき当該タスクの実行
を制御する逐次化制御手段とを具備する。
【0014】請求項3記載の本発明のプログラム開発支
援装置は、請求項2記載のプログラム開発支援装置にお
いて、前記ジョブ識別子発番手段によって発番されるジ
ョブ識別子が、前記システムへの入力によって一意に決
定され、異なる処理系列を区別する処理系列識別子と、
この処理系列がシステム起動後の何回目の起動かを示す
起動回数とを有することを特徴とする。
【0015】請求項4記載の本発明のプログラム開発支
援装置は、請求項1または2記載のプログラム開発支援
装置において、前記並行化手段が、前記ログ情報記憶手
段に保存されているログ情報をタスク毎のログ情報に分
割し手続き実行順序制約を求める履歴分割部と、前記履
歴分割部によって分割された手続き実行順序制約を記憶
する分割履歴記憶部と、前記分割履歴記憶部に記憶され
た手続き実行順序制約を基にジョブ間の実行順序制約を
求める実行制約決定部とを有することを特徴とする。
【0016】請求項5記載の本発明のプログラム開発支
援装置は、請求項4記載のプログラム開発支援装置にお
いて、前記各タスク毎に設けられた前記実行順序制約記
憶手段が、それぞれ前記手続き実行順序制約と前記ジョ
ブ間実行順序制約とを記憶することを特徴とする。
【0017】請求項6記載の本発明のプログラム開発支
援装置は、請求項4記載のプログラム開発支援装置にお
いて、前記ジョブ間実行順序制約が、2つのジョブ間で
後着のジョブが処理を開始できる先行ジョブ内の手続き
を示す先行制約手続き名と、先行ジョブが全て終了しな
いと処理開始できない後着ジョブ内の手続きを示す起動
制約手続き名とを有することを特徴とする。
【0018】請求項7記載の本発明のプログラム実行装
置は、複数の手続きからなるタスクが互いにメッセージ
を交換しながら並行に動作する実行環境を有するシステ
ムにおいて、前記各タスクが、当該タスクのジョブ毎の
実行順序制約を実行順序制約記憶手段と、当該タスクに
記憶された前記実行順序制約に基づき当該タスクの実行
を制御する逐次化制御手段とを具備する。
【0019】請求項8記載の本発明のプログラム実行装
置は、複数の手続きからなるタスクが互いにメッセージ
を交換しながら並行に動作する実行環境を有するシステ
ムにおいて、前記システムへの入力に対する処理系列で
あるジョブ毎に一意に決定され、前記メッセージに付加
されるジョブ識別子を発番するジョブ識別子発番手段
と、前記各タスク毎に設けられ、当該タスクのジョブ毎
の実行順序制約を記憶する実行順序制約記憶手段と、前
記各タスク毎に設けられ、前記ジョブ識別子発番手段に
より発番されたジョブ識別子が付加されたメッセージを
受信し、受信したメッセージに付加されたジョブ識別子
及び当該タスクに記憶された前記実行順序制約に基づき
当該タスクの実行を制御する逐次化制御手段とを具備す
る。
【0020】請求項9記載の本発明のプログラム実行装
置は、請求項8記載のプログラム実行装置において、前
記ジョブ識別子発番手段によって発番されるジョブ識別
子が、前記システムへの入力によって一意に決定され、
異なる処理系列を区別する処理系列識別子と、この処理
系列がシステム起動後の何回目の起動かを示す起動回数
とを有することを特徴とする。
【0021】請求項10記載の本発明のプログラム実行
装置は、請求項7または8記載のプログラム実行装置に
おいて、前記各タスク毎に設けられた前記実行順序制約
記憶手段が、それぞれ手続き実行順序制約とジョブ間実
行順序制約とを記憶することを特徴とする。
【0022】請求項11記載の本発明のプログラム実行
装置は、請求項10記載のプログラム実行装置におい
て、前記ジョブ間実行順序制約が、2つのジョブ間で後
着のジョブが処理を開始できる先行ジョブ内の手続きを
示す先行制約手続き名と、先行ジョブが全て終了しない
と処理開始できない後着ジョブ内の手続きを示す起動制
約手続き名とを有することを特徴とする。
【0023】請求項12記載の本発明のプログラム実行
装置は、請求項7または8記載のプログラム実行装置に
おいて、前記逐次化制御手段が、前記受信したメッセー
ジに付加されたジョブ識別子のジョブが前記実行順序制
約記憶手段に記憶されているジョブか否かを判定するジ
ョブ実行判定手段と、記憶されていないと判定されたジ
ョブについてはタスクの実行を規制する手段とを具備す
る。
【0024】即ち、本発明では、ジョブ毎のプロセス間
実行順序ないしはプロセス内の手続き間の実行順序をロ
グ情報を基に規定し、それらジョブ毎のログ情報間の並
列性を抽出することによって、処理の並列性をできる限
り保持しながらも逐次テストの処理結果の再現性を保証
している。
【0025】
【発明の実施の形態】図1は本発明に係る並行プログラ
ム開発支援装置を実現するためのコンピュータシステム
の構成の一例を示す図である。
【0026】同図において、N台のプロセッサ11 、1
2 …、1N は、並行プログラムを同時に実行することが
できる。各プロセッサ11 、12 、・・・,1N は、I/O
インターフェース2を介して共有メモリ3及び周辺装置
とアクセスすることができる。 周辺装置は、入力装置
4、出力装置5及び外部記憶装置6から構成される。入
力装置4は、キーボードとポインティングデバイス等と
からなり、各種コマンドやデー夕の入力をすることでき
る。出力装置5は、CRTディスプレイ等からなり、ソ
ースプログラムやデバッグ状況に関する情報等をテキス
ト又はグラフィック表示することにより、ユーザに提示
することができる。ユーザは、これら入力装置4及び出
力装置5を用いて、対話的にコンピュータを操作するこ
とができる。外部記憶装置6は、磁気デイスクや光磁気
ディスク等からなり、ソースプログラムやデバッグ状況
に関する情報を書き込み又は読み出すことができるよう
になっている。
【0027】上記のように構成されたコンピュ−タシス
テムにおいて、各プロセッサ11 、12 …、1N には少
なくとも1個以上のタスクが例えば図2に示すように登
録されており、それぞれのタスクA、B、Cは並行/並
列に動作しており、互いにメッセージを交換しながら情
報交換して処理を行っている。
【0028】各タスクA、B、Cは、図3に示すよう
に、複数の手続き311 、312 …から成る処理手続き
部31と、手続き311 、312 …が共有する共有デー
タ32と、手続き311 、312 …の実行を制御する起
動制御部33とを備える。
【0029】起動制御部33は、他のタスクからメッセ
ージを受信すると、対応する手続き311 、312 …を
起動する。
【0030】このようなタスク実行環境において、本発
明に係る並行プログラム開発支援装置は、以下のような
構成よりなる。図4は本発明に係る並行プログラム開発
支援装置の構成例を説明するための図である。
【0031】同図において、並行プログラム7は、論理
的に並行に動くモデルに基づいて記述されたプログラム
である。複数のCPUから構成される並列計算機上で、
論理的にも物理的にも並行に動くプログラム(並列プロ
グラム)は、並行プログラムに含まれる。また、単一の
CPU上で物理的には逐次的に動く場合でも、マルチタ
スクシステムのように論理的に並行であれぱ、並行プロ
グラムに含まれる。
【0032】解析装置8は、並行プログラム7の各タス
ク内の手続き間の依存関係を解析する。即ち、手続き間
での共有データの存在有無や、共有データに対する読み
込み操作か書き込み操作かを解析する。
【0033】表示/入力装置9は、設計者がテスト対象
の並行プログラムヘデータを入力したり、入力データに
対応して一意に定まる処理系列(ジョブ)に付けられる
ジョブ識別子を入力する。さらに、表示/入力装置9
は、収集された実行履歴を表示し参照するための支援装
置である。ここでは、システムを割り込み等によって起
動させる処理に対しても、その割込みに対応するジョブ
識別子を与え、メッセージの形でシステム内に通知する
とする。
【0034】テスト支援装置10は、並行プログラム7
をテスト実行しデバッグする。この際、表示/入力装置
9から与えられた入力データとそれに付随するジョブ識
別子に応じた処理を行い、その実行履歴を実行履歴DB
12に保存する。さらに、実行履歴DB12に保存され
た処理順序に従って並行プログラム7の実行を制御しテ
スト実行を行う。
【0035】シミュレータ11は、テスト支援装置10
によって実行指示されたオブジェクトを実行する。
【0036】実行履歴DB12は、ジョブ毎にシミュレ
ータで実行されたタスク(手続き)の実行順序を保存す
る。
【0037】並行化装置13は、次の2つのフェ−ズか
らなる処理を行う。第1のフェ−ズでは、各ジョブの実
行履歴をタスク毎に分け、そのタスク内のジョブ毎の手
続き間の実行順序制約を求める。第2のフェーズでは、
フェーズ1で得られた順序制約と解析装置8で得られた
手続き間の依存関係からジョブ間の実行順序制約を求め
る。
【0038】実行順序制約ルール14は、並行化装置1
3によって生成されたタスク毎のジョブ実行順序を規定
する制約ルールである。実行順序制約ルール14は、後
述するように各タスク毎に保持される。
【0039】逐次化制御手段15は、実行順序制約ルー
ル14に従って並行プログラム7をスケジューリングす
る装置である。これにより、逐次実行時に得られた正し
い処理結果を維持しながらも、最終的な結果に影響を与
えない並列性を導入して動作可能とする。逐次化制御手
段15は、後述するように各タスク毎に設けられてい
る。
【0040】次に、本発明に係る並行プログラム開発支
援装置の詳細について説明する。
【0041】図5は本発明における各タスクを構成する
手続き構成例を示す。同図に示すように、例えばタスク
Αは4つの手続きから成り、手続き1は共有データに対
して書き込み操作をし、手続き2は共有データに対して
読み込み操作をし、手続き3は共有データに対して読み
書きの両方の操作をし、手続き4も共有データに対して
読み込み操作をする。以下同様にタスクBとタスクC内
にも、それぞれ3つの手続きと2つの手続きが存在し、
タスクBの手続き3とタスクCの手続き2は共有データ
に対してアクセスしない。これらタスク群が、図2に示
すように各プロセッサに割り当てられ、タスク間でメッ
セージを介して通信し合いながら表示/入力装置9によ
り与えられた入力に従った処理(ジョブ)を行う。
【0042】図6に3つの異なる入力を与えたときのタ
スクの処理系列を示す。ここで、第1の入力に対するジ
ョブをジョブ1、第2の入力に対するジョブをジョブ
2、第3の入力に対するジョブをジョブ3とする。図6
(a)に示すジョブ1における処理フローは、入力され
たデータに従ってタスクΑの手続き2が起動され、それ
によってタスクBの手続き2とタスクBの手続き3の両
方が起動され、以下図に示すような順に起動され、最後
にタスクAの手続き4がタスクBの手続き1とタスクC
の手続き2の両方の結果を受けて処理を行うというもの
である。同様に、図6(b)に示すジョブ2における処
理フローは、タスクBの手続き1から起動されタスクB
の手続き3で終了し、図6(c)に示すジョブ3におけ
る処理フローは、タスクCの手続き1から起動されタス
クCの手続き2で終了するというものである。
【0043】図7に、図6に示した各ジョブの処理フロ
ーの実行時に実行履歴DB12に保存される実行履歴と
してのログ情報を示す。同図(a)はジョブ1における
実行履歴、同図(b)はジョブ2における実行履歴、同
図(c)はジョブ3における実行履歴を示している。こ
れらの実行履歴は、タスク間で交換されるメッセージを
テスト支援装置10によって収集することにより生成さ
れ、実行履歴DB12に保存される。複数のプロセッサ
に分散して配置されたタスク間の通信も、いずれか一カ
所のプロセッサに配置されたテスト支援装置を介して通
信するようにすることにより、たとえタスクが複数のプ
ロセッサに分散配置されても、−連の処理フローを求め
ることができる。
【0044】このような実行履歴は、最初はデフォルト
で定められた逐次化ルールに従って各タスクが実行され
生成される。デフォルト逐次化のルールとしては、タス
ク毎に異なるプライオリティを与えておく方法等が存在
する。この段階で並行プログラムが正しく動作しない場
合は、並行プログラムのソースプログラムを修正するこ
とによってデバッグする。そして最終的に正しく動作し
たときの実行履歴が実行履歴DB12に保存される。
【0045】図7(a)に示すジョブ1における実行履
歴は、最初にタスクAの手続き2からタスクBの手続き
2がメッセージによって起動され、続いて同じくタスク
Aの手続き2からタスクBの手続き3が起動されたこと
を示している。つまり、この段階ではシステムには一度
に1つだけのジョブを与え、それぞれのジョブ毎のデバ
ッグを行うことにより、ジョブ毎に正しく振る舞うため
の実行履歴を求める。以下、図7に示す実行履歴は、各
ジョブの処理を正しくタスクが動作した場合の実行履歴
として説明する。
【0046】図8に、タスク間で交換されるメッセージ
のフォーマットを示す。同図に示すフォーマットの宛先
情報には、宛先タスク名等の情報伝達先を指定する情報
がセットされる。送信元情報には、送信元タスク名等の
送信元を規定する情報がセットされる。ジョブ識別子
は、システムへの実行要求入力によって一意に定まる識
別子である。メッセージ本体には、タスク間で交換する
データがセットされる。また、実行履歴DB12にログ
情報として保存される情報は、このメッセージフォーマ
ット中の宛先情報と送信元情報を用いて生成される。
【0047】以下の実施例においては、ログ情報とし
て、宛先情報として宛先タスク名と手続き名を送信元情
報として送信元タスク名と手続き名を用いて説明する
が、同一タスクが複数回利用される場合は、その何回目
の使用か判別がつかなくなるので、送信元情報を{タス
ク名、手続き名、手続き起動回数}からなるように拡張
することができる。さらにある手続きの1回の起動中に
複数回のメッセージ送信がある場合は、今回の起動後の
何回目の送信かを特定するため、送信元情報を{タスク
名、手続き名、手続き起動回数、メッセージ送信回数}
からなるように拡張することができる。
【0048】図9に図8に示したジョブ識別子(ID)
の構成例を示す。同図に示すジョブ番号は、システムへ
の人力によって一意に定まる処理番号である。起動回数
は、その処理がシステム起動後何回目の起動かを示す値
である。これらジョブ番号と起動回数によって、複数の
処理(ジョブ)が同時に動作していても、それらを区別
することができる。つまり、ジョブ番号によって異なる
入力により起動された処理を区別でき、起動回数によっ
て同一入力により同一処理が再帰的に起動されたとして
も区別することができる。もちろん、ジョブ番号はジョ
ブの名称のような異なるジョブを区別できるものならよ
く、「番号」に制約されるものではない。 次に、実行
履歴DB12に記憶された逐次的な実行履歴を並列化装
置13にて並列性を抽出し、並列性を回復する処理につ
いて詳述する。
【0049】図10は並列化装置13の詳細な構成を示
す図である。同図に示すように、並列化装置13は、履
歴分割部16と分割履歴記憶部17と実行制約決定部1
8とからなり、処理面からみると大きく2つのフェーズ
に分かれる。
【0050】フェーズ1では、履歴分割部16が実行履
歴DB12の履歴情報を入力して分割履歴記憶部17に
各タスク内のジョブ毎の手続き起動順序を規定するルー
ルテーブルを生成する。フェーズ2では、実行制約決定
部18が分割履歴記憶部17に記憶されたルールテーブ
ルより各タスク毎のジョブ間の実行順序を規定する実行
順序制約ルールを生成する。
【0051】まずフェーズ1の処理について、図7と図
11を用いて説明する。タスクAのジョブ1における手
続き間の実行順序は、図7(a)より手続き2→手続き
3→手続き4の順に実行されていることがわかる。これ
は、手続きXによって手続きYが起動され(X→Y)、
さらに手続きYによって手続きZが起動される(Y→
Z)ならば、手続きZは手続きXより後に起動されるこ
とは明らかであり、対象としているタスク(今はタスク
A)以外を縮約していくことにより、自動的に求めるこ
とができる。
【0052】同様にタスクBのジョブ1における手続き
間の実行順序は、手続き2と手続き3は並行動作可能で
あるが、この装置上での逐次実行時には手続き2→手続
き3→手続き1の順に実行されており、図11(b)の
ジョブ1に関する「使用する手続き系列」のようにな
る。以下、同様にタスク毎にジョブに応じた手続きの実
行順序を実行履歴に現れた順に規定するように求める。
図7に示す3つのジョブの結果をタスク毎にまとめた結
果が図11に示すものである。図11中、「なし」とは
<そのタスクが該当ジョブで利用されなかったことを示
している。
【0053】次に、フェーズ2の処理について、図11
ないし図15を用いて説明する。フェーズ2では、ジョ
ブ間の実行順序制約を求めるが、その制約は図12に示
すように2つの項目からなる。図12はジョブi実行中
にジョブjの実行要求を受けた場合のジョブjの実行可
能タイミングを示すものである。図12内の「先行制約
手続き名」は、ジョブjの最初の手続きが起動可能とな
るためのジョブi内の手続き名である。「起動制約手続
き名」は、ジョブiの全手続きが終了しないと処理開始
できないジョブj内の手続き名である。具体例を図13
を用いて説明する。
【0054】図13において、あるタスクはジョブiに
おいては共有データに対して、手続き1で読み、手続き
2で書き、手続き3で読むという順序で処理を行う。ジ
ョブjは共有データに対して、手続き1で読み、手続き
3でも読み、手続き4で書くという処理を行うとする。
このとき、「先行制約手続き名」は、手続き2となる。
即ち、ジョブiの手続き2が終了すれば以降ジョブiに
よって共有データが更新されることはない。よって、ジ
ョブjの手続き1を開始したとしてもジョブiの結果は
ジョブjを同時実行させない場合と同値である。また、
「起動制約手続き名」は、手続き4である。即ち、ジョ
ブjはジョブiと同時実行されるが、手続き4によって
共有データが更新される前にジョブiの共有データを参
照する処理(手続き3)が共有データを読み込み終わっ
ていなければならない。さもないと、逐次にジョブi→
ジョブjと実行した場合と処理結果が異なってしまう。
よって、「先行制約手続き名」は、ジョブjの先頭手続
きの属性が読み込み(アクセスしないを含む)ならば、
先行ジョブの最後の共有データへの書き込み処理をする
手続き名であり、ジョブjの先頭手続きの属性が書き込
みならば、先行ジョブの最後の共有データヘアクセスす
る(読み込みは含むが、アクセスしないは含まない)手
続き名となる。「起動制約手続き名」は、後着ジョブの
最初の共有データヘ書き込み処理する手続き名である。
もし、ジョブiに書き込み操作をする手続きが存在しな
ければ、「先行制約手続き名」は「制約なし」となり、
ジョブjに書き込み操作をする手続きが存在しなけれ
ば、「起動制約手続き名」は「制約なし」となる。この
ように2つのジョブ間の制約を規定しておけば、たとえ
3つ以上のジョブが同時実行要求をしたとしても対応す
ることができる。即ち、i番目のジョブは(i−1)番
目のジョブとの間での制約を守っていれぱ、(i−2)
番目以前のジョブとの間で共有メモリアクセスに関する
問題は生じないことは明らかである。
【0055】図14は各タスク毎に上記先行制約手続き
名と起動制約手続き名を求める処理を示すフローチャー
トであり、図15は図11に示した手続き間の実行順序
制約を基にジョブ間の実行順序制約ルールを図14に示
すフローチャートに従って求めた結果である。即ち、各
タスク毎にジョブ1からジョブ3の全組み合わせについ
て調べた結果である。
【0056】以下、図14に従って説明すると、先行ジ
ョブiを1とし(S1)、ジョブ1の手続き系列{手続
き2→手続き3→手続き4}を手続き間実行順序制約テ
ーブルより取り出す(S2)。このとき、ジョブ1の手
続き系列が存在しなければ、「制約なし」を先行制約手
続き名と起動制約手続き名とするが(S10)、本例で
は、存在するので後着ジョブjを1とし(S3)、ジョ
ブ1の手続き系列{手続き2→手続き3→手続き4}を
手続き間実行順序制約テーブルより取り出す(S4)。
このとき、ジョブ1の手続き系列が存在しなければ、
「制約なし」を先行制約手続き名と起動制約手続き名と
するが(S10)、本例では、存在するのでジョブjの
先頭手続きの共有データに対する属性(R,W,RW,
なし(φ))を求め、読み込み属性であることを求める
(S5)。この属性は、解析装置によって予め調べられ
ている。先頭手続きの属性が読み込み(R)なので、ジ
ョブ1の最終書き込み属性の手続き名を求める(S
7)。このとき、ジョブ1の手続き系列が存在しなけれ
ば、「制約なし」を先行制約手続き名と起動制約手続き
名とするが(S10)、本例では、手続き3が最終書き
込み手続きなので、手続き3を先行制約手続き名とする
(S8)。
【0057】続いて、ジョブ1の最初の書き込み属性の
手続き名を求め、これを起動制約手続き名とする(S
9)。即ち、この場合、手続き3が起動制約手続き名と
なる。ジョブ1内に書き込み属性の手続きが存在しなけ
れば、起動制約手続き名を「制約なし」とする。よっ
て、ジョブ間実行順序制約ルールテーブルのジョブi
(i=1)とジョブj(j=1)に対応する箇所の先行
制約手続き名{手続き3}と起動制約手続き名{手続き
3}を登録する(S11)。
【0058】次に、後着ジョブを次のジョブとして上記
同様の処理を行うためにjに1加える(S12)。ジョ
ブ2が存在しなければ先行ジョブ1を変えて上記同様の
処理を繰り返すが、後着ジョブ2が存在するのでS4に
戻る(S13)。S4にてジョブ2の手続き名を求める
が、該当手続き系列が存在しないのでS10に進み、先
行制約手続き名と起動制約手続き名を「制約なし」とし
て、実行順序制約ルールテーブルの[i=1][j=
2]項に登録する(S11)。同様にジョブjをジョブ
3として手続き系列を求めると、{手続き1}が求まり
(S4)、手続き1の属性を調べると(S5)、書き込
み属性なのでジョブ1の共有データヘアクセスする最終
手続き名を求めると、手続き4なのでこれを先行制約手
続き名とする(S6)。続いてジョブ3内の最初の書き
込み属性の手続きを求めると手続き1なので、これを起
動制約手続き名とする(S9)。そして、実行順序制約
ルールテーブルのジョブi(i=1)とジョブj(j=
3)に対応する箇所の先行制約手続き名{手続き4}と
起動制約手続き名{手続き1}を登録する(S11)。
【0059】そして、次のジョブjを調べるためjに1
加え、j=4とし(S12)、ジョブ4の存在を調べる
と該当ジョブが存在しないので、先行ジョブを次に進め
るためiに1加え(S14)、ジョブ2の存在を調べる
(S15)。ジョブ2は存在するのでS2に戻り、上記
同様の処理を繰り返す。
【0060】このような処理を繰り返すことにより、図
15(a)に示すタスクAに関するジョブ間の実行順序
制約が求まる。同様にタスクBにおけるジョブ間の実行
順序制約を求めると図15(b)に示すような関係が得
られ、タスクCにおけるジョブ間の実行順序制約を求め
ると図15(C)に示すような関係が得られる。このよ
うにして得られた図11に示すタスク毎の各ジョブに応
じた手続き間の実行順序制約と、図15に示したタスク
毎のジョブ間の実行順序制約を合わせて、実行順序制約
ルールとする。
【0061】そして、本発明に係るタスクでは、図16
に示すように、図3に示したタスクに超逐次制御手段4
1を有する構成としている。超逐次制御手段41は、従
来からある起動制御部33に、上述した実行順序制約ル
ール42と、ジョブに応じて発番されるジョブIDで現
在当該タスクで実行中のジョブIDを記憶する実行中ジ
ョブID記憶部43をもつ。起動制御部33は、付加さ
れた実行順序制約ルール42と実行中ジョブID記憶部
43に記憶された現在実行中のジョブIDに基づいて、
処理手続き群中の該当する手続きを起動制御する。
【0062】次に図17及び図18を用いてタスク起動
制御について説明する。図17はその場合における開始
処理を示しており、図18はその場合における終了処理
を示している。
【0063】まず、システム内に何の処理も動作してい
ないとき、ジョブ1が投入された場合の処理の流れを説
明する。ジョブIDは、ジョブ番号=1、起動回数=1
となる(以下ジョブID(1,1)と記す)。まず最初
に図6に示したタスクAの手続き2の実行要求が発生す
る。
【0064】タスクAは、ジョブID(1,1)の手続
き2の実行要求を起動制御部33で受け付け(T1)、現
在実行中のジョブが存在するか否かを実行中ジョブID
記憶部43を調べることによって判断する(T2)。こ
の場合、実行中ジョブが存在しないのでジョブID
(1,1)を実行中ジョブID記憶部43に保存し(T
11)、手続き2を起動する(T12)。手続き2は固
有の処理を行い、その一部として図6に示すようにタス
クBの手続き2と手続き3を起動要求し処理を終了す
る。
【0065】この終了処理として、図18に示すように
ジョブID(1,1)の手続き2の処理終了を受け付け
(U1)、手続き2がジヨブ1の最終手続きか否かを図
11に示した手続き間実行順序制約を参照することによ
って判断する(U2)。手続き2は最終手続きでないの
で、手続き2の終了待ちしている手続きが存在している
か否かを手続き2の終了待ちQueue で調べる(U8)。
ここでは、終了待ちしている手続きが存在しないので処
理を終了する。
【0066】以降、タスクAの手続き2によって起動要
求されたタスクBの手続き2や手続き3が起動され、上
記同様の処理を行う。
【0067】タスクAのジョブID(1,1)の処理順
序としては、図11(a)に示すように次に手続き3を
行いその次に手続き4を行うのが正しき手続きの起動順
序である。この制約順序通りにタスクAの手続き3の起
動要求を受け付ければ、起動制御部33はT2にて既実
行中ジョブk(k=1)が存在するが、実行中ジョブI
D記憶部に保存されているジョブID(ジョブID
(1,1))と現在要求されたジョブIDが等しい(T
3)ので、指定実行順序か否かを手続き間実行順序制約
を参照して調べる(T5)。ここでは、実行順序が正し
いので、手続き3を起動する(T12)。しかし、手続
き4の起動要求を手続き3の起動要求より先に受けた場
合には、上記説明のT5における実行順序判断で誤って
いると判断するので、手続き4の1つ前の手続き3の終
了待ちQueue に{ジョブID(1,1),手続き4}を
保存する(T10)。その後、手続き3が上記手順に従
って起動された場合には、その終了時に図18に示すよ
うに、U8にて手続き3の終了待ちQueue に{ジョブI
D(1,1),手続き4}が保存されていることを検出
し、それを取り出し(U9)、現在実行中のジョブID
とQueue より取り出した処理のジョIDとがー致するの
で(U10)、手続き4を起動する(U12)。これに
よって、シングルジョブの場合でも、逐次実行の時に得
られた正しい処理順序通りに処理が行われることが保証
されていることが分かる。
【0068】次に、ジョブID(1,1)実行中にジョ
ブID(1,2)が再帰的に発生した場合の処理につい
て説明する。
【0069】タスクAは、ジョブID(1,2)の手続
き2の実行要求を起動制御部33で受け付ける(T
1)。ここで、現在実行中のジョブが存在するか否かを
実行中ジヨブID記憶部43を調べるとID(1,1)
が記録されているので、実行中ジョブk(k=1)が存
在することを検出する(T2)。
【0070】次に、実行要求のジョブIDが現在実行中
のジョブIDと等しいか否かを調べる(T3)。ここで
は、等しくないので、ジョブ実行順序制約ルールを参照
して、先行制約手続き名と起動制約手続き名を求める
(T4)。即ち、ジョブk(k=1)実行中にジョブi
(i=1)の起動要求があったので、ジョブ実行順序制
約ルールテーブルの[i=1][j=1]項を取り出
し、UP=手続き3、DN=手続き3を求める。
【0071】次に、DNが今起動要求を受けている手続
き2と等しいか調べる(T6)。ここでは、異なるの
で、ジョブ1のUP(=手続き3)が終了しているか否
かを調べる(T8)。このとき、先行ジョブ(ジョブI
D(1,1))の手続き3が既に終了していなければ、
UP(手続き3)の終了待ちQueue に{ジョブID
(1,2),手続き2}を保存する(T9)。これは、
先行するジョブ(ジョブID(1,1))の手続き3が
終了し共有データに結果を書き出さないうちに後着ジョ
ブ(ジョブID(1,2))の手続き2を起動し書き換
え前のデータを読み込むことを防止するためである。こ
のQueue に保存された処理は、先行ジョブ(ジョブID
(1,1))の手続き3が終了したとき、U8にて実行
待ち手続きが存在することが求められ、{ジョブID
(1,2),手続き2}が取り出され(U9)、現在実
行中ジョブID(1,1)と取り出されたジョブID
(1,2)が異なるので(U10)、実行中ジョブID
記憶部43にジョブID(1,2)を追加保存し(U1
1)、手続き2を起動する(U12)。
【0072】これにより、タスクA内でジョブID
(1,1)の手続き3に続く手続き4とジョブID
(1,2)の手続き2を並行動作でき、しかもそのとき
共有データに対する操作は互いに読み込み操作なので逐
次的に実行した場合と同一の結果を得ることができる。
【0073】また、上記処理T8において、先行ジョブ
(ジョブID(1,1))の手続き3が既に終了してい
れば、ジョブID(1,2)を実行中ジョブID記憶部
43に追加保存し(T11)、手続き2を起動する(T
12)。このとき、タスクA内でジョブID(1,1)
の手続き4とジョブID(1,2)の手続き2を並行動
作でき、しかもそのとき共有データに対する操作は互い
に読み込み操作なので逐次的に実行した場合と同一の結
果を得ることができる。
【0074】引き続き、ジョブID(1,2)の手続き
3の起動要求が生じたとき、まだ先行ジョブ(ジョブI
D(1,1))の手続き4が終了していない場合を想定
する。ジョブID(1,2)の手続き3の起動要求は、
異なるジョブIDの処理が未だ実行中なので、T4にて
ジョブ実行順序制約ルールテーブルよりUP=手続き
3、DN=手続き3を取り出す(T4)。そして、ここ
ではDNと現在実行しようとする手続き名(手続き3)
が等しいので(T6)、ジョブ1の終了待ちQueue に
{ジョブID(1,2),手続き3}を保存する(T
7)。これは、先行するジョブ(ジョブID(1,
1))の最終手続き4が終了しないうちに、後着ジョブ
(ジョブID(1,2))の書き込み手続き3を行うこ
とを禁止するためである。 ジョブID(1,1)の手
続き4が終了したときには、起動制御部33で処理終了
要求を受け付けると(U1)、手続き4がジョブ1の最
終手続きかを手続き実行順序制約ルールを参照して調べ
る(U2)。ここでは、最終手続きなので、実行中ジヨ
プID記憶部43からジョブID(1,1)を削除する
(U3)。さらに、ジョブ1の終了待ち手続きが存在す
るか調べ(U4)、存在しない場合は処理を終了する
が、本例のように実行待ちの手続きが存在する場合は、
ジョブ1の終了待ちQueue から{ジョブID(1,
2),手続き3}を取り出し(U5)、実行中ジョブI
D記憶部43に取り出したジョブID(1,2)を保存
し(U6)、取り出した手続き3を起動する(U7)。
【0075】これによって、同一ジョブが再帰的に起動
された場合でも、共有データに対するアクセス順序を規
定することにより、逐次実行時に得られた正しい結果を
保証できることが分かる。また、同様に異なるジョブが
ほぼ同時に起動された場合でも、上記手順に従うことに
よって、個々にジョブを実行した場合と同一の処理結果
が得られる。さらに、図17のステップT4において、
実行要求に付加されていたジョブIDi に該当する項目
が実行順序制約ルールテーブルに存在しないとき、その
実行要求を無視するようにすることも可能である。これ
は、テストによって正しい動作が確認された実行履歴に
だけ基づいて動作し、未テストの動作が確認されていな
い入力に対しては処理しないということである。これに
より、信頼性の高い並行プログラムを実現することがで
きる。
【0076】なお、本発明に係るコンピュータシステム
の構成は、図1おける共有メモリ3が存在しない構成の
場合、I/Oインターフェイスがバスで密にプロセッサ
1〜1N が接続している並列計算機の場合、I/Oイ
ンターフェイスが通信路で疎に結合している分散ネット
ワーク計算機構成の場合、単一プロセッサで構成される
場合、及ぴそれらの組み合わせの場合等であってももち
ろんよい。
【0077】
【発明の効果】以上説明したように本発明によれば、各
タスクのジョブ毎の実行順序制約を各タスク毎に持た
せ、タスク毎にこの実行順序制約を基に実行制御させて
いるので、複数ジョブの同時実行時にも逐次的にジョブ
を実行した場合と同一の結果を得ることが保証される。
このことによって、処理タイミングの非決定性が内在す
る並行/並列/分散プログラムの開発を容易にし、生産
性を向上させることができる。さらに、テストによって
正しい動作が確認されたジョブのみを処理し、未テスト
のジョブは処理しないようにすることが可能となり、信
頼性の高い並行プログラムを実現することができる。
【図面の簡単な説明】
【図1】本発明を実現するためのコンピュータシステム
の構成の一例を示す図。
【図2】本発明のタスク間の情報交換を示す一例を示す
図。
【図3】本発明に係るタスクの一構成例を示す図。
【図4】本発明に係る並行プログラム開発支援装置の構
成を示す図。
【図5】本発明に係るタスクを構成する手続き構成の例
を示す図。
【図6】本発明に係るシステムに投入されたジョブの処
理フロー例を示す図。
【図7】本発明に係るタスク間情報交換の実行履歴を示
す図。
【図8】本発明に係るメッセージ構成の一例を示す図。
【図9】本発明に係るジョブ識別子の一構成例を示す
図。
【図10】本発明に係る並列化装置の一構成例を示す
図。
【図11】本発明に係る手続き間の実行順序制約を示す
図。
【図12】本発明に係るジョブ間の実行順序制約を示す
テーブル構成を示す図。
【図13】本発明に係る実行順序制約を求める例を示す
図。
【図14】本発明に係るジョブ間実行順序制約を生成す
るためのフローチャートを示す図。
【図15】本発明に係わるタスク毎のジョブ間実行順序
制約の例を示す図。
【図16】本発明に係わる逐次化ルールを含むタスクの
一構成例を示す図。
【図17】本発明に係わる実行順序制御部の手続き開始
処理のフローチャートを示す図。
【図18】本発明に係わる実行順序制御部の手続き終了
処理のフローチャートを示す図。
【図19】従来の問題点を示す図。
【符号の説明】
1 プロセッサ 2 I/Oインターフェース 3 共有メモリ 4 入力装置 5 出力装置 6 外部記憶装置

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 複数の手続きからなるタスクが互いにメ
    ッセージを交換しながら並行に動作する実行環境を有す
    るシステムにおいて、 前記実行環境上で動作するタスク群の実行履歴を取得す
    るログ情報取得手段と、 前記ログ情報取得手段により
    取得されたログ情報を保存するログ情報記憶手段と、 前記ログ情報記憶手段に保存されているログ情報をタス
    ク毎に分割し、分割したログ情報を基に各タスクのジョ
    ブ毎の実行順序制約を決定する並行化手段と、 前記各タスク毎に設けられ、前記決定された実行順序制
    約を記憶する実行順序制約記憶手段と、 前記各タスク毎に設けられ、当該タスクに記憶された前
    記実行順序制約に基づき当該タスクの実行を制御する逐
    次化制御手段とを具備することを特徴とするプログラム
    開発支援装置。
  2. 【請求項2】 複数の手続きからなるタスクが互いにメ
    ッセージを交換しながら並行に動作する実行環境を有す
    るシステムにおいて、 前記実行環境上で動作するタスク群の実行履歴を取得す
    るログ情報取得手段と、 前記ログ情報取得手段により
    取得されたログ情報を保存するログ情報記憶手段と、 前記システムへの入力に対する処理系列であるジョブ毎
    に一意に決定され、前記メッセージに付加されるジョブ
    識別子を発番するジョブ識別子発番手段と、 前記ログ情報記憶手段に保存されているログ情報をタス
    ク毎に分割し、分割したログ情報を基に各タスクのジョ
    ブ毎の実行順序制約を決定する並行化手段と、 前記各タスク毎に設けられ、前記決定された実行順序制
    約を記憶する実行順序制約記憶手段と、 前記各タスク毎に設けられ、前記ジョブ識別子発番手段
    により発番されたジョブ識別子が付加されたメッセージ
    を受信し、受信したメッセージに付加されたジョブ識別
    子及び当該タスクに記憶された前記実行順序制約に基づ
    き当該タスクの実行を制御する逐次化制御手段とを具備
    することを特徴とするプログラム開発支援装置。
  3. 【請求項3】 請求項2記載のプログラム開発支援装置
    において、 前記ジョブ識別子発番手段によって発番されるジョブ識
    別子が、前記システムへの入力によって一意に決定さ
    れ、異なる処理系列を区別する処理系列識別子と、この
    処理系列がシステム起動後の何回目の起動かを示す起動
    回数とを有することを特徴とするプログラム開発支援装
    置。
  4. 【請求項4】 請求項1または2記載のプログラム開発
    支援装置において、 前記並行化手段が、前記ログ情報記憶手段に保存されて
    いるログ情報をタスク毎のログ情報に分割し手続き実行
    順序制約を求める履歴分割部と、前記履歴分割部によっ
    て分割された手続き実行順序制約を記憶する分割履歴記
    憶部と、前記分割履歴記憶部に記憶された手続き実行順
    序制約を基にジョブ間の実行順序制約を求める実行制約
    決定部とを有することを特徴とするプログラム開発支援
    装置。
  5. 【請求項5】 請求項4記載のプログラム開発支援装置
    において、 前記各タスク毎に設けられた前記実行順序制約記憶手段
    が、それぞれ前記手続き実行順序制約と前記ジョブ間実
    行順序制約とを記憶することを特徴とするプログラム開
    発支援装置。
  6. 【請求項6】 請求項4記載のプログラム開発支援装置
    において、 前記ジョブ間実行順序制約が、2つのジョブ間で後着の
    ジョブが処理を開始できる先行ジョブ内の手続きを示す
    先行制約手続き名と、先行ジョブが全て終了しないと処
    理開始できない後着ジョブ内の手続きを示す起動制約手
    続き名とを有することを特徴とするプログラム開発支援
    装置。
  7. 【請求項7】 複数の手続きからなるタスクが互いにメ
    ッセージを交換しながら並行に動作する実行環境を有す
    るシステムにおいて、 前記各タスクが、 当該タスクのジョブ毎の実行順序制約を実行順序制約記
    憶手段と、 当該タスクに記憶された前記実行順序制約に基づき当該
    タスクの実行を制御する逐次化制御手段とを具備するこ
    とを特徴とするプログラム実行装置。
  8. 【請求項8】 複数の手続きからなるタスクが互いにメ
    ッセージを交換しながら並行に動作する実行環境を有す
    るシステムにおいて、 前記システムへの入力に対する処理系列であるジョブ毎
    に一意に決定され、前記メッセージに付加されるジョブ
    識別子を発番するジョブ識別子発番手段と、 前記各タスク毎に設けられ、当該タスクのジョブ毎の実
    行順序制約を記憶する実行順序制約記憶手段と、 前記各タスク毎に設けられ、前記ジョブ識別子発番手段
    により発番されたジョブ識別子が付加されたメッセージ
    を受信し、受信したメッセージに付加されたジョブ識別
    子及び当該タスクに記憶された前記実行順序制約に基づ
    き当該タスクの実行を制御する逐次化制御手段とを具備
    することを特徴とするプログラム実行装置。
  9. 【請求項9】 請求項8記載のプログラム実行装置にお
    いて、 前記ジョブ識別子発番手段によって発番されるジョブ識
    別子が、前記システムへの入力によって一意に決定さ
    れ、異なる処理系列を区別する処理系列識別子と、この
    処理系列がシステム起動後の何回目の起動かを示す起動
    回数とを有することを特徴とするプログラム実行装置。
  10. 【請求項10】 請求項7または8記載のプログラム実
    行装置において、 前記各タスク毎に設けられた前記実行順序制約記憶手段
    が、それぞれ手続き実行順序制約とジョブ間実行順序制
    約とを記憶することを特徴とするプログラム実行装置。
  11. 【請求項11】 請求項10記載のプログラム実行装置
    において、 前記ジョブ間実行順序制約が、2つのジョブ間で後着の
    ジョブが処理を開始できる先行ジョブ内の手続きを示す
    先行制約手続き名と、先行ジョブが全て終了しないと処
    理開始できない後着ジョブ内の手続きを示す起動制約手
    続き名とを有することを特徴とするプログラム実行装
    置。
  12. 【請求項12】 請求項7または8記載のプログラム実
    行装置において、 前記逐次化制御手段が、前記受信したメッセージに付加
    されたジョブ識別子のジョブが前記実行順序制約記憶手
    段に記憶されているジョブか否かを判定するジョブ実行
    判定手段と、記憶されていないと判定されたジョブにつ
    いてはタスクの実行を規制する手段とを具備することを
    特徴とするプログラム実行装置。
JP7265803A 1995-10-13 1995-10-13 プログラム開発支援装置及びプログラム実行装置 Pending JPH09114693A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7265803A JPH09114693A (ja) 1995-10-13 1995-10-13 プログラム開発支援装置及びプログラム実行装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7265803A JPH09114693A (ja) 1995-10-13 1995-10-13 プログラム開発支援装置及びプログラム実行装置

Publications (1)

Publication Number Publication Date
JPH09114693A true JPH09114693A (ja) 1997-05-02

Family

ID=17422268

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7265803A Pending JPH09114693A (ja) 1995-10-13 1995-10-13 プログラム開発支援装置及びプログラム実行装置

Country Status (1)

Country Link
JP (1) JPH09114693A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175369A (ja) * 1997-12-10 1999-07-02 Toshiba Corp プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラムを記録した媒体
JP2002196939A (ja) * 2000-12-27 2002-07-12 Nec Corp 常駐プロセスの起動・終了制御装置とその制御方法及びその方法を記録した記録媒体
JP2003248597A (ja) * 2002-02-25 2003-09-05 Nec Corp リグレッションテスト方法及びリグレッションテスト装置
US6675207B1 (en) 1999-02-15 2004-01-06 International Business Machines Corporation Possibility of execution evaluating apparatus and method therefor
JP2007011728A (ja) * 2005-06-30 2007-01-18 Canon System Solutions Inc 汎用計算機の操作手順作成装置及び方法、並びにプログラム
CN100377084C (zh) * 2006-03-10 2008-03-26 浙江大学 嵌入式操作系统多任务并行启动优化实现方法
JP2008269579A (ja) * 2007-03-27 2008-11-06 Toshiba Corp マルチタスク処理装置およびその方法
JP2009301231A (ja) * 2008-06-11 2009-12-24 Fujitsu Ltd シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2010282266A (ja) * 2009-06-02 2010-12-16 Fujitsu Ltd シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法
JP2015225396A (ja) * 2014-05-26 2015-12-14 日立オートモティブシステムズ株式会社 車両制御装置
JP2020009026A (ja) * 2018-07-04 2020-01-16 株式会社東芝 管理システム、情報処理装置、設定管理方法、およびプログラム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175369A (ja) * 1997-12-10 1999-07-02 Toshiba Corp プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラムを記録した媒体
US6675207B1 (en) 1999-02-15 2004-01-06 International Business Machines Corporation Possibility of execution evaluating apparatus and method therefor
JP2002196939A (ja) * 2000-12-27 2002-07-12 Nec Corp 常駐プロセスの起動・終了制御装置とその制御方法及びその方法を記録した記録媒体
JP2003248597A (ja) * 2002-02-25 2003-09-05 Nec Corp リグレッションテスト方法及びリグレッションテスト装置
JP2007011728A (ja) * 2005-06-30 2007-01-18 Canon System Solutions Inc 汎用計算機の操作手順作成装置及び方法、並びにプログラム
JP4583260B2 (ja) * 2005-06-30 2010-11-17 キヤノンItソリューションズ株式会社 汎用計算機の操作手順作成装置、プログラム、及び記憶媒体
CN100377084C (zh) * 2006-03-10 2008-03-26 浙江大学 嵌入式操作系统多任务并行启动优化实现方法
JP2008269579A (ja) * 2007-03-27 2008-11-06 Toshiba Corp マルチタスク処理装置およびその方法
JP2009301231A (ja) * 2008-06-11 2009-12-24 Fujitsu Ltd シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2010282266A (ja) * 2009-06-02 2010-12-16 Fujitsu Ltd シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法
JP2015225396A (ja) * 2014-05-26 2015-12-14 日立オートモティブシステムズ株式会社 車両制御装置
JP2020009026A (ja) * 2018-07-04 2020-01-16 株式会社東芝 管理システム、情報処理装置、設定管理方法、およびプログラム

Similar Documents

Publication Publication Date Title
US5214780A (en) Synchronized journaling system
US4951192A (en) Device for managing software configurations in parallel in a network
US5860009A (en) Programming method for concurrent programs and program supporting apparatus thereof
US7526750B2 (en) Object-based systematic state space exploration of software
US7926035B2 (en) Testing multi-thread software using prioritized context switch limits
US6832367B1 (en) Method and system for recording and replaying the execution of distributed java programs
US6922827B2 (en) Iterative software development environment with prioritized build rules
US7316005B2 (en) Data race detection using sequential program analysis
US5050088A (en) Production control system and method
US7917900B2 (en) Enabling analysis of software source code
US20040168155A1 (en) Flow debugging software and method
JPH04229355A (ja) データアクセス方法及びデータ処理システム
US20010014958A1 (en) Information processing apparatus, defect analysis program, defect analysis method, and application program development assistance system
US20090178044A1 (en) Fair stateless model checking
JPH09114693A (ja) プログラム開発支援装置及びプログラム実行装置
JP2000066904A (ja) マルチタスク制御方法及び記憶媒体
EP3396542B1 (en) Database operating method and device
US20040168157A1 (en) System and method for creating a process invocation tree
US7174359B1 (en) Apparatus and methods for sequentially scheduling a plurality of commands in a processing environment which executes commands concurrently
JP2820189B2 (ja) 数値制御装置の制御ソフトウェア実行システム
JPS6073746A (ja) 情報処理システムおよびプロセス実行制御方式
US9038077B1 (en) Data transfer protection in a multi-tasking modeling environment
US11243873B2 (en) Concurrency testing
JP2002157144A (ja) ソフトウェア自動試験方式
JP2000250777A (ja) 情報処理装置と情報処理方法、及び記憶媒体

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020326