(57)【特許請求の範囲】
【請求項１】
操作されるファイルであるターゲットファイルに対する操作要求を受信し、前記操作要求が、前記ターゲットファイルのファイル名と、ターゲットファイルが記憶されているデータページを識別するためのデータページ識別子とを含むステップと、
前記ファイル名とデータページ識別子とに基づいて前記データページの記憶領域のアドレスに関連するインデックス情報を取得し、前記インデックス情報が、前記操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶されるステップと、
前記インデックス情報に基づいて、前記データページを検索し、且つ前記データページに対する操作を実行するステップと、を含む
ことを特徴とするファイル操作方法。
【請求項２】
前記インデックス情報は、ファイル名及びファイル識別子を含む第１インデックス情報と、データページの記憶領域のアドレスを含む第２インデックス情報とを含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記オンチップメモリの記憶領域から第１データページを選択するステップと、
ファイル名をキー値とする第１ハッシュテーブルを作成するステップと、
前記第１ハッシュテーブルにおける、前記キー値に対応する位置に第１インデックス情報を記憶するステップと、
前記第１ハッシュテーブルを第１データページに記憶するステップと、をさらに含む
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記オンチップメモリの記憶領域から第２データページを選択するステップと、
ファイル識別子及びデータページ識別子をキー値とする第２ハッシュテーブルを作成するステップと、
前記第２ハッシュテーブルにおける、前記キー値に対応する位置に第２インデックス情報を記憶するステップと、
前記第２ハッシュテーブルを第２データページに記憶するステップと、をさらに含む
ことを特徴とする請求項３に記載の方法。
【請求項５】
前記の前記インデックス情報に基づいて、前記データページを検索するステップには、
第１ハッシュテーブルにおける、前記ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得するステップと、
第２ハッシュテーブルにおける、前記ファイル識別子と前記データページ識別子とに対応する位置に記憶された第２インデックス情報を取得するステップと、
第２インデックス情報におけるデータページの記憶領域のアドレスに基づいて、前記データページを検索するステップと、を含む
ことを特徴とする請求項４に記載の方法。
【請求項６】
ターゲットファイルに対する操作要求を受信する前に、
ターゲットファイルに対する作成要求を受信し、前記作成要求がファイル名を含むステップと、
前記ファイル名に対応するファイル識別子を割り当てるステップと、
前記ファイル名及びファイル識別子を含む第１インデックス情報を生成し、且つ第１ハッシュテーブルにおける、前記ファイル名に対応する位置に前記第１インデックス情報を記憶するステップと、をさらに含む
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記ターゲットファイルは実行可能ファイルであり、
前記実行可能ファイルに対する書き込み要求を受信し、且つ前記実行可能ファイルを記憶するためのデータページの数を決定するステップと、
前記数の記憶領域のアドレスが連続的なデータページと前記データページのデータページ識別子とを割り当て、且つ前記データページのうちの最初のデータページにおいて前記実行可能ファイルの記憶領域のサイズを指示する記憶領域パラメータを記憶するステップと、
前記最初のデータページの記憶領域のアドレスを含む第２インデックス情報を生成するステップと、
第２ハッシュテーブルにおける、前記ファイル識別子と最初のデータページのデータページ識別子とに対応する位置に前記第２インデックス情報を記憶するステップと、をさらに含む
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記実行可能ファイルに対するロード要求を受信し、前記ロード要求が、ファイル名と、前記最初のデータページのデータページ識別子とを含むステップと、
第１ハッシュテーブルにおける、前記ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得するステップと、
第２ハッシュテーブルにおける、前記ファイル識別子とデータページ識別子とに対応する位置に記憶された第２インデックス情報を取得し、且つ前記第２インデックス情報における、データページの記憶領域のアドレスに基づいて、前記最初のデータページを検索するステップと、
前記最初のデータページに記憶された前記記憶領域パラメータに基づいて、記憶領域のアドレスが連続的なデータページの数を計算するステップと、
前記数のデータページにおけるデータを読み取って、前記実行可能ファイルをロードするステップと、をさらに含む
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記ターゲットファイルはデータファイルであり、
前記データファイルに対する追加書き込み要求を受信し、前記追加書き込み要求がファイル名を含むステップと、
第１ハッシュテーブルにおける、前記ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得するステップと、
追加書き込み方式でデータファイルに書き込まれたデータを記憶するためのデータページと前記データページのデータページ識別子とを割り当てるステップと、
前記データページの記憶領域のアドレスを含む第２インデックス情報を生成し、且つ第２ハッシュテーブルにおける、前記ファイル識別子とデータページ識別子とに対応する位置に前記第２インデックス情報を記憶するステップと、をさらに含む
ことを特徴とする請求項６に記載の方法。
【請求項１０】
操作されるファイルであるターゲットファイルに対する操作要求を受信し、前記操作要求が、前記ターゲットファイルのファイル名と、ターゲットファイルが記憶されているデータページを識別するためのデータページ識別子とを含む受信ユニットと、
前記ファイル名とデータページ識別子とに基づいて前記データページの記憶領域のアドレスに関連するインデックス情報を取得し、前記インデックス情報が、前記操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶される取得ユニットと、
前記インデックス情報に基づいて、前記データページを検索し、且つ前記データページに対する操作を実行する処理ユニットと、を備える
ことを特徴とするファイル操作装置。
【請求項１１】
前記インデックス情報は、ファイル名及びファイル識別子を含む第１インデックス情報と、データページの記憶領域のアドレスを含む第２インデックス情報とを含むことを特徴とする請求項１０に記載の装置。
【請求項１２】
前記オンチップメモリの記憶領域から第１データページを選択する第１選択ユニットと、
ファイル名をキー値とする第１ハッシュテーブルを作成する第１作成ユニットと、
前記第１ハッシュテーブルにおける、前記キー値に対応する位置に第１インデックス情報を記憶する第１インデックス情報記憶ユニットと、
前記第１ハッシュテーブルを第１データページに記憶する第１ハッシュテーブル記憶ユニットと、をさらに備える
ことを特徴とする請求項１１に記載の装置。
【請求項１３】
前記オンチップメモリの記憶領域から第２データページを選択する第２選択ユニットと、
ファイル識別子及びデータページ識別子をキー値とする第２ハッシュテーブルを作成する第２作成ユニットと、
前記第２ハッシュテーブルにおける、前記キー値に対応する位置に第２インデックス情報を記憶する第２インデックス情報記憶ユニットと、
前記第２ハッシュテーブルを第２データページに記憶する第２ハッシュテーブル記憶ユニットと、をさらに備える
ことを特徴とする請求項１２に記載の装置。
【請求項１４】
前記処理ユニットは、
第１ハッシュテーブルにおける、前記ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得するファイル識別子取得サブユニットと、
第２ハッシュテーブルにおける、前記ファイル識別子と前記データページ識別子とに対応する位置に記憶された第２インデックス情報を取得する第２インデックス情報取得サブユニットと、
第２インデックス情報におけるデータページの記憶領域のアドレスに基づいて、前記データページを検索する検索サブユニットと、を備える
ことを特徴とする請求項１３に記載の装置。
【請求項１５】
ターゲットファイルに対する操作要求を受信する前に、ターゲットファイルに対する作成要求を受信し、前記作成要求がファイル名を含む作成要求受信ユニットと、
前記ファイル名に対応するファイル識別子を割り当てるファイル識別子割り当てユニットと、
前記ファイル名及びファイル識別子を含む第１インデックス情報を生成し、且つ第１ハッシュテーブルにおける、前記ファイル名に対応する位置に前記第１インデックス情報を記憶するインデックス情報生成ユニットと、をさらに備える
ことを特徴とする請求項１４に記載の装置。
【請求項１６】
実行可能ファイルに対する書き込み要求を受信し、且つ前記実行可能ファイルを記憶するためのデータページの数を決定する書き込み要求受信ユニットと、
前記数の記憶領域のアドレスが連続的なデータページと前記データページのデータページ識別子とを割り当て、且つ前記データページのうちの最初のデータページにおいて前記実行可能ファイルの記憶領域のサイズを指示する記憶領域パラメータを記憶する第１割り当てユニットと、
前記最初のデータページの記憶領域のアドレスを含む第２インデックス情報を生成する第２インデックス情報生成ユニットと、
第２ハッシュテーブルにおける、前記ファイル識別子と最初のデータページのデータページ識別子とに対応する位置に前記第２インデックス情報を記憶する第２インデックス情報記憶ユニットと、をさらに備える
ことを特徴とする請求項１５に記載の装置。
【請求項１７】
前記実行可能ファイルに対するロード要求を受信し、前記ロード要求が、ファイル名と、前記最初のデータページのデータページ識別子とを含むロード要求受信ユニットと、
第１ハッシュテーブルにおける、前記ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得する第１ファイル識別子取得ユニットと、
第２ハッシュテーブルにおける、前記ファイル識別子とデータページ識別子とに対応する位置に記憶された第２インデックス情報を取得し、且つ前記第２インデックス情報におけるデータページの記憶領域のアドレスに基づいて、前記最初のデータページを検索するデータページ検索ユニットと、
前記最初のデータページに記憶された前記記憶領域パラメータに基づいて、記憶領域のアドレスが連続的なデータページの数を計算する計算ユニットと、
前記数のデータページにおけるデータを読み取って、前記実行可能ファイルをロードする読み取りユニットと、をさらに備える
ことを特徴とする請求項１６に記載の装置。
【請求項１８】
データファイルに対する追加書き込み要求を受信し、前記追加書き込み要求がファイル名を含む追加書き込み要求受信ユニットと、
第１ハッシュテーブルにおける、前記ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得する第２ファイル識別子取得ユニットと、
追加書き込み方式でデータファイルに書き込まれたデータを記憶するためのデータページと前記データページのデータページ識別子とを割り当てる第２割り当てユニットと、
前記データページの記憶領域のアドレスを含む第２インデックス情報を生成し、第２ハッシュテーブルにおける、前記ファイル識別子とデータページ識別子とに対応する位置に前記第２インデックス情報を記憶する第２インデックス情報処理ユニットと、をさらに備える
ことを特徴とする請求項１５に記載の装置。
【請求項１９】
プロセッサと、
メモリと、を備えており、
前記メモリに、前記プロセッサが実行可能なコンピュータ可読命令が記憶されて、前記コンピュータ可読命令が実行される場合、前記プロセッサがファイル操作方法を実行し、  前記方法は、
操作されるファイルであるターゲットファイルに対する操作要求を受信し、前記操作要求が、前記ターゲットファイルのファイル名と、ターゲットファイルが記憶されているデータページを識別するためのデータページ識別子とを含むステップと、
前記ファイル名とデータページ識別子とに基づいて前記データページの記憶領域のアドレスに関連するインデックス情報を取得し、前記インデックス情報が、前記操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶されるステップと、
前記インデックス情報に基づいて、前記データページを検索し、且つ前記データページに対する操作を実行するステップと、を含む
ことを特徴とする機器。
【請求項２０】
不揮発性コンピュータ記憶媒体であって、前記コンピュータ記憶媒体にプロセッサが実行可能なコンピュータ可読命令が記憶され、前記コンピュータ可読命令がプロセッサにより実行される場合、前記プロセッサがファイル操作方法を実行し、前記方法は、
操作されるファイルであるターゲットファイルに対する操作要求を受信し、前記操作要求が、前記ターゲットファイルのファイル名と、ターゲットファイルが記憶されているデータページを識別するためのデータページ識別子とを含むステップと、
前記ファイル名とデータページ識別子とに基づいて前記データページの記憶領域のアドレスに関連するインデックス情報を取得し、前記インデックス情報が、前記操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶されるステップと、
前記インデックス情報に基づいて、前記データページを検索し、且つ前記データページに対する操作を実行するステップと、を含む
ことを特徴とする不揮発性コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本願は２０１５年１２月２５日に提出した、出願番号が２０１５１０９９３９９９．９である中国特許出願に基づく優先権を主張し、当該出願の全文を引用により本願に組み込む。
【０００２】
［技術分野］
本願はコンピュータ分野に関し、具体的にファイルシステムの分野に関し、特にファイル操作方法及び装置に関する。
【背景技術】
【０００３】
組み込み機器では、組み込みファイルシステムによってファイルに対する操作を実行する。従来の組み込みファイルシステムでは、通常にログ構造でファイルを記憶し、つまりインデックス及びファイルデータを同時にファイルに記憶し、且つ、ファイルのデータページ同士が記憶領域において連続的でない。ファイルを操作する際に、通常、インデックスによってデータページを検索し、データページを単位として操作する方式が採用されている。
【０００４】
しかしながら、上記方式でファイルを操作する場合、一方では、インデックスの占有するメモリ空間が大きいため、ファイルを操作する過程においてオーバーヘッドが大きく、更に組み込みシステム全体のシステムオーバーヘッドを増加させる。他方では、ファイルのデータページ同士が記憶領域において連続的でないため、サードパーティのアプリケーションの実行可能ファイルに対する動的ロードを実現することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願は、上記背景技術に記載の技術的問題を解決するために、ファイル操作方法及び装置を提供する。
【課題を解決するための手段】
【０００６】
第１形態では、本願は、ファイル操作方法を提供し、この方法は、ターゲットファイルに対する操作要求を受信し、前記操作要求が、ファイル名と、ターゲットファイルを記憶するためのデータページのデータページ識別子とを含むステップと、前記ファイル名とデータページ識別子とに基づいて前記データページの記憶領域のアドレスに関連するインデックス情報を取得し、前記インデックス情報が、前記操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶されるステップと、前記インデックス情報に基づいて、前記データページを検索し、且つ前記データページに対する操作を実行するステップと、を含む。
【０００７】
第２形態では、本願は、ファイル操作装置を提供し、この装置は、ターゲットファイルに対する操作要求を受信し、前記操作要求が、ファイル名と、ターゲットファイルを記憶するためのデータページのデータページ識別子とを含む受信ユニットと、前記ファイル名とデータページ識別子とに基づいて前記データページの記憶領域のアドレスに関連するインデックス情報を取得し、前記インデックス情報が、前記操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶される取得ユニットと、前記インデックス情報に基づいて、前記データページを検索し、且つ前記データページに対する操作を実行する処理ユニットと、を備える。
【発明の効果】
【０００８】
本願に係るファイル操作方法及び装置は、ターゲットファイルに対する操作要求を受信し、ファイル名とデータページ識別子とに基づいて、データページの記憶領域のアドレスに関連するインデックス情報を取得し、インデックス情報が操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶され、インデックス情報に基づいて、データページを検索し、且つデータページに対する操作を実行することによって、オンチップメモリに記憶されたインデックスによってファイルを操作することを実現し、それによりインデックスにアクセスするメモリのオーバーヘッドを０にさせさせるとともに、メモリリソースを節約し、更にシステムのオーバーヘッドを削減させる。
【０００９】
以下の図面を参照しながら行った非限定的な実施例についての詳細な説明に基づいて、本願の他の特徴、目的や利点はより明瞭になる。
【図面の簡単な説明】
【００１０】
【図１】本願を適用できる例示的なシステムアーキテクチャー図である。
【図２】本願に係る方法の一実施例のフローチャートを示す。
【図３】１次インデックスを記憶するデータページの構造模式図を示す。
【図４】２次インデックスを記憶するデータページの構造模式図を示す。
【図５】２段インデックスによってデータページを検索する論理図である。
【図６】本願に係るファイル操作方法の別の実施例のフローチャートを示す。
【図７】実行可能ファイルのデータページのレイアウトを示す。
【図８】データファイルのデータページのレイアウトを示す。
【図９】ファイルを作成する例示的なフローチャートである。
【図１０】データをデータページに書き込む例示的なフローチャートである。
【図１１】本願に係るファイル操作装置の一実施例の構造模式図を示す。
【図１２】本願の実施例を実現するための端末装置又はサーバに適用されるコンピュータシステムの構造模式図である。
【発明を実施するための形態】
【００１１】
以下、図面及び実施例を参照しながら本発明をより詳細に説明する。ここで説明する具体的な実施例は、かかる発明を説明するものに過ぎず、当該発明を限定するものではないと理解すべきである。ただし、説明の便宜上、図面に発明に関連する部分のみが示されている。
【００１２】
なお、衝突しない場合、本願の実施例及び実施例の特徴を相互に組み合せてもよい。以下、図面及び実施例を参照しながら本願を詳細に説明する。
【００１３】
図１は本願のファイル操作方法及び装置を適用できる実施例の例示的なシステムアーキテクチャー１００を示す。
【００１４】
図１に示されるように、システムアーキテクチャー１００は、端末装置１０１、１０２、１０３、ネットワーク１０４及びサーバ１０５を備えてもい。ネットワーク１０４は端末装置１０１、１０２、１０３とサーバ１０５の間に通信リンクを提供する媒体に用いられている。ネットワーク１０４は様々な接続タイプ、例えば有線、無線通信リンク又は光ファイバーケーブル等を含んでもよい。
【００１５】
ユーザは端末装置１０１、１０２、１０３を用いてネットワーク１０４を介してサーバ１０５とインタラクションして、それによりメッセージなどを送受信することができる。端末装置１０１、１０２、１０３に、様々な通信アプリケーションがインストールされてもよい。
【００１６】
端末装置１０１、１０２、１０３はディスプレーを有し且つネットワーク通信をサポートする各種の電子機器であってもよく、スマートフォン、タブレットＰＣ、ｅ−Ｂｏｏｋリーダー、ＭＰ３プレーヤー (Moving Picture Experts Group Audio Layer III、ムービング・ピクチャー・エクスパーツ・グループオーディオレイヤーIII)、ＭＰ４プレーヤー(Moving Picture Experts Group Audio LayerＩＶ、ムービング・ピクチャー・エクスパーツ・グループオーディオレイヤーＩＶ)、ラップトップ型コンピュータ及びデスクトップコンピュータなどを含むが、それらに限定されるものではない。
【００１７】
サーバ１０５は各種のサービスを提供するサーバ、例えば端末装置１０１、１０２、１０３におけるアプリケーションにファイル記憶サービスを提供するクラウドサーバであってもよい。サーバは受信されたファイル操作要求を処理することができ、処理結果（例えば読みだされたファイルデータ）を端末装置にフィードバックする。
【００１８】
なお、図１における端末装置、ネットワーク及びサーバの数は例示的なものに過ぎない。必要に応じて、端末装置、ネットワーク及びサーバの数が任意であってもよい。
【００１９】
本願に係るファイル操作方法の一実施例のプロセス２００を示す図２を参照する。なお、本願の実施例に係るファイル操作方法は一般的に端末装置１０１、１０２、１０３又は図１におけるサーバ１０５で実行され、それに対応して、ファイル操作装置は一般的に端末装置１０１、１０２、１０３又はサーバ１０５に設置される。当該方法はステップ２０１、及びステップ２０２を含む。
【００２０】
ステップ２０１：ターゲットファイルに対する操作要求を受信する。
【００２１】
本実施例では、ファイル操作方法が実行される電子機器（例えば図１に示される端末装置又はサーバ）は有線接続方式又は無線接続方式でターゲットファイルに対する操作要求を受信する。操作要求は、ファイル名、及びターゲットファイルを記憶するためのデータページのデータページ識別子を含む。本実施例では、ターゲットファイルに対する操作要求のタイプは書き込み操作、読み取り操作、更新要求であってもよい。ターゲットファイルはデータページを単位として記憶されてもよく、それに対応して、ファイルに対する操作もデータページを単位として行われる。例えば、ターゲットファイルがフラッシュ（ｆｌａｓｈ）メモリに記憶される場合、１つのターゲットファイルのデータは複数のデータページ、即ちフラッシュページ（ｆｌａｓｈ  ｐａｇｅ）に記憶されることができる。つまり、ターゲットファイルに対する操作はターゲットファイルを記憶するデータページに対して行われる。
【００２２】
ステップ２０２：ファイル名とデータページ識別子とに基づいて、データページの記憶領域のアドレスに関連するインデックス情報を取得する。
【００２３】
本実施例では、インデックス情報は操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶される。例えば、データページに対する操作を実行するプロセッサがＭＣＵ（（Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ、マイクロコントローラ）である場合、インデックス情報はＭＣＵのオンチップメモリ（オンチップｆｌａｓｈとも呼ばれる）に記憶されることができる。本実施例では、インデックス情報はデータページの記憶領域のアドレスに関連する情報であってもよく、例えば、インデックス情報においてデータページの物理アドレスが記録される。
【００２４】
本願におけるインデックスの構造を説明する前に、先ず１次インデックスだけでフラッシュメモリにインデックス（ファイルインデックスとも呼ばれる）を直接保存する場合存在する問題を述べます。ファイルが占有する記憶領域のサイズが異なり、占有するデータページの数も異なるので、ファイル名とデータページとの対応関係を直接記憶する場合、インデックスが占有する記憶領域のサイズが一定ではない。そうすると、インデックスに記憶ファイルのデータページを追加したり更新したりする場合、インデックス全体を変更してしまう。一方、インデックスが占有する記憶領域が非常に大きく、データページを増減又は更新するには、直接フラッシュメモリにおいて変更できず、メモリにコピーして変更してフラッシュメモリに書き込むしかないため、大量のメモリ消費を引き起こす。
【００２５】
本実施例のいくつかの選択可能な実施形態では、インデックス情報は、ファイル名及びファイル識別子を含む第１インデックス情報と、データページの記憶領域のアドレスを含む第２インデックス情報とを含む。
【００２６】
本実施例では、インデックスの構造は２段インデックスであってもよく、１次（primary index）のインデックスはファイル名からファイル識別子へのインデックス、即ちファイル名によってファイル識別子を検索するインデックスである。２次（secondary index）のインデックスはファイル名識別子とデータページ識別子からデータページへのインデックス、即ちファイル名識別子とデータページ識別子とによってデータページを検索するインデックスである。それに対応して、２段インデックス構造に対して、第１インデックス情報、第２インデックス情報を設定する。第１インデックス情報はファイル名とファイル識別子とを含んでもよく、第２インデックス情報にデータページの記憶領域のアドレスであるデータページの物理アドレスが含まれてもよい。
【００２７】
本実施例のいくつかの選択可能な実施形態では、さらに、オンチップメモリの記憶領域から第１データページを選択するステップと、ファイル名をキー値とする第１ハッシュテーブルを作成するステップと、第１ハッシュテーブルにおけるキー値に対応する位置に第１インデックス情報を記憶するステップと、第１ハッシュテーブルを第１データページに記憶するステップと、を含む。
【００２８】
本実施例では、オンチップメモリから１次インデックスを記憶するためのデータページ即ち第１データページを選択する。次に、ターゲットファイルのファイル名をキー値とする第１ハッシュテーブルを作成し、第１ハッシュテーブルにおける、キー値に対応する位置であるスロット（ｓｌｏｔ）に第１インデックス情報を記憶する。次に、第１ハッシュテーブルを第１データページに記憶する。本実施例では、１次インデックスを記憶する第１データページは複数であってもよく、異なる第１データページはデータページ識別子によって区別されることができ、第１データページ同士は記憶領域において連続的でなくてもよい。
【００２９】
本実施例のいくつかの選択可能な実施形態では、さらに、オンチップメモリの記憶領域から第２データページを選択するステップと、ファイル識別子及びデータページ識別子をキー値とする第２ハッシュテーブルを作成するステップと、第２ハッシュテーブルにおける、キー値に対応する位置に第２インデックス情報を記憶するステップと、第２ハッシュテーブルを第２データページに記憶するステップと、を含む。
【００３０】
本実施例では、オンチップメモリから２次インデックスを記憶するためのデータページ、即ち第２データページを選択する。次に、ファイル識別子及びデータページ識別子をキー値とする第２ハッシュテーブルを作成し、第２ハッシュテーブルにおける、キー値に対応する位置であるスロットに第２インデックス情報を記憶し、次に、第２ハッシュテーブルを第２データページに記憶することができる。本実施例では、２次インデックスを記憶する第２データページは複数であってもよく、異なる第２データページはデータページ識別子によって区別されることができ、第２データページ同士は記憶領域において連続的でなくてもよい。
【００３１】
１次インデックスを記憶するデータページの構造模式図を示す図３を参照する。図３では、タイプ番号（ｍａｇｉｃ  ｎｕｍｂｅｒ）はファイルのタイプを示す。ファイル識別子（ｆｉｌｅｉｄ）は、１次インデックスを記憶するデータページが所属するファイルを示し、当該ファイルはデータファイル（普通ファイルとも呼ばれる）であり、ファイル識別子０をファイル識別子としてもよい。データページ識別子（ｐａｇｅｉｄ）は、ファイルの何番目のデータページかを示す。バージョン番号（ｖｅｒｓｉｏｎ）はデータページに記憶されたデータのバージョンを示す。スロットに連結リストを記憶できる第１ハッシュテーブルのキー値はファイル名である。連結リストにおける各ノードは１つの記憶ノード（ｈａｓｈ  ｎｏｄｅ）に対応することができる。記憶ノードにはファイル名とファイル識別子とを含む第１インデックス情報が記憶される。カウントパラメータ（ｃｏｕｎｔ）は使用済みの記憶ノードの数を示す。
【００３２】
２次インデックスを記憶するデータページの構造模式図を示す図４を参照する。図４では、タイプ番号（ｍａｇｉｃ  ｎｕｍｂｅｒ）はファイルのタイプを示す。ファイル識別子（ｆｉｌｅｉｄ）は、２次インデックスを記憶するデータページが所属するファイルを示し、当該ファイルはデータファイルであってもよく、ファイル識別子１をファイル識別子としてもよい。データページ識別子（ｐａｇｅｉｄ）は当該ファイルの何番目のデータページかを示す。バージョン番号（ｖｅｒｓｉｏｎ）はデータページに記憶されたデータのバージョン番号を示す。スロットに記憶ノード（ｈａｓｈ  ｎｏｄｅ）を記憶できる第２ハッシュテーブルのキー値はファイル識別子とデータページ識別子である。記憶ノードにデータページの物理アドレスを含む第２インデックス情報が記憶される。カウントパラメータ（ｃｏｕｎｔ）は使用済みの記憶ノードの数を示す。
【００３３】
本実施例では、１次インデックス、２次インデックスを第１データページ、第２データページに記憶する場合、１次インデックス、２次インデックスに関連するデータ構造の総和を第１インデックステーブル、第２インデックステーブルと呼んでもよい。第１インデックス情報、第２インデックス情報が記憶された記憶ノードの占有する記憶領域の大きさは固定されてもよい。２段インデックスが複数のデータページを含む場合に、複数のインデックステーブルでそれぞれマッピングし、つまり記憶領域を大きく占有する大インデックステーブルを、複数の記憶領域を小さく占有する小インデックステーブルに分けることができ、小インデックステーブルを連続データページに記憶する必要がない。このように、データページを増減又は更新する際に、インデックスを記憶した単一のデータページに行うように制限され、それによりインデックス保守過程で大量のメモリを消費するという問題を回避する。
【００３４】
ステップ２０３：インデックス情報に基づいて、データページを検索し、且つデータページに対する操作を実行する。
【００３５】
本実施例では、インデックス情報におけるデータページの物理アドレスに基づいて、データページを検索し、且つデータページに対する操作を実行することができ、例えば、データをデータページに書き込み、データページからデータを読み取る。
【００３６】
本実施例のいくつかの選択可能な実施形態では、インデックス情報に基づいて、データページを検索するステップには、第１ハッシュテーブルにおける、ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得するステップと、第２ハッシュテーブルにおける、ファイル識別子とデータページ識別子とに対応する位置に記憶された第２インデックス情報を取得するステップと、第２インデックス情報におけるデータページの記憶領域のアドレスに基づいて、データページを検索するステップと、を含む。
【００３７】
以下、２段インデックスを例として、データページの検索過程を説明する。２段インデックスによってデータページを検索する論理図を示す図５を参照する。
【００３８】
第１ファイルに対する操作要求が第１ファイルの第１ファイル名（ｆｉｌｅｎａｍｅ１）と第１データページ識別子（ｐａｇｅｉｄ１）を含み、第２ファイルに対する操作要求が第２ファイルの第２ファイル名（ｆｉｌｅｎａｍｅ２）及び第２データページ識別子（ｐａｇｅｉｄ２）、第３データページ識別子（ｐａｇｅｉｄ３）を含むことを仮定する。第１データページ識別子は２５５である。第２データページ識別子、第３データページ識別子は１、２である。次に、第１ファイル名（ｆｉｌｅｎａｍｅ１）及び第２ファイル名（ｆｉｌｅｎａｍｅ２）をキー値としてハッシュ値計算してハッシュ値を取得することで、それぞれ第１ハッシュテーブルにおける、当該ハッシュ値に対応するスロットに記憶された連結リストを取得する。連結リストにおける第１ファイル名、第２ファイル名に対応する記憶ノード１、記憶ノード２をそれぞれ決定する。記憶ノード１は第１ファイル名（ｆｉｌｅｎａｍｅ１）と第１ファイルのファイル識別子（ｆｉｌｅｉｄ１）とを含む第１インデックス情報を記憶する。記憶ノード２は第２ファイル名（ｆｉｌｅｎａｍｅ２）と第２ファイルのファイル識別子（ｆｉｌｅｉｄ２）とを含む第２インデックス情報を記憶する。それにより第１ファイルのファイル識別子（ｆｉｌｅｉｄ１）及び第２ファイルのファイル識別子（ｆｉｌｅｉｄ２）を取得した。第１ファイルのファイル識別子（ｆｉｌｅｉｄ１）及び第１データページ識別子（ｐａｇｅｉｄ１）をキー値としてハッシュ値計算してハッシュ値を取得して、第２ハッシュテーブルにおける、当該ハッシュ値に対応するスロットにおいて記憶ノード５を検索することができる。記憶ノード５は第１データページ識別子（ｐａｇｅｉｄ１）に対応するデータページの物理アドレスを含む第２インデックス情報を記憶することで、第１ファイルにおけるデータページを検索する。第２ファイルのファイル識別子（ｆｉｌｅｉｄ２）を、それぞれ第２データページ識別子（ｐａｇｅｉｄ２）、第３データページ識別子（ｐａｇｅｉｄ３）と一緒にキー値としてハッシュ値計算してハッシュ値を取得して、第２ハッシュテーブルにおける、当該ハッシュ値に対応するスロットにおいて記憶ノード３、記憶ノード４を検索することができる。記憶ノード３は第２データページ識別子（ｐａｇｅｉｄ２）に対応するデータページの物理アドレスを含む第２インデックス情報を記憶することで、第２ファイルにおける第２データページ識別子（ｐａｇｅｉｄ２）に対応するデータページを検索する。記憶ノード４は第３データページ識別子（ｐａｇｅｉｄ３）に対応するデータページの物理アドレスを含む第２インデックス情報を記憶することで、第２ファイルにおける第３データページ識別子（ｐａｇｅｉｄ３）に対応するデータページを検索する。
【００３９】
以下、本実施例におけるインデックスと従来技術との相違点を説明する。従来の組み込みファイルシステムでは、インデックスが占有するメモリ空間は大きい。組み込みファイルシステムのｙａｆｆｓファイルシステムを例として、ｙａｆｆｓファイルシステムに３２個のファイルが記憶され、データページのサイズが１ＫＢであることを仮定すると、空間複雑度が最も悪い場合、インデックスが占有するメモリ空間は３ＫＢより大きい。本実施例では、インデックス構造がオンチップメモリにおけるデータページに直接記憶され、プロセッサがファイルシステムを介せずにオンチップメモリのデータページに直接アクセスできるため、リソースが限られた組み込みシステムでは、インデックスにアクセスするためのメモリのオーバーヘッドが０に相当し、且つメモリリソースを節約し、更に組み込みシステム全体のシステムオーバーヘッドを減少させる。
【００４０】
本願に係るファイル操作方法の別の実施例のプロセス６００を示す図６を参照する。なお、本願の実施例に係るファイル操作方法は、一般的に端末装置１０１、１０２、１０３又は図１におけるサーバ１０５で実行され、当該方法は以下のステップを含む。
【００４１】
ステップ６０１：ターゲットファイルを作成する。
【００４２】
本実施例では、ファイル名に対応するファイル識別子を割り当て、ファイル名とファイル識別子とを含む第１インデックス情報を生成し、第１ハッシュテーブルにおける、ファイル名に対応する位置に第１インデックス情報を記憶することで、ターゲットファイルを作成することができる。本実施例では、ターゲットファイルを作成する際に、先ずファイルに１つのファイル識別子を割り当て、次に、ファイル名とファイル識別子とを１次インデックスが記憶されたデータページに保存する。例えば、先ずファイル名をハッシュ値計算してハッシュ値を取得して、次に、１次インデックスが記憶されたデータページでのハッシュテーブルにおける、ハッシュ値に対応するスロットの連結リストにおいてアイドル記憶ノードが存在するか否かを検索する。存在する場合、ファイル名とファイル識別子を含む第１インデックス情報を当該記憶ノードに記憶する。存在しない場合、連結リストに記憶ノードを追加し、追加した記憶ノードにファイル名とファイル識別子とを含む第１インデックス情報を記憶する。
【００４３】
実行可能ファイルのデータページのレイアウトを示す図７を参照する。
【００４４】
本実施例では、実行可能ファイルは複数の連続的なデータページで構成される記憶領域に記憶されてもよい。１番目のデータページ即ちデータページ識別子が０のデータページに、例えばタイプ番号（ｍａｇｉｃ  ｎｕｍｂｅｒ）、ファイル識別子（ｆｉｌｅｉｄ）、データページ識別子（ｐａｇｅｉｄ）、ファイル名（ｎａｍｅ）、記憶領域パラメータ（ｓｉｚｅ）を含んでもよいデータ構造を記憶する。タイプ番号の数値はデータページが所属するファイルのタイプが実行可能ファイルであることを示す。ファイル識別子は実行可能ファイルのファイル識別子を示し、データページ識別子はデータページ識別子であり、ファイル名は実行可能ファイルのファイル名であり、ファイルサイズパラメータは実行可能ファイルのサイズを示す。データ領域（ｄａｔａ  ａｒｅａ）は実行可能ファイルのデータを記憶することに用いられる。
【００４５】
データファイルのデータページのレイアウトを示す図８を参照する。
【００４６】
本実施例では、データファイルは複数のデータページを含み、１番目のデータページをファイルヘッダとして、ファイルの属性情報を保存し、ほかのデータページがファイルのデータを記憶する。データファイルの各データページは、例えばタイプ番号（ｍａｇｉｃ  ｎｕｍｂｅｒ）、ファイル識別子（ｆｉｌｅｉｄ）、データページ識別子（ｐａｇｅｉｄ）、バージョン番号（ｖｅｒｓｉｏｎ）を含む一つのデータ構造（ｔａｇデータ構造とも呼ばれる）を含む。タイプ番号はデータページが所属するファイルのタイプがデータファイルであることを示し、ファイル識別子はグローバル一意のファイル識別子であり、データページ識別子は現在のデータページのファイルでの位置を示し、バージョン番号はデータページに記憶されたデータのバージョンであり、同じファイル識別子とデータページ識別子を有するデータページを区別することに用いられ、バージョン番号が大きいことは、データページにおけるデータがより新たなデータであることを示す。初めてデータをデータページに書き込む場合、バージョン番号が１に設定されてもよい。長さパラメータ（ｌｅｎｇｔｈ）はデータページに保存された有効データの長さを示し、データ領域（ｄａｔａ  ａｒｅａ）はデータファイルのデータを記憶することに用いられる。本実施例では、同じファイルに属するデータページをデータページ識別子の昇順でソートし、次に、同じデータページ識別子を有するデータページのバージョン番号を比較し、バージョン番号がより小さなページを除去して、このように、ファイルのすべてのデータを取得することができる。
【００４７】
ファイルを作成する例示的なフローチャートを示す。ステップ９００１〜ステップ９００５を含む図９を参照する。
【００４８】
ステップ９００１：１つの使用可能なファイル識別子を割り当てる。ファイル識別子はグローバル一意のファイル識別子である。
【００４９】
ステップ９００２：アイドル記憶ノードのインデックステーブルが存在するか否かを判断する。１次インデックスが第１データページに記憶される場合、１次インデックスに関連するデータ構造の総和を第１インデックステーブルと呼ぶことができる。上記インデックステーブルは第１インデックステーブルである。インデックステーブルにおいてアイドル記憶ノードが存在するか否かを判断する。存在する場合、ステップ９００３を実行し、存在しない場合、ステップ９００４を実行する。
【００５０】
ステップ９００３：インデックステーブルにおいてアイドル記憶ノードにファイル名および対応するファイル識別子を記憶する。
【００５１】
ステップ９００４：１つのインデックステーブルを追加してファイル名および対応するファイル識別子を１つの記憶ノードに記憶する。
【００５２】
ステップ９００５：新たなデータページに割り当ててファイルのデータをデータページに書き込む。
【００５３】
ステップ６０２：ターゲットファイルに対する操作要求を受信する。
【００５４】
本実施例では、操作要求は、ファイル名、及びターゲットファイルを記憶するためのデータページのデータページ識別子を含む。本実施例では、ターゲットファイルに対する操作要求のタイプは、書き込み操作、読み取り操作であってもよい。ターゲットファイルはデータページを単位として記憶され、それに対応して、ファイルに対する操作もデータページを単位として実行される。例えば、ターゲットファイルをフラッシュ（ｆｌａｓｈ）メモリに記憶される場合、１つのターゲットファイルのデータを複数のデータページ、即ちフラッシュページ（ｆｌａｓｈ  ｐａｇｅ）に記憶されることができる。つまり、ターゲットファイルに対する操作はターゲットファイルを記憶するデータページに対して行われる。
【００５５】
ステップ６０３：ファイル名とデータページ識別子とに基づいて、データページの記憶領域のアドレスに関連するインデックス情報を取得する。
【００５６】
本実施例では、インデックス情報は操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶される。本実施例では、インデックス情報は、データページの記憶領域のアドレスに関連する情報であってもよく、例えば、インデックス情報にデータページの物理アドレスを記録することで、インデックス情報によってデータページを検索する。本実施例では、インデックス情報がオンチップメモリに記憶されることができる。例えば、データページに対する操作を実行するプロセッサがＭＣＵである場合、インデックス情報がＭＣＵのオンチップメモリ（オンチップｆｌａｓｈとも呼ばれる）に記憶されることができる。
【００５７】
本実施例では、インデックスの構造は２段インデックスであってもよく、１次インデックスはファイル名からファイル識別子へのインデックス、即ちファイル名によってファイル識別子を検索するインデックスである。２次インデックスはファイル名識別子及びデータページ識別子からデータページへのインデックス、即ちファイル名識別子とデータページ識別子とによってデータページを検索するインデックスである。それに対応して、２段インデックス構造に対して、第１インデックス情報、第２インデックス情報を設定する。第１インデックス情報はファイル名とファイル識別子とを含み、第２インデックス情報はデータページの記憶領域のアドレスであるデータページの物理アドレスを含んでもよい。
【００５８】
ステップ６０４：インデックス情報に基づいて、データページを検索し、且つ検索したデータページに対して操作タイプ識別子に対応する操作を実行する。
【００５９】
本実施例では、ターゲットファイルが実行可能ファイルである場合、実行可能ファイルを記憶するためのデータページの数を決定し、上記数の記憶領域のアドレスが連続的なデータページとデータページのデータページ識別子とを割り当て、且つデータページのうちの最初のデータページにおいて実行可能ファイルの記憶領域のサイズを指示する記憶領域パラメータを記憶し、最初のデータページの記憶領域のアドレスを含む第２インデックス情報を生成し、第２ハッシュテーブルにおける、ファイル識別子と最初のデータページのデータページ識別子とに対応する位置に第２インデックス情報を記憶することで、実行可能ファイルに対する書き込み要求を処理する。
【００６０】
本実施例では、実行可能ファイルを記憶する前に、先ず実行可能ファイルを記憶するための記憶領域のアドレスが連続的なデータページを割り当てることができる。次に、アドレスが連続的なデータページに実行可能ファイルのデータを書き込むとともに、実行可能ファイルのファイル名を１次インデックスに記憶し、最初のデータページの物理アドレスを２次インデックスに記憶することができる。本実施例では、実行可能ファイルを記憶する最初のデータページに実行可能ファイルのファイル名及びファイルサイズを書き込むことができる。
【００６１】
本実施例では、ターゲットファイルが実行可能ファイルである場合、第１ハッシュテーブルにおける、ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得し、第２ハッシュテーブルにおける、ファイル識別子とデータページ識別子とに対応する位置に記憶された第２インデックス情報を取得し、且つ第２インデックス情報におけるデータページの記憶領域のアドレスに基づいて、最初のデータページを検索し、最初のデータページに記憶された記憶領域パラメータに基づいて、記憶領域のアドレスが連続的なデータページの数を計算し、上記数のデータページにおけるデータを読み取って、実行可能ファイルをロードすることで、実行可能ファイルに対するロード要求を処理し、ここで、ロード要求がファイル名と、最初のデータページのデータページ識別子とを含む。
【００６２】
本実施例では、実行可能ファイルをロードする時に、実行可能ファイルのファイル識別子及び最初のデータページのデータページ識別子（即ち０）に基づいて、２段インデックスによって最初のデータページを検索することができる。次に、最初のデータページに記憶された記憶領域パラメータ（即ちｓｉｚｅフィールド）に基づいて、記憶領域のアドレスが連続的なデータページの数、即ち実行可能ファイルのデータページの数を計算し、次に上記記憶領域のアドレスが連続的なデータページを読み取ることで、実行可能ファイルに対する動的ロードを実現する。
【００６３】
本実施例では、データファイルの書き込み操作は、データページにおける既存のデータの上書き、及び新たなデータの追加書き込みの２種類に分けられる。本実施例では、データファイルに対する追加書き込み要求を受信し、第１ハッシュテーブルにおける、ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得し、追加書き込み方式でデータファイルに書き込まれたデータを記憶するためのデータページとデータページのデータページ識別子とを割り当て、データページの記憶領域のアドレスを含む第２インデックス情報を生成し、第２ハッシュテーブルにおける、ファイル識別子とデータページ識別子とに対応する位置に第２インデックス情報を記憶することで、データファイルに対する追加書き込み要求を処理し、ここで、追加書き込み要求がファイル名を含む。本実施例では、データファイルに対する追加書き込み要求を処理し、即ち新たなデータを追加して書き込む時に、データを新たに割り当てられたデータページに書き込み、次に、バージョン番号を１に設定する必要がある。また、追加書き込みが完了した後に、２次インデックスに、記憶ノードを追加し、記憶ノードにおいてファイル識別子と新たに割り当てられたデータページのデータページ識別子とを含む第２記憶情報を記憶する。
【００６４】
本実施例では、データファイルに対する更新要求を処理し、即ちデータページにおける既存のデータを上書きする時に、先ずデータページを検索し、次に更新データを含む１ページのデータをデータページに書き込むとともに、データページに対応するバージョン番号を増加する。
【００６５】
データをデータページに書き込む例示的なフローチャートを示す図１０を参照する。ステップ１００１〜ステップ１００５を含む。
【００６６】
ステップ１００１：ファイル書き込み位置に基づいてデータページ識別子を計算し，ファイル識別子とデータページ識別子とに対応するデータページを検索する。即ち書き込み位置に基づいてデータページ識別子を計算し、ファイル名とデータページ識別子とに対応するデータページを検索する。書き込み位置は書き込もうとするデータのファイル全体での位置を示し、書き込み位置及びファイルのサイズに基づいて、書き込もうとするデータの所在するデータページのデータページ識別子を決定して計算することができる。次に、２次インデックスによってファイル識別子とデータページ識別子とに対応するデータページを検索する。
【００６７】
ステップ１００２、当該データページが検索されたか否かを判断する。検索された場合、ステップ１００３を実行し、検索されいない場合、ステップ１００４を実行する。
【００６８】
ステップ１００３：データページにおけるファイルデータを変更し、バージョン番号に１を加え、新たなデータページに記憶する。
【００６９】
ステップ１００４：データを新たに割り当てられたデータページに記憶し、算出したデータページ識別子を記憶する。即ち新たなデータページを割り当て、書き込もうとするデータを新たに割り当てられたデータページに記憶し、新たなデータページに算出したデータページ識別子を記憶する。
【００７０】
ステップ１００５：２次インデックスに新たに割り当てられたデータページのファイル識別子とデータページ識別子とを追加する。
【００７１】
図６からわかるように、図２に対応する実施例との相違点は、本実施例におけるファイル操作方法のプロセス６００がターゲットファイルを作成するステップ６０１を強調することである。ステップ６０１はアドレスが連続的なデータページを予め割り当てることで実行可能ファイルを記憶することで、実行可能ファイルのバイナリコードをアドレスが連続的なデータページに記憶されることができる。それにより、実行可能ファイルをロードする必要がある場合、アドレスが連続的なデータページから実行可能ファイルのバイナリコードを読み取ることで、サードパーティのアプリケーションの実行可能ファイルに対する動的ロードを実現することができる。
【００７２】
本願では、上記実施例で説明されたファイルに対する操作方式をログ構造のファイルシステムによるファイル管理方式と組み合わせ、組み込みファイルシステムを構築することができる。つまりオンチップメモリにおいて２段インデックス構造を構築し、次に、２段インデックス構造をログ構造のファイルシステムによるファイル管理方式と組み合わせ、オンチップメモリにおいて、組み込みファイルシステムを構築することができる。
【００７３】
以下、上記構築した組み込みファイルシステムと従来技術との相違点を説明する。
【００７４】
従来の組み込みファイルシステムでは、データページの記憶と管理はログ構造を用い、ファイルをアドレスが連続的な記憶領域に記憶できず、即ちファイルのデータページのアドレスが連続的でない。従って、従来の組み込みファイルシステムは実行可能ファイル、即ち実行可能ファイルのバイナリコードの動的ロードをサポートすることができない。更に、上記組み込みファイルシステムを用いた組み込み機器（例えばユビキタスネットワーク装置）はサードパーティのアプリケーションの実行可能ファイルに対する動的ロードをサポートできない。本願で構築された組み込みファイルシステムは、一方では、記憶リソースが限られた組み込みシステムで、小さなメモリのオーバーヘッドでデータを高効率に操作することを可能にする。他方では、サードパーティのアプリケーションの実行可能ファイルに対する動的ロードをサポートする。
【００７５】
更に図１１に示すように、上記各図に示される方法の実現として、本願は、図２に示される方法の実施例に対応するファイル操作装置の一実施例を提供し、当該装置は具体的に各種の電子機器に適用することができる。
【００７６】
図１１に示されるように、本実施例のファイル操作装置１１００は、受信ユニット１１０１、取得ユニット１１０２、及び処理ユニット１１０３を備える。受信ユニット１１０１は、ターゲットファイルに対する操作要求を受信し、操作要求が、ファイル名と、ターゲットファイルを記憶するためのデータページのデータページ識別子とを含み、取得ユニット１１０２は、ファイル名とデータページ識別子とに基づいて、データページの記憶領域のアドレスに関連するインデックス情報を取得し、インデックス情報が、操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶され、処理ユニット１１０３は、インデックス情報に基づいて、データページを検索し、且つデータページに対する操作を実行する。
【００７７】
本実施例では、受信ユニット１１０１は、ターゲットファイルに対する操作要求を受信する。ターゲットファイルに対する操作要求のタイプは、書き込み操作、読み取り操作、更新要求であってもよい。ターゲットファイルはデータページを単位として記憶され、それに対応して、ファイルに対する操作もデータページを単位として実行される。
【００７８】
本実施例では、取得ユニット１１０２は、ファイル名とデータページ識別子とに基づいて、データページの記憶領域のアドレスに関連するインデックス情報を取得する。インデックス情報は、操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶される。例えば、データページに対する操作を実行するプロセッサがＭＣＵである場合、インデックス情報がＭＣＵのオンチップメモリ（オンチップｆｌａｓｈとも呼ばれる）に記憶されることができる。本実施例では、インデックス情報はデータページの記憶領域のアドレスに関連する情報であってもよく、例えば、インデックス情報にデータページの物理アドレスを記録する。
【００７９】
本実施例では、処理ユニット１１０３は、インデックス情報、例えばインデックス情報におけるデータページの物理アドレスに基づいて、データページを検索し、且つデータページに対する操作を実行し、例えば、データをデータページに書き込み、データページからデータを読み取る。
【００８０】
本実施例のいくつかの選択可能な実施形態では、インデックス情報は、ファイル名及びファイル識別子を含む第１インデックス情報と、データページの記憶領域のアドレスを含む第２インデックス情報とを含む。
【００８１】
本実施例のいくつかの選択可能な実施形態では、装置１１００は、オンチップメモリの記憶領域から第１データページを選択する第１選択ユニット（図示せず）と、ファイル名をキー値とする第１ハッシュテーブルを作成する第１作成ユニット（図示せず）と、第１ハッシュテーブルにおける、キー値に対応する位置に第１インデックス情報を記憶する第１インデックス情報記憶ユニット（図示せず）と、第１ハッシュテーブルを第１データページに記憶する第１ハッシュテーブル記憶ユニット（図示せず）と、をさらに備える。
【００８２】
本実施例のいくつかの選択可能な実施形態では、装置１１００は、オンチップメモリの記憶領域から第２データページを選択する第２選択ユニット（図示せず）と、ファイル識別子及びデータページ識別子をキー値とする第２ハッシュテーブルを作成する第２作成ユニット（図示せず）と、第２ハッシュテーブルにおける、キー値に対応する位置に第２インデックス情報を記憶する第２インデックス情報記憶ユニット（図示せず）と、第２ハッシュテーブルを第２データページに記憶する第２ハッシュテーブル記憶ユニット（図示せず）と、をさらに備える。
【００８３】
本実施例のいくつかの選択可能な実施形態では、処理ユニット１１０３は、第１ハッシュテーブルにおける、ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得するファイル識別子取得サブユニット（図示せず）と、第２ハッシュテーブルにおける、ファイル識別子とデータページ識別子とに対応する位置に記憶された第２インデックス情報を取得する第２インデックス情報取得サブユニット（図示せず）と、第２インデックス情報におけるデータページの記憶領域のアドレスに基づいて、データページを検索する検索サブユニット（図示せず）と、を備える。
【００８４】
本実施例のいくつかの選択可能な実施形態では、装置１１００は、ターゲットファイルに対する操作要求を受信する前に、ターゲットファイルに対する作成要求を受信し、作成要求がファイル名を含む作成要求受信ユニット（図示せず）と、ファイル名に対応するファイル識別子を割り当てるファイル識別子割り当てユニット（図示せず）と、ファイル名とファイル識別子とを含む第１インデックス情報を生成し、且つ第１ハッシュテーブルにおける、ファイル名に対応する位置に第１インデックス情報を記憶するインデックス情報生成ユニット（図示せず）と、をさらに備える。
【００８５】
本実施例のいくつかの選択可能な実施形態では、装置１１００は、実行可能ファイルに対する書き込み要求を受信し、且つ実行可能ファイルを記憶するためのデータページの数を決定する書き込み要求受信ユニット（図示せず）と、上記数の記憶領域のアドレスが連続的なデータページとデータページのデータページ識別子とを割り当て、データページのうちの最初のデータページに実行可能ファイルの記憶領域のサイズを指示する記憶領域パラメータを記憶する第１割り当てユニット（図示せず）と、最初のデータページの記憶領域のアドレスを含む第２インデックス情報を生成する第２インデックス情報生成ユニット（図示せず）と、第２ハッシュテーブルにおける、ファイル識別子と最初のデータページのデータページ識別子とに対応する位置に第２インデックス情報を記憶する第２インデックス情報記憶ユニット（図示せず）と、をさらに備える。
【００８６】
本実施例のいくつかの選択可能な実施形態では、装置１１００は、実行可能ファイルに対するロード要求を受信し、ロード要求が、ファイル名と、最初のデータページのデータページ識別子とを含むロード要求受信ユニット（図示せず）と、第１ハッシュテーブルにおける、ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得する第１ファイル識別子取得ユニット（図示せず）と、第２ハッシュテーブルにおける、ファイル識別子とデータページ識別子とに対応する位置に記憶された第２インデックス情報を取得し、且つ第２インデックス情報におけるデータページの記憶領域のアドレスに基づいて、最初のデータページを検索するデータページ検索ユニット（図示せず）と、最初のデータページに記憶された記憶領域パラメータに基づいて、記憶領域のアドレスが連続的なデータページの数を計算する計算ユニット（図示せず）と、上記数のデータページにおけるデータを読み取って、実行可能ファイルをロードする読み取りユニット（図示せず）と、をさらに備える。
【００８７】
本実施例のいくつかの選択可能な実施形態では、装置１１００は、データファイルに対する追加書き込み要求を受信し、追加書き込み要求がファイル名を含む追加書き込み要求受信ユニット（図示せず）と、第１ハッシュテーブルにおける、ファイル名に対応する位置に記憶された第１インデックス情報におけるファイル識別子を取得する第２ファイル識別子取得ユニット（図示せず）と、追加書き込み方式でデータファイルに書き込まれたデータを記憶するためのデータページとデータページのデータページ識別子とを割り当てる第２割り当てユニット（図示せず）と、データページの記憶領域のアドレスを含む第２インデックス情報を生成し、第２ハッシュテーブルにおける、ファイル識別子とデータページ識別子とに対応する位置に第２インデックス情報を記憶する第２インデックス情報処理ユニット（図示せず）と、をさらに備える。
【００８８】
当業者であれば、上記ファイル操作装置１１００がさらにいくつかのほかの公知構造、例えばプロセッサ、メモリ等を備えており、本開示の実施例を不明瞭にしないように、これらの周知の構造が図１１に示されていないことを理解することができる。
【００８９】
図１２は本願の実施例を実現するための端末装置又はサーバに適用されるコンピュータシステム１２００の構造模式図を示す。
【００９０】
図１２に示すように、コンピュータシステム１２００は、読み出し専用メモリ（ＲＯＭ）１２０２に記憶されているプログラム又は記憶部１２０８からランダムアクセスメモリ（ＲＡＭ）１２０３にロードされたプログラムに基づいて様々な適切な動作及び処理を実行することができる中央処理装置（ＣＰＵ）１２０１を備える。ＲＡＭ１２０３には、システム１２００の操作に必要な様々なプログラム及びデータがさらに記憶されている。ＣＰＵ１２０１、ＲＯＭ１２０２及びＲＡＭ１２０３は、バス１２０４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース１２０５もバス１２０４に接続されている。
【００９１】
キーボード、マウスなどを含む入力部１２０６、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など、及びスピーカなどを含む出力部１２０７、ハードディスクなどを含む記憶部１２０８、及びＬＡＮカード、モデムなどを含むネットワークインターフェースカードの通信部１２０９は、Ｉ／Ｏインターフェース１２０５に接続されている。通信部１２０９は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライバ１２１０は、必要に応じてＩ／Ｏインターフェース１２０５に接続される。リムーバブルメディア１２１１は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライバ１２１０に取り付けられ、したがって、ドライバ１２１０から読み出されたコンピュータプログラムが必要に応じて記憶部１２０８にインストールされる。
【００９２】
特に、本発明の実施例によれば、上記フローチャートを参照しながら記載されたプロセスは、コンピュータのソフトウェアプログラムとして実現されてもよい。例えば、本発明の実施例は、コンピュータプログラム製品を含み、当該コンピュータプログラム製品は、機械可読媒体に有形に具現化されるコンピュータプログラムを含み、前記コンピュータプログラムは、フローチャートで示される方法を実行するためのプログラムコードを含む。このような実施例では、当該コンピュータプログラムは、通信部１２０９を介してネットワークからダウンロードされてインストールされてもよく、及び／又はリムーバブルメディア１２１１からインストールされてもよい。
【００９３】
図面におけるフローチャート及びブロック図は、本発明の各実施例に係るシステム、方法及びコンピュータプログラム製品により実現可能なアーキテクチャ、機能及び操作を示す。ここで、フローチャート又はブロック図における各枠は、１つのモジュール、プログラムセグメント、又はコードの一部を代表してもよく、前記モジュール、プログラムセグメント、又はコードの一部は、規定された論理機能を実現するための１つ以上の実行可能な命令を含む。なお、いくつかの代替実施態様として、枠に示された機能は、図面に示された順番と異なる順番で実行されてもよい。例えば、連続して示された２つの枠は、関連する機能に応じて、実際にほぼ並行に実行されてもよく、逆の順番で実行されてもよい。なお、ブロック図及び／又はフローチャートにおける各枠と、ブロック図及び／又はフローチャートにおける枠の組合せは、規定された機能又は操作を実行する、ハードウェアに基づく専用システムで実現されてもよく、あるいは、専用ハードウェアとコンピュータの命令との組合せで実行されてもよい。
【００９４】
一方、本発明は、不揮発性コンピュータ記憶媒体をさらに提供し、当該不揮発性コンピュータ記憶媒体は、上記実施例の前記装置に含まれる不揮発性コンピュータ記憶媒体であってもよく、独立に存在して端末に組み立てられていない不揮発性コンピュータ記憶媒体であってもよい。前記不揮発性コンピュータ記憶媒体は、１つ以上のプログラムが記憶され、前記１つ以上のプログラムが１つの機器により実行された場合、上記機器に、ターゲットファイルに対する操作要求を受信し、前記ファイル名とデータページ識別子とに基づいて前記データページの記憶領域のアドレスに関連するインデックス情報を取得し、前記インデックス情報に基づいて、前記データページを検索し、且つ前記データページに対する操作を実行するようにさせ、前記操作要求が、ファイル名と、ターゲットファイルを記憶するためのデータページのデータページ識別子とを含んでおり、前記インデックス情報が、前記操作に対応するマシン命令を実行するためのプロセッサのオンチップメモリに記憶される。
【００９５】
以上の記載は、本発明の好ましい実施例、及び使用された技術的原理の説明に過ぎない。本発明に係る特許請求の範囲が、上記技術的特徴の特定な組合せからなる技術案に限定されることではなく、本発明の趣旨を逸脱しない範囲で、上記技術的特徴又は同等の特徴の任意の組合せからなる他の技術案も含むべきであることを、当業者は理解すべきである。例えば、上記特徴と、本発明に開示された類似の機能を持っている技術的特徴（これらに限定されていない）とを互いに置き換えてなる技術案が挙げられる。
【図１】
0006542909.tif 000002
【図２】
0006542909.tif 000003
【図３】
0006542909.tif 000004
【図４】
0006542909.tif 000005
【図５】
0006542909.tif 000006
【図６】
0006542909.tif 000007
【図７】
0006542909.tif 000008
【図８】
0006542909.tif 000009
【図９】
0006542909.tif 000010
【図１０】
0006542909.tif 000011
【図１１】
0006542909.tif 000012
【図１２】
0006542909.tif 000013