JPH04357540A - マップドファイル仮想記憶方式 - Google Patents
マップドファイル仮想記憶方式Info
- Publication number
- JPH04357540A JPH04357540A JP3111169A JP11116991A JPH04357540A JP H04357540 A JPH04357540 A JP H04357540A JP 3111169 A JP3111169 A JP 3111169A JP 11116991 A JP11116991 A JP 11116991A JP H04357540 A JPH04357540 A JP H04357540A
- Authority
- JP
- Japan
- Prior art keywords
- page
- secondary storage
- network
- file
- 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
- 238000003860 storage Methods 0.000 claims abstract description 163
- 238000000034 method Methods 0.000 claims description 48
- 238000013507 mapping Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 24
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【技術分野】本発明は、マップドファイル仮想記憶方式
に関し、より詳細には、ランダムアクセスが可能な二次
記憶装置及びネットワークにより他の任意のマシンにア
クセスできる装置を有するマシンにおいて、仮想空間へ
のアクセスを同一マシン及びネットワークで結合された
マシンの二次記憶へのアクセスへ自動的に変換すること
ができるマップドファイル仮想記憶方式に関する。
に関し、より詳細には、ランダムアクセスが可能な二次
記憶装置及びネットワークにより他の任意のマシンにア
クセスできる装置を有するマシンにおいて、仮想空間へ
のアクセスを同一マシン及びネットワークで結合された
マシンの二次記憶へのアクセスへ自動的に変換すること
ができるマップドファイル仮想記憶方式に関する。
【0002】
【従来技術】従来、外部記憶装置を備えたデータ処理シ
ステムでは、高性能のメモリ・マネジメント・ユニット
(MMU)、および再試行可能なマイクロ・プロセシン
グ・ユニット(MPU)の出現により、メモリ上の実/
仮想記憶空間を所定の大きさに分割したページと呼ばれ
る単位でのメモリの有無を検出し、その結果、メモリが
無い場合にはメモリ割付けを行って処理を再試行してい
た。
ステムでは、高性能のメモリ・マネジメント・ユニット
(MMU)、および再試行可能なマイクロ・プロセシン
グ・ユニット(MPU)の出現により、メモリ上の実/
仮想記憶空間を所定の大きさに分割したページと呼ばれ
る単位でのメモリの有無を検出し、その結果、メモリが
無い場合にはメモリ割付けを行って処理を再試行してい
た。
【0003】また、ミニコンクラスのコンピュータでは
、このようなハードウェアを用い、デマンド・ページド
・バーチャル・メモリという方式によって、実メモリよ
りも大きなプロセス(タスクあるいはジョブとも呼ぶ)
を実行していた。このような技術では、外部記憶装置に
対してアクセスする場合、アプリケーションレベルから
は明示的に外部記憶装置に対する入出力をプログラミン
グする必要があった。つまり、ユーザプログラムそのも
のに対しては、例えば、ミニコンピュータ用の会話型汎
用オペレーティング・システムであるUNIXや、大型
計算機のオペレーティング・システム(以下OSと略す
)では仮想化が行われているが、外部記憶装置そのもの
の仮想化は実現されていなかった。このため、外部記憶
装置に対するアクセスについては、プログラムが複雑に
なるという問題があった(以上のことは、特開平1−1
69555号公報の従来技術として記載されている。)
。
、このようなハードウェアを用い、デマンド・ページド
・バーチャル・メモリという方式によって、実メモリよ
りも大きなプロセス(タスクあるいはジョブとも呼ぶ)
を実行していた。このような技術では、外部記憶装置に
対してアクセスする場合、アプリケーションレベルから
は明示的に外部記憶装置に対する入出力をプログラミン
グする必要があった。つまり、ユーザプログラムそのも
のに対しては、例えば、ミニコンピュータ用の会話型汎
用オペレーティング・システムであるUNIXや、大型
計算機のオペレーティング・システム(以下OSと略す
)では仮想化が行われているが、外部記憶装置そのもの
の仮想化は実現されていなかった。このため、外部記憶
装置に対するアクセスについては、プログラムが複雑に
なるという問題があった(以上のことは、特開平1−1
69555号公報の従来技術として記載されている。)
。
【0004】この点を解決するために、例えば、特開平
1−169555号公報に「仮想記憶外部記憶装置」が
提案されている。この公報のものは、主記憶に対してリ
ード/ライトすることによりランダムアクセス可能な外
部記憶装置に対する入出力動作を自動的に行うことがで
きるようにするために、ユーザプログラムにより、上記
仮想記憶空間に対応して上記外部記憶装置に対しマッピ
ングを行う手段を備え、ユーザプログラムによって該仮
想記憶空間に対し、リード/ライトを行うことにより、
該外部記憶装置に対して自動的に入出力動作を行わせる
ものである。
1−169555号公報に「仮想記憶外部記憶装置」が
提案されている。この公報のものは、主記憶に対してリ
ード/ライトすることによりランダムアクセス可能な外
部記憶装置に対する入出力動作を自動的に行うことがで
きるようにするために、ユーザプログラムにより、上記
仮想記憶空間に対応して上記外部記憶装置に対しマッピ
ングを行う手段を備え、ユーザプログラムによって該仮
想記憶空間に対し、リード/ライトを行うことにより、
該外部記憶装置に対して自動的に入出力動作を行わせる
ものである。
【0005】すなわち、二次記憶上のファイルを、ユー
ザの仮想記憶空間にマッピングする手法であり、この方
法では、MMU(記憶管理機構)がページを管理するた
めのページテーブルのエントリに、マップする二次記憶
上のページのアドレスを記録することにより、ページフ
ォールトが起った時に、二次記憶装置は、同一マシン上
になければならない。つまり、ネットワークを介した他
のマシンに接続されたファイルをマッピングすることが
できないという問題点を有する。また、リード・オンリ
ー(read only)のページの共有は行なわれる
が、ページの整合性をとるためにリード/ライト(re
ad/write)可能であるページの共有はマップす
らもできない。 したがって、同一ページへのリード/ライト(read
/write)のマップ要求が起こった場合には、他の
マップが解放するまで待たなくてはならず、極めて処理
が遅くなるという問題点を有する。
ザの仮想記憶空間にマッピングする手法であり、この方
法では、MMU(記憶管理機構)がページを管理するた
めのページテーブルのエントリに、マップする二次記憶
上のページのアドレスを記録することにより、ページフ
ォールトが起った時に、二次記憶装置は、同一マシン上
になければならない。つまり、ネットワークを介した他
のマシンに接続されたファイルをマッピングすることが
できないという問題点を有する。また、リード・オンリ
ー(read only)のページの共有は行なわれる
が、ページの整合性をとるためにリード/ライト(re
ad/write)可能であるページの共有はマップす
らもできない。 したがって、同一ページへのリード/ライト(read
/write)のマップ要求が起こった場合には、他の
マップが解放するまで待たなくてはならず、極めて処理
が遅くなるという問題点を有する。
【0006】
【目的】本発明は、上述のごとき実情に鑑みてなされた
もので、自マシン及びネットワークを介した任意のマシ
ンの二次記憶上にあるファイルをマッピングし、ユーザ
がユーザの仮想空間へのアクセスを、二次記憶上のファ
イルへのアクセスに変換することにより、容易にアクセ
スができるようにすること、また、マップ時にリード/
ライト(read/write)のマップをしても、実
際に書き込みにいくページは少ない傾向があることを利
用し、リード・オンリー(read only)、リー
ド/ライト(read/write)を問わず同一ペー
ジへのマップ要求を受け、実際にそのページに書き込み
にいった時にはじめて、排他処理をすることにより、フ
ァイルの整合性を保つようにすること、さらに、データ
ベースシステム作成に不可欠なロック、アンロックの機
構を仮想記憶ユニットを利用することにより実現し、こ
のコマンドによって不必要なロックを減らし、また、ロ
ック時にもロックしたプロセスが実際にそのページにア
クセスするまでは複数のプロセスによるリードのみの共
有を許すことにより、複数のプロセスによるページの共
有度を高め処理効率をあげるようにしたマップドファイ
ル仮想記憶方式を提供することを目的としてなされたも
のである。
もので、自マシン及びネットワークを介した任意のマシ
ンの二次記憶上にあるファイルをマッピングし、ユーザ
がユーザの仮想空間へのアクセスを、二次記憶上のファ
イルへのアクセスに変換することにより、容易にアクセ
スができるようにすること、また、マップ時にリード/
ライト(read/write)のマップをしても、実
際に書き込みにいくページは少ない傾向があることを利
用し、リード・オンリー(read only)、リー
ド/ライト(read/write)を問わず同一ペー
ジへのマップ要求を受け、実際にそのページに書き込み
にいった時にはじめて、排他処理をすることにより、フ
ァイルの整合性を保つようにすること、さらに、データ
ベースシステム作成に不可欠なロック、アンロックの機
構を仮想記憶ユニットを利用することにより実現し、こ
のコマンドによって不必要なロックを減らし、また、ロ
ック時にもロックしたプロセスが実際にそのページにア
クセスするまでは複数のプロセスによるリードのみの共
有を許すことにより、複数のプロセスによるページの共
有度を高め処理効率をあげるようにしたマップドファイ
ル仮想記憶方式を提供することを目的としてなされたも
のである。
【0007】
【構成】本発明は、上記目的を達成するために、(1)
中央処理装置と、主記憶装置と、記憶管理機構と、I/
Oコントローラと、二次記憶装置と、ネットワークI/
Oコントローラとを備えたコンピュータシステムにおい
て、仮想空間のページを物理ページにマップするページ
テーブルと、ネットワークを介したホストのページをマ
ップするネットワークページテーブルと、自マシンの二
次記憶上のファイルページと該ファイルページを参照し
ているプログラムの数を含む参照カウンタテーブルとを
有し、ネットワークで結合された任意のマシンの二次記
憶上の任意のファイルをユーザの仮想記憶空間にマップ
し、ユーザの仮想記憶空間ヘのアクセスを自動的に二次
記憶装置へのアクセスへ変換すること、更には、(2)
ファイルをユーザの仮想記憶空間にマップする時に、複
数のプログラムが同時に同ページへ書き込むことがない
ように、前記参照カウンタテーブルの参照カウンタによ
り排他処理を行なうこと、或いは、(3)中央処理装置
と、主記憶装置と、記憶管理機構と、I/Oコントロー
ラと、二次記憶装置と、ネットワークI/Oコントロー
ラとを備えたコンピュータシステムにおいて、仮想空間
のページを物理ページにマップするページテーブルと、
ネットワークを介したホストのページをマップするネッ
トワークページテーブルと、二次記憶部のページを参照
しているページテーブルエントリである参照リストと、
二次記憶ページアドレスに対応する二次記憶ページテー
ブルとを有し、ネットワークで結合された任意のマシン
の二次記憶上の任意のファイルをユーザの仮想記憶空間
にマップし、ユーザの仮想記憶空間へのアクセスを自動
的に二次記憶装置へのアクセスへ変換し、複数のプログ
ラムが同一のページをリード/ライト(read/wr
ite)を問わずマップが可能で、実際のライト(wr
ite)時に排他処理を行ない、かつ、ページの整合性
を保つようにしたこと、或いは、(4)中央処理装置と
、主記憶装置と、記憶管理機構と、I/Oコントローラ
と、二次記憶装置と、ネットワークI/Oコントローラ
とを備えたコンピュータシステムにおいて、仮想空間の
ページを物理ページにマップするページテーブルと、ネ
ットワークを介したホストのページをマップするネット
ワークページテーブルと、二次記憶部のページを参照し
ているページテーブルエントリである参照リストと、二
次記憶ページアドレスに対応する二次記憶ページテーブ
ルとを有し、ネットワークで結合された任意のマシンの
二次記憶上の任意のファイルをユーザの仮想記憶空間に
マップし、ユーザの仮想記憶空間へのアクセスを自動的
に二次記憶装置へのアクセスへ変換し、ページ毎にファ
イルをロックまたはアンロックする機構を記憶管理機構
を利用して実現すること、更には、(5)仮想記憶ユニ
ットを利用して、ロックした後もロックしたプロセスが
実際に書き込みにいくまでは他のプロセスとリードのみ
のページの共有を可能とすることを特徴としたものであ
る。以下、本発明の実施例に基づいて説明する。
中央処理装置と、主記憶装置と、記憶管理機構と、I/
Oコントローラと、二次記憶装置と、ネットワークI/
Oコントローラとを備えたコンピュータシステムにおい
て、仮想空間のページを物理ページにマップするページ
テーブルと、ネットワークを介したホストのページをマ
ップするネットワークページテーブルと、自マシンの二
次記憶上のファイルページと該ファイルページを参照し
ているプログラムの数を含む参照カウンタテーブルとを
有し、ネットワークで結合された任意のマシンの二次記
憶上の任意のファイルをユーザの仮想記憶空間にマップ
し、ユーザの仮想記憶空間ヘのアクセスを自動的に二次
記憶装置へのアクセスへ変換すること、更には、(2)
ファイルをユーザの仮想記憶空間にマップする時に、複
数のプログラムが同時に同ページへ書き込むことがない
ように、前記参照カウンタテーブルの参照カウンタによ
り排他処理を行なうこと、或いは、(3)中央処理装置
と、主記憶装置と、記憶管理機構と、I/Oコントロー
ラと、二次記憶装置と、ネットワークI/Oコントロー
ラとを備えたコンピュータシステムにおいて、仮想空間
のページを物理ページにマップするページテーブルと、
ネットワークを介したホストのページをマップするネッ
トワークページテーブルと、二次記憶部のページを参照
しているページテーブルエントリである参照リストと、
二次記憶ページアドレスに対応する二次記憶ページテー
ブルとを有し、ネットワークで結合された任意のマシン
の二次記憶上の任意のファイルをユーザの仮想記憶空間
にマップし、ユーザの仮想記憶空間へのアクセスを自動
的に二次記憶装置へのアクセスへ変換し、複数のプログ
ラムが同一のページをリード/ライト(read/wr
ite)を問わずマップが可能で、実際のライト(wr
ite)時に排他処理を行ない、かつ、ページの整合性
を保つようにしたこと、或いは、(4)中央処理装置と
、主記憶装置と、記憶管理機構と、I/Oコントローラ
と、二次記憶装置と、ネットワークI/Oコントローラ
とを備えたコンピュータシステムにおいて、仮想空間の
ページを物理ページにマップするページテーブルと、ネ
ットワークを介したホストのページをマップするネット
ワークページテーブルと、二次記憶部のページを参照し
ているページテーブルエントリである参照リストと、二
次記憶ページアドレスに対応する二次記憶ページテーブ
ルとを有し、ネットワークで結合された任意のマシンの
二次記憶上の任意のファイルをユーザの仮想記憶空間に
マップし、ユーザの仮想記憶空間へのアクセスを自動的
に二次記憶装置へのアクセスへ変換し、ページ毎にファ
イルをロックまたはアンロックする機構を記憶管理機構
を利用して実現すること、更には、(5)仮想記憶ユニ
ットを利用して、ロックした後もロックしたプロセスが
実際に書き込みにいくまでは他のプロセスとリードのみ
のページの共有を可能とすることを特徴としたものであ
る。以下、本発明の実施例に基づいて説明する。
【0008】図1は、本発明によるマップドファイル仮
想記憶方式の一実施例を説明するための構成図で、図中
、1,11は中央処理装置(CPU)、1a,11aは
マイクロ・プロセシング・ユニット(MPU)、1b,
11bはメモリ・マネジメント・ユニット(記憶管理機
構:MMU)、2,12は主記憶装置、3,13はI/
O(入出力)コントローラ、4,14はネットワークI
/Oコントローラ、5,15は二次記憶装置、6はネッ
トワークである。
想記憶方式の一実施例を説明するための構成図で、図中
、1,11は中央処理装置(CPU)、1a,11aは
マイクロ・プロセシング・ユニット(MPU)、1b,
11bはメモリ・マネジメント・ユニット(記憶管理機
構:MMU)、2,12は主記憶装置、3,13はI/
O(入出力)コントローラ、4,14はネットワークI
/Oコントローラ、5,15は二次記憶装置、6はネッ
トワークである。
【0009】本発明は、主記憶装置2,12、メモリ・
マネジメント・ユニット(MMU)1b,11b、二次
記憶装置のI/Oコントローラ3,13、およびネット
ワークI/Oコントローラ4,14を備えており、ユー
ザが、二次記憶のファイルをマッピングできる手段、及
びユーザプログラムがマッピングしたファイルをアクセ
スできる手段を備えている。データ構造は、仮想空間の
ページを物理ページにマップするページテーブル、ネッ
シワークページテーブル、及び自マシンの二次記憶上の
ページのファイルページとそれを参照しているプログラ
ム(プロセス)の数を含む参照カウンタテーブルを有す
る。
マネジメント・ユニット(MMU)1b,11b、二次
記憶装置のI/Oコントローラ3,13、およびネット
ワークI/Oコントローラ4,14を備えており、ユー
ザが、二次記憶のファイルをマッピングできる手段、及
びユーザプログラムがマッピングしたファイルをアクセ
スできる手段を備えている。データ構造は、仮想空間の
ページを物理ページにマップするページテーブル、ネッ
シワークページテーブル、及び自マシンの二次記憶上の
ページのファイルページとそれを参照しているプログラ
ム(プロセス)の数を含む参照カウンタテーブルを有す
る。
【0010】図2はページテーブルのエントリを示す図
で、図中、vはバリッドビット、pは書き込みプロテク
トビット、rは参照ビット、mは変更ビット、nはネッ
トワークビット、adrはアドレスである。vはページ
が主記憶にある時にセットされる。pは書き込みに対し
てプロテクトされている時にセットされる。また、rは
、ページを参照した時にセットされ、mはページに書き
込をした時にセットされる。また、nはページが他のマ
シンの二次記憶にある場合にセットされる。
で、図中、vはバリッドビット、pは書き込みプロテク
トビット、rは参照ビット、mは変更ビット、nはネッ
トワークビット、adrはアドレスである。vはページ
が主記憶にある時にセットされる。pは書き込みに対し
てプロテクトされている時にセットされる。また、rは
、ページを参照した時にセットされ、mはページに書き
込をした時にセットされる。また、nはページが他のマ
シンの二次記憶にある場合にセットされる。
【0011】図3(a)〜(c)は、ページテーブルの
エントリの状態を示す図で、図3(a)はページが主記
憶にある時を示し、図3(b)はページが同一マシンの
二次記憶にある時を示し、図3(c)はページが他のマ
シンの二次記憶にある時を示す。ページが主記憶、同一
マシンの二次記憶、及び他のマシンの二次記憶にある場
合のページエントリの状態を示す。図3(a)の場合(
v=1で識別可能)には、nビットが不要なので、nビ
ットを含めてadrフィールドとしている。adrは物
理メモリアドレスのページフレーム番号である。図3(
b)の場合には、adrは二次記憶アドレスである。図
3(c)の場合には、adrのフィールドはネットワー
クページテーブルのエントリへのインデックスであり、
ポイントされるネットワークページテーブルのエントリ
に、ページの存在するホストアドレスと二次記憶のペー
ジアドレスが格納されている。
エントリの状態を示す図で、図3(a)はページが主記
憶にある時を示し、図3(b)はページが同一マシンの
二次記憶にある時を示し、図3(c)はページが他のマ
シンの二次記憶にある時を示す。ページが主記憶、同一
マシンの二次記憶、及び他のマシンの二次記憶にある場
合のページエントリの状態を示す。図3(a)の場合(
v=1で識別可能)には、nビットが不要なので、nビ
ットを含めてadrフィールドとしている。adrは物
理メモリアドレスのページフレーム番号である。図3(
b)の場合には、adrは二次記憶アドレスである。図
3(c)の場合には、adrのフィールドはネットワー
クページテーブルのエントリへのインデックスであり、
ポイントされるネットワークページテーブルのエントリ
に、ページの存在するホストアドレスと二次記憶のペー
ジアドレスが格納されている。
【0012】図4は、ネットワークページテーブルのエ
ントリを示す図である。hostはページを有するホス
トのアドレスである。adrは、そのホストの二次記憶
上でのページのアドレスである。図5は、参照カウンタ
テーブルのエントリを示す図である。adrは自マシン
の二次記憶上のページのアドレスである。cntは、a
drで示されるページを参照していルプログラムの数で
ある。これは、同一ページを複数のプログラムが書き込
まないように、排他処理するために利用される。
ントリを示す図である。hostはページを有するホス
トのアドレスである。adrは、そのホストの二次記憶
上でのページのアドレスである。図5は、参照カウンタ
テーブルのエントリを示す図である。adrは自マシン
の二次記憶上のページのアドレスである。cntは、a
drで示されるページを参照していルプログラムの数で
ある。これは、同一ページを複数のプログラムが書き込
まないように、排他処理するために利用される。
【0013】図6は、各データ構造を示す図で、図中、
21はホスト1のページテーブル、22は主記憶部、2
3はホスト1のネットワークページテーブル、24はホ
スト1の二次記憶部、25はホスト1の参照カウンタテ
ーブル、26はホスト10のページテーブル、27はホ
スト10のネットワークページテーブル、28はホスト
10の二次記憶部、29はホスト10の参照カウンタテ
ーブルである。これは、ホスト1はホスト10の二次記
憶のページアドレス3と自マシンの二次記憶のページア
ドレス1をマップし、ホスト10はホスト1の二次記憶
のページアドレス1と4をマップしている状態を示して
いる。
21はホスト1のページテーブル、22は主記憶部、2
3はホスト1のネットワークページテーブル、24はホ
スト1の二次記憶部、25はホスト1の参照カウンタテ
ーブル、26はホスト10のページテーブル、27はホ
スト10のネットワークページテーブル、28はホスト
10の二次記憶部、29はホスト10の参照カウンタテ
ーブルである。これは、ホスト1はホスト10の二次記
憶のページアドレス3と自マシンの二次記憶のページア
ドレス1をマップし、ホスト10はホスト1の二次記憶
のページアドレス1と4をマップしている状態を示して
いる。
【0014】まず、ユーザプログラムは、以下に示すよ
うなコマンドにより、ユーザの仮想空間にファイルをマ
ップする。 map_file(host_name,file_n
ame,file_address,length,a
ddress,read_or_write)host
_name:マップするファイルの実体があるホスト名
file_name:マップするファイル名(バスを含
む)file_address:上記のファイル内での
マップを開始する先頭アドレス length:マップする長さ address:ユーザ空間でのマップする先頭アドレ
スread_or_write:read onlyま
たはread/writeを指定する。
うなコマンドにより、ユーザの仮想空間にファイルをマ
ップする。 map_file(host_name,file_n
ame,file_address,length,a
ddress,read_or_write)host
_name:マップするファイルの実体があるホスト名
file_name:マップするファイル名(バスを含
む)file_address:上記のファイル内での
マップを開始する先頭アドレス length:マップする長さ address:ユーザ空間でのマップする先頭アドレ
スread_or_write:read onlyま
たはread/writeを指定する。
【0015】このコマンドの処理手順(ファイルのマッ
プ手順)を以下に示す。 step1;host_nameのホストにアクセス可
能であるか確認する。 step2;file_nameのファイルにアクセス
可能であるか確認する。 step3;file_address及びlengt
hで示される領域を包含し、ページ単位になるように、
各引数を丸める。 step4;file_name,file_addr
ess及びlengthより、二次記憶ページアドレス
を求める。
プ手順)を以下に示す。 step1;host_nameのホストにアクセス可
能であるか確認する。 step2;file_nameのファイルにアクセス
可能であるか確認する。 step3;file_address及びlengt
hで示される領域を包含し、ページ単位になるように、
各引数を丸める。 step4;file_name,file_addr
ess及びlengthより、二次記憶ページアドレス
を求める。
【0016】step5;read_or_write
がread/writeで、かつ、host_name
のホスト上の参照カウンタテーブルの上記憶二次記憶ペ
ージアドレスで示されるエントリが存在し、cntが1
以上の時は、他のプログラムが参照中であることを意味
するので、map_fileコマンドはエラーとなる。 参照カウンタテーブルによってページ毎の参照数を管理
し、上記のように同一ページを複数のプログラムが書き
込もうとした場合に、エラーとすることにより排他処理
を行なっている。 step6;host_nameのホスト上の参照カウ
ンタテーブルの二次記憶ページアドレスで示されるエン
トリが存在する(read onlyの時のみ)なら、
そのエントリのcntをカウントアップする。エントリ
がないなら、adrを設定し、cntが1であるエント
リを登録する。 step7;addressをページ単位になるように
丸める。
がread/writeで、かつ、host_name
のホスト上の参照カウンタテーブルの上記憶二次記憶ペ
ージアドレスで示されるエントリが存在し、cntが1
以上の時は、他のプログラムが参照中であることを意味
するので、map_fileコマンドはエラーとなる。 参照カウンタテーブルによってページ毎の参照数を管理
し、上記のように同一ページを複数のプログラムが書き
込もうとした場合に、エラーとすることにより排他処理
を行なっている。 step6;host_nameのホスト上の参照カウ
ンタテーブルの二次記憶ページアドレスで示されるエン
トリが存在する(read onlyの時のみ)なら、
そのエントリのcntをカウントアップする。エントリ
がないなら、adrを設定し、cntが1であるエント
リを登録する。 step7;addressをページ単位になるように
丸める。
【0017】step8;host_nameが自マシ
ンではない時には、ホストのホストアドレス及び二次記
憶中での上記ファイルのページアドレスを求め、ネット
ワークページテーブルに登録する。 step9;address及びlengthで示され
るユーザ空間のページテーブルのページテーブルエント
リを変更する。host_nameが自マシンの時は、
図3(b)のように、また、;host_nameが自
マシンではない時には、図3(c)のように変更する。 この処理によりマップは完了し、マップされたファイル
は、単にメモリのアクセスによって、アクセスが可能に
なる。
ンではない時には、ホストのホストアドレス及び二次記
憶中での上記ファイルのページアドレスを求め、ネット
ワークページテーブルに登録する。 step9;address及びlengthで示され
るユーザ空間のページテーブルのページテーブルエント
リを変更する。host_nameが自マシンの時は、
図3(b)のように、また、;host_nameが自
マシンではない時には、図3(c)のように変更する。 この処理によりマップは完了し、マップされたファイル
は、単にメモリのアクセスによって、アクセスが可能に
なる。
【0018】次にマップファイルへのアクセス時の処理
を図7にフローチャートで示す。ページを参照する時に
、MMUが物理アドレスを仮想アドレスに変換する。 MMUは仮想アドレスに対応するページテーブルのエン
トリを探し、vビットがセットされていれば、adrに
より物理アドレスに変換する。vビットがクリアされて
いれば、主記憶にページが存在していないということで
、ページフォールトが発生し、制御がオペレーティング
システムに移る。この時点がフローチャートの開始に対
応する。フローチャートに従って説明を加える。
を図7にフローチャートで示す。ページを参照する時に
、MMUが物理アドレスを仮想アドレスに変換する。 MMUは仮想アドレスに対応するページテーブルのエン
トリを探し、vビットがセットされていれば、adrに
より物理アドレスに変換する。vビットがクリアされて
いれば、主記憶にページが存在していないということで
、ページフォールトが発生し、制御がオペレーティング
システムに移る。この時点がフローチャートの開始に対
応する。フローチャートに従って説明を加える。
【0019】step1;ページの内容を持ってくるた
めの主記憶のページを確保するために、最近、参照され
ていないページ(まだ、一度も使われたことのないペー
ジを含む)を選択する(フリーリストからページを取り
出す)。 step2;前記step1において、選択されたペー
ジのPTEのmビットがクリアされていれば、後述する
step4以降を実行する。 step3;選択されたPTEのmビットがセットされ
ている場合には、以前、二次記憶から読み込まれてから
、内容が変化しているということなので、その内容を二
次記憶に書き戻す。 step4;選択されたページのPTEのvビットをク
リアし、同一マシンの二次記憶にページがあるなら、n
を1にする。また、nが0なら、adrに二次記憶にペ
ージアドレスをセットし、nが1なら、adrに対応す
るネットワークページテーブルのエントリへのポインタ
をセットする。
めの主記憶のページを確保するために、最近、参照され
ていないページ(まだ、一度も使われたことのないペー
ジを含む)を選択する(フリーリストからページを取り
出す)。 step2;前記step1において、選択されたペー
ジのPTEのmビットがクリアされていれば、後述する
step4以降を実行する。 step3;選択されたPTEのmビットがセットされ
ている場合には、以前、二次記憶から読み込まれてから
、内容が変化しているということなので、その内容を二
次記憶に書き戻す。 step4;選択されたページのPTEのvビットをク
リアし、同一マシンの二次記憶にページがあるなら、n
を1にする。また、nが0なら、adrに二次記憶にペ
ージアドレスをセットし、nが1なら、adrに対応す
るネットワークページテーブルのエントリへのポインタ
をセットする。
【0020】step5;ページフォールトが発生した
PTEのnビットが、1の時には、次のstep6以降
を、0の時には後述するstep8以降を実行する。 step6;ページフォールトが発生したPTEのad
rで示されるネットワークページテーブルのエントリを
見つける。 step7;ページの内容を、ネットワークページアド
レスのエントリのホストアドレスとページアドレスで示
されるホストの二次記憶から選択されたページに書き込
み、後述するstep9以降を実行する。 step8;ページフォールトが発生したPTEのad
rで示される二次記憶のページから選択されたページに
書き込む。 step9;ページフォールトが発生したPTEのvを
セットし、mをクリアする。ページの物理アドレスをa
drにセットする。そして、再度MMUに制御が戻りア
ドレス変換をする。
PTEのnビットが、1の時には、次のstep6以降
を、0の時には後述するstep8以降を実行する。 step6;ページフォールトが発生したPTEのad
rで示されるネットワークページテーブルのエントリを
見つける。 step7;ページの内容を、ネットワークページアド
レスのエントリのホストアドレスとページアドレスで示
されるホストの二次記憶から選択されたページに書き込
み、後述するstep9以降を実行する。 step8;ページフォールトが発生したPTEのad
rで示される二次記憶のページから選択されたページに
書き込む。 step9;ページフォールトが発生したPTEのvを
セットし、mをクリアする。ページの物理アドレスをa
drにセットする。そして、再度MMUに制御が戻りア
ドレス変換をする。
【0021】次に下記コマンドの処理手順(ファイルの
アンマップ手順)を以下に示す。 unmap_file(address,length
)length:アンマップする長さ address:ユーザ空間でのアンマップする先頭ア
ドレスstep1;address及びlengthで
示される領域を包含し、ページ単位になるように、各引
数を丸める。 step2;address及びlengthで示され
るページテーブルエントリのadrで示されるネットワ
ークページテーブルエントリのhostから、ホストア
ドレスと二次記憶アドレスを得る。
アンマップ手順)を以下に示す。 unmap_file(address,length
)length:アンマップする長さ address:ユーザ空間でのアンマップする先頭ア
ドレスstep1;address及びlengthで
示される領域を包含し、ページ単位になるように、各引
数を丸める。 step2;address及びlengthで示され
るページテーブルエントリのadrで示されるネットワ
ークページテーブルエントリのhostから、ホストア
ドレスと二次記憶アドレスを得る。
【0022】step3;ページテーブルエントリのm
ビットがセットされているなら、ページを上記ホストア
ドレスと二次記憶アドレスで示されるページに書き出す
。 step4;上記のホストアドレスで示されるホスト上
の参照カウンタテーブルのcntをカウントダウンする
。カウントダウンした結果、0になった場合には、その
エントリを削除する。 step5;上記のネットワークページテーブルエント
リを解放する。 step6;上記のページテーブルエントリのvビット
をクリアし、そのページをフリーリスト(使用中でない
ページのリスト)に加える。
ビットがセットされているなら、ページを上記ホストア
ドレスと二次記憶アドレスで示されるページに書き出す
。 step4;上記のホストアドレスで示されるホスト上
の参照カウンタテーブルのcntをカウントダウンする
。カウントダウンした結果、0になった場合には、その
エントリを削除する。 step5;上記のネットワークページテーブルエント
リを解放する。 step6;上記のページテーブルエントリのvビット
をクリアし、そのページをフリーリスト(使用中でない
ページのリスト)に加える。
【0023】図8は、本発明によるマップドファイル仮
想記憶方式の適用例を示す図で、図中、31はホスト1
、32はホスト2、33はホスト3、34はホスト4、
35はファイルA、36はファイルBである。一つのデ
ータを複数のホストで共有する場合に、本発明を利用で
きる。この場合、Prog1はHost1のFileA
のa領域を、Prog2はFileAのb領域を、Pr
og3はFileAのc領域をそれぞれマップしている
。さらに、Prog1はHost4のFileBのd領
域をマップしている。このように、容易にファイルを共
有することが可能であり、データベースシステムを容易
に構築することができる。
想記憶方式の適用例を示す図で、図中、31はホスト1
、32はホスト2、33はホスト3、34はホスト4、
35はファイルA、36はファイルBである。一つのデ
ータを複数のホストで共有する場合に、本発明を利用で
きる。この場合、Prog1はHost1のFileA
のa領域を、Prog2はFileAのb領域を、Pr
og3はFileAのc領域をそれぞれマップしている
。さらに、Prog1はHost4のFileBのd領
域をマップしている。このように、容易にファイルを共
有することが可能であり、データベースシステムを容易
に構築することができる。
【0024】図9は、本発明によるマップドファイル仮
想記憶方式の他の実施例を説明するためのページテーブ
ルのエントリを示す図で、図中、vはバリッドビット、
pは書き込みプロテクトビット、rは参照ビット、mは
変更ビット、rwはリード/ライト(read/wri
te)ビット、nはネットワークビット、adrはアド
レスである。なお、全体構成図は前述した図1と同じで
あるので説明は省略する。vはページが主記憶にある時
にセットされる。pは書き込みに対してプロテクトされ
ている時にセットされる。rはページを参照した時にセ
ットされる。mはページに書き込みをした時にセットさ
れる。rwは、マップ時のread_or_write
指定を示し、read onlyの時にセットされる。 nはページが他のマシンの二次記憶にある場合セットさ
れる。
想記憶方式の他の実施例を説明するためのページテーブ
ルのエントリを示す図で、図中、vはバリッドビット、
pは書き込みプロテクトビット、rは参照ビット、mは
変更ビット、rwはリード/ライト(read/wri
te)ビット、nはネットワークビット、adrはアド
レスである。なお、全体構成図は前述した図1と同じで
あるので説明は省略する。vはページが主記憶にある時
にセットされる。pは書き込みに対してプロテクトされ
ている時にセットされる。rはページを参照した時にセ
ットされる。mはページに書き込みをした時にセットさ
れる。rwは、マップ時のread_or_write
指定を示し、read onlyの時にセットされる。 nはページが他のマシンの二次記憶にある場合セットさ
れる。
【0025】図10(a)〜(c)は、ページテーブル
エントリの状態を示す図で、図10(a)はページが主
記憶にあるとき、図10(b)はページが同一マシンの
二次記憶にあるとき、図10(c)はページが他のマシ
ンの二次記憶にある時を示す。図3(a)〜(c)と異
なる点は、変更ビットmの次にリード/ライト(rea
d/write)rwビットが入っている点である。こ
の実施例におけるページテーブルエントリの状態は図4
と同じである。図11は、二次記憶ページテーブルエン
トリと参照リストセルを示す図ある。adrは自マシン
の二次記憶のページアドレスである。vはこの二次記憶
のページの内容が有効である時にセットされる。nex
tは、参照リストの先頭へのポインタである。参照リス
トは上記の二次記憶のページを参照しているPTEのリ
ストである。参照リストのセルのhostは、その二次
記憶のページを参照しているホストで、adrはそのホ
ストの対応するPTEのアドレスを示す。
エントリの状態を示す図で、図10(a)はページが主
記憶にあるとき、図10(b)はページが同一マシンの
二次記憶にあるとき、図10(c)はページが他のマシ
ンの二次記憶にある時を示す。図3(a)〜(c)と異
なる点は、変更ビットmの次にリード/ライト(rea
d/write)rwビットが入っている点である。こ
の実施例におけるページテーブルエントリの状態は図4
と同じである。図11は、二次記憶ページテーブルエン
トリと参照リストセルを示す図ある。adrは自マシン
の二次記憶のページアドレスである。vはこの二次記憶
のページの内容が有効である時にセットされる。nex
tは、参照リストの先頭へのポインタである。参照リス
トは上記の二次記憶のページを参照しているPTEのリ
ストである。参照リストのセルのhostは、その二次
記憶のページを参照しているホストで、adrはそのホ
ストの対応するPTEのアドレスを示す。
【0026】図12は、各データ構造を示す図で、図中
、41はページテーブル、42は主記憶部、43はネッ
トワークページテーブル、44は二次記憶部、45は二
次記憶ページテーブル、46は参照リスト、47はペー
ジテーブル、48はネットワークページテーブル、49
はホスト10の二次記憶部、50は二次記憶ページテー
ブルである。これは、ホスト1はホスト10の二次記憶
のページアドレス3と自マシンの二次記憶のページアド
レス1をマップし、ホスト10はホスト1の二次記憶の
ページアドレス1と4をマップしている状態を示してい
る。
、41はページテーブル、42は主記憶部、43はネッ
トワークページテーブル、44は二次記憶部、45は二
次記憶ページテーブル、46は参照リスト、47はペー
ジテーブル、48はネットワークページテーブル、49
はホスト10の二次記憶部、50は二次記憶ページテー
ブルである。これは、ホスト1はホスト10の二次記憶
のページアドレス3と自マシンの二次記憶のページアド
レス1をマップし、ホスト10はホスト1の二次記憶の
ページアドレス1と4をマップしている状態を示してい
る。
【0027】マップ時にはread only、rea
d/writeを問わず、PTEによってマッピングさ
れる。ただし、read/writeが指定された時に
もPTEのプロテクトビットをセットする。実際にその
ページへreadアクセスにいった時には、まだ、メモ
リ上のページの内容はないので、ページフォールトが起
こり二次記憶から読み込み、readアクセスを再開す
る。また、writeアクセスをした場合は、まずペー
ジフォールトが起こり二次記憶から読み込む。次にプロ
テクトフォールトが起こり、二次記憶の内容を無効にし
、さらに、共有してコピーされているページも無効にす
る。writeアクセスをしている間は、他のプロセス
がreadまたはwriteアクセスできないようにロ
ックされる。これによって、ファイルの整合性をとるこ
とが可能である。
d/writeを問わず、PTEによってマッピングさ
れる。ただし、read/writeが指定された時に
もPTEのプロテクトビットをセットする。実際にその
ページへreadアクセスにいった時には、まだ、メモ
リ上のページの内容はないので、ページフォールトが起
こり二次記憶から読み込み、readアクセスを再開す
る。また、writeアクセスをした場合は、まずペー
ジフォールトが起こり二次記憶から読み込む。次にプロ
テクトフォールトが起こり、二次記憶の内容を無効にし
、さらに、共有してコピーされているページも無効にす
る。writeアクセスをしている間は、他のプロセス
がreadまたはwriteアクセスできないようにロ
ックされる。これによって、ファイルの整合性をとるこ
とが可能である。
【0028】この実施例における手順を以下に示す。ま
ず、ューザプログラムは、以下に示すようなコマンドに
より、ューザの仮想空間にファイルをマップする。 map_file(host_name,file_n
ame,file_address,length,a
ddress,read_or_write)host
_name:マップするファイルの実体があるホスト名
file_name:マップするファイル名(バスを含
む)file_address:上記のファイル内での
マップを開始する先頭アドレス length:マップする長さ address:ユーザ空間でのマップする先頭アドレ
スread_or_write:read onlyま
たはread/writeを指定する。
ず、ューザプログラムは、以下に示すようなコマンドに
より、ューザの仮想空間にファイルをマップする。 map_file(host_name,file_n
ame,file_address,length,a
ddress,read_or_write)host
_name:マップするファイルの実体があるホスト名
file_name:マップするファイル名(バスを含
む)file_address:上記のファイル内での
マップを開始する先頭アドレス length:マップする長さ address:ユーザ空間でのマップする先頭アドレ
スread_or_write:read onlyま
たはread/writeを指定する。
【0029】このコマンドの処理手順(ファイルのマッ
プ手順)を以下に示す。 step1;host_nameのホストにアクセス可
能であるか確認する。 step2;file_nameのファイルにアクセス
可能であるか確認する。 step3;file_address及びlengt
hで示される領域を包含し、ページ単位になるように、
各引数を丸める。 step4;file_name,file_addr
ess及びlengthより、host_nameで示
されるホスト上の二次記憶ページアドレスを求める。 step5;host_nameが自マシンではない時
には、ホストのホストアドレス及び二次記憶中でのペー
ジアドレスを求め、ネットワークページテーブルに登録
する。 step6;address及びlengthで示され
るユーザ空間のページテーブルのページテーブルエント
リを変更する。host_nameが自マシンの時は、
図3(b)の形式になり、v=0,r=0,p=1,m
=0,n=0とセットし、adrには、二次記憶のペー
ジアドレスをセットする。read_or_write
がread onlyの時には、1をread/wri
teの時には0をrwにセットする。また、host_
nameが自マシンではない時は、図3(c)の形式と
なり、v=0,r=0,p=1,m=0,n=1とセッ
トし、adrには、上記で登録したネットワークページ
テーブルエントリへのアドレスをセットする。read
_or_writeがread onlyの時には、1
をread/writeの時には0をrwにセットする
この処理によりマップは完了し、マップされたファイル
は、単にメモリのアクセスによって、アクセスが可能に
なる。
プ手順)を以下に示す。 step1;host_nameのホストにアクセス可
能であるか確認する。 step2;file_nameのファイルにアクセス
可能であるか確認する。 step3;file_address及びlengt
hで示される領域を包含し、ページ単位になるように、
各引数を丸める。 step4;file_name,file_addr
ess及びlengthより、host_nameで示
されるホスト上の二次記憶ページアドレスを求める。 step5;host_nameが自マシンではない時
には、ホストのホストアドレス及び二次記憶中でのペー
ジアドレスを求め、ネットワークページテーブルに登録
する。 step6;address及びlengthで示され
るユーザ空間のページテーブルのページテーブルエント
リを変更する。host_nameが自マシンの時は、
図3(b)の形式になり、v=0,r=0,p=1,m
=0,n=0とセットし、adrには、二次記憶のペー
ジアドレスをセットする。read_or_write
がread onlyの時には、1をread/wri
teの時には0をrwにセットする。また、host_
nameが自マシンではない時は、図3(c)の形式と
なり、v=0,r=0,p=1,m=0,n=1とセッ
トし、adrには、上記で登録したネットワークページ
テーブルエントリへのアドレスをセットする。read
_or_writeがread onlyの時には、1
をread/writeの時には0をrwにセットする
この処理によりマップは完了し、マップされたファイル
は、単にメモリのアクセスによって、アクセスが可能に
なる。
【0030】次にマップファイルへのアクセス時の処理
を示す。ページを参照する時に、MMUが物理アドレス
を仮想アドレスに変換する。MMUは仮想アドレスに対
応するページテーブルのエントリを探し、vビットがセ
ットされていれば、adrにより物理アドレスに変換す
る。vビットがクリアされていれば、主記憶にページが
存在していないことを意味し、ページフォールトが発生
し、制御がオペレーティングシステムに移る。この時点
からの処理を以下に示す。
を示す。ページを参照する時に、MMUが物理アドレス
を仮想アドレスに変換する。MMUは仮想アドレスに対
応するページテーブルのエントリを探し、vビットがセ
ットされていれば、adrにより物理アドレスに変換す
る。vビットがクリアされていれば、主記憶にページが
存在していないことを意味し、ページフォールトが発生
し、制御がオペレーティングシステムに移る。この時点
からの処理を以下に示す。
【0031】step1;ページの内容を持ってくるた
めの主記憶のページを確保するために、最近、参照され
ていないページ(まだ、一度も使われたことのないペー
ジを含む)を選択する(フリーリストからページを取り
出す)。 step2;前記step1で選択されたページのPT
Eのmビットがクリアされていれば、前記step4以
降を実行する。 step3;選択されたPTEのmビットがセットされ
ている場合には、以前、二次記憶から読み込まれてから
、内容が変化していることを意味し、その内容を二次記
憶に書き戻すために以下の処理をする。 (a)上記PTEのnビットが1の時には、adrで示
されるネットワークページテーブルのエントリを引き、
サーバホスト(二次記憶にそのページを持つホスト)と
二次記憶ページアドレスを得る。 (b)上記PTEのnビットが0の時には、自ホストを
サーバホストとしPTEのadrを二次記憶ページアド
レスとする。 (c)ページテーブルエントリのmビットがセットされ
ているなら、ページをサーバホスト上の二次記憶ページ
アドレスで示されるページに書き出し、上記二次記憶ペ
ージアドレスに対応する二次記憶ページテーブルエント
リのvビットを0にする。 (d)上記二次記憶ページアドレスに対応する二次記憶
ページテーブルエントリのリストから上記PTEのセル
を削除し、その結果そのエントリのセルが一つもなけれ
ば、そのエントリを削除する。 (e)上記のネットワークページテーブルエントリを解
放する。
めの主記憶のページを確保するために、最近、参照され
ていないページ(まだ、一度も使われたことのないペー
ジを含む)を選択する(フリーリストからページを取り
出す)。 step2;前記step1で選択されたページのPT
Eのmビットがクリアされていれば、前記step4以
降を実行する。 step3;選択されたPTEのmビットがセットされ
ている場合には、以前、二次記憶から読み込まれてから
、内容が変化していることを意味し、その内容を二次記
憶に書き戻すために以下の処理をする。 (a)上記PTEのnビットが1の時には、adrで示
されるネットワークページテーブルのエントリを引き、
サーバホスト(二次記憶にそのページを持つホスト)と
二次記憶ページアドレスを得る。 (b)上記PTEのnビットが0の時には、自ホストを
サーバホストとしPTEのadrを二次記憶ページアド
レスとする。 (c)ページテーブルエントリのmビットがセットされ
ているなら、ページをサーバホスト上の二次記憶ページ
アドレスで示されるページに書き出し、上記二次記憶ペ
ージアドレスに対応する二次記憶ページテーブルエント
リのvビットを0にする。 (d)上記二次記憶ページアドレスに対応する二次記憶
ページテーブルエントリのリストから上記PTEのセル
を削除し、その結果そのエントリのセルが一つもなけれ
ば、そのエントリを削除する。 (e)上記のネットワークページテーブルエントリを解
放する。
【0032】step4;選択されたページのPTEの
vビットをクリアする。 step5;フォールトを起こしたPTEのnビットが
、1の時にはネッシワークページエントリからPTEの
adrで示されるエントリを求め、そのhostをサー
バホストとし、二次記憶ページアドレスを得る。 step6;フォールトを起こしたPTEのnビットが
、0の時には自マシンをサーバホストとし、PTEから
二次記憶ページアドレスを得る。 step7;サーバホスト上の二次記憶ページテーブル
のページアドレスのエントリがある時に、そのvビット
が0なら、vビットが1になるまでブロックする。 step8;サーバホスト上の二次記憶ページテーブル
上に二次記憶ページアドレスで示されるエントリが存在
するなら、フォールトを起こしたPTEを示すセルをリ
ストに追加する。エントリがないなら、エントリを生成
しフォールトを起こしたPTEを示すセルを加える。 step9;サーバホスト上の二次記憶ページアドレス
で示されるページを選択されたページに書き込む。 step10;ページフォールトが発生したPTEのv
をセットし、mをクリアする。ページの物理アドレスを
adrにセットする。そして、再度MMUに制御が戻り
アドレス変換をする。
vビットをクリアする。 step5;フォールトを起こしたPTEのnビットが
、1の時にはネッシワークページエントリからPTEの
adrで示されるエントリを求め、そのhostをサー
バホストとし、二次記憶ページアドレスを得る。 step6;フォールトを起こしたPTEのnビットが
、0の時には自マシンをサーバホストとし、PTEから
二次記憶ページアドレスを得る。 step7;サーバホスト上の二次記憶ページテーブル
のページアドレスのエントリがある時に、そのvビット
が0なら、vビットが1になるまでブロックする。 step8;サーバホスト上の二次記憶ページテーブル
上に二次記憶ページアドレスで示されるエントリが存在
するなら、フォールトを起こしたPTEを示すセルをリ
ストに追加する。エントリがないなら、エントリを生成
しフォールトを起こしたPTEを示すセルを加える。 step9;サーバホスト上の二次記憶ページアドレス
で示されるページを選択されたページに書き込む。 step10;ページフォールトが発生したPTEのv
をセットし、mをクリアする。ページの物理アドレスを
adrにセットする。そして、再度MMUに制御が戻り
アドレス変換をする。
【0033】また、PTEのpビットがセットされてい
る時には、そのページはreadしかできないが、その
ページにwriteしようとしたときには、プロテクト
フォールトが起こり、制御がオペレーティングシステム
に移る。 これを利用しread/writeでマップした時にも
p=1とし、実際にそのページに書き込む時にプロテク
トフォールトが起こり、その時点で排他処理をしている
。その処理を以下に示す。
る時には、そのページはreadしかできないが、その
ページにwriteしようとしたときには、プロテクト
フォールトが起こり、制御がオペレーティングシステム
に移る。 これを利用しread/writeでマップした時にも
p=1とし、実際にそのページに書き込む時にプロテク
トフォールトが起こり、その時点で排他処理をしている
。その処理を以下に示す。
【0034】step1;フォールトを起こしたPTE
のrwビットが0の時には、真のプロテクションフォー
ルトであり、この処理を中断する。 step2;フォールトを起こしたPTEのnビットが
1の時には、adrで示されるネットワークページテー
ブルのエントリを求め、サーバホストと二次記憶ページ
アドレスを得る。 step3;フォールトを起こしたPTEのnビットが
0の時には、自ホストをサーバホストとしPTEのad
rを二次記憶ページアドレスとする。 step4;上記ネットワークページテーブルのpビッ
トが0の時には、ネットワークページテーブルエントリ
のhostの二次記憶ページテーブルからページアドレ
スで示されるエントリを求める。 step5;上記二次記憶ページテーブルエントリのv
ビットが0の時には、vビットが1になるまでブロック
する。 step6;上記二次記憶ページテーブルエントリのv
ビットが1の時には、vビットをクリアする。 step7;上記二次記憶ページテーブルエントリのア
ドレスでリンクされるリストのセルで示されるホスト上
のページテーブルのPTEのvビットをクリアする。 step8;フォールトを起こしたPTEのpビットを
クリアし、mビットをセットする。
のrwビットが0の時には、真のプロテクションフォー
ルトであり、この処理を中断する。 step2;フォールトを起こしたPTEのnビットが
1の時には、adrで示されるネットワークページテー
ブルのエントリを求め、サーバホストと二次記憶ページ
アドレスを得る。 step3;フォールトを起こしたPTEのnビットが
0の時には、自ホストをサーバホストとしPTEのad
rを二次記憶ページアドレスとする。 step4;上記ネットワークページテーブルのpビッ
トが0の時には、ネットワークページテーブルエントリ
のhostの二次記憶ページテーブルからページアドレ
スで示されるエントリを求める。 step5;上記二次記憶ページテーブルエントリのv
ビットが0の時には、vビットが1になるまでブロック
する。 step6;上記二次記憶ページテーブルエントリのv
ビットが1の時には、vビットをクリアする。 step7;上記二次記憶ページテーブルエントリのア
ドレスでリンクされるリストのセルで示されるホスト上
のページテーブルのPTEのvビットをクリアする。 step8;フォールトを起こしたPTEのpビットを
クリアし、mビットをセットする。
【0035】次に下記コマンドの処理手順(ファイルの
アンマップ手順)を以下に示す。 unmap_file(address,length
)length:アンマップする長さ address:ユーザ空間でのアンマップする先頭ア
ドレスstep1;address及びlengthで
示される領域を包含し、ページ単位になるように、各引
数を丸める。 step2;address及びlengthで示され
るPTEを得る。 step3;上記PTEのnビットが1の時には、ad
rで示されるネットワークテーブルのエントリを引き、
サーバホストと二次記憶ページアドレスを得る。 step4;上記PTEのnビットが0の時には、自ホ
ストをサーバホストとしPTEのadrを二次記憶ペー
ジアドレスとする。 step5;ページテーブルエントリのmビットがセッ
トされているなら、ページをサーバホスト上の二次記憶
ページアドレスで示されるページに書き出し、上記二次
記憶ページアドレスに対応する二次記憶ページテーブル
エントリのvビットを0にする。 step6;上記二次記憶アドレスに対応する二次記憶
ページテーブルエントリのリストから上記PTEのセル
を削除し、その結果そのエントリのセルが一つもなけれ
ば、そのエントリを削除する。 step7;上記のネットワークページテーブルエント
リを解放する。 step8;上記のページテーブルエントリのvビット
をクリアし、そのページをフリーリスト(使用中でない
ページのリスト)に加える。
アンマップ手順)を以下に示す。 unmap_file(address,length
)length:アンマップする長さ address:ユーザ空間でのアンマップする先頭ア
ドレスstep1;address及びlengthで
示される領域を包含し、ページ単位になるように、各引
数を丸める。 step2;address及びlengthで示され
るPTEを得る。 step3;上記PTEのnビットが1の時には、ad
rで示されるネットワークテーブルのエントリを引き、
サーバホストと二次記憶ページアドレスを得る。 step4;上記PTEのnビットが0の時には、自ホ
ストをサーバホストとしPTEのadrを二次記憶ペー
ジアドレスとする。 step5;ページテーブルエントリのmビットがセッ
トされているなら、ページをサーバホスト上の二次記憶
ページアドレスで示されるページに書き出し、上記二次
記憶ページアドレスに対応する二次記憶ページテーブル
エントリのvビットを0にする。 step6;上記二次記憶アドレスに対応する二次記憶
ページテーブルエントリのリストから上記PTEのセル
を削除し、その結果そのエントリのセルが一つもなけれ
ば、そのエントリを削除する。 step7;上記のネットワークページテーブルエント
リを解放する。 step8;上記のページテーブルエントリのvビット
をクリアし、そのページをフリーリスト(使用中でない
ページのリスト)に加える。
【0036】上述したマップドファイル仮想記憶方式で
は、複数のプロセスからリード/ライト(read/w
rite)によるマップが可能で、実際にライト(wr
ite)する時に排他処理をするが、一度ライト(wr
ite)とするとそのページをアンマップするまでペー
ジをロックすることになり、ロックされている時間が不
必要に長くなるという問題点がある。また、リード(r
ead)した値によってその直後にライト(write
)する値が異なるようなプログラムは、その区間ファイ
ルをロックする必要があるが、ユーザが明示的にこのよ
うなファイルのロックをすることができないという場合
がある。
は、複数のプロセスからリード/ライト(read/w
rite)によるマップが可能で、実際にライト(wr
ite)する時に排他処理をするが、一度ライト(wr
ite)とするとそのページをアンマップするまでペー
ジをロックすることになり、ロックされている時間が不
必要に長くなるという問題点がある。また、リード(r
ead)した値によってその直後にライト(write
)する値が異なるようなプログラムは、その区間ファイ
ルをロックする必要があるが、ユーザが明示的にこのよ
うなファイルのロックをすることができないという場合
がある。
【0037】この点を解決するために、以下に説明する
ような本発明の他の実施例によればよい。この実施例は
、主記憶装置、記憶管理機構(MMU)、二次記憶装置
のI/OコントローラおよびネットワークI/Oコント
ローラを備えており、ユーザが、二次記憶のファイルを
マッピングできる手段、及びユーザプログラムがマッピ
ングしたファイルをアクセスできる手段を備える装置に
おいて、ページをロック、アンロックする方式及びロッ
ク後も書き込みが行なわれるまでリード(read)の
みの共有が可能であるための、プロテクトフォールト時
のマップドファイル仮想記憶方式について説明する。ペ
ージテーブルエントリには、図13のようにk(ロック
ビット)を追加する。これはそのページテーブルエント
リで示されるページが自プロセスによってロック中であ
ることを示す。他の構成は前述したマップドファイル仮
想記憶方式と同じである。
ような本発明の他の実施例によればよい。この実施例は
、主記憶装置、記憶管理機構(MMU)、二次記憶装置
のI/OコントローラおよびネットワークI/Oコント
ローラを備えており、ユーザが、二次記憶のファイルを
マッピングできる手段、及びユーザプログラムがマッピ
ングしたファイルをアクセスできる手段を備える装置に
おいて、ページをロック、アンロックする方式及びロッ
ク後も書き込みが行なわれるまでリード(read)の
みの共有が可能であるための、プロテクトフォールト時
のマップドファイル仮想記憶方式について説明する。ペ
ージテーブルエントリには、図13のようにk(ロック
ビット)を追加する。これはそのページテーブルエント
リで示されるページが自プロセスによってロック中であ
ることを示す。他の構成は前述したマップドファイル仮
想記憶方式と同じである。
【0038】以下のコマンドにより、明示的にページ毎
のロックをする。 map_lock(address,length)a
ddress:ユーザ空間でのロックする先頭アドレス
length:ロックする長さ このコマンドの処理手順を以下に示す。 step1:file_address及びlengt
hで示される領域を包含し、ページ単位になるように、
各引数を丸める。 step2:上記addressとlengthで示さ
れるページテーブルエントリのnビットが1の時には、
adrで示されるネットワークページテーブルのエント
リを求め、サーバホストと二次記憶ページアドレスを得
る。 step3:上記addressとlengthでペー
ジテーブルエントリのnビットが0の時には、自ホスト
をサーバホストとしPTEのadrを二次記憶ページア
ドレスとする。 step4:上記二次記憶ページテーブルエントリのv
ビットが0の時には、vビットが1になるまでブロック
し、1になったら新たに0にする。後述するstep6
以降を実行する。 step5:上記二次記憶ページテーブルエントリのv
ビットが1の時には、vビットを0にする。 step6:ページテーブルエントリのkビットを1に
する。
のロックをする。 map_lock(address,length)a
ddress:ユーザ空間でのロックする先頭アドレス
length:ロックする長さ このコマンドの処理手順を以下に示す。 step1:file_address及びlengt
hで示される領域を包含し、ページ単位になるように、
各引数を丸める。 step2:上記addressとlengthで示さ
れるページテーブルエントリのnビットが1の時には、
adrで示されるネットワークページテーブルのエント
リを求め、サーバホストと二次記憶ページアドレスを得
る。 step3:上記addressとlengthでペー
ジテーブルエントリのnビットが0の時には、自ホスト
をサーバホストとしPTEのadrを二次記憶ページア
ドレスとする。 step4:上記二次記憶ページテーブルエントリのv
ビットが0の時には、vビットが1になるまでブロック
し、1になったら新たに0にする。後述するstep6
以降を実行する。 step5:上記二次記憶ページテーブルエントリのv
ビットが1の時には、vビットを0にする。 step6:ページテーブルエントリのkビットを1に
する。
【0039】次にファイルのアンロックについて説明す
る。 map_unlock(address,length
)length:アンロックする長さ address:ユーザ空間でのロックする先頭アドレ
スこのコマンドの処理手順を以下に示す。 step1:address及びlengthで示され
る領域を包含し、ページ単位になるように、各引数を丸
める。 step2:address及びlengthで示され
るページテーブルエントリを得る。 step3:上記ページテーブルエントリのnビットが
1の時には、adrで示されるネットワークページテー
ブルのエントリを引き、サーバホストと二次記憶ページ
アドレスを得る。 step4:上記ページテーブルエントリのnビットが
0の時には、自ホストをサーバホストとしページテーブ
ルエントリのadrを二次記憶ページアドレスとする。 step5:ページテーブルエントリのmビットがセッ
トされているなら、ページをサーバホスト上の二次記憶
ページアドレスで示されるページに書き出し、上記二次
記憶ページアドレスに対応する二次記憶ページテーブル
エントリのvビットを1にする。 step6:pビットを1に、kビットを0にする。
る。 map_unlock(address,length
)length:アンロックする長さ address:ユーザ空間でのロックする先頭アドレ
スこのコマンドの処理手順を以下に示す。 step1:address及びlengthで示され
る領域を包含し、ページ単位になるように、各引数を丸
める。 step2:address及びlengthで示され
るページテーブルエントリを得る。 step3:上記ページテーブルエントリのnビットが
1の時には、adrで示されるネットワークページテー
ブルのエントリを引き、サーバホストと二次記憶ページ
アドレスを得る。 step4:上記ページテーブルエントリのnビットが
0の時には、自ホストをサーバホストとしページテーブ
ルエントリのadrを二次記憶ページアドレスとする。 step5:ページテーブルエントリのmビットがセッ
トされているなら、ページをサーバホスト上の二次記憶
ページアドレスで示されるページに書き出し、上記二次
記憶ページアドレスに対応する二次記憶ページテーブル
エントリのvビットを1にする。 step6:pビットを1に、kビットを0にする。
【0040】ロックをしても実際にそのページに書き込
みをするまでは、リード(read)のみの共有が可能
なように次の処理をする。書き込み可能ページはpビッ
トがセットされており、実際に書き込みに行った場合に
は、プロテクションフォールトが起こる。その時点で、
共有するページをインバリッドにし、共有できなくする
。その処理を以下に示す。 step1:フォールトを起こしたページテーブルエン
トリのrwビットが0の時には、真のプロテクションフ
ォールトであり、この処理を中断する。 step2:フォールトを起こしたページテーブルエン
トリのnビットが1の時には、adrで示されるネット
ワーページテーブルのエントリを求め、サーバホストと
二次記憶ページアドレスを得る。 step3:フォールトを起こしたページテーブルエン
トリのnビットが0の時には、自ホストをサーバホスト
としページテーブルエントリのadrを二次記憶ページ
アドレスとする。 step4:ページテーブルエントリのkビットが0で
、かつ上記二次記憶ページテーブルエントリのvビット
が0の時には、vビットが1になるまでブロックし、1
になったら新たに0にする。 step5:上記二次記憶ページテーブルエントリのア
ドレスでリングされるリストのセルで示されるホスト上
のページテーブルのPTEのvビットをクリアする。 step6:フォールトを起こしたPTEのpビットを
クリアし、mビットをセットする。
みをするまでは、リード(read)のみの共有が可能
なように次の処理をする。書き込み可能ページはpビッ
トがセットされており、実際に書き込みに行った場合に
は、プロテクションフォールトが起こる。その時点で、
共有するページをインバリッドにし、共有できなくする
。その処理を以下に示す。 step1:フォールトを起こしたページテーブルエン
トリのrwビットが0の時には、真のプロテクションフ
ォールトであり、この処理を中断する。 step2:フォールトを起こしたページテーブルエン
トリのnビットが1の時には、adrで示されるネット
ワーページテーブルのエントリを求め、サーバホストと
二次記憶ページアドレスを得る。 step3:フォールトを起こしたページテーブルエン
トリのnビットが0の時には、自ホストをサーバホスト
としページテーブルエントリのadrを二次記憶ページ
アドレスとする。 step4:ページテーブルエントリのkビットが0で
、かつ上記二次記憶ページテーブルエントリのvビット
が0の時には、vビットが1になるまでブロックし、1
になったら新たに0にする。 step5:上記二次記憶ページテーブルエントリのア
ドレスでリングされるリストのセルで示されるホスト上
のページテーブルのPTEのvビットをクリアする。 step6:フォールトを起こしたPTEのpビットを
クリアし、mビットをセットする。
【0041】
【効果】以上の説明から明らかなように、本発明による
と、以下のような効果がある。 (1)ネッワークを介したホスト上のファイルをユーザ
空間にマッピングすることにより、ユーザがネットワー
クを介した他のホスト上のファイルを容易にアクセスで
きる。 (2)マシン内の二次記憶だけではなく、ネットワーク
を介したマシンの二次記憶上のファイルもユーザの仮想
記憶にマップでき、しかも、排他処理によりファイルの
一貫性を保っているので、分散データベースシステムを
簡単に構築することができる。 (3)リード/ライト(read/write)のペー
ジの共有時の排他処理を実際のライト(write)ア
クセス時にすることにより共有度を高め処理速度を向上
し、しかも、ファイルの整合性を保つことが可能である
。 (4)仮想記憶ユニットを利用したファイルのページ単
位のロック、アンロック機構をユーザに提供することに
より、ユーザが不必要なロックを減らすことができ、ま
た、プロセスがロックしても実際に書き込みにいくまで
リード(read)のみのページ共有が可能なことによ
り、ページの共有度を高め分散データベースシステムに
おいて処理効率をあげることが可能である。
と、以下のような効果がある。 (1)ネッワークを介したホスト上のファイルをユーザ
空間にマッピングすることにより、ユーザがネットワー
クを介した他のホスト上のファイルを容易にアクセスで
きる。 (2)マシン内の二次記憶だけではなく、ネットワーク
を介したマシンの二次記憶上のファイルもユーザの仮想
記憶にマップでき、しかも、排他処理によりファイルの
一貫性を保っているので、分散データベースシステムを
簡単に構築することができる。 (3)リード/ライト(read/write)のペー
ジの共有時の排他処理を実際のライト(write)ア
クセス時にすることにより共有度を高め処理速度を向上
し、しかも、ファイルの整合性を保つことが可能である
。 (4)仮想記憶ユニットを利用したファイルのページ単
位のロック、アンロック機構をユーザに提供することに
より、ユーザが不必要なロックを減らすことができ、ま
た、プロセスがロックしても実際に書き込みにいくまで
リード(read)のみのページ共有が可能なことによ
り、ページの共有度を高め分散データベースシステムに
おいて処理効率をあげることが可能である。
【図1】 本発明によるマップドファイル仮想記憶表
示方式の一実施例を説明するための構成図である。
示方式の一実施例を説明するための構成図である。
【図2】 ページテーブルエントリを示す図である。
【図3】 ページテーブルエントリの状態を示す図で
ある。
ある。
【図4】 ネットワークページテーブルエントリを示
す図である。
す図である。
【図5】 参照カウンタテーブルエントリを示す図で
ある。
ある。
【図6】 データ構造を示す図である。
【図7】 マップファイルへのアクセス時の処理を示
すフローチャートである。
すフローチャートである。
【図8】 本発明の適用例を示す図である。
【図9】 ページテーブルエントリ(PTE)の他の
例を示す図である。
例を示す図である。
【図10】 ページテーブルエントリの状態の他の例
を示す図である。
を示す図である。
【図11】 二次記憶ページテーブルエントリ及び参
照リストセルを示す図である。
照リストセルを示す図である。
【図12】 データ構造の他の例を示す図である。
【図13】 ページテーブルエントリ(PTE)の更
に他の例を示す図である。
に他の例を示す図である。
1,11…中央処理装置(CPU)、1a,11a…マ
イクロ・プロセシング・ユニット(MPU)、1b,1
1b…メモリ・マネジメント・ユニット(MMU)、2
,12…主記憶装置、3,13…I/O(入出力)コン
トローラ、4,14…ネットワークI/Oコントローラ
、5,15…二次記憶装置、6…ネットワーク。
イクロ・プロセシング・ユニット(MPU)、1b,1
1b…メモリ・マネジメント・ユニット(MMU)、2
,12…主記憶装置、3,13…I/O(入出力)コン
トローラ、4,14…ネットワークI/Oコントローラ
、5,15…二次記憶装置、6…ネットワーク。
Claims (5)
- 【請求項1】 中央処理装置と、主記憶装置と、記憶
管理機構と、I/Oコントローラと、二次記憶装置と、
ネットワークI/Oコントローラとを備えたコンピュー
タシステムにおいて、仮想空間のページを物理ページに
マップするページテーブルと、ネットワークを介したホ
ストのページをマップするネットワークページテーブル
と、自マシンの二次記憶上のファイルページと該ファイ
ルページを参照しているプログラムの数を含む参照カウ
ンタテーブルとを有し、ネットワークで結合された任意
のマシンの二次記憶上の任意のファイルをユーザの仮想
記憶空間にマップし、ユーザの仮想記憶空間ヘのアクセ
スを自動的に二次記憶装置へのアクセスへ変換すること
を特徴とするマップドファイル仮想記憶方式。 - 【請求項2】 ファイルをユーザの仮想記憶空間にマ
ップする時に、複数のプログラムが同時に同ページへ書
き込むことがないように、前記参照カウンタテーブルの
参照カウンタにより排他処理を行なうことを特徴とする
請求項1記載のマップドファイル仮想記憶方式。 - 【請求項3】 中央処理装置と、主記憶装置と、記憶
管理機構と、I/Oコントローラと、二次記憶装置と、
ネットワークI/Oコントローラとを備えたコンピュー
タシステムにおいて、仮想空間のページを物理ページに
マップするページテーブルと、ネットワークを介したホ
ストのページをマップするネットワークページテーブル
と、二次記憶部のページを参照しているページテーブル
エントリである参照リストと、二次記憶ページアドレス
に対応する二次記憶ページテーブルとを有し、ネットワ
ークで結合された任意のマシンの二次記憶上の任意のフ
ァイルをユーザの仮想記憶空間にマップし、ユーザの仮
想記憶空間へのアクセスを自動的に二次記憶装置へのア
クセスへ変換し、複数のプログラムが同一のページをリ
ード/ライトを問わずマップが可能で、実際のライト時
に排他処理を行ない、かつ、ページの整合性を保つよう
にしたことを特徴とするマップドファイル仮想記憶方式
。 - 【請求項4】 中央処理装置と、主記憶装置と、記憶
管理機構と、I/Oコントローラと、二次記憶装置と、
ネットワークI/Oコントローラとを備えたコンピュー
タシステムにおいて、仮想空間のページを物理ページに
マップするページテーブルと、ネットワークを介したホ
ストのページをマップするネットワークページテーブル
と、二次記憶部のページを参照しているページテーブル
エントリである参照リストと、二次記憶ページアドレス
に対応する二次記憶ページテーブルとを有し、ネットワ
ークで結合された任意のマシンの二次記憶上の任意のフ
ァイルをユーザの仮想記憶空間にマップし、ユーザの仮
想記憶空間へのアクセスを自動的に二次記憶装置へのア
クセスへ変換し、ページ毎にファイルをロックまたはア
ンロックする機構を記憶管理機構を利用して実現するこ
とを特徴とするマップドファイル仮想記憶方式。 - 【請求項5】 仮想記憶ユニットを利用して、ロック
した後もロックしたプロセスが実際に書き込みにいくま
では他のプロセスとリードのみのページの共有を可能と
することを特徴とする請求項4記載のマップドファイル
仮想記憶方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3111169A JPH04357540A (ja) | 1991-03-28 | 1991-04-16 | マップドファイル仮想記憶方式 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9131291 | 1991-03-28 | ||
JP3-91312 | 1991-03-28 | ||
JP3111169A JPH04357540A (ja) | 1991-03-28 | 1991-04-16 | マップドファイル仮想記憶方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04357540A true JPH04357540A (ja) | 1992-12-10 |
Family
ID=26432773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3111169A Pending JPH04357540A (ja) | 1991-03-28 | 1991-04-16 | マップドファイル仮想記憶方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04357540A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100831488B1 (ko) * | 2005-01-14 | 2008-05-22 | 인텔 코오퍼레이션 | 가상 머신 시스템에서의 물리적 메모리 가상화 |
US8296546B2 (en) | 2006-08-15 | 2012-10-23 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
-
1991
- 1991-04-16 JP JP3111169A patent/JPH04357540A/ja active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9164920B2 (en) | 2005-01-14 | 2015-10-20 | Intel Corporation | Using permission bits in translating guests virtual addresses to guest physical addresses to host physical addresses |
US10114767B2 (en) | 2005-01-14 | 2018-10-30 | Intel Corporation | Virtualizing physical memory in a virtual machine system using a hierarchy of extended page tables to translate guest-physical addresses to host-physical addresses |
US8533428B2 (en) | 2005-01-14 | 2013-09-10 | Intel Corporation | Translating a guest virtual address to a host physical address as guest software executes on a virtual machine |
KR100831488B1 (ko) * | 2005-01-14 | 2008-05-22 | 인텔 코오퍼레이션 | 가상 머신 시스템에서의 물리적 메모리 가상화 |
US9262338B1 (en) | 2006-08-15 | 2016-02-16 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US9122624B2 (en) | 2006-08-15 | 2015-09-01 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US8949571B2 (en) | 2006-08-15 | 2015-02-03 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US9251094B2 (en) | 2006-08-15 | 2016-02-02 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US8601233B2 (en) | 2006-08-15 | 2013-12-03 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US9298640B2 (en) | 2006-08-15 | 2016-03-29 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US9298641B2 (en) | 2006-08-15 | 2016-03-29 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US9330021B2 (en) | 2006-08-15 | 2016-05-03 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US9372807B2 (en) | 2006-08-15 | 2016-06-21 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US9372806B2 (en) | 2006-08-15 | 2016-06-21 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US9678890B2 (en) | 2006-08-15 | 2017-06-13 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US8296546B2 (en) | 2006-08-15 | 2012-10-23 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
US10747682B2 (en) | 2006-08-15 | 2020-08-18 | Intel Corporation | Synchronizing a translation lookaside buffer with an extended paging table |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3491520B1 (en) | Controlling access to pages in a memory in a computing device | |
JP4237190B2 (ja) | 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム | |
US9430402B2 (en) | System and method for providing stealth memory | |
US6493816B1 (en) | Method and apparatus for encapsulating address translation for shared persistent virtual storage | |
US9218302B2 (en) | Page table management | |
JP3102495B2 (ja) | 仮想記憶管理方法 | |
US6490671B1 (en) | System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system | |
JP5581403B2 (ja) | メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納 | |
JP2986075B2 (ja) | ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム | |
JP5071798B2 (ja) | 計算機システム,メモリ管理方法,およびそのプログラム | |
US20180032443A1 (en) | Controlling Access to Pages in a Memory in a Computing Device | |
JPS60221851A (ja) | メモリ・アクセス・コントローラを具えるデータ処理装置 | |
JPH05143453A (ja) | 分散キヤツシユの階層無効化方法 | |
JP2005158040A (ja) | 変換索引バッファのレイジー・フラッシング | |
JPH05233458A (ja) | コンピュータシステムのメモリ管理装置 | |
JPH05127995A (ja) | ローカルキヤツシユに共通のページ間の一貫性を確保する方法 | |
CN112241310B (zh) | 页表管理、信息获取方法、处理器、芯片、设备及介质 | |
JP2002268933A (ja) | クラスタシステム | |
US8892810B2 (en) | Semiconductor device and memory protection method | |
US8006055B2 (en) | Fine granularity hierarchiacal memory protection | |
WO2024099448A1 (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
KR100443320B1 (ko) | 메모리 저장 장치를 관리하기 위한 시스템 및 방법과, 컴퓨터 판독가능한 기록 매체 | |
CN116680233A (zh) | 一种文件访问方法、系统、电子设备及机器可读存储介质 | |
JP2829115B2 (ja) | ファイル共用方法 | |
JPH04357540A (ja) | マップドファイル仮想記憶方式 |