JP4434379B2 - 情報処理装置及びその方法、記録媒体 - Google Patents

情報処理装置及びその方法、記録媒体 Download PDF

Info

Publication number
JP4434379B2
JP4434379B2 JP27514899A JP27514899A JP4434379B2 JP 4434379 B2 JP4434379 B2 JP 4434379B2 JP 27514899 A JP27514899 A JP 27514899A JP 27514899 A JP27514899 A JP 27514899A JP 4434379 B2 JP4434379 B2 JP 4434379B2
Authority
JP
Japan
Prior art keywords
file
data
read
order
fat
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.)
Expired - Fee Related
Application number
JP27514899A
Other languages
English (en)
Other versions
JP2001101046A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP27514899A priority Critical patent/JP4434379B2/ja
Priority to US09/671,728 priority patent/US6604170B1/en
Publication of JP2001101046A publication Critical patent/JP2001101046A/ja
Application granted granted Critical
Publication of JP4434379B2 publication Critical patent/JP4434379B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

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)

Description

【0001】
【発明の属する技術分野】
本発明は、記憶媒体に記憶しているファイルのファイル名と当該ファイルの先頭にあるデータを記憶している先頭クラスタのアドレスとを対応付けてエントリとして記憶するディレクトリエントリと、前記ファイルの1つが記憶されている複数のクラスタの並び順をチェインとして記憶するファイルアロケーションテーブルと、を前記記憶媒体上で管理する情報処理装置及びその方法、記録媒体に関するものである。
【0002】
【従来の技術】
<FATファイルシステム>
ファイル割り当て表(FAT:File Allocation Table)を使用してファイルを管理するファイルシステムは、一般にFATファイルシステムと呼ばれている。また、FATファイルシステムで使用されることを前提にフォーマットされたディスク媒体は、一般にFAT型ディスクと呼ばれている。
【0003】
図13は、主にMicrosoft社の提供するオペレーティングシステム(OS)であるMS−DOS/MS−Windows/MS−Windows95,98/MS−WindowsNTで使用されるFAT型ディスクの記録フォーマットの例を示したものである。
【0004】
FAT型ディスクに限らず「ディスク」と呼ばれる記憶媒体は、セクタと呼ばれる単位で複数のブロックに分割され、ディスク上に記録されたデータはセクタ単位で読み書きが行われる。1セクタには、通常512バイト、もしくは1,024バイトのデータを記録できる。
【0005】
1301は先頭の1セクタ(論理セクタ番号0)を示しており、一般にブートセクタと呼ばれている。ブートセクタ1301には、オペレーティングシステムをロードするためのブートプログラムや、後述するFATやルートディレクトリエントリを構成するセクタの個数などの情報が記録されている。
【0006】
1302はFATであり、ファイルへのクラスタの割り当て(アロケーション)状況を記録する領域である。FAT1302は、図13に示すように2重化され(図13のFAT1とFAT2)、ディスク上に連続して配置されている。つまり、FAT1とFAT2には常に同じ内容のものが記録されている。
【0007】
1303はルートディレクトリエントリである。ルートディレクトリエントリ1303の1つの項目は、32バイトで構成され、各項目にはFAT型ディスクのルートディレクトリに存在するファイルやディレクトリ(サブディレクトリ)の名前、ファイルの大きさ(バイト単位で表されたファイルのサイズ)、後述するデータ領域においてディレクトリエントリ上のファイルに対応する実際のファイルの内容(データ本体)が記録されているクラスタ群の内、ファイルの先頭にあるデータが記録されたクラスタの番号(開始クラスタ番号)などの情報が記録されている。
【0008】
1304はデータ領域であり、実際のファイルの内容(データ本体)やサブディレクトリに関する情報を記録する領域である。データ領域1304は、クラスタと呼ばれる単位で管理されている。クラスタとは、連続する複数のセクタを一つの単位とするもので、1クラスタは2のべき乗(1,2,4,8,16,・・・)で表される個数のセクタで構成されている。以降では説明を簡単にするために、1クラスタは1セクタで構成されているものとする。
【0009】
図14は図13のFAT1302領域に記録された内容の概念図である。FAT1302の各項目1402は、データ領域1304のクラスタ番地1403と1対1に対応するようになっている。FAT1302の各項目1402は、ファイルの読出時に正しい順番で、そのファイルを構成するクラスタ群の読出が行えるように、クラスタ群の並び順(FATチェイン)を記録するために使われる。つまり、FAT1302の各項目1402の内容には、次に読み出すべきクラスタ番地の値を順に記録して行き、データの最後となるクラスタには、それが最後のクラスタであることを表す値(例えば、FFFFh)を記録する。以上によりファイルを構成するクラスタ群の順番を正しくつなげることができる。
【0010】
図14を参照してさらに具体的に説明すれば、例えば、あるルートディレクトリに存在するファイルの開始クラスタ番地1401が、ルートディレクトリエントリ1303に記録された情報より0004h番地であったとすると、FAT項目1402の0004h番目の項目には、0005hと書かれているので、続きのデータ(1403の‘b’)がデータ領域1304の0005h番目のクラスタ番地に記録されていることが分かる。同様にして、FAT項目1402の0005h番目の項目には000Ahと書かれているので、さらに続きのデータ(1403の‘c’)が000Ah番目のクラスタ番地に記録されていることが分かる。FAT項目1402の000Ah番目の項目には、FATチェインの終了を示すFFFFhが書かれているので、データ領域1304の000Ah番目のクラスタ番地が最後のデータが含まれているクラスタ番地となる。尚、データ領域1304のクラスタの内、どのファイルにも使用されていないクラスタ(未使用クラスタ)に対応するFAT項目1402には、未使用を表す値として0000hが書かれている。
<FATファイルシステムにおけるデータの読み書き>
次に、従来のFATファイルシステムにおいて、FAT型ディスク上に存在するファイルをオープンし、そのファイルのデータを読み書きする場合の処理の流れを説明する。説明を簡単にするため、読み書きするファイルは、ルートディレクトリ上のものを対象とし、エラー処理の説明も省略する。
<ファイルの読出処理>
まず、ファイルの読出処理について説明する。
【0011】
あるユーザプログラムからファイル名が指定され、そのファイルの読出が要求(ファイルオープン)されると、始めにルートディレクトリエントリ1303のデータを読み出し、ユーザプログラムから与えられたファイル名と一致するファイル名を含むエントリを検索する。ファイル名が一致するエントリが見つかると、そのエントリ項目からデータ本体が記録されているデータ領域1304の開始クラスタ番地とファイルサイズを取得する。データ領域1304の開始クラスタ番地に記録された実際のファイルデータを読み取ると、次に前述のFAT1302領域を読み出し、開始クラスタ番地に対応する位置に記録されたFAT項目のデータを解析し、続きのファイルデータが記録されているクラスタ番地を算出する。以下、同様にして、開始クラスタ番地を起点にFATチェインをたどり、最後のデータが含まれるクラスタ番地に至るまでファイルデータを次々に読み出して行く。
<ファイルの新規作成処理>
次に、データの書込処理の内、ファイルの新規作成処理について説明する。
【0012】
まず、ファイルオープンが要求されると、ルートディレクトリエントリ1303のデータを読み出し、与えられたファイル名が既にルートディレクトリエントリ1303上に存在するものと重複しないことを確認する。ファイル名が重複していない場合、ルートディレクトリエントリ1303上に、この新規ファイル用のディレクトリエントリを作成する。次に、FAT1302のFAT項目のデータを読み出して、未使用(0000h)の値が記録されたFAT項目を検索する。未使用の値が記録されたFAT項目が見つかったらデータ領域1304の対応するクラスタ番地に、所望のデータを書き込む。それと同時に、FAT1302において未使用クラスタとして見つけられたクラスタ番地に対応するFAT項目の値を未使用(0000h)から使用中(FFFFh)に書き換える。データ領域1304に書き込むべきデータが1クラスタ内では収まり切らない場合には、同様にして、さらにFAT1302上で未使用の値が記録されたFAT項目を検索し、そのFAT項目に対応するデータ領域1304のクラスタ番地にデータを書き込む。同時に、未使用クラスタとして見つけられたクラスタ番地に対応するFAT項目の値をFFFFhに書き換える。この時、さらに加えて一つ前の処理で検索されたクラスタ番地に対応するFAT項目の値を、FFFFhから今回の処理で検索されたクラスタ番地に書き換える。この手順を繰り返すことによって、クラスタの並び順が次々に記録され、FATチェインが完成する。
【0013】
以上の手順により、全てのデータをデータ領域1304に書き込み、また、FAT1302へのFATチェインの書込も終了したら、最後に先に確保した新規ファイル用のディレクトリエントリに、新規ファイル名、開始クラスタ番地、ファイルサイズなどの情報を記録する。このようにして、ファイルの新規作成が完了する。
<既存ファイルへのデータ追加書込処理>
既存ファイルへのデータ追加書込処理は、ファイルの読出処理と同様にして、ファイルオープンが要求されると、まず、開始クラスタ番地とFAT1302のデータからFATチェインを順にたどり最後のデータが記録されているクラスタ番地を得る。このクラスタには、既存のデータがクラスタのサイズ内の途中まで書き込まれている。従って、クラスタの途中まで埋められたデータの末尾に続けて追加書込対象のデータを書き込んで行く。追加書込対象のデータが、そのクラスタ内に収まり切らなかった場合には、ファイルの新規処理の場合と同様に、FAT1302から未使用の値が記録されたFAT項目を検索し、データ領域1304の対応する未使用クラスタにデータを書き込むと同時に、対応するFAT項目を書き換え、FATチェインを完成させる。
【0014】
最後に、ルートディレクトリエントリ1303にデータ追加書込後のファイルサイズなどの情報を記録する。
<既存ファイルへのデータ上書処理>
既存ファイルへのデータ上書処理は、現在のFATチェインにより得られるクラスタの並び順にしたがって、開始クラスタ番地から順に各FAT項目に対応するデータ領域1304のクラスタを所望のデータで上書きして行く。この時、既存ファイルのデータサイズが上書対象のファイルのデータサイズより大きい場合には、上書対象のファイルのデータの最終クラスタに対応するFAT項目の値にはFFFFhを書き込む。また、上書きされる以前のFATチェインの内で上書対象のデータで埋められなかった余りのクラスタに対応するFAT項目の値については、未使用クラスタであることを示す0000hを書き込む。反対に、上書対象のファイルのデータサイズが既存ファイルのデータサイズよりも大きい場合には、上書きされる以前のFATチェインから得られるクラスタ全てに所望のデータを書き込んだ後、既存ファイルへのデータ追加書込処理と同様にして、FAT1302上で未使用の値が記録されたFAT項目を検索し、そのFAT項目に対応するデータ領域1304の未使用クラスタにデータを書き込んで行く。
【0015】
最後に、ルートディレクトリエントリ1303にデータ上書後のファイルサイズなどの情報を記録する。
【0016】
【発明が解決しようとする課題】
しかしながら、上記従来のFATファイルシステムのように、あるファイルに割り当てられたクラスタの状況をFAT1302に記録して管理する方法では、FAT1302とデータ領域1304が分離されている。また、あるファイルのデータ本体が記録されたクラスタもデータ領域1304上に散在するため、ファイルの読出を行う場合には、データ領域1304から1クラスタ分のデータを読み出す毎に、対応するFAT項目の読み出しと、次に読み出すクラスタを算出する処理を行う必要がある。また、ファイルへのデータ書込を行う場合にも、データを書き込むべきクラスタを検索するためにはFAT1302に散在するFAT項目を検索する必要がある。このように、従来のFATファイルシステムではFAT1302に記録された次のクラスタアドレスへのポインタを頼りに、FATチェインをたどって行くという仕様のため、ファイルの読出/書込処理に負担がかかり、また、その処理に時間を要するという問題があった。
【0017】
本発明は上記の問題点に艦みてなされたものであり、記憶媒体上に記憶されたデータへのアクセスを高速に行うことができる情報処理装置及びその方法、記録媒体を提供することを目的とする。
【0018】
【課題を解決するための手段】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
記憶媒体に記憶しているファイルのファイル名と当該ファイルの先頭にあるデータを記憶している先頭クラスタのアドレスとを対応付けてエントリとして記憶するディレクトリエントリと、前記ファイルの1つが記憶されている複数のクラスタの並び順をチェインとして記憶するファイルアロケーションテーブルと、を前記記憶媒体上で管理する情報処理装置であって、
前記ディレクトリエントリのエントリに、前記チェイン上で前記先頭クラスタに連続する所定個数のクラスタを読み出すべき順序で読み出すために、該所定個数のクラスタのそれぞれのアドレスをその読出順で保持する拡張情報を書き込む書込手段と、
前記記憶媒体に記憶しているファイルにアクセスする際に、前記ディレクトリエントリと前記拡張情報とを参照して前記記憶媒体にアクセスする実行手段と
前記実行手段の読み出したデータが、アクセスするファイルの末尾のデータであるか否かを判定する判定手段とを備え、
前記拡張情報で前記読出順で保持されている前記所定個数のクラスタのアドレスそれぞれが示すクラスタから、その読出順に従ってデータを読み出して行き、その読出順の最後の読出順で読み出したデータが前記実行手段のアクセスするファイルの末尾のデータでないと前記判定手段が判定した際に、前記実行手段は前記最後の読出順で読み出したデータに続く次のデータを含むクラスタのアドレスを前記ファイルアロケーションテーブルから読み出す
【0020】
また、好ましくは、前記書込手段は、前記記憶媒体について前記ファイル名が記憶された領域の直前に前記拡張情報を書き込む
【0022】
また、好ましくは、前記書込手段は、前記エントリの先頭に該エントリが前記拡張情報を記憶していることを示すインデックスを付加する。
【0024】
上記の目的を達成するための本発明による情報処理方法は以下の構成を備える。即ち、
記憶媒体に記憶しているファイルのファイル名と当該ファイルの先頭にあるデータを記憶している先頭クラスタのアドレスとを対応付けてエントリとして記憶するディレクトリエントリと、前記ファイルの1つが記憶されている複数のクラスタの並び順をチェインとして記憶するファイルアロケーションテーブルと、を前記記憶媒体上で管理する情報処理方法であって、
前記ディレクトリエントリのエントリに、前記チェイン上で前記先頭クラスタに連続する所定個数のクラスタを読み出すべき順序で読み出すために、該所定個数のクラスタのそれぞれのアドレスをその読出順で保持する拡張情報を書き込む書込工程と、
前記記憶媒体に記憶しているファイルにアクセスする際に、前記ディレクトリエントリと前記拡張情報とを参照して前記記憶媒体にアクセスする実行工程と
前記実行工程の読み出したデータが、アクセスするファイルの末尾のデータであるか否かを判定する判定工程とを備え、
前記拡張情報で前記読出順で保持されている前記所定個数のクラスタのアドレスそれぞれが示すクラスタから、その読出順に従ってデータを読み出して行き、その読出順の最後の読出順で読み出したデータが前記実行工程のアクセスするファイルの末尾のデータでないと前記判定工程が判定した際に、前記実行工程は前記最後の読出順で読み出したデータに続く次のデータを含むクラスタのアドレスを前記ファイルアロケーションテーブルから読み出す
【0025】
上記の目的を達成するための本発明による記録媒体は以下の構成を備える。即ち、
記憶媒体に記憶しているファイルのファイル名と当該ファイルの先頭にあるデータを記憶している先頭クラスタのアドレスとを対応付けてエントリとして記憶するディレクトリエントリと、前記ファイルの1つが記憶されている複数のクラスタの並び順をチェインとして記憶するファイルアロケーションテーブルと、を前記記憶媒体上で管理する情報処理を、コンピュータに機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体であって、
前記コンピュータを、
前記ディレクトリエントリのエントリに、前記チェイン上で前記先頭クラスタに連続する所定個数のクラスタを読み出すべき順序で読み出すために、該所定個数のクラスタのそれぞれのアドレスをその読出順で保持する拡張情報を書き込む書込手段と、
前記記憶媒体に記憶しているファイルにアクセスする際に、前記ディレクトリエントリと前記拡張情報とを参照して前記記憶媒体にアクセスする実行手段と
前記実行手段の読み出したデータが、アクセスするファイルの末尾のデータであるか否かを判定する判定手段として機能させ、
前記拡張情報で前記読出順で保持されている前記所定個数のクラスタのアドレスそれぞれが示すクラスタから、その読出順に従ってデータを読み出して行き、その読出順の最後の読出順で読み出したデータが前記実行手段のアクセスするファイルの末尾のデータでないと前記判定手段が判定した際に、前記実行手段は前記最後の読出順で読み出したデータに続く次のデータを含むクラスタのアドレスを前記ファイルアロケーションテーブルから読み出す
【0026】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。
<システム横成>
本実施形態の説明で使用するFAT型ディスクの記録フォーマット、およびFATの構成は、従来例で述べた図13、図14と同じものであるので、その説明は省略する。
【0027】
まず、本実施形態のFATファイルシステムを実現する情報処理装置の機能構成について、図1を用いて説明する。
【0028】
図1は本実施形態の情報処理装置の機能構成を示す図である。
【0029】
101は本FATファイルシステムを利用するユーザプログラムである。102はFATファイルシステムを実現するFATファイルシステムプログラムである。103はユーザプログラム101からの要求を受付け、ファイル名などで指定されたファイルをオープン/クローズする処理や、新規ファイルの作成、既存ファイルの削除処理、ファイル空間上のどの位置から読出/書込操作を行うかを示すファイルポインタの管理などを行なうファイル管理部である。
【0030】
104はディスクから読み出されたディレクトリエントリ情報を解析して、ユーザプログラム101から指示されたファイルの存在を検索したり、またファイルへの書込処理などの操作によって変化した最新のディレクトリエントリ情報をディスクに書き込むといったディレクトリ構造の管理を行うディレクトリエントリ管理部である。105はディスクから読み出されたFATの情報を解析して、読み書きの対象となるファイルのディスク上のクラスタアドレスを算出したり、ファイルのFATチェインを正しく形成してディスクに書き込む処理などを行うFAT管理部である。
【0031】
106はデータの格納領域となる不図示のフロッピーディスクやハードディスク、またはフラッシュメモリカードといったディスク記憶媒体への読出/書込処理を行うディスクドライバ部である。
【0032】
次に、上述の情報処理装置のハードウェア構成について、図2を用いて説明する。
【0033】
図2は本実施形態の情報処理装置のハードウェア構成を示すブロック図である。
【0034】
図2において、201はCPUであり、上述のユーザプログラム101やFATファイルシステムプログラム102をロードして実行する。202はRAMであり、上述のユーザプログラム101やFATファイルシステムプログラム102を格納するほか、ディスク上にあるデータの読出/書込の際にバッファとして使用されたり、各プログラムの動作時に使用する各種変数の退避保存用のワークエリアとして使用される。203はデータ格納領域となるディスクを有するディスク装置である。尚、ディスクには、フロッピーディスク、ハードディスク等の記憶媒体が含まれる。204はCPU201、RAM202、ディスク装置203を相互に接続するシステムバスである。
【0035】
次に、本実施形態のディレクトリエントリの各項目について、図3〜図5を用いて説明する。
【0036】
図3〜図5は本実施形態のディレクトリエントリの各項目を示す図である。
【0037】
尚、図3〜図5に示すディレクトリエントリの1エントリは、32バイトで構成されているものとする。
【0038】
図3は、個々のファイルのFAT情報をクラスタの割り当て順にしたがって記録するために使用されるディレクトリエントリの構造を示している。従来のFAT1302(図13)と区別するため、以降では、便宜上このディレクトリエントリをEXT−FATと呼ぶ。また、EXT−FATにおいて、FAT項目に対応するものをEXT−FAT項目と呼ぶ。
【0039】
EXT−FATの先頭の1バイト(00hバイト目)には、後述する図4、図5の2種のディレクトリエントリと区別するため、また、従来のFATファイルシステムとの互換性を保つために、インデックスとしてビット7に1を立てたものが記録されている。0Bh〜0Dh、および1Ah〜1Bhは、従来のディレクトリエントリの構造と互換性を保つために予約領域とする。残りのスロットには、そのファイルに割り当てられたクラスタ番地が、下位のクラスタ番地から割り当て順にスロットに収まる分だけ記録されている。本実施形態では、クラスタ番地を16bit(2バイト)値で表すものとする。従って、本実施形態のEXT−FATには、13クラスタ分のFAT情報を記録することができる。
【0040】
図4は“abcdefghijklmn.xyz”などといったいわゆるロングファイル名を記録するために使用されるディレクトリエントリの構造を示している。先頭の1バイト(00hバイト目)には、複数に分割されたロングファイル名のエントリが正しい順番に並ぶように、ディレクトリエントリの並び順を表すインデックス(01hから始まる数値)が、0Bhバイト目には属性として固定値0Fが、1Ah〜1Bhバイトには開始クラスタ番号として固定値0000Hがそれぞれ記録されている。ロングファイル名を記録する最後のディレクトリエントリには、最後であることを示すためにインデックスのビット6に1を立てる。0Ch〜0Dhは予約領域である。残りのスロットには、下位アドレスから順に1文字ずつ、ロングファイル名をUnicodeに変換したものが記録されている。
【0041】
図5は前述のロングファイル名から所定の手段により、8文字の「名前」+「.」(ドット)+3文字の「拡張子」(例えば、“acbdef~1.xyz”)という形式(いわゆる8.3形式のショートファイル名)に自動的に生成されたファイル名などを記録するために使用されるディレクトリエントリの構造を示している。00h〜07hには「名前」、08h〜0Ahには「拡張子」が記録されている。「名前」または「拡張子」がそれぞれ8文字あるいは3文字に満たない場合には、下位アドレスの方向に文字を詰めて埋め、残りのスロットを空白(ASCII Codeの20h)で埋める。0Bhにはファイルの属性が、0Eh〜11hにはファイルの作成時刻と日付が、12h〜13hにはファイルがアクセスされた日付が、16h〜19hにはファイルを作成、あるいはファイルが更新された最新の時刻と日付が、1Ah〜1Bhにはファイルデータの開始クラスタ番号が、1Cb〜1Fhにはファイルサイズがそれぞれ記録されている。0Ch〜0Dh、14h〜15hは予約領域となっている。
【0042】
図3〜図5の各ディレクトリエントリ項目で、いずれの用途にも使用されていない未使用なディレクトリエントリでは、未使用であることを示すために先頭の1バイトに00hを記録する。
【0043】
次に、1ファイルに対するディレクトリエントリの構成について、図6を用いて説明する。
【0044】
図6は本実施形態の1ファイルに対するディレクトリエントリの構成を示す図である。
【0045】
図6では、特に、ディレクトリエントリ上で、図3〜図5の各ディレクトリエントリの項目がどのように配置されているかを示している。ある1つのファイルに対するディレクトリエントリは、図3〜図5の順で下位のアドレスから連続して並び、個々のファイルのディレクトリエントリ情報を形成している。
【0046】
次に、本実施形態のディレクトリエントリの全体構成について、図7を用いて説明する。
【0047】
図7は本実施形態のディレクトリエントリの全体構成を示す図である。
【0048】
図7は、特に、ディレクトリエントリ全体を表し、前述の個々のファイルに対するディレクトリエントリ情報がどのように配置されているかの一例を示している。尚、本実施形態では、個々のファイルのディレクトリエントリ上での並び順は特に規定しない。
<詳細動作説明>
次に、本実施形態におけるFATファイルシステムの動作について、図9〜図12を用いて説明する。尚、説明を簡単にするため読出/書込操作を行うファイルは、FAT型ディスクのルートディレクトリ上にあるものを対象とする。またエラー処理についても省略する。
<ファイルの読出処理>
まず、ファイルの読出処理は、大きく分けて、読出対象のファイルの検索処理、検索されたファイルを実際に読み出すファイルの読出処理から構成される。特に、図8でファイルの検索処理、図9でファイルの読出処理を説明する。
【0049】
ユーザプログラム101がファイルオープンを要求すると、ステップS801で、ファイル管理部103は、ファイルオープン対象のファイルを数値として表すためのファイルディスクリプタを確保する。続いて、ディスク上にユーザプログラム101で指定されたファイルを検索する。
【0050】
ファイルの検索は、まず、検索対象のファイルがディレクトリエントリ上に存在するか否かを判定するために、各ディレクトリエントリを解析する。そして、ステップS815で、全ディレクトリエントリの解析が終了したか否かを判定する。全ディレクトリエントリの解析が終了した場合(ステップS815でYES)、処理を終了する。一方、全ディレクトリエントリの解析が終了していない場合(ステップS815でNO)、ステップS816に進み、1セクタ分のディレクトリエントリの解析を終了したか否かを判定する。1セクタ分のディレクトリエントリが解析が終了していない場合(ステップS816でNO)、ステップS817に進み、ディレクトリエントリの読込位置を示すポインタを移動する。一方、1セクタ分のディレクトリエントリの解析が終了した場合(ステップS816でYES)、ステップS802に進む。
【0051】
ステップS802で、ルートディレクトリエントリ1303の先頭の1セクタ分のディレクトリエントリデータをRAM202上に確保されたメモリバッファに読み込む。次に、メモリバッファにはいくつかのファイルに対応するディレクトリエントリが読み込まれているため、ステップS803で、ディレクトリ管理部104は各ディレクトリエントリ項目の先頭の1バイトを比較し、ディレクトリエントリがEXT−FAT情報を含むディレクトリエントリであるか否かを判定する。ディレクトリエントリがEXT−FAT情報を含むディレクトリエントリでない場合(ステップS803でNO)、ステップS806に進む。一方、ディレクトリエントリがEXT−FAT情報を含むディレクトリエントリである場合、つまり、7ビット目に1が立っている場合(ステップS803でYES)、ステップS804に進み、ディレクトリエントリがEXT−FAT情報を含むディレクトリエントリと認識して、そのEXT−FAT情報を変数に記憶する。続いて、ステップS805で、ディレクトリエントリの読込位置を示すポインタを移動する。
【0052】
ステップS806で、現在のポインタの位置から32バイト先にある次のディレクトリエントリの先頭1バイトを解析し、ディレクトリエントリがロングファイル名のディレクトリエントリであるか否かを判定する。ディレクトリエントリがロングファイル名のディレクトリエントリでない場合(ステップS806でNO)、ステップS812に進む。一方、ディレクトリエントリがロングファイル名のディレクトリエントリである場合、つまり、6ビット目に1が立っている場合(ステップS806でYES)、ステップS807に進み、ディレクトリエントリがロングファイル名のディレクトリエントリであると認識して、ロングファイル名を構築する。ステップS809で、ディレクトリエントリの読込位置を示すポインタを移動する。ステップS810で、ロングファイル名のディレクトリエントリが残っているか否かを判定する。残っている場合(ステップS810でYES)、ステップS808に戻る。一方、残っていない場合(ステップS810でNO)、ステップS811に進む。
【0053】
このロングファイル名の構築は、ディレクトリエントリの先頭1バイトの下位5ビットからロングファイル名のエントリ数が分かるため、ステップS808〜ステップS810で、ロングファイル名のエントリ数の分、次々にエントリを解析しながらロングファイル名を構築する。そして、ステップS811で、そのロングファイル名を変数に記憶する。
【0054】
ロングファイル名を構築し終えたら、ステップS812で、現在のポインタの位置から32バイト先にある次のエントリの先頭1バイトを解析し、ディレクトリエントリがショートファイル名のディレクトリエントリであるか否かを判定する。ディレクトリエントリがショートファイル名のディレクトリエントリでない場合(ステップS812でNO)、ステップS815に進む。一方、ディレクトリエントリがショートファイル名のディレクエントリである場合(ステップS812でYES)、ステップS813に進み、ショートファイル名、ファイルの開始クラスタ番号、ファイルのサイズ等の情報を得て変数に記憶する。
【0055】
以上のようにして、ルートディレクトリエントリにあるファイル名を取得し、ステップS814で、取得したファイル名と、ユーザプログラム101により指定されたファイル名と一致するか否かを判定する。ファイル名が一致する場合(ステップS814でYES)、処理を終了する。一方、ファイル名が一致しない場合(ステップS814でNO)、ステップS815に進む。
【0056】
このようにして、ルートディレクトリエントリ上のデータを読み込み、指定されたファイル名と取得したファイル名が一致するか、またはルートディレクトリエントリ上のデータを全て読み出し、指定されたファイル名が存在するか否かを判定するための解析が終了するまで、上記処理を繰り返す。
【0057】
次に、検索されたファイルの読出処理について、図9を用いて説明する。
【0058】
まず、ステップS901で、ショートファイル名のディレクトリエントリから既に変数に記憶されたファイルの開始クラスタアドレスを用い、対応するクラスタのデータを読み込む。次に、読み込んだデータがデータの末尾であるか否かを判定する。末尾である場合(ステップS904でYES)、処理を終了する。一方、末尾でない場合(ステップS904でNO)、ステップS905に進み、指定されたサイズ分のファイルのデータの読出が終了したか否かを判定する。読出が終了した場合(ステップS905でYES)、処理を終了する。一方、読出が終了していない場合(ステップS905でNO)、ステップS906に進む。
【0059】
ステップS906で、EXT−FATのFATチェイン情報が終了しているか否かを判定する。終了していない場合(ステップS906でNO)、ステップS902に進み、既に変数に記憶されたEXT−FAT情報から、開始クラスタアドレスに記録されたデータに続く次のデータを含むクラスタアドレスを読み取る。ステップS903で、読み取ったクラスタアドレスのデータを読み込む。
【0060】
以降は、EXT−FAT情報の各項目を順にたどりながら、ユーザプログラム101で指定されたファイルのデータを終端までの読出が終了するか(ステップS904でYES)、または、指定されたサイズ分のファイルのデータの読出が終了するまで(ステップS905でYES)、データの読出動作を繰り返す。
【0061】
一方、ステップS906において、EXT−FATのFATチェイン情報が終了している場合(ステップS906でYES)、つまり、EXT−FAT情報に記録された各項目が示すクラスタアドレスのデータを全て読み込んだにもかかわらず、依然指定されたファイルのデータの末尾までデータを読み込んでいないか、または、指定されたサイズ分のファイルのデータの読出が終了していない場合、ステップS907に進み、EXT−FAT情報の最後に記録されたEXT−FAT項目から、対応するFAT1302のFAT項目を読み出し、読出が完了しているデータに続く次のデータを含むクラスタアドレスをFAT1302から読み取る。
【0062】
以降は、FATファイルシステムの動作と同様にして、FATチェインを順にたどり、読み取ったクラスタアドレスのデータを読み込んで行く。
<ファイルの新規作成処理>
次に、データの書込処理の内、ファイルの新規作成処理について、図10を用いて説明する。
【0063】
ファイルの新規作成処理では、前処理として、図8で説明したファイルの検索処理とほぼ同様の処理が行われる。異なる点としては、ファイルの検索の目的が、ユーザプログラム101から指定されたファイル名がディレクトリエントリ上に存在しないことを検索することである。従って、ファイルの新規作成処理では、同じファイル名のディレクトリエントリが見つけられるとエラーとなって、即座に、その処理は終了となる。ディレクトリエントリを全て検索した結果、同じファイル名のファイルが存在しなければ、図10のステップS1001に進む。
【0064】
ステップS1001以降の処理では、従来のFATファイルシステムにおけるファイルの新規作成処理とほぼ同様な処理を行う。すなわち、まず、ステップS1001で、ディレクトリ管理部104が新現ファイル用のディレクトリエントリを確保する。このディレクトリエントリは、既に、図3〜図7で説明した通りであり、3つのディレクトリエントリをルートディレクトリエントリ1303上の連続した領域に確保する。
【0065】
次に、ステップS1002で、FAT管理部105がFAT1302のデータを読み出して、未使用(0000h)の値が記録されたFAT項目を検索することで、そのFAT項目に対応する未使用クラスタを検索する。未使用クラスタが見つかったら、ステップS1003で、そのFAT項目の値を使用中を示すFFFFhに書き換える。次に、ステップS1006で、EXT−FATに空きがあるか否かを判定する。空きがない場合(ステップS1006でNO)、ステップS1005に進む。一方、空きがある場合(ステップS1006でYES)、ステップS1004に進む。
【0066】
次に、ステップS1004で、EXT−FATの先頭の項目(先頭のアドレス2バイト)の値を、使用中を示すFFFFhに書き換える。次に、ステップS1005で、データ領域1304の対応するクラスタ番地に、ユーザプログラム101から与えられた所望のデータを書き込む。
【0067】
次に、書込対象のデータ全ての書込が終了したか否かを判定する。終了した場合(ステップS1007でYES)、ステップS1008に進む。一方、終了していない場合(ステップS1007でNO)、つまり、データ領域1304に書込対象のデータが1クラスタ内では収まり切れず、依然データが残っている場合、ステップS1002に戻り、同様にしてさらにFAT1302上で未使用の値が記録されたFAT項目を検索し、見つかったら対応するそのFAT項目の値をFFFFhに書き換える(ステップS1003)。
【0068】
この時、ステップS1003の処理では、さらに加えて前回の処理の検索されたFAT項目の値を、今回の処理で検索されたFAT項目に対応するクラスタ番地に書き換える。該当するEXT−FATの各項目(現状態では、先頭の2バイト、および次の2バイト)に対しても同様な操作を行う(ステップS1004)。また、EXT−FATに記録できる13クラスタ分のFATが全て埋められた場合(ステップS1006でNO)、ステップS1004は省略される。最後に対応するクラスタ番地にデータを書き込む(ステップS1005)。
【0069】
この処理を繰り返すことによって、クラスタの並び順が次々にFAT1302およびEXT−FATに記録され、FATチェインが完成する。
【0070】
以上の処理により、書込対象のデータ全てのデータ領域1304への書込が終了した場合(ステップS1007のYES)、また、FAT1302および、EXT−FATへのFATチェインの書込も終了したら、ステップS1008で、ディレクトリ管理部104がルートディレクトリエントリ1303に新親ファイル名(ロングファイル名、ショートファイル名)、開始クラスタ番地、ファイルサイズなどの情報を記録する。このようにして、新規ファイルが作成される。
<既存ファイルへのデータ追加書込処理>
既存ファイルへのデータ追加書込処理について、図11を用いて説明する。
【0071】
既存ファイルへのデータ追加書込処理は、図9のファイルの読出処理と同様にしてファイルディスクリプタを確保し、ファイルオープンを要求した後、ステップS1101で、注目クラスタがファイルの最終クラスタであるか否かを判定する。最終クラスタである場合(ステップS1101でYES)、ステップS1105に進む。一方、最終クラスタでない場合(ステップS1101でNO)、ステップS1103に進む。ステップS1103で、EXT−FATのFATチェイン情報が終了しているか否かを判定する。終了していない場合(ステップS1103でNO)、ステップS1102に進み、FAT管理部105が開始クラスタ番地と、EXT−FAT項目からFATチェインを順にたどり最後のクラスタを得る。
【0072】
一方、終了している場合(ステップS1103でYES)、つまり、ユーザプログラム101で指定されたファイルのサイズがEXT−FATに記録できるクラスタ分(本実施形態では13クラスタ)を越えていた場合、ステップS1104に進み、FAT1302からFATチェインを順にたどり最後のクラスタを得る。最終クラスタが得られたら、ステップS1105に進む。
【0073】
最終クラスタには、既存のデータがクラスタのサイズ内の途中まで書き込まれている。従って、ステップS1105で、まず、クラスタの途中まで埋められたデータの末尾に続けて追加する所望のデータを書き込む。
【0074】
次に、ステップS1106で、書込対象のデータ全ての書込が終了したか否かを判定する。書込が終了した場合(ステップS1106でYES)、ステップS1111に進む。一方、書込が終了していない場合(ステップS1106でNO)、つまり、追加する所望のデータがそのクラスタ内に収まり切らなかった場合、ファイルの新規作成処理と同様にステップS1107で、FAT1302から未使用クラスタを検索する。未使用クラスタが見つかったら、ステップS1108で、未使用クラスタに対応するFAT1302の項目の値を、使用中を示すFFFhに書き換える。
【0075】
次に、ステップS1108で、EXT−FATに空きがあるか否かを判定する。空きがない場合(ステップS1109でNO)、ステップS1105に進む。一方、空きがある場合(ステップS1109でYES)、ステップS1110に進み、EXT−FATの先頭の項目(先頭のアドレス2バイト)の値を、使用中を示すFFFFhに書き換え、FATチェインを完成させる。
【0076】
その後、データ領域1304の未使用クラスタに所望のデータを書き込み(ステップS1105)、以上の処理を繰り返してデータを追加書込して行く。最後に、ステップS1111で、ディレクトリ管理部104がルートディレクトリエントリ1303にデータ追加書込後のファイルサイズなどの情報を記録する。
<既存ファイルへのデータ上書処理>
既存ファイルへのデータ上書処理について、図12を用いて説明する。
【0077】
既存のファイルへのデータ上書処理は、図9のファイルの読出処理と同様に、ファイルディスクリプタを確保し、ファイルオープンを要求した後、ステップS1209で、開始クラスタ番地から順に各EXT−FAT項目あるいはFAT項目に対応するデータ領域1304のクラスタを、ユーザプログラム101より指定された上書対象ののデータで上書する。ステップS1210で、上書対象のデータ全ての書込が終了したか否かを判定する。終了した場合(ステップS1210でYES)、ステップS1211に進む。一方、終了していない場合(ステップS1210でNO)、ステップS1201に進む。
【0078】
ステップS1201で、注目クラスタがファイルの最終クラスタであるか否かを判定する。最終クラスタである場合(ステップS1201でYES)、ステップS1205に進む。一方、最終クラスタでない場合(ステップS1201でNO)、ステップS1203に進む。ステップS1203で、EXT−FATのFATチェイン情報が終了しているか否かを判定する。終了していない場合(ステップS1203でNO)、ステップS1202進み、FAT管理部105が開始クラスタ番地と、EXT−FAT項目からFATチェインを順にたどり最後のクラスタを得る。
【0079】
一方、終了している場合(ステップS1203でYES)、つまり、ユーザプログラム101で指定されたファイルのサイズがEXT−FATに記録できるクラスタ分(本実施形態では13クラスタ)を越えていた場合、ステップS1204に進み、FAT1302からFATチェインを順にたどり最後のクラスタを得る。最終クラスタが得られたら、ステップS1205に進む。
【0080】
最終クラスタには、既存のデータがクラスタのサイズ内の途中まで書き込まれている。従って、ステップS1105で、まず、クラスタの途中まで埋められたデータの末尾に続けて追加する所望のデータを書き込む。
【0081】
ステップS1205で、FAT1302から未使用の値が記録されたFAT項目を検索することで、そのFAT項目に対応する未使用クラスタを検索する。未使用クラスタが見つかったら、ステップS1206で、そのFAT項目の値を使用中を示すFFFFhに書き換える。
【0082】
次に、ステップS1207で、EXT−FATに空きがあるか否かを判定する。空きがない場合(ステップS1207でNO)、ステップS1209に進む。一方、空きがある場合(ステップS1207でYES)、ステップS1208に進み、EXT−FATエントリの先頭の項目(先頭のアドレス2バイト)の値を、使用中を示すFFFFhに書き換え、FATチェインを完成させる。
【0083】
そして、ステップS1210において、書込対象のデータ全ての書込が終了した場合、つまり、既存のファイルのデータサイズが上書対象のファイルのデータサイズより大きい場合、ステップS1211で、FAT管理部105は上書対象のファイルのデータの最終クラスタに対応するEXT−FAT項目あるいはFAT1302項目の値を、使用中を示すFFFFhに書き換える。また、上書される以前のFATチェインの内で上書するデータで埋められなかった余りのクラスタに対応するEXT−FAT項目あるいはFAT1302項目の値を、未使用クラスタであることを示す0000hに書き換える。そして、ステップS1212で、ディレクトリ管理部104がルートディレクトリエントリ1303にデータ上書き終了後のファイルサイズなどの情報を記録する。
【0084】
以上説明したように、本実施形態によれば、FATファイルシステムは、個々のファイルのディレクトリエントリ上にEXT−FATと呼ぶFATチェインの一部を記録する領域を設ける。そして、ファイルの読出/書込等の操作に伴うFATチェインの読出時には、EXT−FATに記録されたFATチェインを優先的に使用する。これにより、FAT上のFATチェインを参照しなくても、EXT−FATに記録されたFATチェインを参照することで、操作対象のデータに対しアクセスことができる。これにより、操作対象のデータの解析に要する時間を短縮し、従来のFATファイルシステムとの互換性を保ちながら、FATチェインの読出を高速に行うことができる。
【0085】
尚、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0086】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0087】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0088】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0089】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0090】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0091】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した図8〜図12に示すフローチャートに対応するプログラムコードが格納されることになる。
【0092】
【発明の効果】
以上説明したように、本発明によれば、記憶媒体上に記憶されたデータへのアクセスを高速に行うことができる情報処理装置及びその方法、記録媒体を提供できる。
【図面の簡単な説明】
【図1】本実施形態の情報処理装置の機能構成を示す図である。
【図2】本実施形態の情報処理装置のハードウェア構成を示すブロック図である。
【図3】本実施形態のディレクトリエントリの各項目を示す図である。
【図4】本実施形態のディレクトリエントリの各項目を示す図である。
【図5】本実施形態のディレクトリエントリの各項目を示す図である。
【図6】本実施形態の1ファイルに対するディレクトリエントリの構成を示す図である。
【図7】本実施形態のディレクトリエントリの全体構成を示す図である。
【図8】本発明の実施形態のファイルの検索処理を示すフローチャートである。
【図9】本発明の実施形態のファイルの読出処理を示すフローチャートである。
【図10】本発明の実施形態のファイルの新規作成処理を示すフローチャートである。
【図11】本発明の実施形態の既存ファイルへのデータ追加書込処理を示すフローチャートである。
【図12】本発明の実施形態の既存ファイルへのデータ上書処理を示すフローチャートである。
【図13】FAT型ディスクの記録フォーマットの一例を示す図である。
【図14】本発明の実施形態のFAT型ディスクのFAT領域の概念を示す図である。
【符号の説明】
101 ユーザプログラム
102 FATファイルシステムプログラム
103 ファイル管理部
104 ディレクトリ管理部
105 FAT管理部
106 ディスクドライバ部
201 CPU
202 RAM
203 ディスク装置
204 システムバス

Claims (5)

  1. 記憶媒体に記憶しているファイルのファイル名と当該ファイルの先頭にあるデータを記憶している先頭クラスタのアドレスとを対応付けてエントリとして記憶するディレクトリエントリと、前記ファイルの1つが記憶されている複数のクラスタの並び順をチェインとして記憶するファイルアロケーションテーブルと、を前記記憶媒体上で管理する情報処理装置であって、
    前記ディレクトリエントリのエントリに、前記チェイン上で前記先頭クラスタに連続する所定個数のクラスタを読み出すべき順序で読み出すために、該所定個数のクラスタのそれぞれのアドレスをその読出順で保持する拡張情報を書き込む書込手段と、
    前記記憶媒体に記憶しているファイルにアクセスする際に、前記ディレクトリエントリと前記拡張情報とを参照して前記記憶媒体にアクセスする実行手段と
    前記実行手段の読み出したデータが、アクセスするファイルの末尾のデータであるか否かを判定する判定手段とを備え、
    前記拡張情報で前記読出順で保持されている前記所定個数のクラスタのアドレスそれぞれが示すクラスタから、その読出順に従ってデータを読み出して行き、その読出順の最後の読出順で読み出したデータが前記実行手段のアクセスするファイルの末尾のデータでないと前記判定手段が判定した際に、前記実行手段は前記最後の読出順で読み出したデータに続く次のデータを含むクラスタのアドレスを前記ファイルアロケーションテーブルから読み出す
    ことを特徴とする情報処理装置。
  2. 前記書込手段は、前記記憶媒体について前記ファイル名が記憶された領域の直前に前記拡張情報を書き込む
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記書込手段は、前記エントリの先頭に該エントリが前記拡張情報を記憶していることを示すインデックスを付加する
    ことを特徴とする請求項1又は2のいずれか1項に記載の情報処理装置。
  4. 記憶媒体に記憶しているファイルのファイル名と当該ファイルの先頭にあるデータを記憶している先頭クラスタのアドレスとを対応付けてエントリとして記憶するディレクトリエントリと、前記ファイルの1つが記憶されている複数のクラスタの並び順をチェインとして記憶するファイルアロケーションテーブルと、を前記記憶媒体上で管理する情報処理方法であって、
    前記ディレクトリエントリのエントリに、前記チェイン上で前記先頭クラスタに連続する所定個数のクラスタを読み出すべき順序で読み出すために、該所定個数のクラスタのそれぞれのアドレスをその読出順で保持する拡張情報を書き込む書込工程と、
    前記記憶媒体に記憶しているファイルにアクセスする際に、前記ディレクトリエントリと前記拡張情報とを参照して前記記憶媒体にアクセスする実行工程と
    前記実行工程の読み出したデータが、アクセスするファイルの末尾のデータであるか否かを判定する判定工程とを備え、
    前記拡張情報で前記読出順で保持されている前記所定個数のクラスタのアドレスそれぞれが示すクラスタから、その読出順に従ってデータを読み出して行き、その読出順の最後の読出順で読み出したデータが前記実行工程のアクセスするファイルの末尾のデータでないと前記判定工程が判定した際に、前記実行工程は前記最後の読出順で読み出したデータに続く次のデータを含むクラスタのアドレスを前記ファイルアロケーションテーブルから読み出す
    ことを特徴とする情報処理方法。
  5. 記憶媒体に記憶しているファイルのファイル名と当該ファイルの先頭にあるデータを記憶している先頭クラスタのアドレスとを対応付けてエントリとして記憶するディレクトリエントリと、前記ファイルの1つが記憶されている複数のクラスタの並び順をチェインとして記憶するファイルアロケーションテーブルと、を前記記憶媒体上で管理する情報処理を、コンピュータに機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体であって、
    前記コンピュータを、
    前記ディレクトリエントリのエントリに、前記チェイン上で前記先頭クラスタに連続する所定個数のクラスタを読み出すべき順序で読み出すために、該所定個数のクラスタのそれぞれのアドレスをその読出順で保持する拡張情報を書き込む書込手段と、
    前記記憶媒体に記憶しているファイルにアクセスする際に、前記ディレクトリエントリと前記拡張情報とを参照して前記記憶媒体にアクセスする実行手段と
    前記実行手段の読み出したデータが、アクセスするファイルの末尾のデータであるか否かを判定する判定手段として機能させ、
    前記拡張情報で前記読出順で保持されている前記所定個数のクラスタのアドレスそれぞれが示すクラスタから、その読出順に従ってデータを読み出して行き、その読出順の最後の読出順で読み出したデータが前記実行手段のアクセスするファイルの末尾のデータでないと前記判定手段が判定した際に、前記実行手段は前記最後の読出順で読み出したデータに続く次のデータを含むクラスタのアドレスを前記ファイルアロケーションテーブルから読み出す
    ためのプログラムを記録したコンピュータ読取可能な記録媒体。
JP27514899A 1999-09-28 1999-09-28 情報処理装置及びその方法、記録媒体 Expired - Fee Related JP4434379B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP27514899A JP4434379B2 (ja) 1999-09-28 1999-09-28 情報処理装置及びその方法、記録媒体
US09/671,728 US6604170B1 (en) 1999-09-28 2000-09-27 Information processing apparatus and method, and computer readable memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27514899A JP4434379B2 (ja) 1999-09-28 1999-09-28 情報処理装置及びその方法、記録媒体

Publications (2)

Publication Number Publication Date
JP2001101046A JP2001101046A (ja) 2001-04-13
JP4434379B2 true JP4434379B2 (ja) 2010-03-17

Family

ID=17551357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27514899A Expired - Fee Related JP4434379B2 (ja) 1999-09-28 1999-09-28 情報処理装置及びその方法、記録媒体

Country Status (2)

Country Link
US (1) US6604170B1 (ja)
JP (1) JP4434379B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478243B2 (en) * 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications
US7310644B2 (en) * 2001-06-06 2007-12-18 Microsoft Corporation Locating potentially identical objects across multiple computers
JP2003058400A (ja) * 2001-08-10 2003-02-28 Sharp Corp ファイル管理システムにおけるセクタ管理方法およびセクタ管理プログラムならびにセクタ管理プログラムを記録したコンピュータ読み取り可能な記録媒体
NL1019598C2 (nl) * 2001-12-18 2003-06-19 Neopost Ind B V Adressering van te verzenden items.
US7020665B2 (en) * 2002-03-07 2006-03-28 Microsoft Corporation File availability in distributed file storage systems
JP4225740B2 (ja) * 2002-04-26 2009-02-18 三洋電機株式会社 ファイル管理装置
KR20050070117A (ko) * 2002-11-07 2005-07-05 코닌클리케 필립스 일렉트로닉스 엔.브이. 메인 파일 시스템 영역과 가상 파일 시스템 영역을 갖는기록매체
US20050050108A1 (en) * 2003-08-21 2005-03-03 Texas Instruments Incorporated File system for digital processing systems with limited resources
KR100678888B1 (ko) * 2004-07-19 2007-02-05 삼성전자주식회사 정보를 기록하고 읽는 장치 및 방법
JP4239940B2 (ja) * 2004-09-22 2009-03-18 セイコーエプソン株式会社 ファイル管理プログラム、及びファイル管理装置
JP4301185B2 (ja) * 2005-02-25 2009-07-22 ソニー株式会社 ファイル管理装置、ファイル管理方法およびプログラム
CN100370445C (zh) * 2005-08-10 2008-02-20 北京中星微电子有限公司 一种基于文件分配表的数据传输装置和传输方法
JP4821534B2 (ja) * 2006-09-22 2011-11-24 株式会社ケンウッド ファイル管理装置、ファイル管理方法及びプログラム
JP5142537B2 (ja) * 2007-01-26 2013-02-13 キヤノン株式会社 データ処理装置、データ処理方法、プログラムおよび記憶媒体
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
US8073884B2 (en) * 2007-12-20 2011-12-06 Hewlett-Packard Development Company, L.P. System and method to derive high level file system information by passively monitoring low level operations on a FAT file system
JP2009217357A (ja) * 2008-03-07 2009-09-24 Nec Corp ファイルスペース追加システム、ファイルスペース追加方法、及びファイルスペース追加プログラム
JP4983987B2 (ja) * 2011-03-03 2012-07-25 株式会社Jvcケンウッド コンテンツ再生装置及びこれに用いるファイル管理方法
JP5316569B2 (ja) * 2011-03-03 2013-10-16 株式会社Jvcケンウッド ファイル管理装置及びファイル管理方法
JP2013033338A (ja) * 2011-08-01 2013-02-14 Toshiba Corp メモリシステム
KR20130071850A (ko) * 2011-12-21 2013-07-01 삼성전자주식회사 파일 시스템 및 파일 저장 방법
US20140172805A1 (en) * 2012-12-19 2014-06-19 Microsoft Corporation Contact management
US11435922B2 (en) 2017-06-27 2022-09-06 Sigmastar Technology Ltd. Control method for storage device of driving recorder and storage device control system
TWI631461B (zh) * 2017-06-27 2018-08-01 晨星半導體股份有限公司 行車記錄器之儲存裝置的控制方法與儲存裝置控制系統

Also Published As

Publication number Publication date
US6604170B1 (en) 2003-08-05
JP2001101046A (ja) 2001-04-13

Similar Documents

Publication Publication Date Title
JP4434379B2 (ja) 情報処理装置及びその方法、記録媒体
JP3509285B2 (ja) 圧縮データ管理方式
US20140059273A1 (en) Host apparatus and memory device
JP2734391B2 (ja) 不揮発性メモリのファイル管理装置
JPH04504018A (ja) 消去不可能な記憶媒体上にファイルを読出しかつ書込む方法
JPH1069408A (ja) ホールを利用するファイルシステムレベルでのデータ格納方法及びデータ格納装置
JP4722704B2 (ja) 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
JP3407628B2 (ja) 計算機システム
JP2002055995A (ja) 情報処理方法及び装置
JPS59165161A (ja) ワード・プロセッシング・システムにおけるデータ・セットのボリューム回復方法
JPH04186447A (ja) 情報処理装置
US5608905A (en) DOS and Macintosh preformatted computer storage media
JP2539347B2 (ja) フアイル管理方法
JPH1063436A (ja) データ格納方法及び装置
JP4920937B2 (ja) Fatファイルシステム、ファイル管理方法、プログラムおよび記憶媒体
JP2774691B2 (ja) ファイルシステム
JP2004362092A (ja) Fatキャッシュ機能付きファイルシステム
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
JP7262977B2 (ja) 記録装置及びその制御方法、並びにプログラム
JPS61245253A (ja) 仮想計算機の入出力制御方式
EP1237085B1 (en) Memory management method for configuring a computer data storage medium to include a virtual disk drive
JP2008134777A (ja) ファイル割当テーブルのキャッシュ方法
CN107608636B (zh) 一种基于fat文件***的设计方法及其应用的数据采集装置
JP2569084B2 (ja) フアイル管理方式
JPH0357037A (ja) フアイル管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060928

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060928

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080804

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091124

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: 20091218

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091222

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees