JP2013003701A - 情報処理装置及び方法、並びにプログラム - Google Patents
情報処理装置及び方法、並びにプログラム Download PDFInfo
- Publication number
- JP2013003701A JP2013003701A JP2011132018A JP2011132018A JP2013003701A JP 2013003701 A JP2013003701 A JP 2013003701A JP 2011132018 A JP2011132018 A JP 2011132018A JP 2011132018 A JP2011132018 A JP 2011132018A JP 2013003701 A JP2013003701 A JP 2013003701A
- Authority
- JP
- Japan
- Prior art keywords
- link
- cache
- cluster
- information
- entry
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】データ追記後でもランダムアクセス時の処理速度を向上できるようにする。
【解決手段】クラスタリンクキャッシュ51は、FATファイルシステムにより、所定の記録媒体に、複数のクラスタが記録されるとともに、複数のクラスタのリンク情報から構成されるFATが記録されている場合、FATから抽出されたリンク情報を含む情報からなるエントリが、所定間隔のクラスタ毎に配置されて構成されるキャッシュリンクをキャッシュする。リンク情報更新部は、記録媒体上のクラスタにデータが追記されて、キャッシュリンクを更新する場合、キャッシュリンクを構成する複数のエントリのうち、更新対象のエントリについて、情報を更新する。構造変換部は、更新された更新対象のエントリを、キャッシュリンクのもとの位置から切り離して、キャッシュリンクの最後尾に繋げる。本技術は、FATファイルシステムを用いる情報処理装置に適用することができる。
【選択図】図6
【解決手段】クラスタリンクキャッシュ51は、FATファイルシステムにより、所定の記録媒体に、複数のクラスタが記録されるとともに、複数のクラスタのリンク情報から構成されるFATが記録されている場合、FATから抽出されたリンク情報を含む情報からなるエントリが、所定間隔のクラスタ毎に配置されて構成されるキャッシュリンクをキャッシュする。リンク情報更新部は、記録媒体上のクラスタにデータが追記されて、キャッシュリンクを更新する場合、キャッシュリンクを構成する複数のエントリのうち、更新対象のエントリについて、情報を更新する。構造変換部は、更新された更新対象のエントリを、キャッシュリンクのもとの位置から切り離して、キャッシュリンクの最後尾に繋げる。本技術は、FATファイルシステムを用いる情報処理装置に適用することができる。
【選択図】図6
Description
本技術は、情報処理装置及び方法、並びにプログラムに関し、特に、データ追記後でもランダムアクセス時の処理速度を向上させる、情報処理装置及び方法、並びにプログラムに関する。
従来から、ハードディスクなどのランダムアクセス可能な記録媒体に、各種データをファイルとして管理するFAT(File Allocation Tables)ファイルシステムが知られている(例えば、特許文献1参照)。
FATファイルシステムにおいては、記録媒体の記録領域はクラスタと称される記録単位に区分されており、ファイルの読み書きの管理はクラスタ単位で行われる。また、当該ファイルを構成するクラスタのリンク情報が、FATに記録される。したがって、情報処理装置は、FATを参照してクラスタを先頭から辿り、読み出し対象のデータを特定することにより、当該データをファイルから読み出すことができる。
しかしながら、FATはその構造上、情報処理装置が、逆方向のデータアクセスをする場合、FATを毎回先頭から読み直す必要があるため、順方向のデータアクセスをする場合と比較すると処理速度が著しく遅くなる。また、毎回記録媒体に記録されているFATを参照する必要があるため、データの読み書きに遅延が生じる。
したがって、処理速度の向上のために、記録媒体に記録されているFATをそのままRAM(Random Access Memory)等のメモリにキャッシュすることが考えられる。しかしながら、この場合、特に、メモリのサイズが限られている組み込み機器等では、FAT全体をメモリにキャッシュすることが困難な場合がある。また、FAT全体をメモリにキャッシュしたとしても、逆方向のデータアクセスをする場合には、FATを毎回先頭から読み直す必要がある。
さらに、データが追記されることでファイルのサイズが大きくなった場合には、ファイルを管理するFATのサイズも大きくなり、FAT全体のメモリへのキャッシュがより一層困難となる。
本技術は、このような状況に鑑みてなされたものであり、データ追記後でもランダムアクセス時の処理速度を向上できるようにしたものである。
本技術の一側面の情報処理装置は、FATファイルシステムにより、所定の記録媒体に、複数のクラスタが記録されるとともに、前記複数のクラスタのリンク情報から構成されるFATが記録されている場合、前記FATから抽出された前記リンク情報を含む情報からなるエントリが、所定間隔のクラスタ毎に配置されて構成されるキャッシュリンクの保持部と、前記記録媒体上の前記クラスタにデータが追記されて、前記キャッシュリンクを更新する場合、前記キャッシュリンクを構成する複数の前記エントリのうち、更新対象のエントリについて、前記情報を更新する情報更新部と、前記情報更新部により更新された前記更新対象のエントリを、前記キャッシュリンクのもとの位置から切り離して、前記キャッシュリンクの最後尾に繋げる構造変換部とを備える。
前記エントリには、前記情報として、オフセット値、クラスタ番号、及び連続クラスタ数を含めることができる。
前記キャッシュリンクの最終エントリに含まれる前記オフセット値から、追記対象のクラスタのオフセット値までの距離に基づいて、前記キャッシュリンクは更新されることができる。
前記キャッシュリンクの最終エントリに含まれるオフセット値から、追記対象のクラスタのオフセット値までの距離が、前記キャッシュリンク内で隣接する前記エントリの前記オフセット値の差分の最小値の所定の倍数となった場合に、前記キャッシュリンクは更新されることができる。
本技術の一側面の情報処理方法及びプログラムは、上述した本技術の一側面の情報処理装置に対応する方法及びプログラムである。
本技術の一側面の情報処理装置及び方法並びにプログラムにおいては、FATファイルシステムにより、所定の記録媒体に、複数のクラスタが記録されるとともに、前記複数のクラスタのリンク情報から構成されるFATが記録されている場合、前記FATから抽出された前記リンク情報を含む情報からなるエントリが、所定間隔のクラスタ毎に配置されて構成されるキャッシュリンクがキャッシュされ、前記記録媒体上の前記クラスタにデータが追記されて、前記キャッシュリンクが更新される場合、前記キャッシュリンクを構成する複数の前記エントリのうち、更新対象のエントリについて、前記情報が更新され、更新された前記更新対象のエントリが、前記キャッシュリンクのもとの位置から切り離されて、前記キャッシュリンクの最後尾に繋げられる。
以上のごとく、本技術によれば、データ追記後でもランダムアクセス時の処理速度を向上することができる。
[本技術の概要]
本技術のファイルへのデータの追記の理解を容易なものとすべく、先ず、ファイルからのデータの読み出しの概略について説明する。
本技術のファイルへのデータの追記の理解を容易なものとすべく、先ず、ファイルからのデータの読み出しの概略について説明する。
本技術に属するファイル管理システムは、各種データを、FATファイルシステムを用いてファイルとして記録媒体に記録する。FATファイルシステムを用いるファイル管理システムは、上述したように、データを読み出す場合、記録媒体に記録されたFATを参照して、FATを毎回先頭から読み直す必要がある。
したがって、ファイル管理システムは、データアクセスの処理速度を上げるために、FATに記録されている各クラスタの各リンク情報のうち、1以上のクラスタのリンク情報を抽出して集合させたものを、キャッシュリンクとして生成して、RAM等のメモリにキャッシュする。キャッシュリンクの生成において、FATに記録されている各クラスタの各リンク情報のうち、メモリのサイズに応じて略均等に、または任意の間隔で、抽出対象のクラスタが決定される。ファイル内の所定のデータが読み出し対象に設定された場合、ファイル管理システムは、メモリにキャッシュされたキャッシュリンクを参照して、当該所定のデータに最も近い前方のクラスタのリンク情報に基づいて、FATを途中から読み出して、当該所定のデータにアクセスすることができる。
このように、ファイル管理システムは、メモリにキャッシュされたキャッシュリンクを参照することで、記録媒体に記録されているFATを毎回先頭から読み直さなくても、読み出し対象のデータにアクセスすることができるようになり、ランダムアクセス時の処理速度を向上させることができる。
以下、図面を参照して、本技術の実施の形態について説明する。
[ファイル管理システムの構成例]
図1は、ファイル管理システム1の構成例を示すブロック図である。
図1は、ファイル管理システム1の構成例を示すブロック図である。
図1に示されるように、ファイル管理システム1は、ファイル管理装置10及び記録媒体11から構成される。
ファイル管理装置10は、操作部21、制御部22、クラスタリンクキャッシュ23、入力部24、書き込み部25、読み出し部26、及び出力部27から構成される。
操作部21は、ユーザによる操作を受け付け、当該操作に対応する操作信号を制御部22に供給する。
制御部22は、操作部21からの操作信号を解析してユーザの操作内容を認識し、当該操作内容に応じた制御を実行する。
クラスタリンクキャッシュ23は、RAM等のメモリで構成され、制御部22の制御にしたがって、キャッシュリンクをキャッシュする。なお、キャッシュリンクの詳細については図3を用いて後述する。
入力部24は、制御部22の制御にしたがって、外部から入力されたデータを、記録媒体11に記録可能な形態に変換して、書き込み部25に供給する。
書き込み部25は、制御部22の制御にしたがって、入力部24から供給されたデータを、記録媒体11へ書き込む。このとき、書き込み部25は、クラスタリンクキャッシュ23にキャッシュされているキャッシュリンクと、後述する記録媒体11が有するFAT41を参照しながら、データを記録媒体11へ書き込む。
読み出し部26は、制御部22の制御にしたがって、記録媒体11からデータを読み出す。このとき、読み出し部26は、クラスタリンクキャッシュ23にキャッシュされているキャッシュリンクと、後述する記録媒体11が有するFAT41を参照しながら、記録媒体11からデータを読み出す。
出力部27は、読み出し部26により読み出されたデータに基づいて、出力データを生成して外部に出力する。
記録媒体11は、FAT41とデータ領域42を有している。
FAT41には、所定のファイルを構成するクラスタのリンク情報が記録される。FAT41の詳細について、図2を参照して後述する。
データ領域42は複数のクラスタに区分され、所定のファイルに含まれるデータが、クラスタ単位で記録される。
以下、データ領域42に記録されるデータについての、FAT41とキャッシュリンクの詳細について、それぞれ図2と図3を用いて説明する。
[FAT41の構成例]
図2はFAT41の構成を説明する図である。
図2はFAT41の構成を説明する図である。
図2において、FAT41は、複数の項目(長方形の枠)から構成されている。各項目の上方に記載された数字は、データ領域42に記録される所定のファイルを構成するクラスタのクラスタ番号であり、各項目内に記載された数字は、上方に記載されたクラスタ番号のクラスタに続くクラスタのクラスタ番号である。すなわち、各項目は、上方に記載されたクラスタ番号のクラスタに対応しており、当該クラスタに続くクラスタのクラスタ番号といったリンク情報が格納される。
なお、以下、説明の簡略上、クラスタ番号K(Kは任意の整数値)のクラスタを、クラスタ[K]と記述する。また、あるクラスタに着目している場合、当該クラスタに続くクラスタを、次クラスタと称する。
具体的には、FAT41の1番左の項目によれば、クラスタ[10]の次クラスタは、クラスタ[11]である。FAT41の左から2番目の項目によれば、クラスタ[11]の次クラスタは、クラスタ[12]である。同様にしてクラスタが連続し、クラスタ[31]の次クラスタは、クラスタ[50]であり、クラスタ[50]の次クラスタは、クラスタ[52]である。そして、クラスタ[52]に対応する項目内に「eof」と記載されていることから、クラスタ[52]が所定のファイルの最終クラスタであることが分かる。なお、eofは、end of fileを意味する。
すなわち、図2のFAT41の例では、データ領域42に記録される所定のファイルは、クラスタ[10]乃至[31],クラスタ[50],クラスタ[52]から構成されている。ファイル管理装置10は、このようなFAT41を参照して、この順にクラスタを辿ることにより、読み出し対象のデータを所定のファイルから読み出すことができる。
次に、クラスタリンクキャッシュ23にキャッシュされるキャッシュリンクの詳細について、図3を参照して説明する。
[キャッシュリンクの構成例]
図3は、キャッシュリンク51の構成を説明する図である。
図3は、キャッシュリンク51の構成を説明する図である。
キャッシュリンク51は、FATに記録されている各クラスタの各リンク情報から、クラスタリンクキャッシュ23のメモリサイズに応じて略均等に、または任意の間隔にリンク情報が抽出されたクラスタのリンク情報の集合体である。本実施形態では、クラスタが抽出される位置は、ファイル先頭からの所定のオフセット値に対応する位置であるとする。
図3の例では、所定のファイルの先頭からのオフセット値が0,5,10,15,20に位置するクラスタのリンク情報がFATから抽出されて集合されたものが、キャッシュリンク51としてキャッシュされる。したがって、以下、キャッシュリンク51が生成される場合に、抽出対象のクラスタのリンク情報が格納されていた位置を、所定のファイルの先頭からのオフセット値で表したものを、キャッシュポイントと称する。例えば図3の例では、0,5,10,15,20のオフセットの位置がキャッシュポイントになる。
キャッシュリンク51に含まれる、1つのクラスタのリンク情報には、当該クラスタについての、オフセット値、クラスタ番号、及び、それ以降に連続しているクラスタの数(以下、連続クラスタ数と称する)が含まれる。ここで、キャッシュリンク51に含まれる各クラスタの各リンク情報を、エントリと称する。なお、各エントリに含まれる各オフセット値は、各キャッシュポイントを示すことになる。
図3の例では、キャッシュリンク51は、5つのエントリE1乃至E5から構成されている。なお、以下、エントリE1乃至E5を個々に区別する必要がない場合、エントリE1乃至E5をエントリEと称する。
具体的には、エントリE1に示されている「0,10,22」から、ファイル先頭からのオフセット値が「0」のキャッシュポイントにあるクラスタは、クラスタ[10]であり、クラスタ[10]からの連続クラスタ数は、「22」であることが分かる。
同様に、エントリE2に示されている「5,15,17」から、ファイル先頭からのオフセット値が「5」のキャッシュポイントにあるクラスタは、クラスタ[15]であり、クラスタ番号[15]からの連続クラスタ数は、「17」であることが分かる。
また、エントリE3に示されている「10,20,12」から、ファイル先頭からのオフセット値が「10」のキャッシュポイントにあるクラスタは、クラスタ[20]であり、クラスタ[20]からの連続クラスタ数は、「12」であることが分かる。
また、エントリE4に示されている「15,25,7」から、ファイル先頭からのオフセット値が「15」のキャッシュポイントにあるクラスタは、クラスタ[25]であり、クラスタ[25]からの連続クラスタ数は、「7」であることが分かる。
また、エントリE5に示されている「20,30,2」から、ファイル先頭からのオフセット値が「20」のキャッシュポイントにあるクラスタは、クラスタ[30]であり、クラスタ[30]からの連続クラスタ数は、「2」であることが分かる。
さらに、各エントリEに含まれるリンク情報としては、エントリE1乃至E5の上に矢印で示されるように、次のリンク先のエントリEのポインタも含まれる。
ファイル管理システム1は、所定のファイルの所定のデータの読み出しが要求された場合、クラスタリンクキャッシュ23にキャッシュされたキャッシュリンク51を参照し、当該所定のデータに最も近いエントリEのリンク情報に基づいて、FATを途中から辿って当該所定のデータを含むクラスタを特定して、当該所定のデータを読み出すことができる。
例えば、前回の読み出し対象のクラスタの位置が、所定のファイルのオフセット値が17の位置であったとする。なお、以下、前回の読み出し対象のクラスタのオフセット値を、前回のReadポイントと称する。
そして、今回、所定のファイルのオフセット値が13の位置のクラスタが読み出し対象として指示されたとする。なお、以下、今回の読み出し対象として指示されているクラスタのオフセット値を、Readオフセットと称する。
このように、前回のReadポイントが17であって、Readオフセットが13といったように、Readオフセットが前回のReadポイントよりも前の場合、キャッシュリンクを用いない従来のファイル管理装置は、再度FATを先頭(すなわち、オフセット値が0の位置)から順に読み直す必要があった。
これに対して、ファイル管理装置10は、キャッシュリンク51をクラスタリンクキャッシュ23にキャッシュしているので、当該キャッシュリンク51の各エントリEに含まれる各オフセット(キャッシュポイント)のうち、Readオフセットに最も近い前方のオフセット(キャッシュポイント)の位置を、Readポイントに設定することができる。これにより、Readオフセットの視点からすると、所定のファイルの先頭よりも遥かに近傍の位置にReadポイントが移動してきたことになる。
したがって、ファイル管理装置10は、従来のようにFATを先頭から辿ってReadオフセットまで辿り着くのと比較して、遥かに短い経路でReadポイントからFATを辿り、Readオフセットまで辿り着くことができる。すなわち、ファイル管理装置10は、キャッシュリンク51を参照することにより、FATを途中から辿ることができる。したがって、従来のようにFATを先頭から辿る場合と比較して、処理速度を向上させることが可能になる。
具体的には、ファイル管理装置10は、Readオフセット(すなわち、13)よりも前で、Readオフセットに最も近いオフセット(キャッシュポイント)を有するエントリE3のリンク情報に基づいて、Readポイントを設定し、当該ReadポイントからFATを参照する。すなわち、ファイル管理装置10は、エントリE3に示されている「10,20,12」に基づいて、オフセット値が10の位置をReadポイントに設定し、当該Readポイントから、FATを参照する。オフセット値が10の位置にあるクラスタ[20]からの連続クラスタ数は12であることから、Readオフセットの位置にあるクラスタは、クラスタ[23]であることが特定される。したがって、ファイル管理装置10は、クラスタ[23]から読み出し対象のデータを読み出すことができる。
このようなファイル管理装置10によるデータの読み出しの処理(以下、読み出し処理と称する)について、図4を参照して説明する。
なお、以下、説明の簡略上、オフセット値L(Lは任意の整数値であって、図3の場合、0,5,10,15,20)のキャッシュポイントを、キャッシュポイント[L]と記述する。オフセット値M(Mは任意の整数値)のReadポイントを、Readポイント[M]と記述する。また、オフセット値N(Nは任意の整数値)のReadオフセットを、Readオフセット[N]と記述する。
[読み出し処理]
図4は、読み出し処理の流れについて説明するフローチャートである。
図4は、読み出し処理の流れについて説明するフローチャートである。
読み出し処理は、ユーザによる操作部21の所定の操作により、開始される。
ステップS1において、制御部22は、キャッシュがあるかを判定する。すなわち、クラスタリンクキャッシュ23は、キャッシュリンク51がキャッシュされているかを判定する。
キャッシュがある場合、ステップS1においてYESであると判定されて、処理はステップS3に進む。なお、ステップS3以降の処理については後述する。
これに対して、キャッシュがない場合、ステップS1においてNOであると判定されて、処理はステップS2に進む。
ステップS2において、クラスタリンクキャッシュ23は、キャッシュを初期化する。すなわち、クラスタリンクキャッシュ23は、キャッシュリンク51をキャッシュするために、クラスタリンクキャッシュ23に対する0初期化等を行う。その後、処理はステップS3に進む。
ステップS3において、制御部22は、Readオフセットが、前回のReadポイントより前かを判定する。すなわち、制御部22は、今回読み出しが指示されているクラスタのオフセット値が、前回読み出されていたクラスタのオフセット値より前かを判定する。
Readオフセットが、前回のReadポイントより後である(前ではない)場合、ステップS3においてNOであると判定されて、処理はステップS7に進む。なお、ステップS7以降の処理については後述する。
これに対して、Readオフセットが、前回のReadポイントより前である場合、ステップS3においてYESであると判定されて、処理はステップS4に進む。なお、以下では、読み出し処理の流れの理解を容易なものとすべく、Readオフセット[13]、及び前回のReadポイント[17]の場合を例として説明する。
ステップS4において、制御部22は、キャッシュがあるかを判定する。すなわち、制御部22は、ステップS1の判定の誤りやステップS2の処理による初期化の失敗に備えて、再度キャッシュがあるかを判定する。
キャッシュがある場合、ステップS4においてYESであると判定されて、処理はステップS6に進む。なお、ステップS6以降の処理については後述する。
これに対して、キャッシュがない場合、ステップS4においてNOであると判定されて、処理はステップS5に進む。
ステップS5において、制御部22は、Readポイントを、FATの先頭のオフセット値に設定する。すなわち、キャッシュリンク51がキャッシュされていない場合、制御部22は、キャッシュリンク51を参照することができない。したがって、制御部22は、Readポイントを、FATの先頭のオフセット値が0の位置、すなわちReadポイント[0]に設定する。この場合、制御部22は、キャッシュリンクを用いない従来のファイル管理装置と同様に、FATを先頭から辿る必要がある。ReadポイントがFATの先頭のオフセット値に設定されると、処理はステップS8に進む。
ステップS8において、制御部22は、FATを辿ってReadポイントを1つ進める。例えばステップS5の処理でReadポイント[0]に設定された後のステップS8においては、制御部22は、Readポイント[1]に設定する。
ステップS9において、制御部22は、Readポイントが、キャッシュポイントであるかを判定する。すなわち、制御部22は、Readポイントが、キャッシュポイント[0],[5],[10],[15],または[20]であるかを判定する。
例えばステップS8の処理でReadポイント[1]に設定された場合には、ステップS9においてNOであると判定されて、処理はステップS11に進む。
ステップS11において、制御部22は、Readポイントが、Readオフセットと等しいかを判定する。すなわち、制御部22は、Readポイントが、Readオフセット[13]と等しいかを判定する。
例えばステップS8の処理でReadポイント[1]に設定された場合には、ステップS11においてNOであると判定されて、処理はステップS8に戻され、それ以降の処理が繰り返される。すなわち、ReadポイントがReadオフセット[13]と等しくなるまでの間、すなわちReadポイント[13]になるまでの間、ステップS8乃至S11のループ処理が繰り返される。
ここで、当該ループ処理が複数回繰り返され、所定の回のステップS8において、Readポイント[4]になったものとする。この場合、ステップS9においてNOであると判定され、ステップS11においてNOであると判定されて、次の回のステップS8として次のような処理が実行される。
すなわち、ステップS8において、Readポイント[4]から1つ進められてReadポイント[5]に設定される。ここで、Readポイント[5]は、キャッシュポイントであるため、ステップS9においてYESであると判定されて、処理はステップS10に進む。
ステップS10において、制御部22は、キャッシュにデータを保存する。すなわち、制御部22は、キャッシュリンク51に、当該Readポイントの位置にあるクラスタのリンク情報を保存する。この場合、Readポイント[5]であるので、「5,15,17」というリンク情報が、エントリE2に保存される。キャッシュにデータが保存されると、処理はステップS11に進む。
例えばステップS8の処理でReadポイント[5]に設定された場合には、Readオフセット[13]と等しくなく、ステップS11においてNOであると判定されて、処理はステップS8に戻される。
ここで、当該ループ処理が複数回繰り返され、所定の回のステップS8において、Readポイント[9]になったものとする。この場合、ステップS9においてNOであると判定され、ステップS11においてNOであると判定されて、次の回のステップS8として次のような処理が実行される。
すなわち、ステップS8において、Readポイント[9]から1つ進められてReadポイント[10]に設定される。ここで、Readポイント[10]は、キャッシュポイントであるため、ステップS9においてYESであると判定されて、処理はステップS10に進む。
ステップS10において、制御部22は、キャッシュにデータを保存する。この場合、Readポイント[10]であるので、「10,20,12」というリンク情報が、エントリE3に保存される。このように、FATを辿りながら、適宜キャッシュリンク51内の各エントリEにリンク情報がキャッシュされていくので、次回以降の読み出し処理において、当該キャッシュリンク51を参照することでクラスタの適切な読み出しが可能になる。キャッシュにデータが保存されると、処理はステップS11に進む。
例えばステップS8の処理でReadポイント[10]に設定された場合には、Readオフセット[13]と等しくなく、ステップS11においてNOであると判定されて、処理はステップS8に戻される。
ここで、当該ループ処理が複数回繰り返され、所定の回のステップS8において、Readポイント[12]になったものとする。この場合、ステップS9においてNOであると判定され、ステップS11においてNOであると判定されて、次の回のステップS8として次のような処理が実行される。
すなわち、ステップS8において、Readポイント[12]から1つ進められてReadポイント[13]に設定される。ここで、Readポイント[13]は、キャッシュポイントではないため、ステップS9においてNOであると判定されて、処理はステップS11に進む。
例えばステップS8の処理でReadポイント[13]に設定された場合には、Readオフセット[13]と等しく、ステップS11においてYESであると判定されて、処理はステップS12に進む。
ステップS12において、制御部22は、クラスタのデータを読み出す。すなわち、制御部22は読み出し部26を制御して、Readオフセット[13]の位置にあるクラスタ[23]から読み出し対象のデータを読み出す。
これにより、読み出し処理は終了する。なお、制御部22は、次のデータの読み出し処理の指示があるまで待機状態となる。
このように、ステップS4の処理において、キャッシュすなわちキャッシュリンク51がないと判定された場合、ステップS5以降に示されるように、制御部22は、キャッシュリンクを用いない従来のファイル管理装置と同様に、FATを先頭から辿る必要がある。
一方、ステップS4において、キャッシュがある場合、YESであると判定されて、処理はステップS6に進む。
ステップS6において、制御部22は、キャッシュを読み、Readオフセットに近い前方のキャッシュポイントを、Readポイントに設定する。具体的には、例えば本例では、Readオフセット[13]、及び前回のReadポイント[17]とされているので、制御部22は、キャッシュリンク51を参照して、Readオフセット[13]に近い前方のキャッシュポイントを探す。この場合、Readオフセット[13]に近い前方のキャッシュポイントは、キャッシュポイント[10]であることから、制御部22は、Readポイント[10]に設定する。すなわち、制御部22は、オフセット値が10の位置からFATを辿り始める。
ステップS8において、制御部22は、FATを辿ってReadポイントを1つ進める。キャッシュがある場合にステップS6の処理でReadポイント[10]に設定された後のステップS8においては、制御部22は、Readポイント[11]に設定する。
ステップS9において、制御部22は、Readポイントが、キャッシュポイントであるかを判定する。すなわち、制御部22は、Readポイントが、キャッシュポイント[0],[5],[10],[15],または[20]であるかを判定する。
例えばステップS8の処理でReadポイント[11]に設定された場合には、ステップS9においてNOであると判定されて、処理はステップS11に進む。
ステップS11において、制御部22は、Readポイントが、Readオフセットと等しいかを判定する。すなわち、制御部22は、Readポイントが、Readオフセット[13]と等しいかを判定する。
例えばステップS8の処理でReadポイント[11]に設定された場合には、ステップS11においてNOであると判定されて、処理はステップS8に戻され、それ以降の処理が繰り返される。すなわち、ReadポイントがReadオフセット[13]と等しくなるまでの間、すなわちReadポイント[13]になるまでの間、ステップS8乃至S11のループ処理が繰り返される。
ここで、次の回のステップS8において、Readポイント[11]から1つ進められてReadポイント[12]に設定される。この場合、ステップS9においてNOであると判定され、ステップS11においてNOと判定されて、次の回のステップS8として次のような処理が実行される。
すなわち、ステップS8において、Readポイント[12]から1つ進められてReadポイント[13]に設定される。ここで、Readポイント[13]は、キャッシュポイントではないため、ステップS9においてNOであると判定されて、処理はステップS11に進む。
例えばステップS8の処理でReadポイント[13]に設定された場合には、Readオフセット[13]と等しく、YESであると判定されて、処理はステップS12に進む。
ステップS12において、制御部22は、クラスタのデータを読み出す。すなわち、制御部22は読み出し部26を制御して、オフセット値[13]の位置にあるクラスタ[23]から読み出し対象のデータを読み出す。
これにより、読み出し処理は終了する。なお、制御部22は、次のデータの読み出し処理の指示があるまで待機状態となる。
このように、ファイル管理装置10は、キャッシュリンク51を参照することにより、FATをReadポイントから辿ることができる。したがって、従来のようにFATを先頭から辿る場合と比較して、処理速度を向上させることが可能になる。
一方、ステップS3において、Readオフセットが、前回のReadポイントより後である(前ではない)場合、NOであると判定されて、処理はステップS7に進む。なお、以下では、読み出し処理の流れの理解を容易なものとすべく、Readオフセット[17]、及び前回のReadポイント[13]の場合を例として説明する。
ステップS7において、制御部22は、前回のReadポイントを、Readポイントに設定する。すなわち、制御部22は、前回のReadポイント[13]を、Readポイントに設定、すなわちReadポイント[13]とする。
ステップS8において、制御部22は、FATを辿ってReadポイントを1つ進める。例えばステップS7の処理でReadポイント[13]に設定された後のステップS8においては、制御部22は、Readポイント[14]に設定する。
ステップS9において、制御部22は、Readポイントが、キャッシュポイントであるかを判定する。すなわち、制御部22は、Readポイントが、キャッシュポイントである[0],[5],[10],[15],または[20]であるかを判定する。
例えばステップS8の処理でReadポイント[14]に設定された場合には、ステップS9においてNOであると判定されて、処理はステップS11に進む。
ステップS11において、制御部22は、Readポイントが、Readオフセットと等しいかを判定する。すなわち、制御部22は、Readポイントが、Readオフセット[17]と等しいかを判定する。
例えばステップS8の処理でReadポイント[14]に設定された場合には、ステップS11においてNOであると判定されて、処理はステップS8に戻され、それ以降の処理が繰り返される。すなわち、ReadポイントがReadオフセット[17]と等しくなるまでの間、すなわちReadポイント[13]になるまでの間、ステップS8乃至S11のループ処理が繰り返される。
ここで、当該ループ処理が複数回繰り返され、所定の回のステップS8において、Readポイント[15]になったものとする。この場合、ステップS9においてYESであると判定され、ステップS10の処理において、「15,25,7」というリンク情報が、エントリE4に保存される。キャッシュにデータが保存されると、処理はステップS11に進み、ステップS11においてNOであると判定されて、処理はステップS8に戻される。
さらに、ステップS8乃至S11のループ処理が複数回繰り返され、所定の回のステップS8において、Readポイント[17]になったものとする。この場合、ステップS9においてNOであると判定され、処理はステップS11に進む。
例えばステップS8の処理でReadポイント[17]に設定された場合には、Readオフセット[17]と等しく、ステップS11においてYESであると判定されて、処理はステップS12に進む。
ステップS12において、制御部22は、クラスタのデータを読み出す。すなわち、制御部22は読み出し部26を制御して、Readオフセット[17]の位置にあるクラスタ[27]から読み出し対象のデータを読み出す。
これにより、読み出し処理は終了する。
以上、説明したように、ファイル管理装置10は、キャッシュリンク51を参照することにより、FATをReadポイントから辿ることができる。したがって、従来のようにFATを先頭から辿る場合と比較して、処理速度を向上させることが可能になる。
次に、所定のファイルに対して、データが追記された場合のFAT41とキャッシュリンク51について、それぞれ図5と図6を用いて説明する。
[データ追記後のFAT41の構成例]
図5はデータ追記後のFAT41の構成を説明する図である。
図5はデータ追記後のFAT41の構成を説明する図である。
データ追記前の図2のFAT41は、クラスタ[52]が所定のファイルの最終クラスタであった。そこから、22クラスタ分のデータが追記された場合、FAT41は、図5に示されるようになる。
具体的には、クラスタ[52]の次クラスタは、クラスタ[53]であり、クラスタ[53]の次クラスタは、クラスタ[54]である。また、クラスタ[54]の次クラスタは、クラスタ[60]であり、クラスタ[60]の次クラスタは、クラスタ[61]である。同様にしてクラスタが連続し、クラスタ[77]の次クラスタは、クラスタ[78]であり、クラスタ[78]の次クラスタは、クラスタ[79]である。そして、クラスタ[79]に対応する項目内に「eof」と記載されていることから、クラスタ[79]が所定のファイルの最終クラスタであることが分かる。
すなわち、図5のFAT41の例では、データ領域42に記録されるデータ追記後の所定のファイルは、クラスタ[10]乃至[31],クラスタ[50],クラスタ[52]乃至[54],クラスタ[60]乃至[79]のクラスタから構成されている。ファイル管理装置10は、このようなFAT41を参照して、この順にクラスタを辿ることにより、読み出し対象のデータを所定のファイルから読み出すことができる。
次に、ファイルへのデータ追記後に、クラスタリンクキャッシュ23にキャッシュされるキャッシュリンク51の詳細について、図6を参照して説明する。
[データ追記後のキャッシュリンクの構成例]
図6は、データ追記後のキャッシュリンク51の構成を説明する図である。
図6は、データ追記後のキャッシュリンク51の構成を説明する図である。
所定のファイルに対してデータが追記され、FAT41のサイズが大きくなっても、クラスタリンクキャッシュ23のメモリサイズは変わらない。したがって、ファイル管理装置10は、FAT41のサイズが大きくなるに従い、当該FAT41に記録されている各クラスタの各リンク情報から抽出されるクラスタの間隔、すなわち、キャッシュポイントの間隔も広くなるように、キャッシュリンク51を生成すればよい。
しかしながら、FAT41のサイズが変わる毎に、キャッシュポイントの間隔が広くなったキャッシュリンク51が一から生成されると、その生成時間がかかり、結果として書き込みの処理速度を低下させてしまう恐れがある。そこで、ファイル管理装置10は、キャッシュリンク51の生成時間を短縮すべく、データ追記前のキャッシュリンク51の一部のエントリEに含めるリンク情報を、データ追記後のクラスタのリンク情報に更新して、当該エントリEを再利用して新たなキャッシュリンク51を生成する。これにより、キャッシュリンク51を一から生成する場合と比較して、生成時間を短縮することができる。
キャッシュリンク51のエントリE内のリンク情報の更新及び再利用のタイミングは、キャッシュポイントの間隔をどれだけ広げるかによって異なる。ここでは、キャッシュポイントの間隔を2倍にする例について説明する。すなわち、クラスタが追記される毎に、現在追記しているクラスタのオフセット値(以下、wpと称する)の、現在のキャッシュリンク51の終端のエントリEが有するオフセット値(以下、ceofと称する)に対する差分が算出される。この差分が、キャッシュポイントの間隔の2倍になった時点で、エントリE内リンク情報が更新されれば、結果として、キャッシュポイントの間隔が2倍になるキャッシュリンク51が得られる。ここで、今現在のキャッシュリンク51におけるキャッシュポイントの間隔は、当該今現在のキャッシュリンク51内で隣接する各エントリEのオフセット値の差分のうち、最小値(以下、min_diffと称する)と等価である。従って、wp−ceofが、キャッシュポイントの間隔の2倍になったタイミング、すなわち、min_diffの2倍になったタイミングが、キャッシュリンク51のエントリE内のリンク情報の更新及び再利用のタイミングとなる。
キャッシュリンク51のエントリE内のリンク情報の更新及び再利用のタイミングになると、リンク情報が更新される対象のエントリE(以下、更新対象のエントリEと称する)が決定される。具体的には、更新対象のエントリEの候補として、各オフセット値の差分がmin_diffとなる隣接する2つのエントリEの組のうち、キャッシュリンク51の先頭に最も近い2つのエントリEの組が選択される。そして、選択された2つのエントリEの組のうち、後ろのエントリEが、更新対象のエントリEとして決定される。
すると、更新対象のエントリEが、キャッシュリンク51の現在の位置から切り離され、その前後のエントリEが繋げられる。一方、更新対象のエントリEのリンク情報が、追記されたクラスタのリンク情報に更新される。そして、更新対象のエントリEは、キャッシュリンク51の最後尾に繋げられる。
図6の例では、オフセット値が29に位置するクラスタ[63]までデータが追記された段階では、キャッシュリンク51の更新及び再利用のタイミングとはならない。すなわち、この場合、wpの値は29であり、ceofの値は、現在のキャッシュリンク51の終端のエントリE5が有するオフセット値の20である。したがって、wp−ceofは9となる。また、現在のキャッシュリンク51内で隣接するエントリE1乃至E5のオフセット値は、それぞれ0,5,10,15,20であることから、それぞれのオフセット値の差分はいずれも5となるので、オフセット値の差分の最小値も5になる。したがって、min_diffの値は、5であり、min_diffの2倍は10となる。すなわち、オフセット値が29に位置するクラスタ[63]までデータが追記された段階では、wp−ceofが、キャッシュポイントの間隔の2倍にはならないので、キャッシュリンク51の更新及び再利用のタイミングとはならない。
次に、オフセット値が30に位置するクラスタ[64]までデータが追記されると、キャッシュリンク51の更新及び再利用のタイミングとなる。すなわち、この場合、wpの値は30であり、ceofの値は、現在のキャッシュリンク51の終端のエントリE5が有するオフセット値の20である。したがって、wp−ceofは10となる。また、現在のキャッシュリンク51内で隣接するエントリE1乃至E5のオフセット値は、それぞれ0,5,10,15,20であることから、それぞれのオフセット値の差分はいずれも5となるので、オフセット値の差分の最小値も5になる。したがって、min_diffの値は、5であり、min_diffの2倍は10となる。すなわち、オフセット値が30に位置するクラスタ[64]までデータが追記された段階で、wp−ceofが、キャッシュポイントの間隔の2倍になるので、キャッシュリンク51のエントリE内のリンク情報の更新及び再利用のタイミングとなる。
キャッシュリンク51のエントリE内のリンク情報の更新及び再利用のタイミングになると、更新対象のエントリEが決定される。更新対象のエントリEの候補として、各オフセット値の差分がmin_diff(すなわち、5)となる隣接する2つのエントリEの組として、エントリE1とE2、エントリE2とE3、エントリE3とエントリE4、エントリE4とエントリE5の4つの組がある。このうち、キャッシュリンク51の先頭に最も近いエントリE1とE2の組が選択される。そして、エントリE1とE2の組のうち、後ろのエントリE2が、更新対象のエントリEとして決定される。
すると、更新対象として決定されたエントリE2は、キャッシュリンク51の現在の位置から切り離され、その前後のエントリE1とE3が繋げられる。一方、更新対象のエントリE2のリンク情報が、追記されたクラスタ[64]のリンク情報である「30,64,16」に更新される。そして、更新対象のエントリE2は、キャッシュリンク51の最後尾に繋げられて、エントリE6となる。この段階で、キャッシュリンク51に含まれるエントリEは、エントリE1,E3乃至E6となり、隣接する各エントリEのオフセット値は、0,10,15,20,30となる。
さらにクラスタのデータが追記され、オフセット値が31に位置するクラスタ[65]までデータが追記された段階では、キャッシュリンク51の更新及び再利用のタイミングとはならない。すなわち、この場合、wpの値は31であり、ceofの値は、現在のキャッシュリンク51の終端のエントリE6が有するオフセット値の30である。したがって、wp−ceofは1となる。また、現在のキャッシュリンク51内で隣接するエントリE1,E3乃至E6のオフセット値は、それぞれ0,10,15,20,30であることから、それぞれのオフセット値の差分は5または10となるので、オフセット値の差分の最小値は5になる。したがって、min_diffの値は、5であり、min_diffの2倍は10となる。すなわち、オフセット値が31に位置するクラスタ[65]までデータが追記された段階では、wp−ceofが、キャッシュポイントの間隔の2倍にはならないので、キャッシュリンク51の更新及び再利用のタイミングとはならない。
さらにクラスタのデータが追記され、オフセット値が39に位置するクラスタ[73]までデータが追記された段階では、キャッシュリンク51の更新及び再利用のタイミングとはならない。すなわち、この場合、wpの値は39であり、ceofの値は、現在のキャッシュリンク51の終端のエントリE6が有するオフセット値の30である。したがって、wp−ceofは9となる。また、現在のキャッシュリンク51内で隣接するエントリE1乃至E6のオフセット値は、それぞれ0,10,15,20,30であることから、それぞれのオフセット値の差分は5または10となるので、オフセット値の差分の最小値は5になる。したがって、min_diffの値は、5であり、min_diffの2倍は10となる。すなわち、オフセット値が39に位置するクラスタ[73]までデータが追記された段階では、wp−ceofが、キャッシュポイントの間隔の2倍にはならないので、キャッシュリンク51の更新及び再利用のタイミングとはならない。
次に、オフセット値が40に位置するクラスタ[74]までデータが追記されると、キャッシュリンク51の更新及び再利用のタイミングとなる。すなわち、この場合、wpの値は40であり、ceofの値は、現在のキャッシュリンク51の終端のエントリE6が有するオフセット値の30である。したがって、wp−ceofは10となる。また、現在のキャッシュリンク51内で隣接するエントリE1乃至E6のオフセット値は、それぞれ0,10,15,20,30であることから、それぞれのオフセット値の差分は5または10となるので、オフセット値の差分の最小値は5になる。したがって、min_diffの値は、5であり、min_diffの2倍は10となる。すなわち、オフセット値が40に位置するクラスタ[74]までデータが追記された段階で、wp−ceofが、キャッシュポイントの間隔の2倍になるので、キャッシュリンク51のエントリE内のリンク情報の更新及び再利用のタイミングとなる。
キャッシュリンク51のエントリE内のリンク情報の更新及び再利用のタイミングになると、更新対象のエントリEが決定される。更新対象のエントリEの候補として、各オフセット値の差分がmin_diff(すなわち、5)となる隣接する2つのエントリEの組として、エントリE3とエントリE4、エントリE4とエントリE5の2つの組がある。このうち、キャッシュリンク51の先頭に最も近いエントリE3とエントリE4の組が選択される。そして、エントリE3とエントリE4の組のうち、後ろのエントリE4が、更新対象のエントリEとして決定される。
すると、更新対象として決定されたエントリE4は、キャッシュリンク51の現在の位置から切り離され、その前後のエントリE3とE5が繋げられる。一方、更新対象のエントリE4のリンク情報が、追記されたクラスタ[40]のリンク情報である「40,74,6」に更新される。そして、更新対象のエントリE4は、キャッシュリンク51の最後尾に繋げられて、エントリE7となる。この段階で、キャッシュリンク51に含まれるエントリEは、エントリE1,E3,E5乃至E7となり、隣接する各エントリEのオフセット値は、0,10,20,30,40となる。
このように、キャッシュリンク51は、データ追記によってFAT41のサイズが大きくなるに従い、キャッシュポイントの間隔が広くなるように生成される。これにより、キャッシュリンク51のサイズは変更されずに、新たなリンク情報を含むキャッシュリンク51が生成される。また、データ追記前のキャッシュリンク51の一部のエントリEに含めるリンク情報が、データ追記後のクラスタのリンク情報に更新されて、当該エントリEが再利用されることで、キャッシュリンク51を一から生成する場合と比較して、生成時間を短縮することができる。
次に、図1に示されるファイル管理システム1が有する機能のうち、ファイルへのデータ追記を実現させるための制御部22の機能的構成例を、図7を用いて説明する。
[制御部の機能的構成例]
図7は、制御部22の機能的構成例を示すブロック図である。
図7は、制御部22の機能的構成例を示すブロック図である。
制御部22は、更新判定部61、更新対象決定部62、構造変換部63、リンク情報更新部64、及びデータ追記部65から構成される。
更新判定部61は、キャッシュリンク51を更新及び再利用するタイミングになったか否かを判定する。
更新対象決定部62は、キャッシュリンク51に含まれる複数のエントリEの中から、更新対象のエントリEを決定する。
構造変換部63は、更新対象決定部62により決定された更新対象のエントリEを、もとの位置から切り離し、キャッシュリンク51の最後尾に繋げる。また、構造変換部63は、更新対象のエントリEがキャッシュリンク51から切り離された後、その前後のエントリEを繋げる。構造変換部63は、キャッシュリンク51の構造を変換する時、エントリEが有するリンク情報のうち、次のリンク先のエントリEのポインタの情報を更新する。
リンク情報更新部64は、更新対象決定部62により決定された更新対象のエントリEのリンク情報を、追記されたクラスタのリンク情報に更新する。
データ追記部65は、クラスタのデータを追記する。
このような制御部22によるデータの追記の処理(以下、追記処理と称する)について、図8を参照して説明する。
[追記処理]
図8は、追記処理の流れについて説明するフローチャートである。
図8は、追記処理の流れについて説明するフローチャートである。
追記処理は、ユーザによる操作部21の所定の操作により、開始される。
ステップS31において、更新判定部61は、wp−ceof≧min_diff×2になったかを判定する。すなわち、更新判定部61は、現在追記しているクラスタのオフセット値wpの、現在のキャッシュリンク51の終端のエントリEが有するオフセット値ceofに対する差分が、現在のキャッシュリンク51内で隣接するエントリEのオフセット値の差分の最小値min_diffの2倍になったかを判定する。
wp−ceof<min_diff×2である場合、ステップS31においてNOであると判定されて、処理はステップS32に進む。
ステップS32において、データ追記部5は、クラスタのデータを追記する。すなわち、この場合、キャッシュリンク51のリンク情報は更新されない。
クラスタのデータが追記されると、データ追記処理は終了する。なお、制御部22は、次のデータの追記処理の指示があるまで待機状態となる。
これに対して、wp−ceof≧min_diff×2となった場合、ステップS31においてYESであると判定されて、処理はステップS33に進む。すなわち、wp−ceof≧min_diff×2となったタイミングが、キャッシュリンク51のエントリE内のリンク情報の更新及び再利用のタイミングとなる。
ステップS33において、更新対象決定部62は、更新対象のエントリEを決定する。更新対象決定部62は、更新対象のエントリEの候補として、各オフセット値の差分がmin_diffとなる隣接する2つのエントリEの組のうち、キャッシュリンク51の先頭に最も近い2つのエントリEの組を選択する。そして、更新対象決定部62は、選択した2つのエントリEの組のうち、後ろのエントリEを、更新対象のエントリEとして決定する。
ステップS34において、構造変換部63は、更新対象のエントリEを切り離して、前後のエントリEを繋げる。
ステップS35において、リンク情報更新部64は、更新対象のエントリEのリンク情報を更新する。すなわち、リンク情報更新部64は、更新対象のエントリEのリンク情報を、追記されたクラスタのリンク情報に更新する。
ステップS36において、構造変換部63は、更新対象のエントリEをキャッシュリンク51の最後に繋ぐ。更新対象のエントリEがキャッシュリンク51の最後に繋げられると、処理はステップS32に進む。
ステップS32において、データ追記部5は、クラスタのデータを追記する。すなわち、この場合、キャッシュリンク51が更新されるとともに、クラスタのデータが追記される。
これにより、追記処理は終了する。
上述の例では、所定のファイルの先頭からのオフセット値が5毎に、キャッシュリンク51のキャッシュポイントが設定された。しかしながら、キャッシュリンク51のキャッシュポイントの間隔はこれに限定されず、任意の間隔が採用されてもよい。また、データ追記後は、キャッシュリンク51のキャッシュポイントの間隔が、データ追記前の2倍の間隔に設定された。しかしながら、データ追記後のキャッシュリンク51のキャッシュポイントの間隔はこれに限定されず、データ追記前のキャッシュポイントの間隔よりも広ければ足りる。
このように、データ追記によりFAT41のサイズが大きくなっても、キャッシュリンク51のサイズは変更されずに、新たなリンク情報を含むキャッシュリンク51が生成される。したがって、クラスタリンクキャッシュ23のメモリサイズが限られている場合であっても、新たなリンク情報を含むキャッシュリンク51を記録することができる。
また、新たなリンク情報を含むキャッシュリンク51が生成される場合、データ追記前のキャッシュリンク51の一部のエントリEに含めるリンク情報が、データ追記後のクラスタのリンク情報に更新されて、当該エントリEが再利用される。したがって、キャッシュリンク51の生成時間を短縮することができ、結果として書き込みの処理速度を向上させることができる。
また、データ追記後も、新たなリンク情報を含むキャッシュリンク51を参照することにより、FATをReadポイントから辿ることができる。したがって、データ追記後でも、従来のようにFATを先頭から辿る場合と比較して、処理速度を向上させることが可能になる。
[本技術のプログラムへの適用]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
この場合、上述した情報処理装置の少なくとも一部として、例えば、図9に示されるパーソナルコンピュータを採用してもよい。
図9において、CPU101は、ROM(Read Only Memory)102に記録されているプログラムにしたがって各種の処理を実行する。またはCPU101は、記憶部108からRAM(Random Access Memory)103にロードされたプログラムにしたがって各種の処理を実行する。RAM103にはまた、CPU101が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU101、ROM102、及びRAM103は、バス104を介して相互に接続されている。このバス104にはまた、入出力インタフェース105も接続されている。
入出力インタフェース105には、キーボード、マウスなどよりなる入力部106、ディスプレイなどよりなる出力部107が接続されている。また、ハードディスクなどより構成される記憶部108、及び、モデム、ターミナルアダプタなどより構成される通信部109が接続されている。通信部109は、インターネットを含むネットワークを介して他の装置(図示せず)との間で行う通信を制御する。
入出力インタフェース105にはまた、必要に応じてドライブ110が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブルメディア111が適宜装着される。そして、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部108にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
このようなプログラムを含む記録媒体は、図9に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア(パッケージメディア)111により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM102や、記憶部108に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
なお、本技術は、以下のような構成もとることができる。
(1)
FATファイルシステムにより、所定の記録媒体に、複数のクラスタが記録されるとともに、前記複数のクラスタのリンク情報から構成されるFATが記録されている場合、前記FATから抽出された前記リンク情報を含む情報からなるエントリが、所定間隔のクラスタ毎に配置されて構成されるキャッシュリンクをキャッシュするキャッシュリンク保持部と、
前記記録媒体上の前記クラスタにデータが追記されて、前記キャッシュリンクを更新する場合、前記キャッシュリンクを構成する複数の前記エントリのうち、更新対象のエントリについて、前記情報を更新する情報更新部と、
前記情報更新部により更新された前記更新対象のエントリを、前記キャッシュリンクのもとの位置から切り離して、前記キャッシュリンクの最後尾に繋げる構造変換部とを備える
情報処理装置。
(2)
前記エントリは、前記情報として、オフセット値、クラスタ番号、及び連続クラスタ数を含む
前記(1)に記載の情報処理装置。
(3)
前記キャッシュリンクの最終エントリに含まれる前記オフセット値から、追記対象のクラスタのオフセット値までの距離に基づいて、前記キャッシュリンクは更新される
前記(1)または(2)に記載の情報処理装置。
(4)
前記キャッシュリンクの最終エントリに含まれるオフセット値から、追記対象のクラスタのオフセット値までの距離が、前記キャッシュリンク内で隣接する前記エントリの前記オフセット値の差分の最小値の所定の倍数となった場合に、前記キャッシュリンクは更新される
前記(1)、(2)、または(3)に記載の情報処理装置。
(1)
FATファイルシステムにより、所定の記録媒体に、複数のクラスタが記録されるとともに、前記複数のクラスタのリンク情報から構成されるFATが記録されている場合、前記FATから抽出された前記リンク情報を含む情報からなるエントリが、所定間隔のクラスタ毎に配置されて構成されるキャッシュリンクをキャッシュするキャッシュリンク保持部と、
前記記録媒体上の前記クラスタにデータが追記されて、前記キャッシュリンクを更新する場合、前記キャッシュリンクを構成する複数の前記エントリのうち、更新対象のエントリについて、前記情報を更新する情報更新部と、
前記情報更新部により更新された前記更新対象のエントリを、前記キャッシュリンクのもとの位置から切り離して、前記キャッシュリンクの最後尾に繋げる構造変換部とを備える
情報処理装置。
(2)
前記エントリは、前記情報として、オフセット値、クラスタ番号、及び連続クラスタ数を含む
前記(1)に記載の情報処理装置。
(3)
前記キャッシュリンクの最終エントリに含まれる前記オフセット値から、追記対象のクラスタのオフセット値までの距離に基づいて、前記キャッシュリンクは更新される
前記(1)または(2)に記載の情報処理装置。
(4)
前記キャッシュリンクの最終エントリに含まれるオフセット値から、追記対象のクラスタのオフセット値までの距離が、前記キャッシュリンク内で隣接する前記エントリの前記オフセット値の差分の最小値の所定の倍数となった場合に、前記キャッシュリンクは更新される
前記(1)、(2)、または(3)に記載の情報処理装置。
本技術は、FATファイルシステムを用いる情報処理装置に適用することができる。
1 ファイル管理システム, 10 ファイル管理装置, 11 記録媒体, 21 操作部, 22 制御部, 23 クラスタリンクキャッシュ, 24 入力部, 25 書き込み部, 26 読み出し部, 27 出力部, 41 FAT, 42 データ領域, 51 キャッシュリンク, 61 更新判定部, 62 更新対象決定部, 63 構造変換部, 64 リンク情報更新部, 65 データ追記部
Claims (6)
- FATファイルシステムにより、所定の記録媒体に、複数のクラスタが記録されるとともに、前記複数のクラスタのリンク情報から構成されるFATが記録されている場合、前記FATから抽出された前記リンク情報を含む情報からなるエントリが、所定間隔のクラスタ毎に配置されて構成されるキャッシュリンクの保持部と、
前記記録媒体上の前記クラスタにデータが追記されて、前記キャッシュリンクを更新する場合、前記キャッシュリンクを構成する複数の前記エントリのうち、更新対象のエントリについて、前記情報を更新する情報更新部と、
前記情報更新部により更新された前記更新対象のエントリを、前記キャッシュリンクのもとの位置から切り離して、前記キャッシュリンクの最後尾に繋げる構造変換部と
を備える情報処理装置。 - 前記エントリは、前記情報として、オフセット値、クラスタ番号、及び連続クラスタ数を含む
請求項1に記載の情報処理装置。 - 前記キャッシュリンクの最終エントリに含まれる前記オフセット値から、追記対象のクラスタのオフセット値までの距離に基づいて、前記キャッシュリンクは更新される
請求項2に記載の情報処理装置。 - 前記キャッシュリンクの最終エントリに含まれるオフセット値から、追記対象のクラスタのオフセット値までの距離が、前記キャッシュリンク内で隣接する前記エントリの前記オフセット値の差分の最小値の所定の倍数となった場合に、前記キャッシュリンクは更新される
請求項3に記載の情報処理装置。 - FATファイルシステムにより、所定の記録媒体に、複数のクラスタが記録されるとともに、前記複数のクラスタのリンク情報から構成されるFATが記録されている場合、前記FATから抽出された前記リンク情報を含む情報からなるエントリが、所定間隔のクラスタ毎に配置されて構成されるキャッシュリンクをキャッシュする保持ステップと、
前記記録媒体上の前記クラスタにデータが追記されて、前記キャッシュリンクを更新する場合、前記キャッシュリンクを構成する複数の前記エントリのうち、更新対象のエントリについて、前記情報を更新する情報更新ステップと、
前記情報更新ステップの処理により更新された前記更新対象のエントリを、前記キャッシュリンクのもとの位置から切り離して、前記キャッシュリンクの最後尾に繋げる構造変換ステップと
を含む情報処理方法。 - FATファイルシステムにより、所定の記録媒体に、複数のクラスタが記録されるとともに、前記複数のクラスタのリンク情報から構成されるFATが記録されている場合、前記FATから抽出された前記リンク情報を含む情報からなるエントリが、所定間隔のクラスタ毎に配置されて構成されるキャッシュリンクをキャッシュし、
前記記録媒体上の前記クラスタにデータが追記されて、前記キャッシュリンクを更新する場合、前記キャッシュリンクを構成する複数の前記エントリのうち、更新対象のエントリについて、前記情報を更新し、
更新された前記更新対象のエントリを、前記キャッシュリンクのもとの位置から切り離して、前記キャッシュリンクの最後尾に繋げる
ステップを含む制御処理をコンピュータに実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011132018A JP2013003701A (ja) | 2011-06-14 | 2011-06-14 | 情報処理装置及び方法、並びにプログラム |
US13/489,779 US8868840B2 (en) | 2011-06-14 | 2012-06-06 | Information processing device and method, and program |
CN2012101873650A CN102841917A (zh) | 2011-06-14 | 2012-06-07 | 信息处理设备和方法以及程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011132018A JP2013003701A (ja) | 2011-06-14 | 2011-06-14 | 情報処理装置及び方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013003701A true JP2013003701A (ja) | 2013-01-07 |
Family
ID=47354678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011132018A Withdrawn JP2013003701A (ja) | 2011-06-14 | 2011-06-14 | 情報処理装置及び方法、並びにプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8868840B2 (ja) |
JP (1) | JP2013003701A (ja) |
CN (1) | CN102841917A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015121925A (ja) * | 2013-12-24 | 2015-07-02 | 富士通セミコンダクター株式会社 | ファイルアクセスプログラム、ファイルアクセス方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110062922B (zh) | 2017-09-21 | 2021-12-14 | 华为技术有限公司 | 流处理系统和方法 |
CN108763531B (zh) * | 2018-05-31 | 2021-08-27 | 深圳市易甲文技术有限公司 | 一种mdvr文件存储系统及其运行方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003308234A (ja) | 2002-02-18 | 2003-10-31 | Matsushita Electric Ind Co Ltd | ファイル再生装置及びファイル再生方法 |
EP1561166B1 (en) * | 2002-10-17 | 2008-01-02 | Matsushita Electric Industrial Co., Ltd. | File-update apparatus |
JP2004280752A (ja) * | 2003-03-19 | 2004-10-07 | Sony Corp | データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム |
TW200504577A (en) * | 2003-07-16 | 2005-02-01 | Matsushita Electric Ind Co Ltd | Management method for data storage in data recording medium, and information processing device using the same |
KR100874702B1 (ko) * | 2006-10-02 | 2008-12-18 | 삼성전자주식회사 | 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법 |
-
2011
- 2011-06-14 JP JP2011132018A patent/JP2013003701A/ja not_active Withdrawn
-
2012
- 2012-06-06 US US13/489,779 patent/US8868840B2/en not_active Expired - Fee Related
- 2012-06-07 CN CN2012101873650A patent/CN102841917A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015121925A (ja) * | 2013-12-24 | 2015-07-02 | 富士通セミコンダクター株式会社 | ファイルアクセスプログラム、ファイルアクセス方法 |
Also Published As
Publication number | Publication date |
---|---|
US8868840B2 (en) | 2014-10-21 |
US20120324169A1 (en) | 2012-12-20 |
CN102841917A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9043541B2 (en) | Storage control device, storage device, and control method for controlling storage control device | |
US9753659B2 (en) | Generating enumerated information in which a plurality of files are enumerated in a sequential medium | |
WO2013080464A1 (en) | Optimizing migration/copy of de-duplicated data | |
US20200081918A1 (en) | Efficient graph optimization | |
CN102272751B (zh) | 在数据库环境通过背景同步的数据完整性 | |
CN103500146A (zh) | 虚拟机磁盘存储数据迁移方法和系统 | |
JP6391061B2 (ja) | テープ上へのファイル書き込み方法 | |
CN107798063B (zh) | 快照处理方法和快照处理装置 | |
CN104461384B (zh) | 一种数据写入方法及存储设备 | |
US20240086332A1 (en) | Data processing method and system, device, and medium | |
JP6052812B2 (ja) | テープ上のファイルの管理、書き込み、及び読み出し方法 | |
US8719235B2 (en) | Controlling tape layout for de-duplication | |
JP2013003701A (ja) | 情報処理装置及び方法、並びにプログラム | |
JP2014186412A (ja) | 制御装置,ストレージ装置,及び制御プログラム | |
CN112995257B (zh) | 基于云存储架构的缓存扩容方法、装置以及存储介质 | |
US20130232110A1 (en) | Method and apparatus for saving a document | |
JP2015215788A (ja) | メディアへのファイル書き込みに伴うメタ情報の効率的な利用 | |
JP5171211B2 (ja) | データ形式変換装置 | |
JPWO2014136172A1 (ja) | データベース装置、プログラムおよびデータ処理方法 | |
US11287993B2 (en) | Method, device, and computer program product for storage management | |
CN102508790A (zh) | 一种应用于内容解析存储的基于内容的缓存方法 | |
JP5374056B2 (ja) | データ管理方法 | |
JP2013171549A (ja) | 乱数処理装置、乱数処理方法、及びプログラム | |
JP6648596B2 (ja) | ファイルシステム制御装置、ストレージシステム、ファイルシステム制御方法、及び、プログラム | |
JP5515218B2 (ja) | データアクセス方法およびデータアクセス装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140902 |