JP2006106810A - ファイル管理装置、ファイル管理方法、記録媒体及びプログラム - Google Patents
ファイル管理装置、ファイル管理方法、記録媒体及びプログラム Download PDFInfo
- Publication number
- JP2006106810A JP2006106810A JP2004288306A JP2004288306A JP2006106810A JP 2006106810 A JP2006106810 A JP 2006106810A JP 2004288306 A JP2004288306 A JP 2004288306A JP 2004288306 A JP2004288306 A JP 2004288306A JP 2006106810 A JP2006106810 A JP 2006106810A
- Authority
- JP
- Japan
- Prior art keywords
- file
- recording
- unused
- area
- cluster
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims description 80
- 238000000034 method Methods 0.000 claims abstract description 85
- 230000008569 process Effects 0.000 abstract description 82
- 238000004904 shortening Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 13
- 230000015654 memory Effects 0.000 description 12
- 230000008707 rearrangement Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101000824318 Homo sapiens Protocadherin Fat 1 Proteins 0.000 description 2
- 101000824299 Homo sapiens Protocadherin Fat 2 Proteins 0.000 description 2
- 102100022095 Protocadherin Fat 1 Human genes 0.000 description 2
- 102100022093 Protocadherin Fat 2 Human genes 0.000 description 2
- 238000011989 factory acceptance test Methods 0.000 description 2
- 238000012949 factory acceptance testing Methods 0.000 description 2
- 239000003925 fat Substances 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 ファイルの削除処理を高速に行えるようにし、高速なアクセスを実現し、記録媒体の寿命短縮を回避するとともに、ファイルの復元が容易できるようにする。
【解決手段】 ユーザが扱うファイルやディレクトリを実際の物理的なディスク上に対応させて、ファイルやディレクトリ自体を構成するファイル管理装置において、記録領域を複数の領域に分けて管理し、夫々の領域の未使用クラスタをチェーン構造で管理し、ファイル削除時は、そのファイルのクラスタを未使用クラスタチェーンの最後尾に結合する。未使用クラスタの並び替えも行う。
【選択図】 図2
【解決手段】 ユーザが扱うファイルやディレクトリを実際の物理的なディスク上に対応させて、ファイルやディレクトリ自体を構成するファイル管理装置において、記録領域を複数の領域に分けて管理し、夫々の領域の未使用クラスタをチェーン構造で管理し、ファイル削除時は、そのファイルのクラスタを未使用クラスタチェーンの最後尾に結合する。未使用クラスタの並び替えも行う。
【選択図】 図2
Description
本発明は、ファイル管理装置、及びファイル管理方式に関し、特にユーザが扱うファイルやディレクトリを実際の物理的なディスク上に対応させて、ファイルやディレクトリ自体を構成するファイル管理装置、及びファイル管理方式に関するものである。
従来、数多くのデータをファイルとして管理する方式として、FAT(File Allocation Table)ファイルシステムが知られている。FATファイルシステムは、MS−DOSやWindows(登録商標)で使用されていたが、現在では、Linuxや各種Unix(登録商標)などの汎用OS(Operating System)のほか、ディジタルカメラやMP3プレイヤーなどのコンシューマ向け機器、各種測定器など、フレキシブルディスクや着脱式のフラッシュメモリ(CFカードなど)を備える様々な機器で広くサポートされている。今や、リムーバブルメディアにおけるデファクトスタンダードといえるファイル管理方式である。
図12は、従来のFATファイルシステムの配列を示す。図12を参照して、DOSやWindows(登録商標)のFATファイルシステムについて説明する。FATファイルシステムは、ブートセクタと、2つのFAT、ルートディレクトリ(ディレクトリエントリ領域)、及びデータ領域とから構成される。FAT2はFAT1と同一の内容が記録されており、FAT1が壊れてもFAT2を参照することによりシステムは機能する。
ブートセクタには、論理的なセクタ長、トラック数、1トラック当たりのセクタ数など、記録媒体の論理構造データであるBPB(BIOS Parameter Block)や、DOSやWindows(登録商標)で使用されるブートストラップローダが記録される。
データ領域には、各ファイルのデータ本体が分割されて格納され、幾つかのセクタをひとまとめにしたクラスタと呼ばれる単位で管理される。FATには、データ領域上の一連のクラスタの構成を示す情報、即ちクラスタの使用状況が記録されている。従って、分割されたファイルのデータがクラスタを単位として記録されているので、ファイルのデータのディスク上の物理的な位置は連続しているわけではない。
FATファイルシステムは、フレキシブルディスクやハードディスクなどのブロックデバイス上のファイルやディレクトリを実際の物理的なディスク上に対応させ、ファイルやディレクトリ自体を構成する体系であり、ディレクトリエントリとFATという情報によって管理される。
図13は、従来のFATエントリの一例を示す。この例では、FATエントリ2から始まるファイルは、データ領域のクラスタ番号2(0x00000002)に記録され、続いてクラスタ番号3(0x00000003)、さらに、クラスタ番号4(0x00000004)、5(0x00000002)にその後のデータが記録されていることを示している。FATエントリ5に0xFFFFFFFF(EOFマーク)が書き込まれていることから、このクラスタ番号がファイルデータの最終記録位置である。また、FATエントリの値が0x00000000であるクラスタ6〜8は、未使用領域であることを示している。なおFATエントリ0、1は予約領域(RSVマーク)である。
FATエントリのクラスタ番号は、ファイルデータが分割されて記録されるクラスタと1対1に対応しており、ファイル本体を構成するデータ領域上のクラスタ番号の集合のうち、夫々後に続くクラスタ番号を保持している。従って、例えクラスタの物理的位置が離れていても、FATの一連のクラスタ番号を読み取っていけば、データ領域上に格納されているクラスタを順に読み出し、分割されたファイル本体を再構成することが可能である。また、後続するクラスタがないFATエントリ、即ち、対応するクラスタがファイルの最終クラスタである場合は、その旨を示すユニークな値0xFFFFFFFFが書き込まれる。また、値が0x00000000であるFATエントリは未使用領域であることを意味する。ただし、各ファイルの一連のクラスタ番号のうち、先頭のクラスタ番号だけはディレクトリエントリに書き込まれる。
図14は、図12に示したディレクトリエントリ領域に記録されるディレクトリエントリのフォーマットである。1つのディレクトリエントリは32バイトで構成され、ファイル名、拡張子、属性、更新日時、開始クラスタ、ファイルサイズなどが記録される。
FATファイルシステムの長所としては、以下のことが挙げられる。
(1)FATチェーンを順に追えば、次々とファイルを構成するクラスタがわかるので、シーケンシャルファイルに向いている。
(2)ファイルの管理情報をあらかじめRAMに読み込み常駐させておき、オーディオビデオ情報の再生中に余分なシークが発生しないようにしたい場合、ファイルの位置情報を示す情報やルートディレクトリがFATとして1箇所に集中しているので、RAMへ常駐させやすい。従って、MS−DOSやWindows(登録商標)に限らず、他の多くのOSでもサポートされることが多い。
(1)FATチェーンを順に追えば、次々とファイルを構成するクラスタがわかるので、シーケンシャルファイルに向いている。
(2)ファイルの管理情報をあらかじめRAMに読み込み常駐させておき、オーディオビデオ情報の再生中に余分なシークが発生しないようにしたい場合、ファイルの位置情報を示す情報やルートディレクトリがFATとして1箇所に集中しているので、RAMへ常駐させやすい。従って、MS−DOSやWindows(登録商標)に限らず、他の多くのOSでもサポートされることが多い。
一方で、FATファイルシステムにも幾つかの短所が存在する。例えば、特開平4−139543号公報においては、ファイルを新しく作成する場合に、そのファイルに使用するためのFATとして未使用であるFATのうちFAT番号の小さい順にFATを割り当てるため、ファイルの削除、及び作成を頻繁に行うとFAT番号の小さいFATが常に使用されることになり、記録媒体の同じ部分ばかり使用されるので、記録媒体の寿命を縮めるという欠点を指摘している。さらに、削除したばかりのファイルにおいて、そのFAT番号が小さい場合には、次に新しくファイルを作成することにより、そのファイルのFATが使用されてしまうため、そのファイルの復元が不可能になるという欠点も指摘している。
その課題を解決するため、未使用FATのチェーンを有し、未使用にになったFATは、その未使用FATのチェーンの末尾に追加され、使用するときには、未使用FATのチェーンの先頭から使用することにより上記課題を解決するファイル管理方式が開示されている(例えば、特許文献1を参照。)。
また、ファイル削除時に、それまでファイルを構成するクラスタの識別番号を保持していた全てのFATエントリを0x00000000にクリアしなければならなく、その作業自体は単純であるものの回数の多いループを伴い、結果的には処理が遅くなるという欠点を指摘している。さらに、ファイルの末尾に新たな領域をつなげるために、そのファイルに対応するFATエントリを順に最後まで操作しなければならず、やはり回数の多いループを処理しなければならないという問題がある。
その課題を解決するため、空き領域もファイルと同様に、チェーン構造により記述、管理し、ファイルの末尾となるFATエントリへのポインタを設けて管理することにより、空き領域や個々のファイル領域を表すチェーン構造の切り貼りだけで上記課題を解決するファイル管理方式が開示されている(例えば、特許文献2を参照。)。
しかしながら、上記従来例であっても、年々続く記録媒体の大容量化、処理するオーディオビデオ情報のファイルサイズの拡大化に伴い、更なるファイルシステムの高速化が必要とされている。また、FATファイルシステムが、様々な機器で広くサポートされ、リムーバブルメディアにおけるデファクトスタンダードであるが故に、更なる高速化が必要であるという問題が存在しつづける。
本発明は、このような問題を解決するために提案されたものであり、その目的は、十分に高速なCPUを使用できない環境下においても、高速なファイル管理を行うことができ、記録媒体の同じ部分ばかり使用することによる記録媒体の寿命の短縮を回避するとともに、削除したばかりのファイルの復元が容易であるファイル管理装置、及びファイル管理方式を提供することを目的とする。
この発明は、上述した課題を解決すべくなされたもので、本発明においては、単位領域から構成される記録媒体にファイルのデータを記録、管理するファイル管理方式において、ファイルのデータを記録する夫々の単位領域をリンクさせて管理するデータリンクステップと、夫々のファイルのデータを記録する先頭の単位領域へのポインタを記録するファイル開始記録ステップと、夫々のファイルのデータを記録する最後尾の単位領域へのポインタを記録するファイル終了記録ステップと、記録媒体の記録領域を複数の領域に分割し、その領域毎に未使用の単位領域をリンクさせて管理する未使用領域管理ステップと、前記分割される複数の領域毎に管理された未使用の単位領域の先頭の単位領域へのポインタを記録する未使用領域開始記録ステップと、前記分割される複数の領域毎に管理された未使用の単位領域の最後尾の単位領域へのポインタを記録する未使用領域終了記録ステップとを有することを特徴とするファイル管理方法等を提供する。
本発明によれば、ファイル管理装置及びファイル管理方法において、記録領域の未使用クラスタをチェーン構造で管理することにより、ファイルの削除処理を高速に行えるようにし、さらに、記録領域を複数の記録領域に分割して、夫々の記録領域に対して、未使用クラスタをチェーン構造で管理することにより、記録領域の分散を防ぎ、ディスク装置等の記録メディアにおいても高速なアクセスを可能にしたファイル管理装置、及びファイル管理方式を提供することが可能となる。
また、夫々の領域において、削除したファイルに使用されていたクラスタを、未使用クラスタのチェーン構造の最後尾に結合させ、使用するときはチェーン構造の先頭から使用することにより、さらに、夫々の記録領域において、使用回数の少ない記録領域にデータを記録することにより、記録媒体の同じ部分ばかり使用することによる記録媒体の寿命の短縮を回避するとともに、削除したばかりのファイルの復元が容易であるファイル管理装置、及びファイル管理方式を提供することが可能となる。
以下、図面を参照しながら、本発明の実施形態を説明する。
図1に、本発明の実施形態に係るファイル管理装置である情報処理装置のシステム全体の構成を示す。
同図において、CPU101は、ファイル管理装置100全体の制御を行う。メインメモリ105には、CPU101により実行されるプログラム等がロードされる。グラフィックコントローラ107は、ディスプレイ108の表示を制御する。
図1に、本発明の実施形態に係るファイル管理装置である情報処理装置のシステム全体の構成を示す。
同図において、CPU101は、ファイル管理装置100全体の制御を行う。メインメモリ105には、CPU101により実行されるプログラム等がロードされる。グラフィックコントローラ107は、ディスプレイ108の表示を制御する。
ノースブリッジ103は、CPUローカルバス102、メモリバス104、AGP(Accelerated Graphics Port)バス106、PCI(Peripheral Component Interconnect)バス109を接続するためのブリッジである。サウスブリッジ110は、ATA(AT Attachment)バス111、113、PCIバス119、LPC(Low Pin Count)バス115を接続するブリッジである。
ディスク装置112は、CPU101により実行される各種のプログラム(オペレーティングシステム、デバイスドライバ、アプリケーションプログラム等)や、各種の管理情報を記録する。ディスク装置114に記録されたプログラムは必要に応じてメインメモリ105にロードされる。またディスク装置114には、各種データやコンテンツが記録される。
キーボードコントローラ116は、キーボード117によるキー入力操作を制御する。BIOS−ROM118は、イニシャルプログラムローダ(Initial Program Loader)を記録する。
PCIバス119には、NIC(Network Interface Card)120が接続されている。NIC120は記録装置100をネットワーク(例えばLAN)に接続する。
次に、ディスク装置114に適用されるFAT型ファイルファイルシステムについて、図2及至図11を参照して説明する。
図2は、FAT201の構造を示す一例である。FAT201は、FATヘッダ202と、各クラスタに夫々対応する複数のFATエントリ204から構成される。
図2は、FAT201の構造を示す一例である。FAT201は、FATヘッダ202と、各クラスタに夫々対応する複数のFATエントリ204から構成される。
FATヘッダ202には、記録領域を複数に分割(本実施系ではN分割)して管理する際の、記録領域管理テーブル203が含まれる。記録領域管理テーブル203には、記録領域毎に、未使用クラスタ開始ポインタ205、未使用クラスタ終了ポインタ206、クラスタアクセス回数207、記録領域開始ポインタ208、記録領域終了ポインタ209、及び使用クラスタ数210が含まれる。
記録領域開始ポインタ208と記録領域終了ポインタ209によって、分割された記録領域のうち、どのクラスタ領域が管理されているかが示されている。例えば図2の例では、FAT番号2からFAT番号Mの記録領域をNヶに分割し、分割された第1の記録領域の記録領域開始ポインタ208を2、記録領域終了ポインタをM/Nとしている。即ち、FAT番号2のクラスタからFAT番号M/Nのクラスタまでを第1の記録領域としている。同様に、分割された第2の記録領域の記録領域開始ポインタ208をM/N+1、記録領域終了ポインタを2×M/Nとしている。即ち、FAT番号M/N+1のクラスタからFAT番号2×M/Nのクラスタまでを第2の記録領域としている。なお、本実施形態においては、自然数Mは、自然数Nの整数倍としている。
未使用クラスタ開始ポインタ205には、その分割された記録領域のうち、データが記録されていない一連の未使用クラスタの先頭クラスタを示すFAT番号が記録される。未使用クラスタが存在しない場合、未使用クラスタ開始ポインタ205には、0xFFFFFFFFが記録される。同様に、未使用クラスタ終了ポインタ206には、その分割された記録領域のうち、データが記録されていない一連の未使用クラスタの最終クラスタを示すFAT番号が記録される。未使用クラスタが存在しない場合、未使用クラスタ終了ポインタ206にも、0xFFFFFFFFが記録される。
図2の例では、分割された第1の記録領域の、未使用クラスタ開始ポインタ205を6、未使用クラスタ終了ポインタ206をM/Nとしている。即ち、FAT番号6のクラスタを一連の未使用クラスタの先頭とし、FAT番号M/Nのクラスタを一連の未使用クラスタの最後尾としている。同様に、分割された第2の記録領域の、未使用クラスタ開始ポインタ205をM/N+4、未使用クラスタ終了ポインタ206を2×M/Nとしている。即ち、FAT番号M/N+4のクラスタを一連の未使用クラスタの先頭とし、FAT番号2×M/Nのクラスタを一連の未使用クラスタの最後尾としている。
クラスタアクセス回数207は、その分割された記録領域へのアクセスをクラスタ単位でカウントするカウンタである。図2の例では、分割された第1の記録領域へのクラスタアクセス回数207を200としている。即ち、既に200回のアクセスがあったことを示している。同様に、分割された第2の記録領域へのクラスタアクセス回数207を4000としている。即ち、既に4000回のアクセスがあったことを示している。
また使用クラスタ数210は、その分割された記録領域のうち、現在使用されているクラスタ数を記録する。図2の例では、分割された第1の記録領域の使用クラスタ数210を4としている。即ち、現在使用されているクラスタは4つであることを示している。同様に、分割された第2の記録領域の使用クラスタ数210を3としている。即ち、現在使用されているクラスタは3つであることを示している。
FATエントリ204には、対応するクラスタに付与されているクラスタ番号と同一のFAT番号が付与されている。例えば、クラスタ番号2に対応するFATエントリ204には、FAT番号2が付与される。FATポインタには、クラスタの後方に連結される、クラスタに付与されているFAT番号が記録される。後方にクラスタが存在しない場合、即ち、対応するクラスタがファイルの末尾である場合、FATポインタには、0xFFFFFFFFが記録される。
例えば、ディスク装置114に1つのファイルだけが、FAT番号2、3、4、5が付与されている4つのクラスタに記録されている場合、図2に示すようにFAT番号2のFATポインタには、後方に連結されるクラスタに付与されているFAT番号3(0x00000003)が記録される。FAT番号3のFATポインタには、後方に連結されるクラスタに付与されているFAT番号4(0x00000004)が記録される。FAT番号4のFATポインタにも同様に記録がされている。FAT番号5のFATポインタには、後方に連結されるクラスタが存在しないことを示す0xFFFFFFFFが記録される。
図3は、FAT番号2、3、4、5が付与されている4つのクラスタに1つのファイルが記録されている様子を示している。ファイルの先頭のクラスタ(図3の例では、FAT番号2のクラスタ)には、ファイルのサイズに関する情報を記録するサイズ記録領域301が設けられる。ファイルのデータは、2番目のクラスタ(図3の例ではFAT番号3のクラスタ)以降に記録される。なお、サイズ記録領域301をディレクトリエントリに設けるようにし、1番目のクラスタからファイルのデータを記録するようにしてもよい。
図4は、サイズ記録領域301の構成例を示している。サイズ記録領域301には、最終FAT番号記録領域401、及び占有クラスタ数記録領域402が設けられている。最終FAT番号記録領域401には、ファイルの最後尾のクラスタのFAT番号(図3の例では5)が記録される。占有クラスタ数記録領域402には、ファイルが使用するクラスタ数、即ち、サイズ記録領域301の記録されるクラスタと、データが記録されるクラスタの総和(図3の例では4)が記録される。
次にFATを利用するファイルの作成処理、ファイルの削除処理、未使用クラスタの並び替え処理について、図5及至図11のフローチャートを参照して説明する。
最初に、ファイルの作成処理について、図5及至図8のフローチャートを参照して説明する。
最初に、ファイルの作成処理について、図5及至図8のフローチャートを参照して説明する。
ファイル作成時、そのデータの記録される領域が選択される(ステップS501)。即ち、Nヶに分割された記録領域のうち、どの記録領域に記録するのかが選択される。この記録領域選択処理について、図6のフローチャートを参照して説明する。
最初に、X、Yを初期化する(ステップS601)。即ち、X、及びYに1を代入する。
次に、第Xの記録領域へのアクセス回数がY番目に少ないかどうかチェックする(ステップS602)。即ち、分割された各記録領域の管理テーブル203のクラスタアクセス回数207を夫々比較し、チェックする。最初はX、Yともに1であるため、第1の記録領域へのアクセス回数が1番目に少ないかどうかを、他の記録領域のクラスタアクセス回数207と比較しチェックする。チェックの結果、第Xの記録領域へのアクセス回数がY番目に少なくないと判断される場合、ステップS605へ移行する。また第Xの記録領域へのアクセス回数がY番目に少ないと判断される場合は、ステップS603へ移行する。
ステップS605では、Xの値を1だけインクリメントし、ステップS602へ移行する。即ち次の記録領域のチェックを行う。従って、ステップS602、ステップS605をループすることにより、アクセス回数のY番目に少ない記録領域を求める。
ステップS603では、第Xの記録領域に十分な未使用記録領域があるかどうかチェックする。通常はクラスタが1つ未使用であれば、十分な未使用記録領域があると判断されるが、分割された記録領域において、同一の記録領域から複数の領域を確保して記録したい場合、そのクラスタ数の未使用記録領域があるかどうかチェックする。未使用記録領域の有無に関しては、記録領域終了ポインタ209と記録領域開始ポインタ208の差分がその記録領域に含まれるクラスタ数となるから、そのクラスタ数から使用クラスタ数210を引いたクラスタ数が、未使用クラスタ数として求められる。チェックの結果、第Xの記録領域に十分な未使用記録領域がないと判断される場合、ステップS606へ移行する。また、第Xの記録領域に十分な未使用記録領域があると判断される場合は、ステップS604へ移行する。
ステップS606では、Yの値を1だけインクリメントし、Xを初期化、即ち、Xに1を代入し、ステップS607へ移行する。
ステップS607では、Yの値がNより大きいかどうかチェックする。Yの値がNより大きくなければステップS602へ移行し、Yの値がNより大きければステップS608へ移行する。従って、ステップS602、ステップS603、ステップS606、ステップS607をループすることにより、十分な未使用領域がある記録領域を求める。
ステップS608では、十分な未使用記録領域は存在しないとして、処理を終了し、図5へリターンする。
ステップS604では、第Xの記録領域を選択し、処理を終了し、図5へリターンする。即ち、第Xの記録領域へのアクセス回数が少なく、かつ十分な未使用記録領域が確保可能であると判断し、第Xの記録領域を選択し、図5へリターンする。
図5のステップS501の記録領域選択において、十分な未使用記録領域が存在しない場合、処理を終了する。またあるいは、十分な未使用記録領域が確保可能であると判断される場合、選択された第Xの記録領域に対してステップS502以降の処理を行う。
ステップS502では、未使用クラスタAの獲得を行う。即ち、ステップS501で選択された記録領域から未使用のクラスタに対応するFAT番号を獲得する。この未使用クラスタA獲得処理について、図7のフローチャートを参照して説明する。
最初に、選択された記録領域の管理テーブル203の未使用クラスタ開始ポインタ205を読み取り、Kに代入する(ステップS701)。例えば図2の例で、第1の記録領域が選択されたならば、未使用クラスタ開始ポインタ205は6であるので、Kには6が代入される。
次に、Kが0xFFFFFFFFであるかどうかチェックする(ステップS702)。即ち、選択された記録領域の管理テーブル203の未使用クラスタ開始ポインタに0xFFFFFFFFが記録されていて、未使用クラスタの存在しない状態かどうかチェックする。Kが0xFFFFFFFFである場合、即ち、選択された記録領域の全てのクラスタが使用されている、あるいは、使用できない場合、未使用クラスタは存在しないとして、ステップS707へ移行する。また、Kが0xFFFFFFFFでない場合、即ち、未使用クラスタがある場合、ステップS703へ移行する。
ステップS707では、未使用クラスタは存在せず、獲得できなかったとして、処理を終了し、図5へリターンする。
ステップS703では、FAT番号KのFATポインタを読み取り、Lに代入する。例えば図2の例で、第1の記録領域が選択されたならば、未使用クラスタ開始ポインタ205は6であるから、FAT番号6のFATポインタ0x00000007を読み取り、7がLに代入される。
次に、選択された記録領域の管理テーブル203の未使用クラスタ開始ポインタ205にLを記録する(ステップS704)。例えば図2の例で、第1の記録領域が選択されたならば、未使用クラスタ開始ポインタ205は6であり、FAT番号6のFATポインタは0x00000007であるから、未使用クラスタ開始ポインタ205には、新たに7が記録される。
次に、選択された記録領域の管理テーブル203の使用クラスタ数210を1だけインクリメントする(ステップS705)。例えば図2の例で、第1の記録領域が選択されたならば、未使用クラスタ数210は、1インクリメントされ、4から5が新たに記録される。
次に、未使用クラスタKを獲得できたとし、FAT番号Kをリターン値とし、処理を終了し、図5へリターンする(ステップS706)。例えば図2の例で、第1の記録領域が選択されたならば、未使用クラスタ開始ポインタ205は6であるから、FAT番号6のクラスタが未使用クラスタとして獲得され、図5へリターンする。
図5のステップS502の未使用クラスタA獲得処理において、未使用クラスタが獲得できなかった場合、処理を終了する。またあるいは、未使用クラスタが獲得できた場合、獲得できたクラスタのFAT番号をAに代入する。即ち、図7のKを図5のAに代入し、ステップS503以降の処理を行う。例えば図2の例で、第1の記録領域が選択されたならば、未使用クラスタ開始ポインタ205は6であるから、FAT番号6のクラスタが未使用クラスタとして獲得され、Aには6が代入される。
ステップS503では、作成されるファイルのディレクトリエントリの開始クラスタにAを記録する。即ちファイルの先頭となるクラスタのFAT番号がAである旨を記録する。例えば図2の例で、第1の記録領域が選択されたならば、6がディレクトリエントリの開始クラスタに記録される。
次に、未使用クラスタBの獲得を行う(ステップS504)。即ち、ステップS501で選択された記録領域から未使用のクラスタに対応するFAT番号を獲得する。この未使用クラスタB獲得処理については、ステップS502同様であるので省略する。未使用クラスタが獲得できなかった場合は、ステップS513へ移行する。またあるいは、未使用クラスタが獲得できた場合、獲得できたクラスタのFAT番号をBに代入する。即ち、図7のKを図5のBに代入し、ステップS505へ移行する。例えば図2の例で、第1の記録領域が選択されたならば、FAT番号7のクラスタが未使用クラスタとして獲得され、Bには7が代入される。
ステップS513では、クラスタAを開放する。即ち、2つ目の未使用クラスタの獲得ができず、ファイル作成に失敗したために、エラー終了処理として、
ステップS502にて既に獲得してある未使用クラスタを開放する。このクラスタA開放処理について、図8のフローチャートを参照して説明する。なお、図8のフローチャートでは、開放処理を行うクラスタはDとしている。即ち図8のフローチャートに処理を移行する際、図5のAを図8のDに代入して処理を行う。例えば図2の例で、第1の記録領域が選択されたならば、獲得されたクラスタAのFAT番号は6であり、仮にステップ504にて未使用クラスタBの獲得ができなかったならば、FAT番号6のクラスタの開放処理を行う。即ち図8においてはクラスタ6の開放処理を行うことになり、Dは6になる。
ステップS502にて既に獲得してある未使用クラスタを開放する。このクラスタA開放処理について、図8のフローチャートを参照して説明する。なお、図8のフローチャートでは、開放処理を行うクラスタはDとしている。即ち図8のフローチャートに処理を移行する際、図5のAを図8のDに代入して処理を行う。例えば図2の例で、第1の記録領域が選択されたならば、獲得されたクラスタAのFAT番号は6であり、仮にステップ504にて未使用クラスタBの獲得ができなかったならば、FAT番号6のクラスタの開放処理を行う。即ち図8においてはクラスタ6の開放処理を行うことになり、Dは6になる。
最初に、選択された記録領域の管理テーブル203の未使用クラスタ終了ポインタ206を読み取り、Eに代入する(ステップS801)。例えば図2の例で、第1の記録領域が選択されたならば、未使用クラスタ終了ポインタ206はM/Nであるので、EにはM/Nが代入される。
次に、FAT番号EのFATポインタにDを記録する(ステップS802)。例えば図2の例で、第1の記録領域が選択されたならば、未使用クラスタ終了ポインタ206はM/Nであるので、FAT番号M/NのFATポインタにD、即ち0x00000006が記録される。
次に、FAT番号DのFATポインタに0xFFFFFFFFを記録する(ステップS803)。例えば図2の例で、第1の記録領域が選択されたならば、Dは6であるから、FAT番号6のFATポインタに0xFFFFFFFFが記録される。
次に、選択された記録領域の管理テーブル203の未使用クラスタ終了ポインタ206にDを記録する(ステップS804)。例えば図2の例で、第1の記録領域が選択されたならば、Dは6であるから、第1の記録領域の管理テーブル203の未使用クラスタ終了ポインタ206に6が記録される。
次に、選択された記録領域の管理テーブル203の使用クラスタ数210を1だけデクリメントする(ステップS805)。例えば図2の例で、第1の記録領域が選択されたならば、第1の記録領域の管理テーブル203の使用クラスタ数210は、図5のステップS502の未使用クラスタA獲得処理時、即ち図7のステップS705の使用クラスタ数1インクリメントで、4から5に記録されていたのを、このステップS805で1デクリメントし、5から4へ記録し、図8のクラスタD開放処理を終了し、図5へリターンする。
次にステップS514では、ディレクトリエントリの開始クラスタをクリアし、終了する。即ち、ステップS503にて、作成されるファイルのディレクトリエントリの開始クラスタにAを記録しているのを、クリアし、終了する。なお、ここでファイル作成エラーとして、作成しようとしたファイルのディレクトリエントリ自体をクリアするようにしても良い。
ステップS505では、Cの初期化、即ち、獲得したクラスタ数をCに代入する。ステップS502とステップS504にて2つのクラスタを獲得しているので、Cには2が代入される。
次に、FAT番号AのFATポインタにBを記録する(ステップS506)。即ちクラスタAとクラスタBの連結を行う。例えば図2の例で、第1の記録領域が選択されたならば、最初の時点ではAは6であり、Bは7であるから、FAT番号6のFATポインタに0x00000007を記録する。
次に、FAT番号BのFATポインタに0xFFFFFFFFを記録する(ステップS507)。即ち、FAT番号Bを、新規ファイルの暫定的な最終クラスタとして記録しておく。例えば図2の例で、第1の記録領域が選択されたならば、最初の時点ではBは0x00000007であるから、FAT番号7のFATポインタに0xFFFFFFFFを記録する。
次に、FAT番号Bのクラスタに新規ファイルのデータを記録し、選択された記録領域の管理テーブル203のクラスタアクセス回数207を1だけインクリメントする(ステップS508)。例えば図2の例で、第1の記録領域が選択されたならば、最初の時点でBは0x00000007であるから、FAT番号7のクラスタの各セクタに新規ファイルのデータが記録され、クラスタアクセス回数207は1インクリメントされ、200から201が新たに記録される。
次に、記録データにまだ記録されていない残りのデータがあるかどうかをチェックする(ステップS509)。即ち、ステップS508にて、記録したファイルのデータに対し、さらに後続するデータがあるかどうかチェックを行う。後続するデータがあるならばステップS510へ移行し、後続するデータが無ければファイル作成の終了として、ステップS515へ移行する。
ステップS510では、BをAに代入する。第1の記録領域が選択されたならば、最初の時点でBは0x00000007であるから、Aに7が代入される。
次に、未使用クラスタBの獲得を行う(ステップS511)。即ち、ステップS501で選択された記録領域から未使用のクラスタに対応するFAT番号を獲得する。この未使用クラスタB獲得処理については、ステップS502同様であるので省略する。未使用クラスタが獲得できなかった場合は、ステップS515へ移行する。またあるいは、未使用クラスタが獲得できた場合、獲得できたクラスタのFAT番号をBに代入する。即ち、図7のKを図5のBに代入し、ステップS512へ移行する。例えば図2の例で、第1の記録領域が選択されたならば、最初の時点でFAT番号0x00000008のクラスタが未使用クラスタとして獲得され、Bには8が代入される。
ステップS512では、Cを1だけインクリメントし、ステップS506へ移行する。最初の時点では、ステップS505にて、Cには2が代入されているから、2から3が代入される。従って、ステップS506からステップS512のループを、新規ファイルの記録しようとしている残りのデータが存在し、未使用クラスタの獲得ができる間、繰り返し処理される。
ステップS515では、サイズ記録領域301の最終FAT番号記録領域401に、最終FAT番号としてBを記録する。即ち、ファイル作成時に、ファイルの最後のデータを記録したクラスタのFAT番号を最終FAT番号記録領域401に記録する。
次に、サイズ記録領域301の占有クラスタ数記録領域402に、占有クラスタ数としてCを記録する(ステップS516)。即ち、そのファイルのデータ記録、及びサイズ記録領域に使用したクラスタの総数を占有クラスタ数記録領域402に記録する。
次に、選択された記録領域の管理テーブル203のクラスタアクセス回数207を2だけインクリメントする(ステップS517)。ただし、ステップS515、及びステップS516を同時に処理した場合は、クラスタアクセス回数207は、1だけインクリメントされる。
次に、ディレクトリエントリにファイルサイズ等各種データを記録し、終了する(ステップS518)。
以上が、ファイルの作成処理について処理の説明である。
以上が、ファイルの作成処理について処理の説明である。
次に、ファイルの削除処理について、図9のフローチャートを参照して説明する。
最初に、削除するファイルのディレクトリエントリの開始クラスタを読み取り、Sに代入する(ステップS901)。例えば図2の例で、FAT番号2、3、4、5のクラスタに記録されているファイルを削除する場合、FAT番号2がディレクトリエントリの開始クラスタに記録されており、Sに2が代入される。
最初に、削除するファイルのディレクトリエントリの開始クラスタを読み取り、Sに代入する(ステップS901)。例えば図2の例で、FAT番号2、3、4、5のクラスタに記録されているファイルを削除する場合、FAT番号2がディレクトリエントリの開始クラスタに記録されており、Sに2が代入される。
次に、FAT番号Sのクラスタが属する、分割された記録領域の管理テーブル203の未使用クラスタ終了ポインタ206を読み取り、Tに代入する(ステップS902)。例えば図2の例で、FAT番号2、3、4、5のクラスタに記録されているファイルを削除する場合、FAT番号2のクラスタは第1の記録領域に属し、第1の記録領域の管理テーブル203の未使用クラスタ終了ポインタ206はM/Nであるから、TにはM/Nが代入される。
次に、FAT番号TのFATポインタにSを記録する(ステップS903)。例えば図2の例で、FAT番号2、3、4、5のクラスタに記録されているファイルを削除する場合、Sに2が代入され、TにM/Nが代入されるから、FAT番号M/NのFATポインタには0x00000002が記録される。
次に、サイズ記録領域301の最終FAT番号記録領域401に記録されている最終FAT番号を読み取り、Uに代入する(ステップS904)。例えば図2の例で、FAT番号2、3、4、5のクラスタに記録されているファイルを削除する場合、ファイルの最後のデータを記録したクラスタのFAT番号は5であり、最終FAT番号記録領域401に記録されている。従って、Uに5が代入される。
次に、FAT番号Sのクラスタが属する、分割された記録領域の管理テーブル203の未使用クラスタ終了ポインタ206にUを記録する(ステップS905)。例えば図2の例で、FAT番号2、3、4、5のクラスタに記録されているファイルを削除する場合、FAT番号2のクラスタは第1の記録領域に属し、Uに代入されているファイルの最後のデータを記録したクラスタのFAT番号は5であるから、第1の記録領域の管理テーブル203の未使用クラスタ終了ポインタ206に5が記録される。
次に、サイズ記録領域301の占有クラスタ数記録領域402に記録されている占有クラスタ数を読み取り、Tに代入する(ステップS906)。例えば図2の例で、FAT番号2、3、4、5のクラスタに記録されているファイルを削除する場合、ファイルのデータが記録されているクラスタ数は4であり、占有クラスタ数記録領域402に記録されている。従って、Tに4が代入される。
次に、FAT番号Sのクラスタが属する、分割された記録領域の管理テーブル203の使用クラスタ数210からT減算した値を記録する(ステップS907)。例えば図2の例で、FAT番号2、3、4、5のクラスタに記録されているファイルを削除する場合、FAT番号2のクラスタは第1の記録領域に属し、Tに代入されているファイルのデータが記録されているクラスタ数は4であるから、第1の記録領域の管理テーブル203の使用クラスタ数210に記録されている値、即ち4から4減算され、0が新たに記録される。即ち、第1の記録領域においては、1つのクラスタも使用されていないことを意味する。
次に、FAT番号Sのクラスタが属する、分割された記録領域の管理テーブル203のクラスタアクセス回数207を2だけインクリメントする(ステップS908)。ただし、ステップS904、及びステップS906を同時に処理した場合は、クラスタアクセス回数207は、1だけインクリメントされる。
例えば図2の例で、FAT番号2、3、4、5のクラスタに記録されているファイルを削除する場合、FAT番号2のクラスタは第1の記録領域に属するから、第1の記録領域の管理テーブル203のクラスタアクセス回数207がインクリメントされる。
次に、削除されるファイルのディレクトリエントリをクリアし、終了する(ステップS909)。
以上が、ファイルの削除処理について処理の説明である。
以上が、ファイルの削除処理について処理の説明である。
次に、未使用クラスタの並び替え処理について、図10、及び図11のフローチャートを参照して説明する。
最初に、Fを初期化する(ステップS1001)。即ち、Fに1を代入する。
最初に、Fを初期化する(ステップS1001)。即ち、Fに1を代入する。
次に、Fの値がNより大きいかどうかチェックする(ステップS1002)。Fの値がNより大きくなければステップS1003へ移行し、Fの値がNより大きければ(1)、即ち図11のステップS1101へ移行する。
ステップS1003では、第Fの記録領域の管理テーブル203の未使用クラスタ開始ポインタ205を読み取り、Gに代入する。例えば図2の例で、Fが1、即ち第1の記録領域関して最初は、管理テーブル203の未使用クラスタ開始ポインタ205は6であり、Gに6が代入される。
次に、FAT番号GのFATポインタを読み取り、Hに代入する(ステップS1004)。例えば図2の例で、Fが1、即ち、第1の記録領域関して最初は、管理テーブル203の未使用クラスタ開始ポインタ205は6であり、Gに6が代入されているから、FAT番号6のFATポインタ0x00000007がHに代入される。
次に、FAT番号GのFATポインタに、未使用領域であることを暫定で示す値、0x00000000を記録する(ステップS1005)。例えば図2の例で、Fが1、即ち、第1の記録領域関して最初は、管理テーブル203の未使用クラスタ開始ポインタ205は6であり、Gに6が代入されているから、FAT番号6のFATポインタに、0x00000000が記録される。
次に、ステップS1004で代入されたHの値が、0xFFFFFFFFであるかチェックする(ステップS1006)。Hの値が0xFFFFFFFFであればステップS1008へ移行し、Hの値が0xFFFFFFFFでなければステップS1007へ移行する。即ち、第Fの記録領域の一連の未使用クラスタに関して、全てのFATポインタに0x00000000を記録したかどうかチェックする。
ステップS1007では、Hの値をGに代入し、ステップS1004へ移行する。例えば図2の例で、Fが1、即ち第1の記録領域関して最初は、管理テーブル203の未使用クラスタ開始ポインタ205は6であり、ステップS1004にて、FAT番号6のFATポインタ0x00000007がHに代入されていたから、7がGに代入される。従って、ステップS1004からステップS1007をループすることにより、第Fの記録領域の一連の未使用クラスタに関して、全てのFATポインタに0x00000000を記録する。
ステップS1008では、Fの値を1だけインクリメントし、ステップS1002へ移行する。従って、ステップS1002からステップS1008をループすることにより、Nヶに分割された全ての記録領域に関して、一連の未使用クラスタの全てのFATポインタに、未使用である旨を暫定で示す、0x00000000を記録する。
ステップ1101では、Fを初期化する。即ち、Fに1を代入する。
次に、Fを初期化する(ステップS1001)。即ち、Fに1を代入する。
次に、Fの値がNより大きいかどうかチェックする(ステップS1102)。Fの値がNより大きくなければステップS1103へ移行し、Fの値がNより大きければ全ての未使用クラスタの並び替え処理が終了したと判断し、処理を終える。
次に、Fを初期化する(ステップS1001)。即ち、Fに1を代入する。
次に、Fの値がNより大きいかどうかチェックする(ステップS1102)。Fの値がNより大きくなければステップS1103へ移行し、Fの値がNより大きければ全ての未使用クラスタの並び替え処理が終了したと判断し、処理を終える。
ステップS1103では、第Fの記録領域の管理テーブル203の未使用クラスタ開始ポインタ205を読み取り、G、H、及びIに代入する。例えば図2の例で、Fが1、即ち第1の記録領域関して最初は、管理テーブル203の未使用クラスタ開始ポインタ205は6であり、G、H、及びIに6が代入される。
次に、Hの値が第Fの記録領域の管理テーブル203の記録領域終了ポインタ209に記録されている値と等しいかどうかチェックする(ステップS1104)。Hの値が第Fの記録領域の管理テーブル203の記録領域終了ポインタに記録されている値と等しければステップS1106へ移行し、等しくなければステップS1105へ移行する。
ステップS1105では、Hの値を1つインクリメントし、ステップS1107へ移行する。即ちFAT番号の1つ大きなFATポインタについて以降の処理を行う。
ステップS1106では、Hの値が第Fの記録領域の管理テーブル203の記録領域開始ポインタ208に記録されている値を読み取り、代入し、ステップS1107へ移行する。即ち、第Fの記録領域の先頭のFAT番号に対するFATポインタについて以降の処理を行う。
ステップS1106では、Hの値が第Fの記録領域の管理テーブル203の記録領域開始ポインタ208に記録されている値を読み取り、代入し、ステップS1107へ移行する。即ち、第Fの記録領域の先頭のFAT番号に対するFATポインタについて以降の処理を行う。
ステップS1107では、Hの値とIの値が等しいかどうかチェックする。即ち、ステップS1103でIにセットされた第Fの記録領域の管理テーブル203の未使用クラスタ開始ポインタ205の値と比較し、第Fの記録領域に関し、一通り処理が終了したかどうかチェックする。Hの値とIの値が等しければステップS1112へ移行し、等しくなければステップS1108へ移行する。
ステップS1108では、FAT番号HのFATポインタを読み取り、Jに代入する。
次に、Jの値が0x00000000であるかどうかチェックする(ステップS1109)。即ち、FAT番号HのFATポインタに、未使用である旨を暫定で示す、0x00000000が記録されているかチェックする。Jの値が0x00000000であればステップS1110へ移行し、0x00000000でなければステップS1104へ移行する。ステップS1107で第Fの記録領域に関し、一通り処理が終了したと判断されるか、未使用である旨を暫定で示されたFAT番号を見つけるまで、ステップS1104からステップS1109をループする。
次に、Jの値が0x00000000であるかどうかチェックする(ステップS1109)。即ち、FAT番号HのFATポインタに、未使用である旨を暫定で示す、0x00000000が記録されているかチェックする。Jの値が0x00000000であればステップS1110へ移行し、0x00000000でなければステップS1104へ移行する。ステップS1107で第Fの記録領域に関し、一通り処理が終了したと判断されるか、未使用である旨を暫定で示されたFAT番号を見つけるまで、ステップS1104からステップS1109をループする。
ステップS1110では、FAT番号GのFATポインタにHを代入する。即ち、FAT番号Gで表される前の未使用クラスタと、FAT番号Hの未使用クラスタの連結を行う。
次に、Hの値をGに代入し、ステップS1104へ移行する(ステップS1111)。従って、ステップS1104からステップS1111をループすることにより、第Fの記録領域に関し、未使用クラスタの並び替えを行う。
次に、Hの値をGに代入し、ステップS1104へ移行する(ステップS1111)。従って、ステップS1104からステップS1111をループすることにより、第Fの記録領域に関し、未使用クラスタの並び替えを行う。
ステップS1112では、FAT番号GのFATポインタに0xFFFFFFFFを記録する。即ち、FAT番号Gのクラスタが、一連の未使用クラスタの最後尾クラスタである旨を記録する。
次に、第Fの記録領域の管理テーブル203の未使用クラスタ終了ポインタ206に、Gを記録する(ステップS1113)。
次に、Fの値を1つインクリメントし、ステップS1102へ移行する(ステップS1114)。即ち、第Fの記録領域に関し、未使用クラスタの並び替え、及び管理テーブル203の修正を終了し、次の記録領域の処理へと進む。ステップS1102からステップS1114の処理を繰り返し行うことにより、全ての記録領域の、未使用クラスタの並び替えを行う。
次に、Fの値を1つインクリメントし、ステップS1102へ移行する(ステップS1114)。即ち、第Fの記録領域に関し、未使用クラスタの並び替え、及び管理テーブル203の修正を終了し、次の記録領域の処理へと進む。ステップS1102からステップS1114の処理を繰り返し行うことにより、全ての記録領域の、未使用クラスタの並び替えを行う。
以上が、未使用クラスタの並び替え処理について処理の説明である。
なお、未使用クラスタの並び替え処理は、記録領域にフラグメンテーションを解消するためのデフラグ時に行っても良いし、CPU等システムに負荷のかかっていないときに行っても良い。
なお、未使用クラスタの並び替え処理は、記録領域にフラグメンテーションを解消するためのデフラグ時に行っても良いし、CPU等システムに負荷のかかっていないときに行っても良い。
また、本実施形態では、その目的の1つである、ハードディスク装置などの記録メディアにおいて、シーク時間の短縮をできるだけ行えるようにするため、1つのファイルが複数の記録領域に跨って記録されない構成をとっているが、複数の記録領域に跨って記録できる構成をとっても良い。
その場合、図7にて未使用クラスタがない場合、再度図6に示された記録領域の選択を行うことで実現できる。具体的には、図4に図示したサイズ記録領域301に、他の記録領域に記録する時点で、その記録領域における開始クラスタのFAT番号、他の記録領域への記録終了時点で、その記録領域における終了クラスタのFAT番号、及びその記録領域における占有クラスタを記録し、ファイル削除時は、それらの情報を用いて、その記録領域の管理テーブル203、FATエントリに図9と同様の処理を行うことにより実現できる。また、この場合、図10、及び図11に示された未使用クラスタの並び替え処理に対しては何ら変更の必要がない。
また、本実施形態では、図3に示されるように、ファイルの先頭クラスタにファイルのサイズに関する情報を記録するサイズ記録領域301を設けており、ファイルの実データは2番目以降のクラスタに記録するようにしているが、サイズ記録領域301をディレクトリエントリ、あるいはその他の場所で記録し、先頭クラスタからファイルの実データを記録するようにしても良い。
また、ファイルの記録に使用されるクラスタ数をサイズ記録領域301の占有クラスタ数記録領域402に記録するよう実施したが、ディレクトリエントリのファイルサイズからクラスタ数を求めるようにしても良い。
また、分割した夫々の記録領域の記録領域開始ポインタ208、及び記録領域終了ポインタ209を記録領域管理テーブル203に有するようにしたが、記録領域全体のクラスタ数を分割の数で割った値を用いて境界を分けるようにしても良い。
また、上述した実施形態において図1に示したファイル管理装置100は、図5〜11に示す各処理の機能を実現する為のプログラムをメモリから読み出してCPU101が実行することによりその機能を実現させるものであったが、これに限定さるものではなく、各処理の全部または一部の機能を専用のハードウェアにより実現してもよい。また、上述したメモリは、光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、CD−ROM等の読み出しのみが可能な記録媒体、RAM以外の揮発性のメモリ、あるいはこれらの組合せによるコンピュータ読み取り、書き込み可能な記録媒体より構成されてもよい。
また、ファイル管理装置100の図5〜11に示す各処理の機能を実現する為のプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理を行っても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。具体的には、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含む。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現する為のものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
また、上記プログラムは、前述した機能の一部を実現する為のものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体およびプログラムプロダクトは、本発明の範疇に含まれる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
100 ファイル管理装置
101 CPU
102 CPUローカルバス
103 ノースブリッジ
104 メモリバス
105 メインメモリ
106 AGP(Accelerated Graphics Port)バス
107 グラフィックコントローラ
108 ディスプレイ
109、119 PCI(Peripheral Component Interconnect)バス
110 サウスブリッジ
111、113 ATA(AT Attachment)バス
112、114 ディスク装置
115 LPC(Low Pin Count)バス
116 キーボードコントローラ
117 キーボード
118 BIOS−ROM
120 NIC(Network Interface card)
201 FAT(File Allocation Table)エントリ
202 FATヘッダ
203 記録領域管理テーブル
204 FATヘッダ
205 未使用クラスタ開始ポインタ
206 未使用クラスタ終了ポインタ
207 クラスタアクセス回数
208 記録領域開始ポインタ
209 記録領域終了ポインタ
210 使用クラスタ数
301 サイズ記録領域
401 最終FAT番号記録領域
402 占有クラスタ数記録領域
101 CPU
102 CPUローカルバス
103 ノースブリッジ
104 メモリバス
105 メインメモリ
106 AGP(Accelerated Graphics Port)バス
107 グラフィックコントローラ
108 ディスプレイ
109、119 PCI(Peripheral Component Interconnect)バス
110 サウスブリッジ
111、113 ATA(AT Attachment)バス
112、114 ディスク装置
115 LPC(Low Pin Count)バス
116 キーボードコントローラ
117 キーボード
118 BIOS−ROM
120 NIC(Network Interface card)
201 FAT(File Allocation Table)エントリ
202 FATヘッダ
203 記録領域管理テーブル
204 FATヘッダ
205 未使用クラスタ開始ポインタ
206 未使用クラスタ終了ポインタ
207 クラスタアクセス回数
208 記録領域開始ポインタ
209 記録領域終了ポインタ
210 使用クラスタ数
301 サイズ記録領域
401 最終FAT番号記録領域
402 占有クラスタ数記録領域
Claims (12)
- 単位領域から構成される記録媒体にファイルのデータを記録、管理するファイル管理装置において、
ファイルのデータを記録する夫々の単位領域をリンクさせて管理するデータリンク手段と、
夫々のファイルのデータを記録する先頭の単位領域へのポインタを記録するファイル開始記録手段と、
夫々のファイルのデータを記録する最後尾の単位領域へのポインタを記録するファイル終了記録手段と、
記録媒体の記録領域を複数の領域に分割し、その領域毎に未使用の単位領域をリンクさせて管理する未使用領域管理手段と、
前記分割される複数の領域毎に管理された未使用の単位領域の先頭の単位領域へのポインタを記録する未使用領域開始記録手段と、
前記分割される複数の領域毎に管理された未使用の単位領域の最後尾の単位領域へのポインタを記録する未使用領域終了記録手段と
を有することを特徴とするファイル管理装置。 - ファイルのデータ記録の際の単位領域の獲得を、前記未使用領域開始記録手段に記録される先頭の単位領域より行うことを特徴とする請求項1記載のファイル管理装置。
- ファイルの削除を行う際、前記ファイル開始記録手段に記録される単位領域へリンクさせるリンク手段と、
前記ファイル終了記録手段に記録される単位領域を未使用領域終了記録手段に記録する記録手段と
を有することを特徴とする請求項1又は請求項2記載のファイル管理装置。 - 前記分割された複数の領域毎にアクセスの回数をカウントするカウント手段と
を有し、前記カウンタ手段の結果アクセス回数の少ない領域からファイル作成の際のデータ記録を行うことを特徴とする請求項1〜3のいずれか1項に記載のファイル管理装置。 - 前記未使用領域管理手段にてリンクされている未使用領域を、近傍の未使用領域にリンクされるように再構築することを特徴とする請求項1〜4のいずれか1項に記載のファイル管理装置。
- 単位領域から構成される記録媒体にファイルのデータを記録、管理するファイル管理方式において、
ファイルのデータを記録する夫々の単位領域をリンクさせて管理するデータリンクステップと、
夫々のファイルのデータを記録する先頭の単位領域へのポインタを記録するファイル開始記録ステップと、
夫々のファイルのデータを記録する最後尾の単位領域へのポインタを記録するファイル終了記録ステップと、
記録媒体の記録領域を複数の領域に分割し、その領域毎に未使用の単位領域をリンクさせて管理する未使用領域管理ステップと、
前記分割される複数の領域毎に管理された未使用の単位領域の先頭の単位領域へのポインタを記録する未使用領域開始記録ステップと、
前記分割される複数の領域毎に管理された未使用の単位領域の最後尾の単位領域へのポインタを記録する未使用領域終了記録ステップと
を有することを特徴とするファイル管理方法。 - ファイルのデータ記録の際の単位領域の獲得を、前記未使用領域開始記録ステップに記録される先頭の単位領域より行うことを特徴とする請求項6記載のファイル管理方法。
- ファイルの削除を行う際、前記ファイル開始記録ステップに記録される単位領域へリンクさせるリンクステップと、
前記ファイル終了記録ステップに記録される単位領域を未使用領域終了記録ステップに記録する記録ステップと
を有することを特徴とする請求項6又は請求項7記載のファイル管理方法。 - 前記分割された複数の領域毎にアクセスの回数をカウントするカウントステップと
を有し、前記カウンタステップの結果アクセス回数の少ない領域からファイル作成の際のデータ記録を行うことを特徴とする請求項6〜8のいずれか1項に記載のファイル管理方法。 - 前記未使用領域管理ステップにてリンクされている未使用領域を、近傍の未使用領域にリンクされるように再構築することを特徴とする請求項6〜9のいずれか1項に記載のファイル管理方法。
- 請求項6記載の方法の各ステップをコンピュータに実行させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
- 請求項6記載の方法の各ステップをコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004288306A JP2006106810A (ja) | 2004-09-30 | 2004-09-30 | ファイル管理装置、ファイル管理方法、記録媒体及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004288306A JP2006106810A (ja) | 2004-09-30 | 2004-09-30 | ファイル管理装置、ファイル管理方法、記録媒体及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006106810A true JP2006106810A (ja) | 2006-04-20 |
Family
ID=36376522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004288306A Pending JP2006106810A (ja) | 2004-09-30 | 2004-09-30 | ファイル管理装置、ファイル管理方法、記録媒体及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006106810A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013033338A (ja) * | 2011-08-01 | 2013-02-14 | Toshiba Corp | メモリシステム |
US10789228B2 (en) | 2017-11-21 | 2020-09-29 | Fujitsu Limited | Data presence/absence determination apparatus and computer-readable storage medium storing program for determination of data presence/absence |
-
2004
- 2004-09-30 JP JP2004288306A patent/JP2006106810A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013033338A (ja) * | 2011-08-01 | 2013-02-14 | Toshiba Corp | メモリシステム |
US10789228B2 (en) | 2017-11-21 | 2020-09-29 | Fujitsu Limited | Data presence/absence determination apparatus and computer-readable storage medium storing program for determination of data presence/absence |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4537083B2 (ja) | データ処理装置及びその制御方法 | |
JP4691209B2 (ja) | アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム | |
JP6920448B2 (ja) | フラッシュメモリファイルシステム及びそのデータ管理方法 | |
US20030065866A1 (en) | Memory controller for memory card manages file allocation table | |
US8977802B2 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
JP6095012B2 (ja) | メタ情報書込方法、メタ情報読出方法、ファイル管理システム、コンピュータ・システム、プログラムおよびデータ構造 | |
EP1805589A2 (en) | Tape emulating disk based storage and method with automatically resized emulated tape capacity | |
JP5362594B2 (ja) | アクセス装置、及び残容量算出方法 | |
KR100703807B1 (ko) | 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치 | |
JP6391061B2 (ja) | テープ上へのファイル書き込み方法 | |
JP6218668B2 (ja) | メディアへのファイル書き込みに伴うメタ情報の効率的な利用 | |
KR20060120674A (ko) | 정보 기록 매체의 데이터 처리 장치 및 데이터 기록 방법 | |
JP5394394B2 (ja) | ファイルシステムにおけるファイル管理・編集方法及び装置 | |
CN113360095A (zh) | 硬盘数据管理方法、装置、设备及介质 | |
JP2006106810A (ja) | ファイル管理装置、ファイル管理方法、記録媒体及びプログラム | |
JP2008269520A (ja) | 記録装置及び記録方法 | |
TWI470454B (zh) | 檔案格式轉換方法 | |
CN106033454B (zh) | 虚拟文件系统的格式化方法、处理方法和装置 | |
JP2006133923A (ja) | データ記録再生装置、記録再生方法、プログラム並びにデータ記録媒体 | |
US20190354306A1 (en) | Available-space management method for nonvolatile memory, access device which stores data to information storage device with nonvolatile memory, information storage device, and information storage system | |
US8775383B2 (en) | File editing apparatus and file editing method | |
US20170115926A1 (en) | Information processing device, information processing method and program | |
JP2009205591A (ja) | アクセスモジュール、情報記録モジュール、及び情報記録システム | |
JP2008134777A (ja) | ファイル割当テーブルのキャッシュ方法 | |
JP2021033615A (ja) | 制御装置 |