(57)【特許請求の範囲】
【請求項１】
コンピューティングノードに適用されるファイルアクセス方法であって、前記コンピューティングノードはメモリを含み、前記メモリは、ファイルストレージメモリ領域及びプロセス作業メモリ領域を含み、ここで、メモリページテーブルは前記プロセス作業メモリ領域内に記憶され、オペレーティングシステムは前記プロセス作業メモリ領域内で実行し、
ここで、前記ファイルアクセス方法は、
前記オペレーティングシステムによって、ファイル識別子を搬送するファイルオープン要求を受信するステップと、
前記オペレーティングシステムによって、前記ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、前記ファイルは、前記ファイルストレージメモリ領域に記憶され、前記第１のインデックスノードに基づき、前記ファイルストレージメモリ領域から前記ファイルを記憶するためのメモリ領域の第１の物理アドレス空間を取得するステップと、
前記オペレーティングシステムによって、第１の仮想アドレス空間を前記ファイルに割り振るステップと、
前記オペレーティングシステムによって、前記メモリページテーブルを使用することによって第１の仮想−物理アドレスマッピング関係を記録し、ここで、前記第１の仮想−物理アドレスマッピング関係は、前記第１の仮想アドレス空間と前記第１の物理アドレス空間との間のマッピング関係を含み、ここで、前記メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含むステップと、
前記第１の仮想−物理アドレスマッピング関係に従って前記ファイルストレージメモリ領域から前記ファイルにアクセスするステップとを含むファイルアクセス方法。
【請求項２】
前記第１のインデックスノードに基づき、前記ファイルストレージメモリ領域内の前記ファイルを記憶するためのメモリ領域の第１の物理アドレス空間を取得する前記ステップは、前記第１のインデックスノードに記録されている第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用され、前記第１のインデックスノードに記録されているポインタに基づき、前記ファイルストレージメモリ領域内の前記ファイルを記憶するための前記メモリ領域の前記第１の物理アドレス空間を取得するステップを含み、ここで、前記第１のファイルページテーブルは、前記ファイルストレージメモリ領域内の、前記ファイルを記憶するための前記メモリ領域を指すために使用され、前記第１の物理アドレス空間は、前記ファイルストレージメモリ領域内の前記ファイルを記憶するための前記メモリ領域の物理アドレス空間であり、前記第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである請求項１に記載の方法。
【請求項３】
前記メモリページテーブルを使用することによって第１の仮想−物理アドレスマッピング関係を記録する前記ステップは、前記メモリページテーブルに、前記第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリを追加するステップを含み、前記エントリは、前記第１のファイルページテーブル又は前記第１のファイルページテーブルを指すために使用される前記ポインタを含む請求項２に記載の方法。
【請求項４】
前記メモリページテーブルのレベルの総数はＹであり、前記第１のファイルページテーブルのレベルの総数はＸであり、前記エントリが前記第１のファイルページテーブルを含む場合、前記エントリは前記メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるか、又は前記エントリが前記第１のファイルページテーブルを指すために使用される前記ポインタを含む場合、前記エントリは前記メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであり、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である請求項３に記載の方法。
【請求項５】
前記方法は、
前記オペレーティングシステムによって、前記第１の仮想アドレス空間及び／又は前記第１の仮想アドレス空間の開始アドレスを前記第１のインデックスノードに記録し、及び／又は前記オペレーティングシステムによって、前記第１の仮想アドレス空間及び／又は前記第１の仮想アドレス空間の開始アドレスを前記ファイルに対応するファイルオブジェクトに記録するステップをさらに含む請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記第１の仮想アドレス空間は、カーネル仮想アドレス空間又はユーザプロセス仮想アドレス空間内に配置される請求項１から４のいずれか一項に記載の方法。
【請求項７】
前記方法は、
前記オペレーティングシステムによって、前記ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信し、ここで、前記ファイル読み取り要求は、読み込みメモリアドレス空間及び前記ファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し、ここで、前記読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間である、ステップと、
前記第１のファイルコンテンツの前記データボリューム、前記第１の仮想アドレス空間、及び前記メモリページテーブルに記録されている前記第１の仮想−物理アドレスマッピング関係に基づき前記オペレーティングシステムによって、前記第１のファイルコンテンツが前記ファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するステップと、
前記読み取り物理アドレス空間に基づき前記オペレーティングシステムによって、前記ファイルストレージメモリ領域から前記ファイルの前記第１のファイルコンテンツを読み取るステップと、
前記オペレーティングシステムによって、前記第１のファイルコンテンツを前記第１のメモリ領域に書き込むステップとをさらに含む請求項１から４のいずれか一項に記載の方法。
【請求項８】
前記方法は、
前記オペレーティングシステムによって、前記ファイルにファイルコンテンツを書き込むように要求するためのファイル書き込み要求を受信し、ここで、前記ファイル書き込み要求は、読み出しメモリアドレス空間及び前記ファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し、ここで、前記読み出しメモリアドレス空間は、前記プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間である、ステップと、
前記第２のファイルコンテンツの前記データボリューム、前記第１の仮想アドレス空間、及び前記メモリページテーブルに記録されている前記第１の仮想−物理アドレスマッピング関係に基づき前記オペレーティングシステムによって、前記第２のファイルコンテンツが前記ファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、前記書き込み物理アドレス空間は、前記ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間である、ステップと、
前記オペレーティングシステムによって、前記第２のメモリ領域内に一時的に記憶されている前記第２のファイルコンテンツを前記第３のメモリ領域に書き込むステップとをさらに含む請求項１から４のいずれか一項に記載の方法。
【請求項９】
前記方法は、前記ファイルを閉じることを要求するために使用されるファイルクローズ要求を受信するステップと、前記ファイルに割り振られた前記第１の仮想アドレス空間を解放するステップと、前記メモリページテーブルに記録されている前記第１の仮想−物理アドレスマッピング関係を解放するステップとをさらに含む請求項１から４のいずれか一項に記載の方法。
【請求項１０】
前記方法は、前記オペレーティングシステムによって、前記ファイル識別子によって表される前記ファイルが前記ファイルストレージメモリ領域内に記憶されていないと決定されたときに前記ファイルストレージメモリ領域内に前記ファイルを作成し、第２のインデックスノードを前記ファイルに割り振り、ここで、第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタは、前記第２のインデックスノードに記録され、ここで、前記第２のファイルページテーブルは、前記ファイルストレージメモリ領域内の、前記ファイルが記憶されているメモリ領域を指すために使用される、ステップと、
前記オペレーティングシステムによって、第２の仮想アドレス空間を前記ファイルに割り振るステップと、
前記オペレーティングシステムによって、メモリページテーブルを使用することで第２の仮想−物理アドレスマッピング関係を記録するステップとをさらに含み、
ここで、前記第２の仮想−物理アドレスマッピング関係は、前記第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含み、ここで、前記第２の物理アドレス空間は、前記ファイルストレージメモリ領域内の、前記ファイルが記憶されている前記メモリ領域の物理アドレス空間であり、前記メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む請求項６に記載の方法。
【請求項１１】
ファイルアクセス装置であって、
ファイル識別子を搬送するファイルオープン要求を受信するように構成された受信ユニットと、
前記ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、前記ファイルは、ファイルストレージメモリ領域に記憶され、前記第１のインデックスノードに基づき、前記ファイルストレージメモリ領域内の、前記ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するように構成された取得ユニットと、
第１の仮想アドレス空間を前記ファイルに割り振るように構成された割振りユニットと、
メモリページテーブルを使用することによって第１の仮想−物理アドレスマッピング関係を記録するように構成され、ここで、前記第１の仮想−物理アドレスマッピング関係は、前記第１の仮想アドレス空間と前記第１の物理アドレス空間との間のマッピング関係を含み、ここで、前記メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む、マッピングユニットと、
前記第１の仮想−物理アドレスマッピング関係に従って前記ファイルストレージメモリ領域から前記ファイルにアクセスするように構成された読み取り／書き込みユニットとを含むファイルアクセス装置。
【請求項１２】
前記第１のインデックスノードに基づき、前記ファイルストレージメモリ領域内の、前記ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得する態様において、前記取得ユニットは、前記第１のインデックスノードに記録されている第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用され、前記第１のインデックスノードに記録されているポインタに基づき、前記ファイルストレージメモリ領域内の、前記ファイルが記憶されている前記メモリ領域の前記第１の物理アドレス空間を取得するように構成され、ここで、前記第１のファイルページテーブルは、前記ファイルストレージメモリ領域内の、前記ファイルが記憶されている前記メモリ領域を指すために使用され、前記第１の物理アドレス空間は、前記ファイルストレージメモリ領域内の、前記ファイルが記憶されている前記メモリ領域の物理アドレス空間であり、前記第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである請求項１１に記載の装置。
【請求項１３】
前記マッピングユニットは、前記メモリページテーブルに、前記第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリを追加するように構成され、ここで、前記エントリは、前記第１のファイルページテーブル又は前記第１のファイルページテーブルを指すために使用される前記ポインタを含む請求項１２に記載の装置。
【請求項１４】
前記メモリページテーブルのレベルの総数はＹであり、前記第１のファイルページテーブルのレベルの総数はＸであり、前記エントリが前記第１のファイルページテーブルを含む場合、前記エントリは前記メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるか、又は前記エントリが前記第１のファイルページテーブルを指すために使用される前記ポインタを含む場合、前記エントリは前記メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであり、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である請求項１３に記載の装置。
【請求項１５】
前記ファイルアクセス装置は、
前記第１の仮想アドレス空間及び／又は前記第１の仮想アドレス空間の開始アドレスを前記第１のインデックスノードに記録し、及び／又は前記第１の仮想アドレス空間及び／又は前記第１の仮想アドレス空間の開始アドレスを前記ファイルに対応するファイルオブジェクトに記録するように構成された記録ユニットをさらに含む請求項１１から１４のいずれか一項に記載の装置。
【請求項１６】
前記第１の仮想アドレス空間は、カーネル仮想アドレス空間又はユーザプロセス仮想アドレス空間内に配置される請求項１１から１４のいずれか一項に記載の装置。
【請求項１７】
前記受信ユニットは、前記ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信するようにさらに構成され、ここで、前記ファイル読み取り要求は、読み込みメモリアドレス空間及び前記ファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し、ここで、前記読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間であり、
前記ファイルアクセス装置は、前記第１のファイルコンテンツの前記データボリューム、前記第１の仮想アドレス空間、及び前記メモリページテーブルに記録されている前記第１の仮想−物理アドレスマッピング関係に基づき、前記第１のファイルコンテンツが前記ファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するように構成された第２のマッピングユニットと、
前記読み取り物理アドレス空間に基づき、前記ファイルストレージメモリ領域から前記ファイルの前記第１のファイルコンテンツを読み取り、前記第１のファイルコンテンツを前記第１のメモリ領域に書き込むように構成された第１の読み取り／書き込みユニットとをさらに含む請求項１１から１４のいずれか一項に記載の装置。
【請求項１８】
前記受信ユニットは、ファイルコンテンツを前記ファイルに書き込むように要求するためのファイル書き込み要求を受信するようにさらに構成され、ここで、前記ファイル書き込み要求は、読み出しメモリアドレス空間及び前記ファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し、ここで、前記読み出しメモリアドレス空間は、プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間であり、
前記ファイルアクセス装置は、前記第２のファイルコンテンツの前記データボリューム、前記第１の仮想アドレス空間、及び前記メモリページテーブルに記録されている前記第１の仮想−物理アドレスマッピング関係に基づき、前記第２のファイルコンテンツが前記ファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、前記書き込み物理アドレス空間は、前記ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間である、ように構成された第３のマッピングユニットと、
前記第２のメモリ領域内に一時的に記憶されている前記第２のファイルコンテンツを前記第３のメモリ領域に書き込むように構成された第２の読み取り／書き込みユニットとをさらに含む請求項１１から１４のいずれか一項に記載の装置。
【請求項１９】
前記受信ユニットは、前記ファイルを閉じるように要求するために使用されるファイルクローズ要求を受信するようにさらに構成され、
前記ファイルアクセス装置は、前記ファイルに割り振られた前記第１の仮想アドレス空間を解放し、前記メモリページテーブルに記録されている前記第１の仮想−物理アドレスマッピング関係を解放するように構成された解放ユニットをさらに含む請求項１１から１４のいずれか一項に記載の装置。
【請求項２０】
前記ファイルアクセス装置は、
前記ファイル識別子によって表される前記ファイルが前記ファイルストレージメモリ領域内に記憶されていないと決定されたときに前記ファイルストレージメモリ領域内に前記ファイルを作成し、第２のインデックスノードを前記ファイルに割り振るように構成された作成ユニットをさらに含み、ここで、第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタは、前記第２のインデックスノードに記録され、前記第２のファイルページテーブルは、前記ファイルストレージメモリ領域内の、前記ファイルが記憶されているメモリ領域を指すために使用され、
前記割振りユニットは、第２の仮想アドレス空間を前記ファイルに割り振るようにさらに構成され、
前記マッピングユニットは、メモリページテーブルを使用することによって第２の仮想−物理アドレスマッピング関係を記録するようにさらに構成され、
ここで、前記第２の仮想−物理アドレスマッピング関係は、前記第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含み、ここで、前記第２の物理アドレス空間は、前記ファイルストレージメモリ領域内の、前記ファイルが記憶されている前記メモリ領域の物理アドレス空間であり、前記メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む請求項１１から１４のいずれか一項に記載の装置。
【請求項２１】
プログラムがコンピュータ記憶媒体に記憶され、実行されたときに、前記プログラムは、請求項１から１１のいずれか一項に記載の方法を実行するコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術の分野に関するものであり、詳細には、ファイルアクセス方法及び装置、並びにコンピューティングノードに関するものである。
【背景技術】
【０００２】
現在、ストレージクラスメモリ（ＳＣＭ，Ｓｔｏｒａｇｅ  Ｃｌａｓｓ  Ｍｅｍｏｒｙ）のコンセプトが出現しており、このコンセプトは、次世代不揮発性メモリ技術に基づいている。次世代不揮発性メモリのアクセス有効性の表現は、普通のメモリモジュールのものと基本的には一致している。さらに、次世代不揮発性メモリは、耐衝撃性及び耐圧縮性などの、半導体製品の信頼性を有し、データは、元のデータを消去することを必要とせずに、次世代不揮発性メモリに直接書き込まれることができ、それにより、次世代不揮発性メモリは、プロセッサと記憶装置との間のアクセス速度の巨大な差を緩和するための次世代記憶デバイスとして使用され得る。一方で、いくつかの従来の通常のランダムアクセスメモリ（ＲＡＭ，Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と同様に、ＳＣＭは、メモリバスに直接ぶら下がっており、中央演算処理装置（ＣＰＵ，Ｃｅｎｔｅｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に直接面するものとしてよく、他方では、ＳＣＭの機能は、また、従来の外部記憶装置の機能まで広がり、永久データ記憶デバイスとして使用され得る。
【０００３】
業界では、次世代不揮発性メモリ（ＮＶＭ，Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）は、フラッシュメモリ、磁気ディスク、或いはさらにはダイナミックランダムアクセスメモリ（ＤＲＡＭ，Ｄｙｎａｍｉｃ  ＲＡＭ）に取って代わる将来の記憶デバイスとなり得ることが予想されている。これらの記憶デバイスは、多くの優れた特性を有し、及びアクセス速度が速いこと（記憶デバイスは、ＤＲＡＭのアクセス速度に近いアクセス速度を有し得る）、バイトがアドレス指定可能であること（記憶デバイスは、ＤＲＡＭのアクセスインターフェースと同じアクセスインターフェースを有するように設計され得る）、及び停電中にデータは喪失しないこと（記憶デバイスは、フラッシュメモリ又は磁気ディスクのように、データを永続的に記憶し得る）を主に特徴とする。これらの特徴を用いることで、このタイプの革新的メモリデバイスが将来数年内にＤＲＡＭ及び磁気ディスクなどのいくつかの従来のメモリバンクの代わりになり、記憶装置システムの主流になり得、したがって従来の記憶装置システム構造の革新的変化も引き起こされることが一般的に認められている。
【０００４】
これらの革新的変化のうちの１つは、ファイルシステムがメモリ内に常駐し得ることであり、通常のメモリのデータアクセス性能に近いデータアクセス性能を備えるファイルシステムのファイルへのアクセスを実装することが意図されている。この考えられたアーキテクチャの下では、従来のファイルアクセス方式の使用は、不適切なものとなる。
【発明の概要】
【０００５】
本発明の実施形態は、ファイルシステムがメモリ内に常駐するシナリオにおいてファイルアクセスを実行することに適用可能であるような、ファイルアクセス方法及び関係するデバイスを提供する。
【０００６】
本発明の実施形態の第１の態様によれば、ファイルアクセス方法が提供され、ここで、ファイルアクセス方法はコンピューティングノードに適用され、コンピューティングノードはメモリを含み、メモリはファイルストレージメモリ領域（ｆｉｌｅ  ｓｔｏｒａｇｅ  ｍｅｍｏｒｙ  ａｒｅａ）及びプロセス作業メモリ領域（ｐｒｏｃｅｓｓ  ｗｏｒｋ  ｍｅｍｏｒｙ  ａｒｅａ）を含み、ここで、メモリページテーブルは、プロセス作業メモリ領域内に記憶され、オペレーティングシステムはプロセス作業メモリ領域内で実行し、
ここで、ファイルアクセス方法は、
オペレーティングシステムによって、ファイル識別子を搬送するファイルオープン要求を受信するステップと、
オペレーティングシステムによって、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶され、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するステップと、
オペレーティングシステムによって、第１の仮想アドレス空間をファイルに割り振るステップと、
オペレーティングシステムによって、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録するステップとを含み、
ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係を含み、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０００７】
第１の態様に関して、第１の態様の第１の可能な実装方式において、
第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するステップは、第１のインデックスノードに記録されている第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用され、第１のインデックスノードに記録されているポインタに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するステップを含み、ここで、第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【０００８】
第１の態様の第１の可能な実装方式に関して、第１の態様の第２の可能な実装方式において、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録するステップは、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリを追加するステップを含み、ここで、エントリは、第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用されるポインタを含む。
【０００９】
第１の態様の第２の可能な実装方式に関して、第１の態様の第３の可能な実装方式において、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるか、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであり、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。
【００１０】
第１の態様又は第１の態様の第１の可能な実装方式又は第１の態様の第２の可能な実装方式又は第１の態様の第３の可能な実装方式に関して、第１の態様の第４の可能な実装方式において、この方法は、
オペレーティングシステムによって、第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスを第１のインデックスノードに記録し、及び／又はオペレーティングシステムによって、第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスをファイルに対応するファイルオブジェクトに記録するステップをさらに含む。
【００１１】
第１の態様又は第１の態様の第１の可能な実装方式又は第１の態様の第２の可能な実装方式又は第１の態様の第３の可能な実装方式又は第１の態様の第４の可能な実装方式に関して、第１の態様の第５の可能な実装方式において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。
【００１２】
第１の態様又は第１の態様の第１の可能な実装方式又は第１の態様の第２の可能な実装方式又は第１の態様の第３の可能な実装方式又は第１の態様の第４の可能な実装方式又は第１の態様の第５の可能な実装方式に関して、第１の態様の第６の可能な実装方式において、第１の仮想アドレス空間は、カーネル仮想アドレス空間又はユーザプロセス仮想アドレス空間内に配置される。
【００１３】
第１の態様又は第１の態様の第１の可能な実装方式又は第１の態様の第２の可能な実装方式又は第１の態様の第３の可能な実装方式又は第１の態様の第４の可能な実装方式又は第１の態様の第５の可能な実装方式又は第１の態様の第６の可能な実装方式に関して、第１の態様の第７の可能な実装方式において、
ファイル識別子によって表されるファイルの第１のインデックスノードを取得するステップは、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていると決定されたときに、ファイル識別子によって表されるファイルの第１のインデックスノードを取得するステップを含む。
【００１４】
第１の態様又は第１の態様の第１の可能な実装方式又は第１の態様の第２の可能な実装方式又は第１の態様の第３の可能な実装方式又は第１の態様の第４の可能な実装方式又は第１の態様の第５の可能な実装方式又は第１の態様の第６の可能な実装方式又は第１の態様の第７の可能な実装方式に関して、第１の態様の第８の可能な実装方式において、この方法は、
オペレーティングシステムによって、ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信し、ここで、ファイル読み取り要求は、読み込み（ｒｅａｄ−ｉｎ）メモリアドレス空間及びファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し、ここで、読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間である、ステップと、
第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づきオペレーティングシステムによって、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するステップと、
読み取り物理アドレス空間に基づきオペレーティングシステムによって、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取るステップと、
オペレーティングシステムによって、第１のファイルコンテンツを第１のメモリ領域に書き込むステップとをさらに含む。
【００１５】
第１の態様の第８の可能な実装方式に関して、第１の態様の第９の可能な実装方式において、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するステップは、
第１のファイルコンテンツのデータボリューム、第１のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するステップを含み、ここで、第１のファイルコンテンツオフセットは、ファイル読み取り要求から取得されるか、又は第１のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【００１６】
第１の態様又は第１の態様の第１の可能な実装方式又は第１の態様の第２の可能な実装方式又は第１の態様の第３の可能な実装方式又は第１の態様の第４の可能な実装方式又は第１の態様の第５の可能な実装方式又は第１の態様の第６の可能な実装方式又は第１の態様の第７の可能な実装方式又は第１の態様の第８の可能な実装方式又は第１の態様の第９の可能な実装方式に関して、第１の態様の第１０の可能な実装方式において、この方法は、
オペレーティングシステムによって、ファイルにファイルコンテンツを書き込むように要求するためのファイル書き込み要求を受信し、ここで、ファイル書き込み要求は、読み出し（ｒｅａｄ−ｏｕｔ）メモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し、ここで、読み出しメモリアドレス空間は、プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間である、ステップと、
第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づきオペレーティングシステムによって、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、書き込み物理アドレス空間は、ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間である、ステップと、
オペレーティングシステムによって、第２のメモリ領域内に一時的に記憶されている第２のファイルコンテンツを第３のメモリ領域に書き込むステップとをさらに含む。
【００１７】
第１の態様の第１０の可能な実装方式に関して、第１の態様の第１１の可能な実装方式において、第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得するステップは、
第２のファイルコンテンツのデータボリューム、第２のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得するステップを含み、ここで、第２のファイルコンテンツオフセットは、ファイル書き込み要求から取得されるか、又は第２のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【００１８】
第１の態様の第１０の可能な実装方式又は第１の態様の第１１の可能な実装方式に関して、第１の態様の第１２の可能な実装方式において、第３のメモリ領域の記憶容量は、第２のファイルコンテンツのデータボリューム以上である。
【００１９】
第１の態様又は第１の態様の第１の可能な実装方式又は第１の態様の第２の可能な実装方式又は第１の態様の第３の可能な実装方式又は第１の態様の第４の可能な実装方式又は第１の態様の第５の可能な実装方式又は第１の態様の第６の可能な実装方式又は第１の態様の第７の可能な実装方式又は第１の態様の第８の可能な実装方式又は第１の態様の第９の可能な実装方式又は第１の態様の第１０の可能な実装方式又は第１の態様の第１１の可能な実装方式又は第１の態様の第１２の可能な実装方式に関して、第１の態様の第１３の可能な実装方式において、
この方法は、ファイルを閉じることを要求するために使用されるファイルクローズ要求を受信するステップと、ファイルに割り振られた第１の仮想アドレス空間を解放するステップと、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を解放するステップとをさらに含む。
【００２０】
第１の態様又は第１の態様の第１の可能な実装方式又は第１の態様の第２の可能な実装方式又は第１の態様の第３の可能な実装方式又は第１の態様の第４の可能な実装方式又は第１の態様の第５の可能な実装方式又は第１の態様の第６の可能な実装方式又は第１の態様の第７の可能な実装方式又は第１の態様の第８の可能な実装方式又は第１の態様の第９の可能な実装方式又は第１の態様の第１０の可能な実装方式又は第１の態様の第１１の可能な実装方式又は第１の態様の第１２の可能な実装方式又は第１の態様の第１３の可能な実装方式に関して、第１の態様の第１４の可能な実装方式において、
この方法は、オペレーティングシステムによって、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていないと決定されたときにファイルストレージメモリ領域内にファイルを作成し、第２のインデックスノードをファイルに割り振り、ここで、第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタは、第２のインデックスノードに記録され、ここで、第２のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用される、ステップと、
オペレーティングシステムによって、第２の仮想アドレス空間をファイルに割り振るステップと、
オペレーティングシステムによって、メモリページテーブルを使用することで第２の仮想−物理アドレスマッピング関係を記録するステップとをさらに含み、
ここで、第２の仮想−物理アドレスマッピング関係は、第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含み、ここで、第２の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【００２１】
第１の態様の第１４の可能な実装方式に関して、第１の態様の第１５の可能な実装方式において、第２のファイルページテーブルのレベルの数とファイルのファイルタイプとの間に対応関係がある。
【００２２】
第１の態様又は第１の態様の第１の可能な実装方式又は第１の態様の第２の可能な実装方式又は第１の態様の第３の可能な実装方式又は第１の態様の第４の可能な実装方式又は第１の態様の第５の可能な実装方式又は第１の態様の第６の可能な実装方式又は第１の態様の第７の可能な実装方式又は第１の態様の第８の可能な実装方式又は第１の態様の第９の可能な実装方式又は第１の態様の第１０の可能な実装方式又は第１の態様の第１１の可能な実装方式又は第１の態様の第１３の可能な実装方式又は第１の態様の第１４の可能な実装方式又は第１の態様の第１５の可能な実装方式に関して、第１の態様の第１６の可能な実装方式において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含む。
【００２３】
本発明の第２の態様によれば、ファイルアクセス装置が提供され、ファイルアクセス装置は、
ファイル識別子を搬送するファイルオープン要求を受信するように構成された受信ユニットと、
ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶され、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するように構成された取得ユニットと、
第１の仮想アドレス空間をファイルに割り振るように構成された割振りユニットと、
メモリページテーブルを使用することによって第１の仮想−物理アドレスマッピング関係を記録するように構成されたマッピングユニットとを含むものとしてよく、
ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係を含み、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【００２４】
第２の態様に関して、第２の態様の第１の可能な実装方式において、
第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得する態様において、取得ユニットは、第１のインデックスノードに記録されている第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用され、第１のインデックスノードに記録されているポインタに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するように特に構成され、ここで、第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【００２５】
第２の態様の第１の可能な実装方式に関して、第２の態様の第２の可能な実装方式において、マッピングユニットは、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリを追加するように特に構成され、ここで、エントリは、第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用されるポインタを含む。
【００２６】
第２の態様の第２の可能な実装方式に関して、第２の態様の第３の可能な実装方式において、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるか、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであり、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。
【００２７】
第２の態様又は第２の態様の第１の可能な実装方式又は第２の態様の第２の可能な実装方式又は第２の態様の第３の可能な実装方式に関して、第２の態様の第４の可能な実装方式において、ファイルアクセス装置は、
第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスを第１のインデックスノードに記録し、及び／又は第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスをファイルに対応するファイルオブジェクトに記録するように構成された記録ユニットをさらに含む。
【００２８】
第２の態様又は第２の態様の第１の可能な実装方式又は第２の態様の第２の可能な実装方式又は第２の態様の第３の可能な実装方式又は第２の態様の第４の可能な実装方式に関して、第２の態様の第５の可能な実装方式において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。
【００２９】
第２の態様又は第２の態様の第１の可能な実装方式又は第２の態様の第２の可能な実装方式又は第２の態様の第３の可能な実装方式又は第２の態様の第４の可能な実装方式又は第２の態様の第５の可能な実装方式に関して、第２の態様の第６の可能な実装方式において、第１の仮想アドレス空間は、カーネル仮想アドレス空間又はユーザプロセス仮想アドレス空間内に配置される。
【００３０】
第２の態様又は第２の態様の第１の可能な実装方式又は第２の態様の第２の可能な実装方式又は第２の態様の第３の可能な実装方式又は第２の態様の第４の可能な実装方式又は第２の態様の第５の可能な実装方式又は第２の態様の第６の可能な実装方式に関して、第２の態様の第７の可能な実装方式において、
取得ユニットは、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていると決定されたときに、ファイル識別子によって表されるファイルの第１のインデックスノードを取得するように特に構成される。
【００３１】
第２の態様又は第２の態様の第１の可能な実装方式又は第２の態様の第２の可能な実装方式又は第２の態様の第３の可能な実装方式又は第２の態様の第４の可能な実装方式又は第２の態様の第５の可能な実装方式又は第２の態様の第６の可能な実装方式又は第２の態様の第７の可能な実装方式に関して、第２の態様の第８の可能な実装方式において、受信ユニットは、ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信するようにさらに構成され、ここで、ファイル読み取り要求は、読み込みメモリアドレス空間及びファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し、ここで、読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間であり、
ファイルアクセス装置は、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するように構成された第２のマッピングユニットと、
読み取り物理アドレス空間に基づき、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取り、第１のファイルコンテンツを第１のメモリ領域に書き込むように構成された第１の読み取り／書き込みユニットとをさらに含む。
【００３２】
第２の態様の第８の可能な実装方式に関して、第２の態様の第９の可能な実装方式において、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得する態様において、第２のマッピングユニットは、第１のファイルコンテンツのデータボリューム、第１のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するように特に構成され、ここで、第１のファイルコンテンツオフセットは、ファイル読み取り要求から取得されるか、又は第１のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【００３３】
第２の態様又は第２の態様の第１の可能な実装方式又は第２の態様の第２の可能な実装方式又は第２の態様の第３の可能な実装方式又は第２の態様の第４の可能な実装方式又は第２の態様の第５の可能な実装方式又は第２の態様の第６の可能な実装方式又は第２の態様の第７の可能な実装方式又は第２の態様の第８の可能な実装方式又は第２の態様の第９の可能な実装方式に関して、第２の態様の第１０の可能な実装方式において、受信ユニットは、ファイルにファイルコンテンツを書き込むように要求するためのファイル書き込み要求を受信するようにさらに構成され、ここで、ファイル書き込み要求は、読み出しメモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し、ここで、読み出しメモリアドレス空間は、プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間であり、
ファイルアクセス装置は、第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、書き込み物理アドレス空間は、ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間である、ように構成された第３のマッピングユニットと、
第２のメモリ領域内に一時的に記憶されている第２のファイルコンテンツを第３のメモリ領域に書き込むように構成された第２の読み取り／書き込みユニットとをさらに含む。
【００３４】
第２の態様の第１０の可能な実装方式に関して、第２の態様の第１１の可能な実装方式において、第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得する態様において、第３のマッピングユニットは、第２のファイルコンテンツのデータボリューム、第２のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得するように特に構成され、ここで、第２のファイルコンテンツオフセットは、ファイル書き込み要求から取得されるか、又は第２のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【００３５】
第２の態様の第１０の可能な実装方式又は第２の態様の第１１の可能な実装方式に関して、第２の態様の第１２の可能な実装方式において、第３のメモリ領域の記憶容量は、第２のファイルコンテンツのデータボリューム以上である。
【００３６】
第２の態様又は第２の態様の第１の可能な実装方式又は第２の態様の第２の可能な実装方式又は第２の態様の第３の可能な実装方式又は第２の態様の第４の可能な実装方式又は第２の態様の第５の可能な実装方式又は第２の態様の第６の可能な実装方式又は第２の態様の第７の可能な実装方式又は第２の態様の第８の可能な実装方式又は第２の態様の第９の可能な実装方式又は第２の態様の第１０の可能な実装方式又は第２の態様の第１１の可能な実装方式又は第２の態様の第１２の可能な実装方式に関して、第２の態様の第１３の可能な実装方式において、
受信ユニットは、ファイルを閉じるように要求するために使用されるファイルクローズ要求を受信するようにさらに構成され、
ファイルアクセス装置は、ファイルに割り振られた第１の仮想アドレス空間を解放し、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を解放するように構成された解放ユニットをさらに含む。
【００３７】
第２の態様又は第２の態様の第１の可能な実装方式又は第２の態様の第２の可能な実装方式又は第２の態様の第３の可能な実装方式又は第２の態様の第４の可能な実装方式又は第２の態様の第５の可能な実装方式又は第２の態様の第６の可能な実装方式又は第２の態様の第７の可能な実装方式又は第２の態様の第８の可能な実装方式又は第２の態様の第９の可能な実装方式又は第２の態様の第１０の可能な実装方式又は第２の態様の第１１の可能な実装方式又は第２の態様の第１２の可能な実装方式又は第２の態様の第１３の可能な実装方式に関して、第２の態様の第１４の可能な実装方式において、
ファイルアクセス装置は、
ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていないと決定されたときにファイルストレージメモリ領域内にファイルを作成し、第２のインデックスノードをファイルに割り振るように構成された作成ユニットをさらに含み、ここで、第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタは、第２のインデックスノードに記録され、ここで、第２のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、
割振りユニットは、第２の仮想アドレス空間をファイルに割り振るようにさらに構成され、
マッピングユニットは、メモリページテーブルを使用することによって第２の仮想−物理アドレスマッピング関係を記録するようにさらに構成され、
ここで、第２の仮想−物理アドレスマッピング関係は、第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含み、ここで、第２の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【００３８】
第２の態様の第１４の可能な実装方式に関して、第２の態様の第１５の可能な実装方式において、第２のファイルページテーブルのレベルの数とファイルのファイルタイプとの間に対応関係がある。
【００３９】
第２の態様又は第２の態様の第１の可能な実装方式又は第２の態様の第２の可能な実装方式又は第２の態様の第３の可能な実装方式又は第２の態様の第４の可能な実装方式又は第２の態様の第５の可能な実装方式又は第２の態様の第６の可能な実装方式又は第２の態様の第７の可能な実装方式又は第２の態様の第８の可能な実装方式又は第２の態様の第９の可能な実装方式又は第２の態様の第１０の可能な実装方式又は第２の態様の第１１の可能な実装方式又は第２の態様の第１３の可能な実装方式又は第２の態様の第１４の可能な実装方式又は第２の態様の第１５の可能な実装方式に関して、第２の態様の第１６の可能な実装方式において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含む。
【００４０】
本発明の実施形態の第３の態様によれば、コンピューティングノードが提供され、コンピューティングノードは、
少なくとも１つのバスと、バスに接続された少なくとも１つのプロセッサと、バスに接続された少なくとも１つのメモリとを含むものとしてよく、
ここで、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、
ファイル識別子を搬送するファイルオープン要求を受信し、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶され、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得し、第１の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録するように構成され、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係を含み、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【００４１】
第３の態様に関して、第３の態様の第１の可能な実装方式において、
第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得する態様において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、第１のインデックスノードに記録されている第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用され、第１のインデックスノードに記録されているポインタに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するように特に構成され、ここで、第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【００４２】
第３の態様の第１の可能な実装方式に関して、第３の態様の第２の可能な実装方式において、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録する態様において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリを追加するように特に構成され、ここで、エントリは、第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用されるポインタを含む。
【００４３】
第３の態様の第２の可能な実装方式に関して、第３の態様の第３の可能な実装方式において、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるか、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであり、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。
【００４４】
第３の態様又は第３の態様の第１の可能な実装方式又は第３の態様の第２の可能な実装方式又は第３の態様の第３の可能な実装方式に関して、第３の態様の第４の可能な実装方式において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスを第１のインデックスノードに記録し、及び／又は第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスをファイルに対応するファイルオブジェクトに記録するようにさらに構成される。
【００４５】
第３の態様又は第３の態様の第１の可能な実装方式又は第３の態様の第２の可能な実装方式又は第３の態様の第３の可能な実装方式又は第３の態様の第４の可能な実装方式に関して、第３の態様の第５の可能な実装方式において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。
【００４６】
第３の態様又は第３の態様の第１の可能な実装方式又は第３の態様の第２の可能な実装方式又は第３の態様の第３の可能な実装方式又は第３の態様の第４の可能な実装方式又は第３の態様の第５の可能な実装方式に関して、第３の態様の第６の可能な実装方式において、第１の仮想アドレス空間は、カーネル仮想アドレス空間又はユーザプロセス仮想アドレス空間内に配置される。
【００４７】
第３の態様又は第３の態様の第１の可能な実装方式又は第３の態様の第２の可能な実装方式又は第３の態様の第３の可能な実装方式又は第３の態様の第４の可能な実装方式又は第３の態様の第５の可能な実装方式又は第３の態様の第６の可能な実装方式に関して、第３の態様の第７の可能な実装方式において、ファイル識別子によって表されるファイルの第１のインデックスノードを取得する態様において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていると決定されたときに、ファイル識別子によって表されるファイルの第１のインデックスノードを取得するように特に構成される。
【００４８】
第３の態様又は第３の態様の第１の可能な実装方式又は第３の態様の第２の可能な実装方式又は第３の態様の第３の可能な実装方式又は第３の態様の第４の可能な実装方式又は第３の態様の第５の可能な実装方式又は第３の態様の第６の可能な実装方式又は第３の態様の第７の可能な実装方式に関して、第３の態様の第８の可能な実装方式において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信し、ここで、ファイル読み取り要求は、読み込みメモリアドレス空間及びファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し、ここで、読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間であり、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得し、読み取り物理アドレス空間に基づき、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取り、第１のファイルコンテンツを第１のメモリ領域に書き込むようにさらに構成される。
【００４９】
第３の態様の第８の可能な実装方式に関して、第３の態様の第９の可能な実装方式において、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得する態様において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、
第１のファイルコンテンツのデータボリューム、第１のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するように特に構成され、ここで、第１のファイルコンテンツオフセットは、ファイル読み取り要求から取得されるか、又は第１のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【００５０】
第３の態様又は第３の態様の第１の可能な実装方式又は第３の態様の第２の可能な実装方式又は第３の態様の第３の可能な実装方式又は第３の態様の第４の可能な実装方式又は第３の態様の第５の可能な実装方式又は第３の態様の第６の可能な実装方式又は第３の態様の第７の可能な実装方式又は第３の態様の第８の可能な実装方式又は第３の態様の第９の可能な実装方式に関して、第３の態様の第１０の可能な実装方式において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、ファイルにファイルコンテンツを書き込むように要求するためのファイル書き込み要求を受信し、ここで、ファイル書き込み要求は、読み出しメモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し、ここで、読み出しメモリアドレス空間は、プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間であり、
第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、書き込み物理アドレス空間は、ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間であり、
第２のメモリ領域内に一時的に記憶されている第２のファイルコンテンツを第３のメモリ領域に書き込むようにさらに構成される。
【００５１】
第３の態様の第１０の可能な実装方式に関して、第３の態様の第１１の可能な実装方式において、
第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得する態様において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、
第２のファイルコンテンツのデータボリューム、第２のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得するように特に構成され、ここで、第２のファイルコンテンツオフセットは、ファイル書き込み要求から取得されるか、又は第２のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【００５２】
第３の態様の第１０の可能な実装方式又は第３の態様の第１１の可能な実装方式に関して、第３の態様の第１２の可能な実装方式において、第３のメモリ領域の記憶容量は、第２のファイルコンテンツのデータボリューム以上である。
【００５３】
第３の態様又は第３の態様の第１の可能な実装方式又は第３の態様の第２の可能な実装方式又は第３の態様の第３の可能な実装方式又は第３の態様の第４の可能な実装方式又は第３の態様の第５の可能な実装方式又は第３の態様の第６の可能な実装方式又は第３の態様の第７の可能な実装方式又は第３の態様の第８の可能な実装方式又は第３の態様の第９の可能な実装方式又は第３の態様の第１０の可能な実装方式又は第３の態様の第１１の可能な実装方式又は第３の態様の第１２の可能な実装方式に関して、第３の態様の第１３の可能な実装方式において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、ファイルを閉じるように要求するために使用されるファイルクローズ要求を受信し、ファイルに割り振られた第１の仮想アドレス空間を解放し、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を解放するようにさらに構成される。
【００５４】
第３の態様又は第３の態様の第１の可能な実装方式又は第３の態様の第２の可能な実装方式又は第３の態様の第３の可能な実装方式又は第３の態様の第４の可能な実装方式又は第３の態様の第５の可能な実装方式又は第３の態様の第６の可能な実装方式又は第３の態様の第７の可能な実装方式又は第３の態様の第８の可能な実装方式又は第３の態様の第９の可能な実装方式又は第３の態様の第１０の可能な実装方式又は第３の態様の第１１の可能な実装方式又は第３の態様の第１２の可能な実装方式又は第３の態様の第１３の可能な実装方式に関して、第３の態様の第１４の可能な実装方式において、プロセッサは、バスを使用することによって、メモリに記憶されているコードを呼び出し、それにより、プロセッサは、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていないと決定されたときにファイルストレージメモリ領域内にファイルを作成し、第２のインデックスノードをファイルに割り振り、ここで、第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタは、第２のインデックスノードに記録され、ここで、第２のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、
第２の仮想アドレス空間をファイルに割り振り、
メモリページテーブルを使用することで第２の仮想−物理アドレスマッピング関係を記録するようにさらに構成され、
ここで、第２の仮想−物理アドレスマッピング関係は、第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含み、ここで、第２の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【００５５】
第３の態様の第１４の可能な実装方式に関して、第３の態様の第１５の可能な実装方式において、第２のファイルページテーブルのレベルの数とファイルのファイルタイプとの間に対応関係がある。
【００５６】
第３の態様又は第３の態様の第１の可能な実装方式又は第３の態様の第２の可能な実装方式又は第３の態様の第３の可能な実装方式又は第３の態様の第４の可能な実装方式又は第３の態様の第５の可能な実装方式又は第３の態様の第６の可能な実装方式又は第３の態様の第７の可能な実装方式又は第３の態様の第８の可能な実装方式又は第３の態様の第９の可能な実装方式又は第３の態様の第１０の可能な実装方式又は第３の態様の第１１の可能な実装方式又は第３の態様の第１３の可能な実装方式又は第３の態様の第１４の可能な実装方式又は第３の態様の第１５の可能な実装方式に関して、第３の態様の第１６の可能な実装方式において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含む。
【００５７】
本発明の実施形態の第４の態様によれば、ファイルアクセス方法が提供され、この方法は、
ファイル識別子を搬送するファイルオープン要求を受信するステップと、
ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶され、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するステップと、
第１の仮想アドレス空間をファイルに割り振るステップと、
メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録するステップとを含み、
ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係を含み、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【００５８】
第４の態様に関して、第４の態様の第１の可能な実装方式において、
第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するステップは、第１のインデックスノードに記録されている第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用され、第１のインデックスノードに記録されているポインタに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するステップを含み、ここで、第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【００５９】
第４の態様の第１の可能な実装方式に関して、第４の態様の第２の可能な実装方式において、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録するステップは、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリを追加するステップを含み、ここで、エントリは、第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用されるポインタを含む。
【００６０】
第４の態様の第２の可能な実装方式に関して、第４の態様の第３の可能な実装方式において、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるか、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであり、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。
【００６１】
第４の態様又は第４の態様の第１の可能な実装方式又は第４の態様の第２の可能な実装方式又は第４の態様の第３の可能な実装方式に関して、第４の態様の第４の可能な実装方式において、この方法は、
第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスを第１のインデックスノードに記録し、及び／又は第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスをファイルに対応するファイルオブジェクトに記録するステップをさらに含む。
【００６２】
第４の態様又は第４の態様の第１の可能な実装方式又は第４の態様の第２の可能な実装方式又は第４の態様の第３の可能な実装方式又は第４の態様の第４の可能な実装方式に関して、第４の態様の第５の可能な実装方式において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。
【００６３】
第４の態様又は第４の態様の第１の可能な実装方式又は第４の態様の第２の可能な実装方式又は第４の態様の第３の可能な実装方式又は第４の態様の第４の可能な実装方式又は第４の態様の第５の可能な実装方式に関して、第４の態様の第６の可能な実装方式において、第１の仮想アドレス空間は、カーネル仮想アドレス空間又はユーザプロセス仮想アドレス空間内に配置される。
【００６４】
第４の態様又は第４の態様の第１の可能な実装方式又は第４の態様の第２の可能な実装方式又は第４の態様の第３の可能な実装方式又は第４の態様の第４の可能な実装方式又は第４の態様の第５の可能な実装方式又は第４の態様の第６の可能な実装方式に関して、第４の態様の第７の可能な実装方式において、
ファイル識別子によって表されるファイルの第１のインデックスノードを取得するステップは、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていると決定されたときに、ファイル識別子によって表されるファイルの第１のインデックスノードを取得するステップを含む。
【００６５】
第４の態様又は第４の態様の第１の可能な実装方式又は第４の態様の第２の可能な実装方式又は第４の態様の第３の可能な実装方式又は第４の態様の第４の可能な実装方式又は第４の態様の第５の可能な実装方式又は第４の態様の第６の可能な実装方式又は第４の態様の第７の可能な実装方式に関して、第４の態様の第８の可能な実装方式において、この方法は、
ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信し、ここで、ファイル読み取り要求は、読み込みメモリアドレス空間及びファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し、ここで、読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間である、ステップと、
第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するステップと、
読み取り物理アドレス空間に基づき、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取るステップと、
第１のファイルコンテンツを第１のメモリ領域に書き込むステップとをさらに含む。
【００６６】
第４の態様の第８の可能な実装方式に関して、第４の態様の第９の可能な実装方式において、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するステップは、
第１のファイルコンテンツのデータボリューム、第１のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するステップを含み、ここで、第１のファイルコンテンツオフセットは、ファイル読み取り要求から取得されるか、又は第１のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【００６７】
第４の態様又は第４の態様の第１の可能な実装方式又は第４の態様の第２の可能な実装方式又は第４の態様の第３の可能な実装方式又は第４の態様の第４の可能な実装方式又は第４の態様の第５の可能な実装方式又は第４の態様の第６の可能な実装方式又は第４の態様の第７の可能な実装方式又は第４の態様の第８の可能な実装方式又は第４の態様の第９の可能な実装方式に関して、第４の態様の第１０の可能な実装方式において、この方法は、
ファイルにファイルコンテンツを書き込むように要求するためのファイル書き込み要求を受信し、ここで、ファイル書き込み要求は、読み出しメモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し、ここで、読み出しメモリアドレス空間は、プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間である、ステップと、
第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、書き込み物理アドレス空間は、ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間である、ステップと、
第２のメモリ領域内に一時的に記憶されている第２のファイルコンテンツを第３のメモリ領域に書き込むステップとをさらに含む。
【００６８】
第４の態様の第１０の可能な実装方式に関して、第４の態様の第１１の可能な実装方式において、第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得するステップは、
第２のファイルコンテンツのデータボリューム、第２のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得するステップを含み、ここで、第２のファイルコンテンツオフセットは、ファイル書き込み要求から取得されるか、又は第２のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【００６９】
第４の態様の第１０の可能な実装方式又は第４の態様の第１１の可能な実装方式に関して、第４の態様の第１２の可能な実装方式において、第３のメモリ領域の記憶容量は、第２のファイルコンテンツのデータボリューム以上である。
【００７０】
第４の態様又は第４の態様の第１の可能な実装方式又は第４の態様の第２の可能な実装方式又は第４の態様の第３の可能な実装方式又は第４の態様の第４の可能な実装方式又は第４の態様の第５の可能な実装方式又は第４の態様の第６の可能な実装方式又は第４の態様の第７の可能な実装方式又は第４の態様の第８の可能な実装方式又は第４の態様の第９の可能な実装方式又は第４の態様の第１０の可能な実装方式又は第４の態様の第１１の可能な実装方式又は第４の態様の第１２の可能な実装方式に関して、第４の態様の第１３の可能な実装方式において、
この方法は、ファイルを閉じることを要求するために使用されるファイルクローズ要求を受信するステップと、ファイルに割り振られた第１の仮想アドレス空間を解放するステップと、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を解放するステップとをさらに含む。
【００７１】
第４の態様又は第４の態様の第１の可能な実装方式又は第４の態様の第２の可能な実装方式又は第４の態様の第３の可能な実装方式又は第４の態様の第４の可能な実装方式又は第４の態様の第５の可能な実装方式又は第４の態様の第６の可能な実装方式又は第４の態様の第７の可能な実装方式又は第４の態様の第８の可能な実装方式又は第４の態様の第９の可能な実装方式又は第４の態様の第１０の可能な実装方式又は第４の態様の第１１の可能な実装方式又は第４の態様の第１２の可能な実装方式又は第４の態様の第１３の可能な実装方式に関して、第４の態様の第１４の可能な実装方式において、
この方法は、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていないと決定されたときにファイルストレージメモリ領域内にファイルを作成し、第２のインデックスノードをファイルに割り振り、ここで、第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタは、第２のインデックスノードに記録され、ここで、第２のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用される、ステップと、
第２の仮想アドレス空間をファイルに割り振るステップと、
メモリページテーブルを使用することで第２の仮想−物理アドレスマッピング関係を記録するステップとをさらに含み、
ここで、第２の仮想−物理アドレスマッピング関係は、第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含み、ここで、第２の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【００７２】
第４の態様の第１４の可能な実装方式に関して、第４の態様の第１５の可能な実装方式において、第２のファイルページテーブルのレベルの数とファイルのファイルタイプとの間に対応関係がある。
【００７３】
第４の態様又は第４の態様の第１の可能な実装方式又は第４の態様の第２の可能な実装方式又は第４の態様の第３の可能な実装方式又は第４の態様の第４の可能な実装方式又は第４の態様の第５の可能な実装方式又は第４の態様の第６の可能な実装方式又は第４の態様の第７の可能な実装方式又は第４の態様の第８の可能な実装方式又は第４の態様の第９の可能な実装方式又は第４の態様の第１０の可能な実装方式又は第４の態様の第１１の可能な実装方式又は第４の態様の第１３の可能な実装方式又は第４の態様の第１４の可能な実装方式又は第４の態様の第１５の可能な実装方式に関して、第４の態様の第１６の可能な実装方式において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含む。
【００７４】
本発明の第５の態様によれば、コンピュータ記憶媒体が提供され、
プログラムがコンピュータ記憶媒体に記憶され、実行されたときに、プログラムは、前述の方法の実施形態において提供されるいずれかの方法によるステップを含む。
【００７５】
本発明のいくつかの実施形態の技術的解決方法において、ファイル識別子を搬送するファイルオープン要求を受信した後に、オペレーティングシステムは、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得し、第１の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録し、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含むことがわかる。第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに適用可能であることがわかる。さらに、仮想アドレス空間は、ファイルを開くことが要求されたときのみファイルに割り振られるので、これはシステムの仮想アドレス空間の不効率な占有の可能性及びアドレス衝突の可能性を低減することに役立ち、システムの仮想アドレス空間の利用効率を改善することに役立つ。
【図面の簡単な説明】
【００７６】
本発明の実施形態における技術的解決方法をより明確に説明するために、以下において、実施形態の説明に必要な添付の図面を簡単に紹介する。明らかに、以下の説明の添付の図面は、本発明のいくつかの実施形態を示しているにすぎず、当業者は、創作的な努力なしに依然としてこれらの添付の図面から他の図面を導き出すことができる。
【００７７】
【図１】本発明の一実施形態によるファイルアクセス方法の概略流れ図である。
【図２−ａ】本発明の一実施形態による別のファイルアクセス方法の概略流れ図である。
【図２−ｂ】本発明の一実施形態によるコンピューティングノードのメモリの概略図である。
【図２−ｃ】本発明の一実施形態による別のコンピューティングノードのメモリの概略図である。
【図２−ｄ】本発明の一実施形態によるファイルストレージメモリ領域の概略図である。
【図２−ｅ】本発明の一実施形態によるファイルページテーブルとメモリページとの間の関係の概略図である。
【図３】本発明の一実施形態による別のファイルアクセス方法の概略流れ図である。
【図４】本発明の一実施形態による別のファイルアクセス方法の概略流れ図である。
【図５】本発明の一実施形態による別のファイルアクセス方法の概略流れ図である。
【図６】本発明の一実施形態による別のファイルアクセス方法の概略流れ図である。
【図７】本発明の一実施形態による別のファイルアクセス方法の概略流れ図である。
【図８】本発明の一実施形態による別のファイルアクセス方法の概略流れ図である。
【図９−ａ】本発明の一実施形態によるファイルアクセス装置の概略図である。
【図９−ｂ】本発明の一実施形態による別のファイルアクセス装置の概略図である。
【図９−ｃ】本発明の一実施形態による別のファイルアクセス装置の概略図である。
【図９−ｄ】本発明の一実施形態による別のファイルアクセス装置の概略図である。
【図９−ｅ】本発明の一実施形態による別のファイルアクセス装置の概略図である。
【図１０】本発明の一実施形態によるコンピューティングノードの概略図である。
【図１１】本発明の一実施形態による別のコンピューティングノードの概略図である。
【発明を実施するための形態】
【００７８】
本発明の実施形態は、ファイルシステムがメモリ内に常駐するシナリオにおいてファイルアクセスを実行することに適用可能であるような、ファイルアクセス方法及び関係するデバイスを提供する。
【００７９】
詳細な説明は、特定の実施形態を用いて以下に、別々に提供される。
【００８０】
本発明の発明目的、特徴、及び利点をより明確にし、よりわかりやすくするために、以下では、本発明の実施形態の添付の図面を参照しつつ本発明の実施形態における技術的解決方法を明確に且つ完全に説明する。明らかに、以下で説明される実施形態は、本発明の実施形態のすべてではなくむしろ一部にすぎない。創作的な努力なしに本発明の実施形態に基づいて当業者によって得られる他のすべての実施形態は、本発明の保護の範囲内に収まるものとする。
【００８１】
本発明の明細書、特許請求の範囲、及び添付の図面において、「第１の」、「第２の」、「第３の」、「第４の」などの用語は、異なる対象物を区別することを意図しているが、特定の順序を指示していない。それに加えて、「含む」、「備える」、又はそれらの他の変形は、非排他的包含を対象とすることを意図されている。たとえば、一連のステップ若しくはユニットを含む、プロセス、方法、システム、製品、若しくはデバイスは、記載されているステップ若しくはユニットに限定されず、任意選択で、記載されていないステップ若しくはユニットをさらに含み、又は任意選択で、プロセス、方法、製品、又はデバイスの別の固有のステップ若しくはユニットをさらに含む。
【００８２】
本発明は、ファイルアクセス方法の一実施形態を提供し、ここで、ファイルアクセス方法はコンピューティングノードに適用され、ここで、コンピューティングノードはメモリを含むものとしてよく、メモリは、ファイルストレージメモリ領域及びプロセス作業メモリ領域を含み、ここで、カーネルメモリページテーブルは、プロセス作業メモリ領域内に記憶され、オペレーティングシステムはプロセス作業メモリ領域内で実行し、ファイルアクセス方法は、オペレーティングシステムによって、ファイル識別子を搬送するファイルオープン要求を受信することと、オペレーティングシステムによって、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶される、ことと、オペレーティングシステムによって、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得することと、オペレーティングシステムによって、第１の仮想アドレス空間をファイルに割り振ることと、オペレーティングシステムによって、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録することとを含むものとしてよく、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係を含み、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【００８３】
たとえば、プロセス作業メモリ領域は、カーネルプロセス作業メモリ領域とユーザプロセス作業メモリ領域とを含むものとしてよく、ここで、カーネルメモリページテーブルは、カーネルプロセス作業メモリ領域内に記憶されるものとしてよく、ユーザプロセスメモリページテーブルは、ユーザプロセス作業メモリ領域内に記憶されるものとしてよい。たとえば、オペレーティングシステムはカーネルプロセス作業メモリ領域内で実行する。
【００８４】
図１を参照すると、図１は、本発明の一実施形態によるファイルアクセス方法の概略流れ図である。図１に示されているように、本発明の一実施形態で提供されるファイルアクセス方法は、以下の内容を含み得る。
【００８５】
１０１：オペレーティングシステムは、ファイル識別子を搬送するファイルオープン要求を受信する。
【００８６】
ファイル識別子を搬送するファイルオープン要求を受信することは、ファイル識別子を搬送し、ユーザプロセスに由来するファイルオープン要求を受信することを含み得る。
【００８７】
本発明のいくつかの実施形態において、ファイルオープン要求は、ファイルストレージパス（すなわち、開くように要求されたファイルのストレージパス）を搬送するものとしてよく、ここで、ファイル識別子は、ファイルストレージパスに含まれるものとしてよく、確かに、ファイルオープン要求は、ファイル識別子も搬送するものとしてよく、ファイルストレージパスを搬送しないものとしてよい。さらに、ファイルオープン要求は、ファイルタイプフラグビットをさらに搬送するものとしてよく、ここで、ファイルタイプフラグビットは、ファイル識別子によって表されるファイルのファイルタイプを指示し得る（ファイルタイプは、ディレクトリファイル若しくはデータファイルであってよい）。
【００８８】
１０２：オペレーティングシステムは、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得し、ここで、ファイルは、ファイルストレージメモリ領域内に記憶される。
【００８９】
本発明のいくつかの実施形態において、ファイル識別子によって表されるファイルの第１のインデックスノードを取得することは、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていると決定されたときに、ファイル識別子によって表されるファイルの第１のインデックスノードを取得することを含み得る。確かに、初期設定で、ファイル識別子によって表されるファイルは、ファイルストレージメモリ領域内に記憶されるとも考えられ得るが、このシナリオでは、ファイル識別子によって表されるファイルが、ファイルストレージメモリ領域内に記憶されているかどうかを決定するステップは、省かれ得る。
【００９０】
本発明のいくつかの実施形態において、メモリは、プロセス作業メモリ領域（ここで、プロセス作業メモリ領域は、ユーザプロセス作業メモリ領域とカーネルプロセス作業メモリ領域とを含むものとしてよい）とファイルストレージメモリ領域とを含み得る。プロセス作業メモリ領域は、プロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指す。データ構造及び変数は、少なくとも１つの以下の情報、すなわち、プロセスの実行中のヒープ、スタック、メモリマッピング領域、プロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【００９１】
たとえば、ユーザプロセス作業メモリ領域は、ユーザプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。ユーザプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、ユーザプロセスの実行中のヒープ、スタック、メモリマッピング領域、ユーザプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【００９２】
別の例として、カーネルプロセス作業メモリ領域は、カーネルプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。カーネルプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、カーネルプロセスの実行中のヒープ、スタック、メモリマッピング領域、カーネルプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【００９３】
ファイルストレージメモリ領域は、ファイルシステムを記憶するために使用される物理メモリ領域を指すものとしてよく、ファイルシステムのさまざまな情報は、ファイルストレージメモリ領域に記憶されるものとしてよく、たとえば、ファイルシステムのインデックスノード及びファイルは、ファイルストレージメモリ領域に記憶されるものとしてよく、ファイルシステムのスーパーブロック（存在する場合）などの情報は、ファイルストレージメモリ領域にさらに記憶されるものとしてよい。
【００９４】
本発明のいくつかの実施形態において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、ファイルストレージメモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域又はユーザプロセス作業メモリ領域など）は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、プロセス作業メモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域又はユーザプロセス作業メモリ領域など）及びファイルストレージメモリ領域は、互いに重なり合わない。
【００９５】
ファイルのインデックスノードは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間が取得され得る情報を含み得る。たとえば、第１のファイルページテーブル（ＦＰＴ，Ｆｉｌｅ  Ｐａｇｅ  Ｔａｂｌｅ）又は第１のファイルページテーブルを指すために使用されるポインタは、ファイルの第１のインデックスノードに記録されるものとしてよく、第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルであり、ここで、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間である。確かに、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間又は第１の物理アドレス空間の開始アドレスも、第１のインデックスノードに直接記憶され得る。さらに、ファイルの第１のインデックスノードは、ファイルのメタデータなどの情報をさらに含み得る。
【００９６】
１０３：オペレーティングシステムは、第１の仮想アドレス空間をファイルに割り振る。
【００９７】
本発明のいくつかの実施形態において、予め設定されたサイズの第１の仮想アドレス空間は、ファイルに割り振られ得る（たとえば、第１の仮想アドレス空間のサイズは、システムの最大仮想アドレス空間を同時に開くことがシステムによってサポートされているファイルの最大数で割った数以下であり得る）。代替的に、ファイルのファイルタイプに対応するサイズの第１の仮想アドレス空間も、ファイルタイプに従ってファイルに割り振られ得る。たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズに等しくないものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズ未満であるものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、１ＭＢ、２ＭＢ、１０ＭＢ、３０ＭＢなどであり、データファイルに対応する仮想アドレス空間のサイズは、１００ＭＢ、５００ＭＢ、１ＧＢ、１０ＧＢ、１００ＧＢ、２ＴＢなどである。
【００９８】
１０４：オペレーティングシステムは、メモリページテーブルを使用することによって第１の仮想−物理アドレスマッピング関係を記録する。
【００９９】
第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係を含み、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０１００】
ファイル識別子を搬送するファイルオープン要求を受信した後に、オペレーティングシステムが、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得し、第１の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録し、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む、ことが上記からわかる。第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに適用可能であることがわかる。さらに、仮想アドレス空間は、ファイルを開くことが要求されたときのみファイルに割り振られるので、これはシステムの仮想アドレス空間の不効率な占有の可能性及びアドレス衝突の可能性を低減することに役立ち、システムの仮想アドレス空間の利用効率を改善することに役立つ。
【０１０１】
本発明のいくつかの実施形態において、ファイルのファイル識別子を搬送し、ユーザプロセスに由来するファイルオープン要求が受信された場合、ファイル及びユーザプロセスに対応するファイルオブジェクトが作成されるものとしてよく、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係が記録された後に、ファイルのファイルディスクリプタなどがユーザプロセスにフィードバックされ得る。
【０１０２】
本発明のいくつかの実施形態において、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録することは、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリ（１つ又は複数のエントリであってよい）を追加することを含むものとしてよく、ここで、エントリは、第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用されるポインタを含む。たとえば、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるものとしてよく、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであるものとしてよく、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。いくつかの特別な適用シナリオにおいて、第１の仮想−物理アドレスマッピング関係を記録するために使用され、メモリページテーブルに追加されるエントリ（１つ又は複数のエントリであってよい）も、メモリページテーブル内のメモリページテーブルのいずれかのレベルのエントリであってよい。
【０１０３】
本発明のいくつかの他の実施形態では、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録することは、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリ（１つ又は複数のエントリであってよい）を追加することを含むものとしてよく、ここで、エントリは、第１の物理アドレス空間を含むか、又はエントリは、第１の物理アドレス空間の開始アドレス及び／又は終端アドレスを含むものとしてよく、たとえば、エントリは、メモリページテーブルの最下位レベルのエントリであるものとしてよく、又はメモリページテーブルのいずれかのレベルのエントリであるものとしてよい。
【０１０４】
本発明のいくつかの実施形態において、第１の仮想アドレス空間、第１の仮想アドレス空間の開始アドレス、及び第１の仮想アドレス空間の終端アドレスのうちの少なくとも１つは、第１のインデックスノードにさらに記録され得る、及び／又は第１の仮想アドレス空間、第１の仮想アドレス空間の開始アドレス、及び第１の仮想アドレス空間の終端アドレスのうちの少なくとも１つは、ファイルに対応するファイルオブジェクトにさらに記録され得る。
【０１０５】
本発明のいくつかの実施形態において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。本発明のいくつかの実施形態において、第１の仮想アドレス空間は、カーネル仮想アドレス空間内に配置されるか、又は第１の仮想アドレス空間は、ユーザプロセス仮想アドレス空間内に配置される。
【０１０６】
ファイルが開かれた後、読み取り／書き込みなどの操作が、ファイルに対して実行され得る。
【０１０７】
たとえば、ファイルアクセス方法は、オペレーティングシステムによって、ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信し、ここで、ファイル読み取り要求は、読み込みメモリアドレス空間及びファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し（さらに、ファイル読み取り要求は、ファイルのファイルディスクリプタをさらに搬送し得る）、ここで、読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間である、ことと、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得することと、読み取り物理アドレス空間に基づき、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取ることと、第１のファイルコンテンツを第１のメモリ領域に書き込むこと（読み込みメモリアドレス空間に基づき、第１のファイルコンテンツを第１のメモリ領域に書き込むこと）とをさらに含み得る。
【０１０８】
本発明のいくつかの実施形態において、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得することは、第１のファイルコンテンツのデータボリューム、第１のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得することを含むものとしてよく、ここで、第１のファイルコンテンツオフセットは、ファイル読み取り要求から取得されるか、又は第１のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【０１０９】
たとえば、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスは、第１のファイルコンテンツオフセット（第１のファイルコンテンツオフセットがファイル読み取り要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第１のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための開始読み取り物理アドレスは、開始読み取り仮想アドレス及び第１の仮想−物理アドレスマッピング関係を使用することによって取得され、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間は、開始読み取り物理アドレス及び第１のファイルコンテンツのデータボリュームに基づき取得される。
【０１１０】
別の例として、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスは、第１のファイルコンテンツオフセット（第１のファイルコンテンツオフセットがファイル読み取り要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第１のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第１のファイルコンテンツを読み取るための読み取り仮想アドレス空間は、開始読み取り仮想アドレス及び第１のファイルコンテンツのデータボリュームに基づき取得され、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間は、読み取り仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係を使用することによって取得される。
【０１１１】
たとえば、ファイルアクセス方法は、ファイルにファイルコンテンツを書き込むように要求するためのファイル書き込み要求を受信し、ここで、ファイル書き込み要求は、読み出しメモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し（さらに、ファイル書き込み要求は、ファイルのファイルディスクリプタをさらに搬送し得る）、ここで、読み出しメモリアドレス空間は、プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間である、ことと、第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、書き込み物理アドレス空間は、ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間である、ことと、第２のメモリ領域内に一時的に記憶されている第２のファイルコンテンツを第３のメモリ領域に書き込むこととをさらに含み得る。
【０１１２】
本発明のいくつかの実施形態において、第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得することは、第２のファイルコンテンツのデータボリューム、第２のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得することを含むものとしてよく、ここで、第２のファイルコンテンツオフセットは、ファイル書き込み要求から取得されるか、又は第２のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【０１１３】
たとえば、第２のファイルコンテンツをファイルに書き込むための開始書き込み仮想アドレスは、第２のファイルコンテンツオフセット（第２のファイルコンテンツオフセットがファイル書き込み要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第２のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための開始書き込み物理アドレスは、開始書き込み仮想アドレス及び第１の仮想−物理アドレスマッピング関係を使用することによって取得され、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み物理アドレス空間は、開始書き込み物理アドレス及び第２のファイルコンテンツのデータボリュームに基づき取得される。
【０１１４】
別の例として、第２のファイルコンテンツをファイルに書き込むための開始書き込み仮想アドレスは、第２のファイルコンテンツオフセット（第２のファイルコンテンツオフセットがファイル書き込み要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第２のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み仮想アドレス空間は、開始書き込み仮想アドレス及び第２のファイルコンテンツのデータボリュームに基づき取得され、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み物理アドレス空間は、書き込み仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係を使用することによって取得される。
【０１１５】
第３のメモリ領域の記憶容量は、第２のファイルコンテンツのデータボリューム以上であるものとしてよい。第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域は、共通集合を有するか、又は共通集合を有しない。一般的に、第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域が、共通集合を有する場合、これは第２のファイルコンテンツがファイル内の一部又は全部の元のファイルコンテンツを置き換えることを指示し得ることが理解され得る（第３のメモリ領域と第１の物理アドレス空間に対応するメモリ領域との間の共通集合が、第３のメモリ領域よりも小さい場合、これは新しいメモリ領域が第２のファイルコンテンツに割り振られる、すなわち、ファイルを記憶するためのメモリ領域が変化し、ファイルを記憶するためのメモリ領域が拡張されることを指示する）。第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域が、共通集合を有しない場合、これは第２のファイルコンテンツが、ファイルに新たに追加され、第３のメモリ領域が、第２のファイルコンテンツに割り振られた新しいメモリ領域であることを指示するものとしてよく、すなわち、ファイルを記憶するためのメモリ領域は変化し、ファイルを記憶するためのメモリ領域は拡張される。
【０１１６】
さらに、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域が変化した場合、第１のファイルページテーブルは更新されるものとしてよく、それにより、更新された第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルを現在記憶しておくためのメモリ領域を指す。
【０１１７】
確かに、さらに、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係は、第３の仮想−物理アドレスマッピング関係に更新されるものとしてよく、ここで、第３の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第３の物理アドレス空間との間のマッピング関係を含み、第３の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルを現在記憶しておくためのメモリ領域の物理アドレス空間である。第１のファイルページテーブルを指しているポインタ（メモリページテーブルに記録されている、第１のファイルページテーブルの開始物理アドレスなど）がメモリページテーブルに記録されている場合に、更新された第１のファイルページテーブルの開始物理アドレスが変化しない場合、第１のファイルページテーブルを指し、メモリページテーブルに記録されているポインタは、修正されないものとしてよい。さらに、この場合、仮想−物理アドレスマッピング関係は、第１のファイルページテーブルを更新することによって、メモリページテーブルを修正する必要なく、再確立されるものとしてよく、このことは、マッピング操作を大幅に簡素化する。
【０１１８】
本発明のいくつかの実施形態において、ファイルアクセス方法は、オペレーティングシステムによって、ファイルを閉じることを要求するために使用されるファイルクローズ要求を受信することと、ファイルに割り振られた第１の仮想アドレス空間を解放することと、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を解放することとをさらに含み得る。さらに、ファイルに対応するファイルオブジェクトが作成された場合、ファイルに対応するファイルオブジェクトは、さらに解放され得る。
【０１１９】
本発明のいくつかの実施形態において、ファイル識別子を搬送するファイルオープン要求が受信された後、ファイル識別子によって表されるファイルが、ファイルストレージメモリ領域内に記憶されていないと決定されたときに、ファイルは、ファイルストレージメモリ領域内に作成され、第２のインデックスノードが、ファイルに割り振られる。第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタ（第２のファイルページテーブルを指すために使用されるポインタは、第２のファイルページテーブルの開始物理アドレスであってよい）は、第２のインデックスノードに記録されてよく、ここで、第２のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第２の仮想アドレス空間はファイルに割り振られ、第２の仮想−物理アドレスマッピング関係は、メモリページテーブルを使用することによって記録され、ここで、第２の仮想−物理アドレスマッピング関係は、第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含むものとしてよく、ここで、第２の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。任意選択で、第２のファイルページテーブルのレベルの数とファイルのファイルタイプとの間に対応関係があり、ここで、ファイルのファイルタイプは、ファイルオープン要求で搬送される、ファイルの、たとえば、ファイルタイプフラグビットを使用することによって決定されるものとしてよく、確かに、ファイルのファイルタイプは、別の方式でも決定され得る。
【０１２０】
本発明のいくつかの他の実施形態では、ファイル識別子を搬送するファイルオープン要求が受信された後、ファイル識別子によって表されるファイルが、ファイルストレージメモリ領域内に記憶されていないと決定されたときに、ファイルは、ファイルストレージメモリ領域内に作成され、第３のインデックスノードが、ファイルに割り振られる。この場合、ファイルのファイルページテーブルがいっさい作成されないか、又はファイルの空のファイルページテーブルが作成されるものとしてよく（ファイルの空のファイルページテーブルが作成された場合、第３のインデックスノードは、空のファイルページテーブル又は空のファイルページテーブルを指すために使用されるポインタを含み得る）、ファイルコンテンツが、作成されたファイルに書き込まれる必要があるときに、ファイルを記憶するためのメモリ領域が拡張され（たとえば、１０ＭＢから１０００ＭＢに拡張され）るものとしてよく、ファイルのファイルページテーブルは更新され、それにより、更新されたファイルページテーブルはファイルを記憶するための拡張されたメモリ領域を指す。
【０１２１】
本発明のいくつかの実施形態において、ファイルページテーブルのデータ構造は、メモリページテーブルのデータ構造に類似しているか、又は同じである。
【０１２２】
前述の操作は、オペレーティングシステム（特に、オペレーティングシステム内のカーネルファイルシステムによって実行され得る）などによって実行され得る。
【０１２３】
この実施形態の技術的解決方法において、ファイル識別子を搬送するファイルオープン要求が受信された後に、ファイル識別子によって表されるファイルの第１のインデックスノードが取得され、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間が、第１のインデックスノードに基づき取得され、第１の仮想アドレス空間はファイルに割り振られ、第１の仮想−物理アドレスマッピング関係は、メモリページテーブルを使用することによって記録され、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む、ことがわかる。第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。さらに、仮想アドレス空間は、ファイルを開くことが要求されたときのみファイルに割り振られるので、これはシステムの仮想アドレス空間の不効率な占有の可能性及びアドレス衝突の可能性を低減することに役立ち、システムの仮想アドレス空間の利用効率を改善することに役立つ。
【０１２４】
さらに、連続仮想アドレス空間は、ファイルオープンプロセスにおいてファイルに割り振られるものとしてよく、したがって、これは、ファイルを読み取る／書き込むための開始仮想アドレスから始めて、１回で必要な読み取り／書き込み長の範囲内のメモリページにアクセスすることに役立ち、ソフトウェア層において複数回異なるメモリページの対応する仮想アドレスを探索することを必要としない。このように、ファイルのシーケンシャルアクセス速度は、きわめて高速になり得る。
【０１２５】
メモリ管理ユニット（ＭＭＵ，Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）を用いることで、ファイルの仮想アドレスと物理アドレスとの間の変換は、トランスペアレントに完遂されるものとしてよく、このことは、ファイルアクセス速度を上げることに役立ち、又はゼロオーバーヘッドを実装することにすら役立つ。
【０１２６】
さらに、データ構造がメモリページテーブルのデータ構造に類似しているか、又は同じであるファイルページテーブルが、ファイルストレージメモリ領域内の、ファイルコンテンツを記憶するためのメモリページを指すために使用される場合に、ファイルページテーブルのデータ構造は、メモリページテーブルのデータ構造に類似しているか、又は同じであるので、これは、ページテーブルのデータ構造の間のゼロ変換を実装することに役立ち、ファイルコンテンツを記憶するためのメモリページが変化したときにファイルページテーブル上のファイルの物理アドレス空間と仮想アドレス空間との間にマッピング関係を再確立する操作を実行することを必要としなくてよい。ファイルページテーブルを更新することによって、更新されたファイルページテーブルを指すために使用されるポインタがファイルページテーブルのエントリ内に挿入され、それによって、ファイルの物理アドレスと仮想アドレスとの間のマッピングの再確立を完遂し、この方式は、ファイルのサイズに無関係な一定の時間内にファイルの物理アドレスと仮想アドレスとの間のマッピングを再確立することに役立つ。
【０１２７】
さらに、独立した仮想アドレス空間が、異なるファイルに割り振られるものとしてよく、それにより、ファイルシステムの、ファイルストレージメモリ領域内のファイルは、システム仮想アドレス及びＭＭＵによって保護され、このことは、ファイルが誤って書き込まれる可能性を大幅に低減し、ファイルを適切に保護できるだけでなく、追加の書き込み保護メカニズムも必要とせず、それにより、システムを簡素化することに役立つ。
【０１２８】
さらに、ファイルが仮想アドレスを使用することによってアクセスされ、ファイルのサイズは、システム仮想アドレス空間のサイズ、及び同時に開くことがオペレーティングシステムによってサポートされているファイルの数のみに影響され、サイズも数も、ファイルシステムに対する制限にならず、したがって、ファイルのサイズは、ファイルシステムの設計によって制限され得ない。
【０１２９】
さらに、メモリ管理の方式に類似する方式がファイルシステムにおいて使用され、両方の方式において、記憶媒体が仮想アドレスを使用することによってアクセスされ、仮想アドレスと物理アドレスとの間の変換は、ＭＭＵを使用することによって実行されるものとしてよく、カーネル内の変更は比較的小さいものとしてよく、このことは、ファイルシステムを既存のオペレーティングシステムに移行させることにも役立つ。
【０１３０】
本発明のこの実施形態の解決方法をよりよく理解し、実装する便宜上、いくつかの特定の適用シナリオを使用することによって以下で例示が行われている。
【０１３１】
図２−ａを参照すると、図２−ａは、本発明の別の実施形態による別のファイルアクセス方法の概略流れ図である。本発明の別の実施形態で提供される別のファイルアクセス方法は、以下の内容を含み得る。
【０１３２】
２０１：オペレーティングシステムは、ファイル識別子を搬送し、ユーザプロセス（以下ではユーザプロセスＡとして参照されている）に由来するファイルオープン要求を受信する。
【０１３３】
本発明のいくつかの実施形態において、ファイルオープン要求は、ファイルストレージパス（すなわち、開くように要求されたファイルのストレージパス）を搬送するものとしてよく、ここで、ファイル識別子は、ファイルストレージパスに含まれるものとしてよく、確かに、ファイルオープン要求は、ファイル識別子も搬送するものとしてよく、ファイルストレージパスを搬送しないものとしてよい。さらに、ファイルオープン要求は、ファイルタイプフラグビットをさらに搬送するものとしてよく、ここで、ファイルタイプフラグビットは、ファイル識別子によって表されるファイルのファイルタイプを指示し得る（ファイルタイプは、ディレクトリファイル若しくはデータファイルであってよい）。
【０１３４】
２０２：オペレーティングシステムは、ファイル識別子によって表されるファイルに対応するファイルオブジェクトを作成し（ファイルは以下ではファイルＦ１として参照される）、ファイルディスクリプタをファイルＦ１に割り振り、ここで、ファイルＦ１のファイルオブジェクトは、ファイルＦ１のファイルディスクリプタに基づき見つけることができる。
【０１３５】
２０３：オペレーティングシステムは、ファイルＦ１がファイルストレージメモリ領域内に記憶されているかどうかを決定する。
【０１３６】
はいであれば、ステップ２０４を実行する。
【０１３７】
そうでなければ、オペレーティングシステムは、ファイルオープン失敗命令をユーザプロセスＡにフィードバックし得る。
【０１３８】
２０４：オペレーティングシステムは、ファイルＦ１の第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶され、ファイルＦ１の第１のインデックスノードも、ファイルストレージメモリ領域に記憶される。
【０１３９】
たとえば、図２−ｂに示されているように、図２−ｂは、コンピューティングノードのメモリの概略図を例示的に示している。コンピューティングノードのメモリは、ユーザプロセス作業メモリ領域Ｓ１、カーネルプロセス作業メモリ領域Ｓ２、及びファイルストレージメモリ領域Ｓ３を含み得る。
【０１４０】
たとえば、ユーザプロセス作業メモリ領域Ｓ１は、ユーザプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。ユーザプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、ユーザプロセスの実行中のヒープ、スタック、メモリマッピング領域、ユーザプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０１４１】
別の例として、カーネルプロセス作業メモリ領域Ｓ２は、カーネルプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。カーネルプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、カーネルプロセスの実行中のヒープ、スタック、メモリマッピング領域、カーネルプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０１４２】
本発明のいくつかの実施形態において、ファイルストレージメモリ領域Ｓ３は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、ファイルストレージメモリ領域Ｓ３の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域Ｓ２又はユーザプロセス作業メモリ領域Ｓ１など）は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、プロセス作業メモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域Ｓ２又はユーザプロセス作業メモリ領域Ｓ１など）及びファイルストレージメモリ領域は、互いに重なり合わない。たとえば、図２−ｃに例示的に示されているように、本発明のいくつかの実施形態において、ユーザプロセス作業メモリ領域Ｓ１及びカーネルプロセス作業メモリ領域Ｓ２は、ＤＲＡＭ内に配置されるものとしてよく、ファイルストレージメモリ領域Ｓ３は、ＮＶＭ内に配置されるものとしてよい。
【０１４３】
ファイルストレージメモリ領域Ｓ３は、ファイルシステムを記憶するために使用される物理メモリ領域を指すものとしてよく、ファイルシステムのさまざまな情報は、ファイルストレージメモリ領域に記憶されるものとしてよく、たとえば、ファイルシステムのインデックスノード及びファイルは、ファイルストレージメモリ領域に記憶されるものとしてよく、ファイルシステムのスーパーブロック（存在する場合）などの情報は、ファイルストレージメモリ領域にさらに記憶されるものとしてよい。たとえば、図２−ｄに例示的に示されているように、ファイルストレージメモリ領域Ｓ３は、スーパーブロックと、ファイルインデックスノードを記憶するために使用されるインデックスノード領域と、ファイルを記憶するために使用されるファイルデータ領域とを含み得る。
【０１４４】
本発明のいくつかの実施形態において、第１のファイルページテーブルを指すために使用されるポインタは、ファイルＦ１の第１のインデックスノードに記録されるものとしてよく（第１のファイルページテーブルを指すために使用されるポインタは、第１のファイルページテーブルの開始物理アドレスを含み得る）、ここで、第１のファイルページテーブルは、ファイルストレージメモリ領域Ｓ３内の、ファイルＦ１が記憶されているメモリ領域を指すために使用され、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間である。第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【０１４５】
本発明のこの実施形態では、データ構造がメモリページテーブルのデータ構造に類似しているか、又は同等であるファイルページテーブルが、単一のファイルを記憶するために使用されるメモリページを編成するために使用され、ファイルページテーブルは、１レベル又はマルチレベルファイルページテーブルであってよい。ファイルページテーブルの次のレベルの開始物理アドレスは、ファイルページテーブルの最下位以外のレベルの間のファイルページテーブルの各レベルの各エントリに記録される。さらに、ファイルを記憶するためのメモリページの開始物理アドレスは、ファイルページテーブルの最下位レベルの各エントリに記録される。図２−ｅに示されているように、図２−ｅは、第１のファイルページテーブルがＰＵＤレベル、ＰＭＤレベル、及びＰＴＥレベルである、３つのレベルのファイルページテーブルであることを例示しており、ここで、ＰＭＤの開始物理アドレスは、ＰＵＤ内の各エントリに記録され、ＰＴＥの開始物理アドレスは、各ＰＭＤの各エントリに記録され、メモリページの開始物理アドレス（ここで、メモリページはファイルＦ１のファイルコンテンツを記憶する）は、ＰＴＥの各エントリに記録される。３レベルファイルページテーブルは、各ファイルについて使用される必要はなく、３レベルページテーブルが使用される場合であっても、３レベルページテーブルは必ずしも固定フォーマットを有する必要はなく、たとえば、１０２４のＰＴＥは各ファイルに必ずしも必要でなく、ファイルページテーブルの編成アーキテクチャは、ファイルのサイズ変更に従って動的に調整され得ることは理解できる。たとえば、３レベルファイルページテーブルの第１のレベルのファイルページテーブルＰＵＤを指すポインタ（ＰＵＤの開始物理アドレスなど）は、第１のインデックスノードに記録され得る。
【０１４６】
各ファイルは、インデックスノード（ｉｎｏｄｅ）に対応し、たとえば、第１のインデックスノードは、ファイルページテーブルを指すために使用されるポインタ（Ｐｏｉｎｔｅｒ）を含み、ファイルＦ１の最高位レベルのファイルページテーブル（ＰＵＤ）が属している物理メモリページの開始物理アドレスは、そのポインタに特に記憶される。
【０１４７】
ファイルＦ１の第１のインデックスノードは、ファイルＦ１のメタデータをさらに含むものとしてよく、ファイルＦ１のメタデータは、ファイルＦ１の属性情報（ファイルサイズ、ファイルタイプ、ファイル変更時刻、ファイル作成時刻など）を含む。
【０１４８】
各ファイルのファイルページテーブルは、ファイルストレージメモリ領域のファイルデータ領域に記憶されることは理解され得る。ファイルストレージメモリ領域のバイトアドレス指定可能な特性、及びファイルページテーブルのリンクリストベースの編成形式により、ファイルページテーブルは、固定領域内に置かれる必要はなく、一般ファイルとして使用され、ファイルデータ領域に記憶されるだけでよい。
【０１４９】
２０５：オペレーティングシステムは、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルＦ１が記憶されているメモリ領域の第１の物理アドレス空間を取得する。
【０１５０】
第１のインデックスノードは、ファイルＦ１の第１のファイルページテーブルを指すために使用されるポインタを含み、したがって、ファイルＦ１の第１のファイルページテーブルを指すために使用されるポインタは、第１のインデックスノードに基づき取得され得る。ファイルＦ１の第１のファイルページテーブルを指すために使用されるポインタが取得されるので、ファイルＦ１の第１のファイルページテーブルが取得されるものとしてよく、次いで、ファイルストレージメモリ領域内の、ファイルＦ１が記憶されているメモリ領域の第１の物理アドレス空間は、ファイルＦ１の第１のファイルページテーブルに基づき取得されるものとしてよい。
【０１５１】
２０６：オペレーティングシステムは、第１の仮想アドレス空間をファイルに割り振る。
【０１５２】
本発明のいくつかの実施形態において、予め設定されたサイズの第１の仮想アドレス空間は、ファイルに割り振られ得る（たとえば、第１の仮想アドレス空間のサイズは、システムの最大仮想アドレス空間を同時に開くことがシステムによってサポートされているファイルの最大数で割った数以下であり得る）。代替的に、ファイルのファイルタイプに対応するサイズの第１の仮想アドレス空間も、ファイルタイプに従ってファイルに割り振られ得る。たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズに等しくないものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズ未満であるものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、１ＭＢ、２ＭＢ、１０ＭＢ、３０ＭＢなどであり、データファイルに対応する仮想アドレス空間のサイズは、１００ＭＢ、５００ＭＢ、１ＧＢ、１０ＧＢ、１００ＧＢ、２ＴＢなどである。
【０１５３】
２０７：オペレーティングシステムは、メモリページテーブルを使用することによって第１の仮想−物理アドレスマッピング関係を記録する。
【０１５４】
第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０１５５】
本発明のいくつかの実施形態において、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録することは、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリ（１つ又は複数のエントリであってよい）を追加することを含むものとしてよく、ここで、エントリは第１のファイルページテーブルを指すために使用されるポインタを含む（第１のファイルページテーブルを指すために使用されるポインタは、第１のファイルページテーブルの開始物理アドレスを含み得る）。たとえば、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるものとしてよく、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであるものとしてよく、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。いくつかの特別な適用シナリオにおいて、第１の仮想−物理アドレスマッピング関係を記録するために使用され、メモリページテーブルに追加されるエントリ（１つ又は複数のエントリであってよい）も、メモリページテーブル内のメモリページテーブルのいずれかのレベルのエントリであってよい。
【０１５６】
本発明のいくつかの実施形態において、第１の仮想アドレス空間、第１の仮想アドレス空間の開始アドレス、及び第１の仮想アドレス空間の終端アドレスのうちの少なくとも１つは、第１のインデックスノードにさらに記録され得る、及び／又は第１の仮想アドレス空間、第１の仮想アドレス空間の開始アドレス、及び第１の仮想アドレス空間の終端アドレスのうちの少なくとも１つは、ファイルに対応するファイルオブジェクトにさらに記録され得る。
【０１５７】
本発明のいくつかの実施形態において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。本発明のいくつかの実施形態において、第１の仮想アドレス空間は、カーネル仮想アドレス空間内に配置されるか、又は第１の仮想アドレス空間は、ユーザプロセス仮想アドレス空間内に配置される。
【０１５８】
２０８：オペレーティングシステムは、ファイルＦ１のファイルディスクリプタをユーザプロセスＡにフィードバックする。
【０１５９】
ユーザプロセスＡは、ファイルＦ１のファイルディスクリプタに基づきファイルＦ１上の読み取り／書き込み操作を開始することができる。
【０１６０】
この実施形態の技術的解決方法において、ファイル識別子を搬送するファイルオープン要求が受信された後に、ファイル識別子によって表されるファイルがファイルストレージメモリ領域に記憶されているかどうかが決定されるものとしてよく、ファイルが、ファイルストレージメモリ領域内に記憶されている場合、ファイルの第１のインデックスノードが、取得され、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間が、第１のインデックスノードに基づき取得され、第１の仮想アドレス空間は、ファイルに割り振られ、第１の仮想−物理アドレスマッピング関係は、メモリページテーブルを使用することによって記録され、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む、ことがわかる。第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。さらに、仮想アドレス空間は、ファイルを開くことが要求されたときのみファイルに割り振られるので、これはシステムの仮想アドレス空間の不効率な占有の可能性及びアドレス衝突の可能性を低減することに役立ち、システムの仮想アドレス空間の利用効率を改善することに役立つ。
【０１６１】
さらに、連続仮想アドレス空間は、ファイルオープンプロセスにおいてファイルに割り振られるものとしてよく、したがって、これは、ファイルを読み取る／書き込むための開始仮想アドレスから始めて、１回で必要な読み取り／書き込み長の範囲内のメモリページにアクセスすることに役立ち、ソフトウェア層において複数回異なるメモリページの対応する仮想アドレスを探索することを必要としない。このように、ファイルのシーケンシャルアクセス速度は、きわめて高速になり得る。
【０１６２】
ＭＭＵを用いることで、ファイルの仮想アドレスと物理アドレスとの間の変換は、トランスペアレントに完遂されるものとしてよく、このことは、ファイルアクセス速度を上げることに役立ち、又はゼロオーバーヘッドを実装することにすら役立つ。
【０１６３】
さらに、データ構造がメモリページテーブルのデータ構造に類似しているか、又は同じであるファイルページテーブルが、ファイルストレージメモリ領域内の、ファイルコンテンツを記憶するためのメモリページを指すために使用される場合に、ファイルページテーブルのデータ構造は、メモリページテーブルのデータ構造に類似しているか、又は同じであるので、これは、ページテーブルのデータ構造の間のゼロ変換を実装することに役立ち、ファイルコンテンツを記憶するためのメモリページが変化したときにファイルページテーブル上のファイルの物理アドレス空間と仮想アドレス空間との間にマッピング関係を再確立する操作を実行することを必要としなくてよい。ファイルページテーブルを更新することによって、更新されたファイルページテーブルを指すために使用されるポインタがファイルページテーブルのエントリ内に挿入され、それによって、ファイルの物理アドレスと仮想アドレスとの間のマッピングの再確立を完遂し、この方式は、ファイルのサイズに無関係な一定の時間内にファイルの物理アドレスと仮想アドレスとの間のマッピングを再確立することに役立つ。
【０１６４】
さらに、独立した仮想アドレス空間が、異なるファイルに割り振られるものとしてよく、それにより、ファイルシステムの、ファイルストレージメモリ領域内のファイルは、システム仮想アドレス及びＭＭＵによって保護され、このことは、ファイルが誤って書き込まれる可能性を大幅に低減し、ファイルを適切に保護できるだけでなく、追加の書き込み保護メカニズムも必要とせず、それにより、システムを簡素化することに役立つ。
【０１６５】
さらに、ファイルが仮想アドレスを使用することによってアクセスされ、ファイルのサイズは、システム仮想アドレス空間のサイズ、及び同時に開くことがオペレーティングシステムによってサポートされているファイルの数のみに影響され、サイズも数も、ファイルシステムに対する制限にならず、したがって、ファイルのサイズは、ファイルシステムの設計によって制限され得ない。
【０１６６】
さらに、メモリ管理の方式に類似する方式がファイルシステムにおいて使用され、両方の方式において、記憶媒体が仮想アドレスを使用することによってアクセスされ、仮想アドレスと物理アドレスとの間の変換は、ＭＭＵを使用することによって実行されるものとしてよく、カーネル内の変更は比較的小さいものとしてよく、このことは、ファイルシステムを既存のオペレーティングシステムに移行させることにも役立つ。
【０１６７】
図３を参照すると、図３は、本発明の別の実施形態による別のファイルアクセス方法の概略流れ図である。本発明の別の実施形態で提供される別のファイルアクセス方法は、以下の内容を含み得る。
【０１６８】
３０１：オペレーティングシステムは、ファイル識別子を搬送し、ユーザプロセス（以下ではユーザプロセスＡとして参照されている）に由来するファイルオープン要求を受信する。
【０１６９】
本発明のいくつかの実施形態において、ファイルオープン要求は、ファイルストレージパス（すなわち、開くように要求されたファイルのストレージパス）を搬送するものとしてよく、ここで、ファイル識別子は、ファイルストレージパスに含まれるものとしてよく、確かに、ファイルオープン要求は、ファイル識別子も搬送するものとしてよく、ファイルストレージパスを搬送しないものとしてよい。さらに、ファイルオープン要求は、ファイルタイプフラグビットをさらに搬送するものとしてよく、ここで、ファイルタイプフラグビットは、ファイル識別子によって表されるファイルのファイルタイプを指示し得る（ファイルタイプは、ディレクトリファイル若しくはデータファイルであってよい）。
【０１７０】
３０２：オペレーティングシステムは、ファイル識別子によって表されるファイルに対応するファイルオブジェクトを作成し（ファイルは以下ではファイルＦ１として参照される）、ファイルディスクリプタをファイルＦ１に割り振り、ここで、ファイルＦ１のファイルオブジェクトは、ファイルＦ１のファイルディスクリプタに基づき見つけることができる。
【０１７１】
３０３：オペレーティングシステムは、ファイルＦ１がファイルストレージメモリ領域内に記憶されているかどうかを決定する。
【０１７２】
はいであれば、ステップ３０４を実行する。
【０１７３】
そうでなければ、ステップ３０８にスキップする。
【０１７４】
３０４：オペレーティングシステムは、ファイルＦ１の第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶され、ファイルＦ１の第１のインデックスノードも、ファイルストレージメモリ領域に記憶される。
【０１７５】
たとえば、図２−ｂに示されているように、図２−ｂは、コンピューティングノードのメモリの概略図を例示的に示している。コンピューティングノードのメモリは、ユーザプロセス作業メモリ領域Ｓ１、カーネルプロセス作業メモリ領域Ｓ２、及びファイルストレージメモリ領域Ｓ３を含み得る。
【０１７６】
たとえば、ユーザプロセス作業メモリ領域Ｓ１は、ユーザプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。ユーザプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、ユーザプロセスの実行中のヒープ、スタック、メモリマッピング領域、ユーザプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０１７７】
別の例として、カーネルプロセス作業メモリ領域Ｓ２は、カーネルプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。カーネルプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、カーネルプロセスの実行中のヒープ、スタック、メモリマッピング領域、カーネルプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０１７８】
本発明のいくつかの実施形態において、ファイルストレージメモリ領域Ｓ３は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、ファイルストレージメモリ領域Ｓ３の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域Ｓ２又はユーザプロセス作業メモリ領域Ｓ１など）は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、プロセス作業メモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域Ｓ２又はユーザプロセス作業メモリ領域Ｓ１など）及びファイルストレージメモリ領域は、互いに重なり合わない。たとえば、図２−ｃに例示的に示されているように、本発明のいくつかの実施形態において、ユーザプロセス作業メモリ領域Ｓ１及びカーネルプロセス作業メモリ領域Ｓ２は、ＤＲＡＭ内に配置されるものとしてよく、ファイルストレージメモリ領域Ｓ３は、ＮＶＭ内に配置されるものとしてよい。
【０１７９】
ファイルストレージメモリ領域Ｓ３は、ファイルシステムを記憶するために使用される物理メモリ領域を指すものとしてよく、ファイルシステムのさまざまな情報は、ファイルストレージメモリ領域に記憶されるものとしてよく、たとえば、ファイルシステムのインデックスノード及びファイルは、ファイルストレージメモリ領域に記憶されるものとしてよく、ファイルシステムのスーパーブロック（存在する場合）などの情報は、ファイルストレージメモリ領域にさらに記憶されるものとしてよい。たとえば、図２−ｄに例示的に示されているように、ファイルストレージメモリ領域Ｓ３は、スーパーブロックと、ファイルインデックスノードを記憶するために使用されるインデックスノード領域と、ファイルを記憶するために使用されるファイルデータ領域とを含むものとしてよく、ここで、インデックスノードを指すために使用されるポインタは、スーパーブロックに記憶されるものとしてよく、ここで、すべてのインデックスノードを指すために使用されるポインタ又はルートディレクトリファイルのインデックスノードを指すために使用されるポインタは、スーパーブロックに記憶されるものとしてよい。
【０１８０】
本発明のいくつかの実施形態において、第１のファイルページテーブルを指すために使用されるポインタは、ファイルＦ１の第１のインデックスノードに記録されるものとしてよく（第１のファイルページテーブルを指すために使用されるポインタは、第１のファイルページテーブルの開始物理アドレスを含み得る）、ここで、第１のファイルページテーブルは、ファイルストレージメモリ領域Ｓ３内の、ファイルＦ１が記憶されているメモリ領域を指すために使用され、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間である。第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【０１８１】
本発明のこの実施形態では、データ構造がメモリページテーブルのデータ構造に類似しているか、又は同等であるファイルページテーブルが、単一のファイルを記憶するために使用されるメモリページを編成するために使用され、ファイルページテーブルは、１レベル又はマルチレベルファイルページテーブルであってよい。ファイルページテーブルの次のレベルの開始物理アドレスは、ファイルページテーブルの最下位以外のレベルの間のファイルページテーブルの各レベルの各エントリに記録される。さらに、ファイルを記憶するためのメモリページの開始物理アドレスは、ファイルページテーブルの最下位レベルの各エントリに記録される。図２−ｅに示されているように、図２−ｅは、第１のファイルページテーブルがＰＵＤレベル、ＰＭＤレベル、及びＰＴＥレベルである、３つのレベルのファイルページテーブルであることを例示しており、ここで、ＰＭＤの開始物理アドレスは、ＰＵＤ内の各エントリに記録され、ＰＴＥの開始物理アドレスは、各ＰＭＤの各エントリに記録され、メモリページの開始物理アドレス（ここで、メモリページはファイルＦ１のファイルコンテンツを記憶する）は、ＰＴＥの各エントリに記録される。３レベルファイルページテーブルは、各ファイルについて使用される必要はなく、３レベルページテーブルが使用される場合であっても、３レベルページテーブルは必ずしも固定フォーマットを有する必要はなく、たとえば、１０２４のＰＴＥは各ファイルに必ずしも必要でなく、ファイルページテーブルの編成アーキテクチャは、ファイルのサイズ変更に従って動的に調整され得ることは理解できる。たとえば、３レベルファイルページテーブルの第１のレベルのファイルページテーブルＰＵＤを指すポインタ（ＰＵＤの開始物理アドレスなど）は、第１のインデックスノードに記録され得る。
【０１８２】
各ファイルは、インデックスノード（ｉｎｏｄｅ）に対応し、たとえば、第１のインデックスノードは、ファイルページテーブルを指すために使用されるポインタ（Ｐｏｉｎｔｅｒ）を含み、ファイルＦ１の最高位レベルのファイルページテーブル（ＰＵＤ）が属している物理メモリページの開始物理アドレスは、そのポインタに特に記憶される。
【０１８３】
ファイルＦ１の第１のインデックスノードは、ファイルＦ１のメタデータをさらに含むものとしてよく、ファイルＦ１のメタデータは、ファイルＦ１の属性情報（ファイルサイズ、ファイルタイプ、ファイル変更時刻、ファイル作成時刻など）を含む。
【０１８４】
各ファイルのファイルページテーブルは、ファイルストレージメモリ領域のファイルデータ領域に記憶されることは理解され得る。ファイルストレージメモリ領域のバイトアドレス指定可能な特性、及びファイルページテーブルのリンクリストベースの編成形式により、ファイルページテーブルは、固定領域内に置かれる必要はなく、一般ファイルとして使用され、ファイルデータ領域に記憶されるだけでよい。
【０１８５】
３０５：オペレーティングシステムは、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルＦ１が記憶されているメモリ領域の第１の物理アドレス空間を取得する。
【０１８６】
第１のインデックスノードは、ファイルＦ１の第１のファイルページテーブルを指すために使用されるポインタを含み、したがって、ファイルＦ１の第１のファイルページテーブルを指すために使用されるポインタは、第１のインデックスノードに基づき取得され得る。ファイルＦ１の第１のファイルページテーブルを指すために使用されるポインタが取得されるので、ファイルＦ１の第１のファイルページテーブルが取得されるものとしてよく、次いで、ファイルストレージメモリ領域内の、ファイルＦ１が記憶されているメモリ領域の第１の物理アドレス空間は、ファイルＦ１の第１のファイルページテーブルに基づき取得されるものとしてよい。
【０１８７】
３０６：オペレーティングシステムは、第１の仮想アドレス空間をファイルに割り振る。
【０１８８】
本発明のいくつかの実施形態において、予め設定されたサイズの第１の仮想アドレス空間は、ファイルに割り振られ得る（たとえば、第１の仮想アドレス空間のサイズは、システムの最大仮想アドレス空間を同時に開くことがシステムによってサポートされているファイルの最大数で割った数以下であり得る）。代替的に、ファイルのファイルタイプに対応するサイズの第１の仮想アドレス空間も、ファイルタイプに従ってファイルに割り振られ得る。たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズに等しくないものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズ未満であるものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、１ＭＢ、２ＭＢ、１０ＭＢ、３０ＭＢなどであり、データファイルに対応する仮想アドレス空間のサイズは、１００ＭＢ、５００ＭＢ、１ＧＢ、１０ＧＢ、１００ＧＢ、２ＴＢなどである。
【０１８９】
３０７：オペレーティングシステムは、メモリページテーブルを使用することによって第１の仮想−物理アドレスマッピング関係を記録する。ステップ３１１にスキップする。
【０１９０】
第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０１９１】
本発明のいくつかの実施形態において、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録することは、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリ（１つ又は複数のエントリであってよい）を追加することを含むものとしてよく、ここで、エントリは第１のファイルページテーブルを指すために使用されるポインタを含む（第１のファイルページテーブルを指すために使用されるポインタは、第１のファイルページテーブルの開始物理アドレスを含み得る）。たとえば、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるものとしてよく、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであるものとしてよく、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。いくつかの特別な適用シナリオにおいて、第１の仮想−物理アドレスマッピング関係を記録するために使用され、メモリページテーブルに追加されるエントリ（１つ又は複数のエントリであってよい）も、メモリページテーブル内のメモリページテーブルのいずれかのレベルのエントリであってよい。
【０１９２】
本発明のいくつかの実施形態において、第１の仮想アドレス空間、第１の仮想アドレス空間の開始アドレス、及び第１の仮想アドレス空間の終端アドレスのうちの少なくとも１つは、第１のインデックスノードにさらに記録され得る、及び／又は第１の仮想アドレス空間、第１の仮想アドレス空間の開始アドレス、及び第１の仮想アドレス空間の終端アドレスのうちの少なくとも１つは、ファイルに対応するファイルオブジェクトにさらに記録され得る。
【０１９３】
本発明のいくつかの実施形態において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。本発明のいくつかの実施形態において、第１の仮想アドレス空間は、カーネル仮想アドレス空間内に配置されるか、又は第１の仮想アドレス空間は、ユーザプロセス仮想アドレス空間内に配置される。
【０１９４】
３０８：オペレーティングシステムは、ファイルＦ１をファイルストレージメモリ領域内に作成し、第２のインデックスノードを作成されたファイルＦ１に割り振り、ここで、ファイルＦ１の第２のインデックスノードも、ファイルストレージメモリ領域に記憶される。
【０１９５】
本発明のいくつかの実施形態において、第２のファイルページテーブルを指すために使用されるポインタは、ファイルＦ１の第２のインデックスノードに記録されるものとしてよく、ここで、第２のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルＦ１が記憶されているメモリ領域の第２の物理アドレス空間を指すために使用され、第２のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【０１９６】
本発明のこの実施形態では、データ構造がメモリページテーブルのデータ構造に類似しているか、又は同等であるファイルページテーブルが、単一のファイルを記憶するために使用されるメモリページを編成するために使用され、第２のファイルページテーブルは、１レベル又はマルチレベルファイルページテーブルであってよい。ファイルページテーブルの次のレベルの開始物理アドレスは、ファイルページテーブルの最下位以外のレベルの間のファイルページテーブルの各レベルの各エントリに記録される。さらに、ファイルを記憶するためのメモリページの開始物理アドレスは、ファイルページテーブルの最下位レベルの各エントリに記録される。
【０１９７】
各ファイルは、インデックスノード（ｉｎｏｄｅ）に対応し、たとえば、第２のインデックスノードは、ファイルページテーブルを指すために使用されるポインタ（Ｐｏｉｎｔｅｒ）を含み、ファイルＦ１の最高位レベルのファイルページテーブルが属している物理メモリページの開始物理アドレスは、そのポインタに特に記憶される。
【０１９８】
ファイルＦ１の第２のインデックスノードは、ファイルＦ１のメタデータをさらに含むものとしてよく、ファイルＦ１のメタデータは、ファイルＦ１の属性情報（ファイルサイズ、ファイルタイプ、ファイル変更時刻、ファイル作成時刻など）を含む。
【０１９９】
各ファイルのファイルページテーブルは、ファイルストレージメモリ領域のファイルデータ領域に記憶されることは理解され得る。ファイルストレージメモリ領域のバイトアドレス指定可能な特性、及びファイルページテーブルのリンクリストベースの編成形式により、第２のファイルページテーブルは、固定領域内に置かれる必要はなく、一般ファイルとして使用され、ファイルデータ領域に記憶されるだけでよい。
【０２００】
３０９：オペレーティングシステムは、第２の仮想アドレス空間をファイルＦ１に割り振る。
【０２０１】
本発明のいくつかの実施形態において、予め設定されたサイズの第２の仮想アドレス空間は、ファイルに割り振られ得る（たとえば、第２の仮想アドレス空間のサイズは、システムの最大仮想アドレス空間を同時に開くことがシステムによってサポートされているファイルの最大数で割った数以下であり得る）。代替的に、ファイルのファイルタイプに対応するサイズの第２の仮想アドレス空間も、ファイルタイプに従ってファイルに割り振られ得る。たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズに等しくないものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズ未満であるものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、１ＭＢ、２ＭＢ、１０ＭＢ、３０ＭＢなどであり、データファイルに対応する仮想アドレス空間のサイズは、１００ＭＢ、５００ＭＢ、１ＧＢ、１０ＧＢ、１００ＧＢ、２ＴＢなどある。
【０２０２】
３１０：オペレーティングシステムは、メモリページテーブルを使用することによって第２の仮想−物理アドレスマッピング関係を記録する。ステップ３１１にスキップする。
【０２０３】
第２の仮想−物理アドレスマッピング関係は、第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０２０４】
本発明のいくつかの実施形態において、メモリページテーブルを使用することで第２の仮想−物理アドレスマッピング関係を記録することは、メモリページテーブルに、第２の仮想−物理アドレスマッピング関係を記録するために使用されるエントリ（１つ又は複数のエントリであってよい）を追加することを含むものとしてよく、ここで、エントリは、第２のファイルページテーブルを指すために使用されるポインタを含む。たとえば、メモリページテーブルのレベルの総数はＹであり、第２のファイルページテーブルのレベルの総数はＸであり、エントリが、第２のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるものとしてよく、又はエントリが、第２のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであるものとしてよく、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。いくつかの特別な適用シナリオにおいて、第２の仮想−物理アドレスマッピング関係を記録するために使用され、メモリページテーブルに追加されるエントリ（１つ又は複数のエントリであってよい）も、メモリページテーブル内のメモリページテーブルのいずれかのレベルのエントリであってよい。
【０２０５】
本発明のいくつかの実施形態において、第２の仮想アドレス空間、第２の仮想アドレス空間の開始アドレス、及び第２の仮想アドレス空間の終端アドレスのうちの少なくとも１つは、第２のインデックスノードにさらに記録され得る、及び／又は第２の仮想アドレス空間、第２の仮想アドレス空間の開始アドレス、及び第２の仮想アドレス空間の終端アドレスのうちの少なくとも１つは、ファイルに対応するファイルオブジェクトにさらに記録され得る。
【０２０６】
本発明のいくつかの実施形態において、第２の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。本発明のいくつかの実施形態において、第２の仮想アドレス空間は、カーネル仮想アドレス空間内に配置されるか、又は第２の仮想アドレス空間は、ユーザプロセス仮想アドレス空間内に配置される。
【０２０７】
３１１：オペレーティングシステムは、ファイルＦ１のファイルディスクリプタをユーザプロセスＡにフィードバックする。
【０２０８】
ユーザプロセスＡは、ファイルＦ１のファイルディスクリプタに基づきファイルＦ１上の読み取り／書き込み操作を開始することができる。
【０２０９】
この実施形態の技術的解決方法において、ファイル識別子を搬送するファイルオープン要求が受信された後に、ファイル識別子によって表されるファイルがファイルストレージメモリ領域に記憶されているかどうかが決定されるものとしてよく、ファイルが、ファイルストレージメモリ領域内に記憶されている場合、ファイルの第１のインデックスノードが、取得され、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間が、第１のインデックスノードに基づき取得され、第１の仮想アドレス空間は、ファイルに割り振られ、第１の仮想−物理アドレスマッピング関係は、メモリページテーブルを使用することによって記録され、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む、ことがわかる。第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。さらに、仮想アドレス空間は、ファイルを開くことが要求されたときのみファイルに割り振られるので、これはシステムの仮想アドレス空間の不効率な占有の可能性及びアドレス衝突の可能性を低減することに役立ち、システムの仮想アドレス空間の利用効率を改善することに役立つ。
【０２１０】
さらに、連続仮想アドレス空間は、ファイルオープンプロセスにおいてファイルに割り振られるものとしてよく、したがって、これは、ファイルを読み取る／書き込むための開始仮想アドレスから始めて、１回で必要な読み取り／書き込み長の範囲内のメモリページにアクセスすることに役立ち、ソフトウェア層において複数回異なるメモリページの対応する仮想アドレスを探索することを必要としない。このように、ファイルのシーケンシャルアクセス速度は、きわめて高速になり得る。
【０２１１】
ＭＭＵを用いることで、ファイルの仮想アドレスと物理アドレスとの間の変換は、トランスペアレントに完遂されるものとしてよく、このことは、ファイルアクセス速度を上げることに役立ち、又はゼロオーバーヘッドを実装することにすら役立つ。
【０２１２】
さらに、データ構造がメモリページテーブルのデータ構造に類似しているか、又は同じであるファイルページテーブルが、ファイルストレージメモリ領域内の、ファイルコンテンツを記憶するためのメモリページを指すために使用される場合に、ファイルページテーブルのデータ構造は、メモリページテーブルのデータ構造に類似しているか、又は同じであるので、これは、ページテーブルのデータ構造の間のゼロ変換を実装することに役立ち、ファイルコンテンツを記憶するためのメモリページが変化したときにファイルページテーブル上のファイルの物理アドレス空間と仮想アドレス空間との間にマッピング関係を再確立する操作を実行することを必要としなくてよい。ファイルページテーブルを更新することによって、更新されたファイルページテーブルを指すために使用されるポインタがファイルページテーブルのエントリ内に挿入され、それによって、ファイルの物理アドレスと仮想アドレスとの間のマッピングの再確立を完遂し、この方式は、ファイルのサイズに無関係な一定の時間内にファイルの物理アドレスと仮想アドレスとの間のマッピングを再確立することに役立つ。
【０２１３】
さらに、独立した仮想アドレス空間が、異なるファイルに割り振られるものとしてよく、それにより、ファイルシステムの、ファイルストレージメモリ領域内の、ファイルは、システム仮想アドレス及びＭＭＵによって保護され、このことは、ファイルが誤って書き込まれる可能性を大幅に低減し、ファイルを適切に保護できるだけでなく、追加の書き込み保護メカニズムも必要とせず、それにより、システムを簡素化することに役立つ。
【０２１４】
さらに、ファイルが仮想アドレスを使用することによってアクセスされ、ファイルのサイズは、システム仮想アドレス空間のサイズ、及び同時に開くことがオペレーティングシステムによってサポートされているファイルの数のみに影響され、サイズも数も、ファイルシステムに対する制限にならず、したがって、ファイルのサイズは、ファイルシステムの設計によって制限され得ない。
【０２１５】
さらに、メモリ管理の方式に類似する方式がファイルシステムにおいて使用され、両方の方式において、記憶媒体が仮想アドレスを使用することによってアクセスされ、仮想アドレスと物理アドレスとの間の変換は、ＭＭＵを使用することによって実行されるものとしてよく、カーネル内の変更は比較的小さいものとしてよく、このことは、ファイルシステムを既存のオペレーティングシステムに移行させることにも役立つ。
【０２１６】
図４を参照すると、図４は、本発明の別の実施形態による別のファイルアクセス方法の概略流れ図である。図４に示されているファイルアクセス方法は、図２−ａ又は図３に示されている技術的解決方法が完全に実行された後に実施され得る。本発明の別の実施形態で提供される別のファイルアクセス方法は、以下の内容を含み得る。
【０２１７】
４０１：オペレーティングシステムは、ファイルＦ１のファイルコンテンツを読み取ることを要求するために使用され、ユーザプロセスＡによって送信されるファイル読み取り要求を受信し、ここで、ファイル読み取り要求は、読み込みメモリアドレス空間及びファイルＦ１内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送する。
【０２１８】
さらに、ファイル読み取り要求は、ファイルのファイルディスクリプタをさらに搬送し得る。
【０２１９】
読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間である。
【０２２０】
４０２：オペレーティングシステムは、ファイルディスクリプタに基づき、ファイルＦ１の第１のインデックスノード又はファイルＦ１のファイルオブジェクトを見つけ、ファイルＦ１の第１のインデックスノード又はファイルオブジェクトに基づき、第１の仮想アドレス空間の開始アドレスを取得する。
【０２２１】
４０３：オペレーティングシステムは、第１のファイルコンテンツオフセット及び第１の仮想アドレス空間の開始アドレスに基づき、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスを取得する。
【０２２２】
４０４：オペレーティングシステムは、開始読み取り仮想アドレス及び第１の仮想−物理アドレスマッピング関係に基づき、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための開始読み取り物理アドレスを取得する。
【０２２３】
４０５：オペレーティングシステムは、開始読み取り物理アドレス及び第１のファイルコンテンツのデータボリュームに基づき、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間を取得する。
【０２２４】
４０６：オペレーティングシステムは、読み取り物理アドレス空間に基づき、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取り、読み込みメモリアドレス空間に基づき、第１のファイルコンテンツを第１のメモリ領域に書き込む。
【０２２５】
この実施形態の技術的解決方法において、第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、ファイルコンテンツが読み取られるときに、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。
【０２２６】
図５を参照すると、図５は、本発明の別の実施形態による別のファイルアクセス方法の概略流れ図である。図５に示されているファイルアクセス方法は、図２−ａ又は図３に示されている技術的解決方法が完全に実行された後に実施され得る。本発明の別の実施形態で提供される別のファイルアクセス方法は、以下の内容を含み得る。
【０２２７】
５０１：オペレーティングシステムは、ファイルＦ１の第１のファイルコンテンツを読み取ることを要求するために使用され、ユーザプロセスＡによって送信されるファイル読み取り要求を受信し、ここで、ファイル読み取り要求は、読み込みメモリアドレス空間及びファイルＦ１内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送する。
【０２２８】
さらに、ファイル読み取り要求は、ファイルのファイルディスクリプタをさらに搬送し得る。
【０２２９】
読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間である。
【０２３０】
５０２：オペレーティングシステムは、ファイルディスクリプタに基づき、ファイルＦ１の第１のインデックスノード又はファイルＦ１のファイルオブジェクトを見つけ、ファイルＦ１の第１のインデックスノード又はファイルオブジェクトに基づき、第１の仮想アドレス空間の開始アドレスを取得する。
【０２３１】
５０３：オペレーティングシステムは、第１のファイルコンテンツオフセット及び第１の仮想アドレス空間の開始アドレスに基づき、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスを取得する。
【０２３２】
５０４：オペレーティングシステムは、開始読み取り仮想アドレス及び第１のファイルコンテンツのデータボリュームに基づき、第１のファイルコンテンツを読み取るための読み取り仮想アドレス空間を取得する。
【０２３３】
５０５：オペレーティングシステムは、読み取り仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係に基づき、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間を取得し得る。
【０２３４】
５０６：オペレーティングシステムは、読み取り物理アドレス空間に基づき、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取り、読み込みメモリアドレス空間に基づき、第１のファイルコンテンツを第１のメモリ領域に書き込む。
【０２３５】
この実施形態の技術的解決方法において、第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、ファイルコンテンツが読み取られるときに、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。
【０２３６】
図６を参照すると、図６は、本発明の別の実施形態による別のファイルアクセス方法の概略流れ図である。図６に示されているファイルアクセス方法は、図２−ａ又は図３に示されている技術的解決方法が完全に実行された後に実施され得る。本発明の別の実施形態で提供される別のファイルアクセス方法は、以下の内容を含み得る。
【０２３７】
６０１：オペレーティングシステムは、第２のファイルコンテンツをファイルＦ１に書き込むことを要求し、ユーザプロセスＡによって送信されるファイル書き込み要求を受信し、ここで、ファイル書き込み要求は、読み出しメモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送する。
【０２３８】
さらに、ファイル書き込み要求は、ファイルのファイルディスクリプタをさらに搬送し得る。
【０２３９】
読み出しメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第２のメモリ領域のアドレス空間である。
【０２４０】
６０２：オペレーティングシステムは、ファイルディスクリプタに基づき、ファイルＦ１の第１のインデックスノード又はファイルＦ１のファイルオブジェクトを見つけるものとしてよく、オペレーティングシステムは、ファイルＦ１の第１のインデックスノード又はファイルオブジェクトに基づき、第１の仮想アドレス空間の開始アドレスを取得する。
【０２４１】
６０３：オペレーティングシステムは、第２のファイルコンテンツオフセット及び第１の仮想アドレス空間の開始アドレスに基づき、第２のファイルコンテンツをファイルＦ１に書き込むための開始書き込み仮想アドレスを取得し得る。
【０２４２】
６０４：オペレーティングシステムは、開始書き込み仮想アドレス及び第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツをファイルストレージメモリ領域のファイルＦ１に書き込むための開始書き込み物理アドレスを取得し得る。
【０２４３】
６０５：オペレーティングシステムは、開始書き込み物理アドレス及び第２のファイルコンテンツのデータボリュームに基づき、第２のファイルコンテンツをファイルストレージメモリ領域のファイルＦ１に書き込むための書き込み物理アドレス空間を取得し得る。
【０２４４】
６０６：オペレーティングシステムは、読み出しメモリアドレス空間に基づき、第２のメモリ領域から第２のファイルコンテンツを読み取り、オペレーティングシステムは、書き込み物理アドレス空間に基づき、読み取ることによって取得された第２のファイルコンテンツを第３のメモリ領域に書き込む。
【０２４５】
この実施形態の技術的解決方法において、第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、ファイルコンテンツが書き込まれるときに、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。
【０２４６】
図７を参照すると、図７は、本発明の別の実施形態による別のファイルアクセス方法の概略流れ図である。図７に示されているファイルアクセス方法は、図２−ａ又は図３に示されている技術的解決方法が完全に実行された後に実施され得る。本発明の別の実施形態で提供される別のファイルアクセス方法は、以下の内容を含み得る。
【０２４７】
７０１：オペレーティングシステムは、第２のファイルコンテンツをファイルＦ１に書き込むことを要求し、ユーザプロセスＡによって送信されるファイル書き込み要求を受信し、ここで、ファイル書き込み要求は、読み出しメモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送する。
【０２４８】
さらに、ファイル書き込み要求は、ファイルのファイルディスクリプタをさらに搬送し得る。
【０２４９】
読み出しメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第２のメモリ領域のアドレス空間である。
【０２５０】
７０２：オペレーティングシステムは、ファイルディスクリプタに基づき、ファイルＦ１の第１のインデックスノード又はファイルＦ１のファイルオブジェクトを見つけ、ファイルＦ１の第１のインデックスノード又はファイルオブジェクトに基づき、第１の仮想アドレス空間の開始アドレスを取得し得る。
【０２５１】
７０３：オペレーティングシステムは、第２のファイルコンテンツオフセット及び第１の仮想アドレス空間の開始アドレスに基づき、第２のファイルコンテンツをファイルＦ１に書き込むための開始書き込み仮想アドレスを取得し得る。
【０２５２】
７０４：オペレーティングシステムは、開始書き込み仮想アドレス及び第２のファイルコンテンツのデータボリュームに基づき、第２のファイルコンテンツをファイルＦ１に書き込むための書き込み仮想アドレス空間を取得し得る。
【０２５３】
７０５：オペレーティングシステムは、書き込み仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツをファイルストレージメモリ領域のファイルＦ１に書き込むための書き込み物理アドレス空間を取得し得る。
【０２５４】
７０６：オペレーティングシステムは、読み出しメモリアドレス空間に基づき、第２のメモリ領域から第２のファイルコンテンツを読み取り、オペレーティングシステムは、書き込み物理アドレス空間に基づき、読み取ることによって取得された第２のファイルコンテンツを第３のメモリ領域に書き込む。
【０２５５】
この実施形態の技術的解決方法において、第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、ファイルコンテンツが書き込まれるときに、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。
【０２５６】
図８を参照すると、図８は、本発明の別の実施形態による別のファイルアクセス方法の概略流れ図である。図８に示されているファイルアクセス方法は、図２−ａ又は図３から図７のいずれか１つに示されている技術的解決方法が完全に実行された後に実施され得る。本発明の別の実施形態で提供される別のファイルアクセス方法は、以下の内容を含み得る。
【０２５７】
８０１：オペレーティングシステムは、ファイルＦ１を閉じることを要求し、ユーザプロセスＡによって送信されるファイルクローズ要求を受信し、ここで、ファイルクローズ要求は、ファイルのファイルディスクリプタをさらに搬送し得る。
【０２５８】
８０２：オペレーティングシステムは、ファイルに割り振られた第１の仮想アドレス空間又は第２の仮想アドレス空間を解放する。
【０２５９】
８０３：オペレーティングシステムは、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係又は第２の仮想−物理アドレスマッピング関係を解放する。
【０２６０】
８０４：オペレーティングシステムは、ファイルＦ１に対応するファイルオブジェクトを解放する。
【０２６１】
この実施形態の技術的解決方法において、第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。さらに、仮想アドレス空間は、ファイルを開くことが要求されたときのみファイルに割り振られ、ファイルに割り振られた仮想アドレス空間は、ファイルが閉じられたときに解放されるので、これはシステムの仮想アドレス空間の不効率な占有の可能性及びアドレス衝突の可能性を低減することに役立ち、システムの仮想アドレス空間の利用効率を改善することに役立つ。
【０２６２】
実施形態の各々において説明されているどのファイルアクセス方法も、コンピューティングノードに適用されてよく、ここで、コンピューティングノードはメモリを含むものとしてよく、メモリは、ファイルストレージメモリ領域及びプロセス作業メモリ領域を含み、ここで、メモリページテーブルは、プロセス作業メモリ領域内に記憶され、オペレーティングシステムはプロセス作業メモリ領域内で実行する、ことが理解され得る。たとえば、プロセス作業メモリ領域は、カーネルプロセス作業メモリ領域とユーザプロセス作業メモリ領域とを含むものとしてよく、ここで、カーネルメモリページテーブルは、カーネルプロセス作業メモリ領域内に記憶されるものとしてよく、ユーザプロセスメモリページテーブルは、ユーザプロセス作業メモリ領域内に記憶されるものとしてよく、たとえば、オペレーティングシステムはカーネルプロセス作業メモリ領域内で実行する。
【０２６３】
本発明の実施形態の前述の解決方法をよりよく実装するために、前述の解決方法を実装するように構成された関係する装置が以下に提供される。
【０２６４】
図９−ａを参照すると、本発明の一実施形態は、ファイルアクセス装置９００を提供し、これは、
受信ユニット９０１、取得ユニット９０２、割振りユニット９０３、及びマッピングユニット９０４を含み得る。
【０２６５】
受信ユニット９０１は、ファイル識別子を搬送するファイルオープン要求を受信するように構成される。
【０２６６】
本発明のいくつかの実施形態において、ファイルオープン要求は、ファイルストレージパス（すなわち、開くように要求されたファイルのストレージパス）を搬送するものとしてよく、ここで、ファイル識別子は、ファイルストレージパスに含まれるものとしてよく、確かに、ファイルオープン要求は、ファイル識別子も搬送するものとしてよく、ファイルストレージパスを搬送しないものとしてよい。さらに、ファイルオープン要求は、ファイルタイプフラグビットをさらに搬送するものとしてよく、ここで、ファイルタイプフラグビットは、ファイル識別子によって表されるファイルのファイルタイプを指示し得る（ファイルタイプは、ディレクトリファイル若しくはデータファイルであってよい）。
【０２６７】
取得ユニット９０２は、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶され、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するように構成される。
【０２６８】
割振りユニット９０３は、第１の仮想アドレス空間をファイルに割り振るように構成される。
【０２６９】
本発明のいくつかの実施形態において、予め設定されたサイズの第１の仮想アドレス空間は、ファイルに割り振られ得る（たとえば、第１の仮想アドレス空間のサイズは、システムの最大仮想アドレス空間を同時に開くことがシステムによってサポートされているファイルの最大数で割った数以下であり得る）。代替的に、ファイルのファイルタイプに対応するサイズの第１の仮想アドレス空間も、ファイルタイプに従ってファイルに割り振られ得る。たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズに等しくないものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、データファイルに対応する仮想アドレス空間のサイズ未満であるものとしてよく、たとえば、ディレクトリファイルに対応する仮想アドレス空間のサイズは、１ＭＢ、２ＭＢ、１０ＭＢ、３０ＭＢなどであり、データファイルに対応する仮想アドレス空間のサイズは、１００ＭＢ、５００ＭＢ、１ＧＢ、１０ＧＢ、１００ＧＢ、２ＴＢなどである。
【０２７０】
マッピングユニット９０４は、メモリページテーブルを使用することによって第１の仮想−物理アドレスマッピング関係を記録するように構成される。
【０２７１】
第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係を含み、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０２７２】
ファイルのインデックスノードは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間が取得され得る情報を含み得る。たとえば、第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用されるポインタは、ファイルの第１のインデックスノードに記録されるものとしてよく、第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルであり、ここで、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間である。確かに、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間又は第１の物理アドレス空間の開始アドレスも、第１のインデックスノードに直接記憶され得る。さらに、ファイルの第１のインデックスノードは、ファイルのメタデータなどの情報をさらに含み得る。
【０２７３】
本発明のいくつかの実施形態において、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得する態様において、取得ユニット９０２は、第１のインデックスノードに記録されている第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用され、第１のインデックスノードに記録されているポインタに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するように特に構成されるものとしてよく、ここで、第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【０２７４】
本発明のいくつかの実施形態において、メモリは、プロセス作業メモリ領域（ここで、プロセス作業メモリ領域は、ユーザプロセス作業メモリ領域とカーネルプロセス作業メモリ領域とを含むものとしてよい）とファイルストレージメモリ領域とを含み得る。プロセス作業メモリ領域は、プロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指す。データ構造及び変数は、少なくとも１つの以下の情報、すなわち、プロセスの実行中のヒープ、スタック、メモリマッピング領域、プロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０２７５】
たとえば、ユーザプロセス作業メモリ領域は、ユーザプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。ユーザプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、ユーザプロセスの実行中のヒープ、スタック、メモリマッピング領域、ユーザプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０２７６】
別の例として、カーネルプロセス作業メモリ領域は、カーネルプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。カーネルプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、カーネルプロセスの実行中のヒープ、スタック、メモリマッピング領域、カーネルプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０２７７】
ファイルストレージメモリ領域は、ファイルシステムを記憶するために使用される物理メモリ領域を指すものとしてよく、ファイルシステムのさまざまな情報は、ファイルストレージメモリ領域に記憶されるものとしてよく、たとえば、ファイルシステムのインデックスノード及びファイルは、ファイルストレージメモリ領域に記憶されるものとしてよく、ファイルシステムのスーパーブロック（存在する場合）などの情報は、ファイルストレージメモリ領域にさらに記憶されるものとしてよい。
【０２７８】
本発明のいくつかの実施形態において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、ファイルストレージメモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域又はユーザプロセス作業メモリ領域など）は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、プロセス作業メモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域又はユーザプロセス作業メモリ領域など）及びファイルストレージメモリ領域は、互いに重なり合わない。
【０２７９】
本発明のいくつかの実施形態において、マッピングユニット９０４は、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリを追加するように特に構成されるものとしてよく、ここで、エントリは、第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用されるポインタを含む。
【０２８０】
本発明のいくつかの実施形態において、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるか、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであり、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。
【０２８１】
図９−ｂを参照すると、本発明のいくつかの実施形態において、ファイルアクセス装置９００は、
第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスを第１のインデックスノードに記録し、及び／又は第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスをファイルに対応するファイルオブジェクトに記録するように構成された記録ユニット９０５をさらに含む。
【０２８２】
本発明のいくつかの実施形態において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。
【０２８３】
本発明のいくつかの実施形態において、第１の仮想アドレス空間は、カーネル仮想アドレス空間又はユーザプロセス仮想アドレス空間内に配置される。
【０２８４】
本発明のいくつかの実施形態において、取得ユニット９０２は、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていると決定されたときに、ファイル識別子によって表されるファイルの第１のインデックスノードを取得するように特に構成されるものとしてよい。
【０２８５】
本発明のいくつかの実施形態において、受信ユニット９０１は、ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信するようにさらに構成されるものとしてよく、ここで、ファイル読み取り要求は、読み込みメモリアドレス空間及びファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し、ここで、読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間である。
【０２８６】
図９−ｃを参照すると、ファイルアクセス装置９００は、
第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するように構成された第２のマッピングユニット９０６と、
読み取り物理アドレス空間に基づき、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取り、第１のファイルコンテンツを第１のメモリ領域に書き込むように構成された第１の読み取り／書き込みユニット９０７とをさらに含む。
【０２８７】
本発明のいくつかの実施形態において、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得する態様において、第２のマッピングユニット９０６は、第１のファイルコンテンツのデータボリューム、第１のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するように特に構成されるものとしてよく、ここで、第１のファイルコンテンツオフセットは、ファイル読み取り要求から取得されるか、又は第１のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【０２８８】
たとえば、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスは、第１のファイルコンテンツオフセット（第１のファイルコンテンツオフセットがファイル読み取り要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第１のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための開始読み取り物理アドレスは、開始読み取り仮想アドレス及び第１の仮想−物理アドレスマッピング関係を使用することによって取得され、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間は、開始読み取り物理アドレス及び第１のファイルコンテンツのデータボリュームに基づき取得される。
【０２８９】
別の例として、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスは、第１のファイルコンテンツオフセット（第１のファイルコンテンツオフセットがファイル読み取り要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第１のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第１のファイルコンテンツを読み取るための読み取り仮想アドレス空間は、開始読み取り仮想アドレス及び第１のファイルコンテンツのデータボリュームに基づき取得され、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間は、読み取り仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係を使用することによって取得される。
【０２９０】
本発明のいくつかの実施形態において、受信ユニット９０１は、ファイルにファイルコンテンツを書き込むように要求するためのファイル書き込み要求を受信するようにさらに構成されるものとしてよく、ここで、ファイル書き込み要求は、読み出しメモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し、ここで、読み出しメモリアドレス空間は、プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間である。
【０２９１】
図９−ｄを参照すると、ファイルアクセス装置９００は、
第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、書き込み物理アドレス空間は、ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間である、ように構成された第３のマッピングユニット９０８と、
第２のメモリ領域内に一時的に記憶されている第２のファイルコンテンツを第３のメモリ領域に書き込むように構成された第２の読み取り／書き込みユニット９０９とをさらに含む。
【０２９２】
本発明のいくつかの実施形態において、第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得する態様において、第３のマッピングユニット９０８は、第２のファイルコンテンツのデータボリューム、第２のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得するように特に構成されるものとしてよく、ここで、第２のファイルコンテンツオフセットは、ファイル書き込み要求から取得されるか、又は第２のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【０２９３】
たとえば、第２のファイルコンテンツをファイルに書き込むための開始書き込み仮想アドレスは、第２のファイルコンテンツオフセット（第２のファイルコンテンツオフセットがファイル書き込み要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第２のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための開始書き込み物理アドレスは、開始書き込み仮想アドレス及び第１の仮想−物理アドレスマッピング関係を使用することによって取得され、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み物理アドレス空間は、開始書き込み物理アドレス及び第２のファイルコンテンツのデータボリュームに基づき取得される。
【０２９４】
別の例として、第２のファイルコンテンツをファイルに書き込むための開始書き込み仮想アドレスは、第２のファイルコンテンツオフセット（第２のファイルコンテンツオフセットがファイル書き込み要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第２のファイルコンテンツオフセットと見なされ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み仮想アドレス空間は、開始書き込み仮想アドレス及び第２のファイルコンテンツのデータボリュームに基づき取得され、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み物理アドレス空間は、書き込み仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係を使用することによって取得される。
【０２９５】
第３のメモリ領域の記憶容量は、第２のファイルコンテンツのデータボリューム以上であるものとしてよい。第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域は、共通集合を有するか、又は共通集合を有しない。一般的に、第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域が、共通集合を有する場合、これは第２のファイルコンテンツがファイル内の一部又は全部の元のファイルコンテンツを置き換えることを指示し得ることが理解され得る（第３のメモリ領域と第１の物理アドレス空間に対応するメモリ領域との間の共通集合が、第３のメモリ領域よりも小さい場合、これは新しいメモリ領域が第２のファイルコンテンツに割り振られる、すなわち、ファイルを記憶するためのメモリ領域が変化し、ファイルを記憶するためのメモリ領域が拡張されることを指示する）。第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域が、共通集合を有しない場合、これは第２のファイルコンテンツが、ファイルに新たに追加され、第３のメモリ領域が、第２のファイルコンテンツに割り振られた新しいメモリ領域であることを指示するものとしてよく、すなわち、ファイルを記憶するためのメモリ領域は変化し、ファイルを記憶するためのメモリ領域は拡張される。
【０２９６】
さらに、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域が変化した場合、マッピングユニット９０４は、第１のファイルページテーブルを更新するものとしてよく、それにより、更新された第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルを現在記憶しておくためのメモリ領域を指す。
【０２９７】
確かに、さらに、マッピングユニット９０４は、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を第３の仮想−物理アドレスマッピング関係に更新するものとしてよく、ここで、第３の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第３の物理アドレス空間との間のマッピング関係を含み、ここで、第３の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルを現在記憶しておくためのメモリ領域の物理アドレス空間である。第１のファイルページテーブルを指しているポインタ（メモリページテーブルに記録されている、第１のファイルページテーブルの開始物理アドレスなど）がメモリページテーブルに記録されている場合に、更新された第１のファイルページテーブルの開始物理アドレスが変化しない場合、第１のファイルページテーブルを指し、メモリページテーブルに記録されているポインタは、修正されないものとしてよい。さらに、この場合、仮想−物理アドレスマッピング関係は、第１のファイルページテーブルを更新することによって、メモリページテーブルを修正する必要なく、再確立され、したがって、マッピング操作を大幅に簡素化することができる。
【０２９８】
本発明のいくつかの実施形態において、受信ユニット９０１は、ファイルを閉じるように要求するために使用されるファイルクローズ要求を受信するようにさらに構成され得る。
【０２９９】
図９−ｅを参照すると、ファイルアクセス装置９００は、ファイルに割り振られた第１の仮想アドレス空間を解放し、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を解放するように構成された解放ユニット９１０をさらに含み得る。
【０３００】
本発明のいくつかの実施形態において、ファイルアクセス装置９００は、
ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていないと決定されたときにファイルストレージメモリ領域内にファイルを作成し、第２のインデックスノードをファイルに割り振るように構成された作成ユニットをさらに含むものとしてよく、ここで、第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタは、第２のインデックスノードに記録され、ここで、第２のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用される。
【０３０１】
割振りユニット９０３は、第２の仮想アドレス空間をファイルに割り振るようにさらに構成され得る。
【０３０２】
マッピングユニット９０４は、メモリページテーブルを使用することによって第２の仮想−物理アドレスマッピング関係を記録するようにさらに構成され得る。
【０３０３】
第２の仮想−物理アドレスマッピング関係は、第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含み、ここで、第２の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０３０４】
本発明のいくつかの実施形態において、第２のファイルページテーブルのレベルの数とファイルのファイルタイプとの間に対応関係がある。
【０３０５】
本発明のいくつかの実施形態において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含む。
【０３０６】
この実施形態のファイルアクセス装置９００の機能モジュールの機能は、方法の実施形態における方法により特に実装され得ることは理解できる。機能の特定の実装プロセスについては、方法の実施形態の関係する説明を参照するとしてよく、詳細については、ここで再び説明することはしない。
【０３０７】
この実施形態の技術的解決方法において、ファイル識別子を搬送するファイルオープン要求を受信した後に、ファイルアクセス装置９００は、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得し、第１の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録するものとしてよく、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む、ことがわかる。第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。さらに、仮想アドレス空間は、ファイルを開くことが要求されたときのみファイルに割り振られるので、これはシステムの仮想アドレス空間の不効率な占有の可能性及びアドレス衝突の可能性を低減することに役立ち、システムの仮想アドレス空間の利用効率を改善することに役立つ。
【０３０８】
さらに、連続仮想アドレス空間は、ファイルオープンプロセスにおいてファイルに割り振られるものとしてよく、したがって、これは、ファイルを読み取る／書き込むための開始仮想アドレスから始めて、１回で必要な読み取り／書き込み長の範囲内のメモリページにアクセスすることに役立ち、ソフトウェア層において複数回異なるメモリページの対応する仮想アドレスを探索することを必要としない。このように、ファイルのシーケンシャルアクセス速度は、きわめて高速になり得る。
【０３０９】
ＭＭＵを用いることで、ファイルの仮想アドレスと物理アドレスとの間の変換は、トランスペアレントに完遂されるものとしてよく、このことは、ファイルアクセス速度を上げることに役立ち、又はゼロオーバーヘッドを実装することにすら役立つ。
【０３１０】
さらに、データ構造がメモリページテーブルのデータ構造に類似しているか、又は同じであるファイルページテーブルが、ファイルストレージメモリ領域内の、ファイルコンテンツを記憶するためのメモリページを指すために使用される場合に、ファイルページテーブルのデータ構造は、メモリページテーブルのデータ構造に類似しているか、又は同じであるので、これは、ページテーブルのデータ構造の間のゼロ変換を実装することに役立ち、ファイルコンテンツを記憶するためのメモリページが変化したときにファイルページテーブル上のファイルの物理アドレス空間と仮想アドレス空間との間にマッピング関係を再確立する操作を実行することを必要としなくてよい。ファイルページテーブルを更新することによって、更新されたファイルページテーブルを指すために使用されるポインタがファイルページテーブルのエントリ内に挿入され、それによって、ファイルの物理アドレスと仮想アドレスとの間のマッピングの再確立を完遂し、この方式は、ファイルのサイズに無関係な一定の時間内にファイルの物理アドレスと仮想アドレスとの間のマッピングを再確立することに役立つ。
【０３１１】
さらに、独立した仮想アドレス空間が、異なるファイルに割り振られるものとしてよく、それにより、ファイルシステムの、ファイルストレージメモリ領域内の、ファイルは、システム仮想アドレス及びＭＭＵによって保護され、このことは、ファイルが誤って書き込まれる可能性を大幅に低減し、ファイルを適切に保護できるだけでなく、追加の書き込み保護メカニズムも必要とせず、それにより、システムを簡素化することに役立つ。
【０３１２】
さらに、ファイルが仮想アドレスを使用することによってアクセスされ、ファイルのサイズは、システム仮想アドレス空間のサイズ、及び同時に開くことがオペレーティングシステムによってサポートされているファイルの数のみに影響され、サイズも数も、ファイルシステムに対する制限にならず、したがって、ファイルのサイズは、ファイルシステムの設計によって制限され得ない。
【０３１３】
さらに、メモリ管理の方式に類似する方式がファイルシステムにおいて使用され、両方の方式において、記憶媒体が仮想アドレスを使用することによってアクセスされ、仮想アドレスと物理アドレスとの間の変換は、ＭＭＵを使用することによって実行されるものとしてよく、カーネル内の変更は比較的小さいものとしてよく、このことは、ファイルシステムを既存のオペレーティングシステムに移行させることにも役立つ。
【０３１４】
図１０を参照すると、図１０は、本発明の一実施形態によるコンピューティングノード１０００の概略図である。コンピューティングノード１０００は、少なくとも１つのバス１００１と、バス１００１に接続された少なくとも１つのプロセッサ１００２と、バス１００１に接続された少なくとも１つの記憶デバイス１００３とを含むものとしてよい。
【０３１５】
記憶デバイス１００３は、メモリを含むものとしてよく、外部記憶装置をさらに含み得る。メモリは、ファイルストレージメモリ領域及びプロセス作業メモリ領域を含むものとしてよく、ここで、メモリページテーブルは、プロセス作業メモリ領域内に記憶され、オペレーティングシステムはプロセス作業メモリ領域内で実行する。たとえば、プロセス作業メモリ領域は、カーネルプロセス作業メモリ領域とユーザプロセス作業メモリ領域とを含むものとしてよく、ここで、カーネルメモリページテーブルは、カーネルプロセス作業メモリ領域内に記憶されるものとしてよく、ユーザプロセスメモリページテーブルは、ユーザプロセス作業メモリ領域内に記憶されるものとしてよい。
【０３１６】
プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、ファイル識別子を搬送するファイルオープン要求を受信し、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶され、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得し、第１の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録し、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係を含み、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む、ように構成される。
【０３１７】
本発明のいくつかの実施形態において、ファイルオープン要求は、ファイルストレージパス（すなわち、開くように要求されたファイルのストレージパス）を搬送するものとしてよく、ここで、ファイル識別子は、ファイルストレージパスに含まれるものとしてよく、確かに、ファイルオープン要求は、ファイル識別子も搬送するものとしてよく、ファイルストレージパスを搬送しないものとしてよい。さらに、ファイルオープン要求は、ファイルタイプフラグビットをさらに搬送するものとしてよく、ここで、ファイルタイプフラグビットは、ファイル識別子によって表されるファイルのファイルタイプを指示し得る（ファイルタイプは、ディレクトリファイル若しくはデータファイルであってよい）。
【０３１８】
本発明のいくつかの実施形態において、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得する態様において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、第１のインデックスノードに記録されている第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用され、第１のインデックスノードに記録されているポインタに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するように特に構成され、ここで、第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【０３１９】
プロセス作業メモリ領域は、プロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指す。データ構造及び変数は、少なくとも１つの以下の情報、すなわち、プロセスの実行中のヒープ、スタック、メモリマッピング領域、プロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０３２０】
たとえば、ユーザプロセス作業メモリ領域は、ユーザプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。ユーザプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、ユーザプロセスの実行中のヒープ、スタック、メモリマッピング領域、ユーザプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０３２１】
別の例として、カーネルプロセス作業メモリ領域は、カーネルプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。カーネルプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、カーネルプロセスの実行中のヒープ、スタック、メモリマッピング領域、カーネルプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０３２２】
ファイルストレージメモリ領域は、ファイルシステムを記憶するために使用される物理メモリ領域を指すものとしてよく、ファイルシステムのさまざまな情報は、ファイルストレージメモリ領域に記憶されるものとしてよく、たとえば、ファイルシステムのインデックスノード及びファイルは、ファイルストレージメモリ領域に記憶されるものとしてよく、ファイルシステムのスーパーブロック（存在する場合）などの情報は、ファイルストレージメモリ領域にさらに記憶されるものとしてよい。
【０３２３】
本発明のいくつかの実施形態において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、ファイルストレージメモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域又はユーザプロセス作業メモリ領域など）は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、プロセス作業メモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域又はユーザプロセス作業メモリ領域など）及びファイルストレージメモリ領域は、互いに重なり合わない。
【０３２４】
本発明のいくつかの実施形態において、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録する態様において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリを追加するように特に構成され、ここで、エントリは、第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用されるポインタを含む。
【０３２５】
本発明のいくつかの実施形態において、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるか、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであり、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。
【０３２６】
本発明のいくつかの実施形態において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスを第１のインデックスノードに記録し、及び／又は第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスをファイルに対応するファイルオブジェクトに記録するようにさらに構成される。
【０３２７】
本発明のいくつかの実施形態において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。
【０３２８】
本発明のいくつかの実施形態において、第１の仮想アドレス空間は、カーネル仮想アドレス空間又はユーザプロセス仮想アドレス空間内に配置される。
【０３２９】
本発明のいくつかの実施形態において、ファイル識別子によって表されるファイルの第１のインデックスノードを取得する態様において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていると決定されたときに、ファイル識別子によって表されるファイルの第１のインデックスノードを取得するように特に構成される。
【０３３０】
本発明のいくつかの実施形態において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信し、ここで、ファイル読み取り要求は、読み込みメモリアドレス空間及びファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し、ここで、読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間であり、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得し、読み取り物理アドレス空間に基づき、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取り、第１のファイルコンテンツを第１のメモリ領域に書き込むようにさらに構成される。
【０３３１】
本発明のいくつかの実施形態において、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得する態様において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、
第１のファイルコンテンツのデータボリューム、第１のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するように特に構成され、ここで、第１のファイルコンテンツオフセットは、ファイル読み取り要求から取得されるか、又は第１のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【０３３２】
たとえば、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスは、第１のファイルコンテンツオフセット（第１のファイルコンテンツオフセットがファイル読み取り要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第１のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための開始読み取り物理アドレスは、開始読み取り仮想アドレス及び第１の仮想−物理アドレスマッピング関係を使用することによって取得され、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間は、開始読み取り物理アドレス及び第１のファイルコンテンツのデータボリュームに基づき取得される。
【０３３３】
別の例として、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスは、第１のファイルコンテンツオフセット（第１のファイルコンテンツオフセットがファイル読み取り要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第１のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第１のファイルコンテンツを読み取るための読み取り仮想アドレス空間は、開始読み取り仮想アドレス及び第１のファイルコンテンツのデータボリュームに基づき取得され、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間は、読み取り仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係を使用することによって取得される。
【０３３４】
本発明のいくつかの実施形態において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、ファイルにファイルコンテンツを書き込むように要求するためのファイル書き込み要求を受信し、ここで、ファイル書き込み要求は、読み出しメモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し、ここで、読み出しメモリアドレス空間は、プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間であり、
第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、書き込み物理アドレス空間は、ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間であり、
第２のメモリ領域内に一時的に記憶されている第２のファイルコンテンツを第３のメモリ領域に書き込むようにさらに構成される。
【０３３５】
本発明のいくつかの実施形態において、第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得する態様において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、
第２のファイルコンテンツのデータボリューム、第２のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得するように特に構成され、ここで、第２のファイルコンテンツオフセットは、ファイル書き込み要求から取得されるか、又は第２のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【０３３６】
たとえば、第２のファイルコンテンツをファイルに書き込むための開始書き込み仮想アドレスは、第２のファイルコンテンツオフセット（第２のファイルコンテンツオフセットがファイル書き込み要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第２のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための開始書き込み物理アドレスは、開始書き込み仮想アドレス及び第１の仮想−物理アドレスマッピング関係を使用することによって取得され、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み物理アドレス空間は、開始書き込み物理アドレス及び第２のファイルコンテンツのデータボリュームに基づき取得される。
【０３３７】
別の例として、第２のファイルコンテンツをファイルに書き込むための開始書き込み仮想アドレスは、第２のファイルコンテンツオフセット（第２のファイルコンテンツオフセットがファイル書き込み要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第２のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み仮想アドレス空間は、開始書き込み仮想アドレス及び第２のファイルコンテンツのデータボリュームに基づき取得され、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み物理アドレス空間は、書き込み仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係を使用することによって取得される。
【０３３８】
第３のメモリ領域の記憶容量は、第２のファイルコンテンツのデータボリューム以上であるものとしてよい。第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域は、共通集合を有するか、又は共通集合を有しない。一般的に、第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域が、共通集合を有する場合、これは第２のファイルコンテンツがファイル内の一部又は全部の元のファイルコンテンツを置き換えることを指示し得ることが理解され得る（第３のメモリ領域と第１の物理アドレス空間に対応するメモリ領域との間の共通集合が、第３のメモリ領域よりも小さい場合、これは新しいメモリ領域が第２のファイルコンテンツに割り振られる、すなわち、ファイルを記憶するためのメモリ領域が変化し、ファイルを記憶するためのメモリ領域が拡張されることを指示する）。第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域が、共通集合を有しない場合、これは第２のファイルコンテンツが、ファイルに新たに追加され、第３のメモリ領域が、第２のファイルコンテンツに割り振られた新しいメモリ領域であることを指示するものとしてよく、すなわち、ファイルを記憶するためのメモリ領域は変化し、ファイルを記憶するためのメモリ領域は拡張される。
【０３３９】
さらに、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域が変化した場合、プロセッサ１００２は、第１のファイルページテーブルを更新するものとしてよく、それにより、更新された第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルを現在記憶しておくためのメモリ領域を指す。
【０３４０】
確かに、さらに、プロセッサ１００２は、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を第３の仮想−物理アドレスマッピング関係に更新するものとしてよく、ここで、第３の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第３の物理アドレス空間との間のマッピング関係を含み、ここで、第３の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルを現在記憶しておくためのメモリ領域の物理アドレス空間である。第１のファイルページテーブルを指しているポインタ（メモリページテーブルに記録されている、第１のファイルページテーブルの開始物理アドレスなど）がメモリページテーブルに記録されている場合に、更新された第１のファイルページテーブルの開始物理アドレスが変化しない場合、第１のファイルページテーブルを指し、メモリページテーブルに記録されているポインタは、修正されないものとしてよい。さらに、この場合、仮想−物理アドレスマッピング関係は、第１のファイルページテーブルを更新することによって、メモリページテーブルを修正する必要なく、再確立されるものとしてよく、このことは、マッピング操作を大幅に簡素化する。
【０３４１】
本発明のいくつかの実施形態において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、ファイルを閉じるように要求するために使用されるファイルクローズ要求を受信し、ファイルに割り振られた第１の仮想アドレス空間を解放し、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を解放するようにさらに構成される。
【０３４２】
本発明のいくつかの実施形態において、プロセッサ１００２は、バス１００１を使用することによって、記憶デバイス１００３に記憶されているコードを呼び出し、それにより、プロセッサは、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていないと決定されたときにファイルストレージメモリ領域内にファイルを作成し、第２のインデックスノードをファイルに割り振り、ここで、第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタは、第２のインデックスノードに記録され、ここで、第２のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第２の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第２の仮想−物理アドレスマッピング関係を記録するようにさらに構成され、ここで、第２の仮想−物理アドレスマッピング関係は、第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含み、ここで、第２の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０３４３】
本発明のいくつかの他の実施形態では、ファイル識別子を搬送するファイルオープン要求が受信された後、ファイル識別子によって表されるファイルが、ファイルストレージメモリ領域内に記憶されていないと決定されたときに、ファイルは、ファイルストレージメモリ領域内に作成され、第３のインデックスノードが、ファイルに割り振られる。この場合、プロセッサ１００２は、最初に、ファイルのファイルページテーブルをいっさい作成しないか、又はファイルの空のファイルページテーブルを作成するものとしてよく（ファイルの空のファイルページテーブルが作成された場合、第３のインデックスノードは、空のファイルページテーブル又は空のファイルページテーブルを指すために使用されるポインタを含み得る）、ファイルコンテンツが、作成されたファイルに書き込まれる必要があるときに、プロセッサ１００２は、ファイルを記憶するためのメモリ領域を拡張する（たとえば、１０ＭＢから１０００ＭＢに拡張される）ものとしてよく、プロセッサ１００２は、ファイルのファイルページテーブルを更新し、それにより、更新されたファイルページテーブルはファイルを記憶するための拡張されたメモリ領域を指す。
【０３４４】
本発明のいくつかの実施形態において、第２のファイルページテーブルのレベルの数とファイルのファイルタイプとの間に対応関係がある。
【０３４５】
本発明のいくつかの実施形態において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含む。
【０３４６】
この実施形態のコンピューティングノード１０００の機能モジュールの機能は、方法の実施形態における方法により特に実装され得ることは理解できる。機能の特定の実装プロセスについては、方法の実施形態の関係する説明を参照するとしてよく、詳細については、ここで再び説明することはしない。
【０３４７】
コンピューティングノード１０００は、サーバ、パーソナルコンピュータ、ネットワークエレメント、又は携帯端末などの、メモリを有するデバイスであってよい。
【０３４８】
この実施形態の技術的解決方法において、ファイル識別子を搬送するファイルオープン要求を受信した後に、プロセッサが、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得し、第１の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録し、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む、ことがわかる。第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。さらに、仮想アドレス空間は、ファイルを開くことが要求されたときのみファイルに割り振られるので、これはシステムの仮想アドレス空間の不効率な占有の可能性及びアドレス衝突の可能性を低減することに役立ち、システムの仮想アドレス空間の利用効率を改善することに役立つ。
【０３４９】
さらに、連続仮想アドレス空間は、ファイルオープンプロセスにおいてファイルに割り振られるものとしてよく、したがって、これは、ファイルを読み取る／書き込むための開始仮想アドレスから始めて、１回で必要な読み取り／書き込み長の範囲内のメモリページにアクセスすることに役立ち、ソフトウェア層において複数回異なるメモリページの対応する仮想アドレスを探索することを必要としない。このように、ファイルのシーケンシャルアクセス速度は、きわめて高速になり得る。
【０３５０】
ＭＭＵを用いることで、ファイルの仮想アドレスと物理アドレスとの間の変換は、トランスペアレントに完遂されるものとしてよく、このことは、ファイルアクセス速度を上げることに役立ち、又はゼロオーバーヘッドを実装することにすら役立つ。
【０３５１】
さらに、データ構造がメモリページテーブルのデータ構造に類似しているか、又は同じであるファイルページテーブルが、ファイルストレージメモリ領域内の、ファイルコンテンツを記憶するためのメモリページを指すために使用される場合に、ファイルページテーブルのデータ構造は、メモリページテーブルのデータ構造に類似しているか、又は同じであるので、これは、ページテーブルのデータ構造の間のゼロ変換を実装することに役立ち、ファイルコンテンツを記憶するためのメモリページが変化したときにファイルページテーブル上のファイルの物理アドレス空間と仮想アドレス空間との間にマッピング関係を再確立する操作を実行することを必要としなくてよい。ファイルページテーブルを更新することによって、更新されたファイルページテーブルを指すために使用されるポインタがファイルページテーブルのエントリ内に挿入され、それによって、ファイルの物理アドレスと仮想アドレスとの間のマッピングの再確立を完遂し、この方式は、ファイルのサイズに無関係な一定の時間内にファイルの物理アドレスと仮想アドレスとの間のマッピングを再確立することに役立つ。
【０３５２】
さらに、独立した仮想アドレス空間が、異なるファイルに割り振られるものとしてよく、それにより、ファイルシステムの、ファイルストレージメモリ領域内の、ファイルは、システム仮想アドレス及びＭＭＵによって保護され、このことは、ファイルが誤って書き込まれる可能性を大幅に低減し、ファイルを適切に保護できるだけでなく、追加の書き込み保護メカニズムも必要とせず、それにより、システムを簡素化することに役立つ。
【０３５３】
さらに、ファイルが仮想アドレスを使用することによってアクセスされ、ファイルのサイズは、システム仮想アドレス空間のサイズ、及び同時に開くことがオペレーティングシステムによってサポートされているファイルの数のみに影響され、サイズも数も、ファイルシステムに対する制限にならず、したがって、ファイルのサイズは、ファイルシステムの設計によって制限され得ない。
【０３５４】
さらに、メモリ管理の方式に類似する方式がファイルシステムにおいて使用され、両方の方式において、記憶媒体が仮想アドレスを使用することによってアクセスされ、仮想アドレスと物理アドレスとの間の変換は、ＭＭＵを使用することによって実行されるものとしてよく、カーネル内の変更は比較的小さいものとしてよく、このことは、ファイルシステムを既存のオペレーティングシステムに移行させることにも役立つ。
【０３５５】
図１１を参照すると、図１１は、本発明の別の実施形態によるコンピューティングノード１１００の構造ブロック図である。
【０３５６】
コンピューティングノード１１００は、少なくとも１つのプロセッサ１１０１と、少なくとも１つのネットワークインターフェース１１０４又は別のユーザインターフェース１１０３と、記憶デバイス１１０５と、少なくとも１つの通信バス１１０２とを含むものとしてよい。通信バス１１０２は、これらの構成要素の間の接続及び通信を実装するように構成される。コンピューティングノード１１００は、任意選択で、ユーザインターフェース１１０３、ディスプレイ（タッチスクリーン、ＬＣＤ、ＣＲＴ、ホログラフィック（Ｈｏｌｏｇｒａｐｈｉｃ）デバイス、又はプロジェクタ（Ｐｒｏｊｅｃｔｏｒ）など）、クリックデバイス（マウス、トラックボール（ｔｒａｃｋｂａｌｌ）、タッチ感応パネル、又はタッチスクリーンなど）、カメラ、及び／又はサウンドピックアップ装置を含む。
【０３５７】
記憶デバイス１１０５は、たとえば、読み出し専用メモリとランダムアクセスメモリとを含み、命令とデータとをプロセッサ１１０１に提供するものとしてよい。
【０３５８】
記憶デバイス１１０５の中の一部は、不揮発性メモリ（ＮＶＲＡＭ）をさらに含む。
【０３５９】
たとえば、記憶デバイス１１０５は、メモリを含むものとしてよく、外部記憶装置をさらに含み得る。メモリは、ファイルストレージメモリ領域及びプロセス作業メモリ領域を含むものとしてよく、ここで、メモリページテーブルは、プロセス作業メモリ領域内に記憶され、オペレーティングシステムはプロセス作業メモリ領域内で実行する。たとえば、プロセス作業メモリ領域は、カーネルプロセス作業メモリ領域とユーザプロセス作業メモリ領域とを含むものとしてよく、ここで、カーネルメモリページテーブルは、カーネルプロセス作業メモリ領域内に記憶されるものとしてよく、ユーザプロセスメモリページテーブルは、ユーザプロセス作業メモリ領域内に記憶されるものとしてよい。
【０３６０】
いくつかの実装方式において、記憶デバイス１１０５は、以下の要素、すなわち、実行可能モジュール、若しくはデータ構造、又は以下の要素、すなわち、実行可能モジュール、若しくはデータ構造の部分集合、又は以下の要素、すなわち、実行可能モジュール、若しくはデータ構造の拡張集合、
さまざまな基本サービスを実装し、ハードウェアベースのタスクを処理するために使用される、さまざまなシステムプログラムを含むオペレーティングシステム１１０５１、及び
さまざまなアプリケーションサービスを実装するために使用される、さまざまなアプリケーションプログラムを含むアプリケーションプログラムモジュール１１０５２を記憶する。
【０３６１】
本発明のこの実施形態では、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、ファイル識別子を搬送するファイルオープン要求を受信し、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、ここで、ファイルは、ファイルストレージメモリ領域に記憶され、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得し、第１の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録し、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係を含み、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０３６２】
本発明のいくつかの実施形態において、ファイルオープン要求は、ファイルストレージパス（すなわち、開くように要求されたファイルのストレージパス）を搬送するものとしてよく、ここで、ファイル識別子は、ファイルストレージパスに含まれるものとしてよく、確かに、ファイルオープン要求は、ファイル識別子も搬送するものとしてよく、ファイルストレージパスを搬送しないものとしてよい。さらに、ファイルオープン要求は、ファイルタイプフラグビットをさらに搬送するものとしてよく、ここで、ファイルタイプフラグビットは、ファイル識別子によって表されるファイルのファイルタイプを指示し得る（ファイルタイプは、ディレクトリファイル若しくはデータファイルであってよい）。
【０３６３】
本発明のいくつかの実施形態において、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得する態様において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、第１のインデックスノードに記録されている第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用され、第１のインデックスノードに記録されているポインタに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得するように特に構成され、ここで、第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第１の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、第１のファイルページテーブルは、単一レベル又はマルチレベルファイルページテーブルである。
【０３６４】
プロセス作業メモリ領域は、プロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指す。データ構造及び変数は、少なくとも１つの以下の情報、すなわち、プロセスの実行中のヒープ、スタック、メモリマッピング領域、プロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０３６５】
たとえば、ユーザプロセス作業メモリ領域は、ユーザプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。ユーザプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、ユーザプロセスの実行中のヒープ、スタック、メモリマッピング領域、ユーザプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０３６６】
別の例として、カーネルプロセス作業メモリ領域は、カーネルプロセスの実行中に作業環境に含まれるデータ構造及び変数などのコンテンツを記憶するために使用される物理メモリ領域を指すものとしてよい。カーネルプロセス作業メモリ領域内に記憶されるデータ構造及び変数は、たとえば、少なくとも１つの以下の情報、すなわち、カーネルプロセスの実行中のヒープ、スタック、メモリマッピング領域、カーネルプロセスに対応するプログラムの変数、文字、及び配列などのデータを含み得る。
【０３６７】
ファイルストレージメモリ領域は、ファイルシステムを記憶するために使用される物理メモリ領域を指すものとしてよく、ファイルシステムのさまざまな情報は、ファイルストレージメモリ領域に記憶されるものとしてよく、たとえば、ファイルシステムのインデックスノード及びファイルは、ファイルストレージメモリ領域に記憶されるものとしてよく、ファイルシステムのスーパーブロック（存在する場合）などの情報は、ファイルストレージメモリ領域にさらに記憶されるものとしてよい。
【０３６８】
本発明のいくつかの実施形態において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、ファイルストレージメモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域又はユーザプロセス作業メモリ領域など）は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含み得る（すなわち、プロセス作業メモリ領域の記憶媒体は、不揮発性記憶媒体及び／又は揮発性記憶媒体を含む）。プロセス作業メモリ領域（カーネルプロセス作業メモリ領域又はユーザプロセス作業メモリ領域など）及びファイルストレージメモリ領域は、互いに重なり合わない。
【０３６９】
本発明のいくつかの実施形態において、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録する態様において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、メモリページテーブルに、第１の仮想−物理アドレスマッピング関係を記録するために使用されるエントリを追加するように特に構成され、ここで、エントリは、第１のファイルページテーブル又は第１のファイルページテーブルを指すために使用されるポインタを含む。
【０３７０】
本発明のいくつかの実施形態において、メモリページテーブルのレベルの総数はＹであり、第１のファイルページテーブルのレベルの総数はＸであり、エントリが、第１のファイルページテーブルを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ＋１）のレベル内のエントリであるか、又はエントリが、第１のファイルページテーブルを指すために使用されるポインタを含む場合、エントリは、メモリページテーブル内のメモリページテーブルの第（Ｙ−Ｘ）のレベル内のエントリであり、ここで、Ｘは正整数であり、ＹはＸよりも大きい正整数である。
【０３７１】
本発明のいくつかの実施形態において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスを第１のインデックスノードに記録し、及び／又は第１の仮想アドレス空間及び／又は第１の仮想アドレス空間の開始アドレスをファイルに対応するファイルオブジェクトに記録するようにさらに構成される。
【０３７２】
本発明のいくつかの実施形態において、第１の仮想アドレス空間は、連続又は不連続仮想アドレス空間である。
【０３７３】
本発明のいくつかの実施形態において、第１の仮想アドレス空間は、カーネル仮想アドレス空間又はユーザプロセス仮想アドレス空間内に配置される。
【０３７４】
本発明のいくつかの実施形態において、ファイル識別子によって表されるファイルの第１のインデックスノードを取得する態様において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていると決定されたときに、ファイル識別子によって表されるファイルの第１のインデックスノードを取得するように特に構成される。
【０３７５】
本発明のいくつかの実施形態において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、ファイルのファイルコンテンツを読み取るように要求するために使用されるファイル読み取り要求を受信し、ここで、ファイル読み取り要求は、読み込みメモリアドレス空間及びファイル内の、読み取られるように要求されている第１のファイルコンテンツのデータボリュームを搬送し、ここで、読み込みメモリアドレス空間は、ユーザプロセス作業メモリ領域内の第１のメモリ領域のアドレス空間であり、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得し、読み取り物理アドレス空間に基づき、ファイルストレージメモリ領域からファイルの第１のファイルコンテンツを読み取り、第１のファイルコンテンツを第１のメモリ領域に書き込むようにさらに構成される。
【０３７６】
本発明のいくつかの実施形態において、第１のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得する態様において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、
第１のファイルコンテンツのデータボリューム、第１のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第１のファイルコンテンツがファイルストレージメモリ領域から読み取られる読み取り物理アドレス空間を取得するように特に構成され、ここで、第１のファイルコンテンツオフセットは、ファイル読み取り要求から取得されるか、又は第１のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【０３７７】
たとえば、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスは、第１のファイルコンテンツオフセット（第１のファイルコンテンツオフセットがファイル読み取り要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第１のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための開始読み取り物理アドレスは、開始読み取り仮想アドレス及び第１の仮想−物理アドレスマッピング関係を使用することによって取得され、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間は、開始読み取り物理アドレス及び第１のファイルコンテンツのデータボリュームに基づき取得される。
【０３７８】
別の例として、第１のファイルコンテンツを読み取るための開始読み取り仮想アドレスは、第１のファイルコンテンツオフセット（第１のファイルコンテンツオフセットがファイル読み取り要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第１のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第１のファイルコンテンツを読み取るための読み取り仮想アドレス空間は、開始読み取り仮想アドレス及び第１のファイルコンテンツのデータボリュームに基づき取得され、ファイルストレージメモリ領域から第１のファイルコンテンツを読み取るための読み取り物理アドレス空間は、読み取り仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係を使用することによって取得される。
【０３７９】
本発明のいくつかの実施形態において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、ファイルにファイルコンテンツを書き込むように要求するためのファイル書き込み要求を受信し、ここで、ファイル書き込み要求は、読み出しメモリアドレス空間及びファイルに書き込まれるように要求されている第２のファイルコンテンツのデータボリュームを搬送し、ここで、読み出しメモリアドレス空間は、プロセス作業メモリ領域内の第２のメモリ領域のアドレス空間であり、
第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得し、ここで、書き込み物理アドレス空間は、ファイルストレージメモリ領域内の第３のメモリ領域の物理アドレス空間であり、
第２のメモリ領域内に一時的に記憶されている第２のファイルコンテンツを第３のメモリ領域に書き込むようにさらに構成される。
【０３８０】
本発明のいくつかの実施形態において、第２のファイルコンテンツのデータボリューム、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得する態様において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、
第２のファイルコンテンツのデータボリューム、第２のファイルコンテンツオフセット、第１の仮想アドレス空間、及びメモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係に基づき、第２のファイルコンテンツがファイルストレージメモリ領域に書き込まれる書き込み物理アドレス空間を取得するように特に構成され、ここで、第２のファイルコンテンツオフセットは、ファイル書き込み要求から取得されるか、又は第２のファイルコンテンツオフセットは、ファイルに対応するファイルオブジェクトから取得される。
【０３８１】
たとえば、第２のファイルコンテンツをファイルに書き込むための開始書き込み仮想アドレスは、第２のファイルコンテンツオフセット（第２のファイルコンテンツオフセットがファイル書き込み要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第２のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための開始書き込み物理アドレスは、開始書き込み仮想アドレス及び第１の仮想−物理アドレスマッピング関係を使用することによって取得され、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み物理アドレス空間は、開始書き込み物理アドレス及び第２のファイルコンテンツのデータボリュームに基づき取得される。
【０３８２】
別の例として、第２のファイルコンテンツをファイルに書き込むための開始書き込み仮想アドレスは、第２のファイルコンテンツオフセット（第２のファイルコンテンツオフセットがファイル書き込み要求から、若しくはファイルに対応するファイルオブジェクトから取得されない場合、初期設定のファイルコンテンツオフセットは、第２のファイルコンテンツオフセットと考えられ得る）及び第１の仮想アドレス空間の開始アドレスに基づき取得されるものとしてよく、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み仮想アドレス空間は、開始書き込み仮想アドレス及び第２のファイルコンテンツのデータボリュームに基づき取得され、第２のファイルコンテンツをファイルストレージメモリ領域のファイルに書き込むための書き込み物理アドレス空間は、書き込み仮想アドレス空間及び第１の仮想−物理アドレスマッピング関係を使用することによって取得される。
【０３８３】
第３のメモリ領域の記憶容量は、第２のファイルコンテンツのデータボリューム以上であるものとしてよい。第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域は、共通集合を有するか、又は共通集合を有しない。一般的に、第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域が、共通集合を有する場合、これは第２のファイルコンテンツがファイル内の一部又は全部の元のファイルコンテンツを置き換えることを指示し得ることが理解され得る（第３のメモリ領域と第１の物理アドレス空間に対応するメモリ領域との間の共通集合が、第３のメモリ領域よりも小さい場合、これは新しいメモリ領域が第２のファイルコンテンツに割り振られる、すなわち、ファイルを記憶するためのメモリ領域が変化し、ファイルを記憶するためのメモリ領域が拡張されることを指示する）。第３のメモリ領域及び第１の物理アドレス空間に対応するメモリ領域が、共通集合を有しない場合、これは第２のファイルコンテンツが、ファイルに新たに追加され、第３のメモリ領域が、第２のファイルコンテンツに割り振られた新しいメモリ領域であることを指示するものとしてよく、すなわち、ファイルを記憶するためのメモリ領域は変化し、ファイルを記憶するためのメモリ領域は拡張される。
【０３８４】
さらに、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域が変化した場合、プロセッサ１１０１は、第１のファイルページテーブルを更新するものとしてよく、それにより、更新された第１のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルを現在記憶しておくためのメモリ領域を指す。
【０３８５】
確かに、さらに、プロセッサ１１０１は、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を第３の仮想−物理アドレスマッピング関係に更新するものとしてよく、ここで、第３の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第３の物理アドレス空間との間のマッピング関係を含み、ここで、第３の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルを現在記憶しておくためのメモリ領域の物理アドレス空間である。第１のファイルページテーブルを指しているポインタ（メモリページテーブルに記録されている、第１のファイルページテーブルの開始物理アドレスなど）がメモリページテーブルに記録されている場合に、更新された第１のファイルページテーブルの開始物理アドレスが変化しない場合、第１のファイルページテーブルを指し、メモリページテーブルに記録されているポインタは、修正されないものとしてよい。さらに、この場合、仮想−物理アドレスマッピング関係は、第１のファイルページテーブルを更新することによって、メモリページテーブルを修正する必要なく、再確立されるものとしてよく、このことは、マッピング操作を大幅に簡素化する。
【０３８６】
本発明のいくつかの実施形態において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、ファイルを閉じるように要求するために使用されるファイルクローズ要求を受信し、ファイルに割り振られた第１の仮想アドレス空間を解放し、メモリページテーブルに記録されている第１の仮想−物理アドレスマッピング関係を解放するようにさらに構成される。
【０３８７】
本発明のいくつかの実施形態において、記憶デバイス１１０５に記憶されているプログラム又は命令を呼び出すことによって、プロセッサ１１０１は、ファイル識別子によって表されるファイルがファイルストレージメモリ領域内に記憶されていないと決定されたときにファイルストレージメモリ領域内にファイルを作成し、第２のインデックスノードをファイルに割り振り、ここで、第２のファイルページテーブル又は第２のファイルページテーブルを指すために使用されるポインタは、第２のインデックスノードに記録され、ここで、第２のファイルページテーブルは、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域を指すために使用され、第２の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第２の仮想−物理アドレスマッピング関係を記録するようにさらに構成され、ここで、第２の仮想−物理アドレスマッピング関係は、第２の仮想アドレス空間と第２の物理アドレス空間との間のマッピング関係を含み、ここで、第２の物理アドレス空間は、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の物理アドレス空間であり、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む。
【０３８８】
本発明のいくつかの他の実施形態では、ファイル識別子を搬送するファイルオープン要求が受信された後、ファイル識別子によって表されるファイルが、ファイルストレージメモリ領域内に記憶されていないと決定されたときに、ファイルは、ファイルストレージメモリ領域内に作成され、第３のインデックスノードが、ファイルに割り振られる。この場合、プロセッサ１１０１は、最初に、ファイルのファイルページテーブルをいっさい作成しないか、又はファイルの空のファイルページテーブルを作成するものとしてよく（ファイルの空のファイルページテーブルが作成された場合、第３のインデックスノードは、空のファイルページテーブル又は空のファイルページテーブルを指すために使用されるポインタを含み得る）、ファイルコンテンツが、作成されたファイルに書き込まれる必要があるときに、プロセッサ１１０１は、ファイルを記憶するためのメモリ領域を拡張する（たとえば、１０ＭＢから１１００ＭＢに拡張される）ものとしてよく、プロセッサ１１０１は、ファイルのファイルページテーブルを更新し、それにより、更新されたファイルページテーブルはファイルを記憶するための拡張されたメモリ領域を指す。
【０３８９】
本発明のいくつかの実施形態において、第２のファイルページテーブルのレベルの数とファイルのファイルタイプとの間に対応関係がある。
【０３９０】
本発明のいくつかの実施形態において、ファイルストレージメモリ領域は、不揮発性メモリ領域及び／又は揮発性メモリ領域を含む。
【０３９１】
この実施形態のコンピューティングノード１１００の機能モジュールの機能は、方法の実施形態における方法により特に実装され得ることは理解できる。機能の特定の実装プロセスについては、方法の実施形態の関係する説明を参照するとしてよく、詳細については、ここで再び説明することはしない。
【０３９２】
この実施形態の技術的解決方法において、ファイル識別子を搬送するファイルオープン要求を受信した後に、プロセッサは、ファイル識別子によって表されるファイルの第１のインデックスノードを取得し、第１のインデックスノードに基づき、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間を取得し、第１の仮想アドレス空間をファイルに割り振り、メモリページテーブルを使用することで第１の仮想−物理アドレスマッピング関係を記録し、ここで、第１の仮想−物理アドレスマッピング関係は、第１の仮想アドレス空間と第１の物理アドレス空間との間のマッピング関係であり、ここで、メモリページテーブルは、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを含む、ことがわかる。第１の仮想−物理アドレスマッピング関係は、カーネルメモリページテーブル及び／又はユーザプロセスメモリページテーブルを使用することによって記録されるので、ある程度、ファイルストレージメモリ領域内の、ファイルが記憶されているメモリ領域の第１の物理アドレス空間は、プロセス作業メモリ領域内のメモリ領域に対応する物理アドレス空間と見なされると考えてよく、このことは、カーネル又はユーザプロセスが、プロセス作業メモリ領域にアクセスする仕方と似た仕方でファイルストレージメモリ領域内のファイルにアクセスすることに役立つ。このように、これは、通常のメモリのデータアクセス性能に近いデータアクセス性能で、カーネル又はユーザプロセスがカーネル内に常駐する、ファイルシステムのファイルにアクセスすることに役立ち、このことは、ファイルアクセス性能を大幅に改善することに役立つ。ファイルアクセス解決方法は、ファイルシステムがメモリ内に常駐するシナリオにおいて高性能のファイルアクセスを実行することに比較的適用可能であることがわかる。さらに、仮想アドレス空間は、ファイルを開くことが要求されたときのみファイルに割り振られるので、これはシステムの仮想アドレス空間の不効率な占有の可能性及びアドレス衝突の可能性を低減することに役立ち、システムの仮想アドレス空間の利用効率を改善することに役立つ。
【０３９３】
さらに、連続仮想アドレス空間は、ファイルオープンプロセスにおいてファイルに割り振られるものとしてよく、したがって、これは、ファイルを読み取る／書き込むための開始仮想アドレスから始めて、１回で必要な読み取り／書き込み長の範囲内のメモリページにアクセスすることに役立ち、ソフトウェア層において複数回異なるメモリページの対応する仮想アドレスを探索することを必要としない。このように、ファイルのシーケンシャルアクセス速度は、きわめて高速になり得る。
【０３９４】
ＭＭＵを用いることで、ファイルの仮想アドレスと物理アドレスとの間の変換は、トランスペアレントに完遂されるものとしてよく、このことは、ファイルアクセス速度を上げることに役立ち、又はゼロオーバーヘッドを実装することにすら役立つ。
【０３９５】
さらに、データ構造がメモリページテーブルのデータ構造に類似しているか、又は同じであるファイルページテーブルが、ファイルストレージメモリ領域内の、ファイルコンテンツを記憶するためのメモリページを指すために使用される場合に、ファイルページテーブルのデータ構造は、メモリページテーブルのデータ構造に類似しているか、又は同じであるので、これは、ページテーブルのデータ構造の間のゼロ変換を実装することに役立ち、ファイルコンテンツを記憶するためのメモリページが変化したときにファイルページテーブル上のファイルの物理アドレス空間と仮想アドレス空間との間にマッピング関係を再確立する操作を実行することを必要としなくてよい。ファイルページテーブルを更新することによって、更新されたファイルページテーブルを指すために使用されるポインタがファイルページテーブルのエントリ内に挿入され、それによって、ファイルの物理アドレスと仮想アドレスとの間のマッピングの再確立を完遂し、この方式は、ファイルのサイズに無関係な一定の時間内にファイルの物理アドレスと仮想アドレスとの間のマッピングを再確立することに役立つ。
【０３９６】
さらに、独立した仮想アドレス空間が、異なるファイルに割り振られるものとしてよく、それにより、ファイルシステムの、ファイルストレージメモリ領域内の、ファイルは、システム仮想アドレス及びＭＭＵによって保護され、このことは、ファイルが誤って書き込まれる可能性を大幅に低減し、ファイルを適切に保護できるだけでなく、追加の書き込み保護メカニズムも必要とせず、それにより、システムを簡素化することに役立つ。
【０３９７】
さらに、ファイルが仮想アドレスを使用することによってアクセスされ、ファイルのサイズは、システム仮想アドレス空間のサイズ、及び同時に開くことがオペレーティングシステムによってサポートされているファイルの数のみに影響され、サイズも数も、ファイルシステムに対する制限にならず、したがって、ファイルのサイズは、ファイルシステムの設計によって制限され得ない。
【０３９８】
さらに、メモリ管理の方式に類似する方式がファイルシステムにおいて使用され、両方の方式において、記憶媒体が仮想アドレスを使用することによってアクセスされ、仮想アドレスと物理アドレスとの間の変換は、ＭＭＵを使用することによって実行されるものとしてよく、カーネル内の変更は比較的小さいものとしてよく、このことは、ファイルシステムを既存のオペレーティングシステムに移行させることにも役立つ。
【０３９９】
本発明の実施形態のコンピューティングノードは、サーバ、パーソナルコンピュータ、ネットワークエレメント、又は携帯端末などの、メモリを有するデバイスであってよい。
【０４００】
本発明の実施形態は、コンピュータ記憶媒体をさらに提供し、ここで、コンピュータ記憶媒体は、プログラムを記憶するものとしてよく、実行されたときに、プログラムは方法の実施形態において記録されている少なくとも１つのファイルアクセス方法のいくつかの又はすべてのステップを含む。
【０４０１】
前述の実施形態において、各実施形態の説明は、それぞれの注目点を有する。一実施形態において詳しくは説明されていない部分については、他の実施形態における関係する説明を参照するとしてよい。
【０４０２】
説明を簡潔にするため、前述の方法の実施形態は、一連の動作として表されていることに留意されたい。しかしながら、当業者は、本発明によりいくつかのステップは他の順序で又は同時に実行され得るので、本発明は動作の説明されている順序に限定されないことを理解するべきである。それに加えて、当業者は、本明細書で説明されている実施形態はすべて、例示的な実施形態に属しており、関与する動作及びモジュールは、必ずしも本発明に必須のものではないことも理解するべきである。
【０４０３】
本出願において提供されるいくつかの実施形態において、開示されている装置が他の方式で実装され得ることは理解されるべきである。たとえば、説明されている装置の実施形態は、単なる例にすぎない。たとえば、ユニットの分け方は、単に論理的な機能の分け方であり、実際の実装では他の分け方であってもよい。たとえば、複数のユニット又は構成要素が組み合わされるものとしてよく、若しくは別のシステム内に一体化されるものとしてよく、又はいくつかの特徴が無視されるものとしてよく、若しくは実施されないものとしてよい。それに加えて、表示されている、又は説明されている相互結合若しくは直接的結合若しくは通信接続は、いくつかのインターフェースを通じて実装され得る。装置若しくはユニットの間の間接的結合若しくは通信接続は、電気的又は他の形式で実装され得る。
【０４０４】
分離している部分として説明されるユニットは、物理的に分離するものとしてよく又は分離しないものとしてよく、ユニットとして示される部分は、物理的ユニットであるものとしてよく、又は物理的ユニットでないものとしてよく、１つの位置に配置されるものとしてよく、又は複数のネットワークユニット上に分散されるものとしてよい。ユニットの一部又は全部は、実施形態の解決方法の目的を達成するために実際の必要性に従って選択され得る。
【０４０５】
それに加えて、本発明の実施形態における機能ユニットは、１つの処理ユニット内に一体化されるものとしてよく、又はユニットの各々が、物理的に単独で存在するものとしてよく、又は２つ若しくはそれ以上のユニットが、１つのユニット内に一体化される。一体化されたユニットは、ハードウェアの形式で実装されるものとしてよく、又はソフトウェア機能ユニットの形式で実装されるものとしてよい。
【０４０６】
一体化されたユニットがソフトウェア機能ユニットの形態で実装され、独立した製品として販売又は使用される場合、一体化されたユニットは、コンピュータ可読記憶媒体に記憶され得る。このような理解に基づき、本発明の技術的解決方法は本質的に、又は従来技術に寄与する部分は、又は技術的解決方法の全部若しくは一部は、ソフトウェア製品の形式で実装され得る。ソフトウェア製品は、記憶媒体に記憶され、本発明の実施形態において説明されている前述の方法のステップの全部又は一部を実行するようにコンピュータデバイス（パーソナルコンピュータ、サーバ、若しくはネットワークデバイスであってよく、特に、コンピュータデバイス内のプロセッサであってもよい）に指示するための複数の命令を含む。前述の記憶媒体は、ＵＳＢフラッシュドライブ、取り外し可能ハードディスク、磁気ディスク、光ディスク、読み出し専用メモリ（ＲＯＭ，Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、又はランダムアクセスメモリ（ＲＡＭ，Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの、プログラムコードを記憶することができるいずれかの媒体を含み得る。
【０４０７】
前述の実施形態は、本発明を限定するのではなく、本発明の技術的解決方法を説明することのみを意図している。本発明は、前述の実施形態を参照しつつ詳しく説明されているけれども、当業者は、本発明の実施形態の技術的解決方法の精神及び範囲から逸脱することなく、依然として、前述の実施形態において説明されている技術的解決方法に修正を加えるか、又は技術的解決方法のいくつかの技術的特徴に対する同等の置き換えを行うことが可能であることを理解するべきである。
【図１】
0006385468.tif 000002
【図２−ａ】
0006385468.tif 000003
【図２−ｂ】
0006385468.tif 000004
【図２−ｃ】
0006385468.tif 000005
【図２−ｄ】
0006385468.tif 000006
【図２−ｅ】
0006385468.tif 000007
【図３】
0006385468.tif 000008
【図４】
0006385468.tif 000009
【図５】
0006385468.tif 000010
【図６】
0006385468.tif 000011
【図７】
0006385468.tif 000012
【図８】
0006385468.tif 000013
【図９−ａ】
0006385468.tif 000014
【図９−ｂ】
0006385468.tif 000015
【図９−ｃ】
0006385468.tif 000016
【図９−ｄ】
0006385468.tif 000017
【図９−ｅ】
0006385468.tif 000018
【図１０】
0006385468.tif 000019
【図１１】
0006385468.tif 000020