JPS6325730A - 目的プログラム内における複数のセグメントを束ねる方式 - Google Patents
目的プログラム内における複数のセグメントを束ねる方式Info
- Publication number
- JPS6325730A JPS6325730A JP61169982A JP16998286A JPS6325730A JP S6325730 A JPS6325730 A JP S6325730A JP 61169982 A JP61169982 A JP 61169982A JP 16998286 A JP16998286 A JP 16998286A JP S6325730 A JPS6325730 A JP S6325730A
- Authority
- JP
- Japan
- Prior art keywords
- segment
- segments
- attributes
- linker
- program
- 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
【発明の詳細な説明】
(産業上の利用分野)
本発明は仮想記憶空間のアドレス方式にセグメンテーシ
ョンを用いた電子計算機システム上で、実行されるロー
ドモジュールを作成するプログラム(以後、リンカと称
する。)において、複数の目的プログラムを入力してセ
グメントの数の制限を緩和するため、同一の属性を有す
る複数のセグメントをひとつのセグメントに束ねる方式
に関する。
ョンを用いた電子計算機システム上で、実行されるロー
ドモジュールを作成するプログラム(以後、リンカと称
する。)において、複数の目的プログラムを入力してセ
グメントの数の制限を緩和するため、同一の属性を有す
る複数のセグメントをひとつのセグメントに束ねる方式
に関する。
(従来の技術)
従来、仮想記憶空間のアドレス方式にセグメンテーショ
ンを用いた電子計算機システムでは、リンカにより仮想
記憶のアドレスを目的プログラムのセグメントに割描て
ている。しかし、多数の外部データ名は多数のセグメン
トとなるため、多数の外部データ名を有する多数の目的
プログラムをリンクすると、仮想記憶のセグメント数に
制限が加えられ、アドレスを割当てられなくなることが
ある。
ンを用いた電子計算機システムでは、リンカにより仮想
記憶のアドレスを目的プログラムのセグメントに割描て
ている。しかし、多数の外部データ名は多数のセグメン
トとなるため、多数の外部データ名を有する多数の目的
プログラムをリンクすると、仮想記憶のセグメント数に
制限が加えられ、アドレスを割当てられなくなることが
ある。
多数の目的プログラムのセグメントが同一の属性を有す
る場合、上記従来技術では、リンクする前に多数の目的
プログラム名をすべて別ステップ記述として指定し、実
行することによってひとつのセグメントに割当て、これ
を繰返すことによって少数のセグメントを有するひとつ
の目的プログラムを作成する方式が公知である。
る場合、上記従来技術では、リンクする前に多数の目的
プログラム名をすべて別ステップ記述として指定し、実
行することによってひとつのセグメントに割当て、これ
を繰返すことによって少数のセグメントを有するひとつ
の目的プログラムを作成する方式が公知である。
これらをリンクすると、リンカは多数の目的プログラム
のセグメント数より少ない制限内のセグメント数を有す
るセグメントに、仮想記憶のアドレスを割当てることが
できる。
のセグメント数より少ない制限内のセグメント数を有す
るセグメントに、仮想記憶のアドレスを割当てることが
できる。
第3図は、上記従来技術によるアドレスの割当て方式の
一例を示す説明図である。第3図において、1は目的プ
ログラムのファイル群、2はリンカ、3は実行可能なプ
ログラムファイル、4はローダ、5は仮想記憶、6は多
数の目的プログラムをひとつの目的プログラムとする割
当て方式、7は目的プログラムである。
一例を示す説明図である。第3図において、1は目的プ
ログラムのファイル群、2はリンカ、3は実行可能なプ
ログラムファイル、4はローダ、5は仮想記憶、6は多
数の目的プログラムをひとつの目的プログラムとする割
当て方式、7は目的プログラムである。
上記従来の技術を、第3図を参照して説明する。
ファイルABには目的プログラムA、Bが格納され、フ
ァイルCDには目的プログラムC1Dが格納され、ファ
イルEFには目的プログラムE、Fが格納され、それら
の目的プログラムの関係はAからBを呼出し、BからC
を呼出し、順次、EからFを呼出すように構成されてい
る。
ァイルCDには目的プログラムC1Dが格納され、ファ
イルEFには目的プログラムE、Fが格納され、それら
の目的プログラムの関係はAからBを呼出し、BからC
を呼出し、順次、EからFを呼出すように構成されてい
る。
多数の目的プログラムの多数のセグメントをひとつの目
的プログラムの少数のセグメントとして割当てる方式6
は、目的プログラムA−Dをひとつの目的プログラムに
するものである。
的プログラムの少数のセグメントとして割当てる方式6
は、目的プログラムA−Dをひとつの目的プログラムに
するものである。
目的プログラム名A−Dを別ステップ記述として指定す
ることによって、”AA’と云う目的プログラム7を作
成して出力する。上記目的プログラム7を入力したリン
カ2は、仮想記憶5のアドレスを目的プログラム7のセ
グメントに割当て、残りの目的プログラムE、Fのセグ
メントに仮想記憶5の別アドレスを割当てる。ローダ4
はリンカ2によって割当てられたアドレスを参照し、仮
想記憶5ヘプログラムをロードモジュールとしてロード
する。
ることによって、”AA’と云う目的プログラム7を作
成して出力する。上記目的プログラム7を入力したリン
カ2は、仮想記憶5のアドレスを目的プログラム7のセ
グメントに割当て、残りの目的プログラムE、Fのセグ
メントに仮想記憶5の別アドレスを割当てる。ローダ4
はリンカ2によって割当てられたアドレスを参照し、仮
想記憶5ヘプログラムをロードモジュールとしてロード
する。
(発明が解決しようとする問題点)
上述した従来の方式では、複数の目的プログラムのセグ
メントをひとつの目的プログラムの少数セグメントにま
とめる処理を、リンカとは別のステップで実行するため
、複数の目的プログラムの個数分だけ上記処理の詳細を
指定しなければならない。
メントをひとつの目的プログラムの少数セグメントにま
とめる処理を、リンカとは別のステップで実行するため
、複数の目的プログラムの個数分だけ上記処理の詳細を
指定しなければならない。
よって、上記指定が繁雑となり、別ステップ記述のため
に処理時間も長くなると云う欠点がある。
に処理時間も長くなると云う欠点がある。
本発明の目的は、仮想記憶空間のアドレス方式にセグメ
ンテーションを用いたシステムのロードモジュールを作
成するに際して、複数の目的プログラム内のセグメント
を上記ロードモジュールの作成機能に入力し、そのセグ
メントの属性と大きさとによりセグメントを分類し、分
類されたセグメントの情報をロードモジュール作成機能
の作用領域に格納し、作業用領域に格納された属性と、
次に読込まれたセグメントの属性とが同一であれば、少
なくとも2つ以上の複数のセグメントをひとつのセグメ
ントにまとめることによって上記欠点を除去し、ロード
モジュール内のセグメント数を最小にすることができる
ように構成した目的プログラム内における複数のセグメ
ントを束ねる方式を提供することにある。
ンテーションを用いたシステムのロードモジュールを作
成するに際して、複数の目的プログラム内のセグメント
を上記ロードモジュールの作成機能に入力し、そのセグ
メントの属性と大きさとによりセグメントを分類し、分
類されたセグメントの情報をロードモジュール作成機能
の作用領域に格納し、作業用領域に格納された属性と、
次に読込まれたセグメントの属性とが同一であれば、少
なくとも2つ以上の複数のセグメントをひとつのセグメ
ントにまとめることによって上記欠点を除去し、ロード
モジュール内のセグメント数を最小にすることができる
ように構成した目的プログラム内における複数のセグメ
ントを束ねる方式を提供することにある。
(問題点を解決するための手段)
本発明による目的プログラム内における複数のセグメン
トを束ねる方式はファイル手段と、リンケージ手段と、
セグメント数最小化手段とを具備して構成したものであ
る。
トを束ねる方式はファイル手段と、リンケージ手段と、
セグメント数最小化手段とを具備して構成したものであ
る。
ファイル手段は、セグメンテーションを用いたシステム
のロードモジュール作成機能において、複数の目的プロ
グラム内のセグメント群を格納するためのものである。
のロードモジュール作成機能において、複数の目的プロ
グラム内のセグメント群を格納するためのものである。
リンケージ手段は、セグメントの属性と大きさとにより
セグメントを分類し、分類に関する情報をロードモジュ
ール作成機能の作業用領域に格納するためのものである
。
セグメントを分類し、分類に関する情報をロードモジュ
ール作成機能の作業用領域に格納するためのものである
。
セグメント数最小化手段は、作業用領域に格納されたセ
グメントの属性と、次に読込まれたセグメントの属性と
が同一であれば、少なくとも2つ以上の複数のセグメン
トをひとつのセグメントにして、ロードモジュール内の
セグメントの数を最小化するためのものである。
グメントの属性と、次に読込まれたセグメントの属性と
が同一であれば、少なくとも2つ以上の複数のセグメン
トをひとつのセグメントにして、ロードモジュール内の
セグメントの数を最小化するためのものである。
(実施例)
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明による目的プログラム内における複数
のセグメントを束ねる方式の一実施例を示す説明図であ
る。
のセグメントを束ねる方式の一実施例を示す説明図であ
る。
第1図において、1は目的プログラムのファイル群、2
はリンカ、3は実行可能なプログラムのファイル、4は
ローダ、5は仮想記憶、6は多数の目的プログラムをひ
とつの目的プログラムとするプログラムリンケージ方式
、7は目的プログラム、10はセグメント群、20は仮
想記憶アドレス、30はロードモジュール、40はセグ
メントの大きさ、50はセグメントの属性、60は仮想
記憶内アドレス、70は作業領域である。
はリンカ、3は実行可能なプログラムのファイル、4は
ローダ、5は仮想記憶、6は多数の目的プログラムをひ
とつの目的プログラムとするプログラムリンケージ方式
、7は目的プログラム、10はセグメント群、20は仮
想記憶アドレス、30はロードモジュール、40はセグ
メントの大きさ、50はセグメントの属性、60は仮想
記憶内アドレス、70は作業領域である。
第1図において、ファイル1のなかには目的プログラム
A−Cが格納されており、目的プログラムA−Cには、
目的プログラムAから目的プログラムBを呼出し、目的
プログラムBから目的プログラムCを呼出す関係が成立
つものとする。目的プログラムAには、セグメントA−
1〜A−4が含まれている。また、目的プログラムB、
CにもそれぞれセグメントB−1〜B−4、C−1〜C
−4が含まれている。
A−Cが格納されており、目的プログラムA−Cには、
目的プログラムAから目的プログラムBを呼出し、目的
プログラムBから目的プログラムCを呼出す関係が成立
つものとする。目的プログラムAには、セグメントA−
1〜A−4が含まれている。また、目的プログラムB、
CにもそれぞれセグメントB−1〜B−4、C−1〜C
−4が含まれている。
リンカ2は、セグメント群10にアドレスを割当てる際
、目的プログラムA−Cの各セグメントをひとつづつ読
込み、先に読込まれたセグメント情報(セグメントの大
きさ40.セグメントの属性50〕が入れられているリ
ンカ2の作業用領域70を参照し、次に読込まれたセグ
メントと属性が同一である場合には、先に読込まれてい
るセグメン)A−1と、次に読込まれたセグメントA−
2とをひとつのセグメントにまとめる。また、セグメン
トの大きさには制限があり、各セグメントの大きさが制
限内でなければひとつのセグメントにまとめない。また
、属性が同一ではない場合には、仮想記憶アドレス20
を割当てる。この作業を繰返して、ロードモジュール3
0に変換する。ローダ4は、リンカ2により仮想記憶5
に割当てられたアドレス60ヘロードモジユール30を
ロートスル。
、目的プログラムA−Cの各セグメントをひとつづつ読
込み、先に読込まれたセグメント情報(セグメントの大
きさ40.セグメントの属性50〕が入れられているリ
ンカ2の作業用領域70を参照し、次に読込まれたセグ
メントと属性が同一である場合には、先に読込まれてい
るセグメン)A−1と、次に読込まれたセグメントA−
2とをひとつのセグメントにまとめる。また、セグメン
トの大きさには制限があり、各セグメントの大きさが制
限内でなければひとつのセグメントにまとめない。また
、属性が同一ではない場合には、仮想記憶アドレス20
を割当てる。この作業を繰返して、ロードモジュール3
0に変換する。ローダ4は、リンカ2により仮想記憶5
に割当てられたアドレス60ヘロードモジユール30を
ロートスル。
先に読込まれたセグメントと、次に読込まれたセグメン
トとの属性が同一であるため、ひとつのセグメントにす
ることができるか、あるいはセグメントの大きさに制限
がある。このため、ひとつのセグメントにまとめること
ができるか否かを第2図の手順に従って調べる。上記動
作においては、リンカ2を起動させ、次のようにしてひ
とつのセグメントを読込む。
トとの属性が同一であるため、ひとつのセグメントにす
ることができるか、あるいはセグメントの大きさに制限
がある。このため、ひとつのセグメントにまとめること
ができるか否かを第2図の手順に従って調べる。上記動
作においては、リンカ2を起動させ、次のようにしてひ
とつのセグメントを読込む。
まず、第1ステツプにおいては、コンノくイラによって
内部的に付与された番号がセグメント0であれば第2ス
テツプに係り、セグメントOでなければ第3ステツプに
移る。第2.X、テップでは、読込まれたセグメントの
言語の種類を抽出し、第3ステツプへ移る。第3ステツ
プでは、先に読込まれたセグメントの情報(セグメント
の属性、ならびに言語の種類)が格納されているリンカ
2の作業用領域70を参照する。現在読込まれているセ
グメントの属性が先に読込まれたセグメントの属性に一
致しているか、あるいはコンパイラによって番号が内部
的に付与されたセグメントOの場合には、言語の種類が
一致しているか否かをチェックする。
内部的に付与された番号がセグメント0であれば第2ス
テツプに係り、セグメントOでなければ第3ステツプに
移る。第2.X、テップでは、読込まれたセグメントの
言語の種類を抽出し、第3ステツプへ移る。第3ステツ
プでは、先に読込まれたセグメントの情報(セグメント
の属性、ならびに言語の種類)が格納されているリンカ
2の作業用領域70を参照する。現在読込まれているセ
グメントの属性が先に読込まれたセグメントの属性に一
致しているか、あるいはコンパイラによって番号が内部
的に付与されたセグメントOの場合には、言語の種類が
一致しているか否かをチェックする。
その結果、言語の種類が一致している場合には第4ステ
ツプへ移り、一致していない場合には第5ステツプへ移
る。第4ステツプは、先に読込まれたセグメントの大き
さと、現在読込まれたセグメントの大きさとを加えるこ
とにより、セグメントの大きさの制限を超えるか否かを
チェックする。この結果、セグメントの大きさの制限を
越えない場合には第7ステツプに移り、上記上限を超え
た場合には第5ステツプに移る。
ツプへ移り、一致していない場合には第5ステツプへ移
る。第4ステツプは、先に読込まれたセグメントの大き
さと、現在読込まれたセグメントの大きさとを加えるこ
とにより、セグメントの大きさの制限を超えるか否かを
チェックする。この結果、セグメントの大きさの制限を
越えない場合には第7ステツプに移り、上記上限を超え
た場合には第5ステツプに移る。
次に、第5ステツプにおいて上記両種性が不一致である
か、またはセグメントの大きさが制限を超えた場合には
、相互のセグメントをまとめることはできないので、先
に読込まれたセグメントの情報が入ってくるリンカ2の
作業用領域70を、現在、読込まれているセグメンとの
情報に置換えて第6ステツプに移る。第6ステツプにお
いて、先に読込まれたセグメントに対して仮想記憶アド
レス20を割当て、第9ステツプに移る。第7ステツプ
においては、先に読込まれたセグメントと、現在、読込
まれているセグメントとを読込まれた順に、ひとつのセ
グメントにまとめて第8ステツプに移る。第8ステツプ
では、第4ステツプで加えたセグメントの大きさ40.
すなわち先に読込まれたセグメントの情報が入っている
リンカ2の作業用領域70のセグメントの大きさ40を
新しい値にして第9ステツプに移る。
か、またはセグメントの大きさが制限を超えた場合には
、相互のセグメントをまとめることはできないので、先
に読込まれたセグメントの情報が入ってくるリンカ2の
作業用領域70を、現在、読込まれているセグメンとの
情報に置換えて第6ステツプに移る。第6ステツプにお
いて、先に読込まれたセグメントに対して仮想記憶アド
レス20を割当て、第9ステツプに移る。第7ステツプ
においては、先に読込まれたセグメントと、現在、読込
まれているセグメントとを読込まれた順に、ひとつのセ
グメントにまとめて第8ステツプに移る。第8ステツプ
では、第4ステツプで加えたセグメントの大きさ40.
すなわち先に読込まれたセグメントの情報が入っている
リンカ2の作業用領域70のセグメントの大きさ40を
新しい値にして第9ステツプに移る。
第9ステツプでは次のセグメントを読込み、第10ステ
ツプで読込むべきセグメントがなくなるか否かを判定し
、読込むべきセグメントがある場合には第1ステツプに
戻り、再び第1ステツプから第10ステツプまでチェッ
ク過程を、次のセグメントに対して実行し、読込むべき
セグメントがなくなるまで上記動作を繰返す。
ツプで読込むべきセグメントがなくなるか否かを判定し
、読込むべきセグメントがある場合には第1ステツプに
戻り、再び第1ステツプから第10ステツプまでチェッ
ク過程を、次のセグメントに対して実行し、読込むべき
セグメントがなくなるまで上記動作を繰返す。
第1図は、本発明による目的プログラム内における複数
のセグメントを束ねる方式を実現する一実施例を示す説
明図である。 第2図は、第1図に関する処理の流れを示すフローチャ
ートである。 第3図は、従来技術による目的プログラム内における複
数のセグメントを束ねる方式を実現する一例を示す説明
図である。 1.3・・・ファイル 2・・・リンカ4・・・ロー
ダ 5・・・仮想記憶6・・・プログラムリン
ケージ方式 7・・・目的プログラム 10・・・セグメント群 20・・・仮想記憶アドレ
ス30・・・ロードモジュール 40・・・セグメントの大きさ 50・・・セグメントの属性 60・・・仮想記憶内アドレス 70・・・作業用領域 特許出願人 日本!気株式会社 代理人 弁理士 井 ノ ロ 壽才111 才2図 才3図
のセグメントを束ねる方式を実現する一実施例を示す説
明図である。 第2図は、第1図に関する処理の流れを示すフローチャ
ートである。 第3図は、従来技術による目的プログラム内における複
数のセグメントを束ねる方式を実現する一例を示す説明
図である。 1.3・・・ファイル 2・・・リンカ4・・・ロー
ダ 5・・・仮想記憶6・・・プログラムリン
ケージ方式 7・・・目的プログラム 10・・・セグメント群 20・・・仮想記憶アドレ
ス30・・・ロードモジュール 40・・・セグメントの大きさ 50・・・セグメントの属性 60・・・仮想記憶内アドレス 70・・・作業用領域 特許出願人 日本!気株式会社 代理人 弁理士 井 ノ ロ 壽才111 才2図 才3図
Claims (1)
- セグメンテーションを用いたシステムのロードモジュー
ル作成機能において複数の目的プログラム内のセグメン
ト群を格納するためのファイル手段と、前記セグメント
の属性と大きさとによりセグメントを分類し、前記分類
に関する情報を前記ロードモジュール作成機能の作業用
領域に格納するためのリンケージ手段と、前記作業用領
域に格納された前記セグメントの属性と次に読込まれた
セグメントの属性とが同一であれば、少なくとも2つ以
上の複数のセグメントをひとつのセグメントにしてロー
ドジュール内のセグメントの数を最小化するためのセグ
メント数最小化手段とを具備して構成したことを特徴と
する目的プログラム内における複数のセグメントを束ね
る方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61169982A JPS6325730A (ja) | 1986-07-18 | 1986-07-18 | 目的プログラム内における複数のセグメントを束ねる方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61169982A JPS6325730A (ja) | 1986-07-18 | 1986-07-18 | 目的プログラム内における複数のセグメントを束ねる方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6325730A true JPS6325730A (ja) | 1988-02-03 |
Family
ID=15896405
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61169982A Pending JPS6325730A (ja) | 1986-07-18 | 1986-07-18 | 目的プログラム内における複数のセグメントを束ねる方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6325730A (ja) |
-
1986
- 1986-07-18 JP JP61169982A patent/JPS6325730A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5930511A (en) | Operating system for use with computer networks incorporating one or more data processors linked together for parallel processing and incorporating improved dynamic binding and/or load-sharing techniques | |
| US6725448B1 (en) | System to optimally create parallel processes and recording medium | |
| US5553286A (en) | System and method for preparing a computer program for execution | |
| US6959430B2 (en) | Specialized heaps for creation of objects in object-oriented environments | |
| US5889995A (en) | Using constant selectors for method identification | |
| US20010034818A1 (en) | Method for linking program modules reloaded into a main memory of a processor on a smart card | |
| US6600493B1 (en) | Allocating memory based on memory device organization | |
| US5987529A (en) | Invoking a method in an object-oriented computer program | |
| US6499094B1 (en) | Management of memory heap space for data files accessible to programs operating in different addressing modes | |
| US6704851B2 (en) | Method of dynamically allocating a memory | |
| JPS6325730A (ja) | 目的プログラム内における複数のセグメントを束ねる方式 | |
| JPH06214803A (ja) | 仮想空間ブロック配置方式 | |
| JPS63201721A (ja) | プログラムリンク方式 | |
| JPS63118961A (ja) | デ−タのオ−バレイセグメント割当て方式 | |
| JPH06175857A (ja) | プログラム生成処理装置 | |
| JPS6314255A (ja) | 仮想記憶の割当て制御方式 | |
| KR950005242B1 (ko) | 범용 운영체제에서의 칠(chill) 병렬 처리를 위한 공유변수 처리 방법 | |
| JPH0378050A (ja) | メモリダンプ出力装置 | |
| JPH0239242A (ja) | 電子計算機システムの一時作業領域割付方式 | |
| Cioni et al. | Storage management | |
| Sayal | MEMORY MANAGEMENT ALGORITHMS REPRESENTATION TO CONVERT LOGICAL ADDRESS TO REAL ADDRESS | |
| JPH07129408A (ja) | 言語処理プログラムの実行方式 | |
| JPH0390931A (ja) | Rom化プログラムの生成方法 | |
| JPH06324882A (ja) | コンパイラ装置 | |
| JPH06236264A (ja) | ロードモジュール生成方式 |