JP2008503818A - コンピュータ・デバイスにおけるファイルシステムの性能を改善するための方法 - Google Patents

コンピュータ・デバイスにおけるファイルシステムの性能を改善するための方法 Download PDF

Info

Publication number
JP2008503818A
JP2008503818A JP2007517454A JP2007517454A JP2008503818A JP 2008503818 A JP2008503818 A JP 2008503818A JP 2007517454 A JP2007517454 A JP 2007517454A JP 2007517454 A JP2007517454 A JP 2007517454A JP 2008503818 A JP2008503818 A JP 2008503818A
Authority
JP
Japan
Prior art keywords
file
file system
directory
array
entries
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.)
Withdrawn
Application number
JP2007517454A
Other languages
English (en)
Inventor
ギョーム プラウクス,
ウィリアム ロバーツ,
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.)
Symbian Software Ltd
Original Assignee
Symbian Software Ltd
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 Symbian Software Ltd filed Critical Symbian Software Ltd
Publication of JP2008503818A publication Critical patent/JP2008503818A/ja
Withdrawn legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]

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

FATなどのファイルシステムにおけるディレクトリを含む、標準的な未ソートで混合したフラットなファイルリストと共に、サブディレクトリおよびファイルエントリに対するポインタの分離されプリソートされた配列を提供するコンピュータ・デバイスのファイルシステムを提供する。バッテリにより動作するモバイル・デバイスの起動ROMに含まれることにより、電源投入と装置が動作状態になるまでの時間を遥かに短くする(より速い起動時間)ことが可能となる。これは複数の層のディレクトリツリーを通過し、整合するフィル名を求めて各々の枝におけるそれぞれのエントリを検索する必要がないからである。新しいプリソートされた配列により、簡単なバイナリ検索により整合するエントリをより効率的に配置決めすることが可能になる。

Description

本発明はコンピュータ・デバイスにおけるファイルシステムの性能を改善するための方法、特にバッテリにより動作するモバイル・コンピュータ・デバイスにおけるようなシステムを改善し、このタイプの装置により従来利用可能であったものより速い起動時間を可能にすることに関する。
本明細書において使用する用語である、コンピュータ・デバイスはあらゆる形式の電動のコンピュータ・デバイスを含むように拡張して考えられ、データ記録装置、ハンドヘルドおよびパーソナルコンピュータを含むあらゆるタイプまたは形式のコンピュータ、携帯電話機、スマートフォン、そして、通信、画像の記録および/または再生、計算機能を単一装置内で組み合わせるコミュニケータを含むあらゆるフォームファクタの通信装置、および他の形式の無線および有線の情報装置を含む。
コンピュータ・デバイス上のファイルは永続的な名称を持つデータ格納装置であり、単一のビット・ストリームの流れとして提示される。ファイル管理は、最も単純なコンピュータ・デバイスは別として全てのコンピュータ・デバイスのオペレーティングシステムの主なタスクの1つである。スタンドアロンのパーソナルコンピュータの初期においては、マイクロソフト社の最初のOS(オペレーティングシステム)に対してDOS(ディスク・オペレーティングシステム)という略称を選択したことにも示されるように、ファイル管理は間違いなく主なオペレーティングシステムのタスクであった。ユーザインタフェースがより複雑になり、ネットワーク化され、接続されたシステムの発展およびコンピューティングと通信の装置の融合によりネットワークおよびリンク管理の重要性は増したが、ファイル管理は依然としてあらゆる先端的コンピュータ・デバイスのコアとなる機能の1つである。
近年のオペレーティングシステムにおける最も基本的なファイル管理は以下の通りである。
・システムのディレクトリまたはファイル・インデックスを維持すること、
・要求に応じて名称付きファイルをオープンまたは生成すること、
・コンテンツの読み取りまたは書き込みを可能にすること、
・ファイルまたはコンテンツの削除を可能にすること
ファイル管理の処理をするオペレーティングシステムの部分はファイルシステムと呼ばれる。
上記のファイル管理タスクと同様に、ファイルシステムは通常他のタスクの処理もする。これらの幾つかは基本的タスクの結果によるものであり;例えばシステムの空きファイルスペースを記録し、要求に応じた割り当ては、本質的に最近の全てのディスクベースのシステムにとって必須である。他のタスクは、ファイルシステムが動作する装置の性格に付随し、例えば、多くのファイルシステムは特定のファイルへのアクセスを制限するセキュリティ施策を実装するが、これはネットワーク化され複数ユーザの環境においてのみ実際に必要なものである。また注意すべきは、コンピュータ・デバイスが種々の媒体のタイプのために複数の異なるタイプのファイルシステムをサポートするのは通常のことである。例えば、マイクロソフト社のWindows(登録商標)XPを動作させる最近のコンピュータは、ハードディスクのためのNTFS(NTファイルシステム)、フロッピー(登録商標)ディスクのための種々のバージョンのFAT(ファイル・アロケーション・テーブル)、およびCD(コンパクト・ディスク)およびDVD(デジタル・ビデオ・ディスク)のための種々の拡張を伴うISO9600を典型的にサポートする。
今日使用される多くのファイルシステム・ファミリの概要、およびそれらの動作方法の詳細、およびそれらの間の相違について、この種の40を超える例をリストする以下の両者、http://en.wikipedia.org/wiki/File_system、または、http://www.tldp.org/HOWTO/Filesystem-HOWTO.htmlを参照する。
特に注意すべきは、全てのこれら異なるファイルシステムが異なる強さ組み合わせを有することである。当業者は、特定のファイルシステムが全ての環境において最良であるとは根拠を持って主張しない。というのは全てのファイルシステムを判定することができる基準は、回復力および信頼性、安全性、速度、柔軟性、効率、大きさ、および遍在性を含むが、何れの特定の観点においてもこれらの相対的重要性は変化するからである。
本発明が特に適用可能である状況は、セル電話機などのバッテリにより電力を与えられるハンドヘルドモバイル・コンピュータ・デバイスの読み取り専用メモリ(ROM)に格納されたオペレーティングシステムを起動するために使用されるファイルシステムに関するものである。
当然のことながら、これは比較的特殊な状況であり、以上に掲げた幾つかの基準はファイルシステムを評価するためには適合しない。例えば通常の使用では、ROMに対するファイルシステムは完全に静的である。ROMに対するファイルシステムの内容は変化せず、定義によりROMに対するファイルシステムは読み取り専用であり、ROMに対するファイルシステムには何も書き込むことはできない。それ故書き込みが可能な媒体におけるのと同様の破壊の危険はなく、回復力、信頼性および安全性は書き込み可能なファイルシステムに対しては重要な考察であるが、これらの考察はROMファイルシステムに対しては重要とみなすことはできない。
汎用ファイルシステムの設計に影響を与え、ROMファイルシステムに適合しない考察が他に多くある。これらの幾つかは、ROMファイルシステムでは書き込みができないことから生じる。例えば読み取り専用ファイルシステムでは物理的媒体上のファイルの分割に関する関心はない。他についてはROMファイルシステムが固体であることから生じる、読み書きヘッドの大きな移動の回避の有効性から得られる速度最適化はROMファイルシステムには相違を生じない。
他方バッテリにより電力を与えられるモバイル・デバイスにおいて使用されるファイルシステムに対してもっと大きな意義を想定する特別な考察もある。最も明白なことは、そのような装置は必ずリソースが限られることに由来する。これらの装置は大部分の動作に対してバッテリにより電力を与えられているので、これら装置は電力消費に関して経済的である必要がある。かつこれら装置は限られた量のメモリのみを有するので、PCタイプのコンピュータ・デバイスと比較して、これらの装置はこれらの装置が持つメモリを可能な最大限度まで保存する必要がある。従って、そのような装置上で動作するアプリケーションプログラムは可能な限りコンパクトに設計されるべきである。
第3の制約は最初の2つから導かれうる。少ないメモリ使用量への要求に対しては、同じファイルシステムがROMファイルシステムおよび装置の書き込み可能なファイルシステムの両方に使用できれば明らかに望ましい。単一のファイルシステムは実装がより簡単で、多重ファイルシステムより少ないメモリを使用する。しかしながらバッテリにより動作するモバイル・デバイスは、コンパクトフラッシュ(登録商標)カード、メモリスティック、マルチメディアカードおよびセキュアデジタルカードなどの取り外し可能な格納装置と共に供給されつつある。これらの装置は今やデジタルカメラおよびハンドヘルドPDA(パーソナル・デジタル・アシスタント)などの装置上では普通のものであり、移動電話機上ではますます普通のものになりつつある。デバイスROMおよびアプリケーションを動作させる装置によっても使用される共通の単一のファイルシステムが遍在的な産業界の標準のものであれば、これはユーザが1つのそのような装置上の周辺格納装置をデータ伝送に、そして別のタイプの装置上のバックアップのために使用することができるので、ユーザにとっては明らかな利益である。
このクラスの装置に影響を与える第4の制約は、このクラスの装置が電力投入後できるだけ速く動作状態になる(最小限度の起動時間)必要があることである。例えばセル電話機の場合、一般にユーザはその電話機のスイッチをオンすることと発呼可能であることとの間に3、4分を待たなければならなければ、我慢できないとされる。
それ故、要するに、セル電話機などのバッテリにより電力を与えられるハンドヘルド・モバイル・コンピュータ・デバイスの起動ROM上において使用されるファイルシステムの重要な評価基準は以下の通りである。
・経済的電力消費
・少ないメモリ使用量
・産業界標準との適合性
・速い起動時間
本発明は主として最後の評価基準、速い立ち上がり時間の基準に関する。注意すべきは、セル電話機装置が本発明の主な対象であるが、上に掲げた考察は、PDAおよび実際、ファイル管理機能を持つオペレーティングシステムを含む携帯可能な装置(デジタルカメラなど)などの多くの他の携帯可能なコンピュータ・デバイスに等しく当てはまる、ことである。
一般に起動時間は、大部分のファイルシステムの作成者が第1次的に重要なものであると考えていなかった要素であり、起動後の性能が、今日では一般により重要であると考えられている。
ある文献では開始速度の問題を議論するが、当業者の良く理解するように、これは起動時間と全く同じ事柄ではない。例えば良く知られていることであるが、NTFS(Windows(登録商標)用)およびext3またはReiserFS(Linux用)などのジャーナリング・ファイルシステムは、ファイルシステムの完全性を確認するためにファイル格納装置全体を走査する必要がないので、FAT(Windows(登録商標)用)およびext2(Linux用)をベースとするファイルシステムよりシステムクラッシュ後の速い開始が可能になる。しかしながら、クラッシュ後にファイルシステムを再開する特定の問題は全て、ファイルシステムのメタデータの完全性をどのようにチェックするかということに関係する。ROMファイルシステムはこの種の破壊を実際に気にかける必要はないので、ジャーナリングの最適化は立ち上がり速度に影響を与えることはない。前述の最適化は、ファイル格納装置における物理的フラグメントを減らすことによりファイルロードの速度を増すこれらファイルシステムの最適化と同じ範疇に入り、既に指摘したようにまずROMファイルシステムはフラグメントされないので、物理的フラグメントを減らすことはROMファイルシステムに影響を与えることはない。
ファイルシステムが起動時間を改善する最適化を含む場合でも、これらは、ROMベースのファイルシステムに対して特に設計されたものではない。例えばYAFFS(http://www.aleph1.co.uk/yaffs/ に記述される、Yet Another Flash Filing System)に含まれる最適化は、ROMから立ち上がるアルゴリズムよりむしろNANDフラッシュ・ハードウエアの固有の特性に対処するために特に設計されている。
一般にソフトウエアの最適化は、複数回繰り返されるか、またはループに含まれる可能性があるかのいずれかである非効率的動作を探すことにより一般に始まり、次いで動作の実装における効率を排除するか、またはループを短絡するか、または両方を行う。
ROMファイルシステムにおける起動時間を最適化する目的に対するそのような動作の最も注目に値するセットは、ファイルシステム上のどこかに位置決めされるファイルを取り出すためにファイルシステムのディレクトリおよびサブディレクトリにおけるエントリに関して行われるものである。
一般にファイルシステムは論理的階層化ディレクトリ構造におけるファイルおよびディレクトリへのポインタを格納する。そのような構造では、単一のルートディレクトリは常にファイルの取出しが始まる最初の場所であり、ルートディレクトリは他のディレクトリおよびファイルを指示し、ルートディレクトリの含む各々のディレクトリは、また他のディレクトリおよびファイルを指示する。完全修飾ファイル名は、ファイルの名前で構成され、ファイルの名前はファイルが見つかるサブディレクトリによりプレフィックスを付され、サブディレクトリは次にそのサブディレクトリが見つかるディレクトリによりプレフィックスを付される、などによりルートディレクトリに戻る。
ファイルを位置決めするために、上記のようなファイル名が与えられれば、ファイルシステムは、以下のことを行わなければならない。
1)ファイル名を表す文字列をそのパスおよびファイル要素にパースし、
2)最初にパス要素、次にファイルの名前に対する適合するものが見つかるまでディレクトリツリー内のパスをナビゲートし、
3)ファイルの物理的位置を含むファイル属性を取り出す。
広く実装されているFATファイルシステム(用語、FATはVFATおよびFAT32などの産業界に共通の亜種を含むことを意図していることに注意されたい。さらに多くの情報はhttp://en.wikipedia.org/wiki/FAT32#Versions_and_historyを参照)に基づくこの処理の代表的な実装を、ロンドンのシンビアンソフトウェア社の先端的な移動電話機のオペレーティングシステムであるSymbianOS(商標)オペレーティングシステムの慣用語を使用して、図1に示す。図1のファイルシステムにおいて、TRomDirオブジェクトはディレクトリツリーの枝に対応する。TRomDirオブジェクトは不確定数のTRomEntryオブジェクトの配列を含み、TRomEntryオブジェクトはディレクトリエントリに対応する。ファイルシステムの動作方法の故に、これらオブジェクトはそれ自体の大きさを変え、さらに、他のオブジェクトは実ファイルを表すことがあるが、あるTRomEntryオブジェクトはさらなるTRomDirオブジェクトを指示することがある。
この動作は各々のファイルがロードされる前に必要であるので、この動作は多数回繰り返される。それ故ファイルシステムの性能の最適化を求めるには適した場であろう。しかし動作が繰り返された後各々のファイルがロードされるので、使用するアルゴリズムに非効率性があることは明らかである。従ってファイルを位置決めし、オープンするのに要する時間は予測不能になる。最悪の場合、多くの枝およびリンクを調べる必要があり、ファイルをオープンする前に多くのテキスト文字列の比較の実行が必要である。特にファイルシステムがユニコードファイル名をサポートする場合、これらの比較は処理時間の点で正にコストを要することがありえ、それ故起動時間を引き延ばすことがありうる。
ほんの少しのファイルしか含まないがユニコードをサポートする必要のあるROMにアクセスする場合、このタイプのファイルシステムに固有の問題は明らかではないであろう。しかしながら、ユニコードファイル名を必要とし、多数のディレクトリにおいて多数のファイルを管理する必要があるモバイル・デバイスのための最近のオペレーティングシステムは比較的長い起動時間を要することは、このファイルシステムの不適切さを明らかにしている。
確かに、上記の特別のケースは、リンクされたリスト(FATまたはext2など)に頼るファイルシステムに主として当てはまりうるが、ディレクトリのエントリをBツリーにソートする幾つかのジャーナリング・ファイルシステム(ReiserFSまたはNTFSなど)があることも確かであり、その場合ファイルを見つけるための繰り返しの数は既に最適化されていることがある。
とはいえ、これらより重たいファイルシステムの1つを単に移動させることにより問題を解決する示唆は純粋に学術的に考察されなければならない。以前に記述したバッテリにより動作するモバイル・デバイスに影響を与える制約は、FATベースのシステムのケースを考慮すべき最も重要な単一ファイルシステムとする。この幾つかの理由は以下の通りである。
・FATはファイルシステムのための最小機能に近いものを提供し、従って電力消費に関して比較的効率的である。
・FATファイルシステムは相対的に少量のメモリを使用する。
・FATは相互動作に関する産業界の標準化リーダである。FATは、Windows(登録商標)およびLinuxの全てのバージョンを含む主なデスクトップオペレーティングシステムによりサポートされ、例えば移動電話機、デジタルカメラおよびPDAの種々のタイプの取り外し可能な媒体に使用される標準ファイルシステムである。
FATは完全とは考えられない(その欠陥は良く知られている)が、これらの欠陥の大多数はROMベースのファイルシステムにとって特に重要なものではない、と見ることができる。より速い起動のためのこのようなファイルシステムの最適化法は、それ故殆ど全てのユーザに大きな利益をもたらす。
それ故コンピュータ・デバイスのための改善されたファイル管理システムを提供することが本発明の目的である。
本発明の第1の態様によれば、ディレクトリエントリの未ソートのリストにより構造のディレクトリのコンテンツを再帰的に表すディレクトリ構造を有するコンピュータ・デバイスのためのファイルシステムの操作の方法であって、エントリのリストの後に、サブディレクトリに対応する各々のディレクトリに含まれる全てのエントリに対するポインタのカウントされソートされた第1の配列、または、第1の配列に対するポインタを含めるステップ、および、任意のディレクトリの前記位置を取得、または、位置がないことの確認を可能にするために、第1の配列の全体のバイナリ検索を実行するステップを備える方法が提供される。
本発明の第2の態様によれば、第1の態様による方法に従い動作するように構成されるコンピュータ・デバイスが提供される。
本発明の第3の態様によれば、デバイスが第1の態様の方法に従い動作するようにするための、コンピュータ・デバイスのオペレーティングシステムが提供される。
本発明の実施形態を、次にさらに例のみによる方法により、FATファイルシステムに基づくファイルシステムの例を示す添付の図面を参照して説明する。
本発明は、FATファイルシステムに関する基礎をなす関心事が、システムは、一連のリンク付けされたリストで構成され、一連のリンク付けされたリストは、ファイルを位置決めし、ロードするのに要する時間を長引かせ、それ故システムを利用する装置が立ち上がるのに要する時間を長引かせる、幾つかの副次的最適特性を有する、ことを基本にする。留意すべきは、FATファイルシステムの特定のケースは以下に記す実施形態の基本を形成するが、本発明はファイル位置が一連のリンク付けされたリストをナビゲートし検索することを必要とする任意のファイルシステムに実際適用可能なことである。そのようなシステムが共有する副次的最適特性は以下の通りである。
・ファイルおよびディレクトリエントリは任意に混在し得る。
・ファイルおよびディレクトリエントリは本質的に未ソートである。
・ファイルおよびディレクトリエントリは固定の大きさであると保証されない。
以上に所与の理由のため、FATファイルシステムを完全に不要にするのは実際的ではなく、また望ましくもなく、起動ROMのために完全に異なるファイルシステムを導入するのは実施に値しない。それ故この発明は、FATファイルシステム仕様との完全な適合性を維持しながら、同時に、起動時間を改善するように特に設計された既存FATファイルシステムに対する拡張の導入を基本とする。
これらの拡張の中で最も重要なのは、各々のディレクトリに、各々のディレクトリが含む全てのサブディレクトリエントリの1つのソートされたリスト、および、各々のディレクトリが含む全ての唯一のファイルエントリの第2のソートされたリストとを含むことである。ソートされたリストは配列などの形式で保持され、完全修飾パス名から簡単なバイナリ検索アルゴリズムによりファイルの位置を決めることが可能になる。このようなソートされた配列のバイナリ検索は、検索される項目の名前をキーとして使用し、区間として配列全体を採用し、配列の中央におけるエントリにより指示される項目を見て始まる。最初にリストをソートするのに使用したのと同じ照合法を使用して、このエントリの名前が検索キーと比較される。この名前がキーより大きければ、区間はリストの半分(例えば上半分)に狭められ、一方小さければ、区間はリストの他の半分(例えば下半分)に狭められる。新しい区間を使用して、キーが名前と適合するか、または、区間がゼロになるかのいずれかまで、この処理は繰り返される。
このタイプのバイナリ検索は、実装するのに極めて効率的であり、そのエントリをバランス・ツリー(Bツリー)に保持するReiserFSおよびNTFSなどのジャーナリング・ファイルシステムにより可能になるファイルの位置決めと比較して、速度において同等である。しかし、ファイルシステムがROMに対するものであり、これらのリストがそれ故静的であることが保証されるので、これらのリストを製造の途中でROMに含めることができ、Bツリーを維持することに関連する実行時の余分なオーバヘッドはなんら課せられない。正常なエントリの後にこれらのソートされたリストを各々のディレクトリに配置することにより、既存ファイルFATファイルシステムとの完全な適合性を保証することができる。
ROMファイルシステムはあらゆるディレクトリのコンテンツを、FAT互換のファイルシステムの標準形式に従うディレクトリエントリのフラットなリストにより再帰的に表す。本発明により標準ROMファイルシステムは、ファイルシステムにおける古い要素が以前のシステムとの適合性を維持することが可能となるように、ファイルシステムデータの後に2つの配列(カウントおよびメモリオフセットのリストの形式で)を追加することにより加速される。これらの配列の第1のものは、ディレクトリにおける全てのサブディレクトリエントリに対するポインタのソートされたリストを保持し、第2の配列は、ディレクトリにおける全てのファイルエントリに対するポインタのソートされたリストを保持する。ソートされた配列を介した検索は、現在の使用ケースに対して最適化された一般的なバイナリ検索を使用して行われる。バイナリ検索の繰り返しに対して、正しいエントリの識別は、高速なロケール非依存のユニコード文字列の比較関数により試行され、アスキー(ASCII)範囲(128以下)の全てのユニコード文字が取り込まれる。即ち同じアスキー値を持つ文字は同じものとして扱われ、他のものは変更されずに残される。さらなる最適化として、大部分のコンピュータ・デバイスのオペレーティングシステムにより認められるように、A〜Zおよびa〜zの範囲の文字は同等と考慮されうる。
本発明によれば、ファイルシステムがデバイスROMにおける特定ファイルの位置を取り出すことを求められる場合、以下のステップが続く。
・フルパスにより指定されるファイル名は、ルートディレクトリからのパスとファイル名そのものとに分割される(従って、a\b\c\dはa\b\cとdとに分割される)。これをステップ「S」と呼ぶ。
・バイナリ検索が開始され、上述のサブディレクトリのポインタ配列を使用して、最も内部のディレクトリの位置から反復的に進行する(従って、a\b\cから開始するとき、ファイルシステムは、まずaを見つけ、次いでb、次いでcを見つける)。これをステップ「L」と呼ぶ。
・一旦正しいディレクトリが位置決めされると、ファイルは、上述の唯一のファイルエントリのポインタ配列を使用して、第2のバイナリ検索の実行により位置決めされる。これをステップ「F」と呼ぶ。
一旦サブディレクトリおよびファイルエントリに対するプリソートされたポインタの配列の基本的メカニズムが用意されると、幾つかのさらなる最適化が次いで可能になる。そのような最適化の3つの例は以下の通りである。
<ワイルドカード検索>
本発明は、また、ファイル名にワイルドカードを含むファイルの組の位置を加速することができる(例えば、’?’の文字が1つの文字を表し、’*’の文字が1以上の文字を表す)。そのような場合、加速されたディレクトリの調査は上述のようにステップ「L」において発生する。ワイルドカードがファイル名の始めに存在すれば、検索をさらに最適化することは不可能であり、ファイルシステムは一般的なワイルドカードの適合機能に戻る。
しかしながら、ワイルドカードが文字列の終わりに存在する場合、唯一のファイルポインタの配列により、ファイルを適合するプレフィックスの文字列が見つかるソートされた配列における第1のファイルから、適合するプレフィックスの文字列が見つからない第1のファイルまで順にマッチングすることが可能になる。そして、ワイルドカードを含む文字列に適合するファイルを連続しプリソートされた形式で直接返すことができる。これは大きなディレクトリでは特に有益である。
以上の特別な場合として、現ディレクトリにおける全てのファイルを示すワイルドカード文字’*’が分離して存在する場合、唯一のファイルエントリのポインタの配列により、現ディレクトリにおける全てのファイルを連続しプリソートされた形式でで返すことが可能になる。
<ディレクトリパスのキャッシュ>
これは上述のステップ「L」の変形である。
キャッシュは直近に必要としたファイルパスの位置を維持するために使用することができる。SymbianOSにおける\sys\bin、Windows(登録商標)における\winnt\system32、およびLinuxにおける/libまたは/binなどのシステムライブラリに予約されたディレクトリから、非常に多くのファイルが読まれる起動時に、これは特に有益である。そのようなキャッシュは多くの時間を消費する比較演算を一般的に省くことができる。起動ROMの構築しその動作のプロファイリングに関する当業者は、キャッシュ維持のオーバヘッドを最小にし、キャッシュヒット率を最大にする最適キャッシュの大きさの選択方法を容易に理解する。
<固定パスのキャッシュ>
これは、上述のステップ「L」の別の変形である。
ROM構築時に、ROMファイルシステム内の最も使用される深いパスはROMキャッシュに予めインストールすることができる。再び、起動ROMの構築およびその動作のプロファイリングに関する当業者は最良のパス候補の特定方法を容易に理解する。この最適化は勿論さらに性能を改善するために「ディレクトリのパスキャッシュ」と結合することができる。
この発明の重要な利点は、第2のファイルシステムの実装を必要とすることなく、かつFATファイルシステムに基づく産業界の標準との適合性を損なうことなく、コンピュータ・デバイスを起動するのに要する時間を有意に減らすことである。それ故、この発明によりコンピュータ・デバイス、特にモバイル・コンピュータ・デバイスにおいて、別のソリューションで起こりうるメモリ、または実行時の不利を招くことなく速い起動が可能になる。
従って、この発明は、FATなどのシステムにおけるディレクトリを備える標準のソートさず混在するフラットなファイルリストと共に、サブディレクトリおよびファイルエントリに対するポインタの分離されプリソートされた配列を含む方法および装置を提供する。バッテリにより動作するモバイル・デバイスの起動ROMに含まれると、これにより電源投入から装置が動作状態に至るまでの時間を遥かに短くすることが可能になる(より速い起動時間)。これは、複数の階層のディレクトリツリーをナビゲートすることが最早必要でなく、適合するファイル名に対する各々の枝における各々のエントリの検索が必要でないからであり、新しいプリソートされた配列は、適合するエントリを簡単なバイナリ検索により、より効率的に位置決めすることが可能になる。
本発明を個々の実施形態を参照して説明したが、当然のことながら修正は添付の特許請求の範囲により定義される本発明の範囲内で変更がなされ得る。
FATファイルシステムに基づくファイルシステムの代表的な実装を示す図である。

Claims (12)

  1. ディレクトリエントリの未ソートのリストにより構造の任意のディレクトリのコンテンツを再帰的に表すディレクトリ構造を有するコンピュータ・デバイスのためのファイルシステムの操作の方法であって、該方法は、
    エントリの前記リストの後に、サブディレクトリに対応する各々のディレクトリに含まれる全ての前記エントリに対するポインタのカウントされソートされた第1の配列、または、該第1の配列に対するポインタを含めるステップと、
    任意のディレクトリの前記位置を取得、または、前記位置がないことの確認を可能にするために、前記第1の配列の全体のバイナリ検索を実行するステップと、
    を備える方法。
  2. ディレクトリエントリの前記リストの後に、ファイルに対応する各々のディレクトリに含まれる全ての前記エントリに対するポインタを含むカウントされソートされたさらなる配列、または、該さらなる配列に対するポインタを含めるステップと、
    任意の名前を付されたファイルの前記位置の取得、または、前記位置が無いことの確認を可能にするために、前記さらなる配列の全体のバイナリ検索を実行するステップと、
    をさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記さらなる配列によって指示される前記ファイルエントリの全てまたは一部に対してワイルドカード文字による比較を実行することにより、ファイルに対するワイルドカード検索を行うステップと、
    前記ワイルドカード文字に適合する前記配列の任意の部分を順次進むことにより、連続しプリソートされた形式で前記ワイルドカード文字に対応するファイル名を返すステップと、
    を備えることを特徴とする請求項2に記載の方法。
  4. 前記第1の配列により識別されるファイルパスの位置を維持するためにキャッシュを使用するステップを備えることを特徴とする請求項1乃至3の何れか1項に記載の方法。
  5. アスキー(ASCII)の範囲の全ての文字が取り込まれるユニコード文字列に対してロケール独立の比較アルゴリズムを使用して、前記バイナリ検索を実行するステップをさらに備えることを特徴とする請求項1乃至4の何れか1項に記載の方法。
  6. 前記ファイルシステムは、読み取り専用の媒体用であることを特徴とする請求項1乃至5の何れか1項に記載の方法。
  7. 前記第1の配列は、前記ファイルシステム内に配置されるように構成されることを特徴とする請求項6に記載の方法。
  8. 前記さらなる配列は、前記ファイルシステム内に配置されるように構成されることを特徴とする請求項2に従属する場合の請求項6に記載の方法。
  9. 前記ファイルシステムは、最も頻繁に使用されるファイルパスとして以前にプロファイリングされたファイルパスのキャッシュを含むように構成されることを特徴とする請求項6乃至8の何れか1項に記載の方法。
  10. 前記ファイルシステムは、起動デバイスのファイルシステムを含むように構成されることを特徴とする請求項1乃至9の何れか1項に記載の方法。
  11. 請求項1乃至10の何れか1項に規定される方法に従い動作するように構成されるコンピュータ・デバイス。
  12. コンピュータ・デバイスを請求項1乃至10の何れか1項に規定される方法に従い動作させるための、該コンピュータ・デバイスのためのオペレーティングシステム。
JP2007517454A 2004-06-24 2005-06-22 コンピュータ・デバイスにおけるファイルシステムの性能を改善するための方法 Withdrawn JP2008503818A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0414138A GB2415797B (en) 2004-06-24 2004-06-24 A method for improving the performance of a file system in a computer device
PCT/GB2005/002464 WO2006000769A2 (en) 2004-06-24 2005-06-22 A method for improving the performance of a file system in a computing device

Publications (1)

Publication Number Publication Date
JP2008503818A true JP2008503818A (ja) 2008-02-07

Family

ID=32800092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007517454A Withdrawn JP2008503818A (ja) 2004-06-24 2005-06-22 コンピュータ・デバイスにおけるファイルシステムの性能を改善するための方法

Country Status (6)

Country Link
US (1) US20090319478A1 (ja)
EP (1) EP1761874A2 (ja)
JP (1) JP2008503818A (ja)
CN (1) CN1973289A (ja)
GB (1) GB2415797B (ja)
WO (1) WO2006000769A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143331A1 (ja) * 2009-06-10 2010-12-16 パナソニック株式会社 情報処理装置、コンテンツ記録再生機器、情報処理方法、情報処理プログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0712640D0 (en) * 2007-06-28 2007-08-08 Symbian Software Ltd Domputing device having a merged directory hierarchy from multiple filesystems
CN101437072A (zh) * 2007-11-14 2009-05-20 深圳富泰宏精密工业有限公司 快速开机的手机及方法
US8204907B1 (en) * 2008-11-10 2012-06-19 Symantec Corporation Systems and methods for collecting file access history information
US9361122B2 (en) 2013-02-08 2016-06-07 Htc Corporation Method and electronic device of file system prefetching and boot-up method
US10073974B2 (en) * 2016-07-21 2018-09-11 International Business Machines Corporation Generating containers for applications utilizing reduced sets of libraries based on risk analysis
EP3736705A4 (en) * 2018-02-05 2020-12-23 Huawei Technologies Co., Ltd. DATA INQUIRY METHOD AND DEVICE
CN113094107B (zh) * 2021-03-18 2023-12-22 深圳市塞防科技有限公司 数据保护方法、装置、设备及计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175702A (ja) * 1993-12-20 1995-07-14 Nec Corp 索引表付きファイルシステム
JP2000010843A (ja) * 1998-06-18 2000-01-14 Nec Corp ファイル検索システム
JP2003337740A (ja) * 2002-03-08 2003-11-28 Texas Instruments Inc メタデータプリソートファイルを作成する電子システムおよびメディアファイルの再生方法
JP2004030369A (ja) * 2002-06-27 2004-01-29 Yamaha Corp ファイル管理方法、ファイル管理装置およびプログラム
JP2004507815A (ja) * 2000-08-24 2004-03-11 レッド ハット インコーポレイテッド 原子ファイル検索のための方法及び装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945475A (en) * 1986-10-30 1990-07-31 Apple Computer, Inc. Hierarchical file system to provide cataloging and retrieval of data
EP0410210A3 (en) * 1989-07-24 1993-03-17 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
US6370549B1 (en) * 1999-01-04 2002-04-09 Microsoft Corporation Apparatus and method for searching for a file
GB2369465B (en) * 2000-11-28 2003-04-02 3Com Corp A method of sorting and retrieving data files
US7512673B2 (en) * 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175702A (ja) * 1993-12-20 1995-07-14 Nec Corp 索引表付きファイルシステム
JP2000010843A (ja) * 1998-06-18 2000-01-14 Nec Corp ファイル検索システム
JP2004507815A (ja) * 2000-08-24 2004-03-11 レッド ハット インコーポレイテッド 原子ファイル検索のための方法及び装置
JP2003337740A (ja) * 2002-03-08 2003-11-28 Texas Instruments Inc メタデータプリソートファイルを作成する電子システムおよびメディアファイルの再生方法
JP2004030369A (ja) * 2002-06-27 2004-01-29 Yamaha Corp ファイル管理方法、ファイル管理装置およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143331A1 (ja) * 2009-06-10 2010-12-16 パナソニック株式会社 情報処理装置、コンテンツ記録再生機器、情報処理方法、情報処理プログラム

Also Published As

Publication number Publication date
CN1973289A (zh) 2007-05-30
GB2415797A (en) 2006-01-04
GB2415797B (en) 2009-02-25
WO2006000769A3 (en) 2006-08-17
WO2006000769A2 (en) 2006-01-05
EP1761874A2 (en) 2007-03-14
US20090319478A1 (en) 2009-12-24
GB0414138D0 (en) 2004-07-28

Similar Documents

Publication Publication Date Title
CN100476825C (zh) 创建符号链接的方法以及使用符号链接的方法和装置
US7610296B2 (en) Prioritized files
US9104673B2 (en) Method for supporting multiple filesystem implementations
KR100714691B1 (ko) 파일 시스템에 추가 정보를 저장하고 관리하는 장치 및방법
US7647355B2 (en) Method and apparatus for increasing efficiency of data storage in a file system
EP1862920A1 (en) Apparatus and method for storing and managing data
JP2008503818A (ja) コンピュータ・デバイスにおけるファイルシステムの性能を改善するための方法
CN102289451A (zh) 文件或文件夹查找方法和装置
KR20090101665A (ko) 메모리 시스템 및 그것의 데이터 액세스 방법
KR101478619B1 (ko) 가상화 기술을 이용한 데이터 입출력 방법 및 장치
US8667035B2 (en) Method of converting a filesystem while the filesystem remains in an active state
US20060036663A1 (en) Method and apparatus for effective data management of files
EP1845461A1 (en) Fast file attribute search
WO2007026484A1 (ja) 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体
US8775746B2 (en) Information processing system and method
CN112181910B (zh) 一种扩展短文件名生成方法、文件访问方法以及设备
US7558810B2 (en) System and method for managing a path environment variable
US8051042B2 (en) Apparatus and method for managing data
CN100444166C (zh) Fat文件***中基于位置的接口访问方法及其装置
CN117349236B (zh) 文件读取方法、装置、设备及存储介质
KR100756135B1 (ko) 메모리 데이터베이스를 이용한 플래시 파일 시스템 처리 방법
KR100704621B1 (ko) 이동형 저장 장치의 데이터 무결성을 보장하는 방법 및 장치
Duy Fat32 File System Organization and Storage Mechanism
CN111831224A (zh) 一种擦除exFAT分区文件剩余空间的方法,***及设备
CN116955286A (zh) 一种文件搜索与分类管理方法、***及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080515

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090309

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090319

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20101216