JPH0916461A - 仮想メモリ・システム内で効率的な共用メモリを提供するためのシステムおよび方法 - Google Patents
仮想メモリ・システム内で効率的な共用メモリを提供するためのシステムおよび方法Info
- Publication number
- JPH0916461A JPH0916461A JP8133637A JP13363796A JPH0916461A JP H0916461 A JPH0916461 A JP H0916461A JP 8133637 A JP8133637 A JP 8133637A JP 13363796 A JP13363796 A JP 13363796A JP H0916461 A JPH0916461 A JP H0916461A
- Authority
- JP
- Japan
- Prior art keywords
- shared
- memory
- address space
- virtual
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address 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)
- Storage Device Security (AREA)
- Memory System (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 コンピュータ用の仮想メモリ管理システムを
動作させる改善された方法を提供する。 【解決手段】 コンピュータ用のメモリ管理システムに
おいて、多数のタスクに仮想メモリ域を共用させる場合
に、多数のアドレス空間に「接続」できるように生成さ
れた独立したアドレス空間を使用する。共用アドレス空
間に対するどのような変更も、共用アドレス空間に対す
るただ1つのオペレーションで、接続されたすべてのア
ドレス空間に反映される。共用アドレス空間内のエンテ
ィティは、ただ1組のシステム資源しか必要としない。
接続されたすべてのアドレス空間に同じ仮想セグメント
IDが使用されるので、1組のページ・テーブル・エン
トリしか必要でない。特徴は共用メモリを、保護を行う
ための制御特権付きでまたは制御特権なしで接続するこ
とである。
動作させる改善された方法を提供する。 【解決手段】 コンピュータ用のメモリ管理システムに
おいて、多数のタスクに仮想メモリ域を共用させる場合
に、多数のアドレス空間に「接続」できるように生成さ
れた独立したアドレス空間を使用する。共用アドレス空
間に対するどのような変更も、共用アドレス空間に対す
るただ1つのオペレーションで、接続されたすべてのア
ドレス空間に反映される。共用アドレス空間内のエンテ
ィティは、ただ1組のシステム資源しか必要としない。
接続されたすべてのアドレス空間に同じ仮想セグメント
IDが使用されるので、1組のページ・テーブル・エン
トリしか必要でない。特徴は共用メモリを、保護を行う
ための制御特権付きでまたは制御特権なしで接続するこ
とである。
Description
【0001】
【発明の属する技術分野】本発明は、データ処理システ
ムに関する。詳細には、本発明は、効率的な共用メモリ
を提供するためコンピュータ用の仮想メモリ・システム
を動作させるシステムおよび方法に関する。
ムに関する。詳細には、本発明は、効率的な共用メモリ
を提供するためコンピュータ用の仮想メモリ・システム
を動作させるシステムおよび方法に関する。
【0002】
関連出願 本願に記載の主題は、ウィリアム・エイチ・シュワルツ
(William H.Schwartz)が本願とと
もに出願した同時係属の米国特許出願第08/4723
63号(IBM整理番号BC9−95−015)「SY
STEM AND METHOD FOR PROVI
DING SHARED MEMORYUSING S
HARED VIRTUAL SEGMENT IDE
NTIFICATION IN A COMPUTER
SYSTEM」にも記載されている。
(William H.Schwartz)が本願とと
もに出願した同時係属の米国特許出願第08/4723
63号(IBM整理番号BC9−95−015)「SY
STEM AND METHOD FOR PROVI
DING SHARED MEMORYUSING S
HARED VIRTUAL SEGMENT IDE
NTIFICATION IN A COMPUTER
SYSTEM」にも記載されている。
【0003】上述の関連出願第08/472363号
(IBM整理番号BC9−95−015)では、インテ
ルi386やi486などのアーキテクチャを対象とす
る共用メモリ・システムが記載されている。そこにおけ
る概念は、本願に記載されているように、powerP
Cおよびそのオペレーティング・システムの特性を有す
るものなど、より一般的な意味で他のアーキテクチャに
も応用できる。
(IBM整理番号BC9−95−015)では、インテ
ルi386やi486などのアーキテクチャを対象とす
る共用メモリ・システムが記載されている。そこにおけ
る概念は、本願に記載されているように、powerP
Cおよびそのオペレーティング・システムの特性を有す
るものなど、より一般的な意味で他のアーキテクチャに
も応用できる。
【0004】従来、仮想メモリ管理システムの共用メモ
リは、ページ・エイリアシングによって提供されてい
た。共用物理ページの各仮想マッピングには、個々のカ
ーネル構造およびハードウェア・ページ・テーブル・エ
ントリ資源が必要であった。そのような配置では、共用
メモリを大幅に利用する、OS/2やpowerPC用
OS/2(またはワークプレース・オペレーティング・
システム)など、システムの冗長オーバヘッドが非常に
大きくなる。そのようなシステムでは、共用メモリ属性
を変更するのに、各マッピングを個別に修正することが
必要になり、その結果性能が大きく低下する。
リは、ページ・エイリアシングによって提供されてい
た。共用物理ページの各仮想マッピングには、個々のカ
ーネル構造およびハードウェア・ページ・テーブル・エ
ントリ資源が必要であった。そのような配置では、共用
メモリを大幅に利用する、OS/2やpowerPC用
OS/2(またはワークプレース・オペレーティング・
システム)など、システムの冗長オーバヘッドが非常に
大きくなる。そのようなシステムでは、共用メモリ属性
を変更するのに、各マッピングを個別に修正することが
必要になり、その結果性能が大きく低下する。
【0005】仮想メモリ・システムの中には、各アドレ
ス空間内の同じアドレスに現れる共用メモリ・バンドを
特徴とするものがある。反対に、本願に記載したシステ
ムは、任意のアドレスに選択的に接続することができる
独立したアドレス空間の生成を使用する。
ス空間内の同じアドレスに現れる共用メモリ・バンドを
特徴とするものがある。反対に、本願に記載したシステ
ムは、任意のアドレスに選択的に接続することができる
独立したアドレス空間の生成を使用する。
【0006】本願に記載のシステムは、アドレス空間を
生成し共用するものである。すなわち、アドレス空間
は、メモリ・オブジェクト用の容器のようなものであ
る。他の多くの共用メモリ方式は、メモリ・オブジェク
トの共用を扱うだけである。メモリ・オブジェクトを共
用すると、1つのタスクによる修正が多数のタスクから
見えるようになる。アドレス空間を共用すると、メモリ
・オブジェクトの生成や破壊などのアドレス空間の修
正、および保護の変更などのメモリ・オブジェクトの属
性の変更が、共用アドレス空間に対してだけこのオペレ
ーションを実行することによって多数のタスクから見え
るようになる。
生成し共用するものである。すなわち、アドレス空間
は、メモリ・オブジェクト用の容器のようなものであ
る。他の多くの共用メモリ方式は、メモリ・オブジェク
トの共用を扱うだけである。メモリ・オブジェクトを共
用すると、1つのタスクによる修正が多数のタスクから
見えるようになる。アドレス空間を共用すると、メモリ
・オブジェクトの生成や破壊などのアドレス空間の修
正、および保護の変更などのメモリ・オブジェクトの属
性の変更が、共用アドレス空間に対してだけこのオペレ
ーションを実行することによって多数のタスクから見え
るようになる。
【0007】インテルi386アーキテクチャでは、一
般に共用メモリが多数のタスクによって使用されるた
め、各アドレス空間内のディレクトリ・ページが、それ
ぞれ同じ物理ページを参照するページ・テーブル・エン
トリを含むページ・テーブルのページを指すことにな
る。また、アクセス保護を変更する場合など、このペー
ジのアクセスを変更するには、すべてのページ・テーブ
ルを修正することが必要になる。共用メモリを提供する
ために、powerPC仮想セグメントIDをエミュレ
ートするようにページ・テーブルのページを管理する効
率的なデータ構造の編成が、出願第08/472363
号(IBM整理番号BC9−95−015)に記載され
た方法に提供されている。
般に共用メモリが多数のタスクによって使用されるた
め、各アドレス空間内のディレクトリ・ページが、それ
ぞれ同じ物理ページを参照するページ・テーブル・エン
トリを含むページ・テーブルのページを指すことにな
る。また、アクセス保護を変更する場合など、このペー
ジのアクセスを変更するには、すべてのページ・テーブ
ルを修正することが必要になる。共用メモリを提供する
ために、powerPC仮想セグメントIDをエミュレ
ートするようにページ・テーブルのページを管理する効
率的なデータ構造の編成が、出願第08/472363
号(IBM整理番号BC9−95−015)に記載され
た方法に提供されている。
【0008】
【発明が解決しようとする課題】本発明の目的は、コン
ピュータ用の仮想メモリ管理システムを動作させる改善
された方法を提供することである。
ピュータ用の仮想メモリ管理システムを動作させる改善
された方法を提供することである。
【0009】本発明の他の目的は、システム資源を複製
せずに、コンピュータ・システムの多数のタスクがメモ
リ空間を共用できるようにするシステムおよび方法を提
供することである。
せずに、コンピュータ・システムの多数のタスクがメモ
リ空間を共用できるようにするシステムおよび方法を提
供することである。
【0010】
【課題を解決するための手段】本発明の上記その他の目
的は、以下に説明するようにして達成される。仮想メモ
リ・システム内で効率的な共用メモリを提供する方法
は、powerPCの反転ページ・テーブル・アーキテ
クチャおよびIBMマイクロカーネル仮想メモリ設計を
利用する。
的は、以下に説明するようにして達成される。仮想メモ
リ・システム内で効率的な共用メモリを提供する方法
は、powerPCの反転ページ・テーブル・アーキテ
クチャおよびIBMマイクロカーネル仮想メモリ設計を
利用する。
【0011】本発明の共用メモリ方法は、ページ・エイ
リアシングの(システム資源の)費用の問題を解決す
る。多数のアドレス空間に「接続する」ことができる独
立したアドレス空間が生成される。共用アドレス空間に
変更があると、共用アドレス空間に対するただ1つのオ
ペレーションにより、すべての接続アドレス空間に反映
される。共用アドレス空間内のエンティティは、1組の
システム資源しか必要としない。すべての接続アドレス
空間に同じpowerPC仮想セグメントIDが使用さ
れるので、1組のpowerPCページ・テーブル・エ
ントリしか必要でない。
リアシングの(システム資源の)費用の問題を解決す
る。多数のアドレス空間に「接続する」ことができる独
立したアドレス空間が生成される。共用アドレス空間に
変更があると、共用アドレス空間に対するただ1つのオ
ペレーションにより、すべての接続アドレス空間に反映
される。共用アドレス空間内のエンティティは、1組の
システム資源しか必要としない。すべての接続アドレス
空間に同じpowerPC仮想セグメントIDが使用さ
れるので、1組のpowerPCページ・テーブル・エ
ントリしか必要でない。
【0012】他の特徴は、共用メモリを保護を行うため
の制御特権付きでまた制御特権なしで接続することであ
る。すなわち、特権を有するタスクは、通常の非共用ア
ドレス空間の場合と同じオペレーションおよび基底アド
レスを使用してアドレス空間を操作できる。通常の接続
タスクは、オーバレイ共用アドレス空間内のメモリ・オ
ブジェクトを参照できるだけであり、メモリ・オブジェ
クトを生成または破壊することができない。保護を行う
ため、共用アドレス空間は、共用マップ内のエントリを
追加または差し引くための特権付きでまたは特権なしで
接続することができる。制御特権付きの場合、割振り、
アクセス保護の変更、削除などの仮想メモリ・オペレー
ションが可能である。制御特権なしの場合、データの読
取りと書込みだけが可能である。アドレス空間を操作す
るオペレーションは拒絶される。
の制御特権付きでまた制御特権なしで接続することであ
る。すなわち、特権を有するタスクは、通常の非共用ア
ドレス空間の場合と同じオペレーションおよび基底アド
レスを使用してアドレス空間を操作できる。通常の接続
タスクは、オーバレイ共用アドレス空間内のメモリ・オ
ブジェクトを参照できるだけであり、メモリ・オブジェ
クトを生成または破壊することができない。保護を行う
ため、共用アドレス空間は、共用マップ内のエントリを
追加または差し引くための特権付きでまたは特権なしで
接続することができる。制御特権付きの場合、割振り、
アクセス保護の変更、削除などの仮想メモリ・オペレー
ションが可能である。制御特権なしの場合、データの読
取りと書込みだけが可能である。アドレス空間を操作す
るオペレーションは拒絶される。
【0013】アドレス空間内のメモリ・オブジェクト
は、その属性を記述するためにカーネル制御構造を必要
とする。共用メモリ・アドレス空間を接続するには、共
用アドレス空間に記述をリダイレクトする特別の種類の
構造を使用する。この構造は、接続が制御=yesか制
御=noかを宣言する。あるオペレーションが許される
か否かを判断するとき、アドレス空間操作オペレーショ
ンでこのインジケータを検査する。
は、その属性を記述するためにカーネル制御構造を必要
とする。共用メモリ・アドレス空間を接続するには、共
用アドレス空間に記述をリダイレクトする特別の種類の
構造を使用する。この構造は、接続が制御=yesか制
御=noかを宣言する。あるオペレーションが許される
か否かを判断するとき、アドレス空間操作オペレーショ
ンでこのインジケータを検査する。
【0014】本発明の特徴は、powerPC仮想セグ
メントIDを独立した共用アドレス空間と関連付け、次
いでこの単一のセグメントIDを、タスクのアドレス空
間と「重複」するように多数のタスク中にマップして、
共用アドレス空間内のメモリ・オブジェクトに対する共
用アクセスを提供することである。したがって、1組の
カーネルとハードウェア資源だけが必要である。
メントIDを独立した共用アドレス空間と関連付け、次
いでこの単一のセグメントIDを、タスクのアドレス空
間と「重複」するように多数のタスク中にマップして、
共用アドレス空間内のメモリ・オブジェクトに対する共
用アクセスを提供することである。したがって、1組の
カーネルとハードウェア資源だけが必要である。
【0015】他の特徴は、多数の独立した共用アドレス
空間を生成し、タスクのアドレス空間内の任意のアドレ
スにそれを接続できることである。
空間を生成し、タスクのアドレス空間内の任意のアドレ
スにそれを接続できることである。
【0016】同時係属出願第08/472363号(I
BM整理番号BC9−95−015)の本発明の同じ概
念は、本願では、インテルi386アーキテクチャでは
なくpowerPC形アーキテクチャに適用される。
BM整理番号BC9−95−015)の本発明の同じ概
念は、本願では、インテルi386アーキテクチャでは
なくpowerPC形アーキテクチャに適用される。
【0017】
【発明の実施の形態】次に図面、特に図1を参照する
と、データ処理システム11が示されている。データ処
理システム11は、システム中央演算処理装置またはC
PU12、システム・メモリ13、大容量記憶制御装置
14、ならびにデータおよびコマンドを交換するために
CPU12とメモリ13と大容量記憶制御装置14とを
連結する通信リンク15を含む。通信リンク15は、シ
ステム・バスでもよく、ある種のネットワークでもよ
い。
と、データ処理システム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が使用される。
よび物理メモリのマップである。仮想アドレス空間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は同じ物理メモリ位置を
指す。これは、非常に有用な方法であり、本発明の概念
によって達成されるが、それでもなおユーザに対する制
約がある。すなわち、異なるタスクの共用アドレス空間
が同じ仮想アドレスを有する必要がある。
モリを共用する他の方法を示す、図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は、W.シュワル
ツが本願とともに出願した同時係属出願第08/472
363号(IBM整理番号BC9−95−015)に記
載されているように、図5に示される形式のものでよ
い。共用メモリは、IBMpowerPC上では、同じ
仮想セグメントIDを多数のアドレス空間中にマップす
ることによって効率的に生成できる。図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」構造は、同じタスク内で異なる256MBオフセ
ット(28ビット・アドレス)で仮想アドレス空間20
内に指示できる。タスク1やタスク2などの各タスク
は、図6に示されるように、16エントリのアレイ36
を有し、32ビット(4GB)仮想アドレス空間20内
の各256MBスロットごとにアレイ内の1つのエント
リ37がある。エントリ37は、共用メモリ域がタスク
中のその256MBにスロットにマップされている場
合、「A」構造を指す。「G」構造は、パス38を介し
て「T」構造内のオフセットを指示し、このオフセット
はパス39を介してディレクトリ・ページ「D」をアド
レスする。
法を示す図2および図3と同様の仮想メモリおよび物理
メモリのマップである。図4では、タスク1とタスク2
は、共用メモリ位置32または33を有し、このメモリ
位置は、別のトランスレータ34によってページ・テー
ブル22内の同じエントリ24を、したがって物理メモ
リ21内の同じ位置35を指す。インテルi386やi
486の例では、トランスレータ34は、W.シュワル
ツが本願とともに出願した同時係属出願第08/472
363号(IBM整理番号BC9−95−015)に記
載されているように、図5に示される形式のものでよ
い。共用メモリは、IBMpowerPC上では、同じ
仮想セグメントIDを多数のアドレス空間中にマップす
ることによって効率的に生成できる。図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」構造は、同じタスク内で異なる256MBオフセ
ット(28ビット・アドレス)で仮想アドレス空間20
内に指示できる。タスク1やタスク2などの各タスク
は、図6に示されるように、16エントリのアレイ36
を有し、32ビット(4GB)仮想アドレス空間20内
の各256MBスロットごとにアレイ内の1つのエント
リ37がある。エントリ37は、共用メモリ域がタスク
中のその256MBにスロットにマップされている場
合、「A」構造を指す。「G」構造は、パス38を介し
て「T」構造内のオフセットを指示し、このオフセット
はパス39を介してディレクトリ・ページ「D」をアド
レスする。
【0021】タスク1やタスク2などの各タスクは、そ
れ自体のインテル・ディレクトリ・ページを有する。デ
ィレクトリ・ページは図5に「D」で示されている。共
用メモリ域「A」用のすべてのディレクトリ・ページ
「D」内のディレクトリ・ページ・エントリはすべて、
パス40を介して、図4のページ・テーブル22に対応
する共通の1組の共用ページ・テーブル「P」を指す。
れ自体のインテル・ディレクトリ・ページを有する。デ
ィレクトリ・ページは図5に「D」で示されている。共
用メモリ域「A」用のすべてのディレクトリ・ページ
「D」内のディレクトリ・ページ・エントリはすべて、
パス40を介して、図4のページ・テーブル22に対応
する共通の1組の共用ページ・テーブル「P」を指す。
【0022】図4および図5の編成では、既存のページ
・テーブル・エントリを修正する仮想メモリ・オペレー
ションで、「P」内の共通のページ・テーブル・エント
リ、すなわちページ・テーブル22内の単一のエントリ
24を修正するだけでよい。共用メモリ域をマップした
すべてのタスクは、この変更の影響を受ける。
・テーブル・エントリを修正する仮想メモリ・オペレー
ションで、「P」内の共通のページ・テーブル・エント
リ、すなわちページ・テーブル22内の単一のエントリ
24を修正するだけでよい。共用メモリ域をマップした
すべてのタスクは、この変更の影響を受ける。
【0023】ディレクトリ・ページ「D」を修正する仮
想メモリ・オペレーションは、共用メモリ域を使用する
すべてのディレクトリ・ページ「D」を修正しなければ
ならない。例えば、新しい仮想変換を付加する場合、新
しいページ・テーブルを割り振る必要がある。この場合
には、図6の16エントリ・アレイ36を検査して、こ
のアドレスが共用域内にあるかどうか確認する。アドレ
スが共用域内にない場合は、タスクのディレクトリ・ペ
ージが修正できる。修正が共用域の修正ある場合、
「T」構造内のエントリは、パス41を介して、この共
用域用の「A」構造を指す。この共用メモリの「G」リ
スト内のすべてのタスクのディレクトリ・ページが修正
される。
想メモリ・オペレーションは、共用メモリ域を使用する
すべてのディレクトリ・ページ「D」を修正しなければ
ならない。例えば、新しい仮想変換を付加する場合、新
しいページ・テーブルを割り振る必要がある。この場合
には、図6の16エントリ・アレイ36を検査して、こ
のアドレスが共用域内にあるかどうか確認する。アドレ
スが共用域内にない場合は、タスクのディレクトリ・ペ
ージが修正できる。修正が共用域の修正ある場合、
「T」構造内のエントリは、パス41を介して、この共
用域用の「A」構造を指す。この共用メモリの「G」リ
スト内のすべてのタスクのディレクトリ・ページが修正
される。
【0024】各仮想アドレスには、セグメント記述子お
よびページ・テーブル21内で、インテルi386また
はi486アーキテクチャにおける様々なレベルのメモ
リ保護が関連付けられており、これらを使用して、共用
メモリ域に対する各参照が共用位置からの読取りしかで
きないのか、それとも共用位置の読取りと書込みができ
るのかを制御することができる。
よびページ・テーブル21内で、インテルi386また
はi486アーキテクチャにおける様々なレベルのメモ
リ保護が関連付けられており、これらを使用して、共用
メモリ域に対する各参照が共用位置からの読取りしかで
きないのか、それとも共用位置の読取りと書込みができ
るのかを制御することができる。
【0025】本発明の好ましい実施形態による共用メモ
リ方法が、図7の線図に概略的に示されている。この場
合も、powerPC用のマイクロカーネル・オペレー
ティング・システムは、インテルi486形のアーキテ
クチャの場合と同様に、タスクに連続した4GB32ビ
ット・アドレス空間を共用させるのではなく、各タスク
ごとに独立した仮想アドレス空間をセットアップするこ
とに留意されたい。この図7には、タスク1、タスク
2、タスク3の3つのタスクと、空間Aおよび空間Bと
呼ばれる2つの独立した共用アドレス空間45および4
6が示されている。また、メモリ・オブジェクトMO−
1、MO−2、MO−3、およびMO−4も示されてい
る。タスク1には、共用アドレス45空間Aのアドレス
空間が、パス47によって表される制御=yes付きで
接続されている。これにより、タスク1が、共用アドレ
ス空間Aが接続されるアドレスの範囲内でそれ自体のア
ドレス空間を操作することによって、共用アドレス空間
A内でメモリ・オブジェクトを付加したり破壊すること
が可能になる。タスク2には、共用アドレス空間Aが、
パス48によって表される制御=no付きで接続され
る。タスク2は、共用アドレス空間A内に含まれるメモ
リ・オブジェクトを参照することはできるが、そのアド
レス空間内のこのアドレスの範囲内でメモリ・オブジェ
クトを付加したり破壊することはできない。タスク1
は、共用アドレス空間Aに含まれるメモリ・オブジェク
トに対して同一のアクセス権を有する。
リ方法が、図7の線図に概略的に示されている。この場
合も、powerPC用のマイクロカーネル・オペレー
ティング・システムは、インテルi486形のアーキテ
クチャの場合と同様に、タスクに連続した4GB32ビ
ット・アドレス空間を共用させるのではなく、各タスク
ごとに独立した仮想アドレス空間をセットアップするこ
とに留意されたい。この図7には、タスク1、タスク
2、タスク3の3つのタスクと、空間Aおよび空間Bと
呼ばれる2つの独立した共用アドレス空間45および4
6が示されている。また、メモリ・オブジェクト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内に含まれ
るメモリ・オブジェクトを参照できるだけである。
が、パス49によって表される制御=yes付きで接続
され、したがってタスク2が共用アドレス空間Bを操作
することが可能になる。タスク3には、共用アドレス空
間Bが、パス50によって表される制御=no付きで接
続される。タスク3は、共用アドレス空間B内に含まれ
るメモリ・オブジェクトを参照できるだけである。
【0027】共用アドレス空間のユーザは、各共用アド
レス空間内のメモリ・オブジェクトを管理するのに必要
なカーネル構造およびハードウェア資源の単一のインス
タンスを共用するので、資源は保存される。ページ・エ
イリアシングは、共に図7のメモリ・オブジェクトMO
−4へのアクセス権を有するタスク1およびタスク2に
よって例示されるように、各タスク内に(ページ・テー
ブル22内のページ・テーブル・エントリ24などの)
複製された資源を必要とする。これは、これらの資源が
共用されていないためである。共用アドレス空間が1つ
のオペレーションで接続されるすべての場所が明らかで
ある、共用アドレス空間内で新しいメモリ・オブジェク
トを割り振る場合と異なり、ページ・エイリアシングに
より新しいメモリ・オブジェクトを割り振るには、オペ
レーションをそれが見える各アドレス空間内で実行する
必要がある。
レス空間内のメモリ・オブジェクトを管理するのに必要
なカーネル構造およびハードウェア資源の単一のインス
タンスを共用するので、資源は保存される。ページ・エ
イリアシングは、共に図7のメモリ・オブジェクトMO
−4へのアクセス権を有するタスク1およびタスク2に
よって例示されるように、各タスク内に(ページ・テー
ブル22内のページ・テーブル・エントリ24などの)
複製された資源を必要とする。これは、これらの資源が
共用されていないためである。共用アドレス空間が1つ
のオペレーションで接続されるすべての場所が明らかで
ある、共用アドレス空間内で新しいメモリ・オブジェク
トを割り振る場合と異なり、ページ・エイリアシングに
より新しいメモリ・オブジェクトを割り振るには、オペ
レーションをそれが見える各アドレス空間内で実行する
必要がある。
【0028】タスク1は、図7の共用アドレス空間Bへ
のアクセス権を有しない。同様に、タスク3は、共用メ
モリ・アドレス空間Aまたは共用アドレス空間A内に含
まれる他のメモリ・オブジェクトへのアクセス権を有し
ない。タスク2は、両方の共用アドレス空間内のメモリ
・オブジェクトへのアクセス権を有する。
のアクセス権を有しない。同様に、タスク3は、共用メ
モリ・アドレス空間Aまたは共用アドレス空間A内に含
まれる他のメモリ・オブジェクトへのアクセス権を有し
ない。タスク2は、両方の共用アドレス空間内のメモリ
・オブジェクトへのアクセス権を有する。
【0029】異なるタスクのアドレス空間内の同じアド
レスに異なる共用アドレス空間を接続し、それによって
タスクが、共通のアドレスにある異なるメモリ・オブジ
ェクトを参照できるようにすることも可能である。
レスに異なる共用アドレス空間を接続し、それによって
タスクが、共通のアドレスにある異なるメモリ・オブジ
ェクトを参照できるようにすることも可能である。
【0030】共用アドレス空間の典型的な使用法は、共
用ライブラリや大域データなど、共用システム資源を共
用アドレス空間内に配置し、共用アドレス空間を制御=
no付きで同じ仮想アドレスにあるユーザ・タスク内に
接続することである。システム・ローダは、共用アドレ
ス空間が制御=yes付きで接続され、新しいライブラ
リがロードできるようになる。異なる普及パーソナリテ
ィを有するユーザ・タスクは、異なる共用アドレス空間
に接続することができる。
用ライブラリや大域データなど、共用システム資源を共
用アドレス空間内に配置し、共用アドレス空間を制御=
no付きで同じ仮想アドレスにあるユーザ・タスク内に
接続することである。システム・ローダは、共用アドレ
ス空間が制御=yes付きで接続され、新しいライブラ
リがロードできるようになる。異なる普及パーソナリテ
ィを有するユーザ・タスクは、異なる共用アドレス空間
に接続することができる。
【0031】powerPC用のIBMマイクロカーネ
ル・オペレーティング・システムでは、上述のように、
共用メモリ構成をセットアップするための特定のインタ
フェースまたはデータ構造が準備されている。いわゆる
host_shared_memory_create
機能は、そのサイズが機械依存セグメントのサイズの倍
数である仮想アドレス空間を生成する。インテルi38
6やi486では、セグメント・サイズは、4GBまで
の任意のサイズとすることができる。この機能は、ホス
ト機械用のポートを指定し、また仮想アドレス空間用の
vm_space_portと呼ばれるカーネル割振り
ポート名を指定する。これは、生成された仮想アドレス
空間にアクセスするためのトークンとして使用され、こ
のポートに対する他の呼出しはすべて失敗する。したが
って、virtual_shared_memory_
attach機能は、例えばタスクによる仮想アドレス
空間へのアクセスを提供する。この機能は、仮想アドレ
ス空間を所与のアドレス範囲にマップする。この範囲
は、継承パラメータにより子タスクによって継承される
ように設定できる。この範囲は、上述のように仮想アド
レス空間に対する制御権を有するか否か、すなわち制御
=yesまたは制御=noに設定できる。このvirt
ual_shared_memory_attach機
能は、仮想アドレス空間をマップすべき仮想メモリ・ア
ドレス空間のポートである、target_space
と呼ばれる値を指定し、また仮想アドレス空間をマップ
すべきアドレスであるbase_addrと呼ばれる値
を指定する。このアドレスは、機械依存セグメント境界
でなければならない。virtual_shared_
memory_attach機能はまた、マップすべき
仮想アドレス空間のサイズである「size」値と、h
ost_shared_memory_create機
能によって戻されるポートであるvm_space_p
ortと呼ばれる値を指定し、また真でも偽でもよい
「inherit」と呼ばれる継承インジケータ、なら
びに制御=yesまたは制御=noである制御インジケ
ータを有する。同様に、virtual_shared
_memory_detach機能は、あるタスクに関
連する所与の仮想アドレス空間からマップする仮想アド
レス空間を割振り解除する。共用メモリがマップされた
範囲は、要求に応じて予約でき、そうでない場合には空
になる。このvirtual_shared_memo
ry_detach機能は、(inheritとcon
trolを有さない点以外は)virtual_sha
red_memory_attach機能と全く同じパ
ラメータを指定し、また予約インジケータである「re
serve」と呼ばれる、真または偽の値を指定する。
ル・オペレーティング・システムでは、上述のように、
共用メモリ構成をセットアップするための特定のインタ
フェースまたはデータ構造が準備されている。いわゆる
host_shared_memory_create
機能は、そのサイズが機械依存セグメントのサイズの倍
数である仮想アドレス空間を生成する。インテルi38
6やi486では、セグメント・サイズは、4GBまで
の任意のサイズとすることができる。この機能は、ホス
ト機械用のポートを指定し、また仮想アドレス空間用の
vm_space_portと呼ばれるカーネル割振り
ポート名を指定する。これは、生成された仮想アドレス
空間にアクセスするためのトークンとして使用され、こ
のポートに対する他の呼出しはすべて失敗する。したが
って、virtual_shared_memory_
attach機能は、例えばタスクによる仮想アドレス
空間へのアクセスを提供する。この機能は、仮想アドレ
ス空間を所与のアドレス範囲にマップする。この範囲
は、継承パラメータにより子タスクによって継承される
ように設定できる。この範囲は、上述のように仮想アド
レス空間に対する制御権を有するか否か、すなわち制御
=yesまたは制御=noに設定できる。このvirt
ual_shared_memory_attach機
能は、仮想アドレス空間をマップすべき仮想メモリ・ア
ドレス空間のポートである、target_space
と呼ばれる値を指定し、また仮想アドレス空間をマップ
すべきアドレスであるbase_addrと呼ばれる値
を指定する。このアドレスは、機械依存セグメント境界
でなければならない。virtual_shared_
memory_attach機能はまた、マップすべき
仮想アドレス空間のサイズである「size」値と、h
ost_shared_memory_create機
能によって戻されるポートであるvm_space_p
ortと呼ばれる値を指定し、また真でも偽でもよい
「inherit」と呼ばれる継承インジケータ、なら
びに制御=yesまたは制御=noである制御インジケ
ータを有する。同様に、virtual_shared
_memory_detach機能は、あるタスクに関
連する所与の仮想アドレス空間からマップする仮想アド
レス空間を割振り解除する。共用メモリがマップされた
範囲は、要求に応じて予約でき、そうでない場合には空
になる。このvirtual_shared_memo
ry_detach機能は、(inheritとcon
trolを有さない点以外は)virtual_sha
red_memory_attach機能と全く同じパ
ラメータを指定し、また予約インジケータである「re
serve」と呼ばれる、真または偽の値を指定する。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0033】(1)複数のタスクによって共用される複
数のアドレス空間のそれぞれについて、仮想セグメント
IDに独立したタスク・アドレス空間を接続するステッ
プと、前記仮想セグメントIDを前記複数のタスクのそ
れぞれにマップするステップとを含む、コンピュータ・
メモリ管理システム内で仮想メモリ域を多数のタスクに
よって共用する方法。 (2)前記複数のアドレス空間のうちの少なくとも1つ
のアドレス空間の前記仮想セグメントIDが、前記共用
アドレス空間にアクセスする制御特権を有することを特
徴とする、上記(1)に記載の方法。 (3)前記複数のアドレス空間のうちの少なくとも1つ
のアドレス空間の前記仮想セグメントIDが、前記共用
アドレス空間にアクセスする制御特権を有しないことを
特徴とする、上記(2)に記載の方法。 (4)さらに、前記タスクのうちの少なくとも1つのタ
スクについて、前記仮想セグメントIDエントリのうち
の1つのエントリを変更することによって、前記共用メ
モリ・アドレス空間のうちの少なくともいくつかのアド
レス空間のメモリ・アクセス特性を変更するステップを
含むことを特徴とする、上記(1)に記載の方法。 (5)複数の前記タスク内のメモリ・オブジェクトが、
前記仮想アドレス空間内で異なるアドレス位置を有する
共用アドレス空間を有することを特徴とする、上記
(1)に記載の方法。 (6)コンピュータ・メモリ管理システムを使用する、
多数のタスクによって共用される仮想メモリ域を有する
コンピュータ・システムにおいて、多数のタスクによっ
て共用される複数のアドレス空間のそれぞれについて、
仮想セグメントIDに独立したタスク・アドレス空間を
接続する手段と、前記仮想セグメントIDを前記複数の
タスクのそれぞれにマップする手段とを含むシステム。 (7)前記複数のアドレス空間のうちの少なくとも1つ
のアドレス空間の前記仮想セグメントIDが、前記共用
アドレス空間にアクセスする制御特権を有することを特
徴とする、上記(6)に記載のシステム。 (8)前記複数のアドレス空間のうちの少なくとも1つ
のアドレス空間の前記仮想セグメントIDが、前記共用
アドレス空間にアクセスする制御特権を有しないことを
特徴とする、上記(6)に記載のシステム。 (9)さらに、前記タスクのうちの少なくとも1つのタ
スクについて、前記仮想セグメントIDエントリのうち
の1つのエントリを変更することによって、前記共用メ
モリ・アドレス空間のうちの少なくともいくつかのアド
レス空間のメモリ・アクセス特性を変更するステップを
含むことを特徴とする、上記(6)に記載のシステム。 (10)前記複数のタスク内のメモリ・オブジェクト
が、前記仮想アドレス空間内で異なるアドレス位置を有
する共用アドレス空間を有することを特徴とする、上記
(9)に記載のシステム。
数のアドレス空間のそれぞれについて、仮想セグメント
IDに独立したタスク・アドレス空間を接続するステッ
プと、前記仮想セグメントIDを前記複数のタスクのそ
れぞれにマップするステップとを含む、コンピュータ・
メモリ管理システム内で仮想メモリ域を多数のタスクに
よって共用する方法。 (2)前記複数のアドレス空間のうちの少なくとも1つ
のアドレス空間の前記仮想セグメントIDが、前記共用
アドレス空間にアクセスする制御特権を有することを特
徴とする、上記(1)に記載の方法。 (3)前記複数のアドレス空間のうちの少なくとも1つ
のアドレス空間の前記仮想セグメントIDが、前記共用
アドレス空間にアクセスする制御特権を有しないことを
特徴とする、上記(2)に記載の方法。 (4)さらに、前記タスクのうちの少なくとも1つのタ
スクについて、前記仮想セグメントIDエントリのうち
の1つのエントリを変更することによって、前記共用メ
モリ・アドレス空間のうちの少なくともいくつかのアド
レス空間のメモリ・アクセス特性を変更するステップを
含むことを特徴とする、上記(1)に記載の方法。 (5)複数の前記タスク内のメモリ・オブジェクトが、
前記仮想アドレス空間内で異なるアドレス位置を有する
共用アドレス空間を有することを特徴とする、上記
(1)に記載の方法。 (6)コンピュータ・メモリ管理システムを使用する、
多数のタスクによって共用される仮想メモリ域を有する
コンピュータ・システムにおいて、多数のタスクによっ
て共用される複数のアドレス空間のそれぞれについて、
仮想セグメントIDに独立したタスク・アドレス空間を
接続する手段と、前記仮想セグメントIDを前記複数の
タスクのそれぞれにマップする手段とを含むシステム。 (7)前記複数のアドレス空間のうちの少なくとも1つ
のアドレス空間の前記仮想セグメントIDが、前記共用
アドレス空間にアクセスする制御特権を有することを特
徴とする、上記(6)に記載のシステム。 (8)前記複数のアドレス空間のうちの少なくとも1つ
のアドレス空間の前記仮想セグメントIDが、前記共用
アドレス空間にアクセスする制御特権を有しないことを
特徴とする、上記(6)に記載のシステム。 (9)さらに、前記タスクのうちの少なくとも1つのタ
スクについて、前記仮想セグメントIDエントリのうち
の1つのエントリを変更することによって、前記共用メ
モリ・アドレス空間のうちの少なくともいくつかのアド
レス空間のメモリ・アクセス特性を変更するステップを
含むことを特徴とする、上記(6)に記載のシステム。 (10)前記複数のタスク内のメモリ・オブジェクト
が、前記仮想アドレス空間内で異なるアドレス位置を有
する共用アドレス空間を有することを特徴とする、上記
(9)に記載のシステム。
【図1】本発明による仮想メモリ管理システムを使用す
るデータ処理システムの高水準ブロック図である。
るデータ処理システムの高水準ブロック図である。
【図2】単一の仮想アドレス空間を有するi386など
のアーキテクチャについて、ページ・テーブルによる変
換を示す、図1のシステム用の仮想メモリおよび物理メ
モリのマップである。
のアーキテクチャについて、ページ・テーブルによる変
換を示す、図1のシステム用の仮想メモリおよび物理メ
モリのマップである。
【図3】メモリを共用する方法を使用したページ・テー
ブルによる変換を示す、図2のシステムと同様のシステ
ム用の仮想メモリおよび物理メモリのマップである。
ブルによる変換を示す、図2のシステムと同様のシステ
ム用の仮想メモリおよび物理メモリのマップである。
【図4】本発明によるメモリを共用する方法を使用した
ページ・テーブルによる変換を示す、図2および図3の
システムと同様の、図1のシステム用の仮想メモリおよ
び物理メモリのマップである。
ページ・テーブルによる変換を示す、図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 パス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スレーシュ・ヤナマダラ アメリカ合衆国33442 フロリダ州ディア フィールド・ビーチ ディア・クリーク・ ロード 41 ナンバー・ジー208
Claims (10)
- 【請求項1】複数のタスクによって共用される複数のア
ドレス空間のそれぞれについて、仮想セグメントIDに
独立したタスク・アドレス空間を接続するステップと、 前記仮想セグメントIDを前記複数のタスクのそれぞれ
にマップするステップとを含む、コンピュータ・メモリ
管理システム内で仮想メモリ域を多数のタスクによって
共用する方法。 - 【請求項2】前記複数のアドレス空間のうちの少なくと
も1つのアドレス空間の前記仮想セグメントIDが、前
記共用アドレス空間にアクセスする制御特権を有するこ
とを特徴とする、請求項1に記載の方法。 - 【請求項3】前記複数のアドレス空間のうちの少なくと
も1つのアドレス空間の前記仮想セグメントIDが、前
記共用アドレス空間にアクセスする制御特権を有しない
ことを特徴とする、請求項2に記載の方法。 - 【請求項4】さらに、前記タスクのうちの少なくとも1
つのタスクについて、前記仮想セグメントIDエントリ
のうちの1つのエントリを変更することによって、前記
共用メモリ・アドレス空間のうちの少なくともいくつか
のアドレス空間のメモリ・アクセス特性を変更するステ
ップを含むことを特徴とする、請求項1に記載の方法。 - 【請求項5】複数の前記タスク内のメモリ・オブジェク
トが、前記仮想アドレス空間内で異なるアドレス位置を
有する共用アドレス空間を有することを特徴とする、請
求項1に記載の方法。 - 【請求項6】コンピュータ・メモリ管理システムを使用
する、多数のタスクによって共用される仮想メモリ域を
有するコンピュータ・システムにおいて、 多数のタスクによって共用される複数のアドレス空間の
それぞれについて、仮想セグメントIDに独立したタス
ク・アドレス空間を接続する手段と、 前記仮想セグメントIDを前記複数のタスクのそれぞれ
にマップする手段とを含むシステム。 - 【請求項7】前記複数のアドレス空間のうちの少なくと
も1つのアドレス空間の前記仮想セグメントIDが、前
記共用アドレス空間にアクセスする制御特権を有するこ
とを特徴とする、請求項6に記載のシステム。 - 【請求項8】前記複数のアドレス空間のうちの少なくと
も1つのアドレス空間の前記仮想セグメントIDが、前
記共用アドレス空間にアクセスする制御特権を有しない
ことを特徴とする、請求項6に記載のシステム。 - 【請求項9】さらに、前記タスクのうちの少なくとも1
つのタスクについて、前記仮想セグメントIDエントリ
のうちの1つのエントリを変更することによって、前記
共用メモリ・アドレス空間のうちの少なくともいくつか
のアドレス空間のメモリ・アクセス特性を変更するステ
ップを含むことを特徴とする、請求項6に記載のシステ
ム。 - 【請求項10】前記複数のタスク内のメモリ・オブジェ
クトが、前記仮想アドレス空間内で異なるアドレス位置
を有する共用アドレス空間を有することを特徴とする、
請求項9に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/472,364 US5875487A (en) | 1995-06-07 | 1995-06-07 | System and method for providing efficient shared memory in a virtual memory system |
US472364 | 1995-06-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0916461A true JPH0916461A (ja) | 1997-01-17 |
Family
ID=23875227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8133637A Pending JPH0916461A (ja) | 1995-06-07 | 1996-05-28 | 仮想メモリ・システム内で効率的な共用メモリを提供するためのシステムおよび方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5875487A (ja) |
EP (1) | EP0747828A3 (ja) |
JP (1) | JPH0916461A (ja) |
Families Citing this family (15)
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 |
US6289432B1 (en) * | 1998-03-25 | 2001-09-11 | International Business Machines Corporation | Sharing segments of storage by enabling the sharing of page tables |
US6301582B1 (en) * | 1998-03-30 | 2001-10-09 | International Business Machines Corporation | System and method for storage of shared persistent objects |
US6760743B1 (en) * | 2000-01-04 | 2004-07-06 | International Business Machines Corporation | Instruction memory system for multi-processor environment and disjoint tasks |
US6950916B2 (en) * | 2001-01-31 | 2005-09-27 | Rto Software, Inc. | Dynamically setting the optimal base addresses of process components |
US7058775B2 (en) * | 2001-01-31 | 2006-06-06 | Rto Sortware, Inc | Systems and methods for avoiding base address collisions using alternate components |
US7461228B2 (en) * | 2003-11-21 | 2008-12-02 | Rto Software, Inc. | Systems and methods for avoiding base address collisions |
US7975117B2 (en) | 2003-03-24 | 2011-07-05 | Microsoft Corporation | Enforcing isolation among plural operating systems |
US7213125B2 (en) * | 2004-07-31 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Method for patching virtually aliased pages by a virtual-machine monitor |
US7698510B2 (en) * | 2005-06-22 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Systems and methods for identifying and registering a range of virtual memory |
US20080163185A1 (en) * | 2006-12-29 | 2008-07-03 | Rto Software, Inc. | Delay-load optimizer |
CN102096687B (zh) * | 2009-12-14 | 2013-08-07 | 阿里巴巴集团控股有限公司 | 一种调度任务的方法和平台 |
CN103902459B (zh) * | 2012-12-25 | 2017-07-28 | 华为技术有限公司 | 确定共享虚拟内存页面管理模式的方法和相关设备 |
US9317423B2 (en) * | 2013-01-07 | 2016-04-19 | Hitachi, Ltd. | Storage system which realizes asynchronous remote copy using cache memory composed of flash memory, and control method thereof |
US20150058926A1 (en) * | 2013-08-23 | 2015-02-26 | International Business Machines Corporation | Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4742450A (en) * | 1986-01-16 | 1988-05-03 | International Business Machines Corporation | Method to share copy on write segment for mapped files |
US5230045A (en) * | 1986-11-12 | 1993-07-20 | Xerox Corporation | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus |
EP0442297B1 (en) * | 1990-01-24 | 2000-05-24 | Sony Corporation | Processor with an overwriteable microcode memory |
GB9205551D0 (en) * | 1992-03-13 | 1992-04-29 | Inmos Ltd | Cache memory |
US5729710A (en) * | 1994-06-22 | 1998-03-17 | International Business Machines Corporation | Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system |
-
1995
- 1995-06-07 US US08/472,364 patent/US5875487A/en not_active Expired - Fee Related
-
1996
- 1996-05-24 EP EP96303732A patent/EP0747828A3/en not_active Withdrawn
- 1996-05-28 JP JP8133637A patent/JPH0916461A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0747828A3 (en) | 1996-12-18 |
EP0747828A2 (en) | 1996-12-11 |
US5875487A (en) | 1999-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3268310B2 (ja) | メモリ管理方法 | |
US7539782B2 (en) | Method of virtualizing I/O resources in a computer system | |
JP5735070B2 (ja) | パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換 | |
US4742450A (en) | Method to share copy on write segment for mapped files | |
EP2997477B1 (en) | Page table data management | |
CN109359487B (zh) | 一种基于硬件隔离的可扩展安全影子存储及标签管理方法 | |
US8225071B2 (en) | Accessing multiple page tables in a computer system | |
JP2986075B2 (ja) | ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム | |
CN1993683B (zh) | 体系结构事件期间维持处理器资源 | |
CN109564522A (zh) | 控制对计算装置的存储器中的页的访问 | |
JPH0769844B2 (ja) | データ空間への共通アクセス装置及び方法 | |
JPH0916461A (ja) | 仮想メモリ・システム内で効率的な共用メモリを提供するためのシステムおよび方法 | |
JPH0242528A (ja) | Icメモリカード | |
JPS6248258B2 (ja) | ||
JP3629507B2 (ja) | コンピュータ・システム内で共用仮想セグメント識別を使用して共用メモリを提供するシステムおよび方法 | |
US20040268084A1 (en) | Protected RAM filesystem | |
Aron et al. | The SawMill framework for virtual memory diversity | |
JP4312952B2 (ja) | メモリ属性パレット | |
JP5104501B2 (ja) | 仮想マシンシステム、ホスト計算機、仮想マシン構築方法およびプログラム | |
Chen et al. | High assurance computing on open hardware architectures | |
JP2001175486A (ja) | 計算機システム | |
JPH03240134A (ja) | オブジエクト指向メモリ保護メカニズムを採用するデータ処理システムで実行環境間の同期通信を実行する方法 | |
JPS6220583B2 (ja) | ||
CN100334566C (zh) | 在文件系统中访问硬盘任意扇区的方法 | |
JPH0241772B2 (ja) |