JPH04340147A - Computer system - Google Patents

Computer system

Info

Publication number
JPH04340147A
JPH04340147A JP3141418A JP14141891A JPH04340147A JP H04340147 A JPH04340147 A JP H04340147A JP 3141418 A JP3141418 A JP 3141418A JP 14141891 A JP14141891 A JP 14141891A JP H04340147 A JPH04340147 A JP H04340147A
Authority
JP
Japan
Prior art keywords
segment
segments
logical
bind
binding
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
JP3141418A
Other languages
Japanese (ja)
Inventor
Shukuyu Kudo
工藤 淑裕
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 JP3141418A priority Critical patent/JPH04340147A/en
Publication of JPH04340147A publication Critical patent/JPH04340147A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To prevent the generation of a useless idle area by binding segments at the time of loading a virtual storage, and when the number of physical segments necessary for loading is small, loading the physical segments to a virtual storage space. CONSTITUTION:A BIND statement 1-3 is a statement for binding logical segments to be inputted to a loader 1-4. A load module 1-1 is inputted to a loader 1-4 and includes the segment information 1-2 of respective logical segments included in it. Logical segments are loaded from the loader to the virtual storage space 1-9. A segment binding table 1-7 is updated by a segment registering means 1-5 and referred to by a bind loading means 1-6. A segment location table 1-8 is updated by the means 1-6 and stores the addresses of logical segments loaded to the space 1-9.

Description

【発明の詳細な説明】[Detailed description of the invention]

【0001】0001

【産業上の利用分野】本発明は、セグメント方式により
仮想記憶空間の記憶保護を行う計算機システムにおける
仮想記憶ロードに利用する。
BACKGROUND OF THE INVENTION The present invention is used for loading virtual memory in a computer system that protects virtual memory space using a segment method.

【0002】本発明は、仮想記憶ロード時にセグメント
のバインドを行い、ロードに必要な物理セグメントが少
なくても仮想記憶空間にロードを行うことができる計算
機システムに関する。
The present invention relates to a computer system that binds segments when loading a virtual memory space and can load a virtual memory space even if the number of physical segments required for loading is small.

【0003】0003

【従来の技術】従来のセグメント方式で仮想記憶空間の
記憶保護を行う計算機システムの仮想記憶ロードについ
て図10を参照して説明する。以後、ロードモジュール
中のセグメントと仮想記憶空間中のセグメントを区別す
るために、それぞれ論理セグメントおよび物理セグメン
トと呼ぶ。
2. Description of the Related Art A virtual memory load of a computer system that protects virtual memory space using a conventional segment method will be described with reference to FIG. Hereinafter, in order to distinguish the segments in the load module and the segments in the virtual storage space, they will be referred to as logical segments and physical segments, respectively.

【0004】10−1および10−3は、仮想記憶空間
にロードされる論理セグメントを含むロードモジュール
である。10−2は、論理セグメントごとにコンパイラ
、あるいは連係編集プログラムによって作成されたセグ
メント情報で、論理セグメントの記憶保護属性(書き込
み可能、読み出し可能、実行可能など)と、論理セグメ
ントのサイズ情報を含んでいる。10−4は仮想記憶空
間であり、有限個の固定長の物理セグメントに分割され
ている。この物理セグメントは、番号と一対一に対応す
るようナンバリングされていて、その番号はセグメント
番号と呼ばれる。
[0004] 10-1 and 10-3 are load modules containing logical segments to be loaded into virtual storage space. 10-2 is segment information created by a compiler or linked editing program for each logical segment, and includes storage protection attributes (writable, readable, executable, etc.) of the logical segment and size information of the logical segment. There is. 10-4 is a virtual storage space, which is divided into a finite number of fixed-length physical segments. These physical segments are numbered in a one-to-one correspondence with numbers, and these numbers are called segment numbers.

【0005】論理セグメントが仮想記憶空間にロードさ
れるとき、ロードセグメント一つに対して一つの物理セ
グメントが割り当てられそこにロードされる。論理セグ
メントのサイズは物理セグメントのサイズ以下なので、
物理セグメントの論理セグメントのロードされなかった
部分は空き領域になる。したがって、ロードモジュール
(1)10−1、ロードモジュール(2)10−3の論
理セグメントをロードした場合、仮想記憶空間10−4
の物理セグメントに配置される。
When a logical segment is loaded into a virtual storage space, one physical segment is allocated to one load segment and loaded into it. Since the size of the logical segment is less than or equal to the size of the physical segment,
The unloaded portion of the logical segment of the physical segment becomes free space. Therefore, when loading the logical segments of load module (1) 10-1 and load module (2) 10-3, the virtual storage space 10-4
physical segment.

【0006】物理セグメントは有限個のために、ロード
する論理セグメントが多いとすべての論理セグメントを
仮想記憶空間にロードできなくなる場合がある。この場
合、バインダか連係編集プログラムのバインド機能を利
用して論理セグメントをバインドし、ロードモジュール
単位に論理セグメントの個数を減らしていた。そして、
この方法でも仮想記憶空間にすべての論理セグメントが
ロードできない場合は、プログラムの実行が不可能とな
っていた。
Since there are a finite number of physical segments, if there are many logical segments to be loaded, it may become impossible to load all the logical segments into the virtual storage space. In this case, logical segments are bound using the bind function of a binder or linked editing program to reduce the number of logical segments for each load module. and,
Even with this method, if all logical segments could not be loaded into the virtual storage space, the program could not be executed.

【0007】[0007]

【発明が解決しようとする課題】従来の方式では、小さ
い論理セグメントをロードすると物理セグメント中に無
駄な空き領域ができてしまうのと、ロードする論理セグ
メントが多い場合にたくさんの物理セグメントが必要に
なり、物理セグメント数の諸元が圧迫され、論理セグメ
ントの個数を減らすために論理セグメントをバインドす
るにはバインダ、あるいは連係編集プログラムのバイン
ド機能を利用してロードモジュールを作成し直さなくて
はならず、バインダ、連係編集プログラムのバインド機
能ではロードモジュール単位にしか論理セグメントをバ
インドできないため、ロードする論理セグメントのうち
バインドで減らせる論理セグメントの個数に限りがあり
、バインドによって減らせるロードに必要な物理セグメ
ントの個数が少なくなってしまう課題があった。
[Problems to be Solved by the Invention] In the conventional method, loading a small logical segment creates wasted free space in the physical segment, and when there are many logical segments to load, a large number of physical segments are required. As a result, the specifications of the number of physical segments are compressed, and in order to bind logical segments to reduce the number of logical segments, it is necessary to recreate the load module using the binder or the binding function of the linked editing program. First, the bind function of binders and linked editing programs can only bind logical segments in load module units, so there is a limit to the number of logical segments that can be reduced by binding among the logical segments to be loaded. There was a problem that the number of physical segments was reduced.

【0008】本発明はこのような課題を解決するもので
、一つの物理セグメントに複数の論理セグメントをロー
ドできるようにし、ロードに必要な物理セグメントが少
なくても仮想記憶空間にロードを行うことができる計算
機システムを提供することを目的とする。
The present invention solves these problems by making it possible to load a plurality of logical segments into one physical segment, and even if the number of physical segments required for loading is small, it is possible to load into a virtual storage space. The purpose is to provide a computer system that can

【0009】[0009]

【課題を解決するための手段】本発明は、複数のロード
モジュールからセグメント情報を入力して、セグメント
方式により仮想記憶空間の記憶保護を行う計算機システ
ムにおいて、バインドされたセグメント名を格納するセ
グメントバインドテーブルと、セグメントのロケーショ
ンを格納するセグメントロケーションテーブルとを設け
、セグメントをバインドするステートメントを入力し、
そのステートメントからバインドするセグメントのセグ
メント名を取得し、そのセグメント名の前記セグメント
バインドテーブルへの登録および更新を行うセグメント
登録手段と、ステートメントで指定のあったセグメント
をバインドして前記仮想記憶空間にロードし、そのロー
ド情報の前記セグメントロケーションテーブルへの登録
、参照、および更新を行うバインドロード手段とを含む
ローダを備えたことを特徴とする。
[Means for Solving the Problems] The present invention provides a segment binding method for storing bound segment names in a computer system that inputs segment information from a plurality of load modules and protects a virtual storage space using a segment method. Create a table and a segment location table that stores the locations of segments, enter a statement to bind the segments,
A segment registration means that acquires the segment name of the segment to be bound from the statement, registers and updates the segment name in the segment binding table, and binds the segment specified by the statement and loads it into the virtual storage space. The present invention is characterized by comprising a loader including bind load means for registering, referencing, and updating the load information in the segment location table.

【0010】0010

【作用】バインドしたいロードモジュール中の論理セグ
メントをセグメントバインドテーブルに登録し、そのテ
ーブルに登録された論理セグメントを仮想記憶空間中の
物理セグメントにすでにロードされた論理セグメントに
バインドし、さらに、セグメントロケーションテーブル
にこれから論理セグメントをロードするアドレスを登録
して論理セグメントを仮想記憶空間にロードする。
[Operation] Registers the logical segment in the load module to be bound in the segment binding table, binds the logical segment registered in the table to the logical segment already loaded in the physical segment in the virtual storage space, and then The address at which the logical segment will be loaded from now on is registered in the table, and the logical segment is loaded into the virtual storage space.

【0011】これにより、小さい論理セグメントをロー
ドしても物理セグメント中に無駄な空き領域が生じるこ
とがなくなり、ロードする論理セグメントの個数が多く
てもロードに必要な物理セグメントが少なくてすみ、物
理セグメントの数の諸元が圧迫されにくくなる。また、
論理セグメントの個数が減るために論理セグメントをバ
インドする場合に、バインダあるいは連係編集プログラ
ムのバインド機能を利用してロードモジュールを作成し
直す必要がなく、複数のロードモジュールにわたって論
理セグメントをバインドすることができ、バインドによ
ってロードに必要な物理セグメントの個数を増やすこと
ができる。
[0011] As a result, even if a small logical segment is loaded, unnecessary free space is not created in the physical segment, and even if there are many logical segments to be loaded, the number of physical segments required for loading is small, and the physical The specifications of the number of segments are less likely to be compressed. Also,
When binding logical segments to reduce the number of logical segments, there is no need to recreate the load module using the bind function of the binder or linked editing program, and it is possible to bind logical segments across multiple load modules. Binding can increase the number of physical segments required for loading.

【0012】0012

【実施例】次に、本発明実施例を図面に基づいて説明す
る。図1は本発明実施例の構成を示すブロック図である
Embodiments Next, embodiments of the present invention will be explained based on the drawings. FIG. 1 is a block diagram showing the configuration of an embodiment of the present invention.

【0013】本発明実施例は、複数のロードモジュール
1−1からセグメント情報1−2を入力して、セグメン
ト方式により仮想記憶空間1−9の記憶保護を行う計算
機システムに、バインドされたセグメント名を格納する
セグメントバインドテーブル1−7と、セグメントのロ
ケーションを格納するセグメントロケーションテーブル
1−8とを設け、セグメントをバインドするステートメ
ントを入力し、そのステートメントからバインドするセ
グメントのセグメント名を取得し、そのセグメント名の
セグメントバインドテーブル1−7への登録および更新
を行うセグメント登録手段1−5と、ステートメントで
指定のあったセグメントをバインドして仮想記憶空間1
−9にロードし、そのロード情報のセグメントロケーシ
ョンテーブル1−8への登録、参照、および更新を行う
バインドロード手段1−6とを含むローダ1−4を備え
る。
In the embodiment of the present invention, segment information 1-2 is input from a plurality of load modules 1-1, and the bound segment name is input to a computer system that protects the virtual storage space 1-9 using the segment method. A segment bind table 1-7 that stores segment locations and a segment location table 1-8 that stores segment locations are provided, input a statement to bind a segment, obtain the segment name of the segment to be bound from that statement, and Segment registration means 1-5 registers and updates segment names in segment binding table 1-7, and virtual storage space 1 binds segments specified by statements.
-9, and a bind load means 1-6 for registering, referencing, and updating the load information in the segment location table 1-8.

【0014】BINDステートメント1−3はローダ1
−4に入力する論理セグメントをバインドするステート
メントであり、ロードモジュール1−1はローダ1−4
に入力され、その中に含まれる各論理セグメントについ
てセグメント情報1−2を包含する。仮想記憶空間1−
9にはローダによって論理セグメントがロードされる。 セグメントバインドテーブル1−7はセグメント登録手
段1−5によって更新され、バインドロード手段1−6
によって参照される。
BIND statements 1-3 are loader 1
This is a statement that binds the logical segment input to loader 1-4.
contains segment information 1-2 for each logical segment contained therein. Virtual storage space 1-
9, a logical segment is loaded by the loader. The segment binding table 1-7 is updated by the segment registration means 1-5, and the segment binding table 1-7 is updated by the segment registration means 1-5.
referenced by

【0015】セグメントロケーションテーブル1−8は
バインドロード手段1−6によって更新され、仮想記憶
空間1−9にロードされた論理セグメントのアドレスを
格納する。
The segment location table 1-8 is updated by the bind load means 1-6 and stores the address of the logical segment loaded into the virtual storage space 1-9.

【0016】図2は本発明実施例におけるBINDステ
ートメントを説明する図である。
FIG. 2 is a diagram illustrating the BIND statement in the embodiment of the present invention.

【0017】“//BIND”は論理セグメントをバイ
ンドしてロードする要求を示し、セグメント名としてバ
インドする論理セグメントの名前を記述する。“//B
IND”とセグメント名とは“Δ”(空白)によって区
切られる。セグメント名とセグメント名との間は“,”
(コンマ)によって区切られ、次のステートメントとは
“;”によって区切られる。
"//BIND" indicates a request to bind and load a logical segment, and describes the name of the logical segment to be bound as the segment name. “//B
IND” and the segment name are separated by “Δ” (blank). Between the segment names is “,”.
(comma) and separated from the next statement by “;”.

【0018】次に、セグメントバインドテーブルについ
て説明する。図5は本発明実施例におけるセグメントバ
インドテーブルの構成を示す図である。
Next, the segment binding table will be explained. FIG. 5 is a diagram showing the structure of the segment binding table in the embodiment of the present invention.

【0019】セグメントバインドテーブル1−7は、セ
グメント登録手段1−5によって作成更新され、バイン
ドテーブルディレクトリ5−1、バインドテーブル5−
2、セグメント情報テーブル5−3により構成される。
The segment binding table 1-7 is created and updated by the segment registration means 1-5, and the binding table directory 5-1 and the binding table 5-7 are created and updated by the segment registration means 1-5.
2. Consists of segment information table 5-3.

【0020】バインドテーブルディレクトリ5−1の各
エントリは図1に示すBINDステートメント1−3で
指定された論理セグメントごとに作成され、BINDス
テートメント1−3で指定された論理セグメントのセグ
メント名5−4とその論理セグメントの対応するバイン
ドテーブルへのポインタ5−5からなる。
Each entry in the bind table directory 5-1 is created for each logical segment specified by the BIND statement 1-3 shown in FIG. 1, and the segment name 5-4 of the logical segment specified by the BIND statement 1-3 is and a pointer 5-5 to the corresponding binding table of that logical segment.

【0021】バインドテーブル5−2はBINDステー
トメント1−3ごとに作成され、その各エントリは論理
セグメントごとに作成され、セグメント名5−6とそれ
をもつ論理セグメントに対応するセグメント情報テーブ
ルへのポインタ5−7からなる。ロード時には、セグメ
ントバインドテーブル1−7に格納されているセグメン
ト名をもつロードセグメント同志がバインドされる。
The bind table 5-2 is created for each BIND statement 1-3, and each entry is created for each logical segment, and contains a segment name 5-6 and a pointer to the segment information table corresponding to the logical segment that has it. It consists of 5-7. At the time of loading, load segments having segment names stored in the segment binding table 1-7 are bound to each other.

【0022】次に、セグメント登録手段1−5の処理に
ついて説明する。図6は本発明実施例におけるセグメン
トバインドテーブルの作成例を示す図、図7は本発明実
施例におけるセグメント登録手段の処理の流れを示す流
れ図である。ここで、本実施例の場合、論理セグメント
のバインド可能の条件を論理セグメントの属性が一致し
ていることとする。
Next, the processing of the segment registration means 1-5 will be explained. FIG. 6 is a diagram showing an example of creating a segment binding table in the embodiment of the present invention, and FIG. 7 is a flowchart showing the flow of processing by the segment registration means in the embodiment of the present invention. Here, in the case of this embodiment, it is assumed that the condition for logical segments to be bindable is that the attributes of the logical segments match.

【0023】ローダ1−4にBINDステートメント6
−2、6−3を含むBINDステートメント6−1およ
びロードモジュールが入力されたとする。ローダ1−4
はそのBINDステートメントを検出するとセグメント
登録手段1−5を起動する。最初に、BINDステート
メント6−2を検出したとする。このときセグメント登
録手段1−5が起動し、BINDステートメント6−2
中に記述されているセグメント名をもつすべての論理セ
グメントのセグメント情報テーブルからセグメント属性
を得る(ステップ7−1)。
BIND statement 6 in loader 1-4
Assume that a BIND statement 6-1 including -2 and 6-3 and a load module are input. Loader 1-4
detects the BIND statement and activates the segment registration means 1-5. Assume that the BIND statement 6-2 is first detected. At this time, the segment registration means 1-5 is activated, and the BIND statement 6-2
Segment attributes are obtained from the segment information table of all logical segments having the segment names described therein (step 7-1).

【0024】次に、指定されたロードセグメントがバイ
ンド可能かどうかをチェックするためにその属性が一致
しているかどうかをチェックする(ステップ7−2)。
Next, in order to check whether the specified load segment can be bound, it is checked whether the attributes match (step 7-2).

【0025】一致していない場合はバインドができない
ので、このBINDステートメント6−2を無効にし、
エラー処理を行い(ステップ7−8)、処理を終了する
。すべての論理セグメントの属性が一致している場合、
バインドテーブルディレクトリを登録する論理セグメン
トの個数分作成し拡張する(ステップ7−3)。その後
、セグメント名の格納エリアにBINDステートメント
6−2に記述されたセグメント名をセットする(ステッ
プ7−4)。論理セグメントであるセグメントA、B、
Cのセグメント名を“A”、“B”、“C”とすると、
図5に示すセグメント名5−4のようA、B、Cと登録
される。
[0025] If they do not match, binding cannot be performed, so invalidate this BIND statement 6-2 and
Error processing is performed (step 7-8), and the processing is terminated. If all logical segment attributes match,
Bind table directories are created and expanded by the number of logical segments to be registered (step 7-3). Thereafter, the segment name written in the BIND statement 6-2 is set in the segment name storage area (step 7-4). Segments A, B, which are logical segments,
If the segment names of C are “A”, “B”, and “C”,
Segment names 5-4 shown in FIG. 5 are registered as A, B, and C.

【0026】次に、処理中のBINDステートメントに
対応するバインドテーブルを作成するための領域を確保
する(ステップ7−5)。そして、バインドテーブルデ
ィレクトリの論理セグメントの対応するバインドテーブ
ルへのポインタの格納エリアに作成したバインドテーブ
ルのアドレスをセットする(ステップ7−6)。この場
合、図6の6−5に示すようにバインドテーブル1のア
ドレスがセットされる。次いで、作成したバインドテー
ブルに、このバインドテーブルに対応する各論理セグメ
ントのセグメント名とセグメント情報テーブルのアドレ
スをセットし(ステップ7−7)、処理を終了する。こ
の場合、図6に示す6−6、6−7のようになる。
Next, an area for creating a bind table corresponding to the BIND statement being processed is secured (step 7-5). Then, the address of the created bind table is set in the storage area of the pointer to the corresponding bind table in the logical segment of the bind table directory (step 7-6). In this case, the address of the bind table 1 is set as shown at 6-5 in FIG. Next, the segment name of each logical segment corresponding to this bind table and the address of the segment information table are set in the created bind table (step 7-7), and the process ends. In this case, the results are as shown in 6-6 and 6-7 shown in FIG.

【0027】BINDステートメント6−3をローダが
検出すると、再度この手段が起動し同様の処理を繰り返
す。この場合、すべてのBINDステートメントの処理
を終えると、図6に示すようなセグメントバインドテー
ブルが作成される。
When the loader detects the BIND statement 6-3, this means is activated again and the same process is repeated. In this case, when all BIND statements are processed, a segment bind table as shown in FIG. 6 is created.

【0028】次に、セグメントロケーションテーブルに
ついて説明する。図3は本発明実施例におけるセグメン
トロケーションテーブルの構成を示す図である。セグメ
ントロケーションテーブル1−8は、仮想記憶空間1−
9にロードされた論理セグメントのセグメント名3−1
が格納されるエリアと、論理セグメントがロードされた
物理セグメントのセグメント番号3−2が格納されるエ
リアと、論理セグメントがロードされた物理セグメント
の先頭からロードされた論理セグメントの先頭までのオ
フセット(バイト単位)3−3が格納されるエリアと、
セグメント情報3−4が格納されるエリアとにより構成
され、前述のセグメント情報テーブルの内容が格納され
る。
Next, the segment location table will be explained. FIG. 3 is a diagram showing the structure of the segment location table in the embodiment of the present invention. Segment location table 1-8 is virtual storage space 1-8.
Segment name 3-1 of logical segment loaded into 9
, the area where the segment number 3-2 of the physical segment loaded with the logical segment is stored, and the offset from the beginning of the physical segment loaded with the logical segment to the beginning of the loaded logical segment ( (byte unit) 3-3 is stored,
An area in which segment information 3-4 is stored, and the contents of the segment information table described above are stored therein.

【0029】次に、バインドロード手段1−6について
図4、図6、図8および図9を参照して説明する。図4
は本発明実施例におけるセグメントロケーションテーブ
ルの作成例を示す図、図8は本発明実施例におけるバイ
ンドロード手段の処理の流れを示す流れ図、図9は本発
明実施例におけるセグメントロード後の仮想記憶空間の
レイアウトを示す図である。
Next, the bind load means 1-6 will be explained with reference to FIGS. 4, 6, 8 and 9. Figure 4
is a diagram showing an example of creating a segment location table in the embodiment of the present invention, FIG. 8 is a flowchart showing the flow of processing of the bind load means in the embodiment of the present invention, and FIG. 9 is a diagram showing the virtual storage space after segment loading in the embodiment of the present invention. FIG.

【0030】ローダ1−4に、BINDステートメント
6−1と、ロードモジュール9−1および9−2が入力
され、仮想記憶空間9−3に、論理セグメントがロード
されるとする。図9中の9−4は物理セグメントごとに
割り振られたセグメント情報である。
Assume that a BIND statement 6-1 and load modules 9-1 and 9-2 are input to the loader 1-4, and a logical segment is loaded into the virtual storage space 9-3. 9-4 in FIG. 9 is segment information allocated to each physical segment.

【0031】この場合、図6に示すようなセグメントバ
インドテーブルが作成される。最初に論理セグメントで
あるセグメントF(以下Fという。セグメントA、…に
ついても同様)のロード要求が到来したとする(ステッ
プ8−1)。このとき、Fのセグメント名“F”がバイ
ンドテーブルディレクトリに登録されているか否かチェ
ックする(ステップ8−2)。“F”が登録されていな
い場合には、新規にセグメント番号と物理セグメントを
割り当て(ステップ8−7)、セグメントロケーション
テーブルを更新する(ステップ8−8)。
In this case, a segment binding table as shown in FIG. 6 is created. Assume that a load request for segment F (hereinafter referred to as F; the same applies to segments A, . . . ), which is a logical segment, arrives first (step 8-1). At this time, it is checked whether the segment name "F" of F is registered in the bind table directory (step 8-2). If "F" is not registered, a new segment number and physical segment are assigned (step 8-7), and the segment location table is updated (step 8-8).

【0032】最初に、セグメント名“F”、次にセグメ
ント番号(この場合は図9に示す#3)、先頭からのオ
フセット(この場合は0)、セグメント情報がセットさ
れ、図4に示す4−1のようになる。セグメント情報は
、セグメント情報テーブルより得ることができる。そし
て、Fを図9の9−5に示すように“#3”の物理セグ
メントの先頭からロードし(ステップ8−9)、処理を
終了する。
First, the segment name "F", then the segment number (#3 shown in FIG. 9 in this case), the offset from the beginning (0 in this case), and segment information are set, and then the segment number 4 shown in FIG. -1. Segment information can be obtained from the segment information table. Then, as shown at 9-5 in FIG. 9, F is loaded from the beginning of the physical segment "#3" (step 8-9), and the process ends.

【0033】次に、Aのロード要求がきたとする(ステ
ップ8−1)。Aのセグメント名“A”がバインドテー
ブルディレクトリに登録されているか否かチェックする
(ステップ8−2)。この場合図6の6−4に示すよう
に登録されているので、6−5よりAに対応するバイン
ドテーブル(1)を得る(ステップ8−3)。
Next, assume that a load request for A has arrived (step 8-1). It is checked whether the segment name "A" of A is registered in the bind table directory (step 8-2). In this case, since it is registered as shown in 6-4 of FIG. 6, the bind table (1) corresponding to A is obtained from 6-5 (step 8-3).

【0034】次いで、バインドテーブル(1)にセグメ
ント名が格納されている論理セグメントのセグメント名
がセグメントロケーションテーブル1−8に格納されて
いるか否かチェックする(ステップ8−4)。仮想記憶
空間1−9にはF以外まだロードされていないとすると
、該当するセグメント名が見つからないので新規にセグ
メント番号(この場合、#0とする)と物理セグメント
を割り当てる(ステップ8−7)。そして、セグメント
ロケーションテーブル1−8を図4の4−2に示すよう
に更新し(ステップ8−8)、図9の9−6に示すよう
にAをロードする(ステップ8−9)。
Next, it is checked whether the segment name of the logical segment whose segment name is stored in the bind table (1) is stored in the segment location table 1-8 (step 8-4). Assuming that nothing but F has been loaded into virtual storage space 1-9, the corresponding segment name has not been found, so a new segment number (in this case #0) and physical segment are assigned (step 8-7). . Then, the segment location table 1-8 is updated as shown in 4-2 in FIG. 4 (step 8-8), and A is loaded as shown in 9-6 in FIG. 9 (step 8-9).

【0035】次に、Bのロード要求がきたとする(ステ
ップ8−1)。このときBのセグメント名“B”がバイ
ンドテーブルディレクトリに登録されているか否かチェ
ックする(ステップ8−2)。図6の6−4に示すよう
に登録されていれば、同図の6−5よりBに対応するバ
インドテーブル(1)を得る(ステップ8−3)。
Next, suppose that a load request for B comes (step 8-1). At this time, it is checked whether the segment name "B" of B is registered in the bind table directory (step 8-2). If it is registered as shown in 6-4 in FIG. 6, the bind table (1) corresponding to B is obtained from 6-5 in the same figure (step 8-3).

【0036】次いで、バインドテーブル(1)にセグメ
ント名が格納されている論理セグメントのセグメント名
がセグメントロケーションテーブル1−8に格納されて
いるか否かチェックする(ステップ8−4)。この場合
、セグメント名“A”が見つかればAの物理セグメント
の先頭からのオフセット(この場合は図4に示すように
0)とセグメント情報中のセグメントサイズ(この場合
は図4に示すように300とする)をセグメントロケー
ションテーブル1−8から得て、それらを加えることに
よってAのすぐ後ろまでのオフセットを求める(ステッ
プ8−5)。
Next, it is checked whether the segment name of the logical segment whose segment name is stored in the bind table (1) is stored in the segment location table 1-8 (step 8-4). In this case, if the segment name "A" is found, the offset from the beginning of the physical segment of A (in this case, 0 as shown in Figure 4) and the segment size in the segment information (in this case, 300 as shown in Figure 4) ) are obtained from the segment location table 1-8, and by adding them, the offset to immediately after A is determined (step 8-5).

【0037】その後、BをAの後ろにロードした場合、
BがAのロードされている物理セグメントに入りきれる
か否かチェックする(ステップ8−6)。これは、先程
求めたオフセットにBのサイズを加えてみて、それが物
理セグメントのサイズより大きいか小さいかでチェック
できる。大きい場合は、Bは入りきれなく、小さい場合
は入りきれるのでその物理セグメントにロードできるこ
とになる。この場合Bは入り切るものとすると、セグメ
ントロケーションテーブル1−8を更新する(ステップ
8−8)。Bのロードされるセグメント番号がAと同じ
“#0”で、物理セグメントの先頭からのオフセットは
ステップ8−5で求めたAのすぐ後ろまでのオフセット
の“300”がセットされる。そして、図9の9−7に
示すようにBをロードし(ステップ8−9)、処理を終
了する。
[0037] After that, if B is loaded after A,
Check whether B can fit into the loaded physical segment of A (step 8-6). This can be checked by adding the size of B to the offset obtained earlier and checking whether it is larger or smaller than the physical segment size. If it is large, B cannot fit in it, but if it is small, it can fit in it and can be loaded into that physical segment. In this case, if it is assumed that B can fit, the segment location table 1-8 is updated (step 8-8). The loaded segment number of B is "#0", which is the same as that of A, and the offset from the beginning of the physical segment is set to "300", which is the offset immediately after A obtained in step 8-5. Then, as shown at 9-7 in FIG. 9, B is loaded (step 8-9), and the process ends.

【0038】次に、Cのロード要求がきたとする。この
ときBと同様に処理が行われるが、CはA、Bのロード
された物理セグメントに入り切れないとすると(ステッ
プ8−6)、新規にセグメント番号(この場合#1とす
る)と物理セグメントとを割り当て(ステップ8−7)
、セグメントロケーションテーブル1−8を更新し(ス
テップ8−8)、図9の9−8に示すようにCをロード
する(ステップ8−9)。
Next, suppose that a load request for C comes. At this time, the same processing as B is performed, but if C cannot fit into the loaded physical segments of A and B (step 8-6), a new segment number (#1 in this case) and physical Assign segments (step 8-7)
, updates the segment location table 1-8 (step 8-8), and loads C as shown at 9-8 in FIG. 9 (step 8-9).

【0039】以上のようにして、論理セグメントのロー
ド要求をすべて処理し終えると、セグメントロケーショ
ンテーブルは図4に示すようになり、仮想記憶空間は図
9に示すようになる。
When all logical segment load requests are processed as described above, the segment location table will become as shown in FIG. 4, and the virtual storage space will become as shown in FIG. 9.

【0040】[0040]

【発明の効果】以上説明したように本発明によれば、小
さい論理セグメントをロードしても物理セグメント中に
無駄な空き領域が生じることなく、ロードする論理セグ
メントの個数が多くてもロードに必要な物理セグメント
が少なくてすみ、また、物理セグメント数の諸元が圧迫
されにくく、論理セグメントの個数を減らすために論理
セグメントをバインドとする場合に、バインダあるいは
連係編集プログラムのバインド機能を利用してロードモ
ジュールを作成し直す必要がなく、例えば、動的リンク
時の場合には複数のロードモジュールにわたって論理セ
グメントをバインドすることができ、バインドによって
ロードに必要な物理セグメントの個数を増やすことがで
きる効果がある。
[Effects of the Invention] As explained above, according to the present invention, even if a small logical segment is loaded, unnecessary free space is not created in a physical segment, and even if there are a large number of logical segments to be loaded, it is necessary for loading. When binding logical segments to reduce the number of logical segments, it is possible to reduce the number of logical segments by using the binding function of a binder or linked editing program. There is no need to recreate the load module; for example, when dynamically linking, logical segments can be bound across multiple load modules, and binding can increase the number of physical segments required for loading. There is.

【図面の簡単な説明】[Brief explanation of the drawing]

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

【図2】本発明実施例におけるBINDステートメント
を説明する図。
FIG. 2 is a diagram illustrating a BIND statement in the embodiment of the present invention.

【図3】本発明実施例におけるセグメントロケーション
テーブルの構成を示す図。
FIG. 3 is a diagram showing the configuration of a segment location table in the embodiment of the present invention.

【図4】本発明実施例におけるセグメントロケーション
テーブルの作成例を示す図。
FIG. 4 is a diagram showing an example of creating a segment location table in the embodiment of the present invention.

【図5】本発明実施例におけるセグメントバインドテー
ブルの構成を示す図。
FIG. 5 is a diagram showing the configuration of a segment binding table in the embodiment of the present invention.

【図6】本発明実施例におけるセグメントバインドテー
ブルの作成例を示す図。
FIG. 6 is a diagram showing an example of creating a segment binding table in the embodiment of the present invention.

【図7】本発明実施例におけるセグメント登録手段の処
理の流れを示す流れ図。
FIG. 7 is a flowchart showing the processing flow of the segment registration means in the embodiment of the present invention.

【図8】本発明実施例におけるバインドロード手段の処
理の流れを示す流れ図。
FIG. 8 is a flowchart showing the processing flow of the bind load means in the embodiment of the present invention.

【図9】本発明実施例におけるセグメントロード後の仮
想記憶空間のレイアウトを示す図。
FIG. 9 is a diagram showing the layout of virtual storage space after segment loading in the embodiment of this invention.

【図10】従来例におけるセグメントを仮想記憶空間に
ロードしたときのレイアウトを示す図。
FIG. 10 is a diagram showing a layout when segments are loaded into a virtual storage space in a conventional example.

【符号の説明】[Explanation of symbols]

1−1  ロードモジュール 1−2  セグメント情報 1−3BINDステートメント 1−4  ローダ 1−5  セグメント登録手段 1−6  バインドロード手段 1−7  セグメントバインドテーブル1−8  セグ
メントロケーションテーブル1−9  仮想記憶空間
1-1 Load module 1-2 Segment information 1-3 BIND statement 1-4 Loader 1-5 Segment registration means 1-6 Bind load means 1-7 Segment bind table 1-8 Segment location table 1-9 Virtual storage space

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】  複数のロードモジュールからセグメン
ト情報を入力して、セグメント方式により仮想記憶空間
の記憶保護を行う計算機システムにおいて、バインドさ
れたセグメント名を格納するセグメントバインドテーブ
ルと、セグメントのロケーションを格納するセグメント
ロケーションテーブルとを設け、セグメントをバインド
するステートメントを入力し、そのステートメントから
バインドするセグメントのセグメント名を取得し、その
セグメント名の前記セグメントバインドテーブルへの登
録および更新を行うセグメント登録手段と、ステートメ
ントで指定のあったセグメントをバインドして前記仮想
記憶空間にロードし、そのロード情報の前記セグメント
ロケーションテーブルへの登録、参照、および更新を行
うバインドロード手段とを含むローダを備えたことを特
徴とする計算機システム。
Claim 1: In a computer system that inputs segment information from a plurality of load modules and protects virtual storage space using a segment method, there is provided a segment binding table that stores bound segment names and stores the location of the segments. segment registration means for inputting a statement for binding a segment, acquiring a segment name of a segment to be bound from the statement, and registering and updating the segment name in the segment binding table; The present invention is characterized by comprising a loader including a bind load means for binding and loading a segment specified by a statement into the virtual storage space, and registering, referencing, and updating the load information in the segment location table. A computer system that
JP3141418A 1991-05-16 1991-05-16 Computer system Pending JPH04340147A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3141418A JPH04340147A (en) 1991-05-16 1991-05-16 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3141418A JPH04340147A (en) 1991-05-16 1991-05-16 Computer system

Publications (1)

Publication Number Publication Date
JPH04340147A true JPH04340147A (en) 1992-11-26

Family

ID=15291548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3141418A Pending JPH04340147A (en) 1991-05-16 1991-05-16 Computer system

Country Status (1)

Country Link
JP (1) JPH04340147A (en)

Similar Documents

Publication Publication Date Title
Bensoussan et al. The Multics virtual memory: Concepts and design
US6681239B1 (en) Computer system having shared address space among multiple virtual address spaces
US20070174355A1 (en) System and method for managing log information for transaction
JPH04340147A (en) Computer system
JPH08129492A (en) Resource exclusion check system and resource exclusion check method
JP3697735B2 (en) Information processing system and method
CN100395730C (en) Data source based virtual memory processing method
JP2990609B2 (en) Computer system
JP2841363B2 (en) External module acquisition method
JP2004151822A (en) Shared library binding method and program
JPH02156348A (en) Overflow area control method for plural hash tables
KR101058059B1 (en) Mounting device of embedded file system and its method
JPH01207824A (en) Module coupling control system
JPH0221610B2 (en)
JPS6144339B2 (en)
JPH09204326A (en) Image data storage controller
JPH04117523A (en) program editing device
CN112602065A (en) Fast initialization of complex in-memory data structures
JPS6250945A (en) Program loading method
JPH07141189A (en) Overlay linking system
JPH03255533A (en) Symbol managing system in programming language processing system
JPH01205331A (en) Large-scale program link system
JPH02244237A (en) Address relocation system at dynamic link
JPH08123712A (en) File management system
JPH0652028A (en) File management device