JP5986585B2 - 下位互換性アグリゲートファイルシステムの動作性能の向上方法、及び装置 - Google Patents

下位互換性アグリゲートファイルシステムの動作性能の向上方法、及び装置 Download PDF

Info

Publication number
JP5986585B2
JP5986585B2 JP2013549817A JP2013549817A JP5986585B2 JP 5986585 B2 JP5986585 B2 JP 5986585B2 JP 2013549817 A JP2013549817 A JP 2013549817A JP 2013549817 A JP2013549817 A JP 2013549817A JP 5986585 B2 JP5986585 B2 JP 5986585B2
Authority
JP
Japan
Prior art keywords
file
directory
virtual
file system
residential gateway
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.)
Active
Application number
JP2013549817A
Other languages
English (en)
Other versions
JP2014517941A5 (ja
JP2014517941A (ja
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2014517941A publication Critical patent/JP2014517941A/ja
Publication of JP2014517941A5 publication Critical patent/JP2014517941A5/ja
Application granted granted Critical
Publication of JP5986585B2 publication Critical patent/JP5986585B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • G06F16/192Implementing virtual folder structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots

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)
  • Stored Programmes (AREA)

Description

本発明は、ファイルディレクトリを含むファイルシステムを操作するための方法及びその方法を使用した装置に関し、特にレジデンシャルゲートウェイに関する。
エンドユーザーの住宅ネットワークをインターネットに接続するレジデンシャルゲートウェイが現在広く使用されている。レジデンシャルゲートウェイは通常、デジタル加入者線(DSL)及びPOTS(従来の普通の電話サービス)と呼ばれる電話通信を介してブロードバンドサービスを提供しており、さらに住宅のネットワークのための例えばイーサネット(登録商標)などの有線伝送及び無線伝送(Wi−Fi)を含んでいる。レジデンシャルゲートウェイは、サービスを提供するために、UNIX(登録商標)系のオペレーティングシステム上で動作するマイクロプロセッサシステム(CPU)を含んでいる。
オペレーティングシステムには、マスター制御プログラム、即ちカーネルと共にアプリケーションやユーティリティが含まれている。カーネルは、プログラムを起動および停止するためのサービスを提供し、ファイルシステムと殆どのアプリケーションが共有する他の一般的な「低レベル」のタスクを処理し、アプリケーション間の競合を回避するためにアクセスをスケジュールする。このようなアクセスの仲立ちをするために、カーネルはその仮想メモリがユーザ空間とシステム空間とに分離されることに反映されている特別な権利を有する。カーネル、カーネルエクステンション、および殆どのデバイスドライバを実行するためにシステム空間が厳密に予約されている。これとは対照的に、ユーザ空間は全てのユーザモードアプリケーションが動作し、必要に応じてメモリの全てがスワップアウト可能なメモリ空間である。
ファイルシステムの重要な概念は、異なる種類のファイルシステムを相互運用可能にする、固定のアプリケーションプログラミングインターフェイス(API)を有することである。ファイルシステムを利用するアプリケーションにとっては、ファイルシステムのフォーマット、例えばFAT32、NTFS、ext3には違いが無く、アプリケーションがこれらを気にするべきでない。オペレーティングシステムがUNIX系の場合は、ファイルシステムのAPIは、IEEEで定める標準規格のファミリーである移植性の高いオペレーティングシステムインタフェース(POSIX)規格に準拠している。
ファイルシステムAPIはファイルシステム間の相互運用を些細なものとし、これは実際有利なことであるが、同様にあるアプリケーションにとっては弱点でもあり得る。ある非常に基本的な操作が直接可能ではなく、APIの利用可能な関数でエミュレートする必要があり、リソースの面で高価過ぎることになる。
ファイルシステムは、オペレーティングシステムの一部であり、従ってそれらはシステム空間で動作する。一方、アプリケーションは特権性がより低いユーザ空間で動作する。ユーザ空間とシステム空間との境界を越えるために、図1に示すように、オペレーティングシステムは、システムコールインターフェースを提供する。システムコールは、アプリケーションがオペレーティングシステムのカーネルからのサービスを要求する方法である。一般的に、オペレーティングシステムによって使用されるシステムコールを例えば標準Cライブラリ等の関数によってユーザ空間にアクセス可能にする中間ライブラリが存在する。
アプリケーションは、システムコールを直接呼び出すか、またはシステムコールを呼び出すライブラリから関数を呼び出すとき、ユーザ空間とシステム空間の切り替えが必要である。他の手法も存在するけれども、ユーザ空間からシステム空間への切り替えを行うための一般的な方法の1つは、ソフトウェア割り込みによるものである。ソフトウェア割り込みの実行において、システムコールの番号をマイクロプロセッサのレジスタにロードする必要があり、カーネルに制御を移すためにソフトウェア割り込みが実行される。
ファイルシステムが特権的なシステム空間に存在するため、それらはどのライブラリも使用することができない。このように、ファイルシステムを実現することは非常に複雑である。例えば、メモリ管理は、ユーザ空間における場合に比べ、システム空間においてより困難である。かかる制限を克服するために、ファイルシステムは、ユーザ空間においても同様に実現することができる。ユーザ空間におけるファイルシステムの実装を可能にする実装の一例は、ユーザ空間ファイルシステム(FUSE)である。FUSEは、UNIX系コンピュータのオペレーティングシステム用のロード可能なカーネルモジュールである。図2に示すように、これは、通常のファイルシステム5と同様に動作するFUSEカーネルドライバ4と、ユーザ空間内のファイルシステム3とFUSEカーネルドライバ4の間の通信のためのFUSEライブラリ6を備える。ファイルシステムの実装は、ユーザ空間に存在し、ファイルシステムのインターフェースを実装する役割を受け持つ。従って、FUSEは、FUSEカーネルドライバ4がオペレーティングシステムのカーネルにブリッジを提供している間、ユーザ空間におけるファイルシステムコードの実行を可能にする。
アプリケーションがユーザ空間で実装されているファイルシステム3と連携動作しているときに、それぞれのシステムコールは、システム空間に存在する任意のファイルシステムと同様に開始される。カーネル内部では、システムコールは、FUSEカーネルドライバ4によって処理される。FUSEカーネルドライバ4は、システムコールをシリアル化し、FUSEキャラクタ型デバイスを介してユーザ空間に伝送し戻し、FUSEライブラリ6は、ユーザ空間内のファイルシステム3によって実装された、対応する関数を起動する。リターンパスは逆の順序で同じ経路を辿る。
FUSEはユーザ空間でファイルシステムを実装することができる実装の一例に過ぎず、ここで強調すべき点はユーザ空間内のファイルシステムのすべての種類のコンテキストスイッチを必要とすることである。コンテキストスイッチは、後で同じポイントからその実行再開できるようにマイクロプロセッサの状態を記憶し復元する演算処理である。これにより、複数のプロセスが単一のCPUを共有することが可能になるものであり、コンテキストスイッチは、マルチタスクオペレーティングシステムの本質的な特徴である。コンテキストスイッチは、通常は計算集約的であり、オペレーティングシステムの設計の多くの部分はコンテキストスイッチの使用を最適化することにある。コンテキストスイッチは、レジスタコンテキストスイッチ、タスクコンテキストスイッチ、スレッドコンテキストスイッチ、またはプロセスコンテキストスイッチであり得る。
プロセスコンテキストスイッチは、1つのプロセスから別プロセスへのコントロールの切り替えである。このようなコンテキストスイッチを生成することは、先ずプロセスの状態を後で再開可能なように記憶し、第2のプロセスの状態を開始することができるようにすることを含んでいる。ユーザ空間におけるファイルシステム3の実装のため、システムコールの各々は、2つのコンテキストスイッチが生じる結果となる。即ち、システムコールを実行するアプリケーションは、別のプロセスとして実装されているファイルシステムがコールを処理できるようにサスペンドされ、コールが復帰されると、呼び出し側のアプリケーションが再開される。
このようにして、ユーザ空間に実装されているファイルシステムの範囲において、必要とする膨大な数のコンテキストスイッチによって最大のオーバーヘッドが導入される。図2における大きな矢印1、2は、超えなければならない境界を示している。縦の矢印1は、すべてのファイルシステムコールについて、それらがシステム空間内で実装されているかまたはユーザ空間で実装されているかに拘わらず超えなければならないユーザ空間とシステム空間との境界を示している。水平方向の矢印2は、ファイルシステムがユーザ空間で実装されるときに導入される余分なオーバーヘッドであるプロセス間の境界を示している。
ここで、その結果多数のシステムコールを生じる、ファイルシステム使用について、3つの例を説明する。これらの例がユーザ空間に存在するファイルシステム3に適用される場合、コンテキストスイッチの数が実行不可能な数に増大する結果となる。
b.1)ディレクトリ内の要素のカウント
次の擬似コードは、どのようにしてディレクトリ/foo/bar内の要素の数がカウント可能であるかを示している。システムコールを呼び出す関数は太字で示されている。
Figure 0005986585
ディレクトリ/foo/barにn個の要素が存在する場合、このコードフラグメントによって起動されるシステムコールの数は2+nとなる。/foo/barがユーザ空間で実装されているファイルシステム内のディレクトリである場合、2(2+n)個のコンテキストスイッチが生じる結果となる。
b.2)ディレクトリ内の全ての直接のサブディレクトリの要素のカウント
この例は、前の例の直接の結果として見えるかもしれないけれども、d.2節で説明するように、それはわずかに異なる方法で解決される。この例は人工的な問題のように見えるかもしれないけれども、実際のユースケース(例えばUPnP AV BrowseDirectChildren action)を有するものである。
Figure 0005986585
/foo/barに各サブディレクトリmがmi個の要素を有するn個のサブディレクトリが有る場合、擬似コード片は
Figure 0005986585
個のシステムコールを呼び出す。/foo/barが再びユーザ空間ファイルシステムに存在する場合、
Figure 0005986585
個のコンテキストスイッチを生じる結果となる。
b.3)オフセットからのディレクトリ要素の読み取り/チャンク単位での完全なディレクトリの読み取り
Figure 0005986585
POSIXファイルシステムAPIは、ファイルハンドルのためにあるような、ディレクトリハンドル内で模索するための同様の方法を提供していない。ファイルの場合、ファイル内の任意の位置に位置インジケータを設定することができる。ディレクトリハンドルのために提供されたシーク機能は、以前に保存された位置に戻すことのみが可能である。このため、ディレクトリアイテムを飛び越えることはアイテムを無視することによってのみ達成することが可能である。
アプリケーションが多くのアイテムを有するディレクトリのサブセットを読み出す必要が有り、このアプリケーションはディレクトリハンドルが開いたままにできないと仮定する。たとえば、一度にN個の要素を表示することのみが可能であり、スクロールボックス内のディレクトリの内容を表示する必要があるWebページが挙げられる。スクロールバーの位置に応じて、Webサービスは、特定のオフセットでN個の項目を読み出す必要が有る。最初のN個の項目を表示するための、コンテキストスイッチの数は2(N+2)である。このように次のN個のアイテムを読むことは、N個のアイテムをスキップし、続いてN個のアイテムを読み出すことであり、2(2N+2)個のコンテキストスイッチが必要になる。全体として、これらの2N個のディレクトリアイテムを読み出すためのコンテキストスイッチの数は2(3N+4)となる。
一般的に、ディレクトリがm×N個の項目を含む場合、一度にN個のアイテムを読み出して完全なディレクトリを読み出すために必要なコンテキストスイッチの数は、ディレクトリ内の要素数に対して2次のオーダーになる。ディレクトリの要素をカウントすることは本質的には線形演算であり、膨大なコストがかかる操作である。
これは、以下の計算によって示される。
Figure 0005986585
米国特許第6389427B1号明細書
特許文献1は、コンピュータのファイルシステムでの読み取り専用操作のパフォーマンスを向上させる方法及び装置を開示している。この方法は、初期設定が完了した後、オペレーティングシステムによってトランスペアレントなしかたで実行可能なものである。初期設定は、どのディレクトリやファイルを、それらのファイルへのアクセス要求をインターセプトするために監視するかを識別し、強化された性能でそれらの要求に応答することが含まれる。システム管理者は、どのディレクトリやファイルを監視するかを指定することができる。監視対象ファイルが開かれると、ファイル識別子が使用され、それによってディレクトリメタデータ情報へのアクセスがバイパスされる。一実施形態では、監視対象のファイルへのアクセスがファイルシステムのキャッシュマネージャによって維持されているデータキャッシュ内のファイルを固定することによって強化される。
実ファイルを有するファイルディレクトリを含むファイルシステムを操作する方法は、最小数のシステムコールでファイルシステムから情報を取得することが可能である。これを達成するために、本発明による方法は、仮想ファイルを設計して多くのシステムコールを必要とするファイルディレクトリから結果を提供するステップと、ファイルディレクトリの実ファイルから固有の名前で仮想ファイルを区別するステップと、仮想ファイルを開いて仮想ファイルの内容を読み取ることによりファイルディレクトリから結果を取得するステップを含む。仮想ファイルは特にファイルシステム操作のために設計されている。
本発明の更なる態様において、本発明による方法は、ファイルディレクトリの内容が変更されたとき、仮想ファイルの結果を更新するステップを含む。仮想ファイルは、ファイルディレクトリの実ファイルから固有のファイル拡張子によって有利に区別され、仮想ファイルはファイルディレクトリ内に配置される。
第1の好ましい実施形態においては、本発明による方法は、ファイルディレクトリの要素を数えるファイルシステム操作のために仮想ファイルを設計するステップを含む。第2の好ましい実施形態においては、本発明による方法は、ファイルディレクトリの全ての直接のサブディレクトリの要素を数えるファイルシステム操作のために仮想ファイルを設計するステップを含む。第3の好ましい実施形態においては、本発明による方法は、オフセットからファイルディレクトリのディレクトリ要素を読み取るファイルシステム操作のために仮想ファイルを設計するステップを含む。更なる好ましい実施形態において、本発明による方法はチャンク単位で完全なファイルディレクトリを読み取るファイルシステム操作のために仮想ファイルを設計するステップを含む。
本発明は、さらにファイルシステムを操作する方法を用いた装置に関する。本発明による装置は特に、アプリケーション、ユーティリティ、ファイルシステムの処理の制御プログラムを含むオペレーティングシステムを実行するマイクロプロセッサシステムを含む。本発明による装置は、例えば住宅用ゲートウェイ、DSLモデムまたはセットトップボックスである。
本発明の好ましい実施形態について模式的な図面を参照しながら以下により詳細に説明する。
マイクロプロセッサシステム上で実行されるオペレーティングシステムおよびアプリケーションを含むファイルシステムを示す図である。 ユーザ空間でファイルシステムを提供するためのFUSEカーネルモジュールとFUSEライブラリを更に含む図1のファイルシステムを示す図である。
本発明の好ましい実施形態は、ROM及びRAMメモリを含むマイクロプロセッサシステムを含むレジデンシャルゲートウェイで利用され、例えばUNIX系オペレーティングシステムで実行される。オペレーティングシステムは、マスター制御プログラム、即ちカーネルと共に、実ファイルを表すアプリケーションとユーティリティを含む。本発明による方法は、必要な結果と適合するように特化した仮想ファイルを設計し、ファイルシステムの名前空間を汚染せず、ファイルシステム内の実ファイルと干渉しないように、ファイルシステム内でこれらのファイルを利用可能にすることを提案している。仮想ファイルの内容は、ユーザの要求に依存しており、そのため、この内容は、両者の間で規則が合意されなければならないプロトコルとして考えることができる。
従って、本発明は、ファイルシステムの実装に使用して、ファイルシステムを利用するアプリケーションが利用可能なアプリケーションプログラミングインターフェース(API)で不足している機能をエミュレートする必要が生じることを避けることができる汎用的な方法を記載している。本発明は、本発明無しには同じことを達成するために多数のシステムコールが必要となるとき、最小数のシステムコールでファイルシステムから情報を取得することを可能にしている。b節の例によって示されるように、標準APIを使用した場合、システムコールの数が多大になる可能性がある。ユーザ空間に実装されたファイルシステムでは、これらのシステムコールに起因するコンテキストスイッチによって、ファイルシステムが使用できなくなる場合が有る。本発明は、ユーザ空間とシステム空間の境界およびユーザ空間内のプロセス間の境界を通過することによって引き起こされるオーバーヘッドを最小限に減少させる。相互運用性を壊さないために、本発明は標準化されたファイルシステムAPIに従っている。
前のb節に記載されている例について、考えられる規則を本節で説明する。
d.1)ディレクトリ内の要素のカウント
考えられる規則は、仮想ファイルシステム内のすべてのディレクトリは、ディレクトリ要素の数(サブディレクトリ、ファイル、シンボリックリンク)コンテンツとして有するファイルを利用できるようにするということである。このようなファイルの論理名は、「size」、「childcount」、「dirsize」等で良く、b.1節で記述されている問題は、以下の擬似コードで解決することができる。
Figure 0005986585
これは、かかる問題がディレクトリ内の要素の数に関わらず、わずか3つのシステムコールで解決できることを示している。大文字Oの表記法では、問題がシステムコールの数に対してO(n)からO(1)に削減されたと言うことができる。ファイルシステムの実装が、この情報を持っている、すなわち、/foo/bar内の要素の数が使えると仮定すると、その提案は一般的に複雑度O(1)となる。
d.2)ディレクトリ内のサブディレクトリすべての直接の要素のカウント
ディレクトリ内のサブディレクトリすべての直接の要素をカウントする可能な規則は、各ラインにサブディレクトリ名、区切り文字列、サブディレクトリ内の要素数を含むファイルである。このようなファイルの論理名は、「contents」、「dircontent」、「data」、「subsize」等であっても良い。
Figure 0005986585
ディレクトリ/foo/barが、それぞれが3、2、および5のディレクトリ要素を持つ3つのサブディレクトリ、dir_a、dir_b及びdir_cを有していると仮定する。このとき、ファイル/foo/bar@contentは、例えば次のような内容を有することができる。
dir_a=3
dir_b=2
dir_c=5
b.2節における元の問題に比較すると、問題が再びO(n)からO(1)に減少している。このことは、この問題は、b.2節で述べたような、以前のものとは異なる理由を説明している。@contentファイルが無ければ、問題は簡単になったであろうけれども、擬似コードの次の部分に示すように、複雑度はO(n)のままであった筈である。
Figure 0005986585
d.3)オフセットからのディレクトリ要素の読み取り/チャンク単位での完全なディレクトリの読み取り
ディレクトリ内の所定のオフセットから限られた数の要素を読み取る場合に考えられる規則は、オフセットとリミットパラメータを示す変数ファイル名(例えば2から10の要素を読む場合、dir_2_10)を使用可能な仮想ファイルを持つことである。このファイルは、単に一致する要素の名前を含むことが可能である。このようなファイルの論理名は、「dir_<from>_<to>」、「content_<from>_<to> 」、「items_<from>_<to>」等であっても良い。これは、擬似コードの次の部分に示されている。
Figure 0005986585
元の問題はO(n2)の複雑度を有していたけれども、これはO(n/N)まで減少している。最悪の場合はチャンクサイズNが1である場合であり、複雑度がO(n)である。Nが少なくともnであるときが最良の場合であり、複雑度が再びO(1)である。まだNを大とすることができるときのように、メモリに制限が無い場合において、または大部分の時間にディレクトリの要素の数が少ない場合(nが小さい値の場合)において、最良の性能が達成される。
これらの例では、b節で説明した問題のためだけに例示された規則であるが、主要な概念は、これら3つの実施例に限定されるものでは無い。
本発明の他の部分は、これらの仮想ファイルをファイルシステム内の実ファイルに干渉しない方法で、仮想ファイルシステム内において利用可能にすることである。それには次のような多くの可能性がある。
・上の例において示されたようなパス拡張ファイル名
この実現例においては、特別な仮想ファイルは同じファイルシステムに実装される(例えば/foo/barがそのディレクトリのパスである場合には、パス/foo/bar@contentsが仮想ファイルを表す)。唯一の欠点は、パス長が制限されることであり、パスを拡張することは必ずしも常に可能ではない。
・仮想ファイルを有するミラーリングファイルシステム
仮想ファイルを提供するために、専用のミラーリングファイルシステムについて検討することも可能である。このようなミラーリングファイルシステムは、ミラーリングファイルシステムによって基礎となるファイルシステムに仮想ファイルが追加される、既存のファイルシステム上のオーバーレイとして考えることができる。
・拡張可能なプラグインファイルシステム
これは、プラグインインターフェースによってミラーリングファイルシステムの内容を動的に入力することができるミラーリングファイルシステムのためのより一般的なアプローチである。プラグインは、ミラーリングファイルシステムに仮想のコンテンツを追加できるものであり、ファイルシステムにロードすることが可能である。
ファイルシステムの仮想ファイルと実ファイルの名前の衝突を避けるためには、仮想ファイルへのパスから実際のパスを区別するために区切り文字または区切り文字列を使用することができる。上記の例において区切り文字は、例えば競合の可能性を軽減するために「@」、又は「.@.」のような可能性の低い文字列であり、例えば、下記のようなものである。
・/foo/bar@size
・/foo/bar@contents
・/foo/bar@content_1_10
しかし、POSIXファイルシステムにおいては、パス区切り文字自体(「/」)を除いて、パス名において出現してはならない文字や文字列は無い。
従って、選択した区切り文字、または区切り文字列は、実ファイルへのパスではエスケープする必要がある。これは、仮想ファイルシステムの些細な要件である。
これらの仮想ファイル、3つのシステムコールのみ(設けられたバッファが、ファイル内のすべてのデータを格納するのに十分な大きさであるとき)、またはユーザ空間に実装されたファイルシステムの場合には6つのコンテキストスイッチのみを必要とする通常のファイル操作で読み取ることができる。
干渉を回避するために、仮想ファイルシステムが、選択された区切り文字が仮想ファイルシステムの些細な要件であるディレクトリ名に生じないことのみを保証しなければならないことに留意されたい。
本発明は、以下の利点を有する。
・ファイルシステムからデータを取得するために呼び出されるシステムコールの数が最小化される。
・本発明は、相互運用性を破壊せず、本発明を実施するファイルシステムは追加された機能を認識していないアプリケーションによって依然として何ら制限なしに用いることができる。
・全く新しいシステムコールは、必要とされない。
・関数APIにシステムコールをカプセル化している中間ライブラリは、変更する必要が無い。
・すべてのファイルシステム操作は、コールがシェル内で直接開始されるか、シェルスクリプト内から開始されるか、またはいかなるプログラミング言語で書かれたものでも、アプリケーション内から開始されるか、に関係なく以前と同様に動作する。
・新たに導入された仮想ファイルはネットワークの共有下でも同様に参照可能であり、このネットワークファイルシステムを使用するリモートアプリケーションも、本発明から利益を得ることができる。
・可能な用途がここでは3つのみ記載されているけれども、本発明は一般的に適用可能である。
・ファイルシステムが、オーバーヘッドが大きく使用不能になるとき、コンテキストスイッチの減少によってユーザ空間にファイルシステムを実装することが可能になる。
・システム空間内のファイルシステムよりもユーザ空間でファイルシステムを実装することがより容易であり、開発コストが節約される。
また、本発明の他の実施形態は、本発明の範囲から逸脱することなく当業者によって利用され得る。本明細書に記述された方法は、特に、住宅用ゲートウェイで使用することができるが、ファイルシステムを利用したセットトップボックスまたは携帯電話などの他の機器にも本発明を使用することができる。本発明は、従って本明細書の後に添付された特許請求の範囲に存する。
[付記1]
実ファイルを有するファイルディレクトリを含むファイルシステムを操作するための方法であって、
仮想ファイルを設計して複数のシステムコールが必要な前記ファイルディレクトリからの結果を提供するステップと、
前記ファイルディレクトリの実ファイルから固有の名前で前記仮想ファイルを区別するステップと、
前記仮想ファイルを開き、前記仮想ファイルの内容を読み取ることにより、前記ファイルディレクトリから前記結果を取得するステップと、
を有する、前記方法。
[付記2]
複数のシステムコールが必要とされるファイルシステム操作のために前記仮想ファイルを設計するステップをさらに有する、付記1に記載の方法。
[付記3]
前記ファイルディレクトリの内容が変更されたときに、前記仮想ファイルの結果を更新するステップをさらに有する、付記1又は2に記載の方法。
[付記4]
前記仮想ファイルは、前記ファイルディレクトリの実ファイルからの固有のファイル拡張子によって区別される、付記1乃至3のいずれかに記載の方法。
[付記5]
前記ファイルディレクトリ内に前記仮想ファイルを配置するステップを有する、付記1乃至4のいずれかに記載の方法。
[付記6]
前記ファイルディレクトリの要素をカウントする前記ファイルシステム操作のために前記仮想ファイルを設計するステップを有する、付記1乃至5のいずれかに記載の方法。
[付記7]
前記ファイルディレクトリのすべての直接のサブディレクトリの要素をカウントする前記ファイルシステム操作のために前記仮想ファイルを設計するステップを有する、付記1乃至6のいずれかに記載の方法。
[付記8]
オフセットから前記ファイルディレクトリのディレクトリ要素を読み取る前記ファイルシステム操作のために前記仮想ファイルを設計するステップを有する、付記1乃至7のいずれかに記載の方法。
[付記9]
チャンク単位で完全な前記ファイルディレクトリを読み取る前記ファイルシステム操作のために前記仮想ファイルを設計するステップを有する、付記1乃至8のいずれかに記載の方法。
[付記10]
付記1乃至9のいずれかに記載の方法を利用した装置。
[付記11]
前記装置は、前記ファイルシステム、アプリケーション、およびユーティリティを処理する制御プログラムを含むオペレーティングシステムを実行するマイクロプロセッサシステムを備えた、付記10に記載の装置。
[付記12]
前記装置は、住宅用ゲートウェイ、DSLモデムまたはセットトップボックスである、付記10又は11に記載の装置。

Claims (8)

  1. レジデンシャルゲートウェイであって、
    該レジデンシャルゲートウェイが、これに含まれているファイルシステムを操作するマイクロプロセッサシステムを備え、
    また、該レジデンシャルゲートウェイが、アプリケーションを備えたユーザ空間とオペレーティングシステムを備えたシステム空間とを有し、
    前記オペレーティングシステムが、前記ユーザ空間と前記システム空間との間の境界を超えるためのシステムコールインタフェースを有し、
    前記ファイルシステムが前記ユーザ空間に実装され、そして、実ファイルを有するファイルディレクトリを備え、
    前記マイクロプロセッサシステムが、
    各々が前記ユーザ空間と前記システム空間との間の移行を要求する複数のシステムコールが必要とされる、前記ファイルディレクトリから結果を提供するファイルシステム操作のために、仮想ファイルを設計するステップと、
    前記仮想ファイルを固有の名前によって、前記ファイルディレクトリの前記実ファイルから識別するステップと、
    前記仮想ファイルを開き、前記仮想ファイルの内容を読み取ることにより、前記ファイルディレクトリから前記結果を取得するステップと、
    を備えるように構成された、前記レジデンシャルゲートウェイ
  2. 前記ファイルディレクトリの内容が変更されたときに、前記マイクロプロセッサシステムが前記仮想ファイルの結果を更新する、請求項1に記載のレジデンシャルゲートウェイ
  3. 前記仮想ファイルが、固有のファイル拡張子によって、前記ファイルディレクトリの前記実ファイルから識別される、請求項1又は2に記載のレジデンシャルゲートウェイ
  4. 前記マイクロプロセッサシステムが前記ファイルディレクトリ内に前記仮想ファイルを配置する、請求項1乃至3のいずれかに記載のレジデンシャルゲートウェイ
  5. 前記マイクロプロセッサシステムが、前記ファイルディレクトリの要素をカウントする前記ファイルシステム操作のために前記仮想ファイルを設計する、請求項1乃至4のいずれかに記載のレジデンシャルゲートウェイ
  6. 前記マイクロプロセッサシステムが、前記ファイルディレクトリのすべての直接のサブディレクトリの要素をカウントする前記ファイルシステム操作のために前記仮想ファイルを設計する、請求項1乃至5のいずれかに記載のレジデンシャルゲートウェイ
  7. 前記マイクロプロセッサシステムが、前記ファイルディレクトリのディレクトリ要素をオフセットから読み取る前記ファイルシステム操作のために前記仮想ファイルを設計する、請求項1乃至6のいずれかに記載のレジデンシャルゲートウェイ
  8. 前記マイクロプロセッサシステムが、完全な前記ファイルディレクトリをチャンク単位で読み取る前記ファイルシステム操作のために前記仮想ファイルを設計する、請求項1乃至7のいずれかに記載のレジデンシャルゲートウェイ
JP2013549817A 2011-01-21 2012-01-20 下位互換性アグリゲートファイルシステムの動作性能の向上方法、及び装置 Active JP5986585B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11447001 2011-01-21
EP11447001.6 2011-01-21
PCT/EP2012/050823 WO2012098211A1 (en) 2011-01-21 2012-01-20 Method for backward-compatible aggregate file system operation performance improvement, and respective apparatus

Publications (3)

Publication Number Publication Date
JP2014517941A JP2014517941A (ja) 2014-07-24
JP2014517941A5 JP2014517941A5 (ja) 2015-03-12
JP5986585B2 true JP5986585B2 (ja) 2016-09-06

Family

ID=45562289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013549817A Active JP5986585B2 (ja) 2011-01-21 2012-01-20 下位互換性アグリゲートファイルシステムの動作性能の向上方法、及び装置

Country Status (10)

Country Link
US (1) US20130304778A1 (ja)
EP (1) EP2666107B1 (ja)
JP (1) JP5986585B2 (ja)
KR (1) KR101925651B1 (ja)
CN (1) CN103443789B (ja)
CA (1) CA2824489C (ja)
MX (1) MX2013008458A (ja)
MY (1) MY175092A (ja)
RU (1) RU2598812C2 (ja)
WO (1) WO2012098211A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970794B (zh) * 2013-02-01 2017-11-28 联想(北京)有限公司 数据访问方法和数据访问装置
US9015353B2 (en) 2013-03-14 2015-04-21 DSSD, Inc. Method and system for hybrid direct input/output (I/O) with a storage device
CN103809981B (zh) * 2014-02-26 2017-06-23 中国科学院信息工程研究所 一种通用文件***的操作获取记录的方法
CN105580010B (zh) 2014-09-01 2019-02-19 华为技术有限公司 访问文件的方法、装置和存储***
CN105579977B (zh) * 2014-09-01 2020-04-14 华为技术有限公司 访问文件的方法、装置及存储***
WO2017116304A1 (en) 2015-12-31 2017-07-06 Razer (Asia-Pacific) Pte. Ltd. Methods for controlling a computing device, computer-readable media, and computing devices
US20190005066A1 (en) * 2017-06-29 2019-01-03 International Business Machines Corporation Multi-tenant data service in distributed file systems for big data analysis
US11055110B2 (en) * 2018-06-05 2021-07-06 Microsoft Technology Licensing, Llc Operating system service for persistently executing programs
CN109032953B (zh) * 2018-08-13 2022-03-15 福建联迪商用设备有限公司 一种中间库测试方法及终端
CN112667565B (zh) * 2020-12-30 2021-12-03 湖南博匠信息科技有限公司 一种基于fuse的存储单元文件管理方法及***
KR20220126903A (ko) * 2021-03-10 2022-09-19 삼성전자주식회사 파일 리댁션을 수행하는 전자 장치 및 이의 동작 방법

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2578870B2 (ja) * 1988-01-14 1997-02-05 富士通株式会社 プログラム走行スラップカウント装置
JPH05233402A (ja) * 1992-02-21 1993-09-10 Toshiba Corp メモリマップドファイルアクセス方式
US5644755A (en) * 1995-02-24 1997-07-01 Compaq Computer Corporation Processor with virtual system mode
US5920895A (en) * 1995-04-24 1999-07-06 Microsoft Corporation Mapped file input/output with delayed zeroing
JPH103421A (ja) * 1995-11-20 1998-01-06 Matsushita Electric Ind Co Ltd 仮想ファイル管理システム
US5778384A (en) * 1995-12-22 1998-07-07 Sun Microsystems, Inc. System and method for automounting and accessing remote file systems in Microsoft Windows in a networking environment
US6253218B1 (en) * 1996-12-26 2001-06-26 Atsushi Aoki Three dimensional data display method utilizing view point tracing and reduced document images
WO1999042934A2 (en) 1998-02-20 1999-08-26 Storm Systems, Llc File system performance enhancement
US7181486B1 (en) * 1998-12-07 2007-02-20 Network Ice Corporation Method and apparatus for remote installation of network drivers and software
US8099758B2 (en) * 1999-05-12 2012-01-17 Microsoft Corporation Policy based composite file system and method
US6754736B1 (en) * 1999-06-23 2004-06-22 Fujitsu Limited Information processing apparatus, data inputting/outputting method, and program storage medium therefor
US6466944B1 (en) * 1999-12-02 2002-10-15 Novell, Inc. Method for creation, management, and use of files containing multiple virtual data streams using standard file system APIs
US8006243B2 (en) * 1999-12-07 2011-08-23 International Business Machines Corporation Method and apparatus for remote installation of network drivers and software
US7418439B2 (en) * 2000-03-17 2008-08-26 Twin Peaks Software, Inc. Mirror file system
JP2002140219A (ja) * 2000-11-01 2002-05-17 Toshiba Corp ファイル処理方法、ファイル処理装置、ファイル管理用記録媒体
US20020092003A1 (en) * 2000-11-29 2002-07-11 Brad Calder Method and process for the rewriting of binaries to intercept system calls in a secure execution environment
US7194478B2 (en) * 2002-11-12 2007-03-20 Hewlett-Packard Development Company, L.P. Virtual process file systems and methods therefor
US20040249957A1 (en) * 2003-05-12 2004-12-09 Pete Ekis Method for interface of TCP offload engines to operating systems
US7415480B2 (en) * 2003-12-10 2008-08-19 Symantec Operating Corporation System and method for providing programming-language-independent access to file system content
KR100585668B1 (ko) * 2004-03-22 2006-06-07 엘지전자 주식회사 가상 미디어파일 시스템을 이용한 멀티미디어 편집 방법및 장치와 멀티미디어 파일 구조
US7685596B1 (en) * 2004-09-01 2010-03-23 The Mathworks, Inc. Deploying and distributing of applications and software components
KR20060060150A (ko) * 2004-11-30 2006-06-05 삼성전자주식회사 가상 파일 시스템을 만들어 멀티미디어 데이터를 재생하는장치 및 재생방법
JP2006215954A (ja) * 2005-02-07 2006-08-17 Hitachi Ltd ストレージシステム及びストレージ装置のアーカイブ管理方法
CN100407139C (zh) * 2005-03-31 2008-07-30 株式会社日立制作所 文件***和构建增强其功能的方法、操作***、记录装置
US8364638B2 (en) * 2005-09-15 2013-01-29 Ca, Inc. Automated filer technique for use in virtualized appliances and applications
US8577940B2 (en) * 2006-03-20 2013-11-05 Parallels IP Holdings GmbH Managing computer file system using file system trees
JP2008107965A (ja) * 2006-10-24 2008-05-08 Sony Corp 情報処理装置、情報処理方法、プログラム、プログラム記録媒体
US7908476B2 (en) * 2007-01-10 2011-03-15 International Business Machines Corporation Virtualization of file system encryption
US8321667B2 (en) * 2007-02-28 2012-11-27 Microsoft Corporation Security model for common multiplexed transactional logs
US8225329B1 (en) * 2007-09-13 2012-07-17 Juniper Networks, Inc. Tail synchronized FIFO for fast user space packet access
US20110040812A1 (en) * 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System
US8615502B2 (en) * 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US20110055299A1 (en) * 2008-12-18 2011-03-03 Virtual Computer, Inc. Managing User Data in a Layered Virtual Workspace
US8452930B2 (en) * 2009-03-27 2013-05-28 Hitachi, Ltd. Methods and apparatus for backup and restore of thin provisioning volume
US8516217B2 (en) * 2009-03-27 2013-08-20 International Business Machines Corporation Managing a logically partitioned computing system through a virtual file system
US8327111B2 (en) * 2009-03-30 2012-12-04 International Business Machines Corporation Method, system and computer program product for batched virtual memory remapping for efficient garbage collection of large object areas
US20100257218A1 (en) * 2009-04-03 2010-10-07 Konstantin Iliev Vassilev Merging multiple heterogeneous file systems into a single virtual unified file system
US8285682B2 (en) * 2009-05-11 2012-10-09 Novell, Inc Techniques for establishing a file system that exposes a virtual file system for backup operations
JP5360978B2 (ja) * 2009-05-22 2013-12-04 株式会社日立製作所 ファイルサーバ、及びファイルサーバにおけるファイル操作通知方法
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
US9235583B2 (en) * 2009-07-15 2016-01-12 Aten International Co., Ltd. Virtual media with folder-mount function
US8195929B2 (en) * 2009-08-27 2012-06-05 Hewlett-Packard Development Company, L.P. Controlling file systems sharing among two or more operating system
CA2676735C (en) * 2009-09-03 2010-10-19 Ibm Canada Limited - Ibm Canada Limitee Mechanism for making changes to server file system
US20110238715A1 (en) * 2010-03-25 2011-09-29 Hitachi Data Systems Corporation Complex object management through file and directory interface
US8938606B2 (en) * 2010-12-22 2015-01-20 Intel Corporation System, apparatus, and method for segment register read and write regardless of privilege level
CN103392321B (zh) * 2010-12-29 2016-11-02 思杰***有限公司 用于基于策略集成横向部署的wan优化设备的***和方法

Also Published As

Publication number Publication date
CA2824489C (en) 2021-01-05
CN103443789B (zh) 2018-02-02
WO2012098211A1 (en) 2012-07-26
CN103443789A (zh) 2013-12-11
US20130304778A1 (en) 2013-11-14
CA2824489A1 (en) 2012-07-26
KR101925651B1 (ko) 2018-12-05
KR20140014139A (ko) 2014-02-05
RU2013138730A (ru) 2015-02-27
EP2666107B1 (en) 2019-03-06
EP2666107A1 (en) 2013-11-27
RU2598812C2 (ru) 2016-09-27
MX2013008458A (es) 2013-08-12
MY175092A (en) 2020-06-05
JP2014517941A (ja) 2014-07-24

Similar Documents

Publication Publication Date Title
JP5986585B2 (ja) 下位互換性アグリゲートファイルシステムの動作性能の向上方法、及び装置
McKusick et al. The design and implementation of the FreeBSD operating system
Hildebrand An Architectural Overview of QNX.
US8776084B2 (en) Executing an accelerator application program in a hybrid computing environment
JP2006252539A (ja) システムデータインターフェース、関連アーキテクチャ、印刷システムデータインターフェース、および関連印刷システムアーキテクチャ
KR101774975B1 (ko) 가상화를 위한 확장 포인트 선언적 등록
JPH11327919A (ja) オブジェクト指向割込みシステム用の方法およびデバイス
EP1850231B1 (en) Systems and methods of accessing information across distributed computing components
US9043312B2 (en) Identifying symbolic links
Rad et al. ZeroVM: secure distributed processing for big data analytics
KR100725393B1 (ko) 자바 가상 머신에서 바이트 코드의 수행 시간을 줄이는시스템 및 방법
JP4853671B2 (ja) アクセス権限判定システム、アクセス権限判定方法及びアクセス権限判定プログラム
US8056089B2 (en) Shortcut IP communications between software entities in a single operating system
CN104573061B (zh) 一种支持扩展功能的虚拟文件***装置和方法
JP2012048609A (ja) セキュリティポリシ生成プログラム、セキュアosコンピュータシステム
Rodola Psutil documentation
de Bruijn et al. Pipesfs: fast linux i/o in the unix tradition
US11017032B1 (en) Document recovery utilizing serialized data
CN109992707A (zh) 一种数据爬取方法、装置、存储介质及服务器
Engelhardt et al. A/sys Filesystem for the Internet of Things
US20230140827A1 (en) Secure control of packet filter programs by user space processes in virtual machines
KR101345802B1 (ko) 룰 데이터 처리 시스템 및 그 방법
Lebanon et al. Essential Knowledge: Operating Systems
JP2003256219A (ja) 組込み機器におけるプログラム実行方法
Ballesteros et al. Improving the performance of styx based services over high latency links

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150116

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160114

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20160114

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160405

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20160603

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160610

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160712

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160805

R150 Certificate of patent or registration of utility model

Ref document number: 5986585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250