(57)【要約】【課題】ファイルの分割結合等のファイル編集の時間短縮及び編集ファイルの読み出し時間短縮を図り、使い勝手の良いファイル管理方法を提供する。【解決手段】ファイルシステムのファイル管理方法は、ディスク４上の所定ブロックサイズのブロックを単位とする記録領域に記録されたファイルを成すデータ５の記録位置管理をその記録開始ブロック番号及びそのデータサイズに基づいて行うもので、コントローラ３がファイルシステムドライバ２を実行することにより、ファイルを編集するとき、該ファイルの全てのデータを構成する複数のエクステントのうち最後のエクステントを除く他のエクステントのデータサイズが前記ブロックのブロックサイズの整数倍であるという制限のない条件で、該各エクステントを構成し、構成された該各エクステントの記録開始ブロック番号およびそのデータサイズをファイル記録位置情報２ａとして書き換えるものである。【選択図】  図１
2004310523.tif 000002
【特許請求の範囲】
【請求項１】
ディスク媒体上の所定ブロックサイズのブロックを単位とする記録領域に記録されたファイルの記録位置管理をその記録開始ブロック番号及びそのデータサイズに基づいて行うファイルシステムにおいて、
前記ファイルを作成あるいは編集するとき、該ファイルの全てのデータを構成する複数のエクステントのうち最後のエクステントを除く他のエクステントのデータサイズが前記ブロックのブロックサイズの整数倍であるという制限のない条件で、該各エクステントを構成するステップと、
構成された該各エクステントの記録開始ブロック番号およびそのデータサイズを前記ファイルの記録位置情報として作成あるいは書き換えるステップとを有することを特徴とするファイル管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハードディスクや光ディスク等のディスク媒体上に記録されたファイルの管理方法に関するものである。
【０００２】
【従来の技術】
従来、ハードディスクや光ディスク等のディスク媒体上で、一つのファイルを複数の領域に分割記録する場合、その各部分（「エクステント」）の記録開始位置はディスク上の最小記録単位（「論理ブロック」）の先頭に一致している必要があり、終了位置は、最後以外のエクステントに関しては論理ブロックの末尾と一致している必要があった。
【０００３】
そのため、一度記録したファイルを編集して分割や結合を行う場合、編集後のエクステント開始・終了位置を論理ブロックの開始・終了位置と一致させるために、ファイルの一部や全体を別の領域に移動させる作業が必要であった。
【０００４】
【発明が解決しようとする課題】
しかしながら、編集によりファイルの一部や全体を別の領域に移動する場合は、移動する場所を確保する必要があるとともに、移動するデータ量が大きい場合には多くの作業時間がかかる。さらにファイルの一部の移動先がファイルの他部とディスク上で物理的に離れてしまうと、読み出し時にシークが発生し読み出し時間が増加することになる。たとえば、ＡＶデータの場合は連続再生が必須なので、読み出し時間の増加は大きな問題となる。
【０００５】
本発明は、上記問題に鑑みなされたものであり、ディスク媒体上に記録されたファイルに対し、分割結合等のファイル編集の時間短縮及び編集ファイルの読み出し時間短縮を図り、使い勝手の良いファイル管理方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的は、ディスク媒体上に記録されたファイルの各部分（エクステント）に関する記録位置管理を、記録開始ブロック番号およびブロックサイズの整数倍でなくてもよいデータサイズに基づいて行うことにより達成される。
【０００７】
つまり、本発明ではディスク媒体上でファイルの全体あるいは部分（エクステント）が最小記録単位（論理ブロック）の末尾だけではなく途中でも終了することを可能とすることにより、ファイルの分割結合等の編集において、ファイルの一部または全体を別の場所に移動するデータ量を減らし、編集にかかる時間が短縮されるとともに編集操作も簡単になる。さらにファイルの一部が離れた場所に記録されることが少なくなるため、読み出し時間が増大する等の影響が小さくなる。
【０００８】
本発明は、このような着想のもとに完成されたもので、ディスク媒体上の所定ブロックサイズのブロックを単位とする記録領域に記録されたファイルの記録位置管理をその記録開始ブロック番号及びそのデータサイズに基づいて行うファイルシステムにおいて、前記ファイルを作成あるいは編集するとき、該ファイルの全てのデータを構成する複数のエクステントのうち最後のエクステントを除く他のエクステントのデータサイズが前記ブロックのブロックサイズの整数倍であるという制限のない条件で、該各エクステントを構成するステップと、構成された該各エクステントの記録開始ブロック番号およびそのデータサイズを前記ファイルの記録位置情報として作成あるいは書き換えるステップとを有することを特徴とする。
【０００９】
【発明の実施の形態】
以下、本発明に係るファイル管理方法の実施の形態を添付図面を用いて詳細に説明する。
【００１０】
図１は、本実施形態のファイルシステムの全体構成を示す概略図である。図１に示すファイルシステムは、ハードディスク装置、光ディスク装置等のディスクドライブ（図示しない）を用いてファイル管理を行うものである。
【００１１】
図１において、１はアプリケーションプログラム、２はファイルシステムドライバ、２ａはファイルシステム上のファイル記録位置情報、３はファイルシステムの制御中枢を担うコントローラ（ＣＰＵ）、３ａはコントローラ３の作業領域等を成すメモリ、４はディスクドライブにより記録再生可能に駆動されるディスク媒体（以下、「ディスク」）、５はディスク４上に書き込まれるファイルを構成する実際のデータ、６はディスク４上へのデータ５の記録再生を行うディスクドライブの記録再生ヘッドをそれぞれ示す。ディスクドライブには、記録再生ヘッド６のほか、図示しないヘッド駆動機構、ディスク回転機構（スピンドルモータ）、信号処理部等の各部が搭載されている。
【００１２】
アプリケーションプログラム１及びファイルシステムドライバ２は、コントローラ３が実行可能なソフトウェア（プログラム）として、ファイルシステム内のＲＯＭやハードディスク等の記憶媒体（図示しない）に格納される。
【００１３】
このうち、アプリケーションプログラム１は、その命令をコントローラ３が実行することにより、ディスク４上へのファイルの記録再生や編集等をファイルシステムドライバ２に指示する機能を有する。
【００１４】
ファイルシステムドライバ２は、本発明のファイル管理方法を用いたファイルシステムの中核を構成するプログラムであり、その命令をコントローラ３が実行することにより、アプリケーションプログラム１の指示を受けて、実際にディスク４上にデータを書き込んだり読み込んだりする機能を有する。この機能では、アプリケーションプログラム１はデータ５のディスク４上の位置は気にする必要はなく、ファイルシステムドライバ２がディスク４上の空き領域を探して記録したり、データ５のディスク４上の位置を検索して読み出したりするようになっている。
【００１５】
記録再生ヘッド６は、例えばディスクドライブがハードディスク装置であれば磁気ヘッドが、またディスクドライブが光ディスク装置であれば光スポット照射及びその戻り光受光用の光学系等を搭載した光学ヘッド（光ピックアップ）がそれぞれ採用される。この記録再生ヘッド６により、ディスク４上へのデータ５の読み書きが行われる。
【００１６】
本実施形態においては、一つのファイルは、ディスク４上の論理ブロックアドレス（以下、「ブロックアドレス」）で特定される論理ブロック（最小記録単位）から成る記録領域のうち、一つの連続領域（ブロックアドレスの連続した複数の論理ブロックの全領域）に記録された一塊のデータであっても、複数の連続領域に分かれて記録された複数塊のデータであってもよい。以下、一つのファイルの全部又は一部を成してディスク４上の一つの連続領域に記録される一塊のデータを「エクステント」と呼ぶ。すなわち、一つのファイルは、ディスク４上では一つ又は複数のエクステントから構成される。
【００１７】
図２は、従来のＵＤＦ（Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ）ファイルシステム上のファイル記録位置情報２ａの構造を示す。
【００１８】
図２において、一つのファイルは、ｎ個のエクステントから成り、そのファイル記録位置情報２ａは、一つのエクステントに付き、４バイト長の記録開始ブロックアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ：開始ブロック番号）（単位はブロック）Ａ１〜Ａｎと、４バイト長のエクステントサイズ（Ｄａｔａ  Ｓｉｚｅ：データサイズ）（単位はバイト）Ｓ１〜Ｓｎとから構成される。この場合、すべてのエクステントの先頭位置は、論理ブロックの先頭と一致し、エクステントサイズＳ１〜Ｓｎは、最後のエクステント以外のものは、論理ブロックサイズ（最小記録単位で、本実施形態では例えば２０４８バイトとする）の整数倍（Ｓ１＝ブロックサイズ×Ｎ１、Ｓ２＝ブロックサイズ×Ｎ２、…、Ｓｎ―１＝ブロックサイズ×Ｎｎ−１（Ｎ１、Ｎ２、Ｎｎ−１は整数））でなければならないというサイズの制限がある。すなわち、一つのファイルを構成するエクステントの内、最後のエクステントは、その終了位置が論理ブロックの末尾と一致しなくてもよいが、それ以外のエクステントは、その終了位置が論理ブロックの末尾と一致する必要がある。
【００１９】
これに対し、図３は、本実施形態のファイルシステム上のファイル記録位置情報２ａの構造を示したものである。
【００２０】
図３において、一つのファイルは、図２と同様にｎ個のエクステントから成り、一つのエクステントに付き、４バイト長の記録開始ブロックアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ：開始ブロック番号）（単位：ブロック）Ａ１〜Ａｎと、４バイト長のエクステントサイズ（Ｄａｔａ  Ｓｉｚｅ：データサイズ）（単位：バイト）Ｓ１〜Ｓｎとから構成される。
【００２１】
本実施形態のファイルシステムでは、エクステントサイズＳ１〜Ｓｎは、最後のエクステント以外のものであっても、従来のファイルシステムのように論理ブロックサイズの整数倍というサイズの制限はない。すなわち、各エクステントの開始位置は論理ブロックの先頭と一致するが、その終了位置は、従来例と異なり、最後のエクステント以外のものであっても、論理ブロックの末尾と一致する必要はなく任意の位置で終了することが可能である。
【００２２】
ただし、ディスク４からデータ５を読み込んだり、ディスク４へデータを書き込んだりする場合は、従来のファイルシステムと同様に論理ブロックサイズ単位となる。そのため、本実施形態のファイルシステムにおいては、コントローラ３がファイルシステムドライバ２を実行することにより、論理ブロックの途中でエクステントが終了する場合は、論理ブロック全体のデータをメモリ３ａに読み込んだ後で、メモリ３ａ内で論理ブロック途中のエクステント終了位置から論理ブロック末尾までのデータを破棄する処理を行う。
【００２３】
次に、本実施形態のファイルシステムによるファイル管理方法を用いて実際にファイルを編集する例を説明する。
【００２４】
まず、編集に用いる「ファイルＡ」と「ファイルＢ」の編集前のディスク４上での配置とその記録位置情報を説明する。
【００２５】
図４は、ファイルＡのディスク４上での配置であり、図５は、ファイルＡのファイルシステム上のファイルＡの記録位置情報２ａである。
【００２６】
図４に示すように、ファイルＡは、ディスク４上で、ブロックアドレス１００の論理ブロック先頭から記録され、ブロックアドレス１０２の論理ブロック途中まで５０００バイト連続して記録されている。本実施形態における論理ブロックサイズ（最小記録単位）は２０４８バイトなので、ブロックアドレス１０２の論理ブロックには９０４バイトが記録されることになる。この場合のファイルＡの記録位置情報２ａは、図５に示すように一つのエクステントのみから成り、論理ブロックアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ）が１００、エクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）が５０００バイトになる。本実施形態において、エクステントサイズの単位はバイトである。
【００２７】
図６は、ファイルＢのディスク４上での配置であり、図７は、ファイルＢのファイルシステム上の記録位置情報２ａである。
【００２８】
図６に示すように、ファイルＢは、ディスク上で、ブロックアドレス２００の論理ブロック先頭から記録され、ブロックアドレス２０１の論理ブロック途中の９５２バイト目まで３０００バイト連続して記録されている。この場合のファイルＢの記録位置情報は、図７に示すように一つのエクステントのみから成り、論理ブロックアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ）が２００、エクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）が３０００バイトになる。
【００２９】
以後、上記ファイルＡ、ファイルＢを用いて、１）ファイルＡの部分削除、２）ファイルＡの分割、３）ファイルＡとファイルＢの結合、４）ファイルＡの途中へのファイルＢの挿入を例にとって、従来のファイルシステムを用いた場合と対比しながら、本発明のファイルシステムを用いた場合の有用性を説明する。
１）ファイルＡの部分削除
まず、ファイルＡを部分削除する場合を図８〜図１３を参照して説明する。
【００３０】
図８は、ファイルＡの部分削除部分を示す。図８の例では、ファイルＡの先頭１０４９バイト目（ブロックアドレス１００の論理ブロック内の途中位置）から１５００バイト分（ブロックアドレス１０１の論理ブロック内の途中位置まで）のデータが削除され、この削除部分の前側部分（ブロックアドレス１００）の１０４８バイト分のデータとその後側部分（ブロックアドレス１０１、１０２）の１５４８バイト＋９０４バイト分のデータとから新ファイルＡ’、すなわち３５００バイト分のデータが構成される。
【００３１】
図９は、本実施形態におけるファイルＡの部分削除後の新ファイルＡ’におけるディスク上のデータ配置を示す。本実施形態では、各エクステントの先頭は論理ブロックの先頭と一致している必要があるため、上記ファイルＡの部分削除後、削除部分の後側部分のデータの先頭が位置するブロックアドレス１０１の論理ブロック内の途中位置からその末尾までの１５４８バイト分のデータを、同じブロックアドレス１０１のブロック内の先頭から開始するように移動させている。
【００３２】
具体的には、コントローラ３がファイルシステムドライバ２を実行することにより、図１０に示すように、ファイルの部分削除が行われると（ステップＳ１０）、その削除部分の後側部分のデータの先頭が含まれるブロックアドレス１０１の論理ブロック内の２０４８バイト分のデータをメモリ３ａに読み込み（ステップＳ１１）、その内の後半１５４８バイト分のデータを論理ブロックの先頭までメモリ３ａ内で移動させ（ステップＳ１２）、その後ディスク４上に書き戻す（ステップＳ１３）処理が行われる。その後、部分削除後の新ファイルＡ’の記録位置情報２ａを書き換える（ステップＳ１４）処理が行われる。
【００３３】
図１１は、本実施形態のファイルシステムにおける部分削除後の新ファイルＡ’の記録位置情報２ａを示す。この場合、部分削除によりファイルＡが３つの領域に分割されたので、新ファイルＡ’の記録位置情報２ａは、３つのエクステントからなる記録位置情報、すなわち削除部分よりも前側のブロックアドレス１００のエクステント１０４８バイト分と、削除部分よりも後側のブロックアドレス１０１のエクステント１５４８バイト分と、ブロックアドレス１０２の９０４バイト分とから成る。すべてのエクステントは論理ブロックの先頭から記録されているが、終了位置は論理ブロックの末尾とは一致しておらず、すべてのエクステントを合わせると新ファイルＡ’のサイズは、３５００バイトになる。
【００３４】
このように本発明のファイルシステムを用いると、ファイルを部分削除した場合に、部分削除後の後半部分のデータの先頭が含まれる論理ブロック内にあるデータのみを該論理ブロックの先頭から開始するように移動させ、新ファイルの記録位置情報を書き換えればよい。
【００３５】
これに対し、図１２は、従来のファイルシステムを用いて部分削除した場合の、削除後の新ファイルＡ’の配置を示したもので、エクステントは論理ブロックの先頭から始まり、最後のエクステント以外は論理ブロックの末尾まで埋まっている必要があるため、削除部分以降のデータを前詰にして全て移動させていることがわかる。
【００３６】
図１３は、従来のファイルシステムにおける部分削除後の新ファイルＡ’の記録位置情報２ａを示しているが、後半部を前半部の直後の位置に移動させているため、論理ブロックアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ）１００から始まるエクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）３５００の一つのエクステントで表現されている。このように、従来例のファイルシステムを用いてファイルを部分削除した場合には、後半部分のデータをすべて移動させる必要のあることがわかる。
２）ファイルＡの分割
次に、ファイルＡを分割して、ファイルＡ１とＡ２に分割する場合を図１４〜図２１を参照して説明する。
【００３７】
図１４は、ファイルＡの分割位置を示す。図１４の例では、ファイルＡの分割位置はファイルＡの先頭から３０００バイト目であり、ファイルＡの前半３０００バイトから成るファイルＡ１と後半２０００バイトから成るファイルＡ２に分割される。
【００３８】
図１５は、本実施形態における分割後のデータ配置を示す。各エクステントの先頭は論理ブロックの先頭と一致している必要があるため、ファイルＡの分割後、分割データの後半部分の先頭を含むブロックアドレス１０１の論理ブロック内にある１０９６バイト分のデータを他の未使用論理ブロック、図１５の例ではたとえばブロックアドレス３００の論理ブロック先頭から開始するように移動させている。
【００３９】
具体的には、コントローラ３がファイルシステムドライバ２を実行することにより、図１６に示すように、ファイルＡの分割が行われる（ステップＳ２０）と、分割データの後半部分の先頭を含むブロックアドレス１０１の論理ブロック内の２０４８バイト分のデータをメモリ３ａに読み込み（ステップＳ２１）、メモリ３ａ内でブロックアドレス１０１の論理ブロック内の後半１０９６バイト分のデータを同一ブロックあるいは他の未使用論理ブロックの先頭からコピーし（ステップＳ２２）、その後、コピーされた論理ブロックをディスク４上のブロックアドレス３００の論理ブロックに書き戻す（ステップＳ２３）処理が行われる。このとき、ブロックアドレス１０１の論理ブロック内のデータに関しては何も操作する必要はない。その後、分割後の新ファイルＡ１とＡ２の記録位置情報２ａを書き換える（ステップＳ２４）処理が行われる。
【００４０】
図１７と図１８は、本実施形態のファイルシステムにおける分割後の新ファイルＡ１とＡ２の記録位置情報２ａをそれぞれ示す。新ファイルＡ１は、図１７に示すように、一つのエクステント、すなわちブロックアドレス１００の論理ブロック先頭から３０００バイト分のデータで構成される。新ファイルＡ２は、図１８に示すように、二つのエクステント、すなわちブロックアドレス３００の論理ブロック内の１０９６バイト分のデータ（部分１）と、ブロックアドレス１０２の論理ブロック内の９０４バイト分のデータ（部分２）とで構成される。
【００４１】
このように、本実施形態のファイルシステムを用いると、ファイルを分割した場合に、分割後データの後半部分の先頭が含まれる論理ブロック内にあるデータのみを他の未使用論理ブロックにコピーし、新ファイルの記録位置情報を書き換えればよい。
【００４２】
これに対し、図１９は、従来のファイルシステムを用いて分割した場合の、分割後の新ファイルＡ１、Ａ２のディスク４上の配置を示したもので、エクステントは論理ブロックの先頭から始まり、最後のエクステント以外は論理ブロックの末尾まで埋まっている必要があるため、分割後のファイルＡ２をすべて未使用領域に移動させていることがわかる。
【００４３】
図２０と図２１は、従来のファイルシステムにおける分割後の新ファイルＡ１とＡ２の記録位置情報２ａを示している。ファイルＡ１の記録位置情報２ａは、図２０に示すように、本実施形態における記録位置情報２ａ（図１７参照）と一致しているが、ファイルＡ２の記録位置情報２ａは。その全体を論理ブロック３００の先頭まで移動させているため、図２１に示すように、論理ブロックアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ）が３００で、エクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）が２０００になっている。このように、従来のファイルシステムを用いてファイルを分割した場合には、後半部分をすべて移動させる必要のあることがわかる。
３）ファイルＡとファイルＢの結合
次に、ファイルＡとファイルＢを結合して新ファイルＡＢを作成する場合を図２２〜図２６を参照して説明する。
【００４４】
図２２に結合後の新ファイルＡＢの配置を示すが、本実施形態においては結合前と結合後とでディスク４上の配置は変わっていないことがわかる。
【００４５】
具体的には、コントローラ３がファイルシステムドライバ２を実行することにより、図２３に示すように、ファイルＡ、Ｂの結合が行われる（ステップＳ３０）と、旧ファイルであるファイルＡとファイルＢのディスク４上の配置はそのままの状態で、ファイルＡとファイルＢをその結合後の新ファイルＡＢのエクステントして設定し（ステップＳ３１）、その結合後の新ファイルＡＢの記録位置情報２ａのみを書き換える（ステップＳ３１）処理が行われる。
【００４６】
図２４は、本実施形態のファイルシステムにおける結合後の新ファイルＡＢの記録位置情報２ａを示す。新ファイルＡＢの記録位置情報２ａは、旧ファイルＡと旧ファイルＢがそれぞれ１つのエクステントになり、論理ブロックアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ）とエクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）の値が旧ファイルの情報のまま、合計２つのエクステントで構成されている。
【００４７】
このように、本実施形態のファイルシステムを用いると、ファイルを結合した場合には新ファイルの記録位置情報のみを書き換えれば済む。
【００４８】
これに対し、図２５は、従来のファイルシステムを用いて結合した場合の、結合後の新ファイルＡＢの配置を示したものである。エクステントは論理ブロックの先頭から始まり、最後のエクステント以外は論理ブロックの末尾まで埋まっている必要があるため、旧ファイルＢの先頭部分１１４４バイトのデータを、旧ファイルＡの末尾以降に論理ブロック１０２を埋めるために移動させ、旧ファイルＢの残り１８５６バイトのデータを未使用領域（本実施形態では論理ブロック２００以降）にすべて移動させていることがわかる。
【００４９】
図２６は、従来のファイルシステムにおける結合後の新ファイルＡＢの記録位置情報２ａを示す。この場合、新ファイルＡＢの記録位置情報２ａは、２つのエクステントから構成される。最初のエクステントは旧ファイルＡと移動された旧ファイルＢの先頭１１４４バイトから成り、ブロックアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ）が１００でエクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）はブロックサイズが２０４８バイトの３倍である６１４４バイトになっている。２番目のエクステントは、移動された旧ファイルＢの残りからなりブロックアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ）が２００、エクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）が１８５６バイトになっていることがわかる。
【００５０】
このように、従来のファイルシステムを用いてファイルを結合させた場合には、エクステントの開始終了位置を論理ブロックの先頭末尾に一致させる必要があるため、煩雑な処理が必要になることがわかる。
４）ファイルＡの途中へのファイルＢの挿入
次に、ファイルＡの途中にファイルＢを挿入して新ファイルＡＢ’を作成する場合を図２７〜図３２を参照して説明する。
【００５１】
図２７に示すように、挿入位置はファイルＡの先頭から２５００バイト目で、全体で８０００バイトから成る新ファイルＡＢ’が作成される。
【００５２】
図２８は、本実施形態における挿入後の新ファイルＡＢ’の配置を示す。各エクステントの先頭は論理ブロックの先頭と一致している必要があるため、ファイルＡの挿入位置から後半部分の先頭を含む論理ブロック１０１内にあるデータ１５９６バイトを他の未使用論理ブロック（たとえば３００）の先頭から開始するように移動させている。
【００５３】
具体的には、コントローラ３がファイルシステムドライバ２を実行することにより、図２９に示すように、ファイルの途中挿入が実行される（ステップＳ３０）と、その挿入位置から後半部分の先頭を含むブロックアドレス１０１の論理ブロック内の２０４８バイト分のデータをメモリ３ａに読み込み（ステップＳ３１）、メモリ３ａ内でブロックアドレス１０１の論理ブロック後半１５９６バイト分のデータを同一ブロックあるいは他の未使用論理ブロックの先頭からコピーし（ステップＳ３２）、その後コピーされた論理ブロックのデータをディスク４上の未使用論理ブロック３００に書き戻す（ステップＳ３３）処理が行われる。その後、挿入後の新ファイルＡＢ’の記録位置情報２ａを書き換える（ステップＳ２４）処理が行われる。
【００５４】
図３０は、本実施形態のファイルシステムにおける挿入後の新ファイルＡＢ’の記録位置情報２ａを示す。これによれば、旧ファイルＡが３つに分割され、旧ファイルＢはそのままなので、合計４つのエクステントから構成されることがわかる。最初のエクステントは旧ファイルＡの挿入位置よりも前２５００バイトのデータで、２番目のエクステントは旧ファイルＢのデータそのもの、３番目のエクステントはコピーしたデータでブロックアドレス３００の論理ブロック内の１５９６バイトのデータ、最後のエクステントは旧ファイルＡの残りで９０４バイトのデータになる。
【００５５】
このように、本実施形態のファイルシステムを用いると、ファイルの途中に別のファイルを挿入した場合に、挿入されるファイルの後半部分先頭が含まれる論理ブロック内にあるデータのみを他の未使用論理ブロックにコピーし、新ファイルの記録位置情報を書き換えればよい。
【００５６】
これに対し、図３１は、従来のファイルシステムを用いてファイルＡの途中にファイルＢを挿入した場合の、挿入後の新ファイルＡＢ’の配置を示したものである。エクステントは論理ブロックの先頭から始まり、最後のエクステント以外は論理ブロックの末尾まで埋まっている必要があるため、旧ファイルＢの先頭部分１５９６バイトのデータを、旧ファイルＡの挿入位置以降にブロックアドレス１０１の論理ブロックを埋めるために移動させ、旧ファイルＢの残り１４０４バイトのデータをその先頭がブロックアドレス２００の論理ブロック先頭と一致するまでコピーしている。
【００５７】
さらに、ブロックアドレス２００の論理ブロックを埋めるために、旧ファイルＡの挿入位置以降の先頭部分６４４バイトのデータを旧ファイルＢの末尾に移動させ、旧ファイルＡの残り１８５６バイトのデータをその先頭がブロックアドレス１０２の論理ブロック先頭と一致するまで移動させていることがわかる。
【００５８】
図３２は、従来のファイルシステムにおける挿入後の新ファイルＡＢ’の記録位置情報２ａを示しており、３つのエクステントから構成される。すなわち、最初のエクステントは旧ファイルＡの挿入位置よりも前の部分と移動された旧ファイルＢの先頭１５９６バイトから成り、エクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）はブロックサイズ２０４８バイトの２倍である４０９６バイトになっている。２番目のエクステントは移動された旧ファイルＢの残り１４０４バイト分のデータと、移動された旧ファイルＡの挿入位置よりも後の先頭６４４バイト分のデータから成り、エクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）が論理ブロックサイズと同じ２０４８バイトになっている。最後のエクステントは移動された旧ファイルＡの挿入位置よりも後の残りから成り、エクステントサイズ（Ｄａｔａ  Ｓｉｚｅ）が１８５６バイトである。
【００５９】
このように、従来のファイルシステムを用いてファイルの途中に別のファイルを挿入させた場合には、エクステントの開始終了位置を論理ブロックの先頭末尾に一致させる必要があるため、挿入するファイルすべてと、挿入されるファイルの挿入位置以降のデータをすべて移動させるという煩雑な処理が必要になることがわかる。
【００６０】
以上、ファイルの部分削除、分割、結合、途中挿入を例にとって、本発明の有用性を示したが、移動するデータ量は必ず最小記録単位（論理ブロックサイズ）以下になることがわかる。
【００６１】
従って、本実施形態によれば、ディスク媒体上に記録されたファイルの各部分（エクステント）に関する記録位置管理を、記録開始ブロック番号およびブロックサイズの整数倍でなくてもよいデータサイズに基づいて行うことにより、ディスク媒体上でファイルの全体あるいは部分（エクステント）が最小記録単位（論理ブロック）の末尾だけではなく途中でも終了することが可能となる。
【００６２】
これは、ファイルの分割結合等の編集において、ファイルの一部または全体を別の場所に移動するデータ量を減らし、編集にかかる時間が短縮されるとともに編集操作も簡単になる。さらに移動するデータ量が最小記録単位（論理ブロックサイズ）以下のため、空き領域の検索が容易となり、ファイルの一部が元の場所と近い位置に記録することが容易となるため、シーク等により読み出し時間が増大する等の影響を小さくする効果が得られる。
【００６３】
また、ファイルシステムの構造が従来例と同一のため、従来のソフトウエアをほとんど変更せずに利用することが可能である。
【００６４】
さらに、他の例として、ディスク管理情報部、あるいはファイル管理情報部に従来のファイルシステムを用いたか、本発明のファイルシステムを用いたかのフラグを付けることにより、従来のファイルシステムとの共存も容易である。
【００６５】
以上本発明の実施形態について説明したが、本発明の好適な実施の態様を以下のとおり列挙する。
［実施態様１］  ディスク媒体上の所定ブロックサイズのブロックを単位とする記録領域に記録されたファイルの記録位置管理をその記録開始ブロック番号及びそのデータサイズに基づいて行うファイルシステムにおいて、前記ファイルを作成あるいは編集するとき、該ファイルの全てのデータを構成する複数のエクステントのうち最後のエクステントを除く他のエクステントのデータサイズが前記ブロックのブロックサイズの整数倍であるという制限のない条件で、該各エクステントを構成するステップと、構成された該各エクステントの記録開始ブロック番号およびそのデータサイズを前記ファイルの記録位置情報として作成あるいは書き換えるステップとを有することを特徴とするファイル管理方法。
［実施態様２］  前記各エクステントが、前記ディスク媒体上のすべてのファイルに対して最後のエクステント以外はブロックサイズの整数倍になっているかどうかのフラグを、前記ファイルシステム上のディスク管理情報部に記録することを特徴とする実施態様１に記載のファイル管理方法。
［実施態様３］  前記各エクステントが、前記ディスク媒体上のすべてのファイルに対して最後のエクステント以外はブロックサイズの整数倍になっているかどうかのフラグを、前記ファイルシステム上のファイル管理情報部に記録することを特徴とする実施態様１に記載のファイル管理方法。
［実施態様４］  前記ブロックは、前記ディスク媒体上の最小記録単位に相当する論理ブロックであることを特徴とする実施態様１に記載のファイル管理方法。
［実施態様５］  １つのファイルを部分的に削除してその削除部分を除く新たなファイルを作成する場合、前記エクステントを構成するステップは、前記削除部分から後半部分のデータの先頭を含むブロック内のデータを前記ディスク媒体上から前記ファイルシステム内のメモリ上に読み込むステップと、読み込まれたデータのうち前記削除部分を除くデータを前記メモリ上で前記ブロックの先頭に移動させるステップと、移動後の前記ブロックのデータを前記ディスク媒体上の該当ブロックに書き戻すステップとを有することを特徴とする実施態様１に記載のファイル管理方法。
［実施態様６］  １つのファイルを分割して複数の新たなファイルを作成する場合、前記エクステントを構成するステップは、該分割位置から後半部分のデータの先頭を含むブロック内のデータを前記ディスク媒体上から前記ファイルシステム内のメモリ上に読み込むステップと、読み込まれたデータのうち該後半部分のデータを前記メモリ上で同一あるいは他のブロックの先頭からコピーするステップと、コピーされた前記ブロックのデータを前記ディスク媒体上の未使用ブロックに書き込むステップとを有することを特徴とする実施態様１に記載のファイル管理方法。
［実施態様７］  複数のファイルを結合して１つの新たなファイルを作成する場合、前記エクステントを構成するステップは、前記ディスク媒体上の前記複数のファイルの記録位置をそのままの状態で該複数のファイルのそれぞれを前記新たなファイルのエクステントとして設定することを特徴とする実施態様１に記載のファイル管理方法。
［実施態様８］  １つのファイルの途中位置に他のファイルを挿入して新たなファイルを作成する場合、前記エクステントを構成するステップは、該挿入位置から後半部分のデータの先頭を含むブロック内のデータを前記ディスク媒体上から前記ファイルシステム内のメモリ上に読み込むステップと、読み込まれたデータのうち該後半部分のデータを前記メモリ上で同一あるいは他のブロックの先頭からコピーするステップと、コピーされた前記ブロックのデータを前記ディスク媒体上の未使用ブロックに書き込むステップとを有することを特徴とする実施態様１に記載のファイル管理方法。
［実施態様９］  ディスク媒体上の所定ブロックサイズのブロックを単位とする記録領域に記録されたファイルの記録位置管理をその記録開始ブロック番号及びそのデータサイズに基づいて行うファイルシステムにおいて、前記ファイルを作成あるいは編集するとき、該ファイルの全てのデータを構成する複数のエクステントのうち最後のエクステントを除く他のエクステントのデータサイズが前記ブロックのブロックサイズの整数倍であるという制限のない条件で、該各エクステントを構成する手段と、構成された該各エクステントの記録開始ブロック番号およびそのデータサイズを作成あるいは書き換える手段とを有することを特徴とするファイルシステム。
【００６６】
【発明の効果】
以上述べてきたように、本発明によれば、ディスク媒体上に記録されたファイルに対し、分割結合等のファイル編集の時間短縮及び編集ファイルの読み出し時間短縮を図り、使い勝手の良いファイル管理方法を提供できる。
【００６７】
すなわち、ディスク媒体上に記録されたファイルの各部分（エクステント）に関する記録位置管理を、記録開始ブロック番号およびブロックサイズの整数倍でなくてもよいデータサイズに基づいて行うことにより、ディスク媒体上でファイルの全体あるいは部分（エクステント）が最小記録単位（論理ブロック）の末尾だけではなく途中でも終了することが可能となる。
【００６８】
これは、ファイルの分割結合等の編集において、ファイルの一部または全体を別の場所に移動するデータ量を減らし、編集にかかる時間が短縮されるとともに編集操作も簡単になる。さらに移動するデータ量が最小記録単位（論理ブロックサイズ）以下のため、空き領域の検索が容易となり、ファイルの一部が元の場所と近い位置に記録することが容易となるため、シーク等により読み出し時間が増大する等の影響を小さくする効果が得られる。
【００６９】
また、ファイルシステムの構造が従来例と同一のため、従来のソフトウエアをほとんど変更せずに利用することが可能である。
【図面の簡単な説明】
【図１】本発明のファイル管理方法を用いたファイルシステムの実施形態の構成概略図を示す図である。
【図２】ファイル記録位置情報の構造を示す図である。
【図３】従来のファイル記録位置情報の構造を示す図である。
【図４】ファイルＡの配置を示す図である。
【図５】ファイルＡの記録位置情報を示す図である。
【図６】ファイルＢの配置を示す図である。
【図７】ファイルＢの記録位置情報を示す図である。
【図８】ファイルＡの部分削除部分を示す図である。
【図９】本実施形態におけるファイルＡの部分削除後の配置を示す図である。
【図１０】ファイルを部分削除する場合の処理を示す概略フローチャートである。
【図１１】本実施形態における部分削除ファイルＡ’の記録位置情報を示す図である。
【図１２】従来のファイルＡの部分削除後の配置を示す図である。
【図１３】従来の部分削除ファイルＡ’の記録位置情報を示す図である。
【図１４】ファイルＡの分割位置を示す図である。
【図１５】本実施形態におけるファイルＡの分割後の配置を示す図である。
【図１６】ファイルを分割する場合の処理を示す概略フローチャートである。
【図１７】本実施形態における分割ファイルＡ１の記録位置情報を示す図である。
【図１８】本実施形態における分割ファイルＡ２の記録位置情報を示す図である。
【図１９】従来のファイルＡの分割後の配置を示す図である。
【図２０】従来の分割ファイルＡ１の記録位置情報を示す図である。
【図２１】従来の分割ファイルＡ２の記録位置情報を示す図である。
【図２２】ファイルＡとファイルＢの結合後の配置を示す図である。
【図２３】ファイルを結合する場合の処理を示す概略フローチャートである。
【図２４】本実施形態における結合ファイルＡＢの記録位置情報を示す図である。
【図２５】従来のファイルＡとファイルＢの結合後の配置を示す図である。
【図２６】従来の結合ファイルＡＢの記録位置情報を示す図である。
【図２７】ファイルＡの途中へのファイルＢの挿入位置を示す図である。
【図２８】本実施形態におけるファイルＡの途中へのファイルＢの挿入後の配置を示す図である。
【図２９】ファイルを途中挿入する場合の処理を示す概略フローチャートである。
【図３０】本実施形態における途中挿入ファイルＡＢ’の記録位置情報を示す図である。
【図３１】従来のファイルＡの途中へのファイルＢの挿入後の配置を示す図である。
【図３２】従来の途中挿入ファイルＡＢ’の記録位置情報を示す図である。
【符号の説明】
１  アプリケーションプログラム
２  ファイルシステムドライバ
２ａ  ファイル記録位置情報
３  コントローラ
３ａ  メモリ
４  ディスク
５  データ
６  記録再生ヘッド
【図１】
2004310523.tif 000003
【図２】
2004310523.tif 000004
【図３】
2004310523.tif 000005
【図４】
2004310523.tif 000006
【図５】
2004310523.tif 000007
【図６】
2004310523.tif 000008
【図７】
2004310523.tif 000009
【図８】
2004310523.tif 000010
【図９】
2004310523.tif 000011
【図１０】
2004310523.tif 000012
【図１１】
2004310523.tif 000013
【図１２】
2004310523.tif 000014
【図１３】
2004310523.tif 000015
【図１４】
2004310523.tif 000016
【図１５】
2004310523.tif 000017
【図１６】
2004310523.tif 000018
【図１７】
2004310523.tif 000019
【図１８】
2004310523.tif 000020
【図１９】
2004310523.tif 000021
【図２０】
2004310523.tif 000022
【図２１】
2004310523.tif 000023
【図２２】
2004310523.tif 000024
【図２３】
2004310523.tif 000025
【図２４】
2004310523.tif 000026
【図２５】
2004310523.tif 000027
【図２６】
2004310523.tif 000028
【図２７】
2004310523.tif 000029
【図２８】
2004310523.tif 000030
【図２９】
2004310523.tif 000031
【図３０】
2004310523.tif 000032
【図３１】
2004310523.tif 000033
【図３２】
2004310523.tif 000034