JP2003030025A - 動的に生成されるウエブページのための仮想ファイルシステム - Google Patents

動的に生成されるウエブページのための仮想ファイルシステム

Info

Publication number
JP2003030025A
JP2003030025A JP2002132955A JP2002132955A JP2003030025A JP 2003030025 A JP2003030025 A JP 2003030025A JP 2002132955 A JP2002132955 A JP 2002132955A JP 2002132955 A JP2002132955 A JP 2002132955A JP 2003030025 A JP2003030025 A JP 2003030025A
Authority
JP
Japan
Prior art keywords
file
data
directory
block
files
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002132955A
Other languages
English (en)
Inventor
David Marshall Holcomb
デイヴィッド・マーシェル・ホルコム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2003030025A publication Critical patent/JP2003030025A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 多数のデータファイルを含むことができる仮
想ファイルシステムを提供する。 【解決手段】 仮想ファイルシステムは、所定の構造の
ディレクトリおよびファイル、ならびに線形ファイル空
間を有する。線形ファイル空間は、ディレクトリ領域お
よびファイル割当てテーブル領域を含み、その場合に、
ディレクトリ構造の所定の特質を有する結果として、デ
ータブロックは、読出し要求時に計算することができ、
ファイルシステムに格納される必要はない。また、線形
ファイル空間は、所定の数の予め定義されたサイズのフ
ァイルを有するファイル領域も含む。ディレクトリ構造
の1組の最も低いレベルのディレクトリはそれぞれ1つ
のファイルを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は全般に大容量記憶装
置のためのファイルシステムに関し、より詳細には、周
辺装置において非常に少量のメモリを用いて、かつホス
トによって読み出されるデータブロックを動的に生成し
ながら、ホストシステムに、大きなブロック向きの大容
量記憶装置インターフェースを提供する、周辺装置のた
めの仮想ファイルシステムに関する。
【0002】
【従来の技術】現在のコンピュータシステムにおいて、
データを格納し、かつ回収するために、ディスクドライ
ブのような大容量記憶周辺装置が一般的に用いられてい
る。このデータはブロックで格納される。一般に「ファ
イル」と呼ばれる、多くの異なる論理データセットを、
周辺装置上に格納することができる。データブロックは
典型的には固定されたサイズからなるが、ファイルは、
1つのデータブロックに収容(fit)することができる
データよりも多くのデータを収容することができ、ファ
イルは多数のデータブロックからなる場合がある。さら
に、ファイルを構成する種々のデータブロックは、同じ
場所に配置される必要はなく、むしろ周辺装置上の異な
る場所に格納することができる。コンピュータシステム
によるデータのファイルへのアクセスを容易にするため
に、大容量記憶周辺装置は典型的には、各ファイルのた
めのデータブロックの周辺装置上の編成を記述するファ
イルシステムを提供する。
【0003】従来の大容量記憶周辺装置を用いる場合、
データブロックは、コンピュータシステムによる明確な
制御下でのみ、読出しおよび書込みが行われる。言い換
えると、コンピュータシステムは、あるデータブロック
およびファイルが周辺装置上に格納される場所に関する
自らの独立した記録を保持し、実際に、その場所がデー
タブロックあるいはファイルが配置される場所であるこ
とを確実にすることができる。頻繁に用いられるデータ
ブロックの保管および回収の速度を上げるために、コン
ピュータシステムは多くの場合に、これらの頻繁にアク
セスされるデータブロックを格納するコンピュータシス
テム自体の内部にデータブロックキャッシュも実装す
る。コンピュータシステムは、周辺装置から読み出す速
度よりも非常に速い速度で、キャッシュからデータブロ
ックを読み出すことができ、コンピュータシステムは典
型的には、所望のデータブロックのためのキャッシュを
探索し、キャッシュ内に見つからない場合にのみ、周辺
装置からデータブロックを要求する。
【0004】上記のキャッシュ機構は、ディスクドライ
ブのような従来の大容量記憶周辺装置の場合に良好に動
作し、その場合に、データブロックは、コンピュータシ
ステムの明確な制御下で読出しおよび書込みのみが行わ
れる。また、そのようなディスクドライブは一般に、そ
のファイルシステム、および全てのファイルのためのデ
ータブロックを実装するテーブルを格納するだけの十分
に大きなメモリも有する。しかしながら、本明細書で参
照される同時係属中で、同じ譲受人に譲渡されたHolcom
b他による特許出願に記載される装置のような、あるイ
ンテリジェント大容量記憶周辺装置は、コンピュータシ
ステムの明確な制御と無関係に、データブロックを動的
に作成し、削除し、再構成することができる。結果とし
て、コンピュータシステムはもはや、キャッシュ内のデ
ータブロックが周辺装置上のデータブロックと合致する
ことを確保できなくなり、コンピュータシステムが周辺
装置からファイルを取得するときではなく、キャッシュ
されたデータを読み出す際に、不正確な動作が生じる可
能性が高い。適当な動作を確保するために、周辺装置
は、動的にデータブロックを作成、削除あるいは再構成
する度に、コンピュータシステムに通知しなければなら
ず、コンピュータシステムは、キャッシュおよび他のフ
ァイルシステムテーブルを削除および再構築しなければ
ならない。コンピュータシステムの中には、周辺装置が
コンピュータシステムにそのような通知を行うための機
構を提供するものもある。しかしながら、キャッシュお
よび他のファイルシステムテーブルを削除および再構築
するための動作は、時間を要し、非効率的である。コン
ピュータシステムの中には、そのような機構に全く対応
しないものもある。
【0005】非従来型の周辺装置に関連する制限は、そ
れらの装置が、大きなファイルシステムを提供するため
に必要とされる全てのデータブロックを格納するだけの
十分なメモリを備えない場合があることである。結果と
して、周辺装置上に格納されるファイルの数および大き
さが不当に制限される場合があり、それゆえ、周辺装置
があるファイルを動的に削除し、かつ他のファイルを作
成する必要があり、先に記載された、コンピュータと周
辺装置との間の同期の問題が生じる場合がある。
【0006】
【発明が解決しようとする課題】したがって本発明の目
的は、ホストコンピュータシステムがそのキャッシュお
よび他のファイルシステムテーブルを削除および再構築
することを必要とすることなく、かつ大きなメモリを必
要とすることなく、ファイルが作成され、削除され、さ
らに再構成されるようにする、多数のデータファイルに
アクセスする新規の改善されたファイルシステムおよび
方法を提供する。
【0007】
【課題を解決するための手段】好ましい実施形態では、
本発明は、多数のデータファイルを含むことができる仮
想ファイルシステムを提供する。仮想ファイルシステム
は、所定の構造のディレクトリおよびファイル、ならび
に線形ファイル空間を有する。線形ファイル空間は、デ
ィレクトリ領域およびファイル割当てテーブル領域を含
み、その場合に、ディレクトリ構造の所定の特質を有す
る結果として、データブロックは、読出し要求時に計算
することができ、ファイルシステムに格納される必要は
ない。また、線形ファイル空間は、所定の数の予め定義
されたサイズのファイルを有するファイル領域も含む。
ディレクトリ構造の1組の最も低いレベルのディレクト
リはそれぞれ1つのファイルを含む。特定の最も低いレ
ベルのディレクトリにリンクされる、ファイル領域内の
特定の1つのファイルは、最も低いレベルのディレクト
リが最初にアクセスされた時点で決定され、それによ
り、そのファイルのうちの以前には未使用であるか、あ
るいは最も最近使用されていない(LRU)ファイルが
割り当てられ、ホストのキャッシュを削除し、再構築す
る必要性を回避できるようにすることが好ましい。その
ファイルのデータブロックは、要求時に動的に生成さ
れ、仮想ファイルシステムに提供されるか、あるいは仮
想ファイルシステムを介して読み出される補助ファイル
システムに格納されるファイルにエイリアスが作成され
ることが好ましい。
【0008】
【発明の実施の形態】本発明の上記の機構、およびそれ
らを達成する態様、ならびに本発明自体は、併記の図面
とともに取り上げられる、本発明の好ましい実施形態の
以下に記載される詳細な説明を参照することにより、最
も理解しやすくなるであろう。
【0009】ここで図面を参照すると、ファイルシステ
ム10が実装される装置50からデータを読み出す新規
の方法100により構成される仮想ファイルシステム1
0(「VFS」とも呼ばれる)が示される。仮想ファイ
ルシステム10は、ディレクトリに対応するデータブロ
ック(および、本明細書で「FAT」とも呼ばれる、関
連するファイル割当てテーブル)をアルゴリズムにした
がって計算することができるようなディレクトリ階層を
予め定義することにより、かつデータファイルに対応す
るデータブロックが、アクセス時に、あるいはそれに近
い時点で動的に生成されることができるよう、利用時
に、あるいはそれに近い時点でのみディレクトリ階層に
データファイルを結び付けることにより、比較的少ない
メモリ量だけで実装することができる大きな仮想ファイ
ル空間を提供することが有利である。本発明は特に、当
業者によく知られている、幅広く用いられるMS−DO
SファイルシステムのようなFATベースの利用ファイ
ルシステムに適用することができる。
【0010】当業者によって理解されているように、フ
ァイルシステムは、ディレクトリ、ファイルおよび他の
内部情報からなる構造であり、その内部情報は、これら
のディレクトリおよびファイルを配置し、アクセスする
ためにオペレーションシステムによって用いられる。デ
ィレクトリは典型的には、ディレクトリ階層に編成さ
れ、ディレクトリの中には、親子のツリー構造で他のデ
ィレクトリに関連付けられるものもある。ファイルはデ
ィレクトリ内に配置される。ファイルシステムを含むデ
ータ構造は、メモリ内の線形ファイル空間を占有するこ
とが好ましい。仮想ファイルシステムは、ファイルシス
テムの外部にあるホストコンピュータあるいは他の装置
によって視認される際に、ディレクトリおよびファイル
が線形ファイル空間内に存在するように見えるファイル
システムであるが、実際には、ディレクトリあるいはフ
ァイル上で動作を実行するために、ホストコンピュータ
がファイルシステムを要求するまで、線形ファイル空間
内に存在しない場合があるか、あるいは物理的なメモリ
内にさえ全く存在しない場合がある。
【0011】図1の典型的な予め定義されたファイル構
造15を参照すると最も理解しやすいように、本発明の
仮想ファイルシステム10は、予め定義され、固定され
たディレクトリ階層20を有し、その階層はルートディ
レクトリ“\”21で開始する。ルートディレクトリ2
1の下には、ルートディレクトリに対するサブディレク
トリである第1レベルのディレクトリのセット22があ
る。典型的なディレクトリ階層20は、4つの第1レベ
ルのディレクトリを含み、それがD1〜D4で示され
る。より高いレベルのディレクトリの下に含まれるサブ
ディレクトリの数は、「ファンアウト」と呼ばれる。典
型的なディレクトリ構造は、全てのレベルにおいて4つ
のファンアウトを用いるが、明瞭に示すために、図1に
は各レベルに対して、4つのサブディレクトリからなる
1組のみが示される。第1レベルのディレクトリD2
23は、4つの第2レベルのディレクトリを含み、それ
はD9〜D12で示される。第2レベルのディレクトリ
D11 24は、4つの第3レベルのディレクトリを含
み、それはD45〜D48で示される。第1レベルのデ
ィレクトリおよび第2レベルのディレクトリはいずれ
も、より高いレベル(「親」)ディレクトリおよびより
低いレベル(「子」)ディレクトリの両方を有するとい
う点で、中間レベルのディレクトリであるとみなされ
る。第Yレベルのディレクトリ(この典型的な階層20
では、第3レベルのディレクトリ)は、ディレクトリ階
層20において最も低いレベルのディレクトリである。
本発明による各第Yレベルのディレクトリは、1組の予
め定義されたファイルプレイスホルダ18のうちの1つ
を含み、たとえば、ディレクトリD48 25は、ファ
イルプレイスホルダF88 26を含む。最も低いレベ
ルのディレクトリは親ディレクトリを有するが、子ディ
レクトリを持たない。図1に用いられるディレクトリお
よびファイルラベリングの重要性は、後に図3が説明さ
れる際に明らかになるであろう。
【0012】ディレクトリファンアウトNおよび階層深
度Yは、所望の数のファイルを有する仮想ファイルシス
テムを提供するように選択できることが有利である。フ
ァイルの数は、式Nにしたがって計算される。それゆ
え、ファンアウト4および深度3を有する典型的な階層
20は、4=64個のファイルを提供する。好ましい
実施形態は、ファンアウト32および深度4を有し、そ
れゆえ、32=1,048,576個のファイルを提
供する。ファンアウトNおよび深度Yは、ディレクトリ
階層の各レベルおよびブランチにおいて異なる場合があ
るが、好ましい実施形態では、後に本発明の方法が説明
される際に明らかになるように、それらは全てのレベル
およびブランチにおいて同じである。
【0013】図2を参照すると最も理解しやすいよう
に、仮想ファイルシステムは、データブロック2のよう
な、B個の論理データブロックを含むファイル空間30
を占有する。各データブロックはbバイトを含む。当業
者にはよく知られているように、一般的に用いられるF
AT−32ファイルシステムでは、各ブロックは典型的
には4kバイトのデータを含み、1つのデータブロック
は、典型的にはファイルシステムが実装される物理媒体
のタイプに応じて、さらに分割されることができるが、
それらは当分野において知られており、本発明に関連し
ないため、そのような説明は本明細書では省略されるで
あろう。
【0014】仮想ファイルシステム10のデータブロッ
クは、順次に編成されることが好ましい。データブロッ
クは、典型的にはブロック番号毎に、ホストコンピュー
タ(図示せず)あるいは他の装置によって仮想ファイル
システム10から要求されることができる。ファイル空
間30は、いくつかの連続した領域に論理的に分割され
る。サイズD個のブロックディレクトリ領域32は、先
に説明されたように、仮想ファイルシステム10のディ
レクトリ階層を予め定義する。
【0015】またファイル空間30は、多数のファイル
領域34a、b、cも含み、その領域は全体として、フ
ァイル空間30のF個のブロックを占有する。各ファイ
ル領域34a、b、cは、所定数のサイズのデータブロ
ックのデータファイルの量を予め定義する。ファイル領
域34aは、量Qのデータファイルを定義し、その各
ファイルのサイズは1ブロックである。ファイル領域3
4bは、量Qのデータファイルを定義し、その各ファ
イルのサイズは2ブロックである。ファイル領域34c
は、量Qのデータファイルを定義し、その各ファイル
のサイズはMブロックである。各ファイル領域のサイズ
は、ファイルの量および各ファイルのブロックサイズに
よって決定される。ファイル領域の数、各領域内のファ
イルの量、および各領域内のファイルのブロックサイズ
は、本発明によって制限されることはなく、むしろ、フ
ァイルシステム10の設計者が選択可能な設計的事項で
ある。
【0016】またファイル空間30は、1つあるいは複
数のFAT領域36も含む。各FAT領域36は、ディ
レクトリおよびデータファイルのための全てのデータブ
ロックを、ファイル空間30内に配置するために、T個
のブロックサイズのファイル割当てテーブルを予め定義
する。本発明によれば、かつ後にさらに詳細に説明され
るように、これらの領域は、ファイルシステム10を収
容するために必要とされる物理的なメモリ量を低減する
ために、ディレクトリ領域32およびFAT領域36内
のデータブロックが、ファイルシステム10が読み出さ
れる際にアルゴリズムにしたがって計算されるように編
成される。
【0017】ここで、図3を参照しながら、ディレクト
リ領域32についてさらに詳細に考えてみると、ディレ
クトリ領域32は、ディレクトリエントリを含む。各デ
ィレクトリエントリは、(少なくとも)名前、開始ブロ
ック番号、エントリの属性(特に、それが子ディレクト
リを表すか、ファイルを表すか)、および各ファイルあ
るいは子ディレクトリのサイズを特定する種々のフィー
ルドを含む。ディレクトリエントリは、ディレクトリ階
層20の個々のディレクトリの内容を記述する。好まし
い実施形態では、階層20の各ディレクトリのためのデ
ィレクトリエントリは、個別のデータブロック内に含ま
れ、ファイル空間30内のそのブロックの場所は、ディ
レクトリ階層20から計算することができる。図1の典
型的なディレクトリ階層20を用いて示すために、ルー
トディレクトリ21の場合のディレクトリエントリが、
ディレクトリ領域32のブロック0に割り当てられる。
ブロック0は、4つのディレクトリエントリを含み、そ
れは階層20の4つの第1レベルのディレクトリ(D1
〜D)のためのディレクトリエントリに対応する。図3
のディレクトリ領域32の各ブロック内に示される番号
は、そのブロック内の特定のディレクトリエントリの開
始ブロックフィールドの値を表し、ディレクトリ階層2
0において用いられるディレクトリ番号に対応する。た
とえば、ブロック0の第2のエントリ38aは、第1レ
ベルのディレクトリD2に対応し、ディレクトリD2の
ためのディレクトリエントリがブロック2において見い
だされる場合があることを指示する。ブロック2の第3
のエントリ38bは、第2レベルのディレクトリD11
に対応し、ディレクトリD11のためのディレクトリエ
ントリがブロック11において見いだされる場合がある
ことを指示する。ブロック11の第4のエントリ38c
は、第YレベルのディレクトリD48に対応し、ディレ
クトリD48のためのディレクトリエントリがブロック
48において見いだされる場合があることを指示する。
ブロック48の第1のエントリ38d(そしてそれだ
け)が、ファイルプレイスホルダに対応する。ファイル
プレイスホルダは、任意の特定の時点でそれに関連する
実際のファイルを持つ場合も、持たない場合もある。フ
ァイルエントリのための開始ブロックフィールドの値
は、ファイルの存在の状態を指示する。ある予め定義さ
れた値は、これまでにディレクトリD48内のファイル
が作成されていないことを指示し、一方、異なる予め定
義された値は、ディレクトリD48において以前にファ
イルが作成されたがそのファイルはもはや存在しないこ
とを指示する。開始ブロックフィールドが、0〜F−1
の値を含む場合には、現時点で、関連するファイルが存
在しており、開始ブロックフィールド値が、ファイルデ
ータが配置されるファイル領域34内のブロック番号で
あることを指示する。後にさらに詳細に記載されるよう
に、第Yレベルのディレクトリのためのファイルプレイ
スホルダは、特定の第Yレベルのディレクトリが最初に
アクセスされるときにのみ、特定のデータファイルに結
び付けられる。
【0018】アレイ内にディレクトリ階層20のような
N個の部分(たとえば、2個あるいは3個の部分等)か
らなるツリーを格納する上記の態様は、当業者にはよく
知られている。ディレクトリ階層20は固定されてお
り、後にさらに詳細に記載されるように、任意の特定の
ディレクトリのためのデータブロックのファイル空間3
0内の位置は計算することができるので、本発明による
VFS10は、ディレクトリ領域32のためのデータを
格納する必要はなく、むしろ、ホストコンピュータによ
って要求される際に、任意の特定のデータブロックのた
めのデータをアルゴリズムにしたがって計算することが
できる。
【0019】ここで、図4を参照しながら、FAT領域
36についてさらに詳細に考えてみると、多くのファイ
ルシステムでは、2ブロック以上に及ぶファイルあるい
はディレクトリのデータブロックは、ファイル空間30
内に連続して配置されない。先に説明されたように、デ
ィレクトリエントリは、あるディレクトリあるいはファ
イルのためのデータが見いだされることになる開始ブロ
ックを指示するが、任意の付加的なデータブロックの場
所を指示しない。FATテーブルは、開始ブロックと任
意の付加的なブロックとの間のこの結び付きを与える。
ディレクトリ階層、ならびにファイルの数およびサイズ
は、本発明のVFS10において予め決定されるので、
それに応じて、FAT領域の内容はアルゴリズムにした
がって計算することができる。
【0020】FAT領域36のサイズは、VFS10に
含まれるデータブロックの数によって決定される。FA
T36は、システム内の各データブロックのためのFA
Tエントリ42を含む。各FATエントリ42は、ディ
レクトリ32およびファイル34領域の組み合わせにお
いて、最も大きなブロック番号を表す値(すなわち、D
+Fの値)を含むだけの十分に大きなサイズから構成さ
れなければならない。たとえば、FAT−32ファイル
システムは、4バイトFATエントリ42を使用し、そ
れは、232=4,294,967,296ブロックに
まで対処するのに十分な数である。
【0021】FAT領域36は、ディレクトリFATサ
ブ領域36aと、ファイルFATサブ領域36bとを含
む。先に説明されたように、各ディレクトリはディレク
トリ領域32において1つのデータブロックを占有する
ため、ディレクトリFATサブ領域36a内のFATエ
ントリ42の数は、ディレクトリ階層20内のディレク
トリの数に等しい。たとえば、図1の典型的なディレク
トリ階層20では、N=4およびY=3であり、1つの
ルートディレクトリと、N=4個の第1レベルのディ
レクトリと、N=16個の第2レベルのディレクトリ
と、N=64個の第Y(第3)レベルのディレクトリ
とが存在し、全体で85個のディレクトリが存在する。
それゆえ、ディレクトリFATサブ領域36aにおいて
85個のFATエントリ42が存在する。
【0022】ファイルFATサブ領域36bに関して
は、種々のファイルが、ファイル領域34において異な
る数のデータブロックを占有することができる。しかし
ながら、本発明のファイルシステム10によれば、先に
記載されたように、ファイルの数および各ファイルのサ
イズは予め決定されるので、FATサブ領域36bのた
めに必要とされるFATエントリ42の数はアルゴリズ
ムにしたがって計算することができる。たとえば、N
=4=64ファイルを含む、図1の典型的なディレク
トリ階層20において、ファイルのうちの32個
(Q)が1ブロックファイルであり、16個(Q
が2ブロックファイルであり、10個(Q)が4ブロ
ックファイルであり、6個(Q)が8ブロックデータ
ファイルであるものと仮定する。それゆえ、32×1=
32ブロックが1ブロックファイルのための必要とさ
れ、16×2=32ブロックが2ブロックファイルのた
めに必要とされ、10×4=40ブロックが4ブロック
ファイルのために必要とされ、6×8=48ブロックが
Mブロックファイルのために必要とされ(ここではM=
8)、全体として32+32+40+48=152ブロ
ックが必要とされる。それゆえ、ファイルFATサブ領
域36bは152FATエントリ42を含むであろう。
【0023】ディレクトリ領域32あるいはファイル領
域34内の特定のデータブロックのためのFATエント
リ42の内容は、そのディレクトリあるいはファイルの
ためのデータが別のデータブロックにおいて継続される
か否かを、さらに継続される場合には、どのブロックに
おいてデータが継続されるかを指定する。FATエント
リ42が、ファイルシステム10内の別のデータブロッ
ク番号に対応する値を含む場合には、そのデータはその
ブロック番号において継続される。FATエントリ42
が、ファイルシステム10内のあるブロック番号に対応
しない、予め定義された「連鎖終了」値を含む場合に
は、そのデータは、任意の付加的なブロックに継続され
ない。図4の典型的なFATテーブル36を参照する
と、4ブロックデータファイルの開始ブロックは、デー
タファイルに関連するFATエントリ#64 42’に
配置される。図4の典型的なファイルFATサブ領域3
6bでは、FATエントリ#64 42’は、データブ
ロック#65において4ブロックデータファイルが継続
されることを指示する、値65を含む。同様に、FAT
エントリ#65は、データブロック#66において4ブ
ロックデータファイルが継続されることを指示する、値
66を含み、FATエントリ#66は、データブロック
#67において4ブロックデータファイルが継続される
ことを指示する、値67を含む。データブロック#67
は、その連鎖における4つのブロックの最後のブロック
であるため、FATエントリ#67は、「連鎖終了」マ
ーカを含む。
【0024】ここで、仮想ファイルシステム10からデ
ータを読み出す新規の方法100について、図5を参照
しながら考えてみると、その方法100は、102にお
いて、ディレクトリ階層20と、所定のファイル18の
ための1組のプレイスホルダとを含む所定のファイル構
造15のためのデータブロックの論理的な線形構成を含
むファイル空間30を有する仮想ファイルシステム10
を定義することにより開始する。104では、VFS1
0において指定された位置を有するデータブロック2を
提供するための要求が、典型的にはVFS10に接続さ
れるホストコンピュータから受信される。106では、
データブロック2が配置されるVFS10のセクション
が決定される。データブロック2が、FAT領域36あ
るいはディレクトリ領域32に配置される場合には(1
06の「FATあるいはディレクトリ」ブランチ)、そ
の方法は108において継続される。
【0025】データブロック2がFAT領域36内にあ
る場合、あるいはデータブロック2がディレクトリ領域
32内にあるが、ルートディレクトリ、またはディレク
トリ階層20内の中間レベルのディレクトリのうちの1
つに対応する場合には(108の「No」ブランチ)、
114において、所定のディレクトリ階層20および指
定されたブロック位置に基づいて、データブロック2の
内容が計算され、116において、ホストコンピュータ
からの要求に応じて、その内容がホストコンピュータに
供給される。データブロックの内容が計算されるアルゴ
リズムは、後に記載されることになる。データブロック
内容の計算は、VFS10のファイル構造15およびフ
ァイル空間30の新規の予め定義された編成によって行
うことができることが有利である。
【0026】データブロック2がディレクトリ領域32
内にあり、ディレクトリ階層20において最も低いレベ
ルのディレクトリのうちの1つに対応する場合には(1
08の「Yes」ブランチ)、110において、その最
も低いレベルのディレクトリに対応するファイルによっ
て含まれることになる実際のデータ量が決定される。こ
れは、仮想ファイルシステム装置50を参照して後に記
載されるように、予めファイルプレイスホルダとデータ
とを関連付けた仮想ファイルシステム10の外部にある
プロセスによってなされることが好ましい。一旦、この
実際のファイルのバイトサイズがわかれば、112にお
いて、最も低いレベルのディレクトリが、データの量以
上の最大ファイルサイズを有する未使用の(あるいは最
近最も使用されていない(LRU))所定のファイルに結
び付けられ、その方法は114において継続される。典
型的には、データを収容するだけの十分なサイズからな
る最も小さい所定のファイルが、特定の最も低いレベル
のディレクトリに結び付けられるであろう。
【0027】FAT領域36およびディレクトリ領域3
2においてデータブロック2を計算することにより、本
発明は、特に多数のファイルおよび大きさサイズのファ
イルがファイルシステム10に含まれる際に、仮想ファ
イルシステム10によって必要とされる物理的なメモリ
量を最小にすることが有利である。
【0028】データブロック2がファイル領域34に配
置される場合には(106の「ファイル」ブランチ)、
116において、そのファイルのためのデータ源が決定
される。そのデータが動的に生成されることになる場合
には(116の「動的」ブランチ)、118において、
データブロック2の内容が、好ましくは仮想ファイルシ
ステム10の外部にあるプロセスによって動的に生成さ
れ、122において、その内容が、ホストコンピュータ
からの要求に応答して、ホストコンピュータに供給され
る。そのデータが、VFS10の外部にある補助ファイ
ルシステム70のような別のデータメモリからエイリア
スを作成される場合には、120において、データブロ
ック2の内容はその補助ファイルシステム70から取得
され、122において、その内容が、ホストコンピュー
タからの要求に応答して、ホストコンピュータに供給さ
れる。
【0029】要求されるのに応じて、データブロック2
を動的に生成することにより、あるいは、仮想ファイル
システム10が収容される装置内に既に存在する補助フ
ァイルシステム70からデータブロック2を取得するこ
とにより、本発明は、特に多数のファイルおよび大きさ
サイズのファイルがファイルシステム10に含まれる際
に、仮想ファイルシステム10によって必要とされる物
理的なメモリ量を最小にすることが有利である。
【0030】方法100は、仮想ファイルシステム10
内に組み込まれるコンピューティング装置(図示せず)
によって実行可能な、ROM、CD−ROM、フロッピ
ィディスク等のようなプログラム記憶媒体上に収容され
る命令のプログラムとして、ファームウエアおよび/ま
たはソフトウエアにおいて実装されることが好ましい。
そのような実装形態は、当業者にはよく知られている。
命令のプログラムは、同じく記載されているファイル構
造15およびファイル空間30を実装するために先に記
載された方法100のステップを実行するために、多数
の論理セグメントに編成されることができる。
【0031】ここで、最もわかりやすくするために図
2、図3、図4および図6を参照しながら、所定のディ
レクトリ階層20に基づいて、FAT領域36あるいは
ディレクトリ領域32内のデータブロック2の内容を計
算するステップ114についてさらに詳細に考えてみる
と、ステップ130において、ファイル空間30のFA
T領域36あるいはディレクトリ領域32内の要求され
るデータブロックの場所が判定される。要求されるデー
タブロックがディレクトリ領域32内にあり、最も低い
レベル(第Yレベル)のディレクトリではない任意のデ
ィレクトリに対応する場合には、132において、要求
されるデータブロックのブロック番号が、要求されるデ
ィレクトリのための、ディレクトリに関連するブロック
番号に変換される。134では、要求されるディレクト
リの全ての子サブディレクトリの、ディレクトリに関連
するブロック番号が、好ましくは、アレイに格納される
N個の部分からなるツリーを横断するために当業者に知
られている従来のアルゴリズムにしたがって、所定のデ
ィレクトリ階層20の深度およびファンアウトに基づい
て子サブディレクトリのブロック番号を計算することに
より決定される。たとえば、要求されるブロックが、デ
ィレクトリ関連ブロック#6に対応する場合には、子サ
ブディレクトリ#25、#26、#27および#28が
特定される。一旦、適切な子サブディレクトリが決定さ
れたなら、136において要求されるディレクトリのこ
れらの子サブディレクトリのためのディレクトリエント
リデータが作成される。
【0032】要求されるデータブロックがディレクトリ
領域32内にあり、最も低いレベル(第Yレベル)のデ
ィレクトリに対応する場合には、138において、ファ
イルを表すディレクトリエントリデータが作成される。
このデータは、その最も低いレベルのディレクトリに対
応するファイルシャドーテーブル60内のエントリ62
に含まれる情報から導出される(シャドーテーブル60
およびそのエントリ62は、後に図7を参照しながらさ
らに詳細に記載されるであろう)。たとえば、要求され
るブロックがディレクトリに関連するブロック#48に
対応する場合には、ブロック#48に関連する最も低い
レベルのディレクトリに含まれるファイルを表すディレ
クトリエントリデータ38dが作成される。
【0033】要求されるデータブロックがFAT領域3
6内にある場合には、140において、要求されるデー
タブロックに含まれるFATエントリが特定される。好
ましい実施形態では、これらのエントリは、データブロ
ックのサイズ、および各FATエントリのサイズに基づ
いて容易に計算される。各FATエントリ42は、ディ
レクトリ領域32あるいはファイル領域34内のデータ
ブロック2を参照する。142では、これらのFATエ
ントリのうちのどのエントリがブロック連鎖の中の最後
(あるいは唯一)のブロックであるブロックに対応し、
かつ、どのエントリがブロック連鎖の中の最後(あるい
は唯一)ではないブロックであるブロックに対応するか
が判定される。好ましい実施形態では、全てのディレク
トリが1つのデータブロックを占有し、各サイズMのデ
ータファイルの数が予め決定されるため、ファイル空間
30の編成に基づいて、これは容易に計算することがで
きる。144では、連鎖終了マーカを含むFATエント
リデータが、ブロック連鎖内の最後(あるいは唯一)の
ブロックに対応する全てのFATエントリのために作成
され、一方、146では、ブロック連鎖内の次のブロッ
クを指示するFATエントリデータが、ブロック連鎖内
の最後(あるいは唯一)のブロックに対応しない全ての
FATエントリのために作成される。たとえば、要求さ
れるデータブロックが、データファイルに関連するブロ
ック#64〜#67のためのFATエントリを含む場合
には、ブロック#64のために作成されるFATエント
リはブロック#65を指し、一方、ブロック#67のた
めの作成されるFATエントリは連鎖終了マーカを含む
であろう。
【0034】また本発明は、図7を参照すると最も理解
しやすいように、ホストコンピュータ(図示せず)から
アクセスすることができるブロック向きのデータ源を提
供するために、仮想ファイルシステム10を組み込む装
置50として具現することもできる。VFS10は、ホ
ストコンピュータから「Read Block<B>」
要求を受信する領域識別装置52をさらに含む。ただし
<B>は、VFS10内の絶対データブロック番号Bで
ある。領域識別装置52は、ブロックBが、FAT領域
36あるいはディレクトリ領域32内のブロックに対応
するか否かを判定し、それゆえ、ファイルデータは上記
のように計算されることができるか、あるいはブロック
Bがファイル領域34内のブロックに対応する否かを判
定し、それゆえ、ファイルデータは上記のように取得さ
れなければならない。好ましい実施形態では、領域識別
装置52は、絶対ブロック番号Bを、そのブロックが属
する領域32、34、36に対するブロック番号に変換
する。そのブロックがFAT領域36あるいはディレク
トリ領域32内にある場合には、ファンアウトN、深度
Y、ファイル量Q、および各ファイル量Qに関連するブ
ロックの数とともに、所定のファイル構造15に関する
情報(knowledge)を有するブロック計算装置54が、
要求されるデータブロックの内容を計算する。ブロック
番号が第Yレベルのディレクトリに対応する場合には、
第Yディレクトリファイルバインダ56が動的データ生
成器58に要求を送信し、ファイルシャドーテーブル6
0内のファイルシャドー62を、ファイルシステム10
内の所与のサイズの特定の予め定義されたファイルに結
び付ける。
【0035】ファイルシャドー62は典型的には、装置
50の別のモジュール(図示せず)によって動的データ
生成器58になされる非同期要求によって予め作成され
ている。このような各要求の例は、Holcomb他に
よる先に引用された同時係属中の米国特許出願に記載さ
れる。ファイルシャドー62が作成された時点では、シ
ャドー62に関連することになるデータの量がわからな
い場合があり、それゆえ、そのファイルのためのファイ
ルサイズ(および同様にファイル領域34内のファイル
開始ブロック位置)は知ることができない。こうして、
ファイルシャドー62は典型的には、シャドー62が作
成された時点で、第Yディレクトリブロック番号および
データ源アドレスあるいは識別子のみを含む。しかしな
がら、第Yディレクトリが読み出されるとき、その第Y
ディレクトリ内に配置される1つのファイルのための後
続の要求がおそらくまさに行われようとしていることが
事前に通知される。さらに、好ましい実施形態では、フ
ァイルのサイズも、第Yディレクトリのために返送され
るデータブロック2において提供されなければならな
い。一旦、動的データ生成器58がファイルサイズを判
定すると、少なくともファイルサイズと同じ大きさであ
る特定の予め定義されたファイルを選択することがで
き、それゆえ、シャドー62内のファイル開始ブロック
番号およびファイルサイズフィールドが書き込まれ、そ
の時点で、その特定のファイルが第Yディレクトリに結
び付けられる。
【0036】ホストコンピュータがそのキャッシュメモ
リ(図示せず)内に特定のデータブロックを既に含んで
おり、それゆえ。それを装置50から要求しないもの
と、ホストコンピュータが判断してしまうあらゆる可能
性を排除あるいは最小にするために、装置50は2つの
ことを行うことが好ましい。第1に、ファイルシャドー
62を作成するための要求を処理する際に、動的データ
生成器58は、以前に一度も用いられていないパスネー
ムを(以前に一度も用いられていない第Yディレクトリ
ブロックを選択することにより)確立する。第2に、フ
ァイルシャドー62と、あるファイルとを結び付けるた
めの要求を処理する際に、動的データ生成器58は、以
前に一度も用いられていないファイルを選択する。仮想
ファイルシステム10の物理的なメモリサイズは、ファ
イルシステム10が含むファイルの数およびサイズにほ
とんど影響を受けないので、特定の装置50のための仮
想ファイルシステム10は、第Yレベルディレクトリあ
るいはファイルが絶えず2度用いられる必要がある(a
file need ever be used twice)、あらゆる機会を最小
にするように選択されることができる。しかしながら、
本発明の好ましい実施形態は、要求時に、第Yレベルの
ディレクトリおよびファイルを割り当てるブロックマネ
ージャ64も備える。ブロックマネージャ64は、ホス
トコンピュータによってブロックが要求されるのに応じ
て、第Yディレクトリファイルバインダ56およびファ
イルマネージャ66から通知を受信することにより、第
Yレベルのディレクトリおよびファイルの利用状況を追
跡し続ける。装置50が、未使用のディレクトリあるい
はファイルを使い果たす場合には、ブロックマネージャ
64は、ホストコンピュータのキャッシュから、そのデ
ィレクトリあるいはファイルについての任意の以前の情
報が既に失効されていることを見越して、最も最近使用
されていない(LRU)ものが割り当てられるようにす
ることを確実にする。ブロックマネージャ64によって
用いられるアルゴリズムは、メモリ管理および不要領域
(garbage collection)の整理において用いられるアル
ゴリズムと類似であり、当業者にはよく知られている。
【0037】要求されるブロックBがファイル領域34
内にある場合には、ファイル生成器66はファイルシャ
ドーテーブル60を探索し、そのブロックに関連するフ
ァイルシャドー62の位置を特定する。その際、ファイ
ルシャドー62のデータ源フィールドは、ファイル生成
器66がデータ源を判定するために用いられる。そのデ
ータ源が動的データ生成器58である場合には、そのブ
ロックは、動的データ生成器58から要求される。その
データ源が補助ファイルシステム70上のファイルであ
る場合には、ファイルエイリアス作成ブリッジ68が、
要求されたブロックを、補助ファイルシステム70上の
ファイルの対応するブロックに変換する。補助ファイル
システム70の一例は、たとえば、デジタルカメラによ
って記録される写真画像ファイルを格納するために用い
られるコンパクトフラッシュ(登録商標)カードあるい
はPCMCIAフラッシュカードによって利用されるフ
ァイルシステムである。
【0038】上記の内容から、本発明によって提供され
る仮想ファイルシステムが、当分野において著しい前進
を表すことは理解されよう。本発明のいくつかの特定の
実施形態が記載されおよび図示されてきたが、本発明
は、そのように記載および図示される特定の方法、形態
あるいは部品の配置に限定されない。特に、そのファイ
ルシステムは、ブートセクタのような付加領域を含む場
合があり、FAT領域の冗長なコピーを含む場合があ
る。ルートディレクトリおよび中間レベルディレクトリ
は、限定はしないが、自己参照ディレクトリ(通
常、“.”ディレクトリとして示される)、および親デ
ィレクトリ(通常、“..”ディレクトリとして示され
る)を含む、明瞭に示すために省略されている付加的な
予め定義されたディレクトリあるいはファイルを含む場
合があることも理解されたい。さらに、好ましい実施形
態では、ファイルサイズは、第Yレベルのディレクトリ
がアクセスされる際に固定されているが、実施形態によ
っては、ホストコンピュータのオペレーティングシステ
ムの動きに応じて、ファイル自体がアクセスされるま
で、結合が延期される場合もある。本発明は、多種態様
な従来型の埋込み式のコンピュータシステムにおいて用
いられることが有利である。本発明は、特許請求の範囲
によってのみ限定される。
【0039】以下に本発明の実施態様の例を列挙する。 〔実施態様1〕 仮想ファイルシステム(10)からデ
ータを読み出すための方法(100)であって、所定の
ディレクトリの階層(20)を有するファイル構造(1
5)に対応するデータブロック(2)の論理構成(3
0)を定義するステップ(102)であって、前記各デ
ータブロック(2)はさらに内容を有する、該定義する
ステップと、前記論理構成(30)において指定された
場所を有する、格納されないデータブロック(2)の前
記内容を提供するための要求を受信するステップ(10
4)と、前記所定のディレクトリの階層(20)と、前
記指定された場所とに基づいて、前記格納されないデー
タブロック(2)の前記内容を計算するステップ(11
4)とを含む方法。 〔実施態様2〕 前記所定のディレクトリの階層(2
0)は、1組の最も低いレベルのディレクトリをさらに
含み、前記最も低いレベルのディレクトリはそれぞれ、
所定のファイルプレイスホルダを有し、前記格納されな
いデータブロック(2)は、前記最も低いレベルのディ
レクトリのうちの選択されたディレクトリに対応し、前
記ファイル構造(15)は、所定の1組のファイルを含
み、前記最も低いレベルのディレクトリのうちの前記選
択されたディレクトリのための前記ファイルプレイスホ
ルダを、前記所定の1組のファイルのうちの対応する1
つのファイルに結び付けるステップ(112)をさらに
含む実施態様1に記載の方法。 〔実施態様3〕 前記所定の1組のファイルはそれぞ
れ、最大ファイルサイズを有し、前記ファイルプレイス
ホルダに関連するデータの量を決定するステップ(11
0)と、前記データの量に少なくとも等しい最大ファイ
ルサイズを有するように、前記所定の1組のファイルの
うちの前記対応するファイルを選択するステップ(11
2)とをさらに含む実施態様2に記載の方法。 〔実施態様4〕 前記所定の1組のファイルのうちの対
応する1つのファイルに関連する付加的な格納されない
データブロック(2)の内容を提供するための付加的な
要求を受信するステップ(104)と、前記付加的な格
納されないデータブロック(2)の前記内容を生成する
ステップとをさらに含む実施態様2に記載の方法。 〔実施態様5〕 前記生成するステップは、前記付加的
な要求に応答して、前記内容を動的に生成するステップ
(118)を含む実施態様4に記載の方法。 〔実施態様6〕 前記生成するステップは、補助ファイ
ルシステム(70)から前記内容を取得するステップ
(120)を含む実施態様4に記載の方法。 〔実施態様7〕 前記仮想ファイル構造(15)は、前
記データブロック(2)の線形な論理構成(30)を提
供する実施態様1に記載の方法。 〔実施態様8〕 前記結び付けるステップ(112)
は、実際のファイルサイズを決定するステップ(11
0)と、前記実際のファイルサイズに少なくとも等し
い、最も最近使用されていない(LRU)ファイルプレ
イスホルダの場所を特定するステップと、前記最も最近
使用されていない(LRU)ファイルプレイスホルダ
を、前記所定のファイルプレイスホルダのうちの前記選
択されたプレイスホルダとして割り当てるステップとを
さらに含む実施態様3に記載の方法。 〔実施態様9〕 仮想ファイルシステム(10)を提供
するための装置(50)であって、ディレクトリ階層
(20)と、種々の最大ファイルサイズを有する1組の
データファイル(18)とを指定する予め定義されたフ
ァイル構造(15)と、指定されたデータブロック
(2)のためのブロック読出し要求を受信し、前記指定
されたデータブロック(2)が前記ディレクトリ階層
(20)に対応するか、前記1組のデータファイル(1
8)に対応するかを判定するように構成される領域識別
装置(52)と、前記ブロック(2)が前記ディレクト
リ階層(20)に対応する際に、前記指定されたブロッ
ク(2)のためのデータをアルゴリズムにしたがって計
算するために、前記領域識別装置(52)に接続される
ブロック計算装置(54)と、前記ブロック(2)が前
記1組のデータファイル(18)に対応する際に、前記
指定されたブロック(2)のためのデータを提供するた
めに、前記領域識別装置(52)に接続されるファイル
生成器(66)とを備える装置。 〔実施態様10〕 前記ブロック計算装置(54)は、
前記指定されたブロック(2)が1組の最も低いレベル
のディレクトリのうちの任意のディレクトリに対応する
か否かをさらに検出し、前記装置(50)は、前記最も
低いレベルのディレクトリのうちの選択されたディレク
トリに対応し、前記データのファイルサイズを決定する
ファイルシャドー(62)を確立するための動的データ
生成器(58)と、前記指定されたブロック(2)が前
記ファイルシャドー(62)に対応するか否かを判定
し、対応する場合には、前記動的データ生成器(58)
から前記ファイルサイズを取得し、前記最も低いレベル
のディレクトリのうちの前記選択された1つのディレク
トリを、少なくとも前記ファイルサイズと同じ大きさの
前記1組のデータファイル(18)のうちの適当なサイ
ズのファイルに結び付けるために、前記ブロック計算装
置(54)および前記動的データ生成器(58)に接続
されるデータバインダ(56)とをさらに備える実施態
様9に記載の装置。 〔実施態様11〕 複数の論理データブロック(2)を
含むファイル空間(30)を有する仮想ファイルシステ
ム(10)であって、ルートレベルディレクトリの相互
接続される階層を予め定義する、前記ファイルシステム
(10)のディレクトリ階層(20)と、前記ルートデ
ィレクトリの下にある複数の中間レベルディレクトリ
と、前記中間レベルディレクトリの下にある複数の最も
低いレベルのディレクトリを予め定義する、ファイル空
間(30)内の第1の連続した領域(32)と、所定の
数の前記データブロック(2)を有する1組のデータフ
ァイル(18)をそれぞれ予め定義する、前記ファイル
空間(30)内の複数の第2の連続した領域(34)
と、前記ファイル空間(30)において、前記ディレク
トリ(20)および前記データファイル(18)のため
の全てのデータブロック(2)を配置するためのファイ
ル割当てテーブルを予め定義する、前記ファイル空間
(30)内の第3の連続した領域(36)とを備え、前
記領域は、前記ファイルシステム(10)を収容するた
めに物理的なメモリ量を低減するために、前記ファイル
システム(10)が読み出される際に、前記第1および
第3の領域(32、36)内の前記データブロック
(2)がアルゴリズムにしたがって計算されるように編
成される仮想ファイルシステム。 〔実施態様12〕 前記1組のデータファイル(18)
のうちの1つの選択されたデータファイルは、前記最も
低いレベルのディレクトリのうちの指定されたディレク
トリが最初にアクセスされる際に、前記指定されたディ
レクトリにリンクされる実施態様11に記載の仮想ファ
イルシステム。
【0040】
【発明の効果】上記のように、本発明によれば、ホスト
コンピュータシステムがそのキャッシュおよび他のファ
イルシステムテーブルを削除および再構築することを必
要とすることなく、かつ大きなメモリを必要とすること
なく、ファイルが作成され、削除され、さらに再構成さ
れるようにする、多数のデータファイルにアクセスする
新規の改善されたファイルシステムおよび方法を実現す
ることができる。
【図面の簡単な説明】
【図1】本発明による仮想ファイルシステムのための典
型的な予め定義されたファイル構造の概略図である。
【図2】図1の仮想ファイルシステムのファイル空間の
概略図である。
【図3】図2のファイル空間の典型的なディレクトリ領
域のさらに詳細な概略図である。
【図4】図2のファイル空間の典型的なファイル割当て
テーブル領域のさらに詳細な概略図である。
【図5】図1の仮想ファイルシステムからデータを読み
出すための方法の流れ図である。
【図6】図5の流れ図のデータブロック計算部分のさら
に詳細な流れ図である。
【図7】図1の仮想ファイルシステムを提供するための
装置のブロック図である。
【符号の説明】
2 データブロック 10 仮想ファイルシステム 15 ファイル構造 18 1組のデータファイル 20 ディレクトリ階層 30 論理構成(ファイル空間) 32 第1の連続した領域 34 第2の連続した領域 36 第3の連続した領域 50 装置 52 ブロック識別装置 54 ブロック計算装置 56 ファイルバインダ 58 動的データ生成器 62 ファイルシャドー 66 ファイル生成器 70 補助ファイルシステム

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 仮想ファイルシステム(10)からデー
    タを読み出すための方法(100)であって、 所定のディレクトリの階層(20)を有するファイル構
    造(15)に対応するデータブロック(2)の論理構成
    (30)を定義するステップ(102)であって、前記
    各データブロック(2)はさらに内容を有する、該定義
    するステップと、 前記論理構成(30)において指定された場所を有す
    る、格納されないデータブロック(2)の前記内容を提
    供するための要求を受信するステップ(104)と、 前記所定のディレクトリの階層(20)と、前記指定さ
    れた場所とに基づいて、前記格納されないデータブロッ
    ク(2)の前記内容を計算するステップ(114)とを
    含む方法。
  2. 【請求項2】 前記所定のディレクトリの階層(20)
    は、1組の最も低いレベルのディレクトリをさらに含
    み、前記最も低いレベルのディレクトリはそれぞれ、所
    定のファイルプレイスホルダを有し、前記格納されない
    データブロック(2)は、前記最も低いレベルのディレ
    クトリのうちの選択されたディレクトリに対応し、前記
    ファイル構造(15)は、所定の1組のファイルを含
    み、 前記最も低いレベルのディレクトリのうちの前記選択さ
    れたディレクトリのための前記ファイルプレイスホルダ
    を、前記所定の1組のファイルのうちの対応する1つの
    ファイルに結び付けるステップ(112)をさらに含む
    請求項1に記載の方法。
  3. 【請求項3】 前記所定の1組のファイルはそれぞれ、
    最大ファイルサイズを有し、 前記ファイルプレイスホルダに関連するデータの量を決
    定するステップ(110)と、 前記データの量に少なくとも等しい最大ファイルサイズ
    を有するように、前記所定の1組のファイルのうちの前
    記対応するファイルを選択するステップ(112)とを
    さらに含む請求項2に記載の方法。
  4. 【請求項4】 前記所定の1組のファイルのうちの対応
    する1つのファイルに関連する付加的な格納されないデ
    ータブロック(2)の内容を提供するための付加的な要
    求を受信するステップ(104)と、 前記付加的な格納されないデータブロック(2)の前記
    内容を生成するステップとをさらに含む請求項2に記載
    の方法。
  5. 【請求項5】 前記生成するステップは、前記付加的な
    要求に応答して、前記内容を動的に生成するステップ
    (118)を含む請求項4に記載の方法。
  6. 【請求項6】 前記生成するステップは、補助ファイル
    システム(70)から前記内容を取得するステップ(1
    20)を含む請求項4に記載の方法。
  7. 【請求項7】 前記仮想ファイル構造(15)は、前記
    データブロック(2)の線形な論理構成(30)を提供
    する請求項1に記載の方法。
  8. 【請求項8】 前記結び付けるステップ(112)は、 実際のファイルサイズを決定するステップ(110)
    と、 前記実際のファイルサイズに少なくとも等しい、最も最
    近使用されていない(LRU)ファイルプレイスホルダ
    の場所を特定するステップと、 前記最も最近使用されていない(LRU)ファイルプレ
    イスホルダを、前記所定のファイルプレイスホルダのう
    ちの前記選択されたプレイスホルダとして割り当てるス
    テップとをさらに含む請求項3に記載の方法。
  9. 【請求項9】 仮想ファイルシステム(10)を提供す
    るための装置(50)であって、 ディレクトリ階層(20)と、種々の最大ファイルサイ
    ズを有する1組のデータファイル(18)とを指定する
    予め定義されたファイル構造(15)と、 指定されたデータブロック(2)のためのブロック読出
    し要求を受信し、前記指定されたデータブロック(2)
    が前記ディレクトリ階層(20)に対応するか、前記1
    組のデータファイル(18)に対応するかを判定するよ
    うに構成される領域識別装置(52)と、 前記ブロック(2)が前記ディレクトリ階層(20)に
    対応する際に、前記指定されたブロック(2)のための
    データをアルゴリズムにしたがって計算するために、前
    記領域識別装置(52)に接続されるブロック計算装置
    (54)と、 前記ブロック(2)が前記1組のデータファイル(1
    8)に対応する際に、前記指定されたブロック(2)の
    ためのデータを提供するために、前記領域識別装置(5
    2)に接続されるファイル生成器(66)とを備える装
    置。
  10. 【請求項10】 前記ブロック計算装置(54)は、前
    記指定されたブロック(2)が1組の最も低いレベルの
    ディレクトリのうちの任意のディレクトリに対応するか
    否かをさらに検出し、前記装置(50)は、 前記最も低いレベルのディレクトリのうちの選択された
    ディレクトリに対応し、前記データのファイルサイズを
    決定するファイルシャドー(62)を確立するための動
    的データ生成器(58)と、 前記指定されたブロック(2)が前記ファイルシャドー
    (62)に対応するか否かを判定し、対応する場合に
    は、前記動的データ生成器(58)から前記ファイルサ
    イズを取得し、前記最も低いレベルのディレクトリのう
    ちの前記選択された1つのディレクトリを、少なくとも
    前記ファイルサイズと同じ大きさの前記1組のデータフ
    ァイル(18)のうちの適当なサイズのファイルに結び
    付けるために、前記ブロック計算装置(54)および前
    記動的データ生成器(58)に接続されるデータバイン
    ダ(56)とをさらに備える請求項9に記載の装置。
  11. 【請求項11】 複数の論理データブロック(2)を含
    むファイル空間(30)を有する仮想ファイルシステム
    (10)であって、 ルートレベルディレクトリの相互接続される階層を予め
    定義する、前記ファイルシステム(10)のディレクト
    リ階層(20)と、前記ルートディレクトリの下にある
    複数の中間レベルディレクトリと、前記中間レベルディ
    レクトリの下にある複数の最も低いレベルのディレクト
    リを予め定義する、ファイル空間(30)内の第1の連
    続した領域(32)と、 所定の数の前記データブロック(2)を有する1組のデ
    ータファイル(18)をそれぞれ予め定義する、前記フ
    ァイル空間(30)内の複数の第2の連続した領域(3
    4)と、 前記ファイル空間(30)において、前記ディレクトリ
    (20)および前記データファイル(18)のための全
    てのデータブロック(2)を配置するためのファイル割
    当てテーブルを予め定義する、前記ファイル空間(3
    0)内の第3の連続した領域(36)とを備え、 前記領域は、前記ファイルシステム(10)を収容する
    ために物理的なメモリ量を低減するために、前記ファイ
    ルシステム(10)が読み出される際に、前記第1およ
    び第3の領域(32、36)内の前記データブロック
    (2)がアルゴリズムにしたがって計算されるように編
    成される仮想ファイルシステム。
  12. 【請求項12】 前記1組のデータファイル(18)の
    うちの1つの選択されたデータファイルは、前記最も低
    いレベルのディレクトリのうちの指定されたディレクト
    リが最初にアクセスされる際に、前記指定されたディレ
    クトリにリンクされる請求項11に記載の仮想ファイル
    システム。
JP2002132955A 2001-06-04 2002-05-08 動的に生成されるウエブページのための仮想ファイルシステム Pending JP2003030025A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/873,878 US6697795B2 (en) 2001-06-04 2001-06-04 Virtual file system for dynamically-generated web pages
US873878 2001-06-04

Publications (1)

Publication Number Publication Date
JP2003030025A true JP2003030025A (ja) 2003-01-31

Family

ID=25362511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002132955A Pending JP2003030025A (ja) 2001-06-04 2002-05-08 動的に生成されるウエブページのための仮想ファイルシステム

Country Status (4)

Country Link
US (1) US6697795B2 (ja)
EP (1) EP1265152B1 (ja)
JP (1) JP2003030025A (ja)
DE (1) DE60112257T2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751635B1 (en) * 2000-08-18 2004-06-15 Network Appliance, Inc. File deletion and truncation using a zombie file space
US8271530B2 (en) * 2002-04-08 2012-09-18 Oracale International Corporation Method and mechanism for managing and accessing static and dynamic data
US7620956B2 (en) * 2003-06-11 2009-11-17 Symantec Corporation Portable memory storage devices with application layers
US7185020B2 (en) 2003-10-01 2007-02-27 Hewlett-Packard Development Company, L.P. Generating one or more block addresses based on an identifier of a hierarchical data structure
US7480699B2 (en) * 2004-01-20 2009-01-20 International Business Machines Corporation System and method for replacing an application on a server
US7921419B2 (en) * 2004-05-12 2011-04-05 Oracle International Corporation Method and mechanism for managing incompatible changes in a distributed system
US20060041527A1 (en) * 2004-08-03 2006-02-23 Aaron Fessler Virtual file system
US7647359B1 (en) 2005-04-20 2010-01-12 Novell, Inc. Techniques for file system translation
US7860908B2 (en) * 2005-10-20 2010-12-28 International Business Machines Corporation Computer method for handling private process state in a stacking file system
US20070106685A1 (en) * 2005-11-09 2007-05-10 Podzinger Corp. Method and apparatus for updating speech recognition databases and reindexing audio and video content using the same
US8255420B2 (en) * 2006-05-23 2012-08-28 Noryan Holding Corporation Distributed storage
KR100851306B1 (ko) * 2007-02-28 2008-08-08 삼성전자주식회사 파일 목록을 생성하는 휴대단말기 및 방법
US7680844B2 (en) * 2007-05-18 2010-03-16 International Business Machines Corporation Method for preserving virtual filesystem information across high availability takeover
JP2009037361A (ja) * 2007-07-31 2009-02-19 Brother Ind Ltd サーバ装置、サーバ装置制御プログラム、及びファイル転送システム
CN101908043B (zh) * 2009-06-03 2012-09-12 慧国(上海)软件科技有限公司 电子装置及档案系统的操作方法
US9104517B2 (en) 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) * 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8285749B2 (en) * 2010-03-05 2012-10-09 Hitachi, Ltd. Computer system and recording medium
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
CN101882153A (zh) * 2010-06-10 2010-11-10 北京中星微电子有限公司 一种文件指针定位的方法及装置
US8782106B2 (en) 2010-07-02 2014-07-15 Code Systems Corporation Method and system for managing execution of virtual applications
US9552201B2 (en) * 2011-08-31 2017-01-24 Avaya Inc. System and method for incremental software installation
TWI524180B (zh) * 2014-08-15 2016-03-01 財團法人資訊工業策進會 位元組定址儲存系統
CN105897935A (zh) * 2016-06-23 2016-08-24 北京小米移动软件有限公司 缓存文件的处理推荐方法、装置、终端及服务器
CN116070596B (zh) * 2023-03-29 2023-06-09 深圳市奥思网络科技有限公司 基于动态数据的pdf文件生成方法、装置及相关介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US4775969A (en) 1986-05-15 1988-10-04 Aquidneck Systems International, Inc. Optical disk storage format, method and apparatus for emulating a magnetic tape drive
US5991753A (en) * 1993-06-16 1999-11-23 Lachman Technology, Inc. Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5774715A (en) * 1996-03-27 1998-06-30 Sun Microsystems, Inc. File system level compression using holes
US6081883A (en) 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory
WO1999042934A2 (en) 1998-02-20 1999-08-26 Storm Systems, Llc File system performance enhancement
MY122279A (en) 1999-03-03 2006-04-29 Sony Corp Nonvolatile memory and nonvolatile memory reproducing apparatus
ATE435463T1 (de) 1999-03-25 2009-07-15 Microsoft Corp Erweitertes dateiensystem

Also Published As

Publication number Publication date
EP1265152B1 (en) 2005-07-27
DE60112257D1 (de) 2005-09-01
US20020184184A1 (en) 2002-12-05
EP1265152A1 (en) 2002-12-11
US6697795B2 (en) 2004-02-24
DE60112257T2 (de) 2006-03-30

Similar Documents

Publication Publication Date Title
JP2003030025A (ja) 動的に生成されるウエブページのための仮想ファイルシステム
US8315995B1 (en) Hybrid storage system
US8122178B2 (en) Filesystem having a filename cache
US6654772B1 (en) Multi-volume extent based file system
KR940005775B1 (ko) 디스크 파일 개방 방법
US5367671A (en) System for accessing extended object attribute (EA) data through file name or EA handle linkages in path tables
KR100484147B1 (ko) 플래시 메모리 관리 방법
US6792518B2 (en) Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies
US6934822B2 (en) Organization of multiple snapshot copies in a data storage system
US5956745A (en) System and method for automatically resizing a disk drive volume
US5579516A (en) Method for storing data files on a multiple volume media set
US6895418B1 (en) Versatile indirection in an extent based file system
PL182609B1 (pl) Sposób realizacji dostępu do danych zapamiętanych w systemie komputerowym
US20130086121A1 (en) Path lookup in a hierarchical file system
US20020129028A1 (en) System and method for managing file system extended attributes
JP2015521310A (ja) 効率的なデータオブジェクトストレージ及び検索
CN111143285A (zh) 一种小文件存储文件系统以及小文件处理方法
CN111522507B (zh) 一种低延迟的文件系统地址空间管理方法、系统及介质
US8640136B2 (en) Sharing objects between computer systems
US5600596A (en) Data access scheme with simplified fast data writing
US8239427B2 (en) Disk layout method for object-based storage devices
KR20050070117A (ko) 메인 파일 시스템 영역과 가상 파일 시스템 영역을 갖는기록매체
CN111142780A (zh) 一种大文件存储文件系统以及大文件处理方法
JP3796391B2 (ja) 多用途な間接指定又は複数ボリュームを有するエクステント・ベース・ファイルシステム
KR20090042570A (ko) 파일 관리 장치 및 방법과 기억 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060207

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060209

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061005