(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスにデータを記憶する方法であって、
前記コンピューティングデバイスのコンピュータに、
前記コンピューティングデバイスのページング不能カーネルメモリ上に、前記コンピューティングデバイスにおいて予め定められたコマンドを用いて、メモリファイルシステムを作成するステップと、
前記メモリファイルシステムが作成された前記カーネルメモリに、前記コンピューティングデバイスで用いられるデータを記憶させるステップと、
前記カーネルメモリに記憶されたデータを、前記コンピューティングデバイス上で実行されているユーザプロセスに割り当てられたページング可能メモリ空間へ転送するステップと
を実行させ、
前記データは、前記メモリファイルシステムの属性情報を示すメタデータを含み、
前記転送するステップは、前記カーネルメモリに記憶されたデータのうち、前記メタデータ以外のデータを、前記ユーザプロセスに割り当てられたページング可能メモリ空間へ転送する
方法。
【請求項２】
前記メタデータは、スーパーブロック、シリンダグループまたはｉｎｏｄｅデータ
を含む請求項１に記載の方法。
【請求項３】
前記コンピュータに、
前記コンピューティングデバイスにおいて予め定められたコマンドを用いて、前記ユーザプロセスを生成し、前記生成したユーザプロセスに対して、前記ページング可能メモリ空間を割り当てるステップ
をさらに実行させる請求項１に記載の方法。
【請求項４】
前記メモリファイルシステムを作成するステップは、
バッファキャッシュによって占有されるメモリ上に、ＵＮＩＸ（登録商標）ファイルシステムを作成する
請求項１に記載の方法。
【請求項５】
前記メモリファイルシステムを作成するステップは、
ＭｅｍＦＳマウントコマンドを使用して、ＵＮＩＸ（登録商標）ファイルシステムを作成する
請求項１に記載の方法。
【請求項６】
前記バッファキャッシュメモリの他の部分の使用データとは別個の前記メモリファイルシステムに関する前記使用データを保持すること
をさらに含む請求項４に記載の方法。
【請求項７】
前記ページング可能メモリ空間へ転送された前記メモリファイルシステムのデータファイルのマッピングを保持すること
をさらに含む請求項１に記載の方法。
【請求項８】
前記メモリファイルシステムが生成された前記カーネルメモリに記憶されているデータが所定のしきい値に達することに応答して、前記記憶されたデータを、前記ページング可能メモリ空間へ転送すること
をさらに含む請求項１に記載の方法。
【請求項９】
前記記憶されたデータを前記ページング可能メモリ空間へ転送するステップは、
このデータが、前記メモリファイルシステムの複数の最長時間未使用ページのうちの１つを含むときに実行される
請求項１に記載の方法。
【請求項１０】
前記データが、前記ページング可能メモリ空間へ転送されると、このデータのページングを阻止すること
をさらに含む請求項１に記載の方法。
【請求項１１】
前記メモリファイルシステムを、前記ページング不能カーネルメモリから除去すること
をさらに含む請求項１に記載の方法。
【請求項１２】
前記データは、テンポラリファイルデータ
を含む請求項１に記載の方法。
【請求項１３】
コンピューティングデバイスにデータを記憶させるプログラムであって、
前記コンピューティングデバイスのコンピュータに、
前記コンピューティングデバイスのページング不能カーネルメモリ上に、前記コンピューティングデバイスにおいて予め定められたコマンドを用いて、メモリファイルシステムを作成するステップと、
前記メモリファイルシステムが作成された前記カーネルメモリに、前記コンピューティングデバイスで用いられるデータを記憶させるステップと、
前記カーネルメモリに記憶されたデータを、前記コンピューティングデバイス上で実行されているユーザプロセスに割り当てられたページング可能メモリ空間へ転送するステップと
を実行させ、
前記データは、前記メモリファイルシステムの属性情報を示すメタデータを含み、
前記転送するステップは、前記カーネルメモリに記憶されたデータのうち、前記メタデータ以外のデータを、前記ユーザプロセスに割り当てられたページング可能メモリ空間へ転送する
プログラム。
【請求項１４】
前記メモリファイルシステムを作成するステップは、
バッファキャッシュによって占有されるメモリ上に、ＵＮＩＸ（登録商標）ファイルシステムを作成する
請求項１３に記載のプログラム。
【請求項１５】
前記メモリファイルシステムが生成された前記カーネルメモリに記憶されているデータが所定のしきい値に達することに応答して、前記記憶されたデータを、前記ページング可能メモリ空間へ転送すること
をさらに含む請求項１３に記載のプログラム。
【請求項１６】
前記記憶されたデータを前記ページング可能メモリ空間へ転送するステップは、
このデータが、前記メモリファイルシステムの複数の最長時間未使用ページのうちの１つを含むときに実行される
請求項１３に記載のプログラム。
【請求項１７】
前記データが前記ページング可能メモリ空間へ転送されると、このデータのページングを阻止すること
をさらに含む請求項１３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングデバイスにデータを記憶する方法に関する。
【背景技術】
【０００２】
コンパイラ及びエディタ等のアプリケーションは、その実行中に、テンポラリファイル等の一時的なファイルを作成する。
これらのファイルの性質によって、このようなアプリケーションは、ディスクからそれらのファイルにアクセスしなければならないのではなく、それらのファイルが１次メモリに記憶されることでファイルに素早くアクセスすることができ、利益を受けることができる。
１次メモリのアクセスはディスクアクセスよりもはるかに高速であるので、大幅な性能向上を達成することができる。
【０００３】
テンポラリファイルを１次メモリに記憶することができる方法には、従来２つの方法がある。
第１の方法は、ＲＡＭディスク（１次メモリをストレージとして使用するデバイスドライバ）を作成することである。
この場合、ＲＡＭディスク上にファイルシステムを構築することができ、すべてのファイルシステムアクセスは１次メモリから行われる。
【０００４】
第２の手法は、ページング可能メモリを使用してファイルシステムデータを記憶するメモリベースのファイルシステムを作成することである。
メモリベースのファイルシステムは、１次メモリの大部分を占有する可能性があるので、利用可能なシステムメモリの他の消費者が影響を受けないことを確実にするために、メモリファイルシステムのページをページアウトすることができることが必要である。
ページング可能メモリは、ユーザプロセスのアロケートされる仮想メモリ又はカーネルの無名メモリのいずれかとして利用可能にすることができる。
【０００５】
Ｌｉｎｕｘ、Ｓｏｌａｒｉｓ、及びＮｅｔＢＳＤで利用可能なｔｍｐｆｓ等の現代のメモリベースのファイルシステムは、カーネルの無名メモリを利用してファイルシステムデータを記憶する。
【０００６】
カーネルの無名メモリをアロケートすることができないオペレーティングシステムにインプリメントされるメモリベースのファイルシステムは、２つの従来の技法のうちの一方を使用する。
第１の技法では、ファイルシステムデータファイル及びメタデータが、ユーザプロセス仮想メモリに記憶され、仮想メモリシステムがメモリを解放する必要があるときは、ファイルシステムデータファイル及びメタデータをスワップデバイスへトランスペアレントにスワップすることができる。
【０００７】
第２の技法では、ファイルシステムデータ及びメタデータは、カーネルページに記憶され、別個のスワップデバイスへのページングは、別個にインプリメントされるページングシステムを使用して実行される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、ユーザプロセス仮想メモリを使用して動作する従来のメモリベースのファイルシステムに関する不利な点は、データファイルが複製される可能性があり、一方のコピーをファイルシステム（ユーザプロセス仮想メモリ）に有し、別のコピーを、ファイルシステムへの転送をバッファリングするのに使用されるオペレーティングシステムのバッファキャッシュに有することになるということである。
これは、１次メモリの非効率的な使用である。
【０００９】
一時的なファイルをユーザプロセス仮想メモリに記憶することに関するさらなる不利な点は、メモリファイルシステムに属するバッファの読み出し又は書き込みごとにコンテキストスイッチが存在する必要があり、これがメモリファイルシステムの性能に影響を与えるということである。
これは、オペレーティングシステムカーネルが、現在実行中のプロセスのユーザプロセス仮想メモリ空間以外のユーザプロセス仮想メモリ空間からデータをページインすることがないためである。
したがって、仮想メモリがファイルシステムを記憶するのに使用されるユーザプロセスへのコンテキストスイッチは、読み出しオペレーション又は書き込みオペレーションごとに必要とされる。
【課題を解決するための手段】
【００１０】
本発明にかかる方法は、上述のような背景からなされたものであって、コンピューティングデバイスにデータを記憶する方法であって、前記コンピューティングデバイスのページング不能カーネルメモリに、メモリファイルシステムを作成することと、前記メモリファイルシステムに、データを書き込むことと、前記書き込まれたデータを、前記コンピューティングデバイス上で実行されているユーザプロセスにアロケートされているページング可能メモリ空間へ転送することとを含む。
【発明を実施するための最良の形態】
【００１１】
図１は、サーバ又はワークステーション等の処理システム１の概略図である。
システム１はプロセッサ２を備える。
プロセッサ２は、中央処理装置ＣＰＵ３、内部キャッシュメモリ４、変換索引バッファＴＬＢ５、及び、バス７にインターフェースするバスインターフェースモジュール６を含む。
また、バス７には、１次メモリ８及びハードディスク９もインターフェースされている。
１次メモリ８は、メインメモリ又は物理メモリとも呼ばれ、この例では、ランダムアクセスメモリ（ＲＡＭ）である。
ＲＡＭ８は、バッファキャッシュ１０としてアロケートされている部分を含む。
バッファキャッシュ１０は、ハードディスク９へ及びハードディスク９から転送されるデータをバッファリングするバッファをインプリメントするのに使用される。
このバッファキャッシュは、通常、１つ又は複数のフリーリストを使用して、自身のメモリ空間の使用を制御する。
ただし、代替的な実施態様を使用することができる。
システムは、通常、バスにインターフェースされているさまざまな他の入出力サブシステム１１も含み、これらの入出力サブシステム１１は、システムのオペレーションに必要とされる。
【００１２】
図１は例示にすぎないこと、及び、本発明は、この示されたシステムに限定されるものではなく、別法では、複数のプロセッサを有するシステム又はネットワーク上で動作するシステム等、より複雑なシステムにも適用することができることが理解されるべきである。
【００１３】
図２は、ソフトウェアとハードウェアとの間の相互関係を示す処理システムの高レベルの概観である。
このシステムは、ハードウェア２０、カーネル２１、及びアプリケーションプログラム２２を含む。
ハードウェアは、システムのハードウェアレベルにあるものとして参照され、図１に示すハードウェアシステム構成要素を含む。
カーネル２１は、カーネルレベルにあるものとして参照され、オペレーティングシステムのハードウェアを制御する部分である。
処理システム上で実行されるアプリケーションプログラム２２は、ユーザレベルにあるものとして参照される。
【００１４】
図１に示す処理システム１のキャッシュメモリ４、メインメモリ８、及びハードディスク９は、すべて、プログラム命令及びデータを記憶することができる。
これらのプログラム命令及びデータは、合わせてデータと総称される。
これらのメモリ内のデータの処理は、メモリ管理システムによってハンドリングされる。
このメモリ管理システムは、カーネルレベルで従来と同様に動作する。
【００１５】
図３を参照すると、本発明による処理システムのメモリ管理システム３０が概略的に示されている。
メモリ管理システム３０は、オペレーティングシステムのカーネルモード３１、すなわちカーネルレベルで動作すると共に、オペレーティングシステムのユーザモード３２、すなわちユーザレベルで動作する。
カーネルモード３１には、カーネルファイルシステムコンポーネント３３が設けられている。
この場合には、ＨＰ−ＵＸ  Ｕｎｉｘ（登録商標）ベースのオペレーティングシステムのＭｅｍＦＳファイルシステムコンポーネントが設けられている。
このカーネルファイルシステムコンポーネント３３は、処理システムのバッファキャッシュ１０でオペレーションを実行する。
ＭｅｍＦＳスワップドライバ３４はカーネルレベル３１で実行され、アロケートされているアドレス空間３６を有するユーザプロセス３５は、ユーザレベル３２で実行される。
ユーザ空間デーモン３７及びカーネルデーモン３８は、それぞれユーザモード３２及びカーネルモード３１でインプリメントされる。
これらは、ユーザの直接の制御下にあるのではなく、オペレーティングシステムのバックグラウンドで実行されると共に、以下で詳細に説明するように、必要なときにメモリ管理タスクを実行するプロセスである。
【００１６】
ここで、図４を参照して、メモリ管理システム３０のオペレーションを説明する。
【００１７】
カーネルファイルシステムコンポーネント３３、すなわちＭｅｍＦＳファイルシステムをインプリメントして、バッファキャッシュ１０にファイルシステムを作成する（ステップ１００）。
本例では、これは、たとえばユーザによって起動されるＵｎｉｘ（登録商標）マウントコマンドラインユーティリティのマウントシステムコールによって実行される。
マウントユーティリティは、バッファキャッシュ１０にファイルシステムを作成すると、新しいユーザプロセス３５をフォークする（ステップ１１０）。
このユーザプロセス３５のユーザプロセスメモリは、テンポラリファイルを保持するのに使用することができる。
本例では、ユーザプロセス３５は、ＭｅｍＦＳスワップドライバ３４に対してｉｏｃｔｌコール３９を行い、ｉｏｃｔｌ関数にある間、バックグラウンドでカーネルデーモン３８として実行を続ける。
カーネルデーモン３８は、スリープして、ｉｏｃｔｌ関数における入出力要求を待つ（ステップ１２０）。
ｉｏｃｔｌ関数がコールされたとき、マウント時刻にフラグがセットされ、このフラグがセットされている限りｉｏｃｔｌルーチンはループし、終了することはない。
フラグは、たとえば、あらゆるマウントインスタンスに関連付けられる構造に記憶されている。
バークレイソフトウェアディストリビューション（ＢＳＤ）メモリファイルシステム（ＭＦＳ）は、ドライバのｉｏｃｔｌにではなく、そのファイルシステムのマウントルーチンにＩ／Ｏサービス提供ループ（I/O servicing loop）を有し、したがって、ＢＳＤ  ＭＦＳを使用する実施態様は、それに応じて適合される。
【００１８】
メモリファイルシステムがマウントされると、ファイルシステムに書き込まれるデータ及びメタデータは、ユーザモード３２からのファイルシステムコール４０を使用してバッファキャッシュ１０に記憶される。
ＭｅｍＦＳファイルシステムへのすべてのアクセスは、バッファキャッシュ１０を通過する。
このコンテキストにおけるメタデータは、ファイル属性情報を含み、本例では、データファイルごとのｉｎｏｄｅの形に加えて、ファイルシステムのスーパーブロック及びシリンダグループの集まりの形で記憶されているファイル属性情報を含む。
ファイルシステムデータ及びメタデータのページが他のプロセスによって盗まれるのを阻止するために、ファイルシステムのバッファアロケーションは、バッファキャッシュ１０の標準的なバッファフリーリストに対して別個のＭｅｍＦＳフリーリストに記録される（ステップ１４０）。
【００１９】
メモリファイルシステムのページ数が所定のしきい値を超えると（ステップ１５０）、最長時間未使用ページは、ＭｅｍＦＳフリーリストにもはや記録されず、その代わり、バッファキャッシュ１０の最長時間未使用フリーリスト（ＬＲＵフリーリスト）へ移動される（ステップ１６０）。
このしきい値は、本例では、バッファキャッシュ１０が占有することができる最大メモリサイズの或る割合として定義されるシステムカーネル調整可能なものとしてインプリメントされる。
バッファが割り当てられるごとに、バッファキャッシュ１０のＭｅｍＦＳバッファの個数のカウントをこのしきい値に関連して監視することができる。
【００２０】
ＬＲＵフリーリストに記録されたページは、ｂｗｒｉｔｅインターフェースを使用して、ＭｅｍＦＳスワップ擬似ドライバ３４に書き込まれる（ステップ１７０）。
ＭｅｍＦＳスワップ擬似ドライバ３４のストラテジールーチン４１（図３参照）は、ファイルシステムバッファを別個のバッファリストにリンクすることによって要求にサービスする（ステップ１８０）。
このリストは、ユーザプロセス３５のメモリにコピーする必要があるすべての保留中のバッファを記録する。
また、ストラテジールーチン４１は、本例では、標準的なＵＮＩＸ（登録商標）スリープ／ウェークアップメカニズムを使用して、ウェークアップ４２をユーザプロセスデーモンへ送信する（ステップ１９０）。
ユーザプロセスは、目覚めると、バッファキャッシュファイルシステムバッファからデータを受け取り、このデータは、ＭｅｍＦＳスワップ擬似ドライバ３４によって、ユーザプロセス３５のユーザプロセスメモリへ転送される（ステップ２００）。
データバッファのみが、バッファキャッシュ１０からユーザプロセスアドレス空間３５へ転送される。
これによって、メタデータはバッファキャッシュ１０に確実に残り、したがって、メタデータしか関与しないオペレーションは常に高速であることが保証される。
【００２１】
ＲＡＭ８の量は限られており、ユーザプロセス３５等の特定のプログラムに関連付けられるすべてのデータがＲＡＭ８で常に利用可能にされている場合、システムは限られた個数のプログラムしか実行することができない。
したがって、ＨＰ−ＵＸＴＭ等の現代のオペレーティングシステムは仮想メモリ管理システムを作動させ、この仮想メモリ管理システムによって、カーネル２１は、データが必要とされないときはデータ及び命令をＲＡＭ８からハードディスク９又は外部メモリデバイスへ移動させ、必要なときにデータを戻すことが可能になる。
利用可能な全メモリは仮想メモリと呼ばれ、したがって、物理メモリのサイズを超えることができる。
仮想メモリ空間の一部は物理メモリに対応するアドレスを有する。
仮想メモリ空間の残りは、ハードディスク９及び／又は外部メモリデバイスのアドレスにマッピングされる。
以下では、特に指定のない限り、ハードディスクからＲＡＭ８へデータをロードするとの参照はいずれも、他の任意の外部メモリデバイスからＲＡＭ８へデータをロードすることも指すものと解釈されるべきである。
【００２２】
ユーザプロセス３５がコンパイルされるとき、コンパイラはメモリのロケーションを表すプログラムコードの仮想アドレスを生成する。
バッファキャッシュ１０からのデータが、バッファキャッシュ１０からユーザプロセス３５のアドレス空間へ転送されると、そのデータは、それに応じて、オペレーティングシステムの仮想メモリ管理システムによって制御される。
物理メモリ８に利用可能なメモリが十分にない場合には、使用済みメモリを解放しなければならず、解放されるアドレスに保存されているデータ及び命令は、ハードディスク９へ移動される。
通例、物理メモリから移動されるデータは、しばらくの間使用されていないデータである。
【００２３】
オペレーティングシステムが、その後、ユーザプロセス３５等のプログラムを実行している間に仮想アドレスにアクセスしようと試みる時、システムは、特定のアドレスが物理アドレスに対応しているか否かをチェックする。
特定のアドレスが物理アドレスに対応している場合には、システムは、対応している物理アドレスのデータにアクセスする。
仮想アドレスが物理アドレスに対応していない場合には、システムは、ハードディスク９からデータを取り出し、そのデータを物理メモリ８に移動させる。
システムは、その後、通常の方法で物理メモリ８のデータにアクセスする。
【００２４】
ページは、仮想アドレスにマッピングすることができる物理メモリの最小単位である。
たとえば、ＨＰ−ＵＸ（商標）システムでは、ページサイズは４ＫＢである。
したがって、仮想ページは仮想ページ番号ＶＰＮによって参照される一方、物理ページは物理ページ番号ＰＰＮによって参照される。
必要な場合にのみ仮想メモリをメインメモリに移すプロセスは、デマンドページングと呼ばれる。
【００２５】
図５を参照して仮想メモリ管理システムのオペレーションを説明する。
さまざまな種類のメモリ及びデータが記憶される場所を管理するために、ＨＰ−ＵＸ（商標）等のオペレーティングシステムは、ページディレクトリ（ＰＤＩＲ）５０と呼ばれるテーブルをメモリに保持する。
ＰＤＩＲ５０は、現在メモリにあるすべてのページの経過を追跡する。
ページが或る仮想アドレス空間でマッピングされる時、そのページには、ＰＤＩＲ５０のエントリーがアロケートされる。
ＰＤＩＲ５０は、メモリの物理ページをその仮想アドレスにリンクするものである。
【００２６】
ＰＤＩＲ５０はＲＡＭ８に保存される。
システムを高速化するために、ＰＤＩＲ５０のサブセットがプロセッサ２のＴＬＢ５に記憶される。
ＴＬＢ５は仮想アドレスを物理アドレスに変換する。
したがって、各エントリーは、仮想ページ番号及び物理ページ番号の双方を含む。
【００２７】
ＣＰＵ３がメモリページにアクセスしたいとき、ＣＰＵ３は、最初に、ＶＰＮをインデックスとして使用してＴＬＢ５を見る。
物理ページ番号ＰＰＮがＴＬＢ５で見つかる場合、これはＴＬＢヒットと呼ばれ、プロセッサは、必要なページがメインメモリ８にあることを知る。
次に、ページからの必要なデータを、ＣＰＵ３によって使用されるキャッシュ４にロードすることができる。
キャッシュコントローラ５１は、必要なデータをメモリにロードするプロセスを制御することができる。
キャッシュコントローラ５１は、ページがメモリにすでに存在するか否かをチェックする。
ページがメモリに存在しない場合には、キャッシュコントローラ５１は、ＲＡＭ８からデータを取り出して、キャッシュ４に移動させることができる。
【００２８】
ページ番号がＴＬＢ５で見つからない場合、これはＴＬＢミスと呼ばれ、必要なページがＰＤＩＲ５に存在するか否かを調べるために、ＰＤＩＲ５０がチェックされる。
必要なページがＰＤＩＲ５に存在する場合、これはＰＤＩＲヒットと呼ばれ、物理ページ番号がＴＬＢ５にロードされ、ＣＰＵ３によってページにアクセスするための命令が再開される。
必要なページが存在しない場合、これは一般にＰＤＩＲミスと呼ばれ、これは、必要なページが物理メモリ８に存在せず、ハードディスク９又は外部デバイスからメモリに必要なページを移す必要があることを示す。
ハードディスク９からメインメモリ８にページを移すプロセスは、当該技術分野で既知のように、ソフトウェアページフォールトハンドラ５２によって対処され、これに対応して、ＶＰＮ／ＰＰＮエントリーをＰＤＩＲ５０及びＴＬＢ５に作成する。
関連のあるページが物理メモリ８にロードされると、ＣＰＵ３によるアクセスルーチンが再開され、その関連のあるデータをキャッシュ４にロードすることができ、ＣＰＵ３が使用することができる。
【００２９】
本例では、ユーザ空間デーモン３７は、ユーザプロセス３５にアロケートされているページのいずれがワイア（wire）されるべきかを決定するのに使用される。
ワイアードページ（wired page）は、ＰＤＩＲ５０に永久に存在するページであり、したがって、ハードディスク９にページアウトされない。
ＰＤＩＲ５０の特定のページをワイアするためのコマンドインターフェースを作成することができる。
【００３０】
ファイルシステムが、ＭｅｍＦＳコマンドラインユーティリティを使用してアンマウントされた後、ＭｅｍＦＳスワップドライバクローズルーチン（図示せず）がコールされる。
これは、ｉｏｃｔｌルーチンが自身のＩ／Ｏサービス提供ループを終了することができるように、あらゆる保留中のＩ／Ｏ要求をフラッシュして、ファイルシステムがマウントされたときにセットされた、アンマウントコマンドによってコールされたｉｏｃｔｌルーチンのフラグをクリアする。
これによって、ファイルシステムがアンマウントされたことの表示が提供される。
【００３１】
本発明のメモリ管理システム３０は、コンピュータ可読媒体に記憶されているコンピュータプログラムコードとしてインプリメントすることができる。
このプログラムコードは、たとえば、バッファキャッシュ１０にメモリファイルシステムをインプリメントするためのユーティリティ、たとえば、Ｕｎｉｘ（登録商標）アーキテクチャによるＭｅｍＦＳファイルシステムユーティリティ３３を提供することができる。
また、当業者によって理解されるように、このプログラムコードは、上述したようにバッファキャッシュ１０からユーザプロセス仮想メモリ３６へデータを転送するようにインプリメントされるＭｅｍＦＳスワップドライバに加えて、メモリ管理システム３０の他のコンポーネントを提供することができる。
【図面の簡単な説明】
【００３２】
【図１】処理システムの概略図である。
【図２】処理システムの高レベルの概観を示す図である。
【図３】本発明によるメモリ管理システムの概略図である。
【図４】本発明のメモリ管理システムによって実行される処理ステップを示すフロー図である。
【図５】本発明による仮想メモリ管理システムの概略図である。
【符号の説明】
【００３３】
４・・・キャッシュ，
６・・・バスインターフェース，
９・・・ハードディスク，
１０・・・バッファキャッシュ，
１１・・・Ｉ／Ｏ，
３１・・・カーネルモード，
３２・・・ユーザモード，
３３・・・ＭｅｍＦＳファイルシステム，
３４・・・ＭｅｍＦＳスワップドライバ，
３５・・・ユーザプロセス，
３６・・・アドレス空間，
３７・・・ユーザ空間デーモン，
３８・・・カーネルデーモン，
４０・・・ファイルシステムコール，
４１・・・ＭｅｍＦＳスワップストラテジールーチン，
４２・・・ウェークアップ，
５１・・・キャッシュコントローラ，
５２・・・ページフォールトハンドラ，
【図１】
0004792065.tif 000002
【図２】
0004792065.tif 000003
【図３】
0004792065.tif 000004
【図４】
0004792065.tif 000005
【図５】
0004792065.tif 000006