JPH0397037A - インタプリタにおける並列処理実行制御方式 - Google Patents

インタプリタにおける並列処理実行制御方式

Info

Publication number
JPH0397037A
JPH0397037A JP23355889A JP23355889A JPH0397037A JP H0397037 A JPH0397037 A JP H0397037A JP 23355889 A JP23355889 A JP 23355889A JP 23355889 A JP23355889 A JP 23355889A JP H0397037 A JPH0397037 A JP H0397037A
Authority
JP
Japan
Prior art keywords
parallel processing
interpreter
processing unit
input
dispatcher
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
JP23355889A
Other languages
English (en)
Inventor
Hideki Miyata
英毅 宮田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP23355889A priority Critical patent/JPH0397037A/ja
Publication of JPH0397037A publication Critical patent/JPH0397037A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔目 次〕 概要 産業上の利用分野 従来の技術と発明が解決しようとする課題課題を解決す
るための手段 作用 実施例 発明の効果 〔概要〕 少なくとも、インタプリタ本体プロセスと、入出力プロ
セスと,プロセス間のデータの受け渡しを行う共用メモ
リとからなるインタプリタにおいて、コンパイラによっ
て翻訳された中間言語のプログラムで宣言している複数
個の並列処理部を実行する際の制御方式に関し、 インタプリタが動作する計算機システム上のプロセスに
対して、該インタプリ夕が使用する個数を削減して、該
計算機システムの中央処理装置(CPU)の稼働率を向
上させることを目的とし、インタプリタ本体プロセス内
に、上記複数個の並列処理部を、逐次、ディスパッチし
て実行するディスパッチャを設けると共に、例えば、該
インタプリタの記憶領域に並列処理部管理テーブルを設
けて、上記中間言語のプログラムを実行する際には、上
記インタプリタ本体プロセスを起動し、該起動されたイ
ンタプリタ本体プロセスが、上記中間言語プログラム中
の並列処理部を検知したとき、上記ディスパッチャを起
動することで、該ディスパッチャが、上記並列処理部管
理テーブルを参照して、上記複数個の並列処理部を並列
にデイスパッチして実行し、該実行途上において入出力
処理部が検知された場合には、上記入出力処理プロセス
を起動して、プロセス間のデータの受け渡しを行う上記
共用メモリを介して、上記デイスバッチャによる並列処
理部の実行とは独立に該入出力処理を実行するように構
威する。
〔産業上の利用分野〕
本発明は、少なくとも、インタプリタ本体プロセスと,
入出力プロセスと,プロセス間のデータの受け渡しを行
う共用メモリとからなるインタプリタにおいて、コンパ
イラが翻訳した中間言語のプログラムで宣言している複
数個の並列処理部を実行する際の制御方式に関する。
従来からプログラムを高級言語(例えば、BAS IC
)で作戒する場合、該プログラムを幾つかの仕事の単位
に分け、各仕事の単位から、特定の優先+11[序で、
1つ宛ステートメント (文)を取り出し、これら幾つ
かのプログラムを、恰も、同時に動作しているかのよう
に処理させる構或をとることがある。この仕事の単位を
並列処理部と言い、通常。
は、計算機システムが持っている並列処理部実行プロセ
ス{プロセス:カーネル(制御プログラム)からみた仕
事の単位}を起動して、該並列処理部を実行させる。
所が、計算機システム上においては、オペレーティング
システム(OS)の制御の基に、インタプリタを初め、
各種のシステムプログラム,ユーザプログラム(アプリ
ケーションプログラム)が、上記プロセスという仕事単
位で走行しているが、該計算機システムの記憶容量には
限りがある為、該計算機システムで走行できるプロセス
の数には限りがある。
従って、ユーザ(プログラマ)の使用できるプロセスの
数にも限りがあることから、該インクプリタにおいては
、該並列処理部を実行させるのに余り多くのプロセスを
起動することができないのが現状である。
このような事情に鑑み、インタプリタにおいては、計算
機システムが保有している資源の有効利用の面から、で
きる限り、プロセスの起動を少なくして、多くの数の並
列処理部を備えたプログラム(中間言語のプログラム)
を実行できることが必要とされる。
〔従来の技術と発明が解決しようとする課題〕第3図は
従来のインタプリタでの実行制御方式を説明する図であ
り、(a)はインタプリタの位置付けを示し、(b)は
中間言語プログラムの並列処理部の概念を示し、(c)
はインタプリタにおける並列処理実行プロセスの概念を
示している。
先ず、計算機システムは(a)図に示した構成になって
おり、中央処理装置(CPU)上で走行するオペレーテ
ィングシステム(OS)の管理の基に、インタプリタを
初め、各種のプログラムがプロセスという仕事の単位で
走行している。
該計算機システムには複数個のブロ六ス1.2.2a,
3,〜があって、2亥プロセス1,2.2a,3,〜が
オペレーティングシステム(OS)から起動されること
により、各種の仕事が実行される。そして、プロセス1
.2.2a,3.〜間のデータの受け渡しは、該計算機
システムの主記憶装置(MSU)上の特定の領域にある
共用メモリ 4が用いられる。
該インタプリタは、インタプリタ本体プロセス(実行処
理部)1と,並列処理部5を実行する並列処理部実行プ
ロセス2aと,入出力プロセス2とからなり、通常は、
上記インタプリタ本体プロセスlが、中間言語に翻訳さ
れたプログラムの1ステートメントを取り出し実行する
この実行途上において、入出力処理部51が検知される
と、該入出力処理に必要な制御情報を上記共用メモリ4
上に設定して入出力プロセス2を起動する。
入出力プロセス2は該共用メモリ4上の制御情報が指示
する入出力処理を実行する。
同様に、前述の並列処理部5だ検知されると、並列処理
実行プロセス2aが起動される。この時の動作を(b)
 , (c)図を用いて、更に、詳細に説明する。
(b)図に示したように、並列処理部(A,B,〜)5
は、高級言語で記述されたソースプログラムにおいて宣
言されることにより、並列処理部(^)(プログラムA
),並列処理部(B)(プログラムB),並列処理部(
C)(プログラムC),・・・の如くに、複数個のプロ
グラムで構成され、プログラムA(親)がプログラムB
(子)を呼び、プログラムBはプログラムC(子)を呼
ぶというように親子関係で構成してもよいし、全゛<、
独立に構成されていてもよいが、それぞれのプログラム
中に、それぞれのプログラムの動作上の同期をとる為の
「待ち」のステートメントとか、「休止状M.jにある
他の並列処理部(B,C.〜)5を起動する為のステー
トメントが含まれている。
従って、上記インタプリタ本体プロセス1で、中間言語
に翻訳された全体のプログラム中の各ステートメントを
実行中に、該並列処理部(A,B,〜)5が検知される
と、従来においては、(c)図に示した、各並列処理部
(A,B,〜)5に対応して、並列処理実行プロセス2
aが、例えば、並列処理部(A,B,〜)5に指示され
ている優先順位を認識し、その優先順位に従って、各並
列処理部(A,B,〜)5−に対応した並列処理実行プ
ロセス2aが起動される。そして、上記同期をとる為の
各ステトメントを実行することにより、複数個の各並列
処理部(A,8,〜)5が、恰も、同時に動作している
かのように処理され、例えば、該複数個のプログラムA
,B,Cが同時に終了するように動作する。
このように、並列処理部(^IB1〜)5の実行をプロ
セス起動によって実現する場合には、前述のように、計
算機システム全体で使用できるプロセスの数が、該計算
機システムの記憶容量の関係から限りがあることから、
インタプリタ本体プロセス1では、余り多くの上記並列
処理実行プロセス2aを起動できないという問題があっ
た。つまり、従来方弐では、ユーザ(プログラマ)が記
述した多くの並列処理部(^IB1 〜)5を並列に実
行できないという問題があった。
又、逆に、該インタプリタ本体プロセス1で、多くの並
列処理実行プロセス2aを起動してしまうと、該計算機
システム上で走行する、本来、優先的に実行する必要の
ある、インクプリタ以外の他のプロセス3{第3図(a
)参照}による処理が実行できなくなり、該計算機シス
テムでの中央処理装置(CPU)の有効利用が低下する
という問題があった。
本発明は上記従来の欠点に鑑み、少なくとも、インタプ
リタ本体プロセスと,入出力プロセスと.プロセス間の
データの受け渡しを行う共用メモリとからなるインタプ
リタにおいて、中間言語プログラムで宣言している複数
個の並列処理部を実行する際、インタプリタが動作する
計算機システム上のプロセスに対して、該インタプリタ
が使用する個数を削減して、該計算機システムの中央処
理装置(CP[J)の稼働率を向上させることができる
並列処理実行制御方式を提供することを目的とするもの
である。
〔課題を解決するための手段〕
第1図は本発明の原理構或図である。
上記の問題点は下記の如くに構威した並列処理実行制御
方式によって解決される。
少なくとも、インタプリタ本体プロセス1と,入出力プ
ロセス2と,プロセス間のデータの受け渡しを行う共用
メモリ4からなるインタプリタにおいて、 コンパイラによって翻訳された中間言語のプログラムで
宣言している複数個の並列処理部5を実行するのに、 上記インタプリタ本体プロセス1内に、上記複数個の並
列処理部5を、逐次、ディスパッチして実行するディス
パッチャ11を設けると共に、例えば、該インタプリタ
の記憶領域に並列処理管理テーブル6を設けて、 上記中間言語のプログラムを実行する際には、上記イン
タプリタ本体プロセスlを起動し、該起動されたインタ
プリタ本体プロセスlが、上記中間言語プログラム中に
、並列処理部5を検知したとき、上記ディスパッチャを
起動することで、該ディスパッチャ11が、上記並列処
理管理テーブル6を参照して、上記複数個の並列処理部
5を並列にディスパッチして実行し、 該実行途上において入出力処理部51が検知された場合
には、上記入出力処理プロセス2を起動して、プロセス
間のデータの受け渡しを行う上記共用メモリ4を介して
、上記ディスパッチャ11による並列処理部5の実行と
は独立に、該入出力処理を実行するように構或する。
〔作用〕 即ち、本発明によれば、少なくとも、インタプリタ本体
プロセス(実行処理部)と、入出力プロセスと,プロセ
ス間のデータの受け渡しを行う共用メモリからなるイン
タプリタにおいて、ソースプログラムから翻訳された中
間言語プログラムで宣言している複数個の並列処理部を
実行するのに、該インタプリタ本体プロセスの中にディ
スパッチャを設けて、該インタブリ夕本体プロセスは、
該中間言語プログラムを1ステートメントずつ実行中に
、上記並列処理部を検知しても、従来方式の如くに、並
列処理部実行プロセスを起動することなく、上記ディス
パッチャを起動する。
j亥ディスパッチャは、二亥インタプリタがイ吏用する
当該計算機システムの主記憶装置(MS)上の領域内に
設けられている、例えば、並列処理部管理テーブルを参
照し、優先順位順にリンクをたどり、「実行待ち」の状
態にある並列処理部の中間言語文(ステートメント)を
工つディスパッチして実行する。
以上の動作を繰り返すことにより、並列処理を実現する
又、該インタプリタ本体プロセスが、該中間言語プログ
ラムを実行中,又は、該並列処理部を実行中に、入出力
処理部を検知したときのみ、該計算機システムの主記憶
装置(MSU)上のシステム共用メモリ内に、該入出力
要求,制御情報をセットして入出力処理プロセスを起動
し、該入出力処理部が上記並列処理部内にあった場合に
は、自並列処理部を「事象待ち」の状態にする。
該入出力プロセスは、該入出力要求を受け付け、その入
出力結果を上記システムの共用メモリにセットし、該入
出力要求を出した並列処理部を上記「事象待ちJの状態
から「実行待ちjの状態にする。この間、該ディスパッ
チャは他の並列処理部をディスパッチすることができる
このように、本発明の並列処理実行制御方式は、並列処
理部毎のプロセス起動を行わないで、該並列処理部のデ
ィスパッチは、インタプリタ本体プロセス中のディスパ
ッチャで行い、入出力処理部のみ入出力プロセスを起動
するように制御されるので、中間言語プログラム中の並
列処理部の数と.プロセスの数とは無関係となり、論理
的に、ユザ(プログラマ)の記述できる並列処理部の数
には制限がなくなる。又、該並列処理部の実行に、当該
計算機システムの共通資源であるプロセスを使用するこ
とがないので、中央処理装置(CPU)の効率的な利用
が図れる効果がある。
〔実施例〕
以下本発明の実施例を図面によって詳述する。
前述の第1図が本発明の原理構成図であり、第2図は本
発明の一実施例を動作フローで示した図であって、イン
タプリタ本体プロセスlにおいて、並列処理部5を検知
したとき、ディスパッチャ11を起動して、該並列処理
部5を実行させ手段,及び、入出力処理部51を検知し
た時のみ、入出力プロセス2を起動する手段が本発明を
実施するのに必要な手段である。尚、全図を通して同じ
符号は同じ対象物を示している。
以下、第1図を参照しながら.第2図によって本発明の
並列処理部の実行制御方式をディスパッチャ11の動作
を中心にして説明する。
インタプリタが実行するプログラムは、高級言語、例え
ば、BASIC言語で記述されたプログラムをコンパイ
ラで翻訳した中間言語プログラムである。
該インタプリタを構成しているインタプリタ本体プロセ
ス(実行処理部)1が該中間言語プログラムからlステ
ートメントを取り出し解釈(インタブリト)シながら実
行する。
この途上において、該中間言語プログラム中に並列処理
部5をその宣言ステートメントによって検知すると、本
発明のディスパッチャ11を起動する。
該ディスパッチャ11は、主記憶装置(MSU) (第
3図参照)上の該インタプリタが使用する領域内に設け
られている、例えば、並列処理部管理テーブル6を用い
て、その優先順位順にリンクをたどり、該中間言語テキ
スト内にある中間言語識別子(ID)等により、「実行
待ち」の状態にある、各実行文(ステートメント)をデ
ィスパッチしていく。
該実行処理中に、入出力処理を要求すにステートメント
を検知すると、本発明の処理方式では、従来方式と同じ
く、該ステートメントから生成した入出力要求,制御情
報を、当該計算機システムの主記憶装置(?fSU)上
に設けられているシステム共用メモリ4内にセットし、
例えば、該入出力文(入出力処理部51〉が並列処理部
5内にあった場合には、該並列処理部5を「事象待ち」
の状態として、入出力プロセス2を起動する。
そして、該入出力プロセス2は、上記インタプリタ本体
プロセス{当該計算機システムの中央処理装置(CP[
I)の動作}1とは並列に(具体的には、チャネル動作
で)、該入出力要求を受け付けて、該入出力要求が指示
する入出力動作を実行し、結果を上記共用メモリ4にセ
ットして、該入出力要求を出した並列処理部5を、「事
象待ち」の状態から「実行待ちの」の状態に遷移させる
従って、ディスパッチャ11はこの間、他の並列処理部
5をディスパッチすることができる。
以下、本発明のディスパッチャ11の動作を、第2図の
動作フローにより、更に、詳細に説明する。
先ず、取り出したステートメントがr END文」かど
うかを判定し、r END文」であると、インタプリタ
本体プロセス1にリターンするが、r END文」でな
かった場合には、該取り出した1ステートメントを実行
し、その実行結果(リターン値)をチェックし、異常の
場合にはエラー処理に入るが、正常終了であると、図示
していない実行ポインタを1つ進める。{ステップ11
0〜113, 116参照} 該ステートメントに入出力処理部(入出力処理要求文)
 51がないかどうかをチェックして、入出力処理部5
工があると、前述のように、入出力プロセス2を起動す
る。{ステップ114, 117参照}次に、並列処理
部管理テーブル6を参照して、全優先順位を終了したか
どうかを見て、全優先順位処理を終了している場合には
、該並列処理部5の処理か総て終了したと認識して、イ
ンタプリタ本体プロセスlにリターンするが、そうでな
い場合には、残っている並列処理部5に実行権を移して
、ステップ110に戻る。{ステップ115参照}この
ような動作を繰り返して、rENo文」を検知すると、
該当の並列処理部5の一連の処理(例えば、第1図に示
した、並列処理部A,B,  ・・の処理〉は終了した
として、インタプリタ本体プロセスlにリターンし、次
のステートメントの実行に移る。
このように、本発明は、並列処理部5が検知されても、
従来のように、並列処理部実行プロセス2aを起動する
ことなく、即ち、当該計算機システムの共通資源である
有限のプロセス(メモリを専有する)を起動することな
く、インタプリタ本体プロセス1内の動作として、該並
列処理部5を実行できるようにした所に特徴がある。
〔発明の効果〕
以上、詳細に説明したように、本発明のインタプリタに
おける並列処理実行制御方式は、少なくとも、インタプ
リタ本体プロセスと、入出力プロセスと,プロセス間の
データの受け渡しを行う共用メモリとからなるインタプ
リタにおいて、コンパイラによって翻訳された中間言語
のプログラムで宣言している複数個の並列処理部を実行
するのに、インタプリタ本体プロセス内に、上記複数個
の並列処理部を、逐次、ディスパッチして実行するディ
スパッチャを設けると共に、例えば、該インタプリ夕の
記憶領域に並列処理部管理テーブルを設けて、上記中間
言語のプログラムを実行する際には、上記インタプリタ
本体プロセスを起動し、該起動されたインタプリタ本体
プロセスが、上記中間言語プログラム中の並列処理部を
検知したとき、上記ディスパッチャを起動することで、
該ディスパッチャが、上記並列処理部管理テーブルを参
照して、上記複数個の並列処理部を並列にディスパッチ
して実行し、該実行途上において入出力処理部が検知さ
れた場合には、上記入出力処理プロセスを起動して、プ
ロセス間のデータの受け渡しを行う上記共用メモリを介
して、上記ディスパッチャによる並列処理部の実行とは
独立に該入出力処理を実行するようにしたものであるの
で、並列処理部毎のプロセス起動を行わないで、該並列
処理部のディスパッチは、インタプリ夕本体プロセス中
のディスパッチャで行い、入出力処理部を検知したとき
のみ入出力プロセスを起動するように制御され、中間言
語プログラム中の並列処理部の数と,プロセスの数とは
無関係となり、論理的に、ユーザ(プログラマ)の記述
できる並列処理部の数には制限がなくなる。又、並列処
理部の実行に、当該計算機システムの共通資源であるプ
ロセスを使用することがないので、中央処理装置(CP
U)の効率的な利用が図れる効果がある。
【図面の簡単な説明】
第1図は本発明の原理構成図. 第2図は本発明の一実施例を動作フローで示した図. 第3図は従来のインタプリタでの実行制御方式を説明す
る図, である。 2は入出力プロセス, 2aは並列処理実行プロセス, 3はシステムのプロセス, 4はシステムの共用メモリ,又は、共用メモリ,5は中
間言語プログラムの並列処理部,又は、並列処理部(A
,B,−). 6は並列処理部管理テーブル, 110〜117はディスパッチャの処理ステップ,をそ
れぞれ示す。 図面において、 ■はインタプリタ本体プロセス(実行処理部).11は
ディスパッチャ, 第 2 図 (a) 従来のインタプリタでの1116式を説明する図第 3 図 (そのl) (b) 従来のインタプリ夕での実行制御方式を説明する図第 3 図 (その2) (c) 従来のインタプリタでの実行1111方式を説明する図
第 3 図 (その3)

Claims (1)

  1. 【特許請求の範囲】 少なくとも、インタプリタ本体プロセス(1)と、入出
    力プロセス(2)と、プロセス間のデータの受け渡しを
    行う共用メモリ(4)からなるインタプリタにおいて、 コンパイラによって翻訳された中間言語のプログラムで
    宣言している複数個の並列処理部(5)を実行するのに
    、 上記インタプリタ本体プロセス(1)内に、上記複数個
    の並列処理部(5)を、逐次、ディスパッチして実行す
    るディスパッチャ(11)を設けて、上記中間言語のプ
    ログラムを実行する際には、上記インタプリタ本体プロ
    セス(1)を起動し、該起動されたインタプリタ本体プ
    ロセス(1)が、上記中間言語のプログラム中に並列処
    理部(5)を検知したとき、上記ディスパッチャ(11
    )を起動することで、該ディスパッチャ(11)が、特
    定の優先順序で、上記複数個の並列処理部(4)を並列
    にディスパッチして実行し、 該実行途上において入出力処理部(51)が検知された
    場合には、上記入出力処理プロセス(2)を起動して、
    プロセス間のデータの受け渡しを行う上記共用メモリ(
    4)を介して、上記ディスパッチャ(11)による並列
    処理部(5)の実行とは独立に、該入出力処理を実行す
    るように制御することを特徴とするインタプリタにおけ
    る並列処理実行制御方式。
JP23355889A 1989-09-08 1989-09-08 インタプリタにおける並列処理実行制御方式 Pending JPH0397037A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23355889A JPH0397037A (ja) 1989-09-08 1989-09-08 インタプリタにおける並列処理実行制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23355889A JPH0397037A (ja) 1989-09-08 1989-09-08 インタプリタにおける並列処理実行制御方式

Publications (1)

Publication Number Publication Date
JPH0397037A true JPH0397037A (ja) 1991-04-23

Family

ID=16956951

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23355889A Pending JPH0397037A (ja) 1989-09-08 1989-09-08 インタプリタにおける並列処理実行制御方式

Country Status (1)

Country Link
JP (1) JPH0397037A (ja)

Similar Documents

Publication Publication Date Title
EP0191159B1 (en) Method for controlling execution of application programs written in high level program language
US5666533A (en) Program execution management using process enclaves which define the scope of high-level language semantics and threads improving cooperation between processes written in multiple languages
JP2829078B2 (ja) プロセス分散方法
US5365606A (en) Virtual software machine running multiple program modules in a single address space of a target computer
JPH0895821A (ja) マルチタスクのプログラムデバッグ方法とその装置
CA2386658A1 (en) System of reusable software parts for implementing concurrency and hardware access, and methods of use
US5991538A (en) System for generating and using programs in an object-oriented environment with a message dispatch architecture
WO1989001203A1 (en) Mimd computer system
JPH0683647A (ja) 汎用制御インターフェースを含むデータ処理システム
JPH0397037A (ja) インタプリタにおける並列処理実行制御方式
Ruhl et al. Optimizing atomic functions using compile-time information
Luckham et al. Adam: An Ada‐based language for multiprocessing
Berrington et al. Guaranteeing unpredictability
JPS6020275A (ja) マルチプロセサの簡易プログラミングシステム
Jackel Ada-concurrency specified by graph grammars
JP2601541B2 (ja) Fortran入出力並び処理方式
Price Multlprocessmg made easy
Price A language for distributed processing
JPH0467254A (ja) 並列処理装置
CN118519707A (zh) 一种基于可交换属性的系统调用方法
Luckham FW von Henke HJ Larsen DR Stevenson
Fickenscher et al. The Use of the MASCOT Philosophy for the Construction of Ada Programs
Cooperman Task Oriented Parallel C/C++: A Tutorial (Version 0.92)
JPH02132547A (ja) 並列プログラム実行方法
JPH03246746A (ja) 並列実行方法およびコンパイラおよび並列プロセススケジュール支援ツール