JPH06214803A - Virtual space block arranging system - Google Patents

Virtual space block arranging system

Info

Publication number
JPH06214803A
JPH06214803A JP2165993A JP2165993A JPH06214803A JP H06214803 A JPH06214803 A JP H06214803A JP 2165993 A JP2165993 A JP 2165993A JP 2165993 A JP2165993 A JP 2165993A JP H06214803 A JPH06214803 A JP H06214803A
Authority
JP
Japan
Prior art keywords
block
virtual space
blocks
frequency use
procedure
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
JP2165993A
Other languages
Japanese (ja)
Inventor
Atsushi Goto
淳 後藤
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2165993A priority Critical patent/JPH06214803A/en
Publication of JPH06214803A publication Critical patent/JPH06214803A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To arrange blocks in accordance with procedure/function/table for which high frequency in use are forecasted on a specific page on virtual space comperhensively and to suppress the number of times of execution of paging processing when a program provided with such procedure/function/table is executed. CONSTITUTION:A compiler 1 adds the identification information of the blocks with high frequency in use in accordance with the procedure/function/table in a source unit that is the target of high frequency use designation 4 and that of ordinary blocks in accordance with the procedure/function/table that is not the target of the high frequency use designation 4 on an object module 5. A linker 2 accumulates the blocks with high frequency use and the ordinary blocks individually based on such identification information, and arranges all the high frequency use blocks on the virtual space based on such accumulation.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、計算機システムにおい
てオブジェクトモジュールを生成するコンパイル処理と
複数のオブジェクトモジュールを連結編集して実行可能
なロードモジュールを生成するリンク処理とに関し、特
にデマンドページングによる仮想記憶機能を持つ計算機
システムにおけるコンパイル処理およびリンク処理に関
与する仮想空間ブロック配置方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a compile process for generating an object module and a link process for connecting and editing a plurality of object modules to generate an executable load module in a computer system, and more particularly to virtual storage by demand paging. The present invention relates to a virtual space block allocation method involved in compilation processing and link processing in a computer system having functions.

【0002】[0002]

【従来の技術】デマンドページングによる仮想記憶機能
を持つ計算機システムにおいては、あるプログラムの実
行の準備段階において、そのプログラムに係るソースユ
ニット内の手続き/関数/テーブルを示す機械語イメー
ジ(手続きもしくは関数を示す機械語命令列またはテー
ブルを示す機械語データ列(初期値を持たない領域を含
む))を有する初期値ブロック(以下、単にブロックと
いう)が仮想空間上に配置される。
2. Description of the Related Art In a computer system having a virtual memory function by demand paging, a machine language image showing a procedure / function / table in a source unit related to a program (procedure or function An initial value block (hereinafter simply referred to as a block) having a machine language instruction string shown or a machine language data string showing a table (including a region having no initial value) is arranged in the virtual space.

【0003】デマンドページングを実現するためには、
上述のようにして仮想空間上に配置されたブロック群が
仮想空間の先頭から特定サイズを有するページ単位に分
割され、各ページに配置(配分)されたブロックの機械
語イメージが当該ページのページイメージ(ページの内
容)としてファイルに格納される(ページ単位に参照可
能な形態で各ページイメージがファイルに格納され
る)。
In order to realize demand paging,
As described above, the block group arranged in the virtual space is divided into pages having a specific size from the beginning of the virtual space, and the machine language image of the block arranged (allocated) to each page is the page image of the page. (Page contents) are stored in the file (each page image is stored in the file in a form that can be referenced in page units).

【0004】これに加えて、各ページとファイル上のペ
ージイメージとを対応させるためのテーブル(ページテ
ーブル)が生成され、これによってそのプログラムの実
行の準備が整う。
In addition to this, a table (page table) for associating each page with the page image on the file is generated, and the program is ready for execution.

【0005】以上のような仮想空間上へのブロックの配
置,ページイメージの生成(各ブロックのページへの配
置やページイメージのファイルへの格納),およびペー
ジテーブルの生成は、実行時にローダによって行われる
他に、オブジェクトモジュールを入力しロードモジュー
ルを生成するリンク処理の際にリンカによっても行われ
る。本発明は、このようなリンカによる仮想空間上への
ブロックの配置に関するものである。
Arrangement of blocks in the virtual space, generation of page images (arrangement of each block on a page and storage of a page image in a file), and generation of a page table as described above are performed by a loader at the time of execution. In addition to the above, it is also performed by the linker during the link process of inputting the object module and generating the load module. The present invention relates to the arrangement of blocks in a virtual space by such a linker.

【0006】従来技術(従来の仮想空間ブロック配置方
式)においては、手続き/関数/テーブルに対応するブ
ロックの仮想空間上への配置が行われる際に、配置の順
序は特に考慮されることがなかった(手続き/関数/テ
ーブルの入力順にその手続き/関数/テーブルに対応す
るブロックが配置されるのが一般的であった)。
In the conventional technique (conventional virtual space block arranging method), when arranging blocks corresponding to procedures / functions / tables in the virtual space, the arrangement order is not particularly considered. (In general, the block corresponding to the procedure / function / table is arranged in the order of inputting the procedure / function / table).

【0007】[0007]

【発明が解決しようとする課題】デマンドページングに
よる仮想記憶機能を持つ計算機システムにおいては、プ
ログラムの実行時に、あるページが必要になった時点
(「あるページが必要になった時点」とは、そのページ
に含まれるアドレスに対して参照を行う機械語命令が実
行された時点(そのページ上の機械語命令が実行された
時点をも含む)をいう)でそのページが実記憶上に存在
しない場合には、そのページのページイメージがファイ
ルから実記憶上に読み込まれ(ページング処理が行わ
れ)、その読込み後にそのページに対する参照が行われ
る(なお、その機械語命令の実行は必要なページが実記
憶上に読み込まれるまで停止される)。
In a computer system having a virtual memory function by demand paging, when a program needs to execute a certain page (the "time when a certain page is needed" means that The page does not exist in real memory when the machine language instruction that refers to the address included in the page is executed (including the time when the machine language instruction on that page is executed) The page image of the page is read from the file into the real memory (paging processing is performed), and the page is referenced after the reading (note that the page that requires execution of the machine language instruction is the actual page). Paused until loaded in memory).

【0008】このようなページング処理の際にページイ
メージの読込みが可能なサイズの領域が実記憶上に存在
しない場合には、すでに実記憶上に読込み済みのページ
の領域が解放され、その解放によって空いた領域がペー
ジング処理のための領域に充てられる。このような場合
に、解放される実記憶上の読込み済みのページを選択す
るアルゴリズムは多数存在するが、一般には「最近の参
照頻度が最も低いページを選択する」というアルゴリズ
ム(LRU(Least RecentlyUsed)
アルゴリズム)が採用される。
In such a paging process, when there is no area in the real memory in which the page image can be read, the area of the page that has already been read in the real memory is released. The vacant area is used as an area for paging processing. In such a case, there are many algorithms for selecting a read page in the real memory to be released, but in general, an algorithm of "selecting a page with the least recent reference frequency" (LRU (Least Recently Used)) is used.
Algorithm) is adopted.

【0009】上述のように、ページング処理において
は、ファイルに対するI/O(Input/Outpu
t)処理が発生する。一般に、ファイルに対するI/O
処理の実行は、命令の実行に比較して非常に大きな時間
を要する。このために、ページング処理が多くなるほ
ど、プログラムの実行に要する時間は長大になる。すな
わち、プログラムの実行性能が低下する。
As described above, in paging processing, I / O (Input / Output) for files is performed.
t) Processing occurs. Generally, I / O for files
Execution of a process takes a very large amount of time as compared with execution of an instruction. Therefore, the more paging processing, the longer the time required to execute the program. That is, the execution performance of the program is reduced.

【0010】ところで、あるページに対する参照が多い
ほどそのページが実記憶上に常駐する可能性が増大する
ために、使用頻度が高い手続き/関数/テーブルに対応
するブロックを含むページほど実記憶上に常駐する可能
性が増大する。
By the way, the more references to a page, the more likely it is that the page will reside in real memory. Therefore, pages containing blocks corresponding to frequently used procedures / functions / tables will be stored in real memory. The chances of being resident will increase.

【0011】したがって、使用頻度が高い手続き/関数
/テーブルに対応するブロックが複数存在し、それらが
異なるページに配置された場合には、実記憶に常駐する
可能性が高いページの個数が多くなる。実記憶に常駐す
る可能性が高いページの個数が多くなると、そのような
ページが実記憶の領域を消費し、その結果として比較的
使用頻度が低い手続き/関数/テーブルに対応するブロ
ックを含むページに対するページング処理が多発するこ
とになる。
Therefore, when there are a plurality of blocks corresponding to frequently used procedures / functions / tables and they are arranged on different pages, the number of pages that are likely to be resident in the real memory increases. . As the number of pages that are likely to reside in real memory increases, such pages consume real memory space, resulting in pages containing blocks corresponding to relatively infrequently used procedures / functions / tables. The paging process for will frequently occur.

【0012】上述した従来の仮想空間イメージ配置方式
では、各ブロック(手続き/関数/テーブルに対応する
ブロック)を仮想空間に配置する際に配置の順序は特に
考慮されることがないので、使用頻度が高い手続き/関
数/テーブルに対応するブロックを含むページが多数存
在することとなる可能性が生じ、その場合に上述のよう
な理由によってページング処理が多発するおそれが大き
くなり、プログラムの実行性能の低下を招くおそれが生
じるという問題点があった。
In the above-described conventional virtual space image arrangement method, since the arrangement order is not particularly considered when arranging each block (block corresponding to a procedure / function / table) in the virtual space, the frequency of use There is a possibility that a large number of pages including blocks corresponding to procedures / functions / tables with a high number of pages exist, in which case the paging process may occur frequently due to the reasons described above, and the program execution performance may be reduced. There is a problem that it may cause a decrease.

【0013】なお、仮想記憶機能を持つ計算機システム
におけるページング処理の効率化(1回のページング処
理によって関連ある複数のページをまとめてロードする
考え方等)に関する技術としては、「特開平2−199
44(仮想記憶管理のページイン方式)」に係る特許出
願や「特開平1−150936(プログラム実行方
式)」に係る特許出願等が存在する。しかし、それらの
方式においても、上述のような問題点に対する考慮はな
されていなかった。
As a technique for improving the efficiency of paging processing in a computer system having a virtual memory function (a concept of collectively loading a plurality of related pages by one paging processing, etc.), see Japanese Patent Laid-Open No. 2-199.
44 (page-in method of virtual memory management) "and" JP-A-1-150936 (program execution method) ". However, even in those methods, the above-mentioned problems have not been taken into consideration.

【0014】本発明の目的は、上述の点に鑑み、使用頻
度が高いと予想される手続き/関数/テーブルに対応す
るブロックを仮想空間上の特定のページにまとめて配置
することを可能とし、そのような手続き/関数/テーブ
ルを有するプログラムの実行時にページング処理の回数
を抑制することができる仮想空間ブロック配置方式を提
供することにある。
In view of the above points, an object of the present invention is to make it possible to collectively arrange blocks corresponding to procedures / functions / tables that are expected to be frequently used in a specific page in the virtual space, It is an object of the present invention to provide a virtual space block arrangement method capable of suppressing the number of paging processes when a program having such procedures / functions / tables is executed.

【0015】[0015]

【課題を解決するための手段】本発明の仮想空間ブロッ
ク配置方式は、ソースユニット内の手続き/関数/テー
ブルを示す機械語イメージを有するブロックをオブジェ
クトモジュール内に出力しその出力の際に高頻度使用指
定の対象となっている手続き/関数/テーブルに対応す
るブロックである高頻度使用ブロックと高頻度使用指定
の対象となっていない手続き/関数/テーブルに対応す
るブロックである通常ブロックとの識別情報をオブジェ
クトモジュールに付加するコンパイラと、このコンパイ
ラによって生成されたオブジェクトモジュールを入力し
てロードモジュールを生成する際に前記コンパイラによ
ってオブジェクトモジュールに付加された識別情報に基
づいて前記コンパイラによってオブジェクトモジュール
内に出力された高頻度使用ブロックおよび通常ブロック
の各々を別個に蓄積しその蓄積に基づいて高頻度使用ブ
ロックの全てを仮想空間上に連続して配置するリンカと
を有する。
According to the virtual space block arranging method of the present invention, a block having a machine language image showing a procedure / function / table in a source unit is output to an object module and is frequently output. Identification of high-frequency blocks that are blocks corresponding to procedures / functions / tables for which usage is specified and normal blocks that are blocks corresponding to procedures / functions / tables that are not specified for high-frequency usage A compiler that adds information to an object module, and a compiler that inputs the object module generated by the compiler into the object module by the compiler based on the identification information added to the object module by the compiler when generating the load module. Output high And a linker which all high-used blocks sequentially placed in the virtual space based on the respective degrees using blocks and normally blocks separately accumulate the accumulated.

【0016】[0016]

【実施例】次に、本発明について図面を参照して詳細に
説明する。
The present invention will be described in detail with reference to the drawings.

【0017】図1は、本発明の仮想空間ブロック配置方
式の一実施例の構成を示すブロック図である。本実施例
の仮想空間ブロック配置方式は、ソースユニット3およ
び高頻度使用指定4を入力しオブジェクトモジュール5
を出力するコンパイラ1と、複数のオブジェクトモジュ
ール5を入力しロードモジュール6を出力するリンカ2
と、ソースユニット3と、高頻度使用指定4と、オブジ
ェクトモジュール5と、ロードモジュール6とを含んで
構成されている。
FIG. 1 is a block diagram showing the configuration of an embodiment of a virtual space block arrangement system of the present invention. According to the virtual space block arrangement method of this embodiment, the source unit 3 and the high-frequency use designation 4 are input and the object module 5 is input.
And a linker 2 that inputs a plurality of object modules 5 and outputs a load module 6
, A source unit 3, a high-frequency use designation 4, an object module 5, and a load module 6.

【0018】リンカ2は、オブジェクトモジュール入力
手段21と、リンク手段22と、仮想空間配置手段23
と、ロードモジュール生成手段24とを含んで構成され
ている。
The linker 2 includes an object module input means 21, a link means 22, and a virtual space arranging means 23.
And a load module generation means 24.

【0019】高頻度使用指定4は、ソースユニット3に
含まれる手続き/関数/テーブルの中で特に使用頻度が
高いと利用者等が判断した手続き/関数/テーブルの名
前が指定されている情報である。
The high-frequency use designation 4 is information in which the names of the procedures / functions / tables that the user or the like has determined to be particularly frequently used among the procedures / functions / tables included in the source unit 3 are designated. is there.

【0020】図2は、仮想空間配置手段23の処理を示
す流れ図である。この処理は、配置対象ブロック残存判
定ステップ201と、配置対象ブロック高頻度使用ブロ
ック判定ステップ202と、通常ブロックチェーン連結
ステップ203と、高頻度使用ブロックチェーン連結ス
テップ204と、高頻度使用ブロック配置ステップ20
5と、通常ブロック配置ステップ206とからなる。
FIG. 2 is a flow chart showing the processing of the virtual space arranging means 23. This processing is performed by the placement target block remaining determination step 201, the placement target block high frequency use block determination step 202, the normal block chain connection step 203, the high frequency use block chain connection step 204, and the high frequency use block placement step 20.
5 and a normal block placement step 206.

【0021】次に、このように構成された本実施例の仮
想空間ブロック配置方式の動作について説明する。
Next, the operation of the virtual space block arranging system of the present embodiment thus constructed will be described.

【0022】コンパイラ1は、ソースユニット3とソー
スユニット3に対応する高頻度使用指定4とを入力し、
オブジェクトモジュール5を出力する。すなわち、他の
種々の情報(各手続き/関数/テーブルの名前等の付加
情報等)と共に、ソースユニット3内の各手続き/関数
/テーブルを示す機械語イメージを有するブロック(先
に述べたように初期値ブロックに該当するブロック)を
オブジェクトモジュール5内に出力する。
The compiler 1 inputs the source unit 3 and the high-frequency use designation 4 corresponding to the source unit 3,
Output the object module 5. That is, a block having a machine language image showing each procedure / function / table in the source unit 3 together with other various information (additional information such as the name of each procedure / function / table) (as described above). The block corresponding to the initial value block) is output to the object module 5.

【0023】この際に、コンパイラ1は、高頻度使用指
定4で名前が指定されている手続き/関数/テーブルに
対応するブロックを、高頻度使用指定4で名前が指定さ
れていない手続き/関数/テーブルに対応するブロック
と区別して、オブジェクトモジュール5内に出力する。
すなわち、高頻度使用指定4の対象となっている手続き
/関数/テーブルに対応するブロック(高頻度使用ブロ
ック)と高頻度使用指定4の対象となっていない手続き
/関数/テーブルに対応するブロック(通常ブロック)
との識別情報(例えば、高頻度使用ブロックの属性情報
の1つとして高頻度使用ブロックに与えられる「高頻度
使用である旨」の情報)をオブジェクトモジュール5に
付加する。
At this time, the compiler 1 selects blocks corresponding to procedures / functions / tables whose names are specified by the high-frequency usage specification 4 and procedures / functions / tables whose names are not specified by the high-frequency usage specification 4. It is output in the object module 5 separately from the block corresponding to the table.
That is, a block (high-frequency use block) corresponding to a procedure / function / table that is the target of the high-frequency use specification 4 and a block (high-frequency use block) corresponding to a procedure / function / table that is not the target of the high-frequency use specification 4 ( (Normal block)
And the identification information (for example, the information of “high frequency use” given to the high frequency use block as one of the attribute information of the high frequency use block) is added to the object module 5.

【0024】リンカ2は、複数のオブジェクトモジュー
ル5を入力し、実行可能な形式のロードモジュール6を
生成し出力する。
The linker 2 inputs a plurality of object modules 5, generates a load module 6 in an executable format, and outputs the load module 6.

【0025】リンカ2内のオブジェクトモジュール入力
手段21は、オブジェクトモジュール5を入力し、リン
カ2の処理に必要な情報を作業領域に展開する。また、
リンク手段22は、複数のオブジェクトモジュール5の
間の定義/参照情報の解決/処理を行う。オブジェクト
モジュール入力手段21およびリンク手段22による処
理は、従来技術における処理と同様のものである。
The object module input means 21 in the linker 2 inputs the object module 5 and expands the information necessary for the processing of the linker 2 in the work area. Also,
The linking means 22 resolves / processes definition / reference information among a plurality of object modules 5. The processing by the object module input means 21 and the link means 22 is the same as the processing in the prior art.

【0026】仮想空間配置手段23は、オブジェクトモ
ジュール5内の各ブロックを仮想空間上に配置し、その
結果としてページイメージおよびページテーブルを生成
する(仮想空間上への各ブロックの配置後における各ブ
ロックのページへの配置,その配置に基づくページイメ
ージのファイルへの格納,およびページテーブルの生成
は、従来技術と同様の態様で行われる)。
The virtual space arranging means 23 arranges each block in the object module 5 in the virtual space and, as a result, generates a page image and a page table (each block after the arrangement of each block in the virtual space). Are placed on the page, the page image is stored in the file based on the placement, and the page table is generated in the same manner as in the prior art).

【0027】以下に、図2を参照して、仮想空間配置手
段23の詳細な処理について説明する。ここで、「高頻
度使用ブロックチェーン」とは高頻度使用ブロックのみ
を連結するチェーンをいい、「通常ブロックチェーン」
とはそれ以外のブロック(通常ブロック)を連結するチ
ェーンをいう。これらのチェーンは後述するように高頻
度使用ブロックの全てを仮想空間上に連続して配置する
ために利用されるが、何らかの方法で高頻度使用ブロッ
クと通常ブロックとを別個に蓄積することができる方法
であれば「チェーンを利用する方法」に限らず「テーブ
ルを利用する方法」等によっても本発明を実現すること
は可能である(「チェーンを利用する方法」によると上
述の蓄積の処理等に必要な領域が少なくてすむので他の
方法に比べて好ましい)。
The detailed processing of the virtual space arranging means 23 will be described below with reference to FIG. Here, "high-frequency block chain" means a chain that connects only high-frequency blocks, "normal block chain"
Is a chain that connects other blocks (normal blocks). These chains are used to arrange all of the frequently used blocks consecutively in the virtual space as described later, but it is possible to store the frequently used blocks and the ordinary blocks separately by some method. The method is not limited to the “method using the chain”, and the present invention can be realized by the “method using the table” or the like (according to the “method using the chain”, the above-described storage processing, etc.) Is preferable compared to other methods because it requires less area).

【0028】仮想空間に配置すべきブロックが残ってい
るか否か(全ての配置すべきブロックに関する処理が終
了していないかどうか)を判定する(ステップ20
1)。
It is judged whether or not there are any blocks left to be placed in the virtual space (whether or not all the blocks to be placed have been processed) (step 20).
1).

【0029】ステップ201で「配置すべきブロックが
残っている」と判定した場合には、残っている配置すべ
きブロックの中の1つを抽出し、コンパイラ1によって
上述のようにして付加された識別情報に基づいてそのブ
ロックが高頻度使用ブロックであるか否かを判定する
(ステップ202)。
When it is determined in step 201 that "the block to be arranged remains", one of the remaining blocks to be arranged is extracted and added by the compiler 1 as described above. It is determined whether the block is a frequently used block based on the identification information (step 202).

【0030】ステップ202で「そのブロックが高頻度
使用ブロックである」と判定した場合には、そのブロッ
クを高頻度使用ブロックチェーンに連結し(ステップ2
04)、ステップ201の判定に戻る。
If it is determined in step 202 that the block is a frequently used block, the block is linked to the frequently used block chain (step 2
04), and returns to the determination in step 201.

【0031】ステップ202で「そのブロックが高頻度
使用ブロックでない」と判定した場合には、そのブロッ
クを通常ブロックチェーンに連結し(ステップ20
3)、ステップ201の判定に戻る。
When it is determined in step 202 that the block is not a frequently used block, the block is connected to the normal block chain (step 20).
3) Return to the determination of step 201.

【0032】ステップ201で「配置すべきブロックが
残っていない」と判定した場合には、高頻度使用ブロッ
クチェーンをに連結されたブロック(高頻度使用ブロッ
ク)の全てを仮想空間上に連続して(任意のページ境界
(一般的には仮想空間の先頭)から連続して)配置する
(ステップ205)。なお、「配置すべきブロックが残
っていない」と判定された時点においては、全ての配置
すべきブロックの蓄積(高頻度使用ブロックチェーンま
たは通常ブロックチェーンへの連結)が完了しており、
オブジェクトモジュール5内に散在していた高頻度使用
ブロックは全て集められて高頻度使用ブロックチェーン
に連結されている。
When it is determined in step 201 that "there are no blocks to be placed", all blocks (high-frequency blocks) connected to the high-frequency block chain are continuously arranged in the virtual space. Arrangement is performed continuously from an arbitrary page boundary (generally, the head of the virtual space) (step 205). In addition, at the time when it is determined that "the block to be arranged does not remain", accumulation of all the blocks to be arranged (connection to the frequently used block chain or the normal block chain) is completed,
All the frequently used blocks scattered in the object module 5 are collected and connected to the frequently used block chain.

【0033】ステップ205の処理が終了すると、通常
ブロックチェーンに連結されたブロック(通常ブロッ
ク)の仮想空間上への配置(ステップ205における配
置領域を除く領域への配置)を行い(ステップ20
6)、図2に示す一連の処理を終了する。
When the processing of step 205 is completed, the blocks (normal blocks) connected to the normal block chain are arranged in the virtual space (arrangement in the area excluding the arrangement area in step 205) (step 20).
6), the series of processing shown in FIG.

【0034】以上のような仮想空間配置手段23による
処理によって、高頻度使用ブロックは仮想空間上の連続
した領域(一般的には、仮想空間上の先頭からの連続し
た領域)に集められて配置される。これによって、高頻
度使用ブロックを含むページの個数を可能な限り削減す
ることができる。
By the processing by the virtual space arranging means 23 as described above, the frequently used blocks are collected and arranged in a continuous area in the virtual space (generally, a continuous area from the beginning in the virtual space). To be done. This makes it possible to reduce the number of pages including the frequently used block as much as possible.

【0035】最後に、ロードモジュール生成手段24
は、仮想空間配置手段23による仮想空間上へのブロッ
クの配置を反映してロードモジュール6を生成し、その
ロードモジュール6を出力する。これによって、リンカ
2の処理が終了する。
Finally, the load module generating means 24
Generates the load module 6 reflecting the block arrangement in the virtual space by the virtual space arranging means 23, and outputs the load module 6. This completes the processing of the linker 2.

【0036】従来技術においては、ブロックをチェーン
に連結するという考え方が導入されたとしても、上述の
ような高頻度使用ブロックチェーンと通常ブロックチェ
ーンとの区別は行われておらず、チェーンは1つのみで
あった。そして、そのチェーンに連結された各ブロック
の仮想空間上への配置位置は一般に各ブロックの入力の
順番によって決定されていた(仮想空間上での配置位置
に対する有意の操作は行われていなかった)。これに対
して、本実施例の仮想空間ブロック配置方式では、仮想
空間配置手段23における上述のような機能が設けられ
ているので、使用頻度が高い手続き/関数/テーブルに
対応するブロックが多くのページに分散して存在すると
いう事態を回避することが可能になる。
In the prior art, even if the concept of linking blocks into a chain is introduced, the above-mentioned frequently used block chain and the ordinary block chain are not distinguished from each other. Was only. Then, the placement position of each block connected to the chain in the virtual space was generally determined by the input order of each block (no significant operation was performed on the placement position in the virtual space). . On the other hand, in the virtual space block arranging method of the present exemplary embodiment, since the virtual space arranging means 23 has the above-described functions, many blocks corresponding to frequently used procedures / functions / tables are provided. It becomes possible to avoid the situation that the pages are scattered and exist.

【0037】[0037]

【発明の効果】以上説明したように本発明は、使用頻度
が高いと予想される手続き/関数/テーブルに対応する
ブロックを仮想空間上の特定のページにまとめて(連続
して集めて)配置することにより、そのような手続き/
関数/テーブルを有するプログラムの実行時におけるペ
ージング処理の回数を抑制することが可能になり、当該
プログラムの実行に要する時間を削減することができる
(当該プログラムの実行性能を向上させることができ
る)という効果がある。
As described above, according to the present invention, blocks corresponding to procedures / functions / tables that are expected to be frequently used are collectively (continuously) arranged on a specific page in the virtual space. By doing such a procedure /
It is possible to reduce the number of times of paging processing at the time of executing a program having a function / table, and reduce the time required to execute the program (improve the execution performance of the program). effective.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の一実施例の構成を示すブロック図であ
る。
FIG. 1 is a block diagram showing the configuration of an embodiment of the present invention.

【図2】図1中の仮想空間配置手段の処理を示す流れ図
である。
FIG. 2 is a flow chart showing processing of a virtual space arranging means in FIG.

【符号の説明】 1 コンパイラ 2 リンカ 3 ソースユニット 4 高頻度使用指定 5 オブジェクトモジュール 6 ロードモジュール 21 オブジェクトモジュール入力手段 22 リンク手段 23 仮想空間配置手段 24 ロードモジュール生成手段[Explanation of Codes] 1 Compiler 2 Linker 3 Source Unit 4 High Frequency Usage Specification 5 Object Module 6 Load Module 21 Object Module Input Means 22 Link Means 23 Virtual Space Arrangement Means 24 Load Module Generation Means

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 ソースユニット内の手続き/関数/テー
ブルを示す機械語イメージを有するブロックをオブジェ
クトモジュール内に出力し、その出力の際に高頻度使用
指定の対象となっている手続き/関数/テーブルに対応
するブロックである高頻度使用ブロックと高頻度使用指
定の対象となっていない手続き/関数/テーブルに対応
するブロックである通常ブロックとの識別情報をオブジ
ェクトモジュールに付加するコンパイラと、 このコンパイラによって生成されたオブジェクトモジュ
ールを入力してロードモジュールを生成する際に、前記
コンパイラによってオブジェクトモジュールに付加され
た識別情報に基づいて前記コンパイラによってオブジェ
クトモジュール内に出力された高頻度使用ブロックおよ
び通常ブロックの各々を別個に蓄積し、その蓄積に基づ
いて高頻度使用ブロックの全てを仮想空間上に連続して
配置するリンカとを有することを特徴とする仮想空間ブ
ロック配置方式。
1. A procedure / function / table for which a block having a machine language image indicating a procedure / function / table in a source unit is output to an object module and which is designated for high-frequency use at the time of output. A compiler that adds identification information between a high-frequency use block corresponding to a block and a normal block that corresponds to a procedure / function / table not subject to high-frequency use specification to an object module, and Each of the frequently used block and the normal block output in the object module by the compiler based on the identification information added to the object module by the compiler when the generated object module is input to generate the load module Separate Accumulating and virtual space block disposed scheme characterized by having a linker of all high-used blocks sequentially placed in the virtual space based on the accumulated.
【請求項2】 高頻度使用ブロックを連結する高頻度使
用ブロックチェーンと通常ブロックを連結する通常ブロ
ックチェーンとを利用して高頻度使用ブロックおよび通
常ブロックの各々を別個に蓄積する処理を実現する前記
リンカを有することを特徴とする請求項1記載の仮想空
間ブロック配置方式。
2. A process for separately accumulating each of a high frequency use block and a normal block using a high frequency use block chain connecting high frequency use blocks and a normal block chain connecting normal blocks. The virtual space block arrangement method according to claim 1, further comprising a linker.
JP2165993A 1993-01-18 1993-01-18 Virtual space block arranging system Pending JPH06214803A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2165993A JPH06214803A (en) 1993-01-18 1993-01-18 Virtual space block arranging system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2165993A JPH06214803A (en) 1993-01-18 1993-01-18 Virtual space block arranging system

Publications (1)

Publication Number Publication Date
JPH06214803A true JPH06214803A (en) 1994-08-05

Family

ID=12061175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2165993A Pending JPH06214803A (en) 1993-01-18 1993-01-18 Virtual space block arranging system

Country Status (1)

Country Link
JP (1) JPH06214803A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000038054A1 (en) * 1998-12-22 2000-06-29 Fujitsu Limited Optimization object generating apparatus and method
JP2000322315A (en) * 1999-04-23 2000-11-24 Internatl Business Mach Corp <Ibm> Method and device for managing data
JP2006079338A (en) * 2004-09-09 2006-03-23 Fujitsu Ltd Program section layout method and layout processing program
US7765535B2 (en) 2003-10-23 2010-07-27 Fujitsu Limited Software development tool program
CN112579096A (en) * 2020-12-18 2021-03-30 北京百度网讯科技有限公司 Method, device, equipment and medium for compiling and loading small program starting file

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03125223A (en) * 1989-10-09 1991-05-28 Hitachi Ltd Object module generating system
JPH03184126A (en) * 1989-12-13 1991-08-12 Hitachi Ltd Arranging method for instruction codes of compiler and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03125223A (en) * 1989-10-09 1991-05-28 Hitachi Ltd Object module generating system
JPH03184126A (en) * 1989-12-13 1991-08-12 Hitachi Ltd Arranging method for instruction codes of compiler and program

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000038054A1 (en) * 1998-12-22 2000-06-29 Fujitsu Limited Optimization object generating apparatus and method
JP2000322315A (en) * 1999-04-23 2000-11-24 Internatl Business Mach Corp <Ibm> Method and device for managing data
US7765535B2 (en) 2003-10-23 2010-07-27 Fujitsu Limited Software development tool program
JP2006079338A (en) * 2004-09-09 2006-03-23 Fujitsu Ltd Program section layout method and layout processing program
JP4592367B2 (en) * 2004-09-09 2010-12-01 富士通セミコンダクター株式会社 Program section layout method and layout processing program
CN112579096A (en) * 2020-12-18 2021-03-30 北京百度网讯科技有限公司 Method, device, equipment and medium for compiling and loading small program starting file
CN112579096B (en) * 2020-12-18 2024-03-19 北京百度网讯科技有限公司 Method, device, equipment and medium for compiling and loading applet startup file

Similar Documents

Publication Publication Date Title
US20090164773A1 (en) Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system
JPH1185526A (en) Program loading method
EP0889405A1 (en) Software debugging method
US8510529B2 (en) Method for generating program and method for operating system
JPH06214803A (en) Virtual space block arranging system
US20080184213A1 (en) Compiler device, method, program and recording medium
US6625806B1 (en) Language processing method and language processing system improving use efficiency of cache memory
US20050081016A1 (en) Method and apparatus for program execution in a microprocessor
JP3515810B2 (en) Sort processing method and apparatus
JP4042972B2 (en) Optimized compiler, compiler program, and recording medium
US20040172624A1 (en) Compiler apparatus and method for determining locations for data in memory area
US20120042129A1 (en) Arrangement method of programs to memory space, apparatus, and recording medium
US7130857B2 (en) Method for accessing a memory unit in which sequences of notes are stored, corresponding memory unit and corresponding program
JP2021018711A (en) Task execution management device, task execution management method, and task execution management program
JP7168731B1 (en) MEMORY ACCESS CONTROL DEVICE, MEMORY ACCESS CONTROL METHOD, AND MEMORY ACCESS CONTROL PROGRAM
KR100912114B1 (en) A Memory Assignment Method for X-Y Data Transfer
US20240176488A1 (en) Memory allocation for microcontroller execution
JP3686261B2 (en) Computer, program conversion device, and program recording medium
JPH086797A (en) Constant reference optimizing processor
JP3223530B2 (en) Data transfer instruction generation processing method
JP2932812B2 (en) Language processing program execution device
KR19990011346A (en) How to Generate a Compressed Boot ROM
JP3237591B2 (en) Compiling device, compiling method, and recording medium recording compiler
JPH11265290A (en) Program loading method
CN115826946A (en) Program exception vector space optimization system, method, device and medium