JPH04340147A - 計算機システム - Google Patents
計算機システム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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、セグメント方式により
仮想記憶空間の記憶保護を行う計算機システムにおける
仮想記憶ロードに利用する。
仮想記憶空間の記憶保護を行う計算機システムにおける
仮想記憶ロードに利用する。
【0002】本発明は、仮想記憶ロード時にセグメント
のバインドを行い、ロードに必要な物理セグメントが少
なくても仮想記憶空間にロードを行うことができる計算
機システムに関する。
のバインドを行い、ロードに必要な物理セグメントが少
なくても仮想記憶空間にロードを行うことができる計算
機システムに関する。
【0003】
【従来の技術】従来のセグメント方式で仮想記憶空間の
記憶保護を行う計算機システムの仮想記憶ロードについ
て図10を参照して説明する。以後、ロードモジュール
中のセグメントと仮想記憶空間中のセグメントを区別す
るために、それぞれ論理セグメントおよび物理セグメン
トと呼ぶ。
記憶保護を行う計算機システムの仮想記憶ロードについ
て図10を参照して説明する。以後、ロードモジュール
中のセグメントと仮想記憶空間中のセグメントを区別す
るために、それぞれ論理セグメントおよび物理セグメン
トと呼ぶ。
【0004】10−1および10−3は、仮想記憶空間
にロードされる論理セグメントを含むロードモジュール
である。10−2は、論理セグメントごとにコンパイラ
、あるいは連係編集プログラムによって作成されたセグ
メント情報で、論理セグメントの記憶保護属性(書き込
み可能、読み出し可能、実行可能など)と、論理セグメ
ントのサイズ情報を含んでいる。10−4は仮想記憶空
間であり、有限個の固定長の物理セグメントに分割され
ている。この物理セグメントは、番号と一対一に対応す
るようナンバリングされていて、その番号はセグメント
番号と呼ばれる。
にロードされる論理セグメントを含むロードモジュール
である。10−2は、論理セグメントごとにコンパイラ
、あるいは連係編集プログラムによって作成されたセグ
メント情報で、論理セグメントの記憶保護属性(書き込
み可能、読み出し可能、実行可能など)と、論理セグメ
ントのサイズ情報を含んでいる。10−4は仮想記憶空
間であり、有限個の固定長の物理セグメントに分割され
ている。この物理セグメントは、番号と一対一に対応す
るようナンバリングされていて、その番号はセグメント
番号と呼ばれる。
【0005】論理セグメントが仮想記憶空間にロードさ
れるとき、ロードセグメント一つに対して一つの物理セ
グメントが割り当てられそこにロードされる。論理セグ
メントのサイズは物理セグメントのサイズ以下なので、
物理セグメントの論理セグメントのロードされなかった
部分は空き領域になる。したがって、ロードモジュール
(1)10−1、ロードモジュール(2)10−3の論
理セグメントをロードした場合、仮想記憶空間10−4
の物理セグメントに配置される。
れるとき、ロードセグメント一つに対して一つの物理セ
グメントが割り当てられそこにロードされる。論理セグ
メントのサイズは物理セグメントのサイズ以下なので、
物理セグメントの論理セグメントのロードされなかった
部分は空き領域になる。したがって、ロードモジュール
(1)10−1、ロードモジュール(2)10−3の論
理セグメントをロードした場合、仮想記憶空間10−4
の物理セグメントに配置される。
【0006】物理セグメントは有限個のために、ロード
する論理セグメントが多いとすべての論理セグメントを
仮想記憶空間にロードできなくなる場合がある。この場
合、バインダか連係編集プログラムのバインド機能を利
用して論理セグメントをバインドし、ロードモジュール
単位に論理セグメントの個数を減らしていた。そして、
この方法でも仮想記憶空間にすべての論理セグメントが
ロードできない場合は、プログラムの実行が不可能とな
っていた。
する論理セグメントが多いとすべての論理セグメントを
仮想記憶空間にロードできなくなる場合がある。この場
合、バインダか連係編集プログラムのバインド機能を利
用して論理セグメントをバインドし、ロードモジュール
単位に論理セグメントの個数を減らしていた。そして、
この方法でも仮想記憶空間にすべての論理セグメントが
ロードできない場合は、プログラムの実行が不可能とな
っていた。
【0007】
【発明が解決しようとする課題】従来の方式では、小さ
い論理セグメントをロードすると物理セグメント中に無
駄な空き領域ができてしまうのと、ロードする論理セグ
メントが多い場合にたくさんの物理セグメントが必要に
なり、物理セグメント数の諸元が圧迫され、論理セグメ
ントの個数を減らすために論理セグメントをバインドす
るにはバインダ、あるいは連係編集プログラムのバイン
ド機能を利用してロードモジュールを作成し直さなくて
はならず、バインダ、連係編集プログラムのバインド機
能ではロードモジュール単位にしか論理セグメントをバ
インドできないため、ロードする論理セグメントのうち
バインドで減らせる論理セグメントの個数に限りがあり
、バインドによって減らせるロードに必要な物理セグメ
ントの個数が少なくなってしまう課題があった。
い論理セグメントをロードすると物理セグメント中に無
駄な空き領域ができてしまうのと、ロードする論理セグ
メントが多い場合にたくさんの物理セグメントが必要に
なり、物理セグメント数の諸元が圧迫され、論理セグメ
ントの個数を減らすために論理セグメントをバインドす
るにはバインダ、あるいは連係編集プログラムのバイン
ド機能を利用してロードモジュールを作成し直さなくて
はならず、バインダ、連係編集プログラムのバインド機
能ではロードモジュール単位にしか論理セグメントをバ
インドできないため、ロードする論理セグメントのうち
バインドで減らせる論理セグメントの個数に限りがあり
、バインドによって減らせるロードに必要な物理セグメ
ントの個数が少なくなってしまう課題があった。
【0008】本発明はこのような課題を解決するもので
、一つの物理セグメントに複数の論理セグメントをロー
ドできるようにし、ロードに必要な物理セグメントが少
なくても仮想記憶空間にロードを行うことができる計算
機システムを提供することを目的とする。
、一つの物理セグメントに複数の論理セグメントをロー
ドできるようにし、ロードに必要な物理セグメントが少
なくても仮想記憶空間にロードを行うことができる計算
機システムを提供することを目的とする。
【0009】
【課題を解決するための手段】本発明は、複数のロード
モジュールからセグメント情報を入力して、セグメント
方式により仮想記憶空間の記憶保護を行う計算機システ
ムにおいて、バインドされたセグメント名を格納するセ
グメントバインドテーブルと、セグメントのロケーショ
ンを格納するセグメントロケーションテーブルとを設け
、セグメントをバインドするステートメントを入力し、
そのステートメントからバインドするセグメントのセグ
メント名を取得し、そのセグメント名の前記セグメント
バインドテーブルへの登録および更新を行うセグメント
登録手段と、ステートメントで指定のあったセグメント
をバインドして前記仮想記憶空間にロードし、そのロー
ド情報の前記セグメントロケーションテーブルへの登録
、参照、および更新を行うバインドロード手段とを含む
ローダを備えたことを特徴とする。
モジュールからセグメント情報を入力して、セグメント
方式により仮想記憶空間の記憶保護を行う計算機システ
ムにおいて、バインドされたセグメント名を格納するセ
グメントバインドテーブルと、セグメントのロケーショ
ンを格納するセグメントロケーションテーブルとを設け
、セグメントをバインドするステートメントを入力し、
そのステートメントからバインドするセグメントのセグ
メント名を取得し、そのセグメント名の前記セグメント
バインドテーブルへの登録および更新を行うセグメント
登録手段と、ステートメントで指定のあったセグメント
をバインドして前記仮想記憶空間にロードし、そのロー
ド情報の前記セグメントロケーションテーブルへの登録
、参照、および更新を行うバインドロード手段とを含む
ローダを備えたことを特徴とする。
【0010】
【作用】バインドしたいロードモジュール中の論理セグ
メントをセグメントバインドテーブルに登録し、そのテ
ーブルに登録された論理セグメントを仮想記憶空間中の
物理セグメントにすでにロードされた論理セグメントに
バインドし、さらに、セグメントロケーションテーブル
にこれから論理セグメントをロードするアドレスを登録
して論理セグメントを仮想記憶空間にロードする。
メントをセグメントバインドテーブルに登録し、そのテ
ーブルに登録された論理セグメントを仮想記憶空間中の
物理セグメントにすでにロードされた論理セグメントに
バインドし、さらに、セグメントロケーションテーブル
にこれから論理セグメントをロードするアドレスを登録
して論理セグメントを仮想記憶空間にロードする。
【0011】これにより、小さい論理セグメントをロー
ドしても物理セグメント中に無駄な空き領域が生じるこ
とがなくなり、ロードする論理セグメントの個数が多く
てもロードに必要な物理セグメントが少なくてすみ、物
理セグメントの数の諸元が圧迫されにくくなる。また、
論理セグメントの個数が減るために論理セグメントをバ
インドする場合に、バインダあるいは連係編集プログラ
ムのバインド機能を利用してロードモジュールを作成し
直す必要がなく、複数のロードモジュールにわたって論
理セグメントをバインドすることができ、バインドによ
ってロードに必要な物理セグメントの個数を増やすこと
ができる。
ドしても物理セグメント中に無駄な空き領域が生じるこ
とがなくなり、ロードする論理セグメントの個数が多く
てもロードに必要な物理セグメントが少なくてすみ、物
理セグメントの数の諸元が圧迫されにくくなる。また、
論理セグメントの個数が減るために論理セグメントをバ
インドする場合に、バインダあるいは連係編集プログラ
ムのバインド機能を利用してロードモジュールを作成し
直す必要がなく、複数のロードモジュールにわたって論
理セグメントをバインドすることができ、バインドによ
ってロードに必要な物理セグメントの個数を増やすこと
ができる。
【0012】
【実施例】次に、本発明実施例を図面に基づいて説明す
る。図1は本発明実施例の構成を示すブロック図である
。
る。図1は本発明実施例の構成を示すブロック図である
。
【0013】本発明実施例は、複数のロードモジュール
1−1からセグメント情報1−2を入力して、セグメン
ト方式により仮想記憶空間1−9の記憶保護を行う計算
機システムに、バインドされたセグメント名を格納する
セグメントバインドテーブル1−7と、セグメントのロ
ケーションを格納するセグメントロケーションテーブル
1−8とを設け、セグメントをバインドするステートメ
ントを入力し、そのステートメントからバインドするセ
グメントのセグメント名を取得し、そのセグメント名の
セグメントバインドテーブル1−7への登録および更新
を行うセグメント登録手段1−5と、ステートメントで
指定のあったセグメントをバインドして仮想記憶空間1
−9にロードし、そのロード情報のセグメントロケーシ
ョンテーブル1−8への登録、参照、および更新を行う
バインドロード手段1−6とを含むローダ1−4を備え
る。
1−1からセグメント情報1−2を入力して、セグメン
ト方式により仮想記憶空間1−9の記憶保護を行う計算
機システムに、バインドされたセグメント名を格納する
セグメントバインドテーブル1−7と、セグメントのロ
ケーションを格納するセグメントロケーションテーブル
1−8とを設け、セグメントをバインドするステートメ
ントを入力し、そのステートメントからバインドするセ
グメントのセグメント名を取得し、そのセグメント名の
セグメントバインドテーブル1−7への登録および更新
を行うセグメント登録手段1−5と、ステートメントで
指定のあったセグメントをバインドして仮想記憶空間1
−9にロードし、そのロード情報のセグメントロケーシ
ョンテーブル1−8への登録、参照、および更新を行う
バインドロード手段1−6とを含むローダ1−4を備え
る。
【0014】BINDステートメント1−3はローダ1
−4に入力する論理セグメントをバインドするステート
メントであり、ロードモジュール1−1はローダ1−4
に入力され、その中に含まれる各論理セグメントについ
てセグメント情報1−2を包含する。仮想記憶空間1−
9にはローダによって論理セグメントがロードされる。 セグメントバインドテーブル1−7はセグメント登録手
段1−5によって更新され、バインドロード手段1−6
によって参照される。
−4に入力する論理セグメントをバインドするステート
メントであり、ロードモジュール1−1はローダ1−4
に入力され、その中に含まれる各論理セグメントについ
てセグメント情報1−2を包含する。仮想記憶空間1−
9にはローダによって論理セグメントがロードされる。 セグメントバインドテーブル1−7はセグメント登録手
段1−5によって更新され、バインドロード手段1−6
によって参照される。
【0015】セグメントロケーションテーブル1−8は
バインドロード手段1−6によって更新され、仮想記憶
空間1−9にロードされた論理セグメントのアドレスを
格納する。
バインドロード手段1−6によって更新され、仮想記憶
空間1−9にロードされた論理セグメントのアドレスを
格納する。
【0016】図2は本発明実施例におけるBINDステ
ートメントを説明する図である。
ートメントを説明する図である。
【0017】“//BIND”は論理セグメントをバイ
ンドしてロードする要求を示し、セグメント名としてバ
インドする論理セグメントの名前を記述する。“//B
IND”とセグメント名とは“Δ”(空白)によって区
切られる。セグメント名とセグメント名との間は“,”
(コンマ)によって区切られ、次のステートメントとは
“;”によって区切られる。
ンドしてロードする要求を示し、セグメント名としてバ
インドする論理セグメントの名前を記述する。“//B
IND”とセグメント名とは“Δ”(空白)によって区
切られる。セグメント名とセグメント名との間は“,”
(コンマ)によって区切られ、次のステートメントとは
“;”によって区切られる。
【0018】次に、セグメントバインドテーブルについ
て説明する。図5は本発明実施例におけるセグメントバ
インドテーブルの構成を示す図である。
て説明する。図5は本発明実施例におけるセグメントバ
インドテーブルの構成を示す図である。
【0019】セグメントバインドテーブル1−7は、セ
グメント登録手段1−5によって作成更新され、バイン
ドテーブルディレクトリ5−1、バインドテーブル5−
2、セグメント情報テーブル5−3により構成される。
グメント登録手段1−5によって作成更新され、バイン
ドテーブルディレクトリ5−1、バインドテーブル5−
2、セグメント情報テーブル5−3により構成される。
【0020】バインドテーブルディレクトリ5−1の各
エントリは図1に示すBINDステートメント1−3で
指定された論理セグメントごとに作成され、BINDス
テートメント1−3で指定された論理セグメントのセグ
メント名5−4とその論理セグメントの対応するバイン
ドテーブルへのポインタ5−5からなる。
エントリは図1に示すBINDステートメント1−3で
指定された論理セグメントごとに作成され、BINDス
テートメント1−3で指定された論理セグメントのセグ
メント名5−4とその論理セグメントの対応するバイン
ドテーブルへのポインタ5−5からなる。
【0021】バインドテーブル5−2はBINDステー
トメント1−3ごとに作成され、その各エントリは論理
セグメントごとに作成され、セグメント名5−6とそれ
をもつ論理セグメントに対応するセグメント情報テーブ
ルへのポインタ5−7からなる。ロード時には、セグメ
ントバインドテーブル1−7に格納されているセグメン
ト名をもつロードセグメント同志がバインドされる。
トメント1−3ごとに作成され、その各エントリは論理
セグメントごとに作成され、セグメント名5−6とそれ
をもつ論理セグメントに対応するセグメント情報テーブ
ルへのポインタ5−7からなる。ロード時には、セグメ
ントバインドテーブル1−7に格納されているセグメン
ト名をもつロードセグメント同志がバインドされる。
【0022】次に、セグメント登録手段1−5の処理に
ついて説明する。図6は本発明実施例におけるセグメン
トバインドテーブルの作成例を示す図、図7は本発明実
施例におけるセグメント登録手段の処理の流れを示す流
れ図である。ここで、本実施例の場合、論理セグメント
のバインド可能の条件を論理セグメントの属性が一致し
ていることとする。
ついて説明する。図6は本発明実施例におけるセグメン
トバインドテーブルの作成例を示す図、図7は本発明実
施例におけるセグメント登録手段の処理の流れを示す流
れ図である。ここで、本実施例の場合、論理セグメント
のバインド可能の条件を論理セグメントの属性が一致し
ていることとする。
【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)。
−2、6−3を含むBINDステートメント6−1およ
びロードモジュールが入力されたとする。ローダ1−4
はそのBINDステートメントを検出するとセグメント
登録手段1−5を起動する。最初に、BINDステート
メント6−2を検出したとする。このときセグメント登
録手段1−5が起動し、BINDステートメント6−2
中に記述されているセグメント名をもつすべての論理セ
グメントのセグメント情報テーブルからセグメント属性
を得る(ステップ7−1)。
【0024】次に、指定されたロードセグメントがバイ
ンド可能かどうかをチェックするためにその属性が一致
しているかどうかをチェックする(ステップ7−2)。
ンド可能かどうかをチェックするためにその属性が一致
しているかどうかをチェックする(ステップ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と登録
される。
ので、このBINDステートメント6−2を無効にし、
エラー処理を行い(ステップ7−8)、処理を終了する
。すべての論理セグメントの属性が一致している場合、
バインドテーブルディレクトリを登録する論理セグメン
トの個数分作成し拡張する(ステップ7−3)。その後
、セグメント名の格納エリアにBINDステートメント
6−2に記述されたセグメント名をセットする(ステッ
プ7−4)。論理セグメントであるセグメントA、B、
Cのセグメント名を“A”、“B”、“C”とすると、
図5に示すセグメント名5−4のようA、B、Cと登録
される。
【0026】次に、処理中のBINDステートメントに
対応するバインドテーブルを作成するための領域を確保
する(ステップ7−5)。そして、バインドテーブルデ
ィレクトリの論理セグメントの対応するバインドテーブ
ルへのポインタの格納エリアに作成したバインドテーブ
ルのアドレスをセットする(ステップ7−6)。この場
合、図6の6−5に示すようにバインドテーブル1のア
ドレスがセットされる。次いで、作成したバインドテー
ブルに、このバインドテーブルに対応する各論理セグメ
ントのセグメント名とセグメント情報テーブルのアドレ
スをセットし(ステップ7−7)、処理を終了する。こ
の場合、図6に示す6−6、6−7のようになる。
対応するバインドテーブルを作成するための領域を確保
する(ステップ7−5)。そして、バインドテーブルデ
ィレクトリの論理セグメントの対応するバインドテーブ
ルへのポインタの格納エリアに作成したバインドテーブ
ルのアドレスをセットする(ステップ7−6)。この場
合、図6の6−5に示すようにバインドテーブル1のア
ドレスがセットされる。次いで、作成したバインドテー
ブルに、このバインドテーブルに対応する各論理セグメ
ントのセグメント名とセグメント情報テーブルのアドレ
スをセットし(ステップ7−7)、処理を終了する。こ
の場合、図6に示す6−6、6−7のようになる。
【0027】BINDステートメント6−3をローダが
検出すると、再度この手段が起動し同様の処理を繰り返
す。この場合、すべてのBINDステートメントの処理
を終えると、図6に示すようなセグメントバインドテー
ブルが作成される。
検出すると、再度この手段が起動し同様の処理を繰り返
す。この場合、すべてのBINDステートメントの処理
を終えると、図6に示すようなセグメントバインドテー
ブルが作成される。
【0028】次に、セグメントロケーションテーブルに
ついて説明する。図3は本発明実施例におけるセグメン
トロケーションテーブルの構成を示す図である。セグメ
ントロケーションテーブル1−8は、仮想記憶空間1−
9にロードされた論理セグメントのセグメント名3−1
が格納されるエリアと、論理セグメントがロードされた
物理セグメントのセグメント番号3−2が格納されるエ
リアと、論理セグメントがロードされた物理セグメント
の先頭からロードされた論理セグメントの先頭までのオ
フセット(バイト単位)3−3が格納されるエリアと、
セグメント情報3−4が格納されるエリアとにより構成
され、前述のセグメント情報テーブルの内容が格納され
る。
ついて説明する。図3は本発明実施例におけるセグメン
トロケーションテーブルの構成を示す図である。セグメ
ントロケーションテーブル1−8は、仮想記憶空間1−
9にロードされた論理セグメントのセグメント名3−1
が格納されるエリアと、論理セグメントがロードされた
物理セグメントのセグメント番号3−2が格納されるエ
リアと、論理セグメントがロードされた物理セグメント
の先頭からロードされた論理セグメントの先頭までのオ
フセット(バイト単位)3−3が格納されるエリアと、
セグメント情報3−4が格納されるエリアとにより構成
され、前述のセグメント情報テーブルの内容が格納され
る。
【0029】次に、バインドロード手段1−6について
図4、図6、図8および図9を参照して説明する。図4
は本発明実施例におけるセグメントロケーションテーブ
ルの作成例を示す図、図8は本発明実施例におけるバイ
ンドロード手段の処理の流れを示す流れ図、図9は本発
明実施例におけるセグメントロード後の仮想記憶空間の
レイアウトを示す図である。
図4、図6、図8および図9を参照して説明する。図4
は本発明実施例におけるセグメントロケーションテーブ
ルの作成例を示す図、図8は本発明実施例におけるバイ
ンドロード手段の処理の流れを示す流れ図、図9は本発
明実施例におけるセグメントロード後の仮想記憶空間の
レイアウトを示す図である。
【0030】ローダ1−4に、BINDステートメント
6−1と、ロードモジュール9−1および9−2が入力
され、仮想記憶空間9−3に、論理セグメントがロード
されるとする。図9中の9−4は物理セグメントごとに
割り振られたセグメント情報である。
6−1と、ロードモジュール9−1および9−2が入力
され、仮想記憶空間9−3に、論理セグメントがロード
されるとする。図9中の9−4は物理セグメントごとに
割り振られたセグメント情報である。
【0031】この場合、図6に示すようなセグメントバ
インドテーブルが作成される。最初に論理セグメントで
あるセグメントF(以下Fという。セグメントA、…に
ついても同様)のロード要求が到来したとする(ステッ
プ8−1)。このとき、Fのセグメント名“F”がバイ
ンドテーブルディレクトリに登録されているか否かチェ
ックする(ステップ8−2)。“F”が登録されていな
い場合には、新規にセグメント番号と物理セグメントを
割り当て(ステップ8−7)、セグメントロケーション
テーブルを更新する(ステップ8−8)。
インドテーブルが作成される。最初に論理セグメントで
あるセグメントF(以下Fという。セグメントA、…に
ついても同様)のロード要求が到来したとする(ステッ
プ8−1)。このとき、Fのセグメント名“F”がバイ
ンドテーブルディレクトリに登録されているか否かチェ
ックする(ステップ8−2)。“F”が登録されていな
い場合には、新規にセグメント番号と物理セグメントを
割り当て(ステップ8−7)、セグメントロケーション
テーブルを更新する(ステップ8−8)。
【0032】最初に、セグメント名“F”、次にセグメ
ント番号(この場合は図9に示す#3)、先頭からのオ
フセット(この場合は0)、セグメント情報がセットさ
れ、図4に示す4−1のようになる。セグメント情報は
、セグメント情報テーブルより得ることができる。そし
て、Fを図9の9−5に示すように“#3”の物理セグ
メントの先頭からロードし(ステップ8−9)、処理を
終了する。
ント番号(この場合は図9に示す#3)、先頭からのオ
フセット(この場合は0)、セグメント情報がセットさ
れ、図4に示す4−1のようになる。セグメント情報は
、セグメント情報テーブルより得ることができる。そし
て、Fを図9の9−5に示すように“#3”の物理セグ
メントの先頭からロードし(ステップ8−9)、処理を
終了する。
【0033】次に、Aのロード要求がきたとする(ステ
ップ8−1)。Aのセグメント名“A”がバインドテー
ブルディレクトリに登録されているか否かチェックする
(ステップ8−2)。この場合図6の6−4に示すよう
に登録されているので、6−5よりAに対応するバイン
ドテーブル(1)を得る(ステップ8−3)。
ップ8−1)。Aのセグメント名“A”がバインドテー
ブルディレクトリに登録されているか否かチェックする
(ステップ8−2)。この場合図6の6−4に示すよう
に登録されているので、6−5よりAに対応するバイン
ドテーブル(1)を得る(ステップ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)。
ント名が格納されている論理セグメントのセグメント名
がセグメントロケーションテーブル1−8に格納されて
いるか否かチェックする(ステップ8−4)。仮想記憶
空間1−9にはF以外まだロードされていないとすると
、該当するセグメント名が見つからないので新規にセグ
メント番号(この場合、#0とする)と物理セグメント
を割り当てる(ステップ8−7)。そして、セグメント
ロケーションテーブル1−8を図4の4−2に示すよう
に更新し(ステップ8−8)、図9の9−6に示すよう
にAをロードする(ステップ8−9)。
【0035】次に、Bのロード要求がきたとする(ステ
ップ8−1)。このときBのセグメント名“B”がバイ
ンドテーブルディレクトリに登録されているか否かチェ
ックする(ステップ8−2)。図6の6−4に示すよう
に登録されていれば、同図の6−5よりBに対応するバ
インドテーブル(1)を得る(ステップ8−3)。
ップ8−1)。このときBのセグメント名“B”がバイ
ンドテーブルディレクトリに登録されているか否かチェ
ックする(ステップ8−2)。図6の6−4に示すよう
に登録されていれば、同図の6−5よりBに対応するバ
インドテーブル(1)を得る(ステップ8−3)。
【0036】次いで、バインドテーブル(1)にセグメ
ント名が格納されている論理セグメントのセグメント名
がセグメントロケーションテーブル1−8に格納されて
いるか否かチェックする(ステップ8−4)。この場合
、セグメント名“A”が見つかればAの物理セグメント
の先頭からのオフセット(この場合は図4に示すように
0)とセグメント情報中のセグメントサイズ(この場合
は図4に示すように300とする)をセグメントロケー
ションテーブル1−8から得て、それらを加えることに
よってAのすぐ後ろまでのオフセットを求める(ステッ
プ8−5)。
ント名が格納されている論理セグメントのセグメント名
がセグメントロケーションテーブル1−8に格納されて
いるか否かチェックする(ステップ8−4)。この場合
、セグメント名“A”が見つかればAの物理セグメント
の先頭からのオフセット(この場合は図4に示すように
0)とセグメント情報中のセグメントサイズ(この場合
は図4に示すように300とする)をセグメントロケー
ションテーブル1−8から得て、それらを加えることに
よってAのすぐ後ろまでのオフセットを求める(ステッ
プ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)、処理を終
了する。
BがAのロードされている物理セグメントに入りきれる
か否かチェックする(ステップ8−6)。これは、先程
求めたオフセットにBのサイズを加えてみて、それが物
理セグメントのサイズより大きいか小さいかでチェック
できる。大きい場合は、Bは入りきれなく、小さい場合
は入りきれるのでその物理セグメントにロードできるこ
とになる。この場合Bは入り切るものとすると、セグメ
ントロケーションテーブル1−8を更新する(ステップ
8−8)。Bのロードされるセグメント番号がAと同じ
“#0”で、物理セグメントの先頭からのオフセットは
ステップ8−5で求めたAのすぐ後ろまでのオフセット
の“300”がセットされる。そして、図9の9−7に
示すようにBをロードし(ステップ8−9)、処理を終
了する。
【0038】次に、Cのロード要求がきたとする。この
ときBと同様に処理が行われるが、CはA、Bのロード
された物理セグメントに入り切れないとすると(ステッ
プ8−6)、新規にセグメント番号(この場合#1とす
る)と物理セグメントとを割り当て(ステップ8−7)
、セグメントロケーションテーブル1−8を更新し(ス
テップ8−8)、図9の9−8に示すようにCをロード
する(ステップ8−9)。
ときBと同様に処理が行われるが、CはA、Bのロード
された物理セグメントに入り切れないとすると(ステッ
プ8−6)、新規にセグメント番号(この場合#1とす
る)と物理セグメントとを割り当て(ステップ8−7)
、セグメントロケーションテーブル1−8を更新し(ス
テップ8−8)、図9の9−8に示すようにCをロード
する(ステップ8−9)。
【0039】以上のようにして、論理セグメントのロー
ド要求をすべて処理し終えると、セグメントロケーショ
ンテーブルは図4に示すようになり、仮想記憶空間は図
9に示すようになる。
ド要求をすべて処理し終えると、セグメントロケーショ
ンテーブルは図4に示すようになり、仮想記憶空間は図
9に示すようになる。
【0040】
【発明の効果】以上説明したように本発明によれば、小
さい論理セグメントをロードしても物理セグメント中に
無駄な空き領域が生じることなく、ロードする論理セグ
メントの個数が多くてもロードに必要な物理セグメント
が少なくてすみ、また、物理セグメント数の諸元が圧迫
されにくく、論理セグメントの個数を減らすために論理
セグメントをバインドとする場合に、バインダあるいは
連係編集プログラムのバインド機能を利用してロードモ
ジュールを作成し直す必要がなく、例えば、動的リンク
時の場合には複数のロードモジュールにわたって論理セ
グメントをバインドすることができ、バインドによって
ロードに必要な物理セグメントの個数を増やすことがで
きる効果がある。
さい論理セグメントをロードしても物理セグメント中に
無駄な空き領域が生じることなく、ロードする論理セグ
メントの個数が多くてもロードに必要な物理セグメント
が少なくてすみ、また、物理セグメント数の諸元が圧迫
されにくく、論理セグメントの個数を減らすために論理
セグメントをバインドとする場合に、バインダあるいは
連係編集プログラムのバインド機能を利用してロードモ
ジュールを作成し直す必要がなく、例えば、動的リンク
時の場合には複数のロードモジュールにわたって論理セ
グメントをバインドすることができ、バインドによって
ロードに必要な物理セグメントの個数を増やすことがで
きる効果がある。
【図1】本発明実施例の全体構成を示すブロック図。
【図2】本発明実施例におけるBINDステートメント
を説明する図。
を説明する図。
【図3】本発明実施例におけるセグメントロケーション
テーブルの構成を示す図。
テーブルの構成を示す図。
【図4】本発明実施例におけるセグメントロケーション
テーブルの作成例を示す図。
テーブルの作成例を示す図。
【図5】本発明実施例におけるセグメントバインドテー
ブルの構成を示す図。
ブルの構成を示す図。
【図6】本発明実施例におけるセグメントバインドテー
ブルの作成例を示す図。
ブルの作成例を示す図。
【図7】本発明実施例におけるセグメント登録手段の処
理の流れを示す流れ図。
理の流れを示す流れ図。
【図8】本発明実施例におけるバインドロード手段の処
理の流れを示す流れ図。
理の流れを示す流れ図。
【図9】本発明実施例におけるセグメントロード後の仮
想記憶空間のレイアウトを示す図。
想記憶空間のレイアウトを示す図。
【図10】従来例におけるセグメントを仮想記憶空間に
ロードしたときのレイアウトを示す図。
ロードしたときのレイアウトを示す図。
1−1 ロードモジュール
1−2 セグメント情報
1−3BINDステートメント
1−4 ローダ
1−5 セグメント登録手段
1−6 バインドロード手段
1−7 セグメントバインドテーブル1−8 セグ
メントロケーションテーブル1−9 仮想記憶空間
メントロケーションテーブル1−9 仮想記憶空間
Claims (1)
- 【請求項1】 複数のロードモジュールからセグメン
ト情報を入力して、セグメント方式により仮想記憶空間
の記憶保護を行う計算機システムにおいて、バインドさ
れたセグメント名を格納するセグメントバインドテーブ
ルと、セグメントのロケーションを格納するセグメント
ロケーションテーブルとを設け、セグメントをバインド
するステートメントを入力し、そのステートメントから
バインドするセグメントのセグメント名を取得し、その
セグメント名の前記セグメントバインドテーブルへの登
録および更新を行うセグメント登録手段と、ステートメ
ントで指定のあったセグメントをバインドして前記仮想
記憶空間にロードし、そのロード情報の前記セグメント
ロケーションテーブルへの登録、参照、および更新を行
うバインドロード手段とを含むローダを備えたことを特
徴とする計算機システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3141418A JPH04340147A (ja) | 1991-05-16 | 1991-05-16 | 計算機システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3141418A JPH04340147A (ja) | 1991-05-16 | 1991-05-16 | 計算機システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04340147A true JPH04340147A (ja) | 1992-11-26 |
Family
ID=15291548
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3141418A Pending JPH04340147A (ja) | 1991-05-16 | 1991-05-16 | 計算機システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04340147A (ja) |
-
1991
- 1991-05-16 JP JP3141418A patent/JPH04340147A/ja active Pending
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 (ja) | 計算機システム | |
| JPH08129492A (ja) | 資源排他チェックシステム及び資源排他チェック方法 | |
| JP3697735B2 (ja) | 情報処理システムおよび方法 | |
| CN100395730C (zh) | 基于数据源的虚拟内存处理方法 | |
| JP2990609B2 (ja) | 計算機システム | |
| JP2841363B2 (ja) | 外部モジュール獲得方式 | |
| JP2004151822A (ja) | 共有ライブラリのバインド方法およびプログラム | |
| JPH02156348A (ja) | 複数のハッシュ表のあふれ領域管理方法 | |
| KR101058059B1 (ko) | 임베디드 파일 시스템의 마운팅 장치 및 그 방법 | |
| JPH01207824A (ja) | モジュール結合制御方式 | |
| JPH0221610B2 (ja) | ||
| JPS6144339B2 (ja) | ||
| JPH09204326A (ja) | 画像データ格納制御装置 | |
| JPH04117523A (ja) | プログラム編集装置 | |
| CN112602065A (zh) | 复杂的存储器内数据结构的快速初始化 | |
| JPS6250945A (ja) | プログラムロ−デイング方式 | |
| JPH07141189A (ja) | オーバレイリンク方式 | |
| JPH03255533A (ja) | プログラミング言語処理システムにおけるシンボル管理方式 | |
| JPH01205331A (ja) | 大規模プログラムリンク方式 | |
| JPH02244237A (ja) | 動的リンク時のアドレスリロケーション方式 | |
| JPH08123712A (ja) | ファイル管理システム | |
| JPH0652028A (ja) | ファイル管理装置 |