(57)【特許請求の範囲】
【請求項１】
記録装置のファイル情報をキャッシュし、前記記録装置のどの範囲がキャッシュされているかを示すキャッシュ範囲データをディレクトリ情報に関連付けて記憶する管理手段と、
前記ディレクトリ情報に基づき、前記管理手段のキャッシュ範囲データを参照して処理対象のファイル情報がキャッシュされているかを判定する判定手段と、
前記ファイル情報がキャッシュされている場合は、キャッシュされているファイル情報を取得し、前記ファイル情報がキャッシュされていない場合は、前記キャッシュ範囲データに基づいて、前記ファイル情報のファイルのディレクトリ内において記録装置のキャッシュ済み領域以外の領域を探索してファイル情報を取得する取得手段と、
を有する情報処理装置。
【請求項２】
前記管理手段は、前記記録装置の論理的に連続したブロック範囲をキャッシュ管理単位としてキャッシュを管理し、キャッシュの入れ替えが発生した際には、入れ替えられたブロック範囲を基に前記キャッシュ範囲データを更新する請求項１記載の情報処理装置。
【請求項３】
情報処理装置が実行する情報処理方法であって、
記録装置のファイル情報をキャッシュし、前記記録装置のどの範囲がキャッシュされているかを示すキャッシュ範囲データをディレクトリ情報に関連付けて記憶する管理ステップと、
前記ディレクトリ情報に基づき、前記管理ステップのキャッシュ範囲データを参照して処理対象のファイル情報がキャッシュされているかを判定する判定ステップと、
前記ファイル情報がキャッシュされている場合は、キャッシュされているファイル情報を取得し、前記ファイル情報がキャッシュされていない場合は、前記キャッシュ範囲データに基づいて、前記ファイル情報のファイルのディレクトリ内において記録装置のキャッシュ済み領域以外の領域を探索してファイル情報を取得する取得ステップと、
を含む情報処理方法。
【請求項４】
コンピュータに、
記録装置のファイル情報をキャッシュし、前記記録装置のどの範囲がキャッシュされているかを示すキャッシュ範囲データをディレクトリ情報に関連付けて記憶する管理ステップと、
前記ディレクトリ情報に基づき、前記管理ステップのキャッシュ範囲データを参照して処理対象のファイル情報がキャッシュされているかを判定する判定ステップと、
前記ファイル情報がキャッシュされている場合は、キャッシュされているファイル情報を取得し、前記ファイル情報がキャッシュされていない場合は、前記キャッシュ範囲データに基づいて、前記ファイル情報のファイルのディレクトリ内において記録装置のキャッシュ済み領域以外の領域を探索してファイル情報を取得する取得ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
ファイルシステムとは、記憶装置に記録されているデータを管理する方式、管理を行うソフトウェアや、記憶媒体に設けられた管理領域や管理情報のことである。
ファイルシステムがファイル名情報を含むファイル操作処理要求を受けとると、ディレクトリ全体を線形探索してファイルを探し出す処理を行う。一方、記録装置の大容量化に伴うファイル数の増加は近年著しく、このように膨大なファイルがある状況下ではファイル操作処理に大きなコストが発生してしまう。
この課題に対して、主記憶上にキャッシュしたファイル名とそれに付随するファイル情報を利用することで、ディレクトリの全探索を行わずにファイル操作処理を実現する手法がある。
従来、このようなキャッシュを用いた効率的なファイル操作処理を実現するものとしてはＢ木やハッシュテーブル等を使用する技術が一般的であった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−５８９６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の手法ではキャッシュを利用した効率的なファイル操作処理が可能になる。しかしながら、一方で、ファイルの情報がキャッシュに存在しない場合には、ディレクトリ全体を探索してファイル情報を取得しなければならず膨大な処理コストが発生してしまうという問題があった。
【０００５】
本発明はこのような問題点に鑑みなされたもので、ファイル情報がキャッシュに存在しない場合であっても、効率的にファイル情報を取得することによって、効率的なファイル操作処理を実現することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明の情報処理装置は、記録装置のファイル情報をキャッシュし、前記記録装置のどの範囲がキャッシュされているかを示すキャッシュ範囲データをディレクトリ情報に関連付けて記憶する管理手段と、前記ディレクトリ情報に基づき、前記管理手段のキャッシュ範囲データを参照して処理対象のファイル情報がキャッシュされているかを判定する判定手段と、前記ファイル情報がキャッシュされている場合は、キャッシュされているファイル情報を取得し、前記ファイル情報がキャッシュされていない場合は、前記キャッシュ範囲データに基づいて、前記ファイル情報のファイルのディレクトリ内において記録装置のキャッシュ済み領域以外の領域を探索してファイル情報を取得する取得手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、ファイル情報がキャッシュに存在しない場合であっても、効率的にファイル情報を取得することによって、効率的なファイル操作処理を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置（コンピュータ）１のハードウェア構成の一例を示す図である。
【図２】情報処理装置の機能構成の一例を示す図である。
【図３】抽出したデータを登録するネームキャッシュテーブルの一例を示す図である。
【図４】キャッシュ範囲テーブルの一例を示す図である。
【図５】ネームキャッシュへのファイル情報登録処理のフローチャートである。
【図６】ファイル情報取得処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
＜実施形態１＞
図１は、情報処理装置（コンピュータ）１のハードウェア構成の一例を示す図である。図１に示されるように情報処理装置１は、ハードウェア構成として、ＣＰＵ１１を含む。ＣＰＵ１１が、記憶装置１３に記憶されているプログラムに基づき処理を行うことによって、ファイルシステムの機能、又は後述するフローチャートに係る処理が実現される。
ＣＰＵ１１には、バス１０を介して、入力装置１２、記憶装置１３及び表示装置１４が接続されている。記憶装置１３は、例えば、ＲＯＭ及びＲＡＭ及びハードディスク装置等からなり、上述した各プログラム以外に、プログラムに基づく処理で用いられるデータを記憶する。なお、後述する記録装置１０７は、ハードディスク装置等に対応する。表示装置１４は、情報を表示する例えばディスプレイ等である。入力装置１２は、情報を入力する例えば操作キー等である。
なお、入力装置１２及び表示装置１４は、情報処理装置１の必須の構成要素ではない。
なお、本実施形態では、情報処理装置は、主に組込み機器等として説明を行う。
【００１０】
図２は、情報処理装置の機能構成の一例を示す図である。
アプリケーション１０１からのファイル操作処理要求をファイルシステム１０２が受け取る。すると、ファイルシステム内のファイル操作処理部１０３は、デバイスドライバ１０６を介して記録装置１０７からデータを取得し、そのデータへ書き込み等を行い、ファイルを操作する。このとき、バッファキャッシュ管理部１０４に対象のデータが存在する場合には、ファイル操作処理部１０３は、記録装置１０７にアクセスせずバッファキャッシュ管理部１０４からデータを取得する。
ファイル操作処理部１０３は、取得したデータがディレクトリエントリのデータだった場合、その中から必要なデータを抽出してネームキャッシュ管理部１０５に登録する。
【００１１】
図３は、抽出したデータを登録するネームキャッシュテーブル１０８の一例を示す図である。ディレクトリテーブル２０１は、可変個のネームキャッシュテーブルを持ち、テーブルは、ファイル名２０２とファイル情報２０３とから構成される、ファイル情報は、ファイル操作処理を効率化する上で必要なディレクトリエントリに関連するデータを表す。なお、これらネームキャッシュテーブル１０８は、ＬＲＵ等のキャッシュアルゴリズムで管理され、優先度の低いものから順にキャッシュの入れ替えが発生していく。
ネームキャッシュテーブル１０８へのデータ登録後、ファイル操作処理部１０３は、ネームキャッシュ管理部１０５を介してデータを取得し、効率的なファイル操作処理を実行する。
また、ネームキャッシュ管理部１０５は、ディレクトリのキャッシュ済み領域を表す図４のキャッシュ範囲テーブル１０９を主記憶上に保持する。キャッシュ範囲テーブルは、キャッシュ範囲データの一例である。
図４において、３０１は、キャッシュ対象のディレクトリ名を、３０２は、そのディレクトリのキャッシュ済み領域の開始セクタ番号を、３０３は、終了セクタ番号のデータをそれぞれ表している。３０２〜３０３のセクタ範囲（ブロック範囲）が記録装置１０７内の論理的に連続したブロック範囲キャッシュ管理単位となる。テーブル行３０４は、ネームキャッシュテーブル１０８と一対一の関係にあり、即ちテーブル総行数は、ネームキャッシュテーブル１０８の総数と等しくなる。
ネームキャッシュテーブル１０８に対象のデータがなかった場合、ファイル操作処理部１０３は、キャッシュ範囲テーブルから未キャッシュ領域を算出し、その領域を探索してファイル情報を取得する。
例えば、ディレクトリ名"ＤＩＲ１"のディレクトリが１００〜１２０番セクタと１４０〜１５０番セクタとをキャッシュしているとする。
ファイル操作処理部１０３は、キャッシュ済み領域３０５を探索対象から除外し、下位アドレスの未キャッシュ領域３０６を探索し、次に未キャッシュ領域３０７を探索する。このようにして十分にキャッシュできていない場合にもディレクトリの全探索をすることなく効率的なファイル操作処理を実施する。
【００１２】
図５は、ネームキャッシュへのファイル情報登録処理のフローチャートである。ディレクトリにはじめてアクセスした際、ディレクトリ先頭からディレクトリエントリを順次キャッシュしていく。
Ｓ４０１で、ファイルシステム１０２は、ディレクトリの先頭セクタ番号をＳ０に設定する。次にＳ４０２で、ファイルシステム１０２は、利用可能なネームキャッシュテーブル１０８を獲得する。ここでは、ＬＲＵアルゴリズム等を用いて再利用可能性の低いテーブルから獲得していく。
Ｓ４０３で、ファイルシステム１０２は、獲得したネームキャッシュテーブル１０８に対応するキャッシュ範囲テーブル１０９の開始セクタ番号をＳ０に設定する。以上により初期化処理が終わり、次のステップからディレクトリデータをキャッシュしていく。
Ｓ４０５で、ファイルシステム１０２は、デバイスドライバ１０６を介してディレクトリを構成するＳ０番セクタのデータを記録装置１０７から読み込む。そして、Ｓ４０６で、ファイルシステム１０２は、読み込んだディレクトリエントリデータからキャッシュデータを抽出し登録する。Ｓ４０７で、ファイルシステム１０２は、キャッシュ範囲テーブル１０９の終了セクタ番号をＳ０に更新する。
Ｓ０番セクタのキャッシュ処理が終了すると、Ｓ４０８で、ファイルシステム１０２は、現在の位置がディレクトリ終端かどうかを判定する。ディレクトリ終端でなかった場合、ファイルシステム１０２は、次のセクタ番号を特定してＳ０に設定する処理であるＳ４０９を経て、再び一連のキャッシュ登録処理を繰り返していく。
ネームキャッシュ登録されているディレクトリに対しては、次のファイル情報取得処理ではキャッシュを利用し効率的な処理が可能となる。
【００１３】
図６は、ファイル情報取得処理の一例を示すフローチャートである。
Ｓ５０１で、ファイルシステム１０２は、まず処理対象のディレクトリがキャッシュされているかどうかを判定する。キャッシュされていない場合には、Ｓ５０２で、ファイルシステム１０２は、ディレクトリ全体を線形探索してファイル情報を取得する通常の処理に移る。
キャッシュされている場合には、Ｓ５０３で、ファイルシステム１０２は、対象ディレクトリが保持するネームキャッシュテーブル１０８を参照してファイルを検索する。ネームキャッシュテーブル１０８からファイルを発見した場合、ファイルシステム１０２は、そこからファイル情報を取得して、処理を終了する。
ファイルが発見できなかった場合、即ちネームキャッシュに対象のファイルがキャッシュされていない場合、ファイルシステム１０２は、ディレクトリの未キャッシュ領域、つまり、キャッシュ済み領域以外の領域、を探索する処理に移る。
Ｓ５０５で、ファイルシステム１０２は、探索開始セクタ番号Ｓ０にディレクトリの先頭セクタ番号を設定する。次に、Ｓ５０６で、ファイルシステム１０２は、キャッシュ範囲テーブル１０９からＳ０番セクタ以降の未キャッシュセクタ範囲（Ｓ１〜Ｓ２）を算出する。そして、Ｓ５０７で、ファイルシステム１０２は、この未キャッシュセクタ範囲のディレクトリを探索する処理を行う。
Ｓ１〜Ｓ２の未キャッシュセクタに対象のファイルが存在しなかった場合、Ｓ５０９で、ファイルシステム１０２は、探索開始セクタ番号Ｓ０をＳ２に設定する。そして、ファイルシステム１０２等は、再びＳ５０６〜Ｓ５０８の処理をファイルが発見されるまで繰り返す。ファイルが発見されるとＳ５１０のファイル情報取得処理に移り、図６に示す処理は、終了する。
以上により、参照したファイル情報がキャッシュに存在しない場合の効率的なファイル操作処理が可能となる。
【００１４】
＜実施形態２＞
実施形態１では、ファイル情報登録処理フローにおいてセクタ単位でキャッシュの登録が行われているが、もちろんディレクトリエントリ単位で読み込みキャッシュするという実施形態も採用することができる。
【００１５】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００１６】
以上、上述した各実施形態によれば、ファイル情報がキャッシュに存在しない場合であっても、効率的にファイル情報を取得することによって、効率的なファイル操作処理を実現することができる。
【００１７】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００１８】
１０２  ファイルシステム
１０５  ネームキャッシュ管理部
１０８  ネームキャッシュテーブル
１０９  キャッシュ範囲テーブル
【図１】
0005697404.tif 000002
【図２】
0005697404.tif 000003
【図３】
0005697404.tif 000004
【図４】
0005697404.tif 000005
【図５】
0005697404.tif 000006
【図６】
0005697404.tif 000007