JPH1115678A - 単一アドレス空間をもつ処理装置のプログラム制御方法及び装置 - Google Patents

単一アドレス空間をもつ処理装置のプログラム制御方法及び装置

Info

Publication number
JPH1115678A
JPH1115678A JP17146197A JP17146197A JPH1115678A JP H1115678 A JPH1115678 A JP H1115678A JP 17146197 A JP17146197 A JP 17146197A JP 17146197 A JP17146197 A JP 17146197A JP H1115678 A JPH1115678 A JP H1115678A
Authority
JP
Japan
Prior art keywords
memory area
memory
address space
program
single address
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
JP17146197A
Other languages
English (en)
Inventor
Hiroshi Sakagami
弘 坂上
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP17146197A priority Critical patent/JPH1115678A/ja
Publication of JPH1115678A publication Critical patent/JPH1115678A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 単一アドレス空間内でメモリ継承を伴うプロ
セス生成を実現する。 【解決手段】 親プロセスが子プロセスを順次生成する
ことによってプロセスの階層を構成する。各プロセス階
層のプロセスに対して同一の記憶保護キーをもつアドレ
ス空間10内のメモリ領域を割り当てる。オペレーティ
ングシステムは、親プロセスからの要求に応答して親プ
ロセスに割り当てたメモリ領域と同じサイズで1階層下
の記憶保護キーをもつメモリ領域を子プロセスに割り当
て、親プロセスのメモリ領域の内容を子プロセスのメモ
リ領域に複写する。子プロセスがプログラム実行中に発
生する親プロセスのメモリ領域参照を記憶保護例外によ
って検出し、親プロセスのメモリ領域を参照するアドレ
ス情報を子プロセスのメモリ領域の対応するアドレス情
報に変換してメモリ領域参照を再実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、単一アドレス空間
上で実行される複数のプロセスを制御するプログラム制
御方法及び装置に係わり、特に生成元プロセスからメモ
リの継承を伴って子プロセスを生成するときのプログラ
ム制御方法及び装置に関する。
【0002】
【従来の技術】生成元プロセスから子プロセスへメモリ
の継承を伴うプロセスの生成は、多重仮想記憶を実装す
る計算機では容易である。例えば特公平8−10435
号公報「アドレス・スペース・ナンバ割り当て処理方
式」によれば、子プロセスのために新たなアドレス空間
を生成し、このアドレス空間に生成元のアドレス空間全
体を複写することにより実現する。
【0003】
【発明が解決しようとする課題】多重仮想記憶を実装し
ていない計算機では、アドレス空間全体の複写によるメ
モリ継承が不可能であり、メモリ継承を伴うプロセスの
生成が行われていない。また多重仮想記憶を実装してい
る計算機でも、同一アドレス空間内で子プロセスを生成
する場合にメモリ継承を伴うプロセスの生成ができない
という問題があった。
【0004】本発明の目的は、単一アドレス空間内でプ
ロセス間のメモリ継承を実現するプログラム制御方法及
び装置を提供することにある。
【0005】
【課題を解決するための手段】本発明は、プロセス生成
元となる親プロセスからのプロセス生成要求に応答して
単一アドレス空間上に親プロセスに割り当てたメモリ領
域と同じサイズで異なる記憶保護キーをもつメモリ領域
を生成する子プロセスに割り当て、生成元プロセスのメ
モリ領域の内容を子プロセスのメモリ領域に複写し、子
プロセスがプログラム実行中に発生する親プロセスのメ
モリ領域参照を記憶保護例外によって検出し、親プロセ
スのメモリ領域を参照するアドレス情報を子プロセスの
メモリ領域の対応するアドレス情報に変換してメモリ領
域参照を再実行するプログラム制御方法及び計算機を特
徴とする。
【0006】また本発明は、単一アドレス空間について
最初に生成するプロセスを第1層のプロセスとして、親
プロセスから生成される子プロセスを1つ下位の層に位
置付けるようにプロセスの階層を構成し、子プロセスか
らのプログラム置き換えによるメモリ割り当て要求に応
答して親プロセスから継承した子プロセスのメモリ領域
を解放して子プロセスを第1層のプロセスに位置付け
し、子プロセスに新たなプログラムを格納するためのメ
モリ領域を割り当てるプログラム制御方法及び計算機を
特徴とする。
【0007】
【発明の実施の形態】以下、本発明の実施形態について
図面を用いて説明する。
【0008】(1)第1の実施形態 図1は、プロセスの階層とアドレス空間との関係を説明
する概念図である。アドレス空間10は、単一の論理ア
ドレス空間であり、一定サイズの記憶領域であるページ
11によって分割される。各ページ11に対応して記憶
保護キーが設けられており、処理装置のハードウェア
は、プロセス12がページ11にアクセスするときプロ
セス12に割り当てられた保護キーとページ11の記憶
保護キーとを比較してキー不一致による記憶保護例外を
検出する。アドレス空間10にアクセスする複数のプロ
セス12は、プロセスの階層を構成する。すなわち最初
に生成するプロセスを第1層のプロセスとして、このプ
ロセスの要求によって生成されたプロセスが第2層のプ
ロセスとして1つ下の階層に位置付けられるというよう
に、親となるプロセスが子プロセスを生成するごとによ
り下位の階層のプロセスが形成される。オペレーティン
グシステム(OS)が使用するページ11を除いて、ペ
ージ11にはn個(n種)の記憶保護キーのうちのいず
れかを設定することができ、同一の記憶保護キーをもつ
ページ11群をグループ13と呼ぶ。各グループ13と
プロセスの階層とが1対1に対応するようにプロセス階
層に保護キーを割り当てる。各プロセスに割り当てる連
続した記憶領域をエクステント15と呼び、エクステン
トにはそのプロセスが属するプロセス階層に対応するグ
ループ13内のページ11又はページ11内の一部記憶
領域が割り当てられる。各プロセスについて複数のエク
ステント15を割り当てることが可能であり、特定のプ
ロセスに割り当てられたエクステント15群をセグメン
ト14と呼ぶ。図示するように、同一のプロセス階層に
属する複数のプロセスには、同一グループ内のページか
ら記憶領域が割り当てられる。なお各グループ13が占
有する記憶領域の大きさは固定ではなく、プロセスの生
成/消滅及びメモリ割り当て要求/割り当て解除要求に
従って動的に変動する。
【0009】図2は、記憶保護キーを管理するための制
御情報21のデータ構成を示す図である。制御情報21
は、記憶保護キーを要素とする配列であり、各要素は先
頭の要素から順に第1層、第2層、・・・第n層のプロ
セス階層に対応し、各々アドレス空間10内の各グルー
プと対応する。
【0010】図3は、セグメント14内の各エクステン
ト15を管理するための制御情報22のデータ構成を示
す図である。制御情報22は、各プロセス12のプロセ
ス制御ブロックからポイントされ、制御情報21の要素
の番号を示す配列要素番号と、当該プロセスに割り当て
た各エクステント15に対応してポインタと長さ(バイ
ト数)から成るエクステント制御情報をもつ。ポインタ
はエクステント15の先頭バイトアドレスである。プロ
セス12に対して新たにエクステント15を割り当てる
ごとに対応するエクステント制御情報が作成されてチェ
インによって制御情報22に付加される。
【0011】図4は、OSの一部であり、プロセスの生
成と起動、およびプロセスへのメモリ割り当てを行う制
御プログラムの処理の流れを示すフローチャートであ
る。この制御プログラムは、生成/起動元となるプロセ
ス12がメモリ割り当て要求31又はプロセス生成要求
32を発行することによって呼び出され、要求待ち33
の状態が解かれて要求内容により分岐する(ステップ3
4)。メモリ割り当て要求の場合には、当該プロセス1
2の制御情報22の配列要素番号に対応する制御情報2
1の要素に格納される記憶保護キーをもつアドレス空間
10中のエクステント15を割り当て(ステップ3
5)、このエクステント15の先頭アドレスと要求され
た長さを格納するエクステント制御情報を制御情報22
に追加する(ステップ36)。子プロセスの生成要求の
場合には、新しい制御情報22を生成する(ステップ3
7)。このとき生成元プロセスの制御情報22に設定さ
れた配列要素番号に1を加算したものを新しい制御情報
22の配列要素番号として設定し、子プロセスのプロセ
ス制御ブロックから新しい制御情報22へチェインを形
成する。子プロセスのプロセス制御ブロックがない場合
には、ステップ37の前に生成する必要がある。次に生
成元プロセスの制御情報22によって管理される各エク
ステント15と等しい長さのエクステント15を各々確
保する(ステップ38)。すなわち子プロセスの制御情
報22の配列要素番号に対応する制御情報21の要素に
格納される記憶保護キーをもつアドレス空間10中のエ
クステント15を割り当ててその先頭アドレスと長さを
制御情報22のエクステント制御情報に格納する。この
処理によって生成元プロセスの各エクステント15に対
応して同じ長さ、異なるアドレスのエクステント群が確
保される。次に生成元プロセスの各エクステント15の
内容を対応する子プロセスのエクステント15に複写す
る(ステップ39)。次に制御プログラムは、制御レジ
スタを介して起動元プロセスから子プロセスへアドレス
情報を渡す場合に対象となる制御レジスタの内容につい
て次の手順に従ってリロケーションを行う(ステップ4
0)。すなわち起動元プロセスの制御情報22中のエク
ステント制御情報を検索して対象とするアドレス情報を
エクステント15のアドレス範囲に含むようなエクステ
ント15のポインタ(先頭アドレス)を求め、そのエク
ステント15の先頭アドレスを0とする該当アドレスの
相対アドレスを計算する。次に子プロセスの対応するエ
クステント制御情報を参照して対応エクステントの先頭
アドレスを求め、先に計算した相対アドレスを加算す
る。この結果がリロケーション後のアドレス情報となる
ので、該当する制御レジスタに格納する。リロケーショ
ンが終了した時点で子プロセスを起動し(ステップ4
1)、子プロセスのプログラムが実行開始される。以上
説明したプロセス生成処理によって、子プロセスは生成
/起動元プロセスのセグメント14の複写物を異なる記
憶保護キーで確保することができる。
【0012】以上のプロセス生成処理によって制御レジ
スタを介して親プロセスから子プロセスへ渡されるアド
レス情報はリロケーションされるが、親プロセスのセグ
メント14の内容を子プロセスの対応するセグメント1
4に複写した結果として、親プロセスのセグメント14
内のアドレス情報は、子プロセスの対応するセグメント
内にそのまま残る。従ってこのようなアドレス情報を子
プロセスに許容されるセグメントのアドレス範囲内の対
応するアドレスにリロケーションする必要がある。本発
明では、子プロセスのプログラムを実行中にOSが介入
してこのようなアドレスを動的にリロケーションする。
【0013】図5は、OSの一部であり、記憶保護例外
の処理をする制御プログラムの処理の流れを示すフロー
チャートである。上述したように起動元プロセスのセグ
メント14と子プロセスのセグメント14には異なる記
憶保護キーが割り当てられているため、子プロセスがプ
ログラムを実行中に起動元プロセスのセグメント内を示
すアドレス情報を参照する(ステップ51)と、記憶保
護例外が発生する。ハードウェアの記憶保護例外の検出
によってこの制御プログラムが起動されると、記憶保護
例外が発生した命令語と関連する制御レジスタの内容を
解析し(ステップ52)、当該命令語が格納されるアド
レスと記憶保護例外を発生させたアドレス情報とを求め
る。次に制御情報22の1つについて各エクステント制
御情報を参照して例外となったアドレス情報がいずれか
のエクステント15のアドレス範囲、すなわちセグメン
ト14の範囲に含まれるか否かを判定する(ステップ5
4)。いずれかのエクステント15のアドレス範囲に含
まれてなく(ステップ54NO)、すべての制御情報2
2を検索済でなければ(ステップ55NO)、ステップ
53に戻り次のプロセスの制御情報22について上記処
理を繰り返す。例外のアドレス情報がそのアドレス範囲
に含まれるエクステント15が見つかったとき(ステッ
プ54YES)、次の手順に従ってアドレス情報のリロ
ケーションを行う(ステップ56)。すなわち当該エク
ステント15の先頭アドレスを0とする例外アドレス情
報の相対アドレスを計算する。次に記憶保護例外が発生
した命令語が格納されるアドレスをそのアドレス範囲に
含むセグメント14を管理する制御情報22、すなわち
当該子プロセスの制御情報22を見つけ、検索した親プ
ロセスのエクステント制御情報に対応する子プロセスの
エクステント制御情報からエクステントの先頭アドレス
を求め、先に計算した相対アドレスを加算する。このよ
うにして例外となったアドレス情報をリロケーション後
のアドレス情報に変換したら、得られたアドレス情報を
元の命令語又は制御レジスタに設定する。最後に記憶保
護例外が発生した命令からプロセスの実行を再開始する
(ステップ57)。すべての制御情報22の検索を終了
しても例外のアドレス情報がそのアドレス範囲に含まれ
るエクステント15が見つからないとき(ステップ55
YES)、従来の記憶保護例外の処理を行う(ステップ
58)。
【0014】(2)第2の実施形態 第1の実施形態の方式は、アドレス空間10について最
初に生成するプロセスを基点としてプロセス階層の最大
数が使用可能なキー数nに限定される。第2の実施形態
は、プログラム置き換えに伴ってプロセス階層の基点を
起動される子プロセスに変更することによってこの制約
条件を解消するものである。ここでプログラム置き換え
とは、子プロセスを起動した後、起動元プロセスから継
承したメモリを解放することによって親のプログラムを
放棄し、新たなプログラムをロードするためにメモリを
割り当て直すことをいう。
【0015】図6は、プロセス階層の基点を変更する方
式を説明する概念図である。アドレス空間10について
最初に生成するプロセスの下位のプロセスがプログラム
置き換えに伴う新たなメモリ割り当て要求をしたとき、
このプロセスを新たなプロセス階層の基点、すなわち制
御情報21の最初の配列要素に対応して第1層のプロセ
ス階層とする。以下このプロセスより下位のプロセスを
第2層から順にプロセス階層に位置付けることができ、
プロセス階層の数nの制約がなくなる。
【0016】第1の実施形態の制御情報21、制御情報
22、図4と図5に示す制御プログラムの処理手順は第
2の実施形態についても適用される。第2の実施形態で
は、図4に示す制御プログラムの処理にプログラム置き
換えに伴うメモリ割り当て要求の処理が追加される。
【0017】図7は、プログラム置き換えによるメモリ
割り当て要求に関する制御プログラムの処理の流れを示
すフローチャートである。プロセス12からプログラム
置き換えによるメモリ割り当て要求があると(ステップ
61)、要求待ち33の状態が解かれて要求内容により
分岐する(ステップ34)。プログラム置き換えの場合
には、制御プログラムは制御情報22を参照して当該プ
ロセスに割り当てられているセグメント14を解放し
(ステップ62)、制御情報22の配列要素番号を1に
変更する(ステップ63)。次に制御情報21の最初の
要素に格納される記憶保護キーをもつアドレス空間10
中のエクステント15を割り当てる(ステップ64)。
この後制御がプログラム置き換えによるメモリ割り当て
要求元のプロセス12に戻ったとき、割り当てられたエ
クステント15に新たなプログラムをロードして実行す
ることができる。
【0018】第1の実施形態によれば、親プロセスのた
めに作成した配列、テーブル、プログラム等のソフトウ
ェア資源を子プロセスの記憶領域に移植し、子プロセス
によって継承し利用することができる。第2の実施形態
によれば、親プロセスから継承したソフトウェア資源が
不要になり、親から継承したエクステントを解放して子
プロセスの新たなプログラムやデータに置き換えると
き、記憶保護例外を利用するアドレス情報のリロケーシ
ョンも不要になるので、この時点をとらえてプロセス階
層の最大数を拡張できる。
【0019】
【発明の効果】以上述べたように本発明によれば、単一
アドレス空間をベースとする計算機において、あるいは
多重仮想記憶を実装している計算機が単一アドレス空間
上でプロセスを生成する場合に、メモリの継承を伴うプ
ロセスの生成をすることができる。
【図面の簡単な説明】
【図1】プロセスの階層とアドレス空間との関係を説明
する概念図である。
【図2】実施形態の制御情報21のデータ構成を示す図
である。
【図3】実施形態の制御情報22のデータ構成を示す図
である。
【図4】実施形態のプロセスの生成/起動等を行う制御
プログラムの処理の流れを示すフローチャートである。
【図5】実施形態の記憶保護例外の処理をする制御プロ
グラムの処理の流れを示すフローチャートである。
【図6】プロセス階層の基点を変更する方式を説明する
概念図である。
【図7】実施形態のプログラム置き換えによるメモリ割
り当てを行う制御プログラムの処理の流れを示すフロー
チャートである。
【符号の説明】
10:アドレス空間、12:プロセス、15:エクステ
ント、21:制御情報、22:制御情報

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】単一アドレス空間上で複数のプロセスの実
    行を制御するプログラム制御方法において、プロセス生
    成元となる第1のプロセスからのプロセス生成要求に応
    答して該単一アドレス空間上に第1のプロセスに割り当
    てたメモリ領域と同じサイズで異なる記憶保護キーをも
    つメモリ領域を生成する第2のプロセスに割り当て、生
    成元プロセスのメモリ領域の内容を第2のプロセスのメ
    モリ領域に複写し、第2のプロセスがプログラム実行中
    に発生する第1のプロセスのメモリ領域参照を記憶保護
    例外によって検出し、第1のプロセスのメモリ領域を参
    照するアドレス情報を第2のプロセスのメモリ領域の対
    応するアドレス情報に変換してメモリ領域参照を再実行
    することを特徴とする単一アドレス空間をもつ処理装置
    のプログラム制御方法。
  2. 【請求項2】該単一アドレス空間について最初に生成す
    るプロセスを第1層のプロセスとして第1のプロセスか
    ら生成される第2のプロセスを1つ下位の層に位置付け
    るようにプロセスの階層を構成し、第2のプロセスから
    のプログラム置き換えによるメモリ割り当て要求に応答
    して第1のプロセスから継承した第2のプロセスのメモ
    リ領域を解放して第2のプロセスを第1層のプロセスに
    位置付けし、第2のプロセスに新たなプログラムを格納
    するためのメモリ領域を割り当てることを特徴とする請
    求項1記載の単一アドレス空間をもつ処理装置のプログ
    ラム制御方法。
  3. 【請求項3】単一アドレス空間上で複数のプロセスの実
    行を制御する処理装置において、プロセス生成元となる
    第1のプロセスからのプロセス生成要求に応答して該単
    一アドレス空間上に第1のプロセスに割り当てたメモリ
    領域と同じサイズで異なる記憶保護キーをもつメモリ領
    域を生成する第2のプロセスに割り当てる手段と、生成
    元プロセスのメモリ領域の内容を第2のプロセスのメモ
    リ領域に複写する手段と、第2のプロセスがプログラム
    実行中に発生する第1のプロセスのメモリ領域参照を記
    憶保護例外によって検出する手段と、第1のプロセスの
    メモリ領域を参照するアドレス情報を第2のプロセスの
    メモリ領域の対応するアドレス情報に変換してメモリ領
    域参照を再実行する手段とを有することを特徴とする単
    一アドレス空間をもつ処理装置。
  4. 【請求項4】該単一アドレス空間について最初に生成す
    るプロセスを第1層のプロセスとして第1のプロセスか
    ら生成される第2のプロセスを1つ下位の層に位置付け
    るようにプロセスの階層を構成し、第2のプロセスから
    のプログラム置き換えによるメモリ割り当て要求に応答
    して第1のプロセスから継承した第2のプロセスのメモ
    リ領域を解放して第2のプロセスを第1層のプロセスに
    位置付けし、第2のプロセスに新たなプログラムを格納
    するためのメモリ領域を割り当てる手段をさらに設ける
    ことを特徴とする請求項3記載の単一アドレス空間をも
    つ処理装置。
JP17146197A 1997-06-27 1997-06-27 単一アドレス空間をもつ処理装置のプログラム制御方法及び装置 Pending JPH1115678A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17146197A JPH1115678A (ja) 1997-06-27 1997-06-27 単一アドレス空間をもつ処理装置のプログラム制御方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17146197A JPH1115678A (ja) 1997-06-27 1997-06-27 単一アドレス空間をもつ処理装置のプログラム制御方法及び装置

Publications (1)

Publication Number Publication Date
JPH1115678A true JPH1115678A (ja) 1999-01-22

Family

ID=15923547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17146197A Pending JPH1115678A (ja) 1997-06-27 1997-06-27 単一アドレス空間をもつ処理装置のプログラム制御方法及び装置

Country Status (1)

Country Link
JP (1) JPH1115678A (ja)

Similar Documents

Publication Publication Date Title
JP2893071B2 (ja) マルチ・スレッド対応ディジタル・データ・プロセッサ用スレッド・プライベート・メモリ
JP2986075B2 (ja) ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム
US6049853A (en) Data replication across nodes of a multiprocessor computer system
JP5255348B2 (ja) クラッシュダンプ用のメモリアロケーション
US6681239B1 (en) Computer system having shared address space among multiple virtual address spaces
US6442568B1 (en) Customer information control system application programming interface with transient data functions, in a loosely coupled data processing environment
US5835961A (en) System for non-current page table structure access
JPH11505653A (ja) 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム
JP2000506659A (ja) マルチプロセッサデータ処理システム内でメモリを割り当てる方法
JPH0578857B2 (ja)
JPH05233425A (ja) メモリ管理装置
KR101996975B1 (ko) 메모리 할당 방법 및 장치
JPH05233452A (ja) 情報処理装置
US5394539A (en) Method and apparatus for rapid data copying using reassigned backing pages
US7395400B2 (en) Adaptive address space operating system
CN109643276B (zh) 创建数据库子集快照的系统及方法
JPH06110715A (ja) 仮想計算機システムにおける計算機資源の動的割付け方法
US7444636B2 (en) Method and system of determining attributes of a functional unit in a multiple processor computer system
US20220318042A1 (en) Distributed memory block device storage
JPH1063525A (ja) 情報処理装置、情報処理システム及びその制御方法
JPH1115678A (ja) 単一アドレス空間をもつ処理装置のプログラム制御方法及び装置
US7219206B1 (en) File system virtual memory descriptor generation interface system and method
US7730015B1 (en) Stackable storage access mechanism for file systems
CA2387200A1 (en) Implementation of thread-static data in multi-threaded computer systems
JP2003316589A (ja) 実記憶利用方法