JPH0535496A - Inter-process shared data reference system - Google Patents
Inter-process shared data reference systemInfo
- Publication number
- JPH0535496A JPH0535496A JP20851691A JP20851691A JPH0535496A JP H0535496 A JPH0535496 A JP H0535496A JP 20851691 A JP20851691 A JP 20851691A JP 20851691 A JP20851691 A JP 20851691A JP H0535496 A JPH0535496 A JP H0535496A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- code object
- compiled code
- inter
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、コンパイラが出力する
コンパイルドコードオブジェクトをインタプリタが実
行,管理するような言語プロセッサを1つのプロセスと
して複数実行する情報処理装置において、コンパイルド
コードオブジェクトから参照するデータを複数のプロセ
スで共有することができるプロセス間共有データ参照方
式に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention refers to a compiled code object in an information processing device that executes a plurality of language processors as one process such that an interpreter executes and manages the compiled code object. The present invention relates to an inter-process shared data reference method in which data can be shared by multiple processes.
【0002】[0002]
【従来の技術】言語プロセッサの一方式として、例えば
図4に示すように、実行効率を向上させるためにソース
プログラムを翻訳してコンパイルドコードオブジェクト
44を生成するコンパイラ42と、ソースプログラム以
外に上記のコンパイルドコードオブジェクト44の記憶
域管理,実行管理を行うインタプリタ41とを備えた言
語プロセッサがある。2. Description of the Related Art As one method of a language processor, as shown in FIG. 4, for example, a compiler 42 for translating a source program to generate a compiled code object 44 in order to improve the execution efficiency, and a source program other than the compiler 42 described above. There is a language processor having an interpreter 41 for managing the storage area and execution of the compiled code object 44.
【0003】このような言語プロセッサにおけるコンパ
イルドコードオブジェクト44は、或る種のヘッダ情報
(そのコンパイルドコードオブジェクトを識別するため
の名前例えば関数名,サイズ等を含む)を格納するヘッ
ダ領域45と、機械語命令列の並びを格納する機械語命
令列領域46と、インタプリタ41が生成管理している
ヒープ領域43に格納されているデータを機械語命令列
領域46中の機械語命令から参照するために使用するア
ドレスを格納するアドレス格納領域47とを含む形式を
有している。The compiled code object 44 in such a language processor has a header area 45 for storing some kind of header information (including a name for identifying the compiled code object, such as a function name and size). , The data stored in the machine language instruction sequence area 46 storing the sequence of the machine language instruction sequence and the heap area 43 generated and managed by the interpreter 41 is referred from the machine language instruction in the machine language instruction sequence area 46. And an address storage area 47 for storing an address used for that purpose.
【0004】ここで、コンパイルドコードオブジェクト
44内からヒープ領域43上のデータを参照する場合、
ソースプログラムのコンパイル時にはヒープ領域43上
のデータのアドレスを決定することができないので、イ
ンタプリタ41は、コンパイルドコードオブジェクト4
4を記憶域空間40にロードする際にヒープ領域43上
のデータのアドレスを確定し、その確定したアドレスを
アドレス格納領域47の予め定められた場所に格納する
ようにしている。When referring to the data on the heap area 43 from within the compiled code object 44,
Since the address of the data in the heap area 43 cannot be determined when compiling the source program, the interpreter 41 uses the compiled code object 4
4 is loaded into the storage area space 40, the address of the data in the heap area 43 is fixed, and the fixed address is stored in a predetermined location of the address storage area 47.
【0005】従って、コンパイラ42は、コンパイル時
点ではコンパイルドコードオブジェクト44内にヒープ
領域43上のアドレスが確定できた時点でそのアドレス
をインタプリタ41が格納するためのアドレス格納領域
47を設けておき、またそのアドレス格納領域47のど
の場所にどの機械語命令で参照するデータのアドレスを
格納するかを予め決め、その場所を経由してデータを参
照するような構造の機械語命令を生成している。Therefore, the compiler 42 has an address storage area 47 for storing the address of the heap area 43 in the compiled code object 44 at the time of compilation when the interpreter 41 stores the address. Further, it is determined in advance in which place of the address storage area 47 the address of the data to be referred to by the machine language instruction is stored, and a machine language instruction having a structure for referring to the data via the place is generated. ..
【0006】例えば、コンパイルドコードオブジェクト
44に対応するソースプログラムの中でヒープ領域43
上のデータ49を参照する機械語命令がある場合、コン
パイラ42は、データ49のヒープ領域43上のアドレ
スをアドレス格納領域47の例えば3番目(3ワード
目)の場所48に格納するように決めると共に、その機
械語命令として場所48を経由してデータ49を参照す
る命令を生成し、インタプリタ41では、コンパイルド
コードオブジェクト44のロード時に、データ49のヒ
ープ領域43上のアドレスをその場所48に格納するも
のである。これによって、インタプリタ41の解釈実行
に際し使用されるベースレジスタRがコンパイルドコー
ドオブジェクト44の先頭をポイントし、ヘッダ領域4
5+機械語命令列領域46の大きさをαバイトとする
と、ベースレジスタRからの相対位置(αバイト+3ワ
ード目)となる領域48に格納されているアドレスが、
データ49を指すポインタデータとなる。For example, in the source program corresponding to the compiled code object 44, the heap area 43
When there is a machine language instruction that refers to the above data 49, the compiler 42 decides to store the address of the data 49 in the heap area 43 in, for example, the third (third word) location 48 of the address storage area 47. At the same time, an instruction that refers to the data 49 via the location 48 is generated as the machine language instruction, and the interpreter 41 loads the address of the data 49 on the heap area 43 to the location 48 when the compiled code object 44 is loaded. It is something to store. As a result, the base register R used when interpreting and executing the interpreter 41 points to the beginning of the compiled code object 44, and the header area 4
Assuming that the size of the 5 + machine language instruction string area 46 is α bytes, the address stored in the area 48 which is the relative position from the base register R (α byte + 3rd word) is
The pointer data points to the data 49.
【0007】[0007]
【発明が解決しようとする課題】ところで、この種の言
語プロセッサは1つのプロセスとして他のプロセスと並
行して情報処理装置で実行されるものであり、情報処理
装置によっては、そのような言語プロセッサを複数個並
行して実行するものがある。By the way, this kind of language processor is executed as one process in parallel with other processes in the information processing apparatus. Depending on the information processing apparatus, such a language processor may be used. There are some that execute multiple in parallel.
【0008】このような情報処理装置においては、コン
パイルドコードオブジェクトから参照する全てのデータ
をインタプリタが生成,管理しているヒープ領域に割り
付ける従来のデータ参照方式では、インタプリタが個々
のプロセスとして各々存在するためにヒープ領域も各プ
ロセス上にとられることになるので、コンパイルドコー
ドオブジェクトから参照するデータを各プロセス上の言
語処理プロセッサで共有することができないという欠点
がある。In such an information processing apparatus, in the conventional data reference method of allocating all the data referred from the compiled code object to the heap area generated and managed by the interpreter, each interpreter exists as an individual process. Therefore, since the heap area is also taken up in each process, there is a disadvantage in that the data referenced from the compiled code object cannot be shared by the language processing processors in each process.
【0009】本発明はこのような事情に鑑みて為された
ものであり、その目的は、コンパイルドコードオブジェ
クトから参照するデータを複数のプロセスで共有するこ
とができるようにすることにある。The present invention has been made in view of such circumstances, and an object of the present invention is to enable data referred from a compiled code object to be shared by a plurality of processes.
【0010】[0010]
【課題を解決するための手段】本発明のプロセス間共有
データ参照方式は、上記の目的を達成するために、複数
プロセスの並列実行が可能で且つプロセス間で共有でき
るプロセス間共有空間を有し、ソースプログラムを翻訳
することによりデータを参照する機械語命令を含むコン
パイルドコードオブジェクトを出力するコンパイラと前
記コンパイルドコードオブジェクトを解釈実行するイン
タプリタとを含む言語プロセッサを1つのプロセスとし
て複数実行する情報処理装置において、プロセス間で共
有するデータを前記プロセス間共有空間に割り付け、そ
の割り付けたアドレスを前記プロセス間共有空間に設け
たアドレス格納領域に設定し、この設定されたアドレス
に基づいてアドレス格納領域内オフセット解決処理を行
った前記コンパイルドコードオブジェクト中の機械語命
令によって前記プロセス間共有データの参照を行うよう
にしている。In order to achieve the above object, the inter-process shared data reference method of the present invention has an inter-process shared space in which a plurality of processes can be executed in parallel and can be shared between processes. Information for executing a plurality of language processors as one process, including a compiler that outputs a compiled code object including a machine language instruction that refers to data by translating a source program, and an interpreter that interprets and executes the compiled code object In the processing device, data shared between processes is allocated to the inter-process shared space, the allocated address is set in the address storage area provided in the inter-process shared space, and the address storage area is set based on the set address. The above-mentioned compie that has undergone internal offset resolution processing And to perform a reference shared data between the process by machine instructions during de code object.
【0011】[0011]
【作用】本発明のプロセス間共有データ参照方式におい
ては、プロセス間で共有されるデータがプロセス間共有
空間に割り付けられ、その割り付けたアドレスが同空間
に設けられたアドレス格納領域に設定され、この設定さ
れたアドレスに基づいてアドレス格納領域内オフセット
解決処理を行ったコンパイルドコードオブジェクト中の
機械語命令によって前記プロセス間共有空間上のデータ
の参照が行われる。In the inter-process shared data reference method of the present invention, the data shared by the processes is allocated to the inter-process shared space, and the allocated address is set in the address storage area provided in the same space. Data in the inter-process shared space is referred to by a machine language instruction in a compiled code object that has undergone offset resolution processing in the address storage area based on the set address.
【0012】[0012]
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。Embodiments of the present invention will now be described in detail with reference to the drawings.
【0013】図1は本発明の一実施例の構成図である。
同図において、インタプリタ7−1とコンパイラ12−
1とは1つの言語プロセッサを構成し、インタプリタ7
−2とコンパイラ12−2とは別の1つの言語プロセッ
サを構成する。FIG. 1 is a block diagram of an embodiment of the present invention.
In the figure, an interpreter 7-1 and a compiler 12-
1 constitutes one language processor, and an interpreter 7
-2 and the compiler 12-2 constitute another language processor.
【0014】インタプリタ7−1を含む言語プロセッサ
とインタプリタ7−2を含む言語プロセッサは、それぞ
れプロセス2−1,2−2として、本発明が適用される
情報処理装置で並行して実行される。The language processor including the interpreter 7-1 and the language processor including the interpreter 7-2 are concurrently executed as processes 2-1 and 2-2 in the information processing apparatus to which the present invention is applied.
【0015】プロセス2−1には、インタプリタ7−1
が生成,管理しているヒープ領域15−1があって、そ
の中にコンパイルドコードオブジェクト13−2等が格
納される。また、インタプリタ7−1はローダ8−1を
備え、このローダ8−1はアドレス格納領域登録処理1
0−1およびアドレス格納領域内オフセット解決処理1
1−1を行う共有データ生成手段9−1を有している。The process 2-1 includes an interpreter 7-1.
There is a heap area 15-1 which is generated and managed by, and the compiled code object 13-2 and the like are stored therein. Also, the interpreter 7-1 includes a loader 8-1, and the loader 8-1 performs the address storage area registration processing 1
0-1 and address storage area offset resolution processing 1
The shared data generation means 9-1 for performing 1-1 is included.
【0016】同様にプロセス2−2には、インタプリタ
7−2が生成,管理しているヒープ領域15−2があっ
て、その中にコンパイルドコードオブジェクト13−3
等が格納される。また、インタプリタ7−2はローダ8
−2を備え、このローダ8−2はアドレス格納領域登録
処理10−2およびアドレス格納領域内オフセット解決
処理11−2を行う共有データ生成手段9−2を有して
いる。Similarly, the process 2-2 has a heap area 15-2 generated and managed by the interpreter 7-2, and the compiled code object 13-3 is contained therein.
Etc. are stored. Also, the interpreter 7-2 is a loader 8
-2, and this loader 8-2 has a shared data generation means 9-2 for performing the address storage area registration processing 10-2 and the address storage area offset resolution processing 11-2.
【0017】プロセス間共有空間1は、プロセス2−1
とプロセス2−2とで共有される記憶域空間である。こ
のプロセス間共有空間1にはデータ領域4があり、この
データ領域4にプロセス2−1,2−2で共有されるデ
ータ6と、このデータ6を各プロセス2−1,2−2が
参照するときに使用するアドレス格納領域5とが格納さ
れる。The inter-process shared space 1 is the process 2-1.
And the process 2-2 is a shared storage space. The inter-process shared space 1 has a data area 4, and the data 6 shared by the processes 2-1 and 2-2 in the data area 4 and the processes 2-1 and 2-2 refer to the data 6. The address storage area 5 used when performing is stored.
【0018】なお、或るコンパイルドコードオブジェク
トを各プロセス2−1,2−2で共有する場合、そのコ
ンパイルドコードオブジェクトは符号13−1で示され
るように、プロセス間共有空間1に割り付けられる。こ
のようなコンパイルドコードオブジェクトの共有に関す
る技術を記載した文献としては、例えば特願昭63−3
10827号添付明細書および図面がある。When a certain compiled code object is shared by the processes 2-1 and 2-2, the compiled code object is allocated to the inter-process shared space 1 as indicated by reference numeral 13-1. .. As a document describing a technique relating to sharing such a compiled code object, for example, Japanese Patent Application No. 63-3
There is an attached specification and a drawing of 10827.
【0019】次に、上述のように構成された本実施例の
動作を説明する。Next, the operation of the present embodiment configured as described above will be described.
【0020】今、プロセス2−1のコンパイラ12−1
にコンパイルさせるソースプログラム3中に、プロセス
間共有データとしたいデータ「abc」が存在する場
合、その旨をコンパイル指示子 'commonを含むコ
ンパイラ指示手段14でソースプログラム3において指
定しておく。Now, the compiler 12-1 of the process 2-1
If the data "abc" to be used as the inter-process shared data exists in the source program 3 to be compiled in step 1, the fact is specified in the source program 3 by the compiler instruction means 14 including the compile directive'common.
【0021】コンパイラ12−1は、ソースプログラム
3をコンパイルしてコンパイルドコードオブジェクトを
生成するが、その際、コンパイルドコードオブジェクト
から参照しているデータがプログラム間共有データか否
かを前記コンパイラ指示手段14によって識別し、識別
結果をコンパイル結果に含めておく。The compiler 12-1 compiles the source program 3 to generate a compiled code object. At this time, the compiler instruction determines whether or not the data referred to by the compiled code object is inter-program shared data. Identification is performed by the means 14, and the identification result is included in the compilation result.
【0022】コンパイラ12−1によって生成されたコ
ンパイルドコードオブジェクトはインタプリタ7−1の
有するローダ8−1によって自プロセス2−1のヒープ
領域15−1またはプロセス間共有空間1にロードされ
る。今の場合は例としてヒープ領域15−1にコンパイ
ルドコードオブジェクト13−2としてロードされたも
のとする。The compiled code object generated by the compiler 12-1 is loaded into the heap area 15-1 of the own process 2-1 or the inter-process shared space 1 by the loader 8-1 of the interpreter 7-1. In this case, it is assumed that the heap area 15-1 has been loaded as the compiled code object 13-2.
【0023】このロードの際、ローダ8−1は図2に示
すような処理を実行する。At the time of this loading, the loader 8-1 executes the processing as shown in FIG.
【0024】先ず、コンパイルドコードオブジェクト1
3−2の中から参照しているデータを生成する際、デー
タがプロセス間共有データか否かをチェックする(A−
1)。プロセス間共有データでなければ、自分自身のプ
ロセス空間上のヒープ領域15−1へデータを生成する
(A−2)。First, the compiled code object 1
When the data referred to from 3-2 is generated, it is checked whether the data is interprocess shared data (A-
1). If it is not shared data between processes, the data is generated in the heap area 15-1 on its own process space (A-2).
【0025】プロセス間共有データの場合は、プロセス
間共有空間1のデータ領域4に既にそのデータが生成さ
れているか否かをチェックする(A−3)。In the case of interprocess shared data, it is checked whether or not the data has already been generated in the data area 4 of the interprocess shared space 1 (A-3).
【0026】そのようなデータが生成されていない場
合、そのプロセス間共有データをプロセス間共有空間1
のデータ領域4に割り付け(A−4)、次のステップA
−5において共有データ生成手段9−1によるアドレス
格納領域登録処理10−1を行う。If such data is not generated, the interprocess shared data is set to the interprocess shared space 1
To the data area 4 (A-4), the next step A
At -5, the address storage area registration processing 10-1 by the shared data generation means 9-1 is performed.
【0027】即ち、前述したようにデータ「abc」が
プロセス間共有データとして指定されており、それがデ
ータ領域4に未だ割り付けられていない場合、図2のス
テップA−4で図3の如くデータ領域4にデータ6を割
り付け、ステップA−5のアドレス格納領域登録処理1
0−1で、上記割り付けたデータ6のアドレスをデータ
領域4のアドレス格納領域5のエントリに格納する。図
3の例では、アドレス格納領域5の第2エントリ(先頭
から4バイト目)に格納している。That is, as described above, when the data "abc" is designated as the inter-process shared data and it is not yet allocated to the data area 4, the data as shown in FIG. 3 at step A-4 in FIG. Data 6 is allocated to area 4, and address storage area registration processing 1 in step A-5
At 0-1, the address of the allocated data 6 is stored in the entry of the address storage area 5 of the data area 4. In the example of FIG. 3, it is stored in the second entry (4th byte from the beginning) of the address storage area 5.
【0028】また、ステップA−5でアドレス格納領域
登録処理10−1を行った後、或いはステップA−3で
当該プロセス間共有データがプロセス間共有空間1に既
に割り付けられていると判断された場合には、ステップ
A−6において共有データ生成手段9−1によるアドレ
ス格納領域内オフセット解決処理11−1を行う。After performing the address storage area registration processing 10-1 in step A-5, or in step A-3, it is determined that the interprocess shared data is already allocated to the interprocess shared space 1. In this case, in step A-6, the address storage area offset solving process 11-1 by the shared data generating means 9-1 is performed.
【0029】このアドレス格納領域内オフセット解決処
理11−1では、以下のような処理を行う。In the offset solution processing 11-1 in the address storage area, the following processing is performed.
【0030】例えば、コンパイルドコードオブジェクト
13−2の機械語命令列上に、データ「abc」の先頭
アドレスをレジスタRxへ移送することを示す命令「m
ove ”abc” Rx」に対応する機械語命令の如
くプロセス間共有データ「abc」を参照する機械語命
令がある場合、先ず、その参照するプロセス間共有デー
タ「abc」のアドレスがアドレス格納領域5の何番の
エントリに格納されているかを調べる。図3の場合は、
アドレス格納領域5の第2エントリ即ち先頭から4バイ
ト目に格納されている。For example, on the machine language instruction sequence of the compiled code object 13-2, the instruction "m" indicating that the start address of the data "abc" is transferred to the register Rx.
When there is a machine language instruction that refers to the inter-process shared data “abc” like the machine language instruction corresponding to “ove“ abc ”Rx”, first, the address of the inter-process shared data “abc” that is referred to is the address storage area 5. Find out in which entry of is stored. In the case of FIG.
It is stored in the second entry of the address storage area 5, that is, in the fourth byte from the beginning.
【0031】そして、この調査結果に基づき、コンパイ
ルドコードオブジェクト13−2に存在する上記機械語
命令の内容を変更する。今の場合、プロセス間共有デー
タ「abc」のアドレスはアドレス格納領域5の先頭か
ら4バイト目に格納されているので、プロセス間共有空
間1のアクセス時にベースレジスタRがアドレス格納領
域4の先頭を指すものとすると、上記の機械語命令は、
図3の符号30に示すように「move 4(R),R
x」のように変更される。これにより、コンパイルドコ
ードオブジェクト13−2からプロセス間共有データ
「abc」を参照することが可能になる。Then, based on this examination result, the contents of the machine language instruction existing in the compiled code object 13-2 are changed. In this case, since the address of the inter-process shared data “abc” is stored in the fourth byte from the beginning of the address storage area 5, the base register R stores the beginning of the address storage area 4 when accessing the inter-process shared space 1. By the way, the machine instructions above are
As indicated by reference numeral 30 in FIG. 3, “move 4 (R), R
x ". As a result, it becomes possible to refer to the inter-process shared data “abc” from the compiled code object 13-2.
【0032】なお、上述したようにプロセス2−1のコ
ンパイラ12−1でソースプログラム3をコンパイルさ
せてコンパイルドコードオブジェクト13−2を生成し
た後に、プロセス間共有データ「abc」を参照する命
令を含む別のソースプログラムをプロセス2−2のコン
パイラ12−2にコンパイルさせて例えばコンパイルド
コードオブジェクト13−3を生成した場合、プロセス
間共有データ「abc」は既にデータ領域4に割り付け
られており、そのアドレスがアドレス格納領域5に格納
されているので、プロセス2−2のローダ8−2は図2
のステップA−4,A−5を省略し、ステップA−6に
おいて、アドレス格納領域内オフセット解決処理9−2
だけを行うことになる。この結果、コンパイラ12−2
で生成されたコンパイルドコードオブジェクト13−3
をプロセス2−2のヒープ領域15−2にロードする場
合、プロセス間共有データ「abc」を参照する機械語
命令は図3の符号31に示すように修正される。As described above, after the source program 3 is compiled by the compiler 12-1 of the process 2-1 to generate the compiled code object 13-2, an instruction for referencing the interprocess shared data "abc" is issued. When another source program including the above is compiled by the compiler 12-2 of the process 2-2 to generate the compiled code object 13-3, the inter-process shared data “abc” is already allocated to the data area 4, Since the address is stored in the address storage area 5, the loader 8-2 of the process 2-2 is set in FIG.
Steps A-4 and A-5 of step 9-2 are omitted, and in step A-6, offset solution processing 9-2 in the address storage area is performed.
Will only do. As a result, the compiler 12-2
Compiled code object 13-3 generated by
Is loaded into the heap area 15-2 of the process 2-2, the machine language instruction that refers to the inter-process shared data “abc” is modified as indicated by reference numeral 31 in FIG.
【0033】また、コンパイルドコードオブジェクトを
プロセス間で共有するために、図1および図3に示すよ
うにコンパイルドコードオブジェクト13−1としてプ
ロセス間共有空間1にロードする場合、それを最初にロ
ードしたプロセスが図2の処理を行うものであり、既に
ロードされたコンパイルドコードオブジェクトを使用す
るプロセスは図2のような処理を行う必要がない。When the compiled code object 13-1 is loaded in the inter-process shared space 1 as the compiled code object 13-1 in order to share it between processes as shown in FIGS. 1 and 3, it is loaded first. The above process performs the process shown in FIG. 2, and the process using the already loaded compiled code object does not need to perform the process shown in FIG.
【0034】[0034]
【発明の効果】以上説明したように、本発明によれば、
プロセス間共有空間上に割り付けたデータをコンパイル
ドコードオブジェクト中の機械語命令によって参照する
ことができるので、コンパイルドコードオブジェクトか
ら参照するデータを複数のプロセスで共有することがで
きる。As described above, according to the present invention,
Since the data allocated on the inter-process shared space can be referenced by the machine language instruction in the compiled code object, the data referenced from the compiled code object can be shared by a plurality of processes.
【0035】このため、実行時に修正,変更されないよ
うなデータ、例えばメッセージ文字列や辞書的なデータ
などが大量に存在する場合、それらをプロセス間共有デ
ータとすることで記憶域空間を有効に活用することがで
きる。Therefore, when a large amount of data that is not modified or changed at the time of execution, such as a message character string or dictionary-like data, is used as inter-process shared data, the storage space is effectively used. can do.
【図1】本発明の一実施例の構成図である。FIG. 1 is a configuration diagram of an embodiment of the present invention.
【図2】ローダの処理の一例を示すフローチャートであ
る。FIG. 2 is a flowchart showing an example of processing by a loader.
【図3】アドレス格納領域登録処理とアドレス格納領域
内オフセット解決処理の説明図である。FIG. 3 is an explanatory diagram of address storage area registration processing and address storage area offset resolution processing.
【図4】従来方式の構成図である。FIG. 4 is a configuration diagram of a conventional method.
1…プロセス間共有空間 2−1,2−2…プロセス 3…ソースプログラム 4…データ領域 5…アドレス格納領域 6…プロセス間で共有されるデータ 7−1,7−2…インタプリタ 8−1,8−2…ローダ 9−1,9−2…共有データ生成手段 10−1,10−2…アドレス格納領域登録処理 11−1,11−2…アドレス格納領域内オフセット解
決処理 12−1,12−2…コンパイラ 13−1〜13−3…コンパイルドコードオブジェクト 14…コンパイル指示手段 15−1,15−2…ヒープ領域1 ... Inter-process shared space 2-1, 2-2 ... Process 3 ... Source program 4 ... Data area 5 ... Address storage area 6 ... Data shared between processes 7-1, 7-2 ... Interpreter 8-1, 8-2 ... Loader 9-1, 9-2 ... Shared data generating means 10-1, 10-2 ... Address storage area registration processing 11-1, 11-2 ... Address storage area offset resolution processing 12-1, 12 -2 ... Compilers 13-1 to 13-3 ... Compiled code object 14 ... Compile instructing means 15-1, 15-2 ... Heap area
Claims (1)
ロセス間で共有できるプロセス間共有空間を有し、ソー
スプログラムを翻訳することによりデータを参照する機
械語命令を含むコンパイルドコードオブジェクトを出力
するコンパイラと前記コンパイルドコードオブジェクト
を解釈実行するインタプリタとを含む言語プロセッサを
1つのプロセスとして複数実行する情報処理装置におい
て、 プロセス間で共有するデータを前記プロセス間共有空間
に割り付け、その割り付けたアドレスを前記プロセス間
共有空間に設けたアドレス格納領域に設定し、該設定さ
れたアドレスに基づいてアドレス格納領域内オフセット
解決処理を行った前記コンパイルドコードオブジェクト
中の機械語命令によって前記プロセス間共有データの参
照を行うことを特徴とするプロセス間共有データ参照方
式。Claim: What is claimed is: 1. A compile including a machine language instruction that allows parallel execution of a plurality of processes, has a shared space between processes that can be shared between processes, and refers to data by translating a source program. In an information processing apparatus that executes a plurality of language processors including a compiler that outputs a coded code object and an interpreter that interprets and executes the compiled coded object as one process, data shared between processes is allocated to the interprocess shared space. , The assigned address is set in the address storage area provided in the inter-process shared space, and the machine language instruction in the compiled code object is used to perform the offset resolution processing in the address storage area based on the set address. Inter-process sharing day Interprocess shared data reference method which is characterized in that the reference.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20851691A JPH0535496A (en) | 1991-07-25 | 1991-07-25 | Inter-process shared data reference system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20851691A JPH0535496A (en) | 1991-07-25 | 1991-07-25 | Inter-process shared data reference system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0535496A true JPH0535496A (en) | 1993-02-12 |
Family
ID=16557466
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP20851691A Pending JPH0535496A (en) | 1991-07-25 | 1991-07-25 | Inter-process shared data reference system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0535496A (en) |
-
1991
- 1991-07-25 JP JP20851691A patent/JPH0535496A/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6363522B1 (en) | Method and apparatus for handling exceptions as normal control flow | |
| EP0620522A2 (en) | High performance dynamic linking through caching | |
| US6792599B2 (en) | Method and apparatus for an atomic operation in a parallel computing environment | |
| US20060095483A1 (en) | Modified computer architecture with finalization of objects | |
| JPH05204656A (en) | Method for holding data inherent in thread | |
| JP2002525707A (en) | An accurate method for virtual call inlining | |
| US7003768B2 (en) | Method and apparatus for class intialization barriers and access to class variables in multitasking virtual machines | |
| JP2590045B2 (en) | Distributed processing control method and distributed processing system | |
| CN1813243B (en) | Apparatus and method for desynchronizing software applications while running under control | |
| CN117193882A (en) | ELF loading method based on microkernel operating system | |
| US5555412A (en) | Complier and method for alias checking in a complier | |
| US6959430B2 (en) | Specialized heaps for creation of objects in object-oriented environments | |
| US7913243B2 (en) | Method and system for generating and applying patches to a computer program concurrently with its execution | |
| EP0358621A2 (en) | Sharing workspaces in interactive processing | |
| US7228527B1 (en) | Method and system for structuring a procedure | |
| US6275985B1 (en) | Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support | |
| US6865738B2 (en) | Method and apparatus for managing independent asynchronous I/O operations within a virtual machine | |
| Maranget | GAML: A parallel implementation of lazy ML | |
| Baker et al. | Implementing ada exceptions | |
| JPH0535496A (en) | Inter-process shared data reference system | |
| US20030135535A1 (en) | Transferring data between threads in a multiprocessing computer system | |
| JPH0660047A (en) | Multiprocessor processing unit | |
| JPH11212807A (en) | Program execution method | |
| JPH02156332A (en) | Inter-process shared code management method | |
| JP2729795B2 (en) | Parallel computer and control method thereof |