JPH09190380A - 仮想記憶管理方法 - Google Patents

仮想記憶管理方法

Info

Publication number
JPH09190380A
JPH09190380A JP8004372A JP437296A JPH09190380A JP H09190380 A JPH09190380 A JP H09190380A JP 8004372 A JP8004372 A JP 8004372A JP 437296 A JP437296 A JP 437296A JP H09190380 A JPH09190380 A JP H09190380A
Authority
JP
Japan
Prior art keywords
area
virtual memory
page
processes
access
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
JP8004372A
Other languages
English (en)
Other versions
JP3557026B2 (ja
Inventor
Keiichi Teramoto
圭一 寺本
Toshio Okamoto
利夫 岡本
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP00437296A priority Critical patent/JP3557026B2/ja
Publication of JPH09190380A publication Critical patent/JPH09190380A/ja
Application granted granted Critical
Publication of JP3557026B2 publication Critical patent/JP3557026B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】プロセスそれぞれについてのアクセス保護機能
を保証しつつ、プロセス間でのアドレス変換テーブルの
共有化可能性を高める。 【解決手段】プロセス1がアクセス可能な領域の範囲の
うちで物理メモリ中に現在読み込まれているページが属
する領域の範囲に着眼し、そのアクセス可能領域がアク
セス可能で、且つアクセス保護属性が同一のプロセス2
が生成される場合には、それらプロセス1、2間でペー
ジテーブルが共有化される。したがって、アクセス可能
領域およびアクセス保護属性が全て一致しなくても、現
在物理メモリ内に読み込まれているページに対応する領
域についてのみアクセス保護属性が一致すれば、アドレ
ス変換テーブルの共有が行われる。これにより、プロセ
スそれぞれについてのアクセス保護機能を保証しつつ、
プロセス間でのアドレス変換テーブルの共有化可能性を
十分に高められるようになる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は仮想記憶管理方法
に関し、特に計算機システム上で実行される全てのプロ
セスによって共有される単一の仮想記憶空間を利用し、
ページングによる仮想記憶管理を行う仮想記憶管理方法
に関する。
【0002】
【従来の技術】近年、計算機アーキテクチャの改良、記
憶装置の大容量化、および、プロセッサの64ビット化
などによる利用可能な仮想記憶空間の大幅な拡大に伴
い、複数のプログラムやデータを単一の仮想記憶空間上
に配置することによって、これらを一元的に管理する手
法が有効視されてきている。これは、すべてのプロセス
に同一の仮想記憶空間を共有させることにより、仮想記
憶上に配置されるプログラムやデータなどのオブジェク
トと、仮想記憶上の仮想アドレスとを一意に対応づけ
て、それらオブジェクトを統一的に定義/管理しようと
いうものである。
【0003】具体的な利点としては、ある計算機上の全
てのプロセスについて、仮想アドレスと物理アドレスと
の対応関係が同一となることにより、どのプロセスから
もある特定の仮想アドレスによって同一のオブジェクト
が参照できるというオブジェクトの同値性が保証される
だけでなく、オブジェクトの永続化、空間上に配置され
る複数のプログラム領域を跨るダイレクトなプロセス間
通信、データ共有の容易化などが挙げられている。
【0004】こうした単一仮想記憶機構をOSなどの基
本ソフトウェアで提供する際に問題となる点がいくつか
挙げられている。
【0005】その一つに、単一仮想記憶空間上に配置さ
れる各領域の保護をどのように実現するかという問題が
ある。単一仮想空間自体は、生成されるプロセスすべて
に対して全空間のアドレッシング可能性を提示している
が、マルチユーザ環境などで使用される場合には、実際
に空間内に配置される個々の領域について、各ユーザあ
るいは各プロセスに対するアクセス保護を指定/設定で
きるようにすることが必要である。これは、不用意な参
照や誤った操作による領域破壊、悪意のある操作などか
ら領域を保護するためであり、この保護機能はOSにと
って本質的に不可欠な機能となる。
【0006】領域毎にプロセスに対するアクセス保護属
性を設定するということは、言い替えると、プロセス毎
にアクセス可能な領域の範囲が規定されるということに
なる。
【0007】そこで、こうしたプロセス毎のアクセス可
能な領域の範囲を「アクセス保護領域」と呼ぶことに
し、以下、この保護機能を実現するための手法を考察す
る。ここでは、現在数多くのアーキテクチャで採用され
ているアドレス変換テーブル(これは、ページテーブル
やTLB(Translation Lookasid
e Buffer)などを指す)を使用して仮想/物理
アドレス変換を行なう仮想記憶管理機構を具備した計算
機上で前述の保護機能を実現する場合を考える。
【0008】
【発明が解決しようとする課題】
(1)まず、全プロセスで単一のアドレス変換テーブル
を共有してプロセス毎のアクセス保護領域を実現するこ
とを考える。この場合、ページフォルト時には、ページ
フォルトの発生したページとプロセスの保護関係に従っ
てページング機能による保護検査を適用することができ
る。しかし、この保護検査はページフォルト時のみに行
われるので、もしあるプロセスによって一度参照された
ページを、アクセス許可を持たない他のプロセスが再度
アクセスしようとすると、アドレス変換テーブル中の参
照ページに対応するアドレス変換テーブルエントリが有
効化されていた場合には、ページフォルトが発生しない
ため、この不法なアクセスをソフトウェア的にもハード
ウェア的にも探知することができない。この様子を図2
5に示す。
【0009】図25には、プロセス1,2が同一ページ
テーブルを共有しており、プロセス1のみがアクセス可
能な領域Aに対応するページが物理ページフレーム(物
理メモリ)上に存在している場合において、アクセス権
を持たないプロセス2によるそのページへの不当アクセ
スが行われる様子が示されている。
【0010】このように、プロセス間で、同一ページに
対するread,write,executeなどの保
護属性の組合せが異なる場合には、同じアドレス変換テ
ーブルを共有することはできない。
【0011】すなわち、アクセス保護領域の範囲/属性
が異なるプロセス同士でアドレス変換テーブルを共有す
ると、領域保護に関する一貫性は保証できなくなってし
まう。
【0012】(2)そこで、次に、各プロセス毎に別々
のアドレス変換テーブルを保持させることを考える。こ
の手法では、各プロセス毎にアクセス可能な領域の範囲
は、図26に示されているように、各々のアドレス変換
テーブルによって独立して管理されることになるため、
アクセス権を持たないプロセス2による領域A内のペー
ジへのアクセスが禁止され、安全な空間利用が可能とな
る。プロセスは別々のアドレス変換テーブルを保持する
ため、プロセス切り替え毎に、このアドレス変換テーブ
ルの切り替え(TLBを装備する場合はTLBフラッシ
ュも含む)を必ず伴うことになる。
【0013】この手法では、複数のプロセスで同じペー
ジを共有する場合、同時に参照している該ページに対応
する各プロセス付随のアドレス変換テーブルエントリ状
態はある時点で有効となる(ただし、該ページを参照可
能なプロセスであっても、該ページを参照していない場
合には、該アドレス変換テーブルエントリの状態は非有
効のままでも構わない)。
【0014】その後、あるプロセスが新しいページを必
要とするときに物理メモリ上に未使用ページが無けれ
ば、ページアウトが行われる。このページアウト対象の
ページに現在複数のプロセスにより参照中の共有ページ
が選択される場合、テーブルの一貫性を保証するため
に、該ページに対して現在参照中の各プロセス対応アド
レス変換テーブルエントリの状態をすべて非有効化にす
る必要が生じて、このための非有効化通知コストは参照
プロセス数に応じて増加する。
【0015】更に、各プロセスが各々ページテーブルを
保持しているため、多段階化されたページテーブルを採
用するアーキテクチャを使用する場合であっても、こう
した記憶管理用資源のために浪費される物理メモリや2
次記憶の記憶領域の量はプロセス数に比例して増大する
ことになってしまい、その結果、キャッシュヒット率の
低下、プロセス切り替え時のページテーブル切り替えや
TLBフラッシュなどのオーバヘッドがシステムの効率
に影響してくる。
【0016】以上のように、全プロセスで単一のアドレ
ス変換テーブルを共有するという(1)の方法の場合に
は、記憶資源の消費は少なく、アドレス変換情報の一貫
性の保持は容易に行なわれるが、アクセス保護の実現が
不可能なため、システムが常に危険にさらされることに
なり安全に使用することができない。一方、プロセス毎
にアドレス変換テーブルを別個に用いる(2)の方法で
は、メモリ資源の浪費などが引き起こされる問題があ
る。
【0017】(3)こうした問題点を解消するための手
段として、アクセス保護領域の一致するプロセス間同士
でのみ、アドレス変換テーブルを共有させて、プロセス
毎のアクセス保護機能を維持したまま、記憶管理用資源
の最適化をはかることが考えられる。
【0018】しかしながら、プロセス間でアクセス保護
領域が完全に一致するためには、該アクセス保護領域が
このグループ化される複数プロセス内で固定的に定まる
ものでなければならないため、実行中のある時点で該複
数プロセス中のあるプロセスに対してのみ、アクセス可
能な保護領域の追加や変更を動的に行うような柔軟な保
護機能の実現はこのままでは困難である。
【0019】一方、プロセス生成時にシステムにより設
定されるアクセス保護領域の情報は、該生成プロセスが
利用可能な領域のサブセットであり、空間内で利用可能
なすべての情報を含まないのが一般的と考えられる。こ
れは、広大な仮想記憶空間内には、どのプロセスからの
参照でも許可する領域が多数存在している可能性があ
り、これらを逐一抽出し、生成プロセスに付随されるア
クセス保護領域情報として反映させ、これを維持するこ
とは現実的ではないからである。よって、プロセスに付
随されるアクセス保護領域の追加、削除などの変更は、
プログラムからの指示や、現在のアクセス保護領域情報
として保持されている領域以外の他の領域に対してアク
セスを行なってページフォルトを起こし、アクセス許可
の検査を受けて許可された場合に、動的に行なわれると
いう手法が自然と考えられる。このような状況下では、
厳密な意味でのアクセス保護領域の完全な一致を保証す
ることは難しい。
【0020】以上、単一仮想記憶空間を利用して、アク
セス可能な領域の範囲をプロセス毎に柔軟に設定する機
能を実現する際に問題となる事項を述べてきたが、多重
仮想記憶空間を利用したアーキテクチャでも、あるアド
レス空間内で走行するプロセスの、アドレス変換テーブ
ルの共有化や、実用コンテキストの最小化などによりプ
ロセスの軽量化をはかった最適化例がいくつか存在す
る。ただし、これらは一般に多重仮想記憶方式のような
仮想記憶空間全体が保護領域と完全に一致しており、適
用できる範囲がある仮想記憶空間内のみに限定されてい
るため、これらの中で適用される手法では、単一仮想記
憶空間上に複数個配置される領域の範囲が動的に変更さ
れうるような状況において効率的に機能するアクセス保
護機能の最適化手法に関する解を与えない。
【0021】次に、単一仮想記憶空間上でアクセス可能
領域範囲を各々設定することが可能なプロセスをスケジ
ューリングする際の問題点について述べる。通常、多重
仮想記憶空間を利用するアーキテクチャでは、プロセス
を実行待ち行列に収容し、これらを順番にディスパッチ
していく場合、プロセス切り替え時に毎回、ページテー
ブル切り替えやTLBフラッシュなどが必要となる。し
かし、複数のプロセス間でページテーブルが共有できる
ような単一仮想記憶空間を利用するアーキテクチャで
は、スケジューラが、次期実行プロセスとして選択する
プロセスを、現実行プロセスとページテーブルを共有し
ているものと判定できる場合には、ディスパッチ時に上
記の操作は本来不要である。しかし、従来のスケジュー
リング手法では、アドレス変換テーブルに関する共有化
情報はスケジューリングに何ら利用されていないので、
一般的なスケジューリング手法を単一仮想記憶空間を利
用したアーキテクチャに適用すると、プロセス切り替え
毎に必ずページテーブル切り替えやTLBフラッシュが
実行されてしまう。
【0022】次に、単一仮想記憶空間上でアクセス可能
領域範囲を各々設定できるようなプロセスを分散メモリ
型(疎結合型)マルチプロセッサシステム環境下でプロ
セッサに割り付ける場合の問題点について説明する。
【0023】該マルチプロセッサシステム環境下では、
各CPUにMMU、局所メモリが付随する構成となる
が、各CPUは自分に付随する局所メモリへの他CPU
からのアクセスを許さないため、アドレス変換テーブル
を共有する2つのプロセスが別々のCPUに割り当てら
れた場合、一方のプロセスは、アドレス変換テーブルの
複製を対応するCPUの局所メモリ上に作成し、これを
新たに利用することになる。この場合、アドレス変換テ
ーブルを共有化しうるメリットを失い、キャッシュ内容
も切り替わるため、プロセッサを移動するたびに再キャ
ッシュしてデータを取り込む必要が生じてくる。
【0024】このような、各プロセッサ上のキャッシュ
の親和性を考慮した従来技術には、例えば、プロセス
(スレッド)をなるべく同じプロセッサ上で実行するよ
う制御しようとするcache affinity s
cheduling[文献:R.Vaswani an
d J.Zahorjan.“The impleme
ntations of cache affinit
y on processor scheduling
for multiprogrammed,shar
ed memory multiprocessor
s”,In Proceedings of 13th
ACM Symposium on Operati
ng Systems Principles,pp.
26−40,1991.]というスケジューリング方式
が存在する。ただし、上記スケジューリング方式では、
1つのプロセス(スレッド)をなるべく同一のプロセッ
サ上で実行するようプロセッサ割り付けを制御すること
によるキャッシュ効果の向上しか対象としておらず、こ
れが割り付けられるプロセスと、アドレス変換テーブル
の共有可能なプロセス群との親和性に関しては考慮され
ていない。
【0025】本発明は上記の問題点を考慮してなされた
ものであり、単一仮想記憶空間を全てのプロセスで共有
するシステムにおいて、プロセスそれぞれについてのア
クセス保護を保証しつつ、プロセス間でのアドレス変換
テーブルの共有化可能性を十分に高められるようにし、
信頼性が高く、且つ記憶管理用資源、プロセス切り替え
時のコストの最小化を実現することが可能な仮想記憶管
理方法を提供することを目的とする。
【0026】
【課題を解決するための手段】本発明は、計算機システ
ム上で実行される複数のプロセスによって共有される単
一の仮想記憶空間を利用し、ページングによる仮想記憶
管理を行う仮想記憶管理方法において、前記単一仮想記
憶空間に配置され得る複数の領域の各々について、前記
プロセス毎にアクセス可能な領域とその領域に対するア
クセス保護の属性とを規定し、あるプロセスのアクセス
可能領域の中で物理メモリ内に現在読み込まれているペ
ージが属しているアクセス可能領域がアクセス可能で、
且つその領域に対するアクセス保護属性が前記プロセス
と同一のプロセスを検出し、それらプロセス間で、仮想
アドレスを物理アドレスに変換するためのアドレス変換
テーブルを共有化させることを特徴とする。
【0027】この仮想記憶管理方法においては、あるプ
ロセスのアクセス可能領域の中で物理メモリ内に現在読
み込まれているページが属しているアクセス可能領域に
着眼し、そのアクセス可能領域がアクセス可能で、且つ
アクセス保護属性が同一の他のプロセスが存在すれば、
それらプロセス間でアドレス変換テーブルが共有化され
る。したがって、アクセス可能領域およびアクセス保護
属性が全て一致しなくても、現在物理メモリ内に読み込
まれているページに対応する領域についてのみアクセス
保護属性が一致すれば、アドレス変換テーブルの共有が
行われる。これにより、プロセスそれぞれについてのア
クセス保護機能を保証しつつ、プロセス間でのアドレス
変換テーブルの共有化可能性を十分に高められるように
なり、信頼性が高く、且つ記憶管理用資源、プロセス切
り替え時のコストの最小化を実現することが可能とな
る。
【0028】また、ページフォルトの発生によって、前
記アドレス変換テーブルを共有するプロセス間における
アクセス保護の一貫性を保証できない新たな領域に属す
るページが前記物理メモリに読み込まれるときは、前記
アドレス変換テーブルの共有化を解除することが好まし
い。これにより、領域保護の一貫性を保証できる。
【0029】また、スケジューリングについては、アド
レス変換テーブルを共有するプロセス群が連続的に実行
されるようなスケジューリング方式を採用することが望
ましい。これにより、プロセス間切り替えコストを大幅
に低減させることができる。
【0030】この場合にも、アドレス変換テーブルの共
有化可能性を高めるために、アドレス変換テーブルの共
有化に当たっては、前記単一仮想記憶空間に配置され得
る複数の領域の各々について、前記プロセス毎にアクセ
ス可能な領域とその領域に対するアクセス保護の属性と
を規定するステップと、あるプロセスのアクセス可能領
域の中で物理メモリ内に現在読み込まれているページが
属しているアクセス可能領域がアクセス可能で、且つそ
の領域に対するアクセス保護属性が前記プロセスと同一
のプロセスを検出するステップとを用いることが好まし
い。
【0031】また、物理メモリを各々が有する複数のプ
ロセッサから構成されるマルチプロセッサシステム環境
下においては、生成プロセスを、その生成プロセスとア
ドレス変換テーブルを共有可能な他のプロセスが割り当
てられているプロセッサ上に配置することが好ましい。
これにより、アドレス変換テーブルの共有化のメリット
を最大限有効に活用することが可能となる。
【0032】この場合、アドレス変換テーブルを共有可
能なプロセスが存在するプロセッサの検出は、前記単一
仮想記憶空間に配置され得る複数の領域の各々につい
て、前記プロセス毎にアクセス可能な領域とその領域に
対するアクセス保護の属性とを規定し、前記複数のプロ
セッサそれぞれの物理メモリ内に現在読み込まれている
ページが属しているアクセス可能領域およびそのアクセ
ス保護属性と、生成プロセスのアクセス可能領域および
そのアクセス保護属性とを比較することによって、行う
ことができる。
【0033】
【発明の実施の形態】以下、図面を参照してこの発明の
実施形態を説明する。
【0034】図1〜図3には、この発明の一実施形態に
係る仮想記憶管理方法が適用される計算機アーキテクチ
ャの構成例が示されている。図1の計算機アーキテクチ
ャは、単一プロセッサ計算機であり、1つのCPU11
と物理メモリ13を有し、MMU12(Memory
Management Unit)などの仮想記憶を実
現するための機構を装備している。この計算機は、OS
などの基本ソフトウェアを有しており、その制御下で仮
想記憶管理のための制御が行われる。また、2次記憶装
置14は、swap用バッキングストレッジとして使用
される。
【0035】図2は、複数のプロセッサから構成される
分散メモリ型(疎結合型)マルチプロセッサシステムで
あり、各プロセッサは、1つのCPU11と物理メモリ
13を有し、またMMU12(Memory Mana
gement Unit)などの仮想記憶を実現するた
めの機構を装備している。また、2次記憶装置14は、
swap用バッキングストレッジとしてプロセッサ間で
共用される。
【0036】図3は、複数のプロセッサから構成される
分散メモリ型(疎結合型)マルチプロセッサシステムの
他の構成例であり、LANやWANなどのネットワーク
を介して複数のプロセッサが結合される分散計算機シス
テムが例示されている。各プロセッサの2次記憶装置1
4は、通常swap用バッキングストレッジとして使用
されるが、ネットワーク環境下で他計算機上の2次記憶
装置資源が該swap領域として利用できる場合には、
必ずしも各プロセッサ毎に別個に二次記憶を設ける必要
はない。
【0037】図4は、前記計算機上での実行プロセスと
データとの関係の一例を説明するものである。前記計算
機環境下で提供されるOSのプロセス管理機構及び仮想
記憶管理機構により、図示する単一の仮想記憶空間上に
全プログラムやデータなどの各種領域(これを「メモリ
セクション領域」と呼ぶことにする)が複数配置されう
る形態を実現し、全走行プロセスからの単一仮想記憶空
間の共有を可能とする。すなわち、各プロセスからある
特定の仮想アドレス上へのデータ参照を行なう場合、全
走行プロセスに対して同一のバイト列が見えることにな
る。また、全プロセスから同一仮想記憶空間を共有して
いるので、ある特定の仮想アドレス上のデータ変更は、
変更を行なったプロセス以外の他プロセスに対しても即
座に反映されることになる。
【0038】図4においては、メモリセクション領域A
に配置されたプログラムA上で走行しているプロセス1
がメモリセクション領域Bのデータを変更し、その変更
されたデータを、メモリセクション領域Cに配置された
プログラムB上で走行しているプロセス2が参照してい
る様子が示されている。
【0039】図5は、プロセス間仮想記憶管理の対象で
ある各プロセスとアクセス保護領域範囲との関係の一例
を示したものである。単一仮想記憶空間上で実行される
複数のプロセスには、各々独立にアクセスの許可されう
るメモリセクション領域範囲の設定/変更が可能なアク
セス保護機構が提供される。すなわち、各プロセスに
は、単一仮想記憶空間上に配置される各メモリセクショ
ン領域に対して、読み込み可能、書き込み可能、実行可
能など(以降、これら操作を総称してアクセスまたは参
照と呼称する)のアクセス保護属性が指定されることに
より、各プロセス単位にアクセス可能/不可能な領域範
囲を自由に設定することができる。上記アクセス保護機
構により、許可の無いプロセスからの意図的/不用意な
アクセスから、該メモリセクション領域を保護すること
が可能となる。
【0040】図5においては、メモリセクション領域
A、B、Dがプロセス1のアクセス保護領域として割り
当てられ、メモリセクション領域D、Eがプロセス2の
アクセス保護領域として割り当てられ、メモリセクショ
ン領域C、D、Eがプロセス3のアクセス保護領域とし
て割り当てられている。
【0041】図6には、この発明のプロセス間仮想記憶
管理機構を実現するためのOSの一構成例が示されてい
る。
【0042】図示のように、本プロセス間仮想記憶管理
機構は、プロセス管理部21と、仮想記憶管理部22と
から構成され、仮想記憶管理部22は、ページテーブル
管理部23、メモリセクション管理部24、保護領域管
理部25から構成される。なお、ここで例示するページ
ング方式としては、仮想/物理アドレス変換テーブル用
にページテーブルを採用したアーキテクチャを対象とす
るが、図示しないTLB(Translation L
ookaside Buffer)のようなページテー
ブルエントリ専用のキャッシュメモリを搭載していても
良い。
【0043】プロセス管理部21は、前記計算機上で実
行されうるプロセスの生成や複数プロセスのスケジュー
リングなどを担当する部分であり、プロセス生成部21
1、プロセス情報退避部212、プロセス・スケジュー
リング部213、プロセス・ディスパッチ部214、プ
ロセス情報設定部215、プロセス情報取得部216な
どから構成され、プロセス情報やプロセス実行待ち行列
などの情報を保持する。
【0044】ページテーブル管理部23は、各プロセス
に付随するページテーブルの生成、ページテーブルエン
トリの設定などを担当する部分であり、ページテーブル
生成部231、ページテーブルエントリ設定部232、
ページテーブルエントリ情報取得部233、などから構
成される。
【0045】メモリセクション領域管理部24は、プロ
グラムやデータなど単一仮想記憶空間上に配置されうる
領域 (メモリセクション領域)の配置や対プロセス/
対メモリセクション領域に関する保護属性の設定やアク
セスを認めるかどうかの判定時に必要となる保護属性情
報の獲得などを担当する部分であり、メモリセクション
生成部241、メモリセクション保護属性設定部24
2、メモリセクション領域情報取得部243などから構
成される。
【0046】保護領域管理部25は、各プロセスごとに
設定されるアクセス保護領域情報(後述)、アクティブ
保護領域情報(後述)を元に、ページテーブルのプロセ
ス間共有/分離のための判定/実行を担当する部分で、
アクセス保護領域設定部251、アクセス保護領域情報
取得部252、アクティブ保護領域設定部253、アク
ティブ保護領域情報取得部254、ページテーブル共有
判定部/実行部255、ページテーブル分離判定部/実
行部256などから構成される。
【0047】各管理部は互いに関連し、各構成要素が連
携をとってプロセス間仮想記憶制御機構の実現に必要な
処理を行う。
【0048】次に、プロセスにおけるメモリセクション
領域の保護属性の設定方法(対プロセス)について説明
する。
【0049】メモリセクション領域は、各種プログラム
の指示により各プロセスに対し設定される。OSは、各
メモリセクション領域に関するアクセス許可属性のリス
トを、「アクセス保護領域」情報として保持し、アクセ
ス保護領域管理部25によって管理している。あるプロ
セスに設定されるアクセス保護領域の範囲は、必ずしも
単一仮想記憶空間内に複数配置される全領域に対する情
報をカバーする必要は無く、プログラマあるいはシステ
ムによって予め固定的に設定されるいくつかの領域範囲
で十分である。これは、潜在的にアクセス可能/不可能
な領域へのアクセス時に、動的にアクセス権のチェック
が行われるからである。図7に、プロセス構造体の一例
を示す。
【0050】プロセス構造体内には、優先度やプロセス
属性、レジスタ退避情報、例外処理時の飛び先などの他
に、ページテーブル先頭アドレス(ここではレジスタ退
避情報とは区別している)、アクセス保護領域リスト管
理用構造体、アクティブ保護領域リスト管理用構造体
(後述)が記録される。アクセス/アクティブ保護領域
リスト管理構造体は、対応するプロセスのアクセス/ア
クティブ保護領域についての情報格納位置を指定するポ
インタ群である。ここで、アクセス保護領域とは、その
プロセスがアクセス可能な全てのメモリセクションを示
す。また、アクティブ保護領域とは、アクセス保護領域
の中で現在物理メモリに読み込まれているページが属す
るメモリセクション領域を示す。
【0051】アクセス保護領域リスト管理構造体は、図
8に示されているように、メモリセクション領域が配置
される位置である仮想アドレスの昇順に連結されたメモ
リセクション領域構造体の先頭エントリおよび終端エン
トリから構成される。また、図のように最後に参照され
たメモリセクション領域構造体エントリの位置を記録す
るようなヒントを含んでいてもよい。また、アクティブ
保護領域リスト管理構造体も、アクセス保護領域リスト
管理構造体と同様に、メモリセクション領域が配置され
る位置である仮想アドレスの昇順に連結されたアクティ
ブなメモリセクション領域構造体の先頭エントリおよび
終端エントリ、また、最後に参照されたメモリセクショ
ン領域構造体エントリの位置を記録するヒントから構成
されている。
【0052】各メモリセクション領域構造体は、図9に
示されているように、前/後方向リンク、メモリセクシ
ョンID等が保持され、メモリセクション領域に対する
アクセス権のキャッシュとして利用する保護属性を含ん
でいてもよい。
【0053】また、前記アクセス保護領域情報は、プロ
セスに対してのみ付随するのではなく、各メモリセクシ
ョン領域に関して設定することも可能である。これは、
通常、該領域が仮想記憶空間上に配置される際に指定/
設定されうるもので、必要に応じて、配置後に動的にア
クセス許可/不許可属性を変更する事も可能である。
【0054】この場合、メモリセクション領域管理用デ
ータ構造は、図8と同様の双方向リストなどによって実
現できる。また、図10に示すように、各メモリセクシ
ョン領域構造体エントリ内には、該メモリセクション領
域の先頭/終端仮想アドレス、前/後方向リンク、保護
属性フラグ、対領域許可/不許可リスト、対プロセス許
可/不許可リスト、などが含まれる。
【0055】これにより、各メモリセクション領域に
は、プログラムの格納されたメモリセクション領域に対
して、および、個々のプロセスに対して、独立にアクセ
ス許可/不許可の設定が可能になる。このために維持さ
れるエントリ内容を図11(a),(b)に示す。それ
ぞれ、メモリセクションID/プロセスIDの他に、読
みだし/書き込み/実行などの保護属性が記録される。
また、メモリセクション領域構造体エントリ内の保護属
性フラグを用いて、全プロセス(メモリセクション領
域)からアクセス(読みだし/書き込み/実行など)を
許可する/禁止するなどの指定が行えるようにも設定可
能である。
【0056】以降、これら各々を使用した実施形態につ
いて説明する。
【0057】本実施形態1では、プロセス間で各プロセ
スに付随するアクティブ保護領域情報とアクセス保護領
域情報との包含関係に基づき、ページテーブル共有化可
能性の判定、共有化制御が行われる。
【0058】このページテーブルの共有化可能性の判定
や、実際に共有化を行う時期は、幾通りかあげられ、プ
ログラマにより明示的に指定する場合や、OSなどのシ
ステムにより暗黙裏にページテーブル共有可能プロセス
が探索され自動的に共有化される場合、などが挙げられ
る。
【0059】ここでは、プロセス生成時にプログラムが
ページテーブル共有相手となる他プロセスを指定する場
合について例示する。
【0060】図12では、プロセス1が既に生成されて
おり、領域(A),(B),(C)がプロセス1のアク
セス保護領域としてアクセス保護領域管理部によって設
定/管理されている状態を示している。
【0061】続いて、プロセス1の実行が開始され、領
域(A)と領域(C)内の数ページが物理フレーム上に
読み込まれて、対応するページテーブルエントリが有効
になったとする。ここで、有効化されたページテーブル
エントリに対応するページを含む領域(A),(C)が
アクティブ保護領域となる(図13)。
【0062】アクティブ保護領域は、ページテーブルに
関して1対1に作成され、アクティブ保護領域管理部に
よって保持される。
【0063】続いて、新たにプロセス2を生成する際
に、プロセス1のページテーブルを共有することを要求
して生成するケースを示す。
【0064】図14は、マップ時にプロセス2に設定さ
れるアクセス保護領域が領域(A),(C),(D)で
あることを示している。これらの状況をまとめた表を図
15に示す。
【0065】ここで、プロセス2の生成時に、プロセス
2がプロセス1と同じページテーブルを共有可能ならば
これを共有するよう要求されてプロセス2を生成する場
合の処理手順について、図16を参照して説明する。
【0066】プロセス生成部では、プロセス構造体の割
り当て、初期化などを行った後、ページテーブル管理部
を呼び出して、ページテーブル共有に関する許可の判定
を依頼する(S1501)。ページテーブル管理部で
は、ページテーブルの共有を要求されたプロセス1のア
クティブ保護領域リストをアクティブ保護領域情報取得
部より抽出し(S1502)、さらに、要求元であるプ
ロセス2のアクセス保護領域リストをアクセス保護領域
情報取得部より抽出する(S1503)。
【0067】次に、ページテーブル管理部は、これら抽
出した2つの情報を、システムあるいはユーザにより指
定されていた共有条件となる判定基準情報に基づき、ペ
ージテーブル共有化判定部により両者を比較する(S1
504)。具体的な前記判定基準情報の一例としては、
該アクセス保護領域範囲が該アクティブ保護領域範囲を
包含している場合(保護属性は一致するものとする)に
は共有する、ということなどが考えられる。例えば、図
15のような状況においては、プロセス1のアクティブ
保護領域A,Cをプロセス2がアクセス可能であり、且
つそれらアクティブ保護領域A,Cのアクセス保護属性
がプロセス1と2で同一であれば、共有化条件が満たさ
れることになる。また、プロセス2がプロセス1のアク
ティブ保護領域Cをアクセスできない場合、またはアク
ティブ保護領域Cに関するアクセス保護属性が異なる場
合であっても、そのアクティブ保護領域Cに対応するペ
ージを無効化すれば、アクセス保護の一貫性を保証した
状態でページテーブルを共有するような前記判定基準を
適用することもできる。
【0068】ページテーブル共有化がページテーブル共
有化判定部により許可されると、ページテーブル管理部
は、ページテーブル共有化実行部を呼び出し、実際に要
求元プロセス(プロセス2)のアクティブ保護領域リス
トとページテーブル先頭アドレス情報を要求先プロセス
(プロセス1)と共有化するための処理をする(S15
06)。
【0069】最後に、ページテーブル管理部は、ページ
テーブル割り当て終了後、制御をプロセス生成部に移
し、プロセス実行のために必要な準備を終了させ復帰す
る(S1509)。このときの共有状態(データ構造)
を図17に示す。
【0070】S1505において、共有化が許可されな
かった場合は、要求元プロセスで独自にページテーブル
を保持する必要があるために、新規ページテーブルの作
成、該プロセスとの対応付け、ページテーブルエントリ
の設定や必要に応じてページインなどが行なわれ(S1
507)。新たなアクティブ保護領域リストが要求元プ
ロセスに対して設定される(S1508)。
【0071】このように、本実施形態では、アクティブ
保護領域を導入し、現時点での一貫性を維持したままペ
ージテーブルの共有化を許可することによって、共有化
条件の緩和を実現し、共有化可能な機会を増加させてい
る。
【0072】条件が満たされない場合、共有化が認めら
れず、上記のように別のページテーブルを作成して、こ
れを新たにプロセス2が使用するか、もしくは、エラー
を返して戻るということになる。こうした共有化に失敗
した時の処理は、ページテーブルの共有化を要求してプ
ロセスの生成を行うシステムコールなどのセマンティク
スを、できる限り共有化をするが共有できない場合には
別のページテーブルを用意してプロセスを生成する、あ
るいは、共有化できなければプロセスを生成しないとい
うものにするかなどの方針の決め方に依存する。
【0073】本プロセス間仮想記憶制御機構では、プロ
セスに付随するアクセス保護領域情報に保持される範囲
以外の領域に対しても、その領域を参照しようとするプ
ロセスおよびそのプロセスとページテーブルを共有して
いる他のプロセスに対するアクセス許可が下りてさえい
れば、領域に対する参照は可能で、アクティブ保護領域
情報および各プロセスのアクセス保護領域情報にこの領
域に対応するエントリを追加して、一貫性を保証するこ
とが可能である。
【0074】なお、ここでは、共有対象ページテーブル
の指定に、既に生成されたプロセスを指定する手法をと
っているが、共有を要求するプロセス同士でグループを
形成し、このグループ識別子を指定させて共有化を図る
手法や、システムが自動的に共有可能なページテーブル
を探索し、生成しようとするプロセスすべてに対してペ
ージテーブル共有化を試行するという手法などがこの変
形として挙げられる。次に、第2の実施形態について説
明する。
【0075】処理の概要 実施形態1で共有化されたページテーブルは、各プロセ
ス間から実際に参照されるページ領域範囲がアクセス保
護の一貫性を崩さない限り継続して利用する事が出来
る。しかしながら、ページテーブル共有プロセスの内の
あるプロセス群においてはアクセスが許可されるが、他
のいずれかのプロセスにおいては許可でないような領域
をアクセスしようとする場合において、このままアクセ
スを許可して処理を継続すると、領域のアクセス保護を
保証できなくなってしまう。
【0076】そこで、ページテーブルを共有化した後に
こうしたアクセスが生じる際には、該アクセス要求を行
うプロセスからページテーブルの共有を解約させ、新た
に別のページテーブルを用意してこれを該プロセスが使
用するよう制御することによって、アクセス保護の一貫
性を保証するための機構を提供する。
【0077】こうしたページテーブル共有プロセス群か
らあるプロセスを分離させる時期は、実際にアクセス保
護の一貫性が維持できない参照が行われる時(ページフ
ォルト時に検知される)に行うという手法の他に、数通
り挙げることができる。
【0078】例えば、このページフォルト時以外に、シ
ステムコールなどによるユーザ指定時、またそれぞれの
契機に応じた併用も考えられる。
【0079】ここでは、まず、ページフォルト時にペー
ジテーブル共有プロセス群からのプロセスの分離の必要
性を判定する場合の分離処理について説明する。例え
ば、図18に示されているように、プロセス1が、その
プロセス1においてはアクセスが許可されるが、プロセ
ス2においては許可でない領域Eを参照することによっ
てページフォルトが発生すると、プロセス1がページテ
ーブル共有化グループから分離される。
【0080】以下、図19を参照して、ページフォルト
発生時の分離処理の具体的手順を説明する。
【0081】ページフォルトが発生(S1801)する
と、ページフォルトハンドラ内よりアクティブ保護リス
ト管理部を呼び出し、ページ参照元プロセス(実行中プ
ロセス)に付随のアクティブ保護領域リストを抽出する
(S1802)。これは、実行中プロセスのプロセス構
造体内属性であるアクティブ保護領域リスト管理用構造
体の取得に対応する。抽出した該リストからフォルト先
仮想アドレスが該リストによって保持される領域範囲に
含まれるかどうかが調査される(S1803)。これ
は、該リストの先頭エントリから、該エントリ内部属性
であるメモリセクションID先により識別されるメモリ
セクション領域構造体内の領域範囲情報(領域先頭/終
端アドレス)と該フォルト先仮想アドレスとを順次比較
することにより行われる。なお、該アクティブ保護領域
リスト用エントリは、それぞれ仮想アドレスの昇順に連
結しておき、直前に選択されたエントリをヒント情報と
して維持し、これから逐次検査するような探索の効率化
をはかっても良い。フォルト先仮想アドレスが該アクテ
ィブ保護領域リスト内の範囲に含まれると検知された場
合、対応するアクティブ保護領域リスト用エントリの保
護属性(メモリセクション領域構造体メンバよりキャッ
シュされたもの)と参照時の操作(read,writ
e,executeなど)からアクセス権を調査する
(S1804)。S1805にてアクセス許可されてい
ると判断された場合、ページテーブルエントリの設定な
ど(仮想/物理アドレス変換/保護属性設定、必要に応
じpage−in処理など)を行い(S1817)、復
帰する(S1819)。S1805にてアクセス許可さ
れていないと判断された場合、保護例外などのエラーを
返して(S1818)、復帰する(S1819)。S1
803にて、フォルト先アドレスが参照元プロセスのア
クティブ保護領域の範囲外であると検知された場合、該
プロセス付随のアクセス保護領域リストを抽出し(S1
806)、該アクセス保護領域リスト内にフォルト先仮
想アドレスを含むメモリセクション領域が含まれるかど
うか調べる(S1807)。これが含まれる場合には、
該メモリセクション領域に対応するアクセス保護領域リ
スト用エントリの保護属性(メモリセクション領域構造
体メンバよりキャッシュされたもの)と参照時の操作
(read,write,executeなど)からア
クセス権を調査する(S1808)。S1809におい
てアクセス許可されていると判定される場合、他のペー
ジテーブル共有プロセス全てによってアクセス保護領域
が共有されているかどうか調べる(S1810)。ペー
ジテーブル共有全プロセスから共有されている場合、ペ
ージテーブルエントリの設定などを行い、該プロセスの
アクティブ保護領域リストに該ページを含むメモリセク
ション領域対応エントリを追加/設定して(S181
7)、復帰する(S1819)。ページテーブル共有プ
ロセス全てから共有されていない場合、ページテーブル
を共有したままではアクセス保護の一貫性が維持できな
いため、該プロセス用に新たにページテーブルを作成す
るようページテーブル生成部に依頼し、必要であれば現
在使用中の共有ページテーブルの内容を複写し、該プロ
セスをページテーブル共有プロセス群から分離し、新た
に生成したページテーブルを該プロセスに付随させて、
ページテーブルエントリの設定などを行い(S181
1)、該プロセスのアクティブ保護領域リストに該ペー
ジを含むメモリセクション領域対応エントリを追加/設
定して(S1812)、復帰する(S1819)。
【0082】S1809にてアクセス許可されていない
と判定される場合、read,write,execu
teの組合せのいずれかで拒絶されているため、保護例
外などのエラーを返して(S1818)、復帰する(S
1819)。
【0083】S1817において、アクセス保護領域リ
スト内にフォルト先仮想アドレスが含まれない場合に
は、該フォルトページを含むメモリセクション領域情報
を管理するメモリセクション領域リストを抽出し(S1
813)、該メモリセクション領域管理用構造体メンバ
である、保護属性フラグ、対領域許可リスト、対領域不
許可リスト、対プロセス許可リスト、対プロセス不許可
リストより、該プロセスのアクセス権限を獲得する(S
1814)。これによりアクセス権が認められていれ
ば、該プロセスのアクセス保護領域リストに該ページを
含むメモリセクション領域対応エントリを設定、仮想ア
ドレスの昇順に挿入し、S1810へ制御を移す(S1
816)。S1815にてアクセス権が認められなけれ
ば、保護例外などのエラーを返して(S1818)。復
帰する(S1819)。なお、S1814によりアクセ
ス権限が未定と判定される場合には、アクセス禁止とす
る。
【0084】なお、上記のページテーブルエントリの仮
想/物理アドレス変換用に、図20に示すような「仮想
/物理アドレス変換共有マップ」のような多段化テーブ
ルを用いて、アドレス変換情報を効率的に保持すること
も考えられる。これは、従来の多段化ページテーブルと
同様な方式であり、仮想アドレスのページ識別部を2つ
に分け、前半をレベル1テーブル、後半をレベル2テー
ブル内のエントリへのオフセットとして使用する。各テ
ーブル内エントリには、図21に示されているように、
(物理アドレス/ページサイズ)が設定され、ページテ
ーブルのような保護属性は設定されない。かわりに、レ
ベル2テーブル内エントリ内の残りの数ビットに、対応
するメモリセクション領域構造体用識別子をキャッシュ
として設定して、再度、フォルト時の仮想アドレスから
該アドレスを含むメモリセクション情報を高速に検索す
るのに利用しても良い。
【0085】各プロセスに付随するページテーブル内の
エントリは、上記の「仮想/物理アドレス変換共有マッ
プ」の対応するエントリのアドレス変換情報が有効な場
合(物理ページフレーム内に対応ページが読み込まれて
いる場合)には、このエントリをコピーすることによ
り、高速に物理アドレス位置を設定することが出来る。
対応するエントリのアドレス変換情報が無効な場合、必
要に応じて、ページング処理が行われた後、仮想/物理
アドレス変換共有マップのエントリが設定され、これが
実行中のプロセス付随ページテーブル内の対応エントリ
内に複写されることになる。アドレス変換情報の設定
後、実行中プロセスの該メモリセクション領域へのアク
セス権をもとに、該ページテーブルエントリ内の保護属
性を設定することになる。
【0086】本実施形態では、アクセスを引き起こした
ひとつのプロセスのみがページテーブル共有プロセス群
から脱却する形態を例示しているが、この変形として、
該アクセスによってアクセス保護を失わない他のプロセ
スがいくつか存在する場合には、これらを伴って脱却す
ることも考えられる。この場合、脱却したプロセス群間
で新たにひとつのページテーブルが作成され共有される
ことになる。
【0087】また、本実施形態では、ページテーブル共
有プロセス群からの脱却の必要性に関して、ページフォ
ルトを契機に判定させていたが、このページテーブル共
有の解除を、プログラマによって明示的にシステムコー
ルなどを用いて要求することも容易に実現できる。この
場合、ページフォルト時の処理と異なる点は、(A)ペ
ージフォルト時におけるページフォルト発生、ページフ
ォルトハンドラ呼び出しが、システムコール要求、シス
テムコール処理に置き換わり、(B)OS内部での分離
判断処理が不要となり、必ず分離するよう処理されるこ
とにより、以降の処理は同様に実現することが可能であ
る。
【0088】次に、第3の実施形態について説明する。
【0089】ここでは、アドレス変換テーブルを共有す
るプロセス群が連続的に実行されるようなスケジューリ
ング方式が採用される。これにより、プロセス間切り替
えコストを大幅に低減させることができる。
【0090】すなわち、ページテーブルが共有されるプ
ロセス間では、ページテーブル切替え操作の必要は無い
ため、スケジューラのディスパッチ部に対して、プロセ
ス実行待ち行列から選択される次期実行プロセスに付随
するページテーブルが現在のものと等しいかどうか判定
し、同値の場合にはページテーブルを変更しないという
処理が行われる。実行中プロセスの実行コンテキスト退
避からスケジューリングにより選択された次期実行プロ
セスへのディスパッチまでの簡単な流れを図22に示
す。
【0091】プロセス切り換え時には、まずS2002
においてプロセス管理部のプロセス情報退避部によって
レジスタ情報などの実行コンテキストが退避され、スケ
ジューラ(プロセススケジューリング部)により実行待
ち行列から次期実行プロセスの選択などがスケジューリ
ングポリシーなどに応じて行なわれる(S2003)。
次に、実行中プロセスと選択されたプロセスとのページ
テーブル先頭アドレス情報を比較し、同値かどうか判定
する(S2004)。これが同値の場合には、選択プロ
セスのページテーブル先頭アドレス情報以外の実行コン
テキストの回復を行ない(S2005)、復帰する(S
2007)。S2004で同値でないと判定されれば、
選択プロセスのページテーブル先頭アドレスを特定ハー
ドウェアレジスタへ設定したりTLBフラッシュなどを
行なった(S2006)後、選択されたプロセスのペー
ジテーブル先頭アドレス情報を除いた実行コンテキスト
を回復させ(S2005)、復帰する(S2007)。
【0092】このページテーブルの継続利用によって、
ディスパッチ時には、ページテーブルの切り替えやTL
Bフラッシュが不要となる。更に、プロセス切替え後に
は、直前のプロセスが参照したページへの再アクセス時
に、該ページテーブルエントリが有効となっているペー
ジへの再アクセス時であれば、該ページテーブルエント
リがそのまま利用できるため、該エントリの再設定コス
トも不要となる。
【0093】また、本最適化方針は、任意のプロセス間
切替え時に適用することができ、優先度の異なるプロセ
ス間で次期実行プロセスが選択される場合にも適用可能
である。
【0094】また、次期実行プロセスを選択する際に同
じ優先度を持つプロセスが複数個存在するときは、その
中から直前に実行したプロセスと同じページテーブルを
持つプロセスがあれば、それをなるべく選択するように
制御することが好ましい。
【0095】この方針には、いくつかの変形が考えられ
る。(A)スケジューラが次期実行プロセス選択時に直
前に実行したプロセスと同じページテーブルを持つプロ
セスを実行待ち行列から順次探索する形式、(B)プロ
セス生成時やブロックされていたプロセスの再開時に優
先度の同じ実行待ち行列内でページテーブルを共有する
プロセスが存在する場合にその直後へプロセスエンティ
ティを配置しなるべく連続させる形式、(C)実行中の
プロセスがsleepしているプロセスをwakeup
させる際に対象プロセスが同じページテーブルを共有し
ている場合優先的に次期実行スレッドとして選択する形
式、などがある。これらを図示したものを図23に示
す。
【0096】上記の制御方式は、プロセス・エンティテ
ィの実行待ち行列内への登録時期、および、次期実行プ
ロセス選択時期に、各プロセス構造体付随のページテー
ブル先頭アドレスを、システム/プログラマによって指
定/規定されうる上記制御方針に基づき、比較/判定す
ることによって実現することが出来る。
【0097】ただし、これらのスケジューリング方針を
優先しすぎると、プロセスの飢餓や一部のプロセス群実
行への偏向を引き起こす可能性もあるため、時間的要因
などに応じてスケジューリングのための計算が行われる
必要がある。
【0098】次に、第4の実施形態について説明する。
【0099】ここでは、分散メモリ型(疎結合型)マル
チプロセッサシステム環境下で、アドレス変換テーブル
の共有可能なプロセス同士をなるべく同じプロセッサ上
で実行できるようなディスパッチが行われる。
【0100】図24に、第4の実施形態によるプロセス
生成時のプロセッサの割り付け処理手順を示す。
【0101】OSのプロセス管理部がプロセス生成要求
を受信する(S2201)と、プロセス生成部が呼び出
され、受信したプロセス生成要求に関してアドレス変換
テーブルの共有可能なプロセスが存在するプロセッサ上
へ配置されることを生成プロセス側が要求しているかど
うか検査する(S2202)。この要求は、プロセス生
成システムコールの引数内属性などを設定するなどして
プロセス生成側からOSに対して指示することにより可
能となる。
【0102】プロセス生成部では、上記の要求の指定が
検知されない場合、該プロセス生成元プロセッサ上での
プロセス生成処理を行なう(S2206,S220
8)。
【0103】一方、このS2202の判定において、該
テーブルの共有化要求の指定が検知される場合、該テー
ブル共有可能プロセス配置先プロセッサを探索するた
め、各プロセッサに対して探索依頼メッセージを送信す
る(S2203)。このメッセージ送信の手順として、
まず、プロセッサ生成元プロセッサに対して探索を行な
った後、検出できなかった場合に他のプロセッサに対す
る探索依頼を行なうようにしても良い。フローに戻っ
て、S2203の探索要求が各プロセッサに通知され、
該メッセージを受信した各プロセッサは該テーブル共有
可能プロセスが自プロセッサ内に存在するかどうか探索
する。この探索は、実施形態1に示したアドレス変換テ
ーブル共有化判定手順と同様に、生成プロセス側のアク
セス保護領域範囲と各プロセッサ内に格納されうる複数
のアクティブ保護領域範囲に関する情報を比較するなど
して処理することが可能である。
【0104】次に、探索要求元プロセッサは、各プロセ
ッサより返信される探索結果を受信し、アドレス変換テ
ーブル共有可能プロセスを保持するプロセッサが検出の
有無を判定する(S2204)。この判定処理の結果、
該プロセッサが検出されなければ、プロセス生成元プロ
セッサを選択し、このプロセッサ上のプロセス生成部に
生成プロセスの割り当て要求を生成部へ送信する。
【0105】S2204の処理で、該アドレス変換テー
ブル共有可能プロセスを保持するプロセッサが検出され
ると、検出されたプロセッサ(群)にプロセス生成元プ
ロセッサが含まれるかどうか調査する(S2205)。
含まれる場合は、生成プロセス元プロセッサを選択後
(S2206)、生成プロセスの割り当て要求を該生成
プロセス元プロセッサのプロセス生成部へ送信する(S
2208)。S2205で生成プロセス元プロセッサが
含まれない場合には、検出プロセッサ(群)から任意の
プロセッサを選択し(S2207)、該プロセッサ上の
プロセス生成部へ生成プロセス割り当て要求を送信する
(S2208)。該当するプロセッサが複数個検出され
た場合の選択方法は、いく通りが挙げられるが、最初に
返信があったもの、あるいは、プロセッサ使用率、物理
メモリの空き状態などを元にシステムやプログラマによ
って規定された選定基準に応じて適当なプロセッサを選
択することが考えられる。
【0106】上記の処理後、必要に応じて生成プロセス
の選択プロセッサに付随する局所メモリ上への、プロセ
ス情報、実行待ち行列エントリの配置処理が行われる。
【0107】このように、疎結合型マルチプロセッサシ
ステム環境下で、アドレス変換テーブルの共有可能なプ
ロセス同士をなるべく同じプロセッサ上で実行できるよ
うスケジューリングすることによって、記憶管理資源の
削減、キャッシュ効率の向上がはかれる。また、有効化
されたアドレス変換テーブルエントリの情報を利用して
アドレス変換テーブルの共有化が行われているため、あ
らかじめ参照先のページが該プロセッサに付随する局所
メモリに置かれている可能性が高いという特徴もある。
【0108】本実施形態では、プロセス生成時にプロセ
ッサへの配置の方法について述べたが、この応用例とし
て、システムが暗黙裏かつ定期的に各局所メモリ上のア
クティブ保護領域情報を調査し、あるアドレス変換テー
ブル共有可能なプロセスが複数プロセッサ上で配置され
ている状態を検出することによって、これらを一箇所の
局所メモリ上へ移送し、結果的にプロセスマイグレーシ
ョンを行うことも、本実施例を基にして比較的容易に実
現できる。
【0109】なお、以上の説明では、疎結合型マルチプ
ロセッサシステム環境下でのアドレス変換テーブル共有
可能プロセスのプロセッサ割り当て処理について説明し
たが、これを、各計算機ホストがネットワーク上に相互
接続された図3のような分散システム環境下で適用する
場合にも、基本的には疎結合タイプのマルチプロセッサ
と同等なメモリ配置形式となるため、一般性を失なうこ
となく実施形態4の制御機構により実現できる。
【0110】以上説明したように、この発明の実施形態
によれば、MMUを搭載し、ページングのアドレス変換
方式にページングテーブルを使用する仮想的記憶管理機
構を具備した計算機上で、単一の仮想記憶空間を提供
し、単一仮想記憶空間内に複数配置される領域に対し
て、各プロセス毎にアクセス可能領域範囲を設定できる
アクセス保護機構を提供するOSなどの基本ソフトウェ
ア構成において、各プロセスに付随するアドレス変換テ
ーブルにおいてて有効化されたエントリ情報に基づき有
効ページ領域の範囲を算出して、複数プロセス間で領域
に対するアクセス保護の一貫性を保証したアドレス変換
テーブル共有化の機会を増加させることにより、仮想記
憶空間管理用資源(ページテーブルやTLBなど)の削
減や、これに伴う物理メモリ収納可能領域サイズ(キャ
ッシュ率)の向上、アドレス変換テーブル共有化による
該アドレス変換テーブル数の減少によるアドレス変換テ
ーブル間一貫性制御のための変更通知頻度の低減、など
が可能になる。
【0111】また、アドレス変換テーブルを共有したま
まではアクセス保護の一貫性が保証できない領域への参
照が行われるまで、新たな別アドレス変換テーブルの作
成/新規アドレステーブルの該当プロセスへの対応づけ
時期を遅延することができる。
【0112】また、次期実行プロセスの選択、プロセス
実行待ち行列内でのプロセス・エンティティの配置を、
可能な限りアドレス変換テーブル共有プロセス群を検出
して、スケジューリング制御することにより、プロセス
切り替え時に生じるページテーブル切り替えTLBフラ
ッシュ回数の低下、共有アドレス変換テーブルの継続使
用によるキャッシュ率の向上、アドレス変換テーブルエ
ントリの再設定の回避、などが可能になる。
【0113】さらに、分散メモリ型(疎結合型)マルチ
プロセッサシステムにおいて、生成プロセスのアドレス
変換テーブル共有可能性に着目したプロセッサ割り当て
を行うことにより、各プロセッサの局所メモリごとに、
仮想記憶空間管理用資源の削減や、仮想記憶管理用情報
のプロセッサ間での一貫性制御通知頻度の低減、などが
可能となる。
【0114】なお、この発明は上述した各実施形態に限
定されるものではなく、その要旨を逸脱しない範囲で、
種々変形して実施することができる。
【0115】
【発明の効果】以上説明したように、この発明によれ
ば、単一仮想記憶空間を全てのプロセスで共有するシス
テムにおいて、プロセスそれぞれについてのアクセス保
護機能を保証しつつ、プロセス間でのアドレス変換テー
ブルの共有化可能性を十分に高められるようになり、信
頼性が高く、且つ記憶管理用資源、プロセス切り替え時
のコストの最小化を実現することが可能となる。
【図面の簡単な説明】
【図1】この発明の一実施形態に係る仮想記憶管理方法
が適用されるシングルプロセッサシステムの構成例を示
すブロック図。
【図2】この発明の一実施形態に係る仮想記憶管理方法
が適用されるマルチプロセッサシステムの第1の構成例
を示すブロック図。
【図3】この発明の一実施形態に係る仮想記憶管理方法
が適用されるマルチプロセッサシステムの第2の構成例
を示すブロック図。
【図4】同実施形態における実行プロセスとデータとの
関係の一例を示す図。
【図5】同実施形態における各プロセスとアクセス保護
領域範囲との関係の一例を示す図。
【図6】同実施形態の仮想記憶管理方法を実現するため
のOSの構成例を示すブロック図。
【図7】同実施形態の仮想記憶管理方法で使用されるプ
ロセス構造体の一例を示す図。
【図8】同実施形態の仮想記憶管理方法で使用されるア
クセス/アクティブ保護領域構造体の一例を示す図。
【図9】同実施形態の仮想記憶管理方法で使用されるア
クセス/アクティブ保護領域リスト用エントリの構成を
示す図。
【図10】同実施形態の仮想記憶管理方法で使用される
メモリセクション領域構造体エントリの構成を示す図。
【図11】同実施形態の仮想記憶管理方法で使用される
対領域および対プロセスの許可/不許可エントリの構成
を示す図。
【図12】同実施形態におけるプロセス1のアクセス保
護領域の配置を示す図。
【図13】同実施形態におけるプロセス1実行中のアク
ティブ保護領域の配置を示す図。
【図14】同実施形態におけるプロセス2のアクセス保
護領域の配置を示す図。
【図15】同実施形態におけるプロセス1,2間のアク
セス/アクティブ保護領域の関係を示す図。
【図16】同実施形態におけるプロセス指定によるペー
ジテーブル共有化の処理の手順を示すフローチャート。
【図17】同実施形態におけるプロセス2によるプロセ
ス1のアクティブ保護領域リストとページテーブルの共
有化例を示す図。
【図18】同実施形態においてプロセス1が領域(E)
を実行中にアクセスした後のアクティブ保護領域と各ア
クセス保護領域との状態を図。
【図19】同実施形態におけるページフォルト時におけ
るページテーブル共有化継続可能性の判定および分離時
の処理手順を示すフローチャート。
【図20】同実施形態における仮想/物理アドレス変換
共有マップと現実行プロセスのページテーブルとの関係
を示す図。
【図21】図20におけるページテーブルエントリの構
成を示す図。
【図22】同実施形態におけるページテーブル共有プロ
セス間でのディスパッチに対応したスケジューリングの
流れを示すフローチャート。
【図23】同実施形態におけるページテーブル共有プロ
セスに関するプロセス・エンティティの選択/配置例を
示す図。
【図24】同実施形態におけるプロセス生成時のプロセ
ッサの割り付け処理の手順を示すフローチャート。
【図25】従来の単一仮想記憶空間管理方法の一例を示
す図。
【図26】従来の単一仮想記憶空間管理方法の他の例を
示す図。
【符号の説明】
11…CPU、12…MMU、13…物理メモリ、14
…二次記憶、21…プロセス管理部、22…仮想記憶管
理部、23…ページテーブル管理部、24…メモリセク
ション領域管理部、25…保護領域管理部。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 計算機システム上で実行される複数のプ
    ロセスによって共有される単一の仮想記憶空間を利用
    し、ページングによる仮想記憶管理を行う仮想記憶管理
    方法において、 前記単一仮想記憶空間に配置され得る複数の領域の各々
    について、前記プロセス毎にアクセス可能な領域とその
    領域に対するアクセス保護の属性とを規定し、 あるプロセスのアクセス可能領域の中で物理メモリ内に
    現在読み込まれているページが属しているアクセス可能
    領域がアクセス可能で、且つその領域に対するアクセス
    保護属性が前記プロセスと同一のプロセスを検出し、 それらプロセス間で、仮想アドレスを物理アドレスに変
    換するためのアドレス変換テーブルを共有化させること
    を特徴とする仮想記憶管理方法。
  2. 【請求項2】 計算機システム上で実行される複数のプ
    ロセスによって共有される単一の仮想記憶空間を利用
    し、ページングによる仮想記憶管理を行う仮想記憶管理
    方法において、 前記単一仮想記憶空間に配置され得る複数の領域の各々
    について、前記プロセス毎にアクセス可能な領域とその
    領域に対するアクセス保護の属性とを規定し、 あるプロセスがアクセス可能な領域の中で現在物理メモ
    リ内に読み込まれているページが属しているアクセス可
    能領域がアクセス可能で、且つその領域に対するアクセ
    ス保護属性が前記プロセスと同一のプロセスを検出し、 それらプロセス間で、仮想アドレスを物理アドレスに変
    換するためのアドレス変換テーブルを共有化させ、 ページフォルトの発生によって、前記アドレス変換テー
    ブルを共有するプロセス間におけるアクセス保護の一貫
    性を保証できない新たな領域に属するページが前記物理
    メモリに読み込まれるとき、前記アドレス変換テーブル
    の共有化を解除することを特徴とする仮想記憶管理方
    法。
  3. 【請求項3】 計算機システム上で実行される複数のプ
    ロセスによって共有される単一の仮想記憶空間を利用
    し、ページングによる仮想記憶管理を行う仮想記憶管理
    方法において、 前記プロセス間で、仮想アドレスを物理アドレスに変換
    するためのアドレス変換テーブルを共有化させ、 前記アドレス変換テーブルを共有するプロセス群が連続
    的に実行されるようにスケジューリングすることを特徴
    とする仮想記憶管理方法。
  4. 【請求項4】 物理メモリを各々が有する複数のプロセ
    ッサから構成されるマルチプロセッサシステム上で実行
    される複数のプロセスによって共有される単一の仮想記
    憶空間を利用し、ページングによる仮想記憶管理を行う
    仮想記憶管理方法において、 生成プロセスとアドレス変換テーブルを共有可能なプロ
    セッサ上のプロセスを検出し、 そのプロセッサ上に前記生成プロセスを割り当てること
    を特徴とする仮想記憶管理方法。
JP00437296A 1996-01-12 1996-01-12 仮想記憶管理方法 Expired - Fee Related JP3557026B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP00437296A JP3557026B2 (ja) 1996-01-12 1996-01-12 仮想記憶管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP00437296A JP3557026B2 (ja) 1996-01-12 1996-01-12 仮想記憶管理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004125674A Division JP3828553B2 (ja) 2004-04-21 2004-04-21 仮想記憶管理方法

Publications (2)

Publication Number Publication Date
JPH09190380A true JPH09190380A (ja) 1997-07-22
JP3557026B2 JP3557026B2 (ja) 2004-08-25

Family

ID=11582545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00437296A Expired - Fee Related JP3557026B2 (ja) 1996-01-12 1996-01-12 仮想記憶管理方法

Country Status (1)

Country Link
JP (1) JP3557026B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213619A (ja) * 2003-04-22 2007-08-23 Internatl Business Mach Corp <Ibm> 共用仮想記憶を管理する方法および装置
JP2007226786A (ja) * 2006-02-23 2007-09-06 Internatl Business Mach Corp <Ibm> 別のプロセスのプロセス・ローカル・ストレージにアクセスする方法、装置、コンピュータ・プログラム、およびコンピュータ実装方法
JP2008525894A (ja) * 2004-12-22 2008-07-17 インテル・コーポレーション メディアメモリシステム
JP2011181095A (ja) * 2004-07-30 2011-09-15 Intel Corp アーキテクチャイベントの間のプロセッサリソースの保持
JP5612681B2 (ja) * 2010-05-24 2014-10-22 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、領域管理方法、及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213619A (ja) * 2003-04-22 2007-08-23 Internatl Business Mach Corp <Ibm> 共用仮想記憶を管理する方法および装置
JP2011181095A (ja) * 2004-07-30 2011-09-15 Intel Corp アーキテクチャイベントの間のプロセッサリソースの保持
JP2008525894A (ja) * 2004-12-22 2008-07-17 インテル・コーポレーション メディアメモリシステム
JP2007226786A (ja) * 2006-02-23 2007-09-06 Internatl Business Mach Corp <Ibm> 別のプロセスのプロセス・ローカル・ストレージにアクセスする方法、装置、コンピュータ・プログラム、およびコンピュータ実装方法
JP5612681B2 (ja) * 2010-05-24 2014-10-22 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、領域管理方法、及びプログラム

Also Published As

Publication number Publication date
JP3557026B2 (ja) 2004-08-25

Similar Documents

Publication Publication Date Title
EP3121731B1 (en) Memory management method and device
US10210092B1 (en) Managing cache access and streaming data
US6591355B2 (en) Distributed shared memory system with variable granularity
KR0170565B1 (ko) 메모리 관리 방법, 마이크로커널 구조 데이타 프로세싱 시스템, 운영 체제 퍼스낼리티 시스템 동작 방법, 퍼스낼리티 뉴트럴 서비스 프로그램 실행 방법 및 응용 프로그램 실행방법
JP3629406B2 (ja) メモリ・アクセス割込みを介してプロセッサをリセットする方法
US5251308A (en) Shared memory multiprocessor with data hiding and post-store
US6003123A (en) Memory system with global address translation
JP3914541B2 (ja) アドレスに基づいた処理制約のブロッキング
JP2008251036A (ja) 仮想記憶システムにおける物理メモリの割り振りをアプリケーションプログラムによって制御するアプリケーション・プログラミング・インターフェイス
JPH05127995A (ja) ローカルキヤツシユに共通のページ間の一貫性を確保する方法
EP0404560B1 (en) multiprocessor system and method
JP3828553B2 (ja) 仮想記憶管理方法
JP3557026B2 (ja) 仮想記憶管理方法
Wilkinson et al. Angel: A proposed multiprocessor operating system kernel
US20060230242A1 (en) Memory for multi-threaded applications on architectures with multiple locality domains
JP3485940B2 (ja) 仮想記憶制御装置及び方法
JPH0736713A (ja) プログラム実行管理装置
Appavoo et al. Memory management in k42
Krueger et al. Stealth: A liberal approach to distributed scheduling for networks of workstations
JP2001184242A (ja) キャッシュ制御方法および計算機システム
JPH0830512A (ja) スレッド制御方式
JPH07182298A (ja) 情報処理方法及び装置
JP2004133753A (ja) マルチ・プロセッサ・システムにおけるプログラムおよびディスパッチ方法
JPH0962522A (ja) 情報処理方法及び情報処理システム
Van Sciver et al. OSF/1 Virtual Memory Improvements

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

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040421

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040514

LAPS Cancellation because of no payment of annual fees