JPH096668A - コンピュータ・システム内で共用仮想セグメント識別を使用して共用メモリを提供するシステムおよび方法 - Google Patents

コンピュータ・システム内で共用仮想セグメント識別を使用して共用メモリを提供するシステムおよび方法

Info

Publication number
JPH096668A
JPH096668A JP8133799A JP13379996A JPH096668A JP H096668 A JPH096668 A JP H096668A JP 8133799 A JP8133799 A JP 8133799A JP 13379996 A JP13379996 A JP 13379996A JP H096668 A JPH096668 A JP H096668A
Authority
JP
Japan
Prior art keywords
shared
memory
list
virtual
entry
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
JP8133799A
Other languages
English (en)
Other versions
JP3629507B2 (ja
Inventor
William H Schwartz
ウィリアム・エイチ・シュワルツ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH096668A publication Critical patent/JPH096668A/ja
Application granted granted Critical
Publication of JP3629507B2 publication Critical patent/JP3629507B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 コンピュータ用の仮想メモリ管理システムを
動作させる改善された方法を提供すること。 【解決手段】 コンピュータ用のメモリ管理システム内
で、多数のタスクに仮想メモリ領域を共用させる方法お
よびシステムは、複数のタスクによって共用されるアド
レス空間のリストを維持するデータ構造を使用する。こ
のリスト内の各エントリについて、仮想アドレス空間内
のスロットのリストがデータ構造内に維持され、各スロ
ットは、前記共用メモリがタスク内にマップされた指示
を含む。ディレクトリ・ページのオフセット・テーブル
も維持され、このディレクトリ内の各エントリがタスク
のディレクトリ・ページを指示する。すべてのそのよう
なディレクトリ・ページ・エントリは、ページ・テーブ
ル・エントリを指示する。各オフセット・テーブル内の
エントリは、この組共用アドレス空間のリスト内のエン
トリを指示する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理システ
ムに関する。詳細には、本発明は、効率的な共用メモリ
を提供するためコンピュータ用の仮想メモリ・システム
を動作させるシステムおよび方法に関する。
【0002】
【従来の技術】
関連出願 本願に記載した主題は、ウィリアム・エイチ・シュワル
ツ(WilliamH.Schwartz)およびスレ
シュ・ヤナマダラ(Suresh Yanamadal
a)が本願とともに出願した同時係属出願第08/47
2364号(IBM整理番号BC9−95−014)
「SYSTEM AND METHODFOR PRO
VIDING EFFICIENT SHARED M
EMORY IN A VIRTUAL MEMORY
SYSTEM」にも記載されている。
【0003】上述の関連出願第08/472364号
(IBM整理番号BC9−95−014)では、pow
erPCおよびそのオペレーティング・システムの特性
を利用する共用メモリ・システムが記載されており、そ
こにおける概念は、本願に記載されているように、イン
テルi386やi486などの他のアーキテクチャにも
応用できる。
【0004】従来、仮想メモリ管理システムの共用メモ
リは、ページ・エイリアシングによって提供されてい
た。共用物理ページの各仮想マッピングには、個々のカ
ーネル構造およびハードウェア・ページ・テーブル・エ
ントリ資源が必要であった。そのような配置では、共用
メモリを大幅に利用する、OS/2やpowerPC用
OS/2(またはワークプレース・オペレーティング・
システム)など、システムの冗長オーバヘッドが非常に
大きくなる。そのようなシステムでは、共用メモリ属性
を変更するのに、各マッピングを個別に修正することが
必要になり、その結果性能が大きく低下する。
【0005】仮想メモリ・システムの中には、各アドレ
ス空間内の同じアドレスに現れる共用メモリ・バンドを
特徴とするものがある。反対に、本願に記載したシステ
ムは、任意のアドレスに選択的に接続することができる
独立したアドレス空間の生成を使用する。
【0006】本願に記載のシステムは、アドレス空間を
生成し共用するものである。すなわち、アドレス空間
は、メモリ・オブジェクト用の容器のようなものであ
る。他の多くの共用メモリ方式は、メモリ・オブジェク
トの共用を扱うだけである。メモリ・オブジェクトを共
用すると、1つのタスクによる修正が多数のタスクから
見えるようになる。アドレス空間を共用すると、メモリ
・オブジェクトの生成や破壊などのアドレス空間の修
正、および保護の変更などのメモリ・オブジェクトの属
性の変更が、共用アドレス空間に対してだけこのオペレ
ーションを実行することによって多数のタスクから見え
るようになる。
【0007】インテルi386アーキテクチャの場合、
一般に共用メモリが多数のタスクにより使用されるため
に、各アドレス空間内のディレクトリ・ページが、それ
ぞれ同一の物理ページを参照するページ・テーブル・エ
ントリを含むページ・テーブルのページを指示すること
になる。また、アクセス保護を変更する場合など、この
ページのアクセスを変更する場合、すべてのページ・テ
ーブルを修正する必要がある。したがって、共用メモリ
を提供するために、powerPC仮想セグメントID
をエミュレートするようにページ・テーブルのページを
管理する効率的なデータ構造の構成が、本発明によって
提供される。
【0008】
【発明が解決しようとする課題】本発明の目的は、コン
ピュータ用の仮想メモリ管理システムを動作させる改善
された方法を提供することである。
【0009】本発明の他の目的は、システム資源を複製
せずに、コンピュータ・システムの多数のタスクがメモ
リ空間を共用できるようにするシステムおよび方法を提
供することである。
【0010】
【課題を解決するための手段】本発明の上記その他の目
的は、以下に説明するようにして達成される。仮想メモ
リ・システム内で効率的な共用メモリを提供する方法
は、powerPCの反転ページ・テーブル・アーキテ
クチャおよびIBMマイクロカーネル仮想メモリ設計を
利用する。
【0011】本発明の共用メモリ方法は、ページ・エイ
リアシングの(システム資源の)費用の問題を解決す
る。多数のアドレス空間に「接続する」ことができる独
立したアドレス空間が生成される。共用アドレス空間に
変更があると、共用アドレス空間に対するただ1つのオ
ペレーションにより、すべての接続アドレス空間に反映
される。共用アドレス空間内のエンティティは、1組の
システム資源しか必要としない。すべての接続アドレス
空間に同じpowerPC仮想セグメントIDが使用さ
れるので、1組のpowerPCページ・テーブル・エ
ントリしか必要でない。
【0012】他の特徴は、共用メモリを保護を行うため
の制御特権付きでまた制御特権なしで接続することであ
る。すなわち、特権を有するタスクは、通常の非共用ア
ドレス空間の場合と同じオペレーションおよび基底アド
レスを使用してアドレス空間を操作できる。通常の接続
タスクは、オーバレイ共用アドレス空間内のメモリ・オ
ブジェクトを参照できるだけであり、メモリ・オブジェ
クトを生成または破壊することができない。保護を行う
ため、共用アドレス空間は、共用マップ内のエントリを
追加または差し引くための特権付きでまたは特権なしで
接続することができる。制御特権付きの場合、割振り、
アクセス保護の変更、削除などの仮想メモリ・オペレー
ションが可能である。制御特権なしの場合、データの読
取りと書込みだけが可能である。アドレス空間を操作す
るオペレーションは拒絶される。
【0013】アドレス空間内のメモリ・オブジェクト
は、その属性を記述するためにカーネル制御構造を必要
とする。共用メモリ・アドレス空間を接続するには、共
用アドレス空間に記述をリダイレクトする特別の種類の
構造を使用する。この構造は、接続が制御=yesか制
御=noかを宣言する。あるオペレーションが許される
か否かを判断するとき、アドレス空間操作オペレーショ
ンでこのインジケータを検査する。
【0014】本発明の特徴は、powerPC仮想セグ
メントIDを独立した共用アドレス空間と関連付け、次
いでこの単一のセグメントIDを、タスクのアドレス空
間と「重複」するように多数のタスク中にマップして、
共用アドレス空間内のメモリ・オブジェクトに対する共
用アクセスを提供することである。したがって、1組の
カーネルとハードウェア資源だけが必要である。
【0015】他の特徴は、多数の独立した共用アドレス
空間を生成し、タスクのアドレス空間内の任意のアドレ
スにそれを接続できることである。
【0016】同時係属出願第08/472364号(I
BM整理番号BC9−95−014)の本発明の同じ概
念は、本願では、インテルi386アーキテクチャに応
用される。
【0017】
【発明の実施の形態】次に図面、特に図1を参照する
と、データ処理システム11が示されている。データ処
理システム11は、システム中央演算処理装置またはC
PU12、システム・メモリ13、大容量記憶制御装置
14、ならびにデータおよびコマンドを交換するために
CPU12とメモリ13と大容量記憶制御装置14とを
連結する通信リンク15を含む。通信リンク15は、シ
ステム・バスでもよく、ある種のネットワークでもよ
い。
【0018】図2は、図1のシステム用の仮想メモリお
よび物理メモリのマップである。仮想アドレス空間20
は、i486、powerPCチップなど、CPU12
内で使用されるマイクロプロセッサの種類によって確定
される。例えば、i486は、1つの4GB仮想アドレ
ス空間だけを示し、いくつかのタスクがこの4GB空間
内の空間を使用するが、powerPCオペレーティン
グ・システムは、各タスクごとに別々の4GB仮想アド
レス空間をセットアップすることに留意されたい。物理
メモリ13は、ブロック21によって表され、仮想アド
レス空間よりもはるかに小さい。ページ・テーブル22
は、通常はメモリ13内に格納され、空間20からの仮
想アドレスを空間21内の物理アドレスに変換する。C
PU12上で動作するタスク1は、仮想アドレス空間の
ブロック23を使用し、ブロック23内の個々の仮想ペ
ージ・アドレスをページ・テーブル22内で表引きし
て、物理アドレスを見つける。各ページ・テーブル・エ
ントリ24は、仮想アドレス・フィールド25と、それ
に対応する物理アドレス・フィールド26を含む。ペー
ジ・テーブル・エントリはまた、保護情報と、そのペー
ジが物理メモリ13内にあるかそれともディスク記憶装
置15内にあるか(後者の場合はページを使用する前に
物理メモリへ移す必要がある)の指示を含む。CPU1
2上で動作するタスク2は、仮想メモリ・ブロック27
を使用し、ページ・テーブル22内のエントリ24を参
照する。これらのエントリの一部はタスク1のエントリ
と同じことがある。すなわち、タスクが物理メモリを共
用する。これは、物理メモリ内のページがタスク1内で
もタスク2内でも使用されるので、ページ・エイリアシ
ングの例である。ただし、これらの位置は異なる仮想ア
ドレスを有するので、2つのページ・テーブル・エント
リ24が使用される。
【0019】図3も、i486形アーキテクチャ用のメ
モリを共用する他の方法を示す、図2と同様の仮想メモ
リおよび物理メモリのマップである。図3では、タスク
1とタスク2は重複領域31を有し、同じ仮想アドレス
の一部が各タスク内に現われる。したがって、同じペー
ジ・テーブル・エントリ24が共用メモリの参照に使用
され、そのためページ・テーブル・エントリの重複が回
避される。例えば、各タスク内の仮想メモリ位置30
は、ページ・テーブル22内の特定のエントリ24を指
し、もちろんこのエントリ24は同じ物理メモリ位置を
指す。これは、非常に有用な方法であり、本発明の概念
によって達成されるが、それでもなおユーザに対する制
約がある。すなわち、異なるタスクの共用アドレス空間
が同じ仮想アドレスを有する必要がある。
【0020】図4も、本発明によるメモリを共用する方
法を示す図2および図3と同様の仮想メモリおよび物理
メモリのマップである。図4では、タスク1とタスク2
は、共用メモリ位置32または33を有し、このメモリ
位置は、別のトランスレータ34によってページ・テー
ブル22内の同じエントリ24を、したがって物理メモ
リ21内の同じ位置35を指す。インテルi386やi
486の一例では、トランスレータ34は、図5に示さ
れる形式のものでよい。共用メモリは、IBMpowe
rPC上では、同じ仮想セグメントIDを多数のアドレ
ス空間中にマップすることによって効率的に生成できる
ことが、W.シュワルツおよびS.ヤナマダラが本願と
ともに出願した同時係属出願第08/472364号
(IBM整理番号BC9−95−014)に記載されて
いる。図5は、仮想セグメントIDをエミュレートする
ために共用インテル・ページ・テーブルを管理する効率
的なデータ構造の編成を示す。powerPC仮想セグ
メントIDの場合と同様に、256MB(28ビット・
アドレス)の共用メモリ域を生成し、256MB境界上
のアドレス空間中にマップすることができる。図5は、
データ構造の編成、すなわち、OSによってメモリ内に
生成される新しいデータ構造を示す。仮想アドレス空間
20内の各共用メモリ域ごとに、「A」で示す構造が生
成される。すべての「A」構造は互いに連結される。す
なわち、各データ構造「A」は、次の構造「A」のアド
レスを含む。共用メモリ域がタスク1やタスク2などの
タスク中にマップされる仮想メモリ空間20内の各位置
ごとに、タイプ「G」の構造が生成され、その「A」構
造に分岐して連結される。すなわち、構造「A」はその
中に第1の「G」のアドレスを有し、各「G」は次の
「G」のアドレスを有する。各「G」構造は、共用メモ
リがタスク中にマップされた256MBスロットを記録
する。多数の「G」構造は、同じタスク内で異なる25
6MBオフセット(28ビット・アドレス)で仮想アド
レス空間20内に指示できる。タスク1やタスク2など
の各タスクは、図6に示されるように、16エントリの
アレイ36を有し、32ビット(4GB)仮想アドレス
空間20内の各256MBスロットごとにアレイ内の1
つのエントリ37がある。エントリ37は、共用メモリ
域がタスク中のその256MBにスロットにマップされ
ている場合、「A」構造を指す。「G」構造は、パス3
8を介して「T」構造内のオフセットを指示し、このオ
フセットはパス39を介してディレクトリ・ページ
「D」をアドレスする。
【0021】タスク1やタスク2などの各タスクは、そ
れ自体のインテル・ディレクトリ・ページを有する。デ
ィレクトリ・ページは図5に「D」で示されている。共
用メモリ域「A」用のすべてのディレクトリ・ページ
「D」内のディレクトリ・ページ・エントリはすべて、
パス40を介して、図4のページ・テーブル22に対応
する共通の1組の共用ページ・テーブル「P」を指す。
【0022】図4および図5の編成では、既存のページ
・テーブル・エントリを修正する仮想メモリ・オペレー
ションで、「P」内の共通のページ・テーブル・エント
リ、すなわちページ・テーブル22内の単一のエントリ
24を修正するだけでよい。共用メモリ域をマップした
すべてのタスクは、この変更の影響を受ける。
【0023】ディレクトリ・ページ「D」を修正する仮
想メモリ・オペレーションは、共用メモリ域を使用する
すべてのディレクトリ・ページ「D」を修正しなければ
ならない。例えば、新しい仮想変換を付加する場合、新
しいページ・テーブルを割り振る必要がある。この場合
には、図6の16エントリ・アレイ36を検査して、こ
のアドレスが共用域内にあるかどうか確認する。アドレ
スが共用域内にない場合は、タスクのディレクトリ・ペ
ージが修正できる。修正が共用域の修正ある場合、
「T」構造内のエントリは、パス41を介して、この共
用域用の「A」構造を指す。この共用メモリの「G」リ
スト内のすべてのタスクのディレクトリ・ページが修正
される。
【0024】各仮想アドレスには、セグメント記述子お
よびページ・テーブル21内で、インテルi386また
はi486アーキテクチャにおける様々なレベルのメモ
リ保護が関連付けられており、これらを使用して、共用
メモリ域に対する各参照が共用位置からの読取りしかで
きないのか、それとも共用位置の読取りと書込みができ
るのかを制御することができる。
【0025】本発明の方法によってエミュレートされる
が、この場合インテルi386またはi486を使用す
る、同時係属出願第08/472364号(IBM整理
番号BC9−95−014)に記載の共用メモリ方法
が、図7の線図に概略的に示されている。この場合も、
powerPC用のマイクロカーネル・オペレーティン
グ・システムは、インテルi486形のアーキテクチャ
の場合と同様に、タスクに連続した4GB32ビット・
アドレス空間を共用させるのではなく、各タスクごとに
独立した仮想アドレス空間をセットアップすることに留
意されたい。この図7には、タスク1、タスク2、タス
ク3の3つのタスクと、空間Aおよび空間Bと呼ばれる
2つの独立した共用アドレス空間45および46が示さ
れている。また、メモリ・オブジェクトMO−1、MO
−2、MO−3、およびMO−4も示されている。タス
ク1には、共用アドレス45空間Aのアドレス空間が、
パス47によって表される制御=yes付きで接続され
ている。これにより、タスク1が、共用アドレス空間A
が接続されるアドレスの範囲内でそれ自体のアドレス空
間を操作することによって、共用アドレス空間A内でメ
モリ・オブジェクトを付加したり破壊することが可能に
なる。タスク2には、共用アドレス空間Aが、パス48
によって表される制御=no付きで接続される。タスク
2は、共用アドレス空間A内に含まれるメモリ・オブジ
ェクトを参照することはできるが、そのアドレス空間内
のこのアドレスの範囲内でメモリ・オブジェクトを付加
したり破壊することはできない。タスク1は、共用アド
レス空間Aに含まれるメモリ・オブジェクトに対して同
一のアクセス権を有する。
【0026】図7のタスク2には、共用アドレス空間B
が、パス49によって表される制御=yes付きで接続
され、したがってタスク2が共用アドレス空間Bを操作
することが可能になる。タスク3には、共用アドレス空
間Bが、パス50によって表される制御=no付きで接
続される。タスク3は、共用アドレス空間B内に含まれ
るメモリ・オブジェクトを参照できるだけである。
【0027】共用アドレス空間のユーザは、各共用アド
レス空間内のメモリ・オブジェクトを管理するのに必要
なカーネル構造およびハードウェア資源の単一のインス
タンスを共用するので、資源は保存される。ページ・エ
イリアシングは、共に図7のメモリ・オブジェクトMO
−4へのアクセス権を有するタスク1およびタスク2に
よって例示されるように、各タスク内に(ページ・テー
ブル22内のページ・テーブル・エントリ24などの)
複製された資源を必要とする。これは、これらの資源が
共用されていないためである。共用アドレス空間が1つ
のオペレーションで接続されるすべての場所が明らかで
ある、共用アドレス空間内で新しいメモリ・オブジェク
トを割り振る場合と異なり、ページ・エイリアシングに
より新しいメモリ・オブジェクトを割り振るには、オペ
レーションをそれが見える各アドレス空間内で実行する
必要がある。
【0028】タスク1は、図7の共用アドレス空間Bへ
のアクセス権を有しない。同様に、タスク3は、共用メ
モリ・アドレス空間Aまたは共用アドレス空間A内に含
まれる他のメモリ・オブジェクトへのアクセス権を有し
ない。タスク2は、両方の共用アドレス空間内のメモリ
・オブジェクトへのアクセス権を有する。
【0029】異なるタスクのアドレス空間内の同じアド
レスに異なる共用アドレス空間を接続し、それによって
タスクが、共通のアドレスにある異なるメモリ・オブジ
ェクトを参照できるようにすることも可能である。
【0030】共用アドレス空間の典型的な使用法は、共
用ライブラリや大域データなど、共用システム資源を共
用アドレス空間内に配置し、共用アドレス空間を制御=
no付きで同じ仮想アドレスにあるユーザ・タスク内に
接続することである。システム・ローダは、共用アドレ
ス空間が制御=yes付きで接続され、新しいライブラ
リがロードできるようになる。異なる普及パーソナリテ
ィを有するユーザ・タスクは、異なる共用アドレス空間
に接続することができる。
【0031】同時係属出願第08/472364号(I
BM整理番号BC9−95−014)に記載されている
ように、powerPC用のIBMマイクロカーネル・
オペレーティング・システムでは、上述のように、共用
メモリ構成をセットアップするための特定のインタフェ
ースまたはデータ構造が準備されている。いわゆるho
st_shared_memory_create機能
は、そのサイズが機械依存セグメントのサイズの倍数で
ある仮想アドレス空間を生成する。インテルi386や
i486では、セグメント・サイズは、4GBまでの任
意のサイズとすることができる。この機能は、ホスト機
械用のポートを指定し、また仮想アドレス空間用のvm
_space_portと呼ばれるカーネル割振りポー
ト名を指定する。これは、生成された仮想アドレス空間
にアクセスするためのトークンとして使用され、このポ
ートに対する他の呼出しはすべて失敗する。したがっ
て、virtual_shared_memory_a
ttach機能は、例えばタスクによる仮想アドレス空
間へのアクセスを提供する。この機能は、仮想アドレス
空間を所与のアドレス範囲にマップする。この範囲は、
継承パラメータにより子タスクによって継承されるよう
に設定できる。この範囲は、上述のように仮想アドレス
空間に対する制御権を有するか否か、すなわち制御=y
esまたは制御=noに設定できる。このvirtua
l_shared_memory_attach機能
は、仮想アドレス空間をマップすべき仮想メモリ・アド
レス空間のポートである、target_spaceと
呼ばれる値を指定し、また仮想アドレス空間をマップす
べきアドレスであるbase_addrと呼ばれる値を
指定する。このアドレスは、機械依存セグメント境界で
なければならない。virtual_shared_m
emory_attach機能はまた、マップすべき仮
想アドレス空間のサイズである「size」値と、ho
st_shared_memory_create機能
によって戻されるポートであるvm_space_po
rtと呼ばれる値を指定し、また真でも偽でもよい「i
nherit」と呼ばれる継承インジケータ、ならびに
制御=yesまたは制御=noである制御インジケータ
を有する。同様に、virtual_shared_m
emory_detach機能は、あるタスクに関連す
る所与の仮想アドレス空間からマップする仮想アドレス
空間を割振り解除する。共用メモリがマップされた範囲
は、要求に応じて予約でき、そうでない場合には空にな
る。このvirtual_shared_memory
_detach機能は、(inheritとcontr
olを有さない点以外は)virtual_share
d_memory_attach機能と全く同じパラメ
ータを指定し、また予約インジケータである「rese
rve」と呼ばれる、真または偽の値を指定する。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0033】(1)複数のタスクによって共用されるア
ドレス空間のリストを維持するステップと、前記アドレ
ス空間のリスト内の各エントリについて、前記共用メモ
リがタスク内にマップされた仮想アドレス空間内のスロ
ットのリストを維持するステップと、前記スロットのリ
スト内の各エントリについて、ディレクトリ・ページの
オフセット・テーブルを維持するステップであって、前
記オフセット・テーブル内の各エントリが、タスクのデ
ィレクトリ・ページを指示し、共用メモリのすべてのそ
のようなディレクトリ・ページ内のディレクトリ・ペー
ジ・エントリがすべて、一組のページ・テーブル・エン
トリを指示するステップとを含み、各前記オフセット・
テーブル内のエントリが、共用アドレス空間の前記リス
ト内のエントリを指示する、コンピュータ・メモリ管理
システム内で仮想メモリ域を多数のタスクによって共用
する方法。 (2)前記アドレス空間のリストがリンク・リストであ
ることを特徴とする、上記(1)に記載の方法。 (3)前記スロットのリストがリンク・リストであるこ
とを特徴とする、上記(1)に記載の方法。 (4)さらに、前記タスクのうちの少なくとも1つにつ
いて前記ページ・テーブル・エントリのうちの1つのエ
ントリを変更することによって、すべての前記共用メモ
リ・アドレス空間のメモリ・アクセス特性を変更するス
テップを含むことを特徴とする、上記(1)に記載の方
法。 (5)前記アドレス空間のリスト内のエントリが、前記
仮想アドレス空間内の複数の異なる位置を指示すること
を特徴とする、上記(4)に記載の方法。 (6)コンピュータ・メモリ管理システムを使用する、
多数のタスクによって共用される仮想メモリ域を有する
コンピュータ・システムにおいて、複数のタスクによっ
て共用されるアドレス空間のリストを維持する手段と、
前記アドレス空間のリスト内の各エントリについて、前
記共用メモリがタスク内にマップされた仮想アドレス空
間内のスロットのリストを維持する手段と、前記スロッ
トのリスト内の各エントリについて、ディレクトリ・ペ
ージのオフセット・テーブルを維持する手段であって、
前記オフセット・テーブル内の各エントリが、タスクの
ディレクトリ・ページを指示し、共用メモリのすべての
そのようなディレクトリ・ページ内のディレクトリ・ペ
ージ・エントリがすべて、一組のページ・テーブル・エ
ントリを指示する手段とを含み、各前記オフセット・テ
ーブル内のエントリが、共用アドレス空間の前記リスト
内のエントリを指示するシステム。 (7)前記アドレス空間のリストがリンク・リストであ
ることを特徴とする、上記(6)に記載のシステム。 (8)前記スロットのリストがリンク・リストであるこ
とを特徴とする、上記(6)に記載のシステム。 (9)さらに、前記タスクのうちの少なくとも1つが、
前記ページ・テーブル・エントリのうちの1つのエント
リを変更することによって、すべての前記共用メモリ・
アドレス空間のメモリ・アクセス特性を変更することを
特徴とする、上記(6)に記載のシステム。 (10)前記アドレス空間のリスト内のエントリが、前
記仮想アドレス空間内に複数の異なる位置を指示するこ
とを特徴とする、上記(9)に記載のシステム。
【図面の簡単な説明】
【図1】本発明による仮想メモリ管理システムを使用す
るデータ処理システムの高水準ブロック図である。
【図2】ページ・テーブルによる変換を示す、図1のシ
ステム用の仮想メモリおよび物理メモリのマップであ
る。
【図3】メモリを共用する方法を使用するページ・テー
ブルによる変換を示す、図2と同様の、図1のシステム
用の仮想メモリおよび物理メモリのマップである。
【図4】同時係属出願第08/472364号(IBM
整理番号BC9−95−014)に記載の、本発明によ
るメモリを共用する方法を使用するページ・テーブルに
よる変換を示す、図2および図3のシステムと同様の、
図1のシステム用の仮想メモリおよび物理メモリのマッ
プである。
【図5】図4のメモリを共用する方法とともに使用する
データ構造の編成を示す図である。
【図6】図5の「T」構造のデータ構造を示す図であ
る。
【図7】図4の本発明において、タスクがメモリ空間を
どのように共用できるかの例を示すメモリ・マップと同
様の図である。
【符号の説明】
11 データ処理システム 12 CPU 13 メモリ 14 大容量記憶制御装置 15 通信リンク 20 仮想アドレス空間 21 物理アドレス空間 22 ページ・テーブル 23 ブロック 24 ページ・テーブル・エントリ 25 仮想アドレス・フィールド 26 物理アドレス・フィールド 27 仮想メモリ・ブロック 30 仮想メモリ位置 31 重複領域 34 トランスレータ 36 16エントリ・アレイ 37 エントリ 38 パス 39 パス 40 パス 41 パス 45 共用アドレス空間 46 共用アドレス空間 47 パス 48 パス 49 パス 50 パス

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】複数のタスクによって共用されるアドレス
    空間のリストを維持するステップと、 前記アドレス空間のリスト内の各エントリについて、前
    記共用メモリがタスク内にマップされた仮想アドレス空
    間内のスロットのリストを維持するステップと、 前記スロットのリスト内の各エントリについて、ディレ
    クトリ・ページのオフセット・テーブルを維持するステ
    ップであって、前記オフセット・テーブル内の各エント
    リが、タスクのディレクトリ・ページを指示し、共用メ
    モリのすべてのそのようなディレクトリ・ページ内のデ
    ィレクトリ・ページ・エントリがすべて、一組のページ
    ・テーブル・エントリを指示するステップとを含み、 各前記オフセット・テーブル内のエントリが、共用アド
    レス空間の前記リスト内のエントリを指示する、コンピ
    ュータ・メモリ管理システム内で仮想メモリ域を多数の
    タスクによって共用する方法。
  2. 【請求項2】前記アドレス空間のリストがリンク・リス
    トであることを特徴とする、請求項1に記載の方法。
  3. 【請求項3】前記スロットのリストがリンク・リストで
    あることを特徴とする、請求項1に記載の方法。
  4. 【請求項4】さらに、前記タスクのうちの少なくとも1
    つについて前記ページ・テーブル・エントリのうちの1
    つのエントリを変更することによって、すべての前記共
    用メモリ・アドレス空間のメモリ・アクセス特性を変更
    するステップを含むことを特徴とする、請求項1に記載
    の方法。
  5. 【請求項5】前記アドレス空間のリスト内のエントリ
    が、前記仮想アドレス空間内の複数の異なる位置を指示
    することを特徴とする、請求項4に記載の方法。
  6. 【請求項6】コンピュータ・メモリ管理システムを使用
    する、多数のタスクによって共用される仮想メモリ域を
    有するコンピュータ・システムにおいて、 複数のタスクによって共用されるアドレス空間のリスト
    を維持する手段と、 前記アドレス空間のリスト内の各エントリについて、前
    記共用メモリがタスク内にマップされた仮想アドレス空
    間内のスロットのリストを維持する手段と、 前記スロットのリスト内の各エントリについて、ディレ
    クトリ・ページのオフセット・テーブルを維持する手段
    であって、前記オフセット・テーブル内の各エントリ
    が、タスクのディレクトリ・ページを指示し、共用メモ
    リのすべてのそのようなディレクトリ・ページ内のディ
    レクトリ・ページ・エントリがすべて、一組のページ・
    テーブル・エントリを指示する手段とを含み、 各前記オフセット・テーブル内のエントリが、共用アド
    レス空間の前記リスト内のエントリを指示するシステ
    ム。
  7. 【請求項7】前記アドレス空間のリストがリンク・リス
    トであることを特徴とする、請求項6に記載のシステ
    ム。
  8. 【請求項8】前記スロットのリストがリンク・リストで
    あることを特徴とする、請求項6に記載のシステム。
  9. 【請求項9】さらに、前記タスクのうちの少なくとも1
    つが、前記ページ・テーブル・エントリのうちの1つの
    エントリを変更することによって、すべての前記共用メ
    モリ・アドレス空間のメモリ・アクセス特性を変更する
    ことを特徴とする、請求項6に記載のシステム。
  10. 【請求項10】前記アドレス空間のリスト内のエントリ
    が、前記仮想アドレス空間内に複数の異なる位置を指示
    することを特徴とする、請求項9に記載のシステム。
JP13379996A 1995-06-07 1996-05-28 コンピュータ・システム内で共用仮想セグメント識別を使用して共用メモリを提供するシステムおよび方法 Expired - Fee Related JP3629507B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US472363 1995-06-07
US08/472,363 US5940869A (en) 1995-06-07 1995-06-07 System and method for providing shared memory using shared virtual segment identification in a computer system

Publications (2)

Publication Number Publication Date
JPH096668A true JPH096668A (ja) 1997-01-10
JP3629507B2 JP3629507B2 (ja) 2005-03-16

Family

ID=23875219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13379996A Expired - Fee Related JP3629507B2 (ja) 1995-06-07 1996-05-28 コンピュータ・システム内で共用仮想セグメント識別を使用して共用メモリを提供するシステムおよび方法

Country Status (4)

Country Link
US (1) US5940869A (ja)
EP (1) EP0747827B1 (ja)
JP (1) JP3629507B2 (ja)
DE (1) DE69622645D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100686418B1 (ko) * 1998-06-30 2007-02-23 썬 마이크로시스템즈, 인코포레이티드 멀티-스레드 가상머신에서 메모리 할당방법 및 그 장치

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6349355B1 (en) * 1997-02-06 2002-02-19 Microsoft Corporation Sharing executable modules between user and kernel threads
KR100354274B1 (ko) * 1998-08-25 2002-12-11 주식회사 하이닉스반도체 주전산기의페이지디렉토리공유방법
US6553466B1 (en) * 1999-10-01 2003-04-22 Infraworks Corporation Shared memory blocking method and system
US6622229B2 (en) 2001-02-28 2003-09-16 International Business Machines Corporation Virtual memory structure
US7975117B2 (en) 2003-03-24 2011-07-05 Microsoft Corporation Enforcing isolation among plural operating systems
GB2420642B (en) * 2004-11-30 2008-11-26 Sendo Int Ltd Memory management for portable electronic device
US8200738B2 (en) * 2007-09-30 2012-06-12 Oracle America, Inc. Virtual cluster based upon operating system virtualization
CN102629221B (zh) * 2012-02-28 2014-11-19 华为技术有限公司 用于分布式共享存储的任务同步方法、装置及系统
CN103034544B (zh) * 2012-12-04 2015-08-05 杭州迪普科技有限公司 一种用户态与内核态共享内存的管理方法和装置
US9191360B2 (en) * 2013-01-22 2015-11-17 International Business Machines Corporation Address management in an overlay network environment
CN105975407B (zh) * 2016-03-22 2020-10-09 华为技术有限公司 一种内存地址的映射方法及设备
US10769076B2 (en) 2018-11-21 2020-09-08 Nvidia Corporation Distributed address translation in a multi-node interconnect fabric

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4356549A (en) * 1980-04-02 1982-10-26 Control Data Corporation System page table apparatus
US4758951A (en) * 1985-04-09 1988-07-19 Tektronix, Inc. Method for translating virtual addresses into real addresses
US4742450A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to share copy on write segment for mapped files
JPH02202652A (ja) * 1989-02-01 1990-08-10 Hitachi Ltd 多重仮想記憶管理方式
WO1991014986A1 (en) * 1990-03-23 1991-10-03 Eastman Kodak Company Virtual memory management and allocation arrangement for digital data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100686418B1 (ko) * 1998-06-30 2007-02-23 썬 마이크로시스템즈, 인코포레이티드 멀티-스레드 가상머신에서 메모리 할당방법 및 그 장치

Also Published As

Publication number Publication date
JP3629507B2 (ja) 2005-03-16
US5940869A (en) 1999-08-17
DE69622645D1 (de) 2002-09-05
EP0747827B1 (en) 2002-07-31
EP0747827A1 (en) 1996-12-11

Similar Documents

Publication Publication Date Title
JP5735070B2 (ja) パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
CN109359487B (zh) 一种基于硬件隔离的可扩展安全影子存储及标签管理方法
US8225071B2 (en) Accessing multiple page tables in a computer system
JP3571667B2 (ja) 割り込みフラグ管理方法
EP0238158B1 (en) Copy-on-write segment sharing in a virtual memory, virtual machine data processing system
EP2997477B1 (en) Page table data management
EP0171859B1 (en) Memory access control device for implementing guarded regions in a memory, and memory provided with such memory access control device
CN113168379A (zh) 由主机计算机的虚拟存储器支持的虚拟机存储器的快速访问
CN109074316B (zh) 页面错误解决方案
US5875487A (en) System and method for providing efficient shared memory in a virtual memory system
JPH0769844B2 (ja) データ空間への共通アクセス装置及び方法
JP3629507B2 (ja) コンピュータ・システム内で共用仮想セグメント識別を使用して共用メモリを提供するシステムおよび方法
US8006055B2 (en) Fine granularity hierarchiacal memory protection
CN114327777B (zh) 确定全局页目录的方法、装置、电子设备及存储介质
US20110264841A1 (en) Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility
TW201737091A (zh) 在虛擬化情境中共有客戶機實體位址空間
Aron et al. The SawMill framework for virtual memory diversity
KR100220496B1 (ko) 프로세서 및 정보 처리 장치
JP2001175486A (ja) 計算機システム
Chen et al. High assurance computing on open hardware architectures
US20130067195A1 (en) Context-specific storage in multi-processor or multi-threaded environments using translation look-aside buffers
JP2002358205A (ja) 複数のプラットホームを備えた携帯可能情報処理装置
Das Tagged/Capability Architectures
Gareau Embedded x86 Programming: Protected Mode
Dandamudi et al. Basic Computer Organization

Legal Events

Date Code Title Description
A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040406

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040726

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040928

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: 20041102

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20041102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041111

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: 20071224

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees