説明

セクタ管理方法、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体

【課題】 ファイルの生成・書き込みと消去を繰り返しても、ファイルの記録領域の分断化が起こり難いファイル管理方式を提供することを目的とする。
【解決手段】 未使用セクタのうち、所定の閾値以上の連続セクタのみを使用可能とする手順を含むファイル管理システムにおけるセクタ管理方法等、を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイル管理システムにおけるセクタ管理方法およびセクタ管理プログラムならびにセクタ管理プログラムを記録したコンピュータ読み取り可能な記録媒体に関するものである。
【背景技術】
【0002】
近年、磁気テープ媒体を使用する家庭用VTRの代替として、ハード・ディスク・ドライブを使用した映像音声記録再生装置、所謂ハードディスクレコーダが製品化され、急激にその市場を伸ばしている。
ところで、大容量のハード・ディスク・ドライブにデータを記録し、その記録したデータを読み出す為には、ハードディスクレコーダに代表される組込型機器においても、Windows(登録商標)、UNIX(登録商標)等の汎用OSで用いられているものと同等のファイルシステムが欠かせなくなってきている。
【0003】
ファイルシステムの代表的なものとして、DOSやWindows(登録商標)で用いられるFATファイルシステムや、UNIX(登録商標)等で用いられているiノードを使用したファイルシステム等があるが、組込型機器においては、その実装の容易さから、FATファイルシステムを採用する事が多かった。
FATファイルシステムとは、ディレクトリ、ファイル配置テーブル(以下、「FAT」という)、およびクラスタによりファイルの管理を行うファイル管理方法である。FATファイルシステムにおいて、1つのファイルを新しく作成する場合には、ディレクトリ番号の小さい順にディレクトリをサーチして、未使用のディレクトリを見つけることにより、新しく作成するファイルに使用するためのディレクトリを割り当てている。また、FATについても同様になっており、FAT番号の小さい順にFATをサーチして未使用のFATを見つけることにより、新しく作成ファイルに使用するためのFATを割り当てている。
【0004】
しかしながら、FATファイルシステムには、以下に挙げるような課題があった。
(1)ファイル名によるファイルの検索に要する時間が長く、かつ不均一である。
(2)ファイルの生成、消去に要する時間が長く、かつ不均一である。
(3)ファイル配置の均一化に不利である。
(4)ファイルの逆方向からの読み出しが困難である。
(5)ファイルを記録することが可能な領域が分断してしまい、ファイルの書き込みに要する時間が不均一、かつ長くなる。
(6)分断した記録領域にファイルが分割されて記録された場合、ファイルの読み出しに
要する時間が不均一、かつ長くなる。
これらの課題に対しては、多くの改善提案がなされており、例えば、下記の特許文献等にその一例を見る事が出来る。
【0005】
【特許文献1】特開2003−22663号公報
【特許文献2】特開2003−58400号公報
【特許文献3】特開平11−232001号公報
【特許文献4】特開平4−139543号公報
【特許文献5】特開2004−78704号公報
【非特許文献1】三洋電機技報VOL.35、NO.1、2003、通巻72号"ハードディスク一体型ビデオ<VZ−HD1G>"
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明はこのような状況に鑑みてなされたものであり、"ハード・ディスク・ドライブは、大容量で高速な記録装置であるが、ランダムなヘッドシーク動作が頻発すると、データ転送速度が急激に低下するという特性により発生する、前記課題の(5)と(6)を解決することを目的とする。
より具体的には、ファイルの生成・書き込みと消去を繰り返しても、ファイルの記録領域の分断化が起こり難いセクタ管理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
前記課題を解決するために本発明は、未使用セクタのうち、所定の閾値以上の連続セクタのみを使用可能とする手順を含むファイル管理システムにおけるセクタ管理方法等、を提供する。
【発明の効果】
【0008】
本発明によれば、記録セクタの分断化を低減し、高速なファイルアクセスを実現できる。また、従来のFATファイルシステムに比べ、ほんの僅かなオーバーヘッドで実現可能なため、十分に高速なCPUを使用できない環境下においても高速なファイル管理を実現できる。
【発明を実施するための最良の形態】
【0009】
次に、本発明の一実施形態について図面を参照しつつ説明する。
図17は、本実施形態におけるディレクトリエリアの一例を示す図である。
図17において、ディレクトリ1700は、ディレクトリ番号1701と、ファイル名1702と、拡張子1703と、属性1704と、先頭FATポインタ1705とから1つのレコードが構成されている。以下、説明の都合上、ディレクトリ番号1701が「x」であるレコードのディレクトリを「D(x)」と表すこととする。また、先頭FATポインタ1705は、ディレクトリD(x)が使用しているFATのチェインのうちの先頭のFATのFAT番号を示すためのポインタである。
【0010】
なお、図17では、使用中のディレクトリに関しては、ファイル名1702として、例えば「File1」などの文字列を記入しており、末使用のディレクトリに関しては、ファイル名1702として、先頭1バイトに「0x00」(○x○○は16進数を現す)を記入している。
【0011】
図5は、本実施形態におけるFAT構造の一例を示す図である。
図5において、FAT500は、FAT番号501と、FATのチェインを表現するクラスタであるFATポインタ502とから1つのレコードが構成されている。以下、説明の都合上、FAT番号501が「x」であるFATを「F(x)」と表すこととする。
なお、図面では、使用中のFATに関しては、FATのチェインを示すために、FATポインタ502に次のFATのFAT番号が記入されている。さらに、1つのディレクトリに対応付けられている複数のFATのうち、チェインの最終のFATに関しては、FATポインタ502に「Endマーク」の値が記入されている。「Endマーク」には、FATポインタ502として使用されることのない値、例えば−1(16進数の0xFFFFFFFF)が使用される。
【0012】
503は「使用可未使用FAT先頭ポインタ」、504は「使用不可未使用FAT先頭ポインタ」であり、双方ともに、(図示しない)FATのヘッダ情報部分に含まれる特別なポインタである。
使用可未使用FAT先頭ポインタ503は、十分に連続した領域が空いている未使用のFATのみをリンクした使用可能な未使用FATのチェインの先頭FATのFAT番号を示している。また、使用不可末使用FAT先頭ポインタ504は、十分に連続領域が空いていない未使用のFATのみをリンクした使用出来ない末使用FATのチェインの先頭FATのFAT番号を示している。
【0013】
図6は、図5に示したFATチェインのうちの使用済みFATチェインのみを示した図である。同様に、図7は、図5に示したFATチェインのうちの使用可未使用FATチェインを示した図である。さらに、図8は、図5に示したFATチェインのうちの使用不可未使用FATチェインを示した図である。
図36は、本実施形態において用いられるセクタ構造の一例を示す図である。
図36において、セクタ3600は、セクタ番号3601と、セクタエリア3602とから構成されている。以下、説明の都合上、セクタ番号3601が「x」であるセクタを「S(x)」と表すこととする。また、セクタエリア3602は、実際にファイルのデータを格納するエリアが示されている(図36においては、具体例を記入していない)。
【0014】
さらに、セクタ3600とFAT500とは一対一で対応しており、F(x)にはS(x)が対応している。従って、ディレクトリD(x)から始まるFATチェインの各FATポインタに対応しているセクタは使用中セクタである。また、使用可未使用FAT先頭ポインタ503から始まるFATチェインの各FATポインタに対応しているセクタは、一定以上のセクタが連続している為に使用可能な未使用セクタである。さらに、使用不可未使用FAT先頭ポインタ504から始まるFATチェインの各FATポインタに対応しているセクタは、一定以上のセクタが連続していない為に使用出来ない未使用セクタである。
【0015】
以上のようになっているので、ディレクトリ構造、FAT構造およびセクタ構造のそれぞれが、図17、図5、図36に示すようになっている場合には、File1は図18に、File2は図19に、File3は図20に、FileXは図21に、使用可未使用FATは図22に、使用不可未使用FATは図23に、それぞれ示したFATチェイン構造となっている。
例えば、図18に示したように、D(1)で示されるファイル「File1」のデータは、S(1)、S(2)、S(3)、S(9)、S(17)が示すセクタエリア3602内のデータをあわせたものとなる。
【0016】
ここで、D(1)を使用しているファイル「File1」を削除すると、ディレクトリ番号1702が「1」であるディレクトリのファイル名の先頭1バイトを「0x00」としてディレクトリが削除されたことを示す。
次いで、D(1)に対応付けられている使用中FATのチェイン(F(1)→F(2)→F(3)→F(9)→F(17))を、使用不可未使用FAT先頭ポインタ504から始まるFATチェインにFAT番号が昇順となるようにソートして結合する。結合後の使用不可未使用FATのチェインは、「F(1)→F(2)→F(3)→F(8)→F(9)→F(14)→F(15)→F(t)→F(t+1)・・・」となる。すなわち、D(1)の先頭FATポインタが「0x00」になるとともに、使用不可未使用FAT先頭ポインタ504は「1」となる。
【0017】
次いで、使用不可未使用FAT先頭ポインタ504から始まるFATチェインのうち、「一定以上のセクタ」が連続している領域、すなわちFAT番号が連続している領域を、使用可未使用FAT先頭ポインタ503から始まるFATチェインに結合し、使用不可未使用FAT先頭ポインタ504から始まるFATチェインから削除する。
【0018】
図24は、D(1)を使用しているファイル「File1」を削除した後のディレクトリ構造を示した図であり、図9は、例えば上記「一定以上のセクタ」の値が8であるとした場合の図24に対応したFATチェインの構造を示した図である。図10は、図9に示したFATチェインのうちの使用済みFATチェインのみを示した図である。同様に、図11は、図9に示したFATチェインのうちの使用可未使用FATチェインを示した図である。図12は、図9に示したFATチェインのうちの使用不可未使用FATチェインを示した図である。また、図28は、図11の使用可未使用FATチェインに対応したセクタを示した図である。同様に、図29は、図12の使用不可未使用FATチェインに対応したセクタを示した図である。
【0019】
更に、D(3)を使用している「File2」を削除した後のディレクトリ構造を図30に、それに対応したFATチェインを図13〜16に示す。図14は、図13に示したFATチェインのうちの使用済みFATチェインのみを示した図である。同様に、図15は、図13に示したFATチェインのうちの使用可未使用FATチェインを示した図である。図16は、図13に示したFATチェインのうちの使用不可未使用FATチェインを示した図である。また、図33は、図15の使用可未使用FATチェインに対応したセクタを示した図である。同様に、図34は、図16の使用不可未使用FATチェインに対応したセクタを示した図である。
【0020】
次に、2つのセクタを使用するデータ量をもつ1つの新しいファイル「New.DAT」を作成すると、この新しいファイルに使用するためのディレクトリを、ディレクトリ1700から探し出して割り当てる。ここでは、ディレクトリ番号が「1」になっているディレクトリを割り当てることとする。
【0021】
そして、使用可未使用FAT先頭ポインタ503を参照して、現在未使用のFATを先頭から2つ(即ち、「F(1)→F(2)」を)使用することになるので、ディレクトリ1700のD(1)の先頭FATポインタ1705には「1」を、F(1)のFATポインタ502には「2」が、F(2)のFATポインタ502には「Endマーク(0xFFFFFFFF)」を入れることにより、使用中FATのチェインに加える。そして、使用可未使用FAT先頭ポインタ503は「3」となる(図25、図26、図27、図31、図32、図37、図38および図39を参照)。
【0022】
本実施形態のファイル管理システムにおけるセクタ管理方法は、このような手順で実施されるので、新しいファイルに割り当てられるFATは、常に一定以上のセクタが連続している事が保証でき、ハード・ディスク・ドライブのヘッドシークに伴う転送速度の低下を防止することができる。
【0023】
次いで、上記で説明した本実施形態のファイル管理システムにおけるセクタ管理方法に基づきファイルを作成した場合の処理手順について、図面を参照しつつ説明する。
図1は、ファイルを削除した場合の処理手順の一例を示すフローチャートである。
なお、この処理手順は、ファイル管理システムを構成する記録媒体に記録されているプログラムを用いて実行されるものである。
【0024】
まず、ステップS101において、要求された削除ファイルに対するディレクトリ情報、即ち、図17に示すファイル名と削除ファイル名の一致を検索する。
ステップS101において、削除ファイル名に一致するファイルが存在すると、そのディレクトリ番号の値が変数Dに格納される。もし一致するファイルが存在しない場合は、値「−1」が変数Dに格納される。
【0025】
ついで、ステップS102において、ステップS101において得られたディレクトリ番号が有効なものであるか否かを、変数Dの値を確認することにより行う。変数Dの値が−1以外の値であった場合、すなわち削除ファイルが存在する場合は、ステップS103に進み、変数Dの値が−1であった場合は削除ファイルが存在しないので、ステップS107のエラー処理へと進む。
ステップS107のエラー処理の詳細は述べないが、後述する表示部を介して、エラーメッセージ等を表示する。
【0026】
ステップS103では、ディレクトリ1700より、変数Dの値をディレクトリ番号とする先頭FATポインタ1705の値を、変数PAに格納する。
ステップS104においては、前述の使用不可未使用FAT先頭ポインタ504の値を、変数PBに格納する。
次いで、ステップS105において、後述の『二つのFATチェインを昇順で結合する処理ルーチン』を実行することにより、削除ファイルのFATチェインを使用不可未使用FATチェインに結合する。前記『二つのFATチェインを昇順で結合する処理ルーチン』では、処理後、結合後のFATチェインのFAT先頭ポインタを、変数PBに格納しているので、ステップS106において、その値を使用不可未使用FAT先頭ポインタ504に格納する。
【0027】
次いで、前述の『二つのFATチェインを昇順で結合する処理ルーチン』の処理手順について説明する。
図2は、『二つのFATチェインを昇順で結合する処理ルーチン』の処理手順を示すフローチャートである。
本処理ルーチンは、二つの入力変数と、一つの出力変数を使用する。
入力変数の一方は、FAT先頭ポインタを格納した変数PAであり、もう一方は、同様にFAT先頭ポインタを格納した変数PBである。出力変数は、一方の入力変数PBと兼用であり、二つのFATチェインを結合した後の、FAT先頭ポインタが、その値として格納される。
【0028】
ステップS201において、変数PAの値を変数P1に格納する。ステップS202においては、変数P1に格納された値をFAT番号501とするFATポインタ502の値を変数P3に格納する。
ステップS203においては、変数PBの値を変数P2に格納する。
ステップS204において、変数P1の値と変数P2の値を比較し、変数P1が大きければステップS205に進み、変数P2の値が大きければステップS213に進む。
【0029】
ステップS205においては、変数P2に格納された値をFAT番号501とするFATポインタ502の値を変数P4に格納する。
ステップS206においては、変数P4の値が前述のEndマークか否かを確認し、Endマークであった場合は、ステップS215に進み、それ以外の値であった場合は、ステップS207に進む。
ステップS207においては、変数P4の値と変数P1の値の大小比較を行い、変数P1の値の方が大きい場合はステップS212に、変数P4の値の方が大きい場合は、ステップS208に進む。
【0030】
ステップS212においては、変数P4の値を変数P2に格納し、ステップS205へと進む。
ステップS208においては、変数P1の値を変数P2の値をFAT番号501とするFATポインタ502に格納し、ステップS209へと進む。
ステップS209においては、変数P4の値を変数P1の値をFAT番号501とするFATポインタ502に格納し、ステップS210へと進む。
ステップS210においては、変数P3の値がEndマークか否かを確認し、Endマークであった場合は、ステップS217へと進み、本処理ルーチンにおける処理を終了する。変数P3の値が、Endマーク以外の値であった場合は、ステップS211へと進む。
ステップS211においては、変数P3の値を変数P1に格納し、ステップS202へと進む。
【0031】
ステップS213においては、変数P2の値を、変数P1の値をFAT番号501とするFATポインタ502に格納し、ステップS214へと進む。
ステップS214においては、変数P1の値を、変数PBへと格納し、ステップS210へと進む。
ステップS215においては、変数P1の値を、変数P2の値をFAT番号501とするFATポインタ502に格納し、ステップS216へと進む。
ステップS216においては、値「Endマーク」を、変数P1の値をFAT番号501とするFATポインタ502に格納し、ステップS210へと進む。
【0032】
以上、図1および図2を用いて説明した処理を行うことで、削除ファイルの使用していたFATチェインを、使用不可未使用FAT先頭ポインタ504から始まるFATチェインと結合し、昇順に並べる事ができる。
例えば、図17に示したディレクトリ構造において、File1を削除した場合、すなわちそのディレクトリ構造が図17から図24へと変化した場合、FAT500は、図5から図9に示したものに変化する。
【0033】
次いで、図3および図4を用いて、一定以上の連続した未使用FATチェインを、使用不可未使用FATチェインから使用可未使用FATチェインへFATチェインを移動する処理手順について説明する。
【0034】
図4は、『使用不可未使用FATチェインから使用可未使用FATチェインへの移動処理』の処理手順の一例を説明するフローチャートである。図3は、前記『使用不可未使用FATチェインから使用可未使用FATチェインへの移動処理』ルーチンにおいて使用している『使用可未使用FATチェインと接しているか否かを調べる処理』ルーチンの処理手順の一例を説明するフローチャートである。
【0035】
図4のステップS401において、使用不可未使用FAT先頭ポインタ504の値を変数PSへ格納し、ステップS402に進む。
ステップS402においては、変数PSの値を変数P1へも格納する。
ステップS403においては、変数P1の値をFAT番号501とするFATポインタ502の値を、変数P2に格納しステップS404へと進む。
【0036】
ステップS404においては、変数CNTに値「1」を格納する。
ステップS405においては、変数P2の値がEndマークか否か比較を行い、Endマークであった場合はステップS410へと進み、Endマーク以外の値であった場合は、ステップS406へと進む。
ステップS406においては、変数P2の値と、変数P1の値に1を加えた値の大小比較を行う。その結果が等しい場合はステップS407へと進み、異なる場合はステップS410へと進む。
【0037】
ステップS407においては、変数CNTの値に1を加えて、再び変数CNTに格納し、ステップS408に進む。
ステップS408においては、変数P2の値を変数P1に格納し、ステップS409へと進む。
ステップS409においては、変数P1の値をFAT番号501とするFATポインタ502の値を変数P2に格納し、ステップS405へと進む。
【0038】
ステップS410においては、変数P1の値を変数PEへと格納し、ステップS411へと進む
ステップS411においては、変数CNTの値と値「8」の大小比較を行い、変数CNTの値の方が大きい場合はステップS414へ進み、変数CNTの値が7以下である場合は、ステップS412へと進む。
ステップS412では、後述の『FATチェインが使用可未使用領域と接しているか否かを調べる処理』ルーチンを実行し、ステップS413へと進む。
【0039】
ステップS413では、ステップS412で実行された『FATチェインが使用可未使用領域と接しているか否かを調べる処理』ルーチンの実行結果を格納している変数Tの値が値「1」であるか否かを調べる。変数Tの値が「1」である場合は、FATチェインが使用可未使用FATチェインと接している事を示しており、ステップS414へ進む。それ以外の値の場合は、FATチェインは使用可未使用FATチェインと接しておらず孤立したFATチェインであり、ステップS418へ進む。
【0040】
ステップS414においては、変数PSの値を変数PAに格納し、ステップS415へ進む。ステップS415においては、使用不可未使用FAT先頭ポインタ504の値を変数PBへ格納し、ステップS402に進む。
ステップS416においては、変数P1の値をFAT番号501とするFATポインタ502に、値「Endマーク」を格納し、ステップS417へ進む。
【0041】
ステップS417においては、図2を用いて説明した、前述の『二つのFATチェインを昇順で結合する処理ルーチン』を実行し、ステップS418へ進む。
ステップS418では、変数P2の値がEndマークか否かを調べ、Endマークであった場合は、ステップS419へと進み、本処理ルーチンの処理を終了する。一方、変数P2の値がEndマーク以外であった場合は、ステップS420へ進む。
ステップS420では、変数P1の値をFAT番号501とするFATポインタ502に、変数P2の値を格納し、ステップS421へ進む。
ステップS421においては、変数P2の値を変数PSへ格納し、ステップS402へ進む。
【0042】
つぎに、『FATチェインが使用可未使用領域と接しているか否かを調べる処理』ルーチンの処理手順の一例を、図3を用いて説明する。
本処理ルーチンは、二つの入力変数と、一つの出力変数を使用する。
入力変数の一方は、FATチェインの先頭ポインタを格納した変数PSであり、もう一方は、FATチェインの終了ポインタを格納した変数PEである。出力変数Tは、結果を格納する変数であり、変数PSの値から始まり変数PEで終了するFATチェインが、使用可未使用FAT先頭ポインタで始まるFATチェインに接している場合には値「1」が、接していない場合には値「0」が格納される。
ここで、FATチェインが接しているとは、二つのFATチェインが連続領域を成すことを示す。
【0043】
図3において、ステップS301においては、値「0」を変数Tに格納する。
ステップS302においては、使用可未使用FAT先頭ポインタの値をFAT番号501とするFATポインタ502の値を、変数P1に格納し、ステップS303へ進む。
ステップS303においては、変数P1の値がEndマークであるか否かを確認する。変数P1の値がEndマークであった場合は、ステップS309へと進み、本処理ルーチンの処理を終了する。一方、変数P1の値がEndマーク以外の値であった場合は、ステップS304へ進む。
【0044】
ステップS304では、変数PSの値と変数P1の値の大小比較を行い、変数PSの値が変数P1の値より大きい場合はステップS305へ進み、変数PSの値が変数P1の値より小さい場合は、ステップS307へと進む。
ステップS305においては、変数PSの値と、変数P1の値に1を加えた値の大小比較を行い、その値が等しい場合にはステップS308へ進み、異なる場合はステップ306へと進む。
ステップS306においては、変数P1の値をFAT番号501とするFATポインタ502の値を変数P1に格納し、ステップS303へと進む。
【0045】
ステップS307においては、変数PEの値と変数P1の値に1を減じた値の大小比較を行い、その値が等しい場合にはステップS308へ進み、異なる場合はステップ309へと進み、本処理ルーチンの処理を終了する。
ステップS308においては、変数Tに値「1」を格納し、ステップS309へと進み、本処理ルーチンの処理を終了する。
【0046】
以上、図3および図4用いて説明した処理を行うことで、一定以上連続した使用不可未使用FATチェイン(前記説明では8セクタ以上連続したFATチェイン)を、使用可未使用FATチェインへの移動する事ができる。
例えば、図24に示したディレクトリ構造において、File2を削除した場合、すなわちそのディレクトリ構造が図24から図39へと変化した場合、FAT500は、図9から図13に示したものに変化する。
なお、以上説明した例において、一定以上連続したセクタ数を決定する閾値が8以外の値でも良いのは言うまでもない。
【0047】
最後に、図1、図2、図3および図4に示すセクタ管理方法を実行する際に使用されるファイル管理システムの構成の一例について、図面を参照しつつ説明する。
図35は、図1、図2、図3および図4に示すセクタ管理方法を実行する際に使用されるファイル管理システムの構成の一例を示す図である。
図35において、CPU3501が、ROM(Read Only Memory)3503内に存在するプログラムを実行することにより、外部I/〇(Input/Output)3505へのアクセスを実行し、必要に応じて記録媒体3506に対してデータの格納および削除の処理を行い、ファイル管理を行う。この際、本実施形態のセクタ管理方法を行うために必要な使用可未使用FAT先頭ポインタと使用不可未使用FATとのワークは、RAM3504に記憶される。さらに、このファイル管理システムは、本実施形態のセクタ管理方法で管理したデータの管理経過や結果を表示するための表示部3502を有している。
【0048】
以上説明したファイル管理システムは、セクタ管理処理を機能させるためのプログラムを用いて実現されている。
発明の対象とするのは、このプログラムそのものであってもよいし、このプログラムがコンピュータで読み取り可能な記録媒体に格納されているものであってもよい。
本発明では、この記録媒体として、図35に示されているCPU3501で処理が行なわれるために必要なメモリ、例えばROM3503がプログラムメディアであってもよいし、また、図示していない外部記億装置としてプログラム読み取り装置が設けられ、そこに記録媒体を挿入することで読み取り可能なプログラムメディアであってもよい。いずれの場合においても、格納されているプログラムはマイクロコンピュータがアクセスして実行させる構成であってもよいし、あるいはいずれの場合もプログラムを読み出し、読み出されたプログラムは、マイクロコンピュータの図示しないプログラム記憶エリアにロードされて、そのプログラムが実行される方式であってもよい。このロード用のプログラムは予めシステム本体内に格納されているものとする。
【0049】
ここで、上記プログラムメディアは、本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等のテープ系、FD(フレキシブルディスク)やHD(ハードディスク)等の磁気ディスクやCD−ROM/MO/MD/DVD等の光ディスク系、ICカード(メモリカードを含む)/光力ード等のカード系、あるいはマスクROM、EPROM、EEPROM、フラッシュROM等による半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
【0050】
また、本発明においては、インターネットを含む通信ネットワークと接続可能なシステム構成とした場合には、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する媒体であってもよい。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用プログラムは予めシステム本体内に格納しておくか、あるいは別の記録媒体からインストールされるものであってもよい。なお、記録媒体に格納されている内容としてはプログラムに限定されず、データであってもよい。
【0051】
さらに、本発明では、プログラム自体として、図35に示されているCPU3501で実行される処理そのものであってもよいし、あるいはインターネットを含む通信ネットワークとアクセスすることで取り込める、あるいは取り込めたものであってもよいし、こちらから送り出すものであってもよい。さらには、この取り込んだプログラムに基づいて、上記ファイル管理システム内で処理された結果、つまり生成されたものであってもよい。あるいは、こちらから送り出す際に上記ファイル管理システム内で処理された結果、つまり生成されたものであってもよい。なお、これらのものはプログラムに限定されず、データであってもよい。
【0052】
(本発明の他の実施形態)
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【0053】
また、この場合、前記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0054】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【0055】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【図面の簡単な説明】
【0056】
【図1】本発明の実施形態を示し、ファイル削除処理の一例を説明するフローチャートである。
【図2】本発明の実施形態を示し、二つのFATチェインを昇順で結合する処理の一例を説明するフローチャートである。
【図3】本発明の実施形態を示し、FATチェインが使用可能な未使用FATチェインと接しているか否かを調べる処理の一例を説明するフローチャートである。
【図4】本発明の実施形態を示し、一定以上の連続領域を占める使用不可未使用FATチェインを使用可未使用FATチェインへ移動する処理の一例を説明するフローチャートである。
【図5】本発明の実施形態を示し、4つのファイル(File1、File2、File3、FileX)を有するFAT構造の一例を示す図である。
【図6】本発明の実施形態を示し、図5に示したFATのうちの使用済みFATを示した図である。
【図7】本発明の実施形態を示し、図5に示したFATのうちの使用可未使用FAT(連続領域)を示した図である。
【図8】本発明の実施形態を示し、図5に示したFATのうちの使用不可未使用FAT(孤立領域)を示した図である。
【図9】本発明の実施形態を示し、図5に示したFATからFile1を削除した後のFAT構造の一例を示した図である。
【図10】本発明の実施形態を示し、図9に示したFATのうちの使用済みFATを示した図である。
【図11】本発明の実施形態を示し、図9に示したFATのうちの使用可未使用FAT(連続領域)を示した図である。
【図12】本発明の実施形態を示し、図9に示したFATのうちの使用不可未使用FAT(孤立領域)を示した図である。
【図13】本発明の実施形態を示し、図9に示したFATからFile2を削除した後のFAT構造の一例を示す図である。
【図14】本発明の実施形態を示し、図13に示したFATのうちの使用済みFATを示した図である。
【図15】本発明の実施形態を示し、図13に示したFATのうちの使用可未使用FAT(連続領域)を示した図である。
【図16】本発明の実施形態を示し、図13に示したFATのうちの使用可未使用FAT(孤立領域)を示した図である。
【図17】本発明の実施形態を示し、ディレクトリエリアの一例を示す図である。
【図18】本発明の実施形態を示し、File1のFATチェイン構造の一例を示す図である。
【図19】本発明の実施形態を示し、File2のFATチェイン構造の一例を示す図である。
【図20】本発明の実施形態を示し、File3のFATチェイン構造の一例を示す図である。
【図21】本発明の実施形態を示し、FileXのFATチェイン構造の一例を示す図である。
【図22】本発明の実施形態を示し、図5に示したFATの使用可未使用FATチェイン構造の一例を示す図である。
【図23】本発明の実施形態を示し、図5に示したFATの使用不可未使用FATチェイン構造の一例を示す図である。
【図24】本発明の実施形態を示し、「File1」を削除した後のディレクトリエリアを示した図である。
【図25】本発明の実施形態を示し、図13に示したFATにNewを追加した後のFAT構造の一例を示す図である。
【図26】本発明の実施形態を示し、図25に示したFATのうちの使用済みFATを示した図である。
【図27】本発明の実施形態を示し、図25に示したFATのうちの使用可未使用FAT(連続領域)を示した図である。
【図28】本発明の実施形態を示し、図11に示した使用可未使用FATチェインに対応したセクタを示した図である。
【図29】本発明の実施形態を示し、図12に示した使用不可未使用FATチェインに対応したセクタを示した図である。
【図30】本発明の実施形態を示し、「File2」を削除した後のディレクトリエリアを示した図である。
【図31】本発明の実施形態を示し、図25に示したFATのうちの使用不可未使用FAT(孤立領域)を示す図である。
【図32】本発明の実施形態を示し、Newを追加した後のディレクトリエリアを示した図である。
【図33】本発明の実施形態を示し、図15に示した使用可未使用FATに対応したセクタを示した図である。
【図34】本発明の実施形態を示し、図16に示した使用不可未使用FATチェインに対応したセクタを示した図である。
【図35】本発明の実施形態を示し、ファイル管理システムの構成の一例を示す図である。
【図36】本発明の実施形態を示し、セクタ構造の一例を示す図である。
【図37】本発明の実施形態を示し、図25に示した使用可未使用FATチェインに対応したセクタを示した図である。
【図38】本発明の実施形態を示し、図25に示した使用不可未使用FATチェインに対応したセクタを示した図である。
【図39】本発明の実施形態を示し、Newを追加した後のFATチェイン構造の一例を示す図である。
【符号の説明】
【0057】
500 FAT
501 FAT番号
502 FATポインタ
503 使用可未使用FAT先頭ポインタ
504 使用不可未使用FAT先頭ポインタ
1700 ディレクトリ
1701 ディレクトリ番号
1702 ファイル名
1703 拡張子
1704 属性
1705 先頭FATポインタ
3501 CPU
3502 表示部
3503 ROM
3504 RAM
3505 外部I/O
3506 記録媒体
3600 セクタ
3601 セクタ番号
3602 セクタエリア

【特許請求の範囲】
【請求項1】
ファイル管理システムにおけるセクタ管理方法であって、
未使用セクタのうち、所定の閾値以上連続した連続セクタを検出する工程と、
これら連続セクタの使用を可能とする工程とを含むことを特徴とするセクタ管理方法。
【請求項2】
前記未使用セクタを、所定の閾値より大きな連続セクタのみを含む第1の未使用セクタチェインと、それ以外の未使用セクタのみを含む第2の未使用セクタチェインとを用いて管理し、前記第1の未使用セクタチェインに含まれるセクタのみを使用可能とすることを特徴とする請求項1に記載のセクタ管理方法。
【請求項3】
ファイルが削除されたことにより未使用セクタとなったセクタを、削除時にソートして管理する工程を含むことを特徴とする請求項2に記載のセクタ管理方法。
【請求項4】
ファイルが削除されたことにより未使用セクタとなったセクタを、前記第2の未使用セクタチェインに結合する工程と、
当該第2の未使用セクタチェインに含まれる前記所定の閾値より大きな連続したセクタチェインのみを、前記第1の未使用セクタチェインに移動する工程とを含むことを特徴とする請求項2に記載のセクタ管理方法。
【請求項5】
ファイル管理システムにおけるセクタ管理方法をコンピュータに実行させるコンピュータプログラムであって、
未使用セクタのうち、所定の閾値以上の連続セクタのみを使用可能とする工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項6】
前記未使用セクタを、所定の閾値より大きな連続セクタのみを含む第1の未使用セクタチェインと、それ以外の未使用セクタのみを含む第2の未使用セクタチェインとを用いて管理し、前記第1の未使用セクタチェインに含まれるセクタのみを使用可能とする工程をコンピュータに実行させることを特徴とする請求項5に記載のコンピュータプログラム。
【請求項7】
ファイルが削除されたことにより未使用セクタとなったセクタを、削除時にソートして管理する工程をコンピュータに実行させることを特徴とする請求項6に記載のコンピュータプログラム。
【請求項8】
ファイルが削除されたことにより未使用セクタとなったセクタを、前記第2の未使用セクタチェインに結合する工程と、
当該第2の未使用セクタチェインに含まれる前記所定の閾値より大きな連続したセクタチェインのみを、前記第1の未使用セクタチェインに移動する工程とを含むことを特徴とする請求項6に記載のコンピュータプログラム。
【請求項9】
請求項5〜8の何れか1項に記載のコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate


【公開番号】特開2006−172119(P2006−172119A)
【公開日】平成18年6月29日(2006.6.29)
【国際特許分類】
【出願番号】特願2004−363374(P2004−363374)
【出願日】平成16年12月15日(2004.12.15)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】