JPH0934790A - プログラムの共用装置と方法 - Google Patents

プログラムの共用装置と方法

Info

Publication number
JPH0934790A
JPH0934790A JP7184212A JP18421295A JPH0934790A JP H0934790 A JPH0934790 A JP H0934790A JP 7184212 A JP7184212 A JP 7184212A JP 18421295 A JP18421295 A JP 18421295A JP H0934790 A JPH0934790 A JP H0934790A
Authority
JP
Japan
Prior art keywords
program
data
entity
virtual space
shared
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.)
Granted
Application number
JP7184212A
Other languages
English (en)
Other versions
JP3644078B2 (ja
Inventor
Satohiko Yaguchi
聰彦 矢口
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP18421295A priority Critical patent/JP3644078B2/ja
Publication of JPH0934790A publication Critical patent/JPH0934790A/ja
Application granted granted Critical
Publication of JP3644078B2 publication Critical patent/JP3644078B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 プログラムの共用装置に関し、同一仮想空間
内にプログラムをただ一つだけ配置し、上記仮想空間内
の複数の実行体で共用することで、仮想空間内の仮想領
域の圧迫を防止する手段を提供することを目的とする。 【解決手段】 仮想空間4に配置された共用プログラム
のテキスト部2sは実行環境である実行体1a、1b、
1cに共用するテキスト部の実体2aとして唯一存在す
るようにし、仮想空間4内のデータ部3をアクセスする
とき、データ部3の実体は実行体1a、1b、1cに対
応した一次記憶上の9a、9b、9cあるいは二次記憶
上の8a、8b、8cとなるように実行体切替手段5に
よる実行体の切り替えに同期してデータ部の実体を切り
替えるデータ部実体切替手段6を備え、仮想領域と実体
の所在を管理するテーブル7a、7b、7cによりアド
レス変換を行うように構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はアドレス変換機構に
よって主記憶と仮想記憶の対応付けを行う仮想記憶方式
のコンピュータにおける同一仮想空間内のプログラムの
共用方式に関する。
【0002】
【従来の技術】最初に、仮想記憶システムにおけるプロ
グラムの実行環境についてどのようになっていたかにつ
いて説明しながら、本発明の説明に使用する用語につい
ても紹介していくことにする。 〔プログラムの実行(実行体の生成とプログラムの配
置)〕端末からコマンドを入力するなど、オペレーティ
ングシステムが処理を依頼されて、新たな実行可能な形
式のプログラム(オブジェクトプログラム、以下単にプ
ログラムと呼ぶ)を実行する場合、オペレーティングシ
ステムは、仮想空間および、この仮想空間内でプログラ
ムを動作させるための環境(タスク、スレッドなどと呼
ばれるもので、以下、これを実行体と呼ぶ)を作成し、
この実行体内で走行させるプログラムを上記仮想空間内
に配置(プログラムを配置するとは、二次記憶上のプロ
グラムライブラリに存在するプログラムを仮想空間内の
仮想アドレスでアクセスできる様な状態にすることであ
る)し、配置したプログラム内に存在する入口点(その
プログラムを呼び出すときに制御が渡る命令の位置)に
制御を渡すことによりプログラムを動作させる。 〔仮想空間へのプログラムの配置〕ある実行体で、ある
プログラムから別のプログラムを呼び出して処理を行う
場合、これらのプログラムの配置方法には、大きくわけ
て二通りの方法がある。ひとつは、仮想空間を作成し、
プログラムの入口点に制御を渡す前に、必要なプログラ
ムをすべて配置してしまう方法である。もうひとつは、
仮想空間を作成するときには、オペレーティングシステ
ムが制御を渡す入口点を持つプログラムのみを配置し、
そのプログラムの走行中に他のプログラムの呼び出しが
発生した時点で、呼び出されるプログラムを配置する方
法である。 〔ダイナミックリンカ〕上記ふたつの方法とも、あるプ
ログラムから別のプログラムへの呼び出しを行う場合、
どのプログラムへ制御を渡すかを検索する機能(動的に
プログラムを配置するもので、配置されていないプログ
ラムをアクセスしたときに、これを検出して、オペレー
ティングシステムがプログラムライブラリを検索する。
通常、この機能をダイナミックリンカと呼ぶ)が必要で
ある。
【0003】上記前者の配置方法の場合、プログラムは
すべて配置されているので、この機能は仮想空間内に配
置済のプログラムの中から必要な入口点を検索し、制御
を渡す。
【0004】上記の後者の配置方法の場合、すでに仮想
空間内に配置されているプログラムから必要な入口点を
検索し、入口点が存在する場合は制御を渡すが、必要な
入口点が存在しない場合、二次記憶上のライブラリに存
在するプログラムから必要な入口点が存在するプログラ
ムを検索し、見つかったプログラムを仮想空間内に配置
し、入口点に制御を渡す。 〔マルチタスク(マルチスレッド)環境でのプログラム
の配置〕ひとつの仮想空間内に複数の実行体が走行する
環境(いわゆる、マルチタスク環境や、マルチスレッド
環境のこと)では、上記仮想空間内にプログラムを配置
する場合、以下の二通りの方法がある。
【0005】ひとつは、あるプログラムが同一仮想空間
内に存在する複数の実行体で走行する場合、上記プログ
ラムをその実行体の数だけ仮想空間内に配置する方法で
ある。もうひとつはあるプログラムが同一仮想空間内に
存在する複数の実行体で走行する場合でも、上記プログ
ラムは上記仮想空間内にひとつだけ配置し、これを共用
する方法である。
【0006】通常、プログラム内に情報を保持する変数
(外部変数など)を更新するようなプログラムの場合、
前者の方法を採用する。なぜなら、後者を採用した場
合、そのプログラム内で行うデータの値を実行体どうし
で破壊しあい、データの値を実行体毎に保証することが
できないからである。
【0007】
【発明が解決しようとする課題】プログラムは、命令コ
ードなどが格納されている部分(以下、これをテキスト
部と呼ぶ)と変数などのデータが格納されている部分
(以下、これをデータ部と呼ぶ)とに大別できる。
【0008】UNIXなどで採用されているELF形式
のように、一般的には、プログラムの入口点がテキスト
部の中に存在する。このような形式のプログラムは、オ
ペレーティングシステムからテキスト部の中に存在する
入口点に制御を渡され、テキスト部の中に存在する命令
コードを実行する。このとき、動作している命令コード
では、データ部の中に存在する変数などを参照したり更
新したりする。
【0009】このため、上記のように入口点がテキスト
部に存在する形式のプログラムの場合、命令コードの位
置と、変数が格納されている位置との相対的な位置関係
(オフセットという)が、プログラムを実行可能な形式
にするとき(すなわち、リンクするとき)に決まってい
なければならない。リンク後、すなわち、実行体の生成
時、プログラムの配置時、プログラムに制御を渡す時な
どを契機に、動的に変更することは現実的にできない
(つまり、上記場面を契機に毎回プログラム内に存在す
るすべての位置関係の情報を変更しなければならないと
いうことになるからである)。
【0010】ひとつの仮想空間内に複数の実行体が走行
する環境(いわゆる、マルチタスク環境やマルチスレッ
ド環境のこと)で、上記のような形式のプログラムを走
行させるためには、必要なプログラムを実行体単位に上
記仮想空間内に配置する必要がある。言い換えれば、あ
るプログラムが同一仮想空間内に存在する複数の実行体
で走行する場合、上記プログラムをその実行体の数だけ
仮想空間内に配置しなければならない。
【0011】なぜなら、仮に、仮想空間内に上記プログ
ラムをひとつだけ配置し、複数の実行体でこのプログラ
ムを走行させた場合、このプログラム内で参照、更新を
行うデータの値を実行体どうしで破壊しあい、データの
値を実行体毎に保証することができないからである。
【0012】このため、複数の実行体が走行する環境
で、上記の形式のプログラムを走行させる場合、仮想空
間内に複数の実行体毎に複数の同一プログラムを配置す
るために利用可能な仮想空間の領域を圧迫することにな
る。
【0013】これによって、ハード性能が向上したこと
の恩恵を受けるために、走行させるプログラムの多重度
(すなわち実行体の数)を増やして処理を並列に行い性
能の向上を考えた場合にも、上記の仮想空間内の領域の
圧迫が原因で実現できない場合があるという問題があっ
た。
【0014】本発明はこのような点にかんがみて、入口
点がテキストの中に存在するプログラムを、同一仮想空
間内に同一のプログラムをただ一つだけ配置し、上記仮
想空間内の複数の実行体で共用することで、仮想空間内
の仮想領域の圧迫を防止する手段を提供することを目的
とする。
【0015】
【課題を解決するための手段】上記の課題は下記の如く
に構成されたプログラムの共用装置によって解決され
る。
【0016】図1は、本発明の原理説明図である。共用
プログラムのテキスト部2sと、上記テキスト部2sと
静的にリンクされた上記共用プログラムのデータ部3と
を仮想空間4内に配置し、上記仮想空間4内で上記共用
プログラムを実行する環境すなわち実行体1sを1a、
1b、1c・・・のように1以上有するプログラムの共
用装置であって、2aは上記実行体1a、1b、1cに
共用に唯一配置された共用プログラムテキスト部2sの
実体であり、DRA9a、DRB9b、DRC9cは上
記共用プログラムのデータ部3に対応する上記実行体1
a、1b、1c毎の一次記憶上の実体を表すものであ
り、DFA8a、DFB8b、DFC8cは上記共用プ
ログラムのデータ部3に対応する上記実行体1a、1
b、1c毎の二次記憶上の実体を表すものである。
【0017】PTA7a、PTB7b、PTC7cは上
記実行体1a、1b、1c毎に上記共用プログラムのデ
ータ部3の実体が一次記憶上あるいは二次記憶上のいず
れにあるかなど実体の所在を保持するテーブルであり、
不図示の上記したデータ部実体管理テーブルにより関連
付けられている。
【0018】実行体切替手段5は上記共用プログラムが
動作する実行体1a、1b、1cを切り替えるものであ
り、データ部実体切替手段6は上記実行体切替手段5に
同期して上記データ部3の実体の所在を保持するテーブ
ルPTA7a、PTB7b、PTC7cを切り替えるも
のである。
【0019】共用プログラムのテキスト部2sと、上記
テキスト部2sと静的にリンクされた上記共用プログラ
ムのデータ部3とが仮想空間4に配置されて実行すると
き、共用プログラムのテキスト部2sは実行環境である
実行体1a、1b、1cに共用のテキスト部の実体2a
として唯一存在する。
【0020】テキスト部2sが参照、更新するべく仮想
領域のデータ部3をアクセスするとき、データ部3の実
体として一次記憶上の内容9a、9b、9cあるいは二
次記憶上の内容8a、8b、8cを参照、更新するよう
にするために仮想領域と実体の所在を管理するテーブル
7a、7b、7cによりアドレス変換が行われる。
【0021】このとき、データ部3の実体は実行体1
a、1b、1cに対応したものを対象とするように、実
行体切替手段5による実行体の切り替えに同期してデー
タ部実体切替手段6を動作させるようになっている。
【0022】このようにして、共用プログラムのテキス
ト部2sは唯一の実体2aを使用し、データ部3は実行
体1a、1b、1c毎に備えられた実体9a、9b、9
cあるいは8a、8b、8cを使用して実行体毎の独立
した処理を行うプログラムの共用が実現できることにな
る。
【0023】
【発明の実施の形態】図2に本発明の実施の形態の構成
図を示す。仮想記憶装置を備えるコンピュータシステム
において、複数の実行体(マルチタスクあるいはマルチ
スレッド)が存在するようにし、共用するプログラムの
命令部であるテキスト部は仮想空間内に各実行体に共通
なものとして唯一つのみが実体として存在するように
し、上記テキスト部が実行に際して参照するデータ部も
見かけ上は仮想空間に一つのみが配置してある。
【0024】テキスト部の命令が実行されるとき、デー
タ部の操作はどの実行体が動作中であっても、仮想空間
上では静的にリンクされているデータ部の仮想アドレス
は変わらない。
【0025】しかし、複数の実行体が行う処理内容は当
然別のデータを用いて、別の環境において行うものとな
るので、プログラムの命令部であるテキスト部は唯一つ
の実体を用いても、データ部については各実行体毎に異
なるデータの実体を扱い、異なる入力に対して異なる出
力を得るようにしなければならない。
【0026】このために通常のプログラムの管理に加え
て共用プログラムの管理を行うために図2の点線250
で囲んだような幾つかの手段を追加して備えるようにし
ている。
【0027】まず全体の構成について説明する。210
はプログラム管理部であり、プログラムライブラリから
仮想空間への配置、回収に関する管理を行うものであ
る。プログラム管理テーブル211はプログラムの配
置、回収に関する情報を保持する。プログラム配置手段
212はプログラムライブラリから仮想空間上で仮想ア
ドレスでアクセスできるような状態にする。すなわち、
仮想空間へのローディングを行うものである。前記した
ように、プログラムのローディングはプログラムが呼び
出される度に行われたり、まとめて必要なプログラムを
一括して配置したりするが、いずれにしてもこのプログ
ラム配置手段212によって行われる。
【0028】プログラム回収手段213は配置したプロ
グラムが仮想空間に存在する必要が無くなったときに呼
び出されて指定されたプログラムを仮想空間から回収す
るものである。
【0029】上記のプログラムの配置や回収について、
本発明の実施の形態におけるプログラムの共用を実現す
るために追加された手段を説明する前に実行体管理部2
20、実行体制御部230および仮想記憶装置に必須な
ページング制御部240について説明する。
【0030】実行体は上述したように、プログラムが動
作する環境であり、通常複数の環境で複数のプログラム
が同時並行的に進行するように複数の実行体が同時に設
定される。
【0031】実行体生成手段221と実行体回収手段2
22は実行体を新たに作り出し、また、不要になった実
行体を回収するものである。すなわち、新たな情報処理
を行うときにはプログラムを動作させる環境を整える必
要があり、実行体の生成が行われ、その上でプログラム
の配置を行う。その逆が回収である。
【0032】複数の実行体は処理装置の数により同時に
実行できる数が決まるが、どの実行体を動作させるか、
その切り替えを行うものが実行体切替手段231であ
る。実行体の切り替えのきっかけにはいくつかあるが、
例えば、割当時間経過、入出力完了待ち、排他制御待ち
などがある。
【0033】ページング制御部240は仮想記憶の実体
が一次記憶装置あるいは二次記憶に存在し、一次記憶装
置を必要に応じてページ単位で交代で使用する仮想記憶
装置の仕組みであり、ページイン要求処理手段241は
ページインが要求されたとき一次記憶装置のページ枠単
位に空きページを探し、無いときは利用されていないペ
ージをページアウトしてからページインするなどの処理
を行うものである。ページイン完了処理手段243はペ
ージインに伴う入出力の完了を確認するものである。同
様に、ページアウト要求処理手段242、ページアウト
完了処理手段244もページアウトの要求を処理するも
のである。
【0034】次に、プログラム共用のための追加手段2
50について説明する。テキスト部実体管理テーブル2
53はテキスト部の実体に関連する情報を保持するもの
であり、プログラム識別情報、プログラムを配置した仮
想空間識別情報すなわち多重仮想記憶装置の仮想空間の
識別に用いるもの、プログラムを配置した仮想空間内の
テキスト部の仮想アドレスと大きさ、さらに共用してい
る実行体の実行体識別情報が含まれる。
【0035】テキスト部実体管理情報構築手段251は
上記プログラム配置手段212により起動されるもの
で、新たに配置されるプログラムのテキスト部について
上記テキスト部実体管理テーブル253に情報を設定し
構築するものである。
【0036】テキスト部実体管理情報回収手段252は
上記プログラム回収手段213により起動され、指定の
プログラムのテキスト部の実体管理情報を回収するもの
である。
【0037】データ部実体管理テーブル256はデータ
部の仮想領域とデータ部に対応する実行体ごとに設定す
る実体管理用仮想領域(後述)のアドレス、プログラム
の識別情報、大きさおよび対応する実行体識別情報をプ
ログラムと実行体の全ての組み合わせについて情報を保
持するものである。
【0038】データ部実体管理情報構築手段254、デ
ータ部実体管理情報回収手段255によってデータ部実
体管理テーブル256の情報の登録削除を行う。データ
部実体切替手段257は上記実行体切替手段231に同
期して起動され、テキスト部がアクセスするデータ部の
実体を切り替えるものである。
【0039】ページングインターフェース手段258は
前述のページイン、ページアウト処理が発生したとき
に、ページテーブルにある状態表示で内容が共用するプ
ログラムのデータ部の実体であることがわかるとページ
ング制御部240から制御が渡されるもので、非同期に
発生する実行体の切り替えに関わらずページングのI/
O動作が正常に完了するように、対象の仮想アドレスの
調整を行うものである。
【0040】次に、各テーブルの構成についてそれぞれ
の図および全体の構成を示す図2によって説明する。図
3はプログラム管理テーブルの説明図である。
【0041】プログラム管理テーブル211は図3に示
すように、プログラムID(識別番号)31、配置され
た仮想空間ID32、配置された仮想領域のアドレス
(S−P−Dの形式でセグメント番号、ページ番号、ペ
ージ内変位を表す。以下同様)33、領域の大きさ3
4、プログラムの構成36を含む。
【0042】図3には2つのプログラムPG1、PG2
が配置されている状態を示している。仮想領域アドレス
はそれぞれ11−0−0、13−0−0となっておりセ
グメント番号11と13の先頭を示している。領域の大
きさは8KB、7KBを表している。
【0043】図4はテキスト部実体管理テーブルの説明
図である。上記と同様の形式であり、PG1とPG2の
テキスト部について記されている。テキスト部は実行体
すべてに共通として使用するので実行体IDの情報はな
いが、共用している実行体IDのリストは後述の図6実
行体管理テーブルに保持する。
【0044】図5はデータ部実体管理テーブルの説明図
である。上記に加えて対応する実行体ID56と実体管
理用仮想領域アドレス57が項目として設定されてい
る。複数の行が記入してあるが、これは、まず、実行体
としてT01、T02、T03が設定されていたときに
プログラムPG1がプログラム配置手段212により配
置されて最初の3行の情報が設定されている。すなわ
ち、PG1に対して実行体T01、T02、T03が対
応し、プログラムのデータ部仮想領域アドレス53は4
−0−0で同一の仮想領域アドレスを示している。
【0045】実体管理用仮想領域アドレス57は各プロ
グラムのデータ部の領域と同じ大きさの仮想領域をそれ
ぞれ別セグメントにとっている。上記の例ではセグメン
ト1、3、14である。この実体管理用仮想領域はデー
タ部の実体を実行体毎に用意して各実行体が動作すると
きにデータ部の仮想領域アドレス53が示す領域にプロ
グラムのテキスト部の命令がアクセスすると実際はこの
実体管理用仮想領域アドレス57の示す領域に対応する
実体にアクセスすることになるようにしている。
【0046】2番目に配置されたプログラムPG2につ
いても次の3行に同様に実行体T01、T02、T03
に対応して情報が記録されている。この様な状態のとき
に、新規に実行体T04が生成されて最後の2行の情報
が作られた。すなわち、存在していたプログラムPG
1、PG2について実行体T04用に実体管理用仮想領
域が確保されセグメント8、9として記録されている。
【0047】以上のようにプログラムPG1、PG2と
実行体T01、T02、T03、T04の組み合わせ全
てについて情報が発生したことになる。図6は実行体管
理テーブルの説明図である。
【0048】仮想空間ID61毎に1つのテーブルを設
定し、現在設定されている実行体の個数62と実行体I
Dのリスト63の情報を保持する。これは、例えば新規
にプログラムを配置するとき存在する実行体の全てにつ
いてデータ部実体管理テーブル256に情報を構築する
必要があるときに必要となるものである。
【0049】図7はセグメントテーブルとページテーブ
ルの構成の説明図である。(a)に示すセグメントテー
ブルは前段のテーブル71から起点アドレスを示され
る。セグメント番号72に対応して(c)、(d)に示
すページテーブルのアドレス73が示される。図5のデ
ータ部実体管理テーブル256に示したプログラムID
51がPG1の実行体T01とT02についてセグメン
トテーブルとページテーブルの関係を矢印79a、79
bで示している。
【0050】PG1のデータ部仮想領域アドレス53は
4−0−0となっており領域のセグメント番号は4であ
る。また、実体管理用仮想領域アドレス57はプログラ
ムIDがPG1、実行体IDがT01に対して1−0−
0でありセグメント番号は1である。さらに、T02に
対応した実体管理用仮想領域アドレス57は3−0−0
でセグメント番号は3である。
【0051】図7(a)のセグメントテーブルのセグメ
ント番号4に示されているページテーブルアドレス73
zは本来79zによりページテーブル74が指し示され
るものであるが、プログラムを共用するために本来のペ
ージテーブル74は作られず、実行体切替手段231と
同期してデータ部実体切替手段257が働き、73zに
はセグメント番号1に対応して図7(c)またはセグメ
ント番号3に対応して図7(d)に示す実体管理用仮想
領域ページテーブルを指し示すアドレスが書き込まれ
る。このように73zからのポインタは78aまたは7
8bのようになる。
【0052】上記のようにセグメントテーブルのデータ
部のセグメント番号に対応するページテーブルのポイン
タを書き換えることによりデータ部の実体を示すページ
テーブルを切り替えるようにしている。
【0053】図8はページテーブルエントリの説明図で
ある。(a)、(b)によりセグメントテーブルとペー
ジテーブルの関係を示している。ページは2つのエント
リからなり、固定の間隔、ここでは16進で100番地
の距離だけ離れて配置してある。エントリ1はハード関
連情報、エントリ2にはソフト関連情報が格納してあ
る。実体の存在場所に関する情報はエントリ1、エント
リ2の双方の情報で判断する。
【0054】具体的にはエントリ1は図(c)に示すよ
うに、仮想ページに対応する一次記憶上の実ページが存
在するか否かの情報86aと存在する場合には実ページ
のページアドレス87aとその他の情報として属性H8
8aにアクセス権、参照、更新の状況を保持する。
【0055】(d)のエントリ2には実体が二次記憶上
に存在するか否かの情報86bと存在する場合には媒体
上のブロックアドレス87b、その他属性H88bとし
てページイン中、ページアウト中の状態表示や共用プロ
グラムのデータ領域であることの表示などを保持する。
【0056】以上のようなテーブルを使用して如何に動
作するかをフローチャートを用いて説明する。図9はテ
キスト部実体管理情報の構築フローチャートである。
【0057】テキスト部実体管理情報構築手段251は
上記したようにプログラム配置手段212から起動さ
れ、テキスト部実体管理テーブル253にテキスト部の
実体に関する情報を記録するものであり、その動作を説
明する。
【0058】ステップS91では情報を記入する空行を
探す。ステップS92では、上記空行に与えられた情報
として配置するプログラムのテキスト部の実体管理情報
を図4のように設定する。
【0059】ステップS93では図4の44に記入した
テキスト部の仮想領域の大きさに対応したページテーブ
ルの領域を獲得してページテーブルを構築する。ページ
テーブルには実体情報を設定する。プログラムのテキス
ト部が配置されたときは最初は二次記憶上に存在するの
でエントリ1には実ページが存在しないとしてブランク
とし、エントリ2にはプログラム配置手段212から受
け取ったテキスト部の格納ブロックアドレスを記録す
る。
【0060】ステップS95においてはセグメントテー
ブルに、構築したページテーブルのアドレスを設定す
る。図10にはテキスト部実体管理情報の回収フローチ
ャートを示す。
【0061】ステップS1ではテキスト部実体管理テー
ブル253をプログラムIDで検索して対応の記入行を
さがす。ステップS2で図4の仮想領域アドレス43の
セグメント番号からセグメントテーブルにあるページテ
ーブルアドレスを得て、ステップS3でセグメントテー
ブルの標識を無効としてページテーブルが無いことを示
し、ステップS4ではページテーブルの領域を返却す
る。ステップS5でテキスト部実体管理テーブル253
の1行を空きに戻す。
【0062】図11にはデータ部実体管理情報の構築フ
ローチャート(その1)を示す。データ部実体管理情報
構築手段254がプログラム配置手段212から起動さ
れた場合の動作を示す。
【0063】ステップS101で図6の実行体管理テー
ブルのポインタを先頭に設定する。ステップS102で
図5のデータ部実体管理テーブル256のポインタを空
行の先頭に設定する。
【0064】ステップS103でデータ部実体管理テー
ブル256にプログラムID、仮想空間IDなどの情報
を設定する。ステップS104ではポインタで示される
実行体管理テーブルの実行体ID用の実体管理用仮想領
域をデータ部仮想領域の大きさ54と同じ仮想領域を獲
得し、ステップS105で実体管理用仮想領域アドレス
57に設定する。
【0065】ステップS106でデータ部の領域の大き
さ54に対応したページテーブルの領域を獲得し、ステ
ップS107でエントリを初期値として二次記憶上に実
体があるように設定する。
【0066】ステップS108では実体管理用仮想領域
のセグメント番号に対応してセグメントテーブルにペー
ジテーブルアドレスを設定する。ステップS109で、
図6の実行体管理テーブルのポインタが示す実行体ID
をデータ部実体管理テーブルの56に設定する。
【0067】ステップS110で全ての実行体について
処理終了したかを確認する。まだ終了していないときは
ステップS111で実行体管理テーブルのポインタを進
め、データ部実体管理テーブルのポインタを次の空行に
進めてステップS103からくり返す。
【0068】図12には実行体生成手段221から起動
されたときのデータ部実体管理情報構築手段の動作のフ
ローチャートを示してある。ステップS201において
図3のプログラム管理テーブル211についてポインタ
を先頭に設定し、データ部実体管理テーブル256のポ
インタを空行の先頭に設定する。
【0069】ステップS202では図3のプログラム管
理テーブル211のポインタが示すプログラムについて
プログラム管理テーブル211の情報をデータ部実体管
理テーブル256に仮想空間ID、仮想領域アドレス、
仮想領域の大きさをコピーする。
【0070】ステップS203は実行体生成手段221
から受けた生成する実行体IDを実行体ID56に設定
する。ステップS204では上記実行体IDに対応して
実体管理用仮想領域を確保し、ステップS205で実体
管理用仮想アドレス57に設定する。
【0071】ステップS206ではデータ部の領域の大
きさに対応したページテーブルを構築して、ステップS
207でエントリの初期値を記入する。実体の初期値は
二次記憶にあると設定する。
【0072】ステップS208においてセグメントテー
ブルに上記確保した実体管理用仮想領域のセグメント番
号に対応して構築したページテーブルのアドレスを設定
する。
【0073】ステップS209ではプログラム管理テー
ブルに存在するすべてのプログラムについて処理が終了
したかを確認する。終了ではないときはポインタを進め
ステップS202から次のプログラムについて情報を構
築する。
【0074】図13はデータ部実体管理情報の回収フロ
ーチャート(その1)である。データ部実体管理情報回
収手段255はプログラム回収手段213および実行体
回収手段222から起動されるが、(その1)ではプロ
グラム回収手段213から起動される場合の動作を説明
する。
【0075】ステップS31では呼出元から回収すべき
プログラムのIDを得る。ステップS32でデータ実体
管理テーブル256の先頭にポインタを設定する。ステ
ップS33で図5のデータ部実体管理テーブル256に
おけるポインタの示す行のプログラムID51が上記プ
ログラムIDと同じかを調べる。回収すべきプログラム
IDであればステップS34で図5における57が示す
実体管理用仮想領域アドレスのセグメント番号の指し示
すページテーブルの領域を返却し、ステップS35で上
記実体管理用仮想領域を返却する。
【0076】ステップS36とステップS37ですべて
の行についてデータ部実体管理テーブルのプログラムI
Dを調べるようにしている。図14のデータ部実体管理
情報の回収フローチャート(その2)ではデータ部実体
管理情報回収手段255が実行体回収手段222から起
動されたときの動作を示している。
【0077】ステップS41で呼出元から指定された回
収する実行体のIDを得る。ステップS42でデータ部
実体管理テーブル256の先頭にポインタを設定する。
ステップS43でポインタの示す実行体IDが上記ID
と一致するかを調べ、回収するものであるときはステッ
プS44で実体管理用仮想領域を返却、ステップS45
でページテーブルの領域を返却している。ステップS4
6とステップS47でデータ部実体管理テーブルの全行
についての処理を行うように繰り返しを指定している。
【0078】図15はデータ部実体切替手段のフローチ
ャートを示している。データ部実体切替手段257は実
行体切替手段231が実行体を切り替えるときに同期し
て起動される。呼び出し元からの情報としてステップS
51で新たに切り替える実行体のIDを得る。ステップ
S52でポインタをデータ部実体管理テーブル256の
先頭に位置づける。
【0079】ステップS53でポインタの示す行の実行
体ID56が新たに切り替わるIDと一致するものかを
調べる。実行体IDが一致したときにはステップS54
で、その行にある実体管理用仮想領域アドレス57で示
される領域はプログラムID51で示されるプログラム
が新たな実行体で使用するデータ部の実体に対応するも
のであるのでこれをプログラムがアクセスするようにす
るために、実体管理用仮想領域アドレス57が示すアド
レスのセグメント番号からセグメントテーブルにあるペ
ージテーブルのアドレスを得て、データ部の仮想領域ア
ドレス53の示すセグメント番号に対応するページテー
ブルアドレスを書き替える。
【0080】ステップS55、ステップS56で以上の
処理をデータ部実体管理テーブル256に存在する全行
について実行するようにしている。図16にはページン
グインタフェース手段のフローチャートを示す。
【0081】ページングインタフェース手段258は共
用するプログラムのデータ部の実体に対してページング
が発生することを検出したページ制御部240が起動す
るものである。
【0082】ステップS61でインタフェース条件とし
てデータ部仮想領域アドレスと実行体IDを得る。ステ
ップS62でポインタをデータ部実体管理テーブル25
6の先頭行に設定する。
【0083】ステップS63とステップS64で上記イ
ンタフェース条件が合うものかどうかを調べる。すなわ
ち、データ部仮想領域アドレス53と実行体ID56に
ついて両方が一致する場合ポインタが示す実体管理用仮
想領域アドレス57をページング対象アドレスとして呼
出元のページング制御部240に返す。
【0084】
【発明の効果】以上の説明から明らかなように本発明に
よれば、仮想記憶を使用したコンピュータにおいて並行
して実行される共通の処理内容の情報処理を、仮想空間
に配置した共通のプログラムを共用することが実現で
き、特に大規模な処理を多数同時に実行させるようなオ
ンライン処理、通信処理などに関して、より大量に処理
することができるようになり、経済性の向上、処理能力
の向上、という著しい工業的効果がある。
【図面の簡単な説明】
【図1】 本発明の原理説明図
【図2】 本発明の実施の形態の構成図
【図3】 プログラム管理テーブルの説明図
【図4】 テキスト部実体管理テーブルの説明図
【図5】 データ部実体管理テーブルの説明図
【図6】 実行体管理テーブルの説明図
【図7】 セグメントテーブルとページテーブルの構成
の説明図
【図8】 ページテーブルエントリの説明図
【図9】 テキスト部実体管理情報の構築フローチャー
【図10】 テキスト部実体管理情報の回収フローチャ
ート
【図11】 データ部実体管理情報の構築フローチャー
ト(その1)
【図12】 データ部実体管理情報の構築フローチャー
ト(その2)
【図13】 データ部実体管理情報の回収フローチャー
ト(その1)
【図14】 データ部実体管理情報の回収フローチャー
ト(その2)
【図15】 データ部実体切替手段のフローチャート
【図16】 ページングインタフェース手段のフローチ
ャート
【符号の説明】
1s、1a、1b、1c 実行体 2s、2a 共用プログラムテキスト部 3 共用プログラムデータ部 4 仮想空間 5 実行体切替手段 6 データ部実体切替手段 7a、7b、7c 実体の所在を保持するテーブル 8a、8b、8c 二次記憶上のデータ部の実体 9a、9b、9c 一次記憶上のデータ部の実体

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 共用プログラムのテキスト部と、上記テ
    キスト部と静的にリンクされた上記共用プログラムのデ
    ータ部とを仮想空間内に配置し、 上記仮想空間内で上記共用プログラムを実行する環境で
    ある実行体を1以上有するプログラムの共用装置であっ
    て、 上記共用プログラムのデータ部に対応する上記実行体毎
    の一次記憶上あるいは二次記憶上の仮想記憶の内容であ
    る実体に関する情報を保持するデータ部実体管理テーブ
    ルと、 上記共用プログラムが動作する実行体を切り替える実行
    体切替手段に同期して上記データ部実体管理テーブルの
    示す実体を切り替えるデータ部実体切替手段と、を備え
    ることを特徴とするプログラムの共用装置。
  2. 【請求項2】 プログラムの配置を行うプログラム配置
    手段が、上記仮想空間内に新たな共用プログラムを配置
    するとき、 プログラムのテキスト部の実体に関する情報を保持する
    テキスト部実体管理テーブルに上記新たな共用プログラ
    ムのテキスト部実体管理情報を構築するテキスト部実体
    管理情報構築手段と、 上記データ部実体管理テーブルに上記仮想空間内に存在
    する実行体毎にデータ部実体管理情報を構築するデータ
    部実体管理情報構築手段と、を備えることを特徴とする
    請求項1のプログラムの共用装置。
  3. 【請求項3】 プログラムの回収を行うプログラム回収
    手段が、上記仮想空間内に配置されている上記共用プロ
    グラムを回収するとき、 上記回収する共用プログラムのテキスト部実体管理情報
    を回収するテキスト部実体管理情報回収手段と、 上記仮想空間内に存在するすべての実行体の上記回収す
    る共用プログラムのデータ部実体管理情報を回収するデ
    ータ部実体管理情報回収手段と、を備えることを特徴と
    する請求項2のプログラムの共用装置。
  4. 【請求項4】 実行体を生成する実行体生成手段が、上
    記仮想空間内に新たに実行体を生成するとき、 上記データ部実体管理テーブルに、上記仮想空間に配置
    されている共用プログラムのデータ部に対応する上記実
    行体のデータ部実体管理情報を構築するデータ部実体管
    理情報構築手段を備えることを特徴とする請求項1ある
    いは請求項2のプログラムの共用装置。
  5. 【請求項5】 実行体の回収を行う実行体回収手段が、
    上記仮想空間内に存在する実行体を回収するとき、 上記データ部実体管理テーブルの上記実行体に対応して
    構築されていたすべてのデータ部実体管理情報を回収す
    るデータ部実体管理情報回収手段を備えることを特徴と
    する請求項4のプログラムの共用装置。
  6. 【請求項6】 ページングを制御するページング制御部
    が、共用プログラムのデータ部の実体に対するページイ
    ン要求あるいはページアウト要求を検出したとき、 上記共用プログラムのデータ部のデータ部実体管理情報
    をページング制御部に通知するページングインターフェ
    ース手段を備えることを特徴とする請求項1、請求項
    2、請求項3、請求項4あるいは請求項5のプログラム
    の共用装置。
  7. 【請求項7】 共用プログラムのテキスト部と、上記テ
    キスト部と静的にリンクされた上記共用プログラムのデ
    ータ部とを仮想空間内に配置し、 上記仮想空間内で上記共用プログラムを実行する環境で
    ある実行体を1以上有する計算機システムにおけるプロ
    グラムの共用方法であって、 上記共用プログラムのデータ部に対応する上記実行体毎
    の一次記憶上あるいは二次記憶上の仮想記憶の内容であ
    る実体に関する情報を保持し、 上記共用プログラムが動作する実行体の切り替えに同期
    して上記データ部の実体を切り替えることを特徴とする
    プログラムの共用方法。
JP18421295A 1995-07-20 1995-07-20 プログラムの共用装置と方法 Expired - Fee Related JP3644078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18421295A JP3644078B2 (ja) 1995-07-20 1995-07-20 プログラムの共用装置と方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18421295A JP3644078B2 (ja) 1995-07-20 1995-07-20 プログラムの共用装置と方法

Publications (2)

Publication Number Publication Date
JPH0934790A true JPH0934790A (ja) 1997-02-07
JP3644078B2 JP3644078B2 (ja) 2005-04-27

Family

ID=16149334

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18421295A Expired - Fee Related JP3644078B2 (ja) 1995-07-20 1995-07-20 プログラムの共用装置と方法

Country Status (1)

Country Link
JP (1) JP3644078B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347940A (ja) * 1999-06-08 2000-12-15 Matsushita Electric Ind Co Ltd メモリ管理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347940A (ja) * 1999-06-08 2000-12-15 Matsushita Electric Ind Co Ltd メモリ管理装置

Also Published As

Publication number Publication date
JP3644078B2 (ja) 2005-04-27

Similar Documents

Publication Publication Date Title
US5717950A (en) Input/output device information management system for multi-computer system
US6442568B1 (en) Customer information control system application programming interface with transient data functions, in a loosely coupled data processing environment
US5495610A (en) Software distribution system to build and distribute a software release
JPH04505977A (ja) オブジェクト指向分散処理システム
WO1991008542A1 (en) Software distribution system
JPWO2002042853A1 (ja) プログラミング装置及びプログラミング方法
JP2521036B2 (ja) デ―タ表示方法、システム及び実行方法
JPH0934790A (ja) プログラムの共用装置と方法
US5712974A (en) Method and apparatus for controlling the configuration definitions in a data processing system with a plurality of processors
US5893122A (en) Hyper-media system including plural application processors which execute navigation processing for hyper-media document
JP3750084B2 (ja) 絞り込み表示を行うデータ処理装置
JPH09114673A (ja) プログラムロード装置と方法
JPH0337748A (ja) 主記憶を利用した外部記憶アクセス方式
JP3514524B2 (ja) ネットワーク監視装置
JP2677309B2 (ja) 大規模知識データベースにおける領域管理方式
JP3557338B2 (ja) プラント監視制御装置及び該装置のプログラムを記録した記録媒体
JP3335213B2 (ja) 情報を図的に表示する情報機器、情報表示方法
JPH064273A (ja) データ処理装置
CN114328611A (zh) 数据索引方法、装置、设备及存储介质
JPH05324291A (ja) 情報管理装置
JPS62241047A (ja) デ−タベ−ス管理システムによる入出力バツフアの共用制御方法
JPH01120621A (ja) データベースの検索・更新方式
JPH0581221A (ja) 並列プログラム開発支援装置
JPH06282592A (ja) 生産設備の情報処理装置
JPH04340141A (ja) 画像処理方法及び装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050124

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080210

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090210

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090210

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100210

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110210

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110210

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120210

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees