(57)【要約】【課題】ディスク装置の空き容量が足りなくなった場合に、少ない処理量で、高速に、随時、必要なだけの空き容量を確保することができるファイル管理システムを提供する。【解決手段】ファイルシステム１１０は、ディスク装置等からなり、各ファイルに関する情報をファイル毎にエントリとして記憶するファイル管理テーブル１１２を有する。ファイルシステム管理機構１３０の残量把握機構１３１ａはファイル記憶領域の空き領域を監視する。ファイル削除部１３２は、残量把握機構１３１ａにより空き容量が足りなくなったことが検出されると、削除順序情報管理部１３３を介して削除候補ファイルを調べると共に、削除条件情報管理部１３９を介して削除条件情報を参照して、既成ファイルを削除する。この時、ファイル／ディレクトリ対応情報管理部からファイル／ディレクトリ対応情報を取得して、データブロック内に作成されている当該ディレクトリから上記削除されたファイルのエントリを削除する。【選択図】      図１
2006172512.tif 000002
【特許請求の範囲】
【請求項１】
個々のファイルのサイズ情報を有し、ファイルデータ記憶領域にファイルの実体を記憶して各ファイルの管理を行うファイル管理システムにおいて、
ファイルデータ記憶領域中のデータの先頭位置を示す先頭位置保持手段と、
ファイルデータ記憶領域中のデータの最終位置を示す最終位置保持手段と、
重ね書きの指示を行う重ね書き指示手段と、
ファイルサイズの上限値を設定するサイズ上限値保持手段と、
ファイルの現状サイズとファイルサイズの上限値とを比較する比較手段と、
ファイルデータ記憶領域へのデータの追加書き込み中に、前記比較手段によって、ファイルサイズがファイルサイズの上限値に等しくなったことが検出されたとき、前記重ね書き指示手段からの指示を受けて、自動的にファイルの先頭からデータを上書きする動作を開始するデータ書き込み手段と、
ファイルに格納されている各データのデータ構造を記憶するデータ構造情報記憶手段と、
前記データ構造情報記憶手段に格納されている情報を参照して、ファイルに書き込まれている各データのデータ構造を検出し、各データの区切り位置を検出するデータ境界検出手段を備え、
前記データ境界検出手段は、ファイルにデータが上書きされる際に、上書きされているデータのデータ構造が損なわれないような先頭位置を、前記先頭位置保持手段に設定することを特徴とするファイル管理システム。
【請求項２】
個々のファイルのサイズ情報を有し、ファイルデータ記憶領域にファイルの実体を記憶して各ファイルの管理を行うファイル管理システムにおいて、ファイルシステム全体の空き容量の下限値が設定される空き容量下限保持手段と、
ファイルシステムの空き容量が該空き容量下限保持手段に保持されている値より少なくなったことを判断する空き容量判定手段と、
該空き容量判定手段によって，ファイルシステムの空き容量が空き容量下限保持手段の値より少なくなったと判断されたとき、ファイルに対してデータを重ね書きするように指示する重ね書き指示手段と、
ファイルに格納されている各データのデータ構造を記憶するデータ構造情報記憶手段と、
前記データ構造情報記憶手段に格納されている情報を参照して、ファイルに書き込まれている各データのデータ構造を検出し、各データの区切り位置を検出するデータ境界検出手段を更に備え、
前記データ境界検出手段は、ファイルにデータが上書きされる際に、上書きされているデータのデータ構造が損なわれないような先頭位置を、前記先頭位置保持手段に設定することを特徴とするファイル管理システム。
【請求項３】
前記データ境界検出手段は、あるデータが上書きされた際、そのデータの次に書き込まれているデータの先頭位置を、前記前記先頭位置保持手段に設定することを特徴とする請求項１または２に記載のファイル管理システム。
【請求項４】
ファイルに書き込まれる各データの先頭には、データの区切り位置を示すある特定のレコードが書かれており、前記データ境界検出部は、この特定のレコードを 検出することにより、各データの先頭位置を検出することを特徴とする請求項１、２、または、３に記載のファイル管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムの管理方式に関し、特に、ファイルの空き容量が不足した場合におけるファイルの管理システムに関する。
【背景技術】
【０００２】
コンピュータシステムでは、データの記憶装置として磁気ディスク装置や光ディスク装置が、主に、用いられている。このような記憶装置においては、データはファイルによって管理される。
【０００３】
ところで、最近、インターネットが急速に普及している。このインターネット上のサービスの一つに、一般に、ニュースと呼ばれている電子掲示板というものがある。このニュースには、現在、約数千のニュースグループがあり、多種多様な記事が書き込まれ、多数のユーザに閲覧されている。
【０００４】
このインターネット上で流通する電子掲示板の記事の量は、日に日に増加しており、最近ではそのデータ量は１５０〜２００ＭＢ（メガバイト）にも達している。したがって、これらの記事を受信・管理しているサイトでは、記事を保存するためのスプール容量の確保が重要な課題となっている。
【０００５】
この電子掲示板の仕組みは、一般に、以下のようになっている。
受信される記事は、いったん、ディスク装置上に設けられたスプール領域に保管される。このスプール領域の容量には制限があるため、一定期間、経過した記事は、順次、削除されていく。この場合、古い記事から順次、削除されていく。
この場合、記事が削除されるまでの期間（保存期間）は、用意されたスプール領域の容量と記事の流通量、及び、記事を受信・提供しているサイトにおける記事の重要性などの要因の兼ね合いによって決定される。このとき、記事の保存期間は、常に、一定であり、かつ、スプール領域が過多になったときの記事の削除の操作は定期的／自動的に行われるのが一般的である。
【０００６】
ところで、記事の流通量は日によってばらつきがあるのが普通である。このとき、そのばらつきが平均値よりも大幅に多い日が連続すると、確保していたスプール領域に記事が入りきらなくなる。このような場合、電子掲示板のシステムやホスト自体が障害を起こすこともある。
【０００７】
このため、従来は、
（１）  ディスク装置の空き容量を監視し、空き容量が少なくなってきたら、記事の保存期間のパラメータを短く変更し、古い記事を削除する。
【０００８】
（２）  上記削除の結果、必要と考えられるだけの空き容量が確保できれば、削除処理を停止し、確保できなければ、確保できるまで、同様の操作を繰り返す。
という方法を人手により行っていた。
【０００９】
また、計算機システムにおいては、何らかのサービスを提供している場合、その利用状況などのログをある程度、ファイルに記録・保存しておき、障害が発生した場合、そのログを解析して障害原因を究明する処理が、一般に、行われる。
【００１０】
ところが、ログの量は時間とともに増加する一方であり、不注意に運用していると、ログファイル自体がファイルシステムの空き容量の不足を引き起こし、本来のサービスの運用に支障を来す場合がある。
【００１１】
このため、従来は、ログファイルの名前を、例えば、定期的に（普通は一日〜一週間）、ＦＩＬＥ．０〜ＦＩＬＥ．７など一つづつ変えていき、ある程度古いファイルを自動的に削除していくという方法を採っていた。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記従来の電子掲示板の方法では、以下のような問題があった。
（１）  ディスク装置の空き容量の監視を、頻繁に行うのは手間が大変である。
（２）  例え、ディスク装置の空き容量の監視を、ある程度、自動化して頻繁に行ったとしても、記事の保存期間のパラメータの短縮の度合いの判断は自動化しにくい。このため、記事の削除は人手で行うのが一般的とならざるをえない。しかし、土曜日、日曜日などは、必ず、管理者がいるとは限らないので、結局、タイムリーな削除はできない。
【００１３】
（３）  また、例え、うまくタイムリーに記事を削除できたとしても、記事の削除処理には時間がかかる。このため、長時間、記事の受信処理が止まったり、記事の削除のために、無駄にＣＰＵ資源を浪費する。
【００１４】
また、上記従来のログファイルの方法では、以下のような問題があった。
（１）  ログファイルに記録されるログの量が、毎日、一定していないため、突出してログの多い日が続くことがあると、ファイルシステムの空き容量が不足してしまう。
【００１５】
（２）  上記（１）のような事態を防止するために、ログファイルに最低限のログ量だけしか保存しないようにすると、実際に障害が発生した場合、その障害の原因の究明に必要となるログを記録しそこねる場合がある。
【００１６】
本発明は、ディスク装置の空き容量が足りなくなった場合に、少ない処理量で、高速に、随時、必要なだけの空き容量を確保することができるようにすることを目的とする。また、常に、一定量のログを保存することができ、ファイルシステムの空き容量を圧迫することなしに、ログを保存できるようにすることを目的とする。
【課題を解決するための手段】
【００１７】
本発明のファイル管理システムは、ファイルと該ファイルを管理するディレクトリが記憶媒体上に作成されるファイルシステムを管理するファイル管理システムを前提とする。
そして、複数のエントリを有し、各エントリに前記記憶媒体上に作成されている各ファイルを管理するための情報を格納するファイル管理テーブルと、前記記憶媒体上に作成されているファイルとディレクトリの対応情報を管理するファイル／ディレクトリ対応情報管理手段と、前記記憶媒体のファイルの記憶容量の残量を把握する残量把握手段と、該記憶媒体に対してファイルの作成や削除を行うファイル作成／削除手段と，前記ファイル作成／削除手段が新規にファイルを作成する際に、前期残量把握手段によって把握されている残量情報を基に、前記記憶媒体にそのファイルを作成するための空き容量がないと判断した場合に、前記ファイル管理テーブルから前記記憶媒体上に既に作成されている既成フ
ァイルのエントリを削除するファイル削除手段と、ファイル／ディレクトリ対応情報管理手段に管理されている情報を参照して、当該ディレクトリから，該ファイル削除手段によって削除されたファイルのエントリを削除するディレクトリエントリ削除手段とを備える。
【００１８】
記憶媒体に対しては、アプリケーション等からの指示に従いファイル作成／削除手段が、ファイルの作成／削除を行う。ファイルが作成される度に、この作成されたファイルに関する情報がファイル管理テーブルのエントリに、各ファイル毎に個別に登録される。残量把握手段は、常に記憶媒体の空の記憶領域の量を監視する。残量把握手段が空の記憶領域が無くなったことを検出した場合には、ファイルの削除をファイル削除手段に依頼する。ファイル削除手段は、その削除を依頼されたファイルを記憶媒体上から削除すると共に、ファイル管理テーブルのその削除されたファイルのエントリを空にする。そして、ファイルを削除することによって空いた記憶領域に新たにファイルを作成し、このファイルに関する情報をファイル管理テーブルの空きとなっているエントリに登録する。
【００１９】
また、ファイルの記憶形態がディレクトリ構造を有している場合には、記憶媒体上にディレクトリ（ディレクトリファイル）が作成されている。このディレクトリの各エントリには、例えば、そのディレクトリに属するファイルまたはディレクトリの名称とデータブロックへのポインタが格納されている。従って、あるディレクトリの下にあるファイルを削除する場合に、ファイルを削除するだけでは、このファイルが属するディレクトリにそのファイルのエントリが残されてしまう。そこで、ファイル／ディレクトリ対応情報管理部がファイル／ディレクトリ対応情報を参照して、ディレクトリエントリ削除部に、当該ディレクトリのエントリからそのファイルのエントリを削除させる。
【００２０】
本発明のファイル管理システムの他の構成においては、個々のファイルのサイズ情報を有し、ファイルデータ記憶領域にファイルの実体を記憶して各ファイルの管理を行うファイル管理システムを前提とする。そして、ファイルデータ記憶領域中のデータの先頭位置を示す先頭位置保持手段と、ファイルデータ記憶領域中のデータの最終位置を示す最終位置保持手段と、重ね書きの指示を行う重ね書き指示手段と、ファイルデータ記憶領域にデータを追記する際に、前記重ね書き指示手段からデータの重ね書きの指示がなされた場合、ファイルデータ記憶領域の先頭から、該ファイルのデータを上書きするデータ書き込み手段と、を備える。
【００２１】
先頭位置保持手段、及び最終位置保持手段は、ファイルデータ記憶領域中のファイルが記憶されている領域の先頭位置と最終位置を示すポインタを保持する。ファイルデータ記憶領域にデータが書き込まれていき、所定の領域内に納まらなくなると、重ね書き指示手段はデータ書き込み手段にファイルデータ領域の先頭からファイルの重ね書きを指示する。この際、直接、重ね書きをすると重ね書きされたデータ（特に、データの先頭部分にはデータ構造に関する重要な情報が組み込まれていることが多い）は失われてしまうために、ファイルシステムがデータを読み取ろうとするときエラーを起こしてしまう可能性がある。そこで、先頭位置保持手段が保持する最古のデータの先頭位置を、重ね書きされているデータの構造に応じて、変化させることが可能である。すなわち、最終位置保持手段に最新のデータ最終位置を保持させ、先頭位置保持部に最古のデータの先頭位置を保持させるようにする。このことにより、各ファイルについて、データの先頭位置と最終位置を正確に把握することが可能になる。また、ファイルシステムがデータの読み込み動作を行う場合にエラーを起こすことがなくなる。
【００２２】
また、本発明のファイル管理システムの更に他の構成においては、個々のファイルのサイズ情報を有し、ファイルデータ記憶領域にファイルの実体を記憶して各ファイルの管理を行うファイル管理システムを前提とし、ファイルデータ記憶領域中のデータの先頭位置を示す先頭位置保持手段と、ファイルデータ記憶領域中のデータの最終位置を示す最終位置保持手段と、重ね書きの指示を行う重ね書き指示手段と、ファイルサイズの上限値を設定するサイズ上限値保持手段と、ファイルの現状サイズとファイルサイズの上限値とを比較する比較手段と、ファイルデータ記憶領域へのデータの追加書き込み中に、前記比較手段によって、ファイルサイズがファイルサイズの上限値に等しくなったことが検出されたとき、前記重ね書き指示手段からの指示を受けて、自動的にファイルの先頭からデータを
上書きする動作を開始するデータ書き込み手段を備える。
【００２３】
このように、ファイルのサイズの上限値をサイズ上限値保持手段に設定しておき、比較手段によって現状のファイルサイズと予め設定されたファイルサイズの上限値とを比較することによって、データを追記しているファイルのサイズがそのファイルのサイズの上限値に等しくなった場合には、ファイルの先頭位置から追記データの重ね書きを行う。
【００２４】
したがって、個々のファイルのサイズを、一定容量に制限できるので、ファイルシステム全体の空き容量を圧迫しないような運用が可能となる。
本発明のファイル管理システムの更に別の構成においては、個々のファイルのサイズ情報を有し、ファイルデータ記憶領域にファイルの実体を記憶して各ファイルの管理を行うファイル管理システムを前提とし、ファイルシステム全体の空き容量の下限値が設定される空き容量下限保持手段と、ファイルシステムの空き容量が該空き容量下限保持手段に保持されている値より少なくなったことを判断する空き容量判定手段と、該空き容量判定手段によって，ファイルシステムの空き容量が空き容量下限保持手段の値より少なくなったと判断されたとき、ファイルに対してデータを重ね書きするように指示する重ね書き指示手段を備える。
【００２５】
この構成においては、ファイルシステムの全体の空き容量の下限値を設定することにより、常に、ファイルシステムの全体の空き容量を一定量確保することができ、ファイルシステム全体の空き容量を圧迫しないような運用が可能となる。
【発明の効果】
【００２６】
本発明によれば、ファイルシステムを格納する記憶装置に空き容量が無くなった場合に、高速に、随時、必要なだけの空き容量を確保することが可能になる。
また、常に、一定量のログデータを保存することが可能になる。また、ファイルシステムの空き容量を圧迫することなく、ログデータを保存することが可能になる。
【００２７】
さらに、ファイルシステムの空き容量がある程度以下まで減った場合には、自動的にファイルのデータの重ね書き動作に入るようにして、ファイルシステムの空き容量を圧迫しないようなファイルシステムの運用が可能になる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照しながら、本発明の実施例を説明する。
図１は、本発明の第一の基本構成を示すブロック図である。
ファイルシステム１１０は、ディスク装置上に作成され、データが格納されるファイル、ファイル名とそのファイルの実体に関する情報が格納されているｉノードの番号が対になっているディレクトリファイル、ファイル情報を管理するファイル管理テーブル１１２、ファイルの削除順序に関する情報を格納する削除順序情報格納部１１４、ファイルシステム１１０内のファイルとディレクトリエントリとの対応情報を格納するファイル／ディレクトリエントリ対応情報格納部１１５、ファイルシステム１１０内のファイルの削除条件に関する情報を格納している削除条件情報格納部１１６等を備えている。尚、上記削除順序情報格納部１１４、上記ファイル／ディレクトリエントリ対応情報格納部１１５及び上記削除条件情報格納部１１６は、ファイルシステム１１とは別の記憶装置に設けるよう
にしてもよい。
【００２９】
ファイルシステム管理機構１３０は、ファイルシステム１１０の空き容量を監視する残量把握機構１３１ａとファイルシステム１１０にファイルを作成したり、削除したりするファイル作成／削除機構１３１ｂを備えている。また、ファイルシステム管理機構１３０は、ファイル作成／削除機構１３１ｂに依頼して上記ファイルシステム１１０内のファイルを削除するファイル削除部１３２、該ファイル削除部１３２が削除するファイルの順序に関する情報を管理する削除順序情報管理部１３３、上記ファイルシステム１１０内のディレクトリエントリを削除するディレクトリエントリ削除部１３４、ファイルとディレクトリエントリの対応情報を管理するファイル／ディレクトリエントリ対応情報管理部１３５、ファイルの削除順序の問い合わせ及び設定を行う削除順序問い合わせ／設定部１３６、ファイルを削除する際に削除条件に合致しているか否かを判断する削除条件判断部１３７、ファイルの削除条件の問い合わせ及び設定を行う削除条件問い合わせ／設定部１３８、各ファイルを削除するときの条件に関する情報を管理する削除条件情報管理部１３９、及び削除候補ファイル問い合わせ部１４０を備えている。
【００３０】
上記削除順序情報管理部１３３は、上記削除順序情報格納部１１４にファイルの削除順序に関する情報を格納して、ファイルシステム１１０内のファイルの削除順序を管理している。
【００３１】
上記ファイル／ディレクトリエントリ対応情報管理部１３５は、ファイルシステム１１０内のファイルとディレクトリエントリとの対応情報を，ファイル／ディレクトリエントリ対応情報格納部１１５に格納して、ファイルシステム１１０内のファイルとディレクトリエントリとの対応情報を管理している。
【００３２】
上記削除条件情報管理部１３９は、ファイルシステム１１０内の各ファイルの削除条件に関する情報を、削除条件情報格納部１１６に格納して、ファイルシステム１１０内の各ファイルの削除条件に関する情報を管理している。
【００３３】
次に、上記第一の実施例の本発明の要部に関する動作を説明する。
（１）  ファイル作成時
残量把握機構１３１ａは、常時、ファイルシステムの空き容量を監視している。そして、ファイル作成／削除機構１３１ｂが新たにファイルを作成するとき、ファイルシステムに空き容量が無くなると、そのことをファイル削除部１３２に通知する。ファイル削除部１３２は、削除順序情報管理部１３３に問い合わせ、削除対象となるファイルの情報を取得する。そして、ファイル削除部１３２は、この削除順序情報管理部１３３から通知されたファイルの削除を、ファイル作成／削除機構１３１ｂに依頼する。ファイル作成／削除機構１３１ｂは、この依頼を受け取ると、通知されたファイルを削除する。そして、新たなファイルを作成する。
【００３４】
（２）  ファイル削除時
ファイル作成／削除機構１３１ｂは、ファイル削除の依頼を受け取ると、ファイル削除部１３２を介して削除順序情報管理部１３３から削除対象のファイルを通知してもらい、そのファイルを削除する。
【００３５】
（３）  ディレクトリからのファイルの削除
ファイルシステムがディレクトリ構造である場合、単にファイルのみを削除してしまうと、ディレクトリとの一貫性がとれなくなる。このため、あるファイルを削除する場合、そのファイルが属するディレクトリのエントリも一緒に削除する。
【００３６】
すなわち、ファイル削除部１３２は、削除対象のファイルの情報を得ると、そのファイルの削除をファイル作成／削除部１３１ｂに依頼すると同時に、ファイル／ディレクトリエントリ対応情報管理部１３５に上記削除対象のファイルが存在するディレクトリを問い合わせ、そのディレクトリの情報を得る。ファイル削除部１３２は、上記得たディレクトリのエントリからその削除対象となったファイルを削除するように、ディレクトリエントリ削除部１３４に依頼する。ディレクトリエントリ削除部１３４は、この依頼を受けてファイル／ディレクトリエントリ対応情報管理部１３５を介してファイル／ディレクトリエントリ対応情報格納部１１５に格納されている上記削除対象となったファイルと上記ディレクトリエントリとの対応関係を解除すると同時に、ディレクトリ中のファイルのエント
リを削除する。
【００３７】
（４）  ファイルの削除順序の問い合わせと設定
例えば、ファイルの削除順序が作成日時の順序になっていたものを、更新順序順に変更する。また、現在、ファイルの削除順序がどのようになっているのかを問い合わせ可能にする。
【００３８】
上記機能は、削除順序問い合わせ／設定部１３６により実行される。削除順序合わせ／設定部１３６は、削除順序情報管理部１３３に問い合わせて，ファイルの削除順序の情報を得たり、削除順序情報管理部１３３に対してファイルの削除順序の変更を依頼する。
【００３９】
（５）  ファイルの削除が条件に合致しているかの判断
例えば、配下にファイルが残っているディレクトリは削除しない、削除は作成日時順に行うが、アクセスが例えば３日以内にあったものは例外として削除しない、または作成日時が３日以内のものは削除しないなどの条件に基づいて、ファイルを削除する場合などに用いる。
【００４０】
上記（１）〜（３）において、ファイル削除部１３２が削除対象のファイルを見つけた場合、そのファイルを削除してもよいか否かの条件を削除条件情報管理部１３９に問い合わせる。そして、ファイル削除部１３２は、削除条件情報管理部１３９から受け取った条件を削除条件判断部１３７に通知して、上記ファイルを削除してもよいか否かを確認する。そして、削除条件判断部１３７から削除しても良いとの結果を受け取った場合にのみ、上記ファイルの削除をファイル作成／削除機構１３１ｂに依頼する。
【００４１】
また、削除条件問い合わせ／設定部１３８は、削除条件情報管理部１３９にファイルの削除条件がどうなっているのかを問い合わせたり、さらには、新たなファイルの削除条件を設定する。
【００４２】
（６）  削除候補となっているファイルの問い合わせ
例えば、実際にファイルシステム１１０に存在する最古のファイルを調べるインターフェースをアプリケーションプログラムに提供することにより、そのファイルシステム１１０にファイルを作成しているアプリケーションプログラムとの同期を取りやすくする。
【００４３】
例えば、インターネットにおいて電子掲示版を提供するアプリケーションプログラムのヒストリ（ｈｉｓｔｏｒｙ）機能では１０日前までの記事を保存していることになっていても、ファイルの空き容量が不足したので、ファイルシステム１１０の都合により７日以上前の古いファイルは全て消したというような場合に、この問い合わせ機能を使って、上記アプリケーションプログラムがファイルシステム１１０に対していつまでのファイルが残っているのかを確認し、それに合わせて上記ヒストリの内容を調整する。
【００４４】
削除順序問い合わせ／設定部１３６は、削除順序情報管理部１３３を介して削除順序情報格納部１１４に登録されている削除対象のファイルについての情報を得ることができる。そして、この情報をアプリケーションプログラムからの依頼に応じて、アプリケーションプログラムに通知する。
【００４５】
図２は、図１の基本構成の第一の実施例を示すブロック図である。
ファイルシステム１１０は、ファイル情報を管理するファイル管理テーブル１１２及びファイルシステム１１０を管理するための情報が格納されているファイルシステム管理ブロック１１３等からなる。ファイルシステム１１０においては、ファイルの実体は、不図示のデータ領域と呼ばれる複数のデータブロックから成る領域に格納される。また、ファイル管理テーブル１１２は、♯１〜♯Ｎのエントリ番号が付与されたＮ個のエントリを有し、これらの各エントリには各ファイル毎に作成されるファイル管理情報ブロックが格納される。このファイル管理情報ブロックには、ファイルの種類（普通のファイル、ディレクトリファイルなど）、そのファイルの実体が格納されているデータ領域上の場所に関する情報などが格納される。
【００４６】
ファイルシステム管理ブロック１１３は、フリーブロックカウンタ１１３ａ，先頭ポインタ１１３ｂ，及び最終ポインタ１１３ｃを備えている。
フリーブロックカウンタ１１３ａは、上記データ領域内の空きデータブロックの数を計数するカウンタである。先頭ポインタ１１３ｂは、ファイル管理テーブル１１２中の最古に作成されたファイルのエントリ番号を指すポインタである。
また、最終ポインタ１１３ｃは、ファイル管理テーブル１１２中の最新に作成されたファイルのエントリ番号を指すポインタである。
【００４７】
ファイルシステム管理機構１３０は、残量把握機構１３１ａ，ファイル作成／削除機構１３１ｂ，及びファイル削除順序管理部１３１ｃを備えている。
残量把握機構１３１ａは、ファイルシステム１１０の空き容量を、常時、監視している。
【００４８】
ファイル作成／削除機構１３１ｂは、ファイルシステム１１０内のファイルの作成及び削除を行う。
ファイル順序管理部１３１ｃは、ファイルの削除順序を管理している。
【００４９】
この図２のシステムでは、ファイル管理テーブル１１２にファイル情報のエントリをファイルの作成順に格納することで、ファイルの削除順序の管理を兼ねている。したがって、ファイルの削除はファイルの作成順に行うことを前提にしている。このため、ファイルの作成順とは別の順番でファイルを削除することはできない。さらに、いったんファイルを作成した後で、そのファイルの内容を更新してもファイルの削除順序を変更することは出来ない。
【００５０】
また、ファイルシステム１１０の初期状態では、先頭ポインタ１１３ｂ及び最終ポインタ１１３ｃは共に、どのエントリも指していない（すなわち、”０”を指す状態に設定される（図５（ａ）参照）。
【００５１】
図３は、上記図２のシステムにおけるファイル作成時のファイル順序管理部１３１ｃの動作を説明するフローチャートである。
まず、最初に第１のファイルを作成する場合の動作から説明していく。
ファイル順序管理部１３１ｃは、まず、最終ポインタ１１３ｃの値が”０”であるか否かを判別する（Ｓ１０１）。そして、”０”であれば、最終ポインタ１１３ｃに”１”を設定する（Ｓ１０４）。
【００５２】
続いて、最終ポインタ１１３ｃと先頭ポインタ１１３ｂの値が等しいか否かを判別する（Ｓ１０５）。両ポインタの値が等しい場合は、ファイル管理テーブル１１２が満杯になり、新たにファイルを作成することが不可能になったことを示す。
【００５３】
第一のファイルを作成する場合、まだ、両ポインタの値は等しくないので、最終ポインタ１１３ｃの示すファイル管理テーブル１１２のエントリ、すなわち、”１”のエントリにファイルを作成する（Ｓ１０７）。
【００５４】
そして、次に、上記作成したファイルに対するデータの書き込みを終了したと判別するまで（Ｓ１０８，ＹＥＳ），フリーブロックカウンタ１１３ａの値が”０”でないことを確認しながら（Ｓ１０９，ＹＥＳ），上記ファイルのデータをデータ領域に書き込む（Ｓ１１１）。そして、データの書き込みが全て終了すると（Ｓ１０８，ＹＥＳ）、先頭ポインタ１１３ｂの値が”０”か否かを判別し（Ｓ１１２），先頭ポインタ１１３ｂの値が”０”であれば、この先頭ポインタ１１３ｂに最終ポインタ１１３ｃの値を代入する（Ｓ１１３）。
【００５５】
以上のようにして、ファイルシステム１１０に最初のファイルが作成される。
このとき、図５（ｂ）に示すように、先頭ポインタ１１３ｂと最終ポインタ１１３ｃの値は、共に、”１”に設定される。
【００５６】
次に、第２のファイルを作成する場合には、まず、最終ポインタ１１３ｃの値が”０”であるか否かを判別する（Ｓ１０１）。このとき、最終ポインタ１１３ｃの値は”１”となっているので、最終ポインタ１１３ｃの値は”０”でないと判別して（Ｓ１０１，Ｎ０），最終ポインタ１１３ｃの値を”１”増加する（Ｓ１０２）。
【００５７】
これにより、最終ポインタ１１３ｃの値は”２”になる。
次に、最終ポインタ１１３ｃの値がファイル管理テーブル１１２の最終エントリよりも大きいか否かを判別する（Ｓ１０３）。この場合、まだ、小さいので（Ｓ１０３，ＮＯ），次に、上記ステップＳ１０５で最終ポインタ１１３ｃと先頭ポインタ１１３ｂの値が等しいか否かを判別する（Ｓ１０５）。この場合も、両ポインタの値は等しくないので（Ｓ１０５、ＮＯ），最終ポインタ１１３ｃの示すファイル管理テーブル１１２の”２”のエントリにファイルを作成する（Ｓ１０７）。
【００５８】
以下、上記ステップＳ１０８→Ｓ１０９→Ｓ１１１を繰り返しながら第２のファイルのデータをデータ領域に書き込む。そして、全てのデータの書き込みが終了すると、先頭ポインタ１１３ｂが”０”か否かを判別し（Ｓ１１２），”０”でないので（Ｓ１１２、ＮＯ），処理を終了する。
【００５９】
この結果、図５（ｃ）に示すように先頭ポインタ１１３ｂは”１”、最終ポインタ１１３ｃは”２”に設定される。
この場合、ファイル管理テーブル１１２のエントリが合計９個であるとすると、データ領域の空き容量が第９のファイルを作成するまで満杯にならなければ、上記第２のファイルの作成と同様な動作が第９のファイルを作成まで繰りかえされる。この間、最終ポインタ１１３ｃの値は、順次、”１”づつ増加し、図５（ｄ）に示すように”９”となる。この間、先頭ポインタ１１３ｂの値は”１”のままである。
【００６０】
次に、第１０のファイルが作成されると、上記ステップＳ１０２で最終ポインタ１１３ｃの値が”１０”に設定され、次のステップＳ１０３で最終ポインタ１１３ｃの値がファイル管理テーブル１１２の最終エントリである”９”よりも大きいと判別される（Ｓ１０３，ＹＥＳ）。そして、続くステップＳ１０４で最終ポインタ１１３ｃに”１”が代入される。このことにより、ステップＳ１０５で最終ポインタ１１３ｃと先頭ポインタ１１３ｂの値が共に”１”で等しいと判別され（Ｓ１０５，ＹＥＳ），後述する図４のフローチャートで詳細に説明する処理により、先頭ポインタ１１３ｂの指すファイル管理テーブル１１２のエントリ”１”に作成された第１のファイルの削除処理が行われる（Ｓ１０６）。この結果、先頭ポインタ１１３ｂの値は”１”増加されて”２”となる。
【００６１】
そして、続いて、最終ポインタ１１３ｃの示すファイル管理テーブル１１２のエントリ”１”に第１０のファイルが作成される（Ｓ１０７）。そして、上記ステップＳ１０８→Ｓ１０９→Ｓ１１１を繰り返しながら第１０のファイルのデータをデータ領域に書き込む。そして、全てのデータの書き込みが終了すると、先頭ポインタ１１３ｂが”０”か否かを判別し（Ｓ１１２），”０”でないので（Ｓ１１２、ＮＯ），処理を終了する。
【００６２】
この結果、第１０のファイルの作成が完了すると、図５（ｅ）に示すように先頭ポインタ１１３ｂの値は”２”に、最終ポインタ１１３ｃの値は”１”に設定される。
次に、第１１のファイルの作成時には、ステップＳ１０２で最終ポインタ１１３ｃが”１”増加されて””２”となり、ステップ１０３でＮＯと判別された後、ステップＳ１０５で最終ポインタ１１３ｃと先頭ポインタ１１３ｂの値が共に”２”で等しいと判別される（Ｓ１０５，ＹＥＳ）。そして、ステップＳ１０６で先頭ポインタ１１３ｂの示すファイル管理テーブル１１２のエントリ”２”のファイルの削除処理が行われる。このとき、先頭ポインタ１１３ｂの値が”１”増加されて”３”となる。
【００６３】
続いて、最終ポインタ１１３ｃの示すファイル管理テーブル１１２の”２”のエントリに第１１のファイルが作成される（Ｓ１０７）。そして、次に、ステップＳ１０８以降で第１１のファイルのデータの書き込みが行われるが、データの書き込み途中でフリーブロックカウンタ１１３ａの値が”０”となり、データ領域に空きのデータブロックが無くなると（Ｓ１０９，ＹＥＳ）、上記ステップＳ１０６と同様な先頭ポインタ１１３ｂの示すファイル管理テーブル１１２の”３”のエントリのファイルの削除処理が行われる（Ｓ１１０）。そして、上記ステップＳ１０８〜Ｓ１１１を繰り返しながら第１１のファイルのデータをデータ領域に書き込む。そして、全てのデータの書き込みが終了すると、先頭ポインタ１１３ｂが”０”か否かを判別し（Ｓ１１２），”０”でないので（Ｓ１１２、Ｎ
Ｏ），処理を終了する。
この結果、先頭ポインタ１１３ｂの値は、”１”増加して”４”となる。
【００６４】
次に、図４のファイル順序管理部１３１ｃの実行するファイルの削除処理の動作を説明する。
まず、先頭ポインタ１１３ｂの値が”０”であるか否かを判別し（Ｓ１２１），”０”であれば直ちに処理を終了する。先頭ポインタ１１３ｂの値が”０”であるということは、ファイルシステム１１０内に削除すべきファイルが無いことを意味する。
【００６５】
一方、上記ステップＳ１２１で先頭ポインタ１１３ｂの値が”０”で無ければ、先頭ポインタ１１３ｂの示すファイル管理テーブル１１２のエントリのファイルを削除する（Ｓ１２２）。
【００６６】
続いて、先頭ポインタ１１３ｂの値を”１”増加した後（Ｓ１２３），先頭ポインタ１１３ｂの値がファイル管理テーブル１１２の最終エントリの値よりも大きいか否かを判別する（Ｓ１２４）。そして、先頭ポインタ１１３ｂの値が最終エントリの値よりも大きくなければ（Ｓ１２４，ＮＯ），次に、先頭ポインタ１１３ｂの示すファイル管理テーブル１１２のエントリが空きであるか否かを判別する（Ｓ１２６）。
【００６７】
そして、先頭ポインタ１１３ｂの示すファイル管理テーブル１１２のエントリが空きでなければ（Ｓ１２６，ＮＯ），次に、最終ポインタ１１３ｃの示すファイル管理テーブル１１２のエントリが空きであるか否かを判別する（Ｓ１２８）。このとき、上記エントリが空きで無ければ（Ｓ１２８、ＮＯ），処理を終了する。
【００６８】
以上の処理は、上述した第１０のファイルを作成する場合に先頭ポインタ１１３ｂの示すファイル管理テーブル１１２のエントリの”１”のファイルを削除する場合に対応している。この処理は、ファイル管理テーブル１１２のエントリが満杯になった後、順次、ファイルを１個づつ作成する場合に対応している。すなわち、この場合には、順次、最古のファイルから削除されていく。
【００６９】
また、上記ステップＳ１２４で先頭ポインタ１１３ｂの値がファイル管理テーブル１１２の最終エントリの値よりも大きい場合には（Ｓ１２４，ＹＥＳ），先頭ポインタ１１３ｂに”１”を代入して（Ｓ１２５）、ステップＳ１２６に移る。
【００７０】
この処理は、今回、ステップＳ１２２でファイル管理テーブル１１２の最終エントリのファイルを削除した場合に対応している。
また、先頭ポインタ１１３ｂの示すファイル管理テーブル１１２のエントリが空きである場合には（Ｓ１２６，ＹＥＳ），先頭ポインタ１１３ｂに”０”を代入する（Ｓ１２７）。そして、また、上記ステップＳ１２８で最終ポインタ１１３ｃの示すファイル管理テーブル１１２のエントリが空きである場合には（Ｓ１２８，ＹＥＳ），最終ポインタ１１３ｃに”０”を代入する（Ｓ１２９）。
【００７１】
以上の処理は、ファイル管理テーブル１１２のエントリが全て空きになった場合に対応する。すなわち、ファイルシステム１１０のファイルの使用量が”０”となり、ファイルシステム１１０が初期状態に戻ったことを意味している。
【００７２】
このファイルの削除処理の動作の一例を、図５（ｅ）〜（ｉ）を参照しながら説明する。
図５（ｅ）に示すように第１０のファイルが作成された状態にあるときに、第２のファイルから第１０のファイルを、順次、削除する場合、まず、図４のフローチャートの処理により、先頭ポインタ１１３ｂの示すファイル管理テーブル１１２の”２”のエントリに作成されている第２のファイルがステップＳ１２２で削除され、先頭ポインタ１１３ｂの値がステップＳ１２３で”３”に設定される（図５（ｆ）参照）。
【００７３】
続いて、先頭ポインタ１１３ｂの示すファイル管理テーブル１１２の”３”のエントリに作成されている第３のファイルがステップＳ１２２で削除され、先頭ポインタ１１３ｂの値がステップＳ１２３で”４”に設定される（図５（ｇ）参照）。
【００７４】
以後、同様にして、第４〜第９のファイルが順次削除され、先頭ポインタ１１３ｂと最終ポインタ１１３ｃの値は、共に、”１”に設定される（図５（ｈ）参照）。このとき、先頭ポインタ１１３ｂの値は、図４のフローチャートのステップ１２５によって”１”に設定される。
【００７５】
続いて、ファイル管理テーブル１１２の”１”のエントリに作成されている第１０のファイルが図４のフローチャートのステップＳ１２２で削除される。この後、ステップＳ１２６とステップＳ１２８で、それぞれ、先頭ポインタ１１３ｂと最終ポインタ１１３ｃの示すファイル管理テーブル１１２のエントリが空きであると判別され、ステップＳ１２７とＳ１２９で、それぞれ、先頭ポインタ１１３ｂと最終ポインタ１１３ｃに”０”が代入される（図５（ｉ）参照）。
【００７６】
次に、図６は、上記第一の基本構成の第二の実施例を示すブロック図である。
同図において、図２と同様のブロックには同じ符号を付与している。
ファイル管理テーブル１１２’の各エントリのファイル管理情報ブロックは、ファイル管理テーブル１１２’の次のエントリへのポインタを示す次エントリポインタ１１２１を備えている。
【００７７】
ファイルシステム管理ブロック１１３’は、フリーブロックカウンタ１１３ａ、使用済みエントリ先頭ポインタ１１３ｂ’、使用済みエントリ最終ポインタ１１３ｃ’に加え、未使用エントリ先頭ポインタ１１３ｄ及び未使用エントリ最終ポインタ１１３ｅを備えている。
【００７８】
使用済みエントリ先頭ポインタ１１３ｂ’はファイル管理テーブル１１２’中の最古のファイルのエントリを指すポインタ、使用済みエントリ最終ポインタ１１３ｃ’はファイル管理テーブル１１２’中の最新のファイルのエントリを指すポインタである。
【００７９】
また、未使用エントリ先頭ポインタ１１３ｄはファイル管理テーブル１１２’の未使用の先頭のエントリを指すポインタ、未使用エントリ最終ポインタ１１３ｅはファイル管理テーブル１１２’の未使用の最終のエントリを指すポインタである。
【００８０】
ファイルシステム管理機構１３０’は、残量把握機構１３１ａ、ファイル作成／削除機構１３１ｂ’及びファイル順序管理部１３１ｃ’を備えている。
この図６に示すシステムにおいては、ファイル管理テーブル１１２’内の各ファイル情報管理ブロック内に次エントリポインタ１１２１を含ませることによって、ファイル管理テーブル１１２’内でのファイルの削除の順序情報をリストにより管理している。また、未使用エントリ先頭ポインタ１１３ｄと未使用エントリ最終ポインタ１１３ｅとを次エントリポインタ１１２１によりリストで連結することにより、ファイル管理テーブル１１２’の未使用のエントリもリストにより管理している。
【００８１】
このような構成のため、ファイル管理テーブル１１２’のファイルの削除順序を簡単に入れ換えることが可能になっている。例えば、あるファイルを更新した場合に、このファイルの削除順序を一番最後に移動することも可能である。この結果、この実施例では更新日時の古い順にファイルを削除することも可能になっている。また、削除順序とは無関係に、削除順序の途中にあるファイルも削除することも許可している。
【００８２】
以下、図７〜図１６を参照しながら、ファイル順序管理部１３１ｃ’によって実行される、この実施例におけるファイルの作成及び削除の動作を説明する。
初期状態では、図１４（ａ）に示すように、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’は、共に”０”を指している。また、未使用エントリ先頭ポインタ１１３ｄはファイル管理テーブル１１２’の”１”のエントリを、未使用エントリ最終ポインタ１１３ｅはファイル管理テーブル１１２’の最終エントリ（この場合、”１０”）を指している。また、未使用エントリ先頭ポインタ１１３ｄの指すファイル管理テーブル１１２’の先頭のエントリ（この場合、”１”）のファイル管理情報ブロックから未使用エントリ最終ポインタ１１３ｅの指すファイル管理テーブル１１２’のエントリ（この場合、”１０”）のファイル管理情報ブロックは、それぞれの次エントリポインタ１１２１によってリンクされており、未使用エントリ最終ポインタ１１３ｅの指すファイル管理テーブル１１２’のエントリ（この場合、”１０”）のファイル管理情報ブロックの次エントリポインタ１１２１には”０”が設定されている。
【００８３】
図７は、ファイル順序管理部１３１ｃ’によるファイル作成処理を説明するフローチャートである。
まず、未使用エントリ先頭ポインタ１１３ｄの値が”０”であるか否かを判別する（Ｓ２０１）。最初に第１のファイルを作成する時には、未使用エントリ先頭ポインタ１１３ｄの値は”１”なので、次に、未使用エントリ先頭ポインタ１１３ｄの値を変数ｘに代入する（Ｓ２０３）。この結果、変数ｘの値は”１”になる。
【００８４】
続いて、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値を、未使用エントリ先頭ポインタ１１３ｄに代入する（Ｓ２０４）。この結果、図１４（ｂ）に示すように未使用エントリ先頭ポインタ１１３ｄの値は”２”に設定される。
【００８５】
次に、未使用エントリ先頭ポインタ１１３ｄが”０”であるか否かを判別する（Ｓ２０５）。この場合、”０”でないので、続いて、使用済みエントリ最終ポインタ１１３ｃ’の値が”０”であるか否かを判別する（Ｓ２０７）。この場合、”０”なので、続いて、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’に共に変数ｘの値である”１”を設定する（Ｓ２０８）。
【００８６】
この結果、図１４（ｂ）に示すように、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’が共に、ファイル管理テーブル１１２’の”１”のエントリを指すようになる。
【００８７】
次に、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に”０”を代入する（Ｓ２１０）。この結果、図１４（ｂ）に示すようにファイル管理テーブル１１２’の”１”のエントリの次エントリポインタ１１２１に”０”が設定される。そして、変数ｘの示すファイル管理テーブル１１２’のエントリに第１のファイルを作成する（Ｓ２１１）。
【００８８】
続いて、第１のファイルのデータの作成がファイルシステム１１０のデータ領域のデータブロックに書き込まれる（Ｓ２１２〜Ｓ２１５）。この動作は、図３のフローチャートのステップＳ１０８〜Ｓ１１１の処理と同様である。すなわち、ステップＳ２１３でフリーブロックカウンタ１１３ａの値が”０”であると判別されるまで、ステップＳ２１２→Ｓ２１３→Ｓ２１５が繰り返され、ステップＳ２１２でデータの書き込みが終了したと判別すると、処理を終了する。
【００８９】
このようにして、まず、ファイル管理テーブル１１２’の”１”のエントリに第１のファイルが作成される。この結果、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’は共にファイル管理テーブル１１２’の”１”のエントリを指す。また、この”１”のエントリの次エントリポインタ１１２１は”０”に設定される。さらに、未使用エントリ先頭ポインタ１１３ｄがファイル管理テーブル１１２’の”２”のエントリを指す。そして、未使用エントリ最終ポインタ１１３ｄは、初期状態のときと変わらずファイル管理テーブル１１２’の”１０”のエントリを指したままである（図１４（ｂ）参照）。
【００９０】
次に、第２のファイルを作成する場合、上記第１のファイルの作成時と同様な動作が行われ、ステップＳ２０３で変数ｘに未使用エントリ先頭ポインタ１１３ｄの値”２”が設定される。そして、ステップＳ２０５で未使用エントリ先頭ポインタ１１３ｄの値が”０”でないと判別された後、次のステップＳ２０７で使用済みエントリ最終ポインタ１１３ｃ’の値が”０”でないと判別される。
【００９１】
そして、次に、ステップＳ２０９で使用済みエントリ最終ポインタ１１３ｃ’の示すファイル管理テーブル１１２’の”１”のエントリの次エントリポインタ１１２１に変数ｘの値を代入した後、使用済みエントリ最終ポインタ１１３ｃ’に変数ｘの値を代入する。
【００９２】
この結果、ファイル管理テーブル１１２’の”１”のエントリ”の次エントリポインタ１１２１の値は”２”となる。また、使用済みエントリ最終ポインタ１１３ｃ’の値は”２”となる。
【００９３】
次に、変数ｘの示すファイル管理テーブル１１２’の”２”のエントリの次エントリポインタ１１２１に”０”が代入される（Ｓ２１０）。続いて、変数ｘの示すファイル管理テーブル１１２’の”２”のエントリに第２のファイルが作成される（Ｓ２１１）。そして、続くステップＳ２１２〜Ｓ２１５の処理により第２のファイルのデータがファイルシステム１１０のデータ領域に書き込まれる。
【００９４】
以上のようにして、第２のファイルが作成され、図１４（ｃ）に示すように、使用済みエントリ最終ポインタ１１３ｃ’がファイル管理テーブル１１２’の”２”のエントリを指すようになる。また、未使用エントリ先頭ポインタ１１３ｄがファイル管理テーブル１１２’の”３”のエントリを指すようになる。さらに、ファイル管理テーブル１１２’の”１”のエントリの次エントリポインタ１１２１がファイル管理テーブル１１２’の”２”のエントリを指し、ファイル管理テーブル１１２’の”２”のエントリの次エントリポインタ１１２１が”０”に設定される。
【００９５】
この結果、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’とファイル管理テーブル１１２’の”１”と”２”のエントリの次エントリポインタ１１２１によって、ファイルの削除順序のリストが作成される。また、未使用エントリ先頭ポインタ１１３ｄと未使用エントリ最終ポインタ１１３ｅ及びファイル管理テーブル１１２’の”３”〜”１０”のエントリによって、未使用のファイルのリストが作成される。
【００９６】
以後、同様にして、第３〜第１０のファイルが作成されると、ファイル管理テーブル１１２’は図１５（ｄ）に示すようになる。
すなわち、第９のファイルの作成を終了した時点で、未使用エントリ最終ポインタ１１３ｅの値は”１０”に設定される。また、使用済みエントリ最終ポインタ１１３ｃ’の値は”９”に設定される。そして、ファイル管理テーブル１１２’の”９”と”１０”のエントリの次エントリポインタの値が共に”０”に設定される。
【００９７】
ファイル管理テーブル１１２’が以上の状態にあるときに、第１０のファイルの作成が開始される。そして、ステップＳ２０３で変数ｘに未使用エントリ先頭ポインタ１１３ｄの値が代入され、変数ｘの値は”１０”になる。続いて、ステップＳ２０４で変数ｘの示すファイル管理テーブル１１２’のエントリ”１０”の次エントリポインタ１１２１の値が未使用エントリ先頭ポインタ１１３ｄに代入され、未使用エントリ先頭ポインタ１１３ｄの値は”０”に設定される。
【００９８】
そして、次に、ステップＳ２０５で未使用エントリ先頭ポインタ１１３ｄの値が”０”に等しいと判別され、ステップ２０６で未使用エントリ最終ポインタ１１３ｅに”０”が設定される。次に、ステップＳ２０７で使用済みエントリ最終ポインタ１１３ｃ’の値が”０”でないと判別された後、使用済みエントリ最終ポインタ１１３ｃ’の示すエントリの次エントリポインタ１１２１に変数ｘの値が代入され、使用済みエントリ最終ポインタ１１３ｃ’の値は”１０”となる。
【００９９】
続いて、変数ｘの示すファイル管理テーブル１１２’のエントリ”１０”の次エントリポインタ１１２１に”０”が設定される（Ｓ２１０）。そして、変数ｘの示すファイル管理テーブル１１２’のエントリ”１０”に第１０のファイルが作成される（Ｓ２１１）。続いて、ステップＳ２１２〜Ｓ２１５の処理によって、ファイルシステム１１０のデータ領域に第１０のファイルのデータが書き込まれる。
【０１００】
以上の結果、図１５（ｄ）に示すように、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’が、それぞれ、ファイル管理テーブル１１２’の”１”のエントリと”１０”のエントリを指すようになる。
また、未使用エントリ先頭ポインタ１１３ｄと未使用エントリ最終ポインタ１１３ｅが共に”０”となる。このようにして、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’及びファイル管理テーブル１１２’の”１”〜”１０”のエントリの次エントリポインタ１１２１とによって、ファイル管理テーブル１１２’には第１〜第１０のファイルのリストが作成され、ファイル管理テーブル１１２’の空きエントリは”０”となる。これは、未使用エントリ先頭ポインタ１１３ｄの値が”０”となっていることによって示される。
【０１０１】
この状態のときに、第１１のファイルの作成を行うと、最初のステップＳ２０１で未使用エントリ先頭ポインタ１１３ｄの値が”０”であると判別され、ステップＳ２０２で使用済みエントリ先頭ポインタ１１３ｂ’の示すファイル管理テーブル１１２’のエントリに作成されたファイルの削除処理が行われる。
【０１０２】
図９はこのファイルの削除処理を説明するフローチャートである。
まず、使用済みエントリ先頭ポインタ１１３ｂ’の値が”０”であるか否かを判別する（Ｓ２２１）。そして、”０”でなければ、使用済みエントリ先頭ポインタ１１３ｂ’の指すファイル管理テーブル１１２’のエントリに作成されているファイルを削除する（Ｓ２２２）。
【０１０３】
これにより、ファイル管理テーブル１１２’のエントリ”１”に作成されている第１のファイルが削除される。
次に、使用済みエントリ先頭ポインタ１１３ｂ’の値を変数ｘに代入する（Ｓ２２３）。
【０１０４】
これにより、変数ｘの値が”１”になる。
続いて、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値が”０”であるか否かを判別する（Ｓ２２４）。
【０１０５】
この場合、ファイル管理テーブル１１２’のエントリ”１”の次エントリポインタ１１２１は図１５（ｄ）に示すように”０”でないので、使用済みエントリ先頭ポインタ１１３ｂ’に変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値を代入する（Ｓ２２５）。
【０１０６】
これにより、使用済みエントリ先頭ポインタ１１３ｂ’の値が”２”に設定される。
次に、未使用エントリ最終ポインタ１１３ｄの値が”０”であるか否かを判別する（Ｓ２２８）。
【０１０７】
この場合、未使用エントリ最終ポインタ１１３ｄの値は”０”であるので、未使用エントリ先頭ポインタ１１３ｄに変数ｘの値を代入する（Ｓ２２９）。
これにより、未使用エントリ先頭ポインタ１１３ｄに”１”が設定される。
【０１０８】
次に、未使用エントリ最終ポインタ１１３ｄに変数ｘの値を代入する（Ｓ２３１）。
これにより、未使用エントリ最終ポインタ１１３ｄに”１”が設定される。
そして、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に”０”を代入する（Ｓ２３２）。
【０１０９】
これにより、ファイル管理テーブル１１２’のエントリ”１”の次エントリポインタ１１２１に”０”が設定される。
以上のようにして、第１のファイルが削除され、そして、図１５（ｅ）に示すように、未使用エントリ先頭ポインタ１１３ｄと未使用エントリ最終ポインタ１１３ｅは、共に、ファイル管理テーブル１１２’のエントリ”１”を指す。また、ファイル管理テーブル１１２’のエントリ”１”の次エントリポインタ１１２１が”０”に設定される。また、使用済みエントリ先頭ポインタ１１３ｂ’は、ファイル管理テーブル１１２’のエントリ”２”を指す。
【０１１０】
再び、図７のフローチャートの説明に戻る。
上記のようにして、ステップＳ２０２のファイル削除処理が終了した後、ステップＳ２０３で未使用エントリ先頭ポインタ１１３ｄの値を変数ｘに代入する。
【０１１１】
これにより、変数ｘの値は”１”になる。
次に、ステップＳ２０４で変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値を、未使用エントリ先頭ポインタ１１３ｄに代入する。
【０１１２】
これにより、未使用エントリ先頭ポインタ１１３ｄには”０”が設定される。
次に、ステップＳ２０５で未使用エントリ先頭ポインタ１１３ｄが”０”である
と判別され、未使用エントリ最終ポインタ１１３ｅに”０”が設定される（Ｓ２０６）。
【０１１３】
そして、ステップＳ２０７で、使用済みエントリ最終ポインタ１１３ｃ’の値が”０”でないと判別され、ステップＳ２０９で使用済みエントリ最終ポインタ１１３ｃ’の示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に変数ｘの値を代入した後、使用済みエントリ最終ポインタ１１３ｃ’に変数ｘの値を代入する。
【０１１４】
これにより、ファイル管理テーブル１１２’の”１０”のエントリの次エントリポインタ１１２１は、”１”に設定され、また、使用済みエントリ最終ポインタ１１３ｃ’の値は”１”に設定される。
【０１１５】
続いて、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に”０”を代入する（Ｓ２１０）。
これにより、ファイル管理テーブル１１２’のエントリ”１”の次エントリポインタ１１２１は、”０”に設定される。
【０１１６】
続いて、変数ｘの示すファイル管理テーブル１１２’のエントリに第１１のファイルを作成する（Ｓ２１１）。
これにより、ファイル管理テーブル１１２’のエントリ”１”に第１１のファイルが作成される。
【０１１７】
そして、図８のフローチャートのステップＳ２１２〜Ｓ２１５の処理により、第１１のファイルのデータをファイルシステム１１０のデータ領域に書き込む。
この結果、未使用エントリ先頭ポインタ１１３ｄと未使用エントリ最終ポインタ１１３ｅは、共に、”０”を示す。また、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’は、共に、ファイル管理テーブル１１２’の”１”のエントリを指すようになる。
【０１１８】
また、この後、新たにファイルを作成せずに、ファイルを連続して削除していくと、ファイル管理テーブル１１２’に作成されている最後のファイルを削除するとき、図９のフローチャートのステップＳ２２４で、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値が”０”であると判別される。そして、ステップＳ２０６とＳ２０７で使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’に”０”が設定される。この結果、ファイル管理テーブル１１２’の使用量は”０”となる。
【０１１９】
上記ファイルの削除処理は、使用済みエントリ先頭ポインタ１１３ｂ’の指すファイル管理テーブル１１２’のエントリに作成されているファイルを削除するものであった。すなわち、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’及び次エントリポインタ１１２１によって作成されるリストの先頭のファイルからそのリスト順にファイルを削除していくものであった。
【０１２０】
次に、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’及び次エントリポインタ１１２１によって構成されるリストの中間に位置するファイルを削除する方法を説明する。
【０１２１】
図１５（ｅ）の状態にあるときに、ファイル管理テーブル１１２’のエントリ”５”のファイルを削除する場合の動作を，図１０〜図１１のフローチャートを参照しながら説明する。
【０１２２】
まず、使用済みエントリ先頭ポインタ１１３ｂ’の値を変数ｘに代入する（Ｓ２４１）。
これにより、変数ｘには”２”の値が代入される。
【０１２３】
次に、変数ｘの値が”０”であるか否かを判別する（Ｓ２４２）。
この場合、”０”でないので、次に、変数ｘの値が削除対象のファイルのエントリ位置に該当するか否かを判別する（Ｓ２４３）。
【０１２４】
この場合、変数ｘの値が”５”でないので、変数ｘの値を変数ｏｌｄｘに代入する（Ｓ２４４）。そして、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１を変数ｘに代入する（Ｓ２４５）。
【０１２５】
これにより、変数ｘの値は”３”に設定される。
上記ステップＳ２４２〜Ｓ２４５の処理が繰り返されて、変数ｘの値は、順次、”１”づつ増加し、やがて、”５”となる。このとき、変数ｏｌｄｘの値は”４”となる。
【０１２６】
そして、ステップＳ２４３で変数ｘの値が削除対象のファイルのエントリ位置に等しいと判別され、変数ｘの示すファイル管理テーブル１１２’のエントリ”５”に作成されているファイルを削除する（Ｓ２４６）。
【０１２７】
続いて、使用済みエントリ先頭ポインタ１１３ｂ’の値が変数ｘの値に等しいか否かを判別する（Ｓ２４７）。この場合、使用済みエントリ先頭ポインタ１１３ｂ’の値は”２”なので（ＮＯ），次に、変数ｏｌｄｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値を設定する（Ｓ２５０）。
【０１２８】
この結果、ファイル管理テーブル１１２’の”４”のエントリの次エントリポインタ１１２１が”６”となる。
次に、変数ｘの示すエントリの次エントリポインタ１１２１の値が”０”であるか否かを判別する（Ｓ２５１）。この場合、変数ｘの示すエントリの次エントリポインタ１１２１の値は”６”であるので（ＮＯ），続いて、未使用エントリ最終ポインタ１１３ｅの値が”０”であるか否かを判別する（Ｓ２５５）。
【０１２９】
この場合、未使用エントリ最終ポインタ１１３ｅの値は”１”であるので（Ｎ〇），次に、未使用エントリ最終ポインタ１１３ｅの示すファイル管理テーブル１１２’の”１”のエントリの次エントリポインタ１１２１に、変数ｘの値を代入する（Ｓ２５６）。
【０１３０】
これにより、ファイル管理テーブル１１２’の”１”のエントリの次エントリポインタ１１２１に”５”が設定される。
続いて、未使用エントリ最終ポインタ１１３ｅに変数ｘの値を代入する（Ｓ２５８）。
【０１３１】
この結果、未使用エントリ最終ポインタ１１３ｅには”５”が設定される。
続いて、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に”０”を設定する（Ｓ２５９）。
【０１３２】
この結果、ファイル管理テーブル１１２’の”５”のエントリの次エントリポインタ１１２１には”０”が設定される。
以上の結果、図１５（ｆ）に示すように、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’は、それぞれ、ファイル管理テーブル１１２’の”２”と”１０”を指すようになる。また、未使用エントリ先頭ポインタ１１３ｄと未使用エントリ最終ポインタ１１３ｅは、ファイル管理テーブル１１２’の”１”と”５”のエントリを指すようになる。また、ファイル管理テーブル１１２’の”１”のエントリの次エントリポインタ１１２１  は、”５”のエントリを指すようになり、”５”のエントリの次エントリポインタ１１２１は”０”に設定される。
【０１３３】
次に、図１５（ｆ）に示す状態にあるときに、ファイル管理テーブル１１２’のエントリ”２”に作成されているファイルを削除する場合の動作を説明する。
この場合、ステップＳ２４１で使用済みエントリ先頭ポインタ１１３ｂ’の値”２”が変数ｘに代入される。次に、変数ｘの値が”０”でないと判別された後、変数ｘの値が削除対象のファイルのエントリ位置に等しいか否かを判別する（Ｓ２４３）。
【０１３４】
この場合、共に、値が等しいので、変数ｘの示すファイル管理テーブル１１２のエントリのファイルを削除し（Ｓ２４６），次に、使用済エントリ先頭ポインタ１１３ｂ’の値が変数ｘの値と等しいか否かを判別する（Ｓ２４７）。この場合、共に、”２”であり、等しいので（ＹＥＳ），変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値が”０”であるか否かが判別される（Ｓ２４８）。
【０１３５】
この場合、”０”ではないので、使用済みエントリ先頭ポインタ１１３ｂ’に変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値が代入される（Ｓ２４９）。
【０１３６】
これにより、使用済みエントリ先頭ポインタ１１３ｂ’の値が”３”に設定される。
次に、ステップＳ２５５で未使用エントリ最終ポインタ１１３ｅの値が”０”でないと判別され（ＮＯ），続いて、ステップＳ２５６で未使用エントリ最終ポインタ１１３ｄの示すファイル管理テーブル１１２’の”５”のエントリの次エントリポインタ１１２１に変数ｘの値が設定される。
【０１３７】
この結果、ファイル管理テーブル１１２’の”５”のエントリの次エントリポインタ１１２１には”２”が設定される。
続いて、ステップＳ２５８で未使用エントリ最終ポインタ１１３ｄに変数ｘの値が代入される。
【０１３８】
これにより、未使用エントリ最終ポインタ１１３ｅの値が”２”になる。
次に、ステップＳ２５９で変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に”０”が代入される。
【０１３９】
これにより、ファイル管理テーブル１１２’のエントリ”２”の次エントリポインタ１１２１が”０”となる。
この結果、ファイル管理テーブル１１２’には、ファイルの削除順序のリストとして、ファイル管理テーブル１１２’のエントリ”１”→”５”→”２”のリストが作成される。
【０１４０】
次に、ファイル管理テーブル１１２’が図１５（ｄ）に示す状態にあるときに、ファイル管理テーブル１１２’の”１０”のエントリに作成されたファイルを削除する場合の動作を説明する。
【０１４１】
この場合、上記ステップＳ２４１〜Ｓ２４６の処理が行われ、ファイル管理テーブル１１２’の”１０”のエントリに作成されたファイルが削除される。このとき、変数ｘの値は”１０”、変数ｏｌｄｘの値は”９”となっている。
【０１４２】
続いて、ステップＳ２４７で使用済みエントリ先頭ポインタ１１３ｂ’の値が変数ｘの値に等しくないと判別された後、ステップＳ２５０の処理によりファイル管理テーブル１１２’の”９”のエントリの次エントリポインタ１１２１に”０”が設定される。
【０１４３】
次に、ステップＳ２５１で変数ｘの示す”１０”のエントリの次エントリポインタ１１２１の値が”０”であると判別され（ＹＥＳ）、続いて、使用済みエントリ最終ポインタ１１３ｃ’に変数ｏｌｄｘの示すファイル管理テーブル１１２’の”９”の値が設定される（Ｓ２５２）。
【０１４４】
次に、ステップＳ２５５で未使用エントリ最終ポインタ１１３ｅの値が”０”であると判別され（ＹＥＳ），続いて、未使用エントリ先頭ポインタ１１３ｄに変数ｘの値”１０”が設定される。
【０１４５】
続いて、ステップＳ２５８で未使用エントリ最終ポインタ１１３ｅに変数ｘの値”１０”が設定された後、次のステップＳ２５９で変数ｘの示すファイル管理テーブル１１２’のエントリ”１０”の次エントリポインタ１１２１に”０”が設定される。
【０１４６】
次に、ファイル管理テーブル１１２’が図１４（ｂ）に示す状態にあるときに、ファイル管理テーブル１１２’のエントリ”１”に作成されたファイルを削除する場合の動作を説明する。
【０１４７】
この場合、ステップＳ２４１→Ｓ２４２→Ｓ２４３→Ｓ２４６の処理が順次行われ、上記ファイル管理テーブル１１２’の”１”のエントリに作成されたファイルが削除される。この時。変数ｘには”１”が設定されている。
【０１４８】
次に、ステップＳ２４７で使用済みエントリ先頭ポインタ１１３ｂ’の値と変数ｘの値が等しいと判別され（ＹＥＳ）、次に、ステップＳ２４８で変数ｘの示すファイル管理テーブル１１２’の”１”のエントリの次エントリポインタ１１２１の値が”０”であると判別される（ＹＥＳ）。
【０１４９】
そして、使用済みエントリ先頭ポインタ１１３ｂ’に”０”が設定され（Ｓ２５３），次に、使用済みエントリ最終ポインタ１１３ｃ’に”０”が設定される（Ｓ２５４）。
そして、次に、ステップＳ２５５で未使用エントリ最終ポインタ１１３ｅの値が”０”でないと判別され（ＮＯ），続いて、ステップＳ２５６で未使用エントリ最終ポインタ１１３ｅの示す”１０”のエントリの次エントリポインタ１１２１に変数ｘの値”１”が設定される。
【０１５０】
次に、ステップＳ２５８で未使用エントリ最終ポインタ１１３ｅに変数ｘの値”１”が設定された後、変数ｘの示すファイル管理テーブル１１２’の”１”のエントリの次エントリポインタ１１２１に”０”が設定される。
【０１５１】
以上の結果、使用済みエントリ先頭ポインタ１１３ｂ’と使用済みエントリ最終ポインタ１１３ｃ’が共に”０”に設定される。また、未使用エントリ先頭ポインタ１１３ｄが”２”に未使用エントリ最終ポインタ１１３ｅが”１”に設定される。
【０１５２】
また、ステップＳ２４２で変数ｘに代入された使用済みエントリ先頭ポインタ１１３ｂ’の値が”０”と判別した場合は（ＹＥＳ），ファイル管理テーブル１１２’には削除対象のファイルが存在しないので、直ちに、処理を終了する。
【０１５３】
次に、図１２〜図１３は、更新したファイルを削除対象の一番最後に設定するファイル順序管理部１３１ｃの動作を説明するフローチャートである。
以下、ファイル管理テーブル１１２’が図１５（ｆ）の状態にあるときに、ファイル管理テーブル１１２’の”３”のエントリに作成されたファイルを更新する場合を例に取り上げて説明する。この場合も、削除順序リストに従うことなく、任意のファイルを更新することが可能である。
【０１５４】
図１２のフローチャートにおいて、ステップＳ２７１〜Ｓ２７５の処理は、図１０のフローチャートのステップＳ２４１〜Ｓ２４５の処理と同様である。上記ファイル管理テーブル１１２’の”３”のエントリに作成されたファイルを更新する場合、変数ｘに”３”が，変数ｏｌｄｘに”２”が設定された後、ステップＳ２７６の処理に移る。
【０１５５】
次に、変数ｘの値が使用済みエントリ先頭ポインタ１１３ｂ’の値と等しいか否かが判別され（Ｓ２７６）、この場合、等しくないので（ＮＯ），変数ｏｌｄｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値が設定される（Ｓ２７９）。
【０１５６】
これにより、ファイル管理テーブル１１２’の”２”のエントリの次エントリポインタ１１２１に”４”が設定される。
続いて、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値が”０”であるか否かが判別される（Ｓ２８０）。
【０１５７】
この場合、”０”でないので（ＮＯ）、次に、使用済みエントリ最終ポインタ１１３ｃ’の示すエントリの次エントリポインタ１１２１に変数ｘの値を代入し、続いて、使用済みエントリ先頭ポインタ１１３ｂ’の示すエントリの次エントリポインタ１１２１に変数ｘの値を設定し、使用済みエントリ最終ポインタ１１３ｃ’に変数ｘの値を代入する（Ｓ２８２）。
【０１５８】
これにより、ファイル管理テーブル１１２’のエントリ”１０”の次エントリポインタ１１２１に”３”が設定される。また、使用済みエントリ最終ポインタ１１３ｃ’に”３”が設定される。
【０１５９】
続いて、変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に”０”を設定する（Ｓ２８３）。
これにより、ファイル管理テーブル１１２’のエントリ”３”の次エントリポインタ１１２１に”０”が設定される。
【０１６０】
次に、変数ｘの示すファイル管理テーブル１１２’のエントリに作成されたファイルの更新処理を行う（Ｓ２８４）。
続いて、上記ファイルのデータの書き込み処理を行う（Ｓ２８５〜Ｓ２８８）。このステップＳ２８５〜Ｓ２８８の処理は、図８のステップＳ２１２〜Ｓ２１５の処理と同様である。すなわち、この場合においても、データの書き込み途中でファイルシステム１１０のデータ領域に空きのデータブロックが無くなった場合には、図９のフローチャートに従って使用済みエントリ先頭ポインタ１１３ｂ’の示すファイル管理テーブル１１２’のエントリに作成されたファイルを削除する。
【０１６１】
以上の結果、図１６（ｇ）に示すように、使用済みエントリ先頭ポインタ１１３ｂ’は”２”に、使用済みエントリ最終ポインタ１１３ｃ’は”３”に、未使用エントリ先頭ポインタ１１３ｄは”１”に、未使用エントリ最終ポインタ１１３ｅは”５”に設定される。また、ファイル管理テーブル１１２’の各エントリの次エントリポインタ１１２１の内容は、図１６（ｇ）に示すようになる。
【０１６２】
次に、ファイル管理テーブル１１２’が図１５（ｆ）の状態にあるときに、ファイル管理テーブル１１２’のエントリ”１０”に作成されたファイルを更新する場合の動作を説明する。
【０１６３】
この場合には、ステップＳ２７９まで、変数ｘの値が”１０”、変数ｏｌｄｘの値が”９”に対して上記と同様の処理が行われた後、ステップＳ２８０で変数ｘの示すファイル管理テーブル１１２’のエントリ”１０”の次エントリポインタ１１２１の値が”０”であると判別される（ＹＥＳ）。
【０１６４】
以後、ステップＳ２８４以降の処理により、ファイル管理テーブル１１２’の”１０”のエントリに作成されたファイルのデータの更新がおこなわれる。
この結果、図１５（ｆ）に示すように、使用済みエントリ最終ポインタ１１３ｃ’が”１０”に設定され、エントリ”１０”の次エントリポインタ１１２１が”０”に設定される。
【０１６５】
次に、ファイル管理テーブル１１２’の状態が図１６（ｇ）に示す状態にあるときに、ファイル管理テーブル１１２’の”２”のエントリに作成されたファイルを更新する場合の動作を説明する。
【０１６６】
この場合には、ステップＳ２７６まで、変数ｘの値が”２”に対して上記と同様の処理が行われた後、変数ｘの示すファイル管理テーブル１１２’のエントリ”９”の次エントリポインタ１１２１の値が”０”であるか否かが判別される（Ｓ２７７）。
【０１６７】
そして、この場合、”０”ではないので（ＮＯ），使用済みエントリ先頭ポインタ１１３ｂ’に変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１の値が代入される。
【０１６８】
これにより、使用済みエントリ先頭ポインタ１１３ｂ’の値は”４”となる。
次に、ステップＳ２８２で、使用済みエントリ最終ポインタ１１３ｃ’の示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に変数ｘの値が設定された後、使用済みエントリ最終ポインタ１１３ｃ’に変数ｘの値が設定される。
【０１６９】
これにより、ファイル管理テーブル１１２’のエントリ”３”の次エントリポインタ１１２１が”２”となる。また、使用済みエントリ最終ポインタ１１３ｃ’が”２”になる。
【０１７０】
続いて、ステップＳ２８３で変数ｘの示すファイル管理テーブル１１２’のエントリの次エントリポインタ１１２１に”０”が設定される。
これにより、ファイル管理テーブル１１２’の”２”のエントリの次エントリポインタ１１２１が”０”となる。
【０１７１】
以後、ステップＳ２８４以降の処理により、ファイル管理テーブル１１２’の”２”のエントリに作成されたファイルのデータの更新がおこなわれる。
この結果、データが更新されたファイル管理テーブル１１２’の”２”のエントリに作成されたファイルが、ファイル削除順序リストの最後に位置するようになる。
【０１７２】
このように、図１２〜図１３のフローチャートに示す処理では、使用済みエントリ最終ポインタ１１３ｃ’と次エントリポインタ１１２１の操作により、更新されたファイルが削除順序リストの最後につながれるように、ファイル管理テーブル１１２’の内容を更新するので、ファイルを更新日時（更新していない場合には作成日時を更新日時とみなす）の古い順から削除することができる。
【０１７３】
次に、図１７は、上記第一の基本構成の第三の実施例を示すブロック図である。同図において、図６と同様のブロックには同じ符号を付与している。
この第三の実施例は、上記第二の実施例を基にしており、上記第二の実施例との相違点は、ファイル管理テーブル１１２”の各エントリに、そのエントリが指すファイルが存在するディレクトリのファイル管理テーブル１１２”へのポインタであるディレクトリポインタ１１２３を設けていることと、ファイルシステム管理機構１３０”が、さらにディレクトリエントリ削除部１３１ｄを備えていることである。
【０１７４】
この第三の実施例では、ファイルを作成、削除及び更新する際の動作は、上記第二の実施例の場合と同様であり、第二の実施例との相違点は以下の通りである。
（１）ファイル作成時に、ファイル管理テーブル１１２”内のディレクトリポインタ１１２３に、その作成するファイルが存在するディレクトリのファイル管理テーブル１１２”内のエントリへのポインタを書き込む。
【０１７５】
（２）ファイル削除時に、その削除対象のファイルのファイル管理テーブル１１２”内のディレクトリポインタ１１２３を参照して、そのファイルが存在するディレクトリを見つけ出し、そのディレクトリから該当するエントリを削除する。
【０１７６】
上（１）の処理はファイル作成／削除機構１３１ｂ”が、上記（２）の処理は、ディレクトリエントリ削除部１３４が実行する。
図１８は、ファイルシステム１１０のディレクトリ構成例を示す図である。
【０１７７】
同図に示す例では、ディレクトリＡがルートディレクトリとなっており、この下にディレクトリＢ，Ｃの２つのディレクトリ（サブディレクトリ）とファイルＡ，Ｂの２つのファイルがある。また、上記ディレクトリＢの下にはファイルＣ，Ｄの２つのファイルがあり、また、ディレクトリＣの下にはファイルＥ，Ｆ，Ｇの３つのファイルがある。
【０１７８】
次に、図１９は、ファイルシステム１１０内のデータブロック内に作成される上記図１８のディレクトリ構成に関する情報のデータ構造を示す図である。ディレクトリＡは、図１９（ａ）に示すように、自分自身、自己の上のディレクトリ、さらに、自己の下に存在するディレクトリＢ，ディレクトリＣ，ファイルＡ及びファイルＢに関する位置情報を備えている。
【０１７９】
ディレクトリＢは、図１９（ｂ）に示すように、自分自身、自己の上のディレクトリ、さらに、自己の下に存在するファイルＣ及びファイルＤに関する位置情報を備えている。
ディレクトリＣは、図１９（ｃ）に示すように、自分自身、自己の上のディレクトリ、さらに、自己の下に存在するファイルＥ、ファイルＦ及びファイルＧに関する位置情報を備えている。
【０１８０】
図２０は、上記図１９に示すディレクトリのデータ構造を管理しているファイルシステム１１０内のファイル管理テーブル１１２”とファイルシステム管理ブロック１１３”の構成図である。
【０１８１】
ディレクトリＡに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”のエントリ”１”のファイル管理情報ブロックに格納されている。
このディレクトリポインタ１１２３の値は”０”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”２”が設定されている。
【０１８２】
また、ディレクトリＢに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”のエントリ”２”のファイル管理情報ブロックに格納されている。このディレクトリポインタ１１２３の値は”１”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”３”が設定されている。
【０１８３】
また、ファイルＣに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”のエントリ”３”のファイル管理情報ブロックに格納されている。このディレクトリポインタ１１２３の値は”２”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”４”が設定されている。
【０１８４】
また、ファイルＤに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”のエントリ”４”のファイル管理情報ブロックに格納されている。このディレクトリポインタ１１２３の値は”２”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”８”が設定されている。
【０１８５】
また、ディレクトリＣに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”の”エントリ”８”のファイル管理情報ブロックに格納されている。このディレクトリポインタ１１２３の値は”１”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”９”が設定されている。
【０１８６】
また、ファイルＥに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”のエントリ”９”のファイル管理情報ブロックに格納されている。このディレクトリポインタ１１２３の値は”８”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”１０”が設定されている。
【０１８７】
また、ファイルＦに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”のエントリ”１０”のファイル管理情報ブロックに格納されている。このディレクトリポインタ１１２３の値は”８”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”１１”が設定されている。
【０１８８】
また、ファイルＧに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”のエントリ”１１”のファイル管理情報ブロックに格納されている。このディレクトリポインタ１１２３の値は”８”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”１３”が設定されている。
【０１８９】
また、ファイルＡに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”のエントリ”１３”のファイル管理情報ブロックに格納されている。このディレクトリポインタ１１２３の値は”１”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”１４”が設定されている。
【０１９０】
また、ファイルＢに対するディレクトリポインタ１１２３は、ファイル管理テーブル１１２”のエントリ”１４”のファイル管理情報ブロックに格納されている。このディレクトリポインタ１１２３の値は”１”である。また、このファイル管理情報ブロックの次エントリポインタ１１２１には”０”が設定されている。
【０１９１】
このように、ディレクトリポインタ１１２３には、木構造において自己のすぐ上に位置するディレクトリのファイル管理テーブル１１２”内のエントリの番号が設定される。また、次エントリポインタ１１２１には、ファイル管理テーブル１１２”中の使用されているエントリ同士、あるいは未使用なエントリ同士を連結するように、ディレクトリまたはファイルのファイル管理テーブル１１２”内のエントリの番号が設定される。
【０１９２】
また、ファイルシステム管理ブロック１１３”においては、使用済みエントリ先頭ポインタ１１３ｂ’にファイル管理テーブル１１２”のエントリ”１”が設定されている。また、使用済みエントリ最終ポインタ１１３ｃ’にはファイル管理テーブル１１２”のエントリ”１４”が設定されている。
【０１９３】
さらに、未使用エントリ先頭ポインタ１１３ｄには、ファイル管理テーブル１１２”内のエントリ”５”が設定されている。また、未使用エントリ最終ポインタ１１３ｅには、ファイル管理テーブル１１２”内のエントリ”１５”が設定されている。
【０１９４】
このため、ファイル管理テーブル１１２”のエントリ”５”の次エントリポインタ１１２１には”６”が設定されている。また、ファイル管理テーブル１１２”のエントリ”６”の次エントリポインタ１１２１には”７”が設定されている。さらに、ファイル管理テーブル１１２”のエントリ”７”の次エントリポインタ１１２１には”１２”が設定されている。また、さらに、ファイル管理テーブル１１２”のエントリ”１２”の次エントリポインタ１１２１には”１５”が設定されている。そして、ファイル管理テーブル１１２”のエントリ”１５”の次エントリポインタ１１２１には”０”が設定されている。
【０１９５】
また、ファイル管理テーブル１１２”の各エントリには、図１９に示すファイルシステム１１０内のデータ領域内に作成される該当するディレクトリのデータ構造（ディレクトリファイル）へのポインタも格納されている。
【０１９６】
図２１は、ディレクトリエントリ削除部１３４によって実行される、あるファイルを削除する際の処理を説明するフローチャートである。
まず、あるファイルを削除する際、そのファイルの存在するディレクトリファイルのファイル管理テーブル１１２”中でのエントリ位置をディレクトリポインタ１１２３によって知ることができる。次に、そのディレクトリファイルのデータブロックをオープンし、先頭から順に、そのディレクトリファイル内のエントリを順次、読み出し、上記削除対象のファイルのエントリを見つけ出す（Ｓ３０１〜Ｓ３０４）。
【０１９７】
そして、削除対象のファイルのエントリを見つけたら（Ｓ３０４，ＹＥＳ）、そのエントリを参照して、そのディレクトリファイルのデータブロックからそのファイルのデータを削除する（Ｓ３０５）。
【０１９８】
図２２は、第一の基本構成の第４の実施例のシステム構成図である。
この第４の実施例のシステム構成は、ほぼ、図１７のシステムと同様であり、ファイルシステム管理機構１３０ｅに削除候補ファイル問い合わせ部１３１ｅが追加されている。
【０１９９】
図２３は、この削除候補ファイル問い合わせ部１３１ｅの動作を説明するフローチャートである。
削除候補ファイル問い合わせ部１３１ｅは、アプリケーションプログラムが削除候補ファイル問い合わせ用のシステムコールを実行すると、図２４に示す削除候補ファイル問い合わせフラグを受け取る。そして、その削除候補ファイル問い合わせフラグの値が”１”であるか否かを判別する（Ｓ４０１）。
【０２００】
図２４に示すように、削除候補ファイル問い合わせフラグの値が”１”であれば、これは、削除候補ファイルに関する情報の問い合わせを意味する。したがって、削除候補ファイル問い合わせフラグの値が”１”であれば（Ｓ４０１、ＹＥＳ），削除候補ファイルがあるか否かをファイルシステム管理ブロック１１３”とファイル管理テーブル１１２”を参照して調べる（Ｓ４０２）。
【０２０１】
そして、削除候補ファイルがあれば、そのファイルに関する情報（作成日時、アクセス日時等）をアプリケーションプログラムに通知する。このとき、例えば該アプリケーションプログラムは、通知された削除候補ファイルの一覧を所定の表示装置等に表示させる（Ｓ４０３）。
【０２０２】
次に、図２５は、図１の削除順序問い合わせ／設定部１３６の動作の一例を説明するフローチャートである。
この削除順序問い合わせ／設定部１３６は、アプリケーションプログラムから図２６に示す削除順序問い合わせ／設定フラグを受け取る。
【０２０３】
上記削除条件問い合わせ／設定部フラグは、値が”２”のとき「問い合わせ」、”３”のとき「設定」を意味する。すなわち、アプリケーションプログラムは、ファイルの削除順序を問い合わせる場合には上記削除順序問い合わせ／設定部フラグに”２”を設定し、ファイルの削除条件を変更したい場合には上記削除順序問い合わせ／設定部フラグに”３”を設定して、削除順序問い合わせ／設定部１３６に対してシステムコールを行う。
【０２０４】
また、削除順序情報管理部１３３は、削除順序情報格納部１１４にファイル削除順序情報を記憶している。
図２７は、削除順序情報管理部１３３が削除順序情報格納部１１４に登録するファイルの削除順序情報の一覧を示す図である。
【０２０５】
このファイルの削除順序情報は、８進数で示され、”０１”、”０２”、”０４”、”０１０”、”０２０”及び”０２００”の各値を有する。これらの各８進数値は、以下のファイル削除順序情報に対応している。
【０２０６】
”０１”：「作成日時順」
”０２”：「更新日時順」
”０４”：「アクセス日時順」
”０１０”：「サイズ順」
”０２０”：「アクセス回数順」
”０２００”：「逆順」
図２５のフローチャートの説明をする。
【０２０７】
削除順序問い合わせ／設定部１３６は、アプリケーションプログラムから削除順序問い合わせ設定のシステムコールを受け取ると、そのシステムコールのパラメータである削除順序問い合わせ設定フラグの値を調べ、アプリケーションプログラムからの要求が「問い合わせ」であるか否かを判別する（Ｓ５０１）。
【０２０８】
そして、削除順序問い合わせ設定フラグの値が”２”であれば、「問い合わせ」であると判別し（ＹＥＳ），削除順序情報管理部１３３に対して、現在、設定されている削除順序情報を問い合わせる。削除順序情報管理部１３３は、削除順序情報格納部１１４を参照して、現在、設定されている削除順序情報を削除順序問い合わせ／設定部１３６に返す。削除順序問い合わせ／設定部１３６は、この削除順序情報をアプリケーションプログラムに通知する。このとき、例えば、該アプリケーションプログラムは、この通知されたファイルの削除順序情報を所定の表示装置に表示させる（Ｓ５０５）。
【０２０９】
一方、上記ステップＳ５０１で削除順序問い合わせ設定フラグの値が”２”でなければ（ＮＯ）、次に、削除順序問い合わせ設定フラグの値が”３”、すなわち、「設定」の指定であるか否かを判別する（Ｓ５０２）。そして、削除順序問い合わせ設定フラグの値が”３”、すなわち、「設定」の指定であれば（ＹＥＳ）、削除順序情報管理部１３３に依頼して削除順序情報格納部１１４に登録されるファイルの削除順序情報の書換えを行う（Ｓ５０３）。
【０２１０】
続いて、その削除順序フラグの値に従って、ファイル管理テーブル１１２”内のファイルの削除順序のリストを変更する（Ｓ５０４）。
次に、述べる実施例は、図１のファイル削除部１３２、削除条件判断部１３７、削除条件問い合わせ／設定部１３８及び削除条件情報管理部１３９によって行われる、ある条件設定を満足するファイルのみを削除するものである。
【０２１１】
削除条件情報管理部１３９は、図２８に示す削除条件フラグ（ｍｏｄｅ）に関する情報を、削除条件情報格納部１１６に登録・管理している。
削除条件フラグ（ｍｏｄｅ）は、”１”〜”８”の値が有効であり、各値は、以下のような削除条件に対応している。
【０２１２】
”１”：作成日時
”２”：更新日時
”３”：アクセス日時
”４”：サイズ
”５”：ユーザ名
”６”：グループ名
”７”：リンク数
”８”：タイプ
また、削除条件情報管理部１３９は、図２９に示す削除条件フラグ（ｔｙｐｅ）に関する情報を管理している。
【０２１３】
削除条件フラグ（ｔｙｐｅ）は、”１”〜”５”の値が有効であり、各値は、以下のような削除条件に対応している。
”１”：通常ファイル
”２”：ディレクトリ
”３”：キャラクタスペシャルファイル
”４”：ブロックスペシャルファイル
”５”：シンボリックリンクファイル
また、さらに、削除条件情報管理部１３９は、図３０に示す削除条件フラグ（ｃｏｎｄ）に関する情報を管理している。
【０２１４】
削除条件フラグ（ｃｏｎｄ）は、”１”〜”６”の値が有効であり、各値は、以下のような削除条件に対応している。
”１”：ＥＱ（等しい）
”２”：ＧＴ（大きい）
”３”：ＬＴ（小さい）
”４”：ＧＥ（以上）
”５”：ＬＥ（以下）
”６”：ＮＥ（等しくない）
また、削除条件問い合わせ／設定部１３８は、図３１に示す削除条件問い合わせ／設定部フラグに関する情報を記憶している。
【０２１５】
この削除条件問い合わせ／設定部フラグは、”４”と”５”の値が有効であり、これらの値は、以下のような意味を有する。
”４”：問い合わせ
”５”：設定
アプリケーションプログラムは、上記３種類の削除条件フラグの値を設定して、ファイル削除部１３２に対してシステムコールを行うことにより、特定の条件を満足するファイルのみをファイルシステム１１０から削除することができる。
【０２１６】
例えば、ディレクトリを削除したくない場合には、削除条件フラグ（ｃｏｎｄ）に”６”（ＮＥ），削除条件フラグ（ｍｏｄｅ）に”８”（タイプ）、削除条件フラグ（ｔｙｐｅ）に”２”（ディレクトリ）を設定して、システムコールを行う。
【０２１７】
図３２〜図３３は、ファイル削除部１３２が削除条件情報格納部１１６に登録されているファイルの削除条件情報を考慮して、ファイルを削除する処理の概略を説明するフローチャートである。
【０２１８】
ファイル削除部１３２は、削除対象のファイルを見つけると（Ｓ６０１），削除条件情報管理部１３９に、現在、削除条件情報格納部１１６に登録されているファイルの削除条件情報を問い合わせる。削除条件情報管理部１３９は、削除条件情報格納部１１６を検索して、現在、ファイルの削除条件が設定されているか否かを調べる（Ｓ６０２）。
【０２１９】
そして、ファイルの削除条件が設定されていなければ（Ｓ６０２、ＮＯ），そのファイルを削除する（Ｓ６０３）。
一方、ファイルの削除条件が設定されていれば、その削除条件フラグ（ｍｏｄｅ）が何であるか調べる（Ｓ６０４〜Ｓ６１１）。すなわち、図２８に示す”１”〜”８”のいずれの値であるか否かを調べる。
【０２２０】
そして、削除条件フラグ（ｍｏｄｅ）が「作成日時」であれば（Ｓ６０４，ＹＥＳ），上記削除対象のファイルの作成日時情報を取得し、これを変数ｘに代入する。また、指定された作成日時を変数ｙに代入する（Ｓ６１２）。
【０２２１】
また、削除条件フラグ（ｍｏｄｅ）が「更新日時」であれば（Ｓ６０５，ＹＥＳ），上記削除対象のファイルの更新日時情報を取得し、これを変数ｘに代入する。また、指定された更新日時を変数ｙに代入する（Ｓ６１３）。
【０２２２】
また、さらに、削除条件フラグ（ｍｏｄｅ）が「アクセス日時」であれば（Ｓ６０６，ＹＥＳ），上記削除対象のファイルのアクセス日時情報を取得し、これを変数ｘに代入する。また、指定されたアクセス日時を変数ｙに代入する（Ｓ６１４）。
【０２２３】
次に、削除条件フラグ（ｃｏｎｄ）が何であるかを調べる（Ｓ６２０〜Ｓ６２５）。そして、削除条件フラグｃｏｎｄが「ＥＱ」であれば（Ｓ６２０，ＹＥＳ），変数ｘと変数ｙが等しいか否かを調べ（Ｓ６２６），等しければ（ＹＥＳ），上記削除対象のファイルを削除する（Ｓ６２７）。
【０２２４】
一方、変数ｘと変数ｙが等しくなければ（Ｓ６２６、ＮＯ）、次の削除対象のファイルを見つけ（Ｓ６２８）、上記ステップＳ６０２に戻る。
図３４は、本発明の第二の基本構成のシステム構成を示すブロック図である。
【０２２５】
同図において、図１に示すブロックと同一のブロックには同一の符号を付与している。
この第二の基本構成が、前述した図１の第一の基本構成と異なる所は、３つの削除順序情報格納部１４５−１〜１４５−３を備えていることである。また、これらの各削除順序情報格納部１４５−１〜１４５−３は、それぞれ、第一のファイル削除順序情報、第二のファイル削除順序情報、第三のファイル削除順序情報を格納している。
【０２２６】
さらに、これらの各削除順序情報格納部１４５−１〜１４５−３に対応して、削除順序情報管理部２０３−１〜２０３−３が設けられている。これらの削除順序情報管理部２０３−１〜２０３−３は、それぞれ、削除順序情報格納部１４５−１〜１４５−３に格納されるファイル削除順序情報を登録・管理する。
【０２２７】
さらに、上記削除条件情報管理部２０３−１〜２０３−３を一元的に総合して管理する削除順序情報総合管理部２０１が設けられている。この削除順序情報総合管理部２０１は、削除順序問い合わせ／設定部１３６、削除候補ファイル問い合わせ部１４０、ファイル削除部１３２及び優先順位情報管理部２０２からの要求を受け付ける。
【０２２８】
該優先順位情報管理部２０２は、優先順位情報格納部２４４に、上記３つの削除順序情報格納部１４５−１〜１４５−３に格納されているファイルの削除順序情報の優先順位に関する情報を登録・格納する。
【０２２９】
さらに、優先順位情報問い合わせ／設定部２０５が設けられている。この優先順位情報問い合わせ／設定部２０５は、優先順位情報管理部２０２に対して、上記３つの削除順序情報格納部１４５−１〜１４５−３に格納されているファイル削除順序情報の優先順位情報を問い合わせたり、それらのファイル削除順序情報の優先順位情報の設定を依頼する。
【０２３０】
この第二実施例の概略動作を説明する。
ファイルの新規作成時に、ファイルシステム１１０に空き容量が不足したり、また、さらに、ファイルを削除することになった場合、ファイル削除部１３２は、削除順序情報総合管理部２０１に対して、削除対象のファイルの問い合わせを行う。削除順序情報総合管理部２０１は、優先順位情報管理部２０２を介して、優先順位情報格納部２４４に登録されている上記３つの削除順序情報格納部１４５−１〜１４５−３に格納されているファイル削除順序情報の優先順位情報を参照し、この参照結果に基づいて、３つの削除順序情報管理部２０３−１〜２０３−３の中の１つまたは複数に対してファイル削除順序情報を問い合わせ、削除の対象となるファイルの情報を得る。
【０２３１】
また、優先順位情報問い合わせ・設定部２０５は、優先順位情報管理部２０２に対して削除順序情報格納部１４５−１〜１４５−３に格納されている複数のファイル削除順序情報の優先順位を問い合わせる。また、優先順位情報管理部２０２を介して、優先順位情報格納部２４４に３つの削除順序情報格納部１４５−１〜１４５−３に格納されている３つのファイル削除順序情報の優先順位を設定する。
【０２３２】
この第二実施例では、例えば、システムの資格で作成したファイルについては、作成日時の古い順から削除し、また、ユーザの資格で作成したファイルについては、サイズの大きい順に削除するようにすることができる。また、ファイルを削除する際、まず、ユーザの資格で作成されたファイルを先に削除し、次に、システムの資格で作成されたファイルを削除するようにすることも可能である。
【０２３３】
図３５は、ファイル削除部１３２がファイルを削除する必要が生じた場合に、優先順位情報管理部２０２に対してファイルの削除順序情報の優先順位を問い合わせたり、設定するために、また、その優先順位情報の数を問い合わせたり、設定するために使用するファイルの削除順序情報の優先順位問い合わせ／設定フラグを説明する図である。
【０２３４】
このファイルの削除順序情報の優先順位問い合わせ／設定フラグの値は、以下のような意味を有している。
”６”：ファイルの削除順序情報の優先順位の問い合わせ
”７”：ファイルの削除順序情報の優先順位の設定
”８”：優先順位情報の個数の問い合わせ
”９”：優先順位情報の個数の設定
ファイル削除部１３２は、ファイル作成／削除機構１３１ｂから削除対象のファイルを見つけて欲しいという要求を受け取ると、削除順序情報総合管理部２０１に対して削除対象のファイルを問い合わせる。
【０２３５】
削除順序情報総合管理部２０１は、この問い合わせを受けて、図３６に示すフローチャートの処理を実行して、削除対象ファイルを決定する。
削除順序情報総合管理部２０１は、まず、優先順位情報管理部２０２を介してファイルの削除順序情報の優先順位情報を取得する。次に、その優先順位情報を基に、まず、最も優先順位の高いファイルの削除順序情報を、３つの削除順序情報管理部２０３−１〜２０３−３のいづれかを介して取得する（Ｓ７０１）。
【０２３６】
次に、未検索のファイルの削除順序情報があるか否かを判別する（Ｓ７０２）。この場合、最も優先順位の高いファイルの削除順序情報を取得したので、続いて、そのファイルの削除順序情報の中で最も削除順位の早い削除候補ファイルを選択する（Ｓ７０３）。
【０２３７】
次に、上記ファイルの削除順序情報の中に削除候補ファイルがまだ残っているか否かを判別する（Ｓ７０４）。
この場合、削除候補ファイルを選択したので、続いて、この削除候補ファイルが削除条件に一致しているか否かを判別する（Ｓ７０６）。そして、削除条件に一致していれば（Ｓ７０６，ＹＥＳ）、その削除候補ファイルを削除対象のファイルとして決定する（Ｓ７０８）。
【０２３８】
一方、削除条件に一致していなければ、上記ファイルの削除順序情報の中から次に削除順序の早いファイルを選択する（Ｓ７０７）。そして、ステップ７０４に戻る。
このようにして、選択したファイルの削除順序情報の中から削除順に削除条件に一致する削除候補ファイルを検索していく。
【０２３９】
そして、選択したファイルの削除順序情報の中に削除条件に一致する削除候補ファイルが一つも無ければ、上記ステップＳ７０１と同様な処理により、次に優先順位の高いファイルの削除順序情報を取得する（Ｓ７０５）。
【０２４０】
そして、このファイルの削除順序情報に対して、上記ステップＳ７０２〜Ｓ７０８の処理を実行する。
このようにして、削除条件に一致している削除候補ファイルが見つかるまで、ファイルの削除順位情報を優先順位順に順次選択し、そのファイルの削除順位情報の中から削除条件に一致している削除対象ファイルを見つけ出す。
【０２４１】
図３７は、本発明の第７の実施例のシステム構成を示すブロック図である。
同図において、ファイルデータブロック３０１は、ファイルの実データを格納しているブロックである。ファイル実サイズ情報部３０２は、ファイルデータブロック３０１の実サイズを記憶する。先頭位置保持部３０３は、ファイルデータブロック３０１の先頭位置を記憶する。最終位置保持部３０４は、ファイルデータブロック３０１の最終位置を記憶する。サイズ上限値保持部３０５は、ファイルデータブロック３０１のサイズの上限を記憶する。比較部３０６はファイル実サイズ情報部３０２に保持されているサイズとサイズ上限値保持部３０５に保持されているサイズとを比較し、その比較結果を重ね書き指示部３０８に出力する。
【０２４２】
単位解析部３０７は、設定者がファイルデータブロック３０１のサイズを、例えば、バイト、ブロック、Ｋバイト（キロバイト）などの単位で指定する際、この単位を解析して、該設定者が指定したファイルデータブロック３０１の上限値をサイズ上限値保持部３０５に設定する。重ね書き指示部３０８は、比較部３０６によりファイルデータブロック３０１の上限までデータが書き込まれたことが検出されると、ファイルデータブロック３０１に対してデータを重ね書きするように指示する。
【０２４３】
次に、この第七の実施例の第一の動作例を、図３８及び図３９を参照しながら説明する。
データが全く書き込まれていない状態のときには、先頭位置保持部３０３と最終位置保持部３０４は、共に、ファイルデータブロック３０１の先頭位置を指している。また、ファイル実サイズ情報部３０２は”０”に設定されている（図３９（ａ）の状態１）。
【０２４４】
この後、ファイルデータブロック３０１にデータの書き込みが行われると、先頭位置保持部３０３はファイルデータブロック３０１の先頭を指したまま変化しないが、最終位置保持部３０４はファイルデータブロック３０１に書き込まれたデータ量に従って、ファイルデータブロック３０１に書き込まれたデータの最終位置を指しながら移動する。また、ファイル実サイズ情報部３０２は、ファイルデータブロック３０１に書き込まれたデータ量を常に示すように変化する（図３９（ｂ）の状態２）。
【０２４５】
そして、ファイルデータブロック３０１が図３８（ｃ）に示す状態３になったとき、重ね書き指示部３０８が、不図示のデータ書き込み部に対して、ファイルデータブロック３０１に対するデータの書き込みを、重ね書きにより行うように指示すると、以後のファイルデータブロック３０１に対するデータの書き込みは、上書きによって行われる。すなわち、ファイルデータブロック３０１が上記状態３にあるとき、前記データ書き込み部がファイルデータブロック３０１に対してデータを追記しようとすると、最終位置保持部３０４は、ファイルデータブロック３０１の先頭位置を指すように戻り、最初に書き込んだデータに重ね書きを行う（図３９（ｄ）の状態４参照）。
【０２４６】
そして、以後、ファイルデータブロック３０１に対するデータの書き込みは重ね書きによって行われる。また、これ以後、ファイルデータブロック３０１に対してデータの書き込みが行われても、ファイル実サイズ情報部３０２の値は、変化せず、常に、一定の値（状態３のときのファイルデータブロック３０１のデータサイズ）を示している。
【０２４７】
最終位置保持部３０４は、実際のデータの最終書き込み位置を指すように移動する。また、先頭位置保持部３０３も、最終位置保持部３０４と同一の位置を指すように移動する（図３９（ｅ）の状態５）。さらに、ファイルデータブロック３０１に対してデータの書き込みが行われ、再び、データがファイルデータブロック３０１の最終位置まで書き込まれると（図３９（ｆ）の状態６）、先頭位置保持部３０３と最終位置保持部３０４は、共に、ファイルデータブロック３０１の先頭の位置を指すようになる（図３８（ｄ）の状態４）。
【０２４８】
そして、さらに、ファイルデータブロック３０１に対して、データが書き込まれると、先頭位置保持部３０３と最終位置保持部３０４は、共に、ファイルデータブロック３０１の先頭位置を指すようになった後、以下、同様の動作を繰り返す。
【０２４９】
次に、この第七の実施例の第二の動作例を，図４０を参照しながら説明する。
この例では、予め、サイズ上限値保持部３０５にファイルデータブロック３０１のサイズの上限値を設定しておく（図４０（ａ）の状態１）。
【０２５０】
ファイルデータブロック３０１にデータが書き込まれる際、比較部３０６はファイル実サイズ情報部３０２の値とサイズ上限値保持部３０５の値を比較する。
そして、両者の値が等しくなったことを検出すると（図４０（ｂ）の状態２）、重ね書き指示部３０８にこのことを通知する。すなわち、ファイルデータブロック３０１のサイズの上限までデータが書き込まれると、比較部３０６は、これを重ね書き指示部３０８に通知する。
【０２５１】
重ね書き指示部３０８は、この通知を受け取ると、データ書き込み部に重ね書きを指示する。これ以降の動作は、上記第一の動作例において、重ね書き指示部３０８からデータの重ね書きの指示がなされたときと同様である。
【０２５２】
次に、第七の実施例の第三の動作例を説明する。
ファイルデータブロック３０１の作成者は、ファイルデータブロック３０１の上限値のサイズをバイト、ブロック、Ｋバイト（キロバイト）などの所定の単位で指定することができる。単位解析部３０７は、この指定される単位の意味を解析して、サイズ上限値保持部３０５に正しいファイルデータブロック３０１のサイズの上限値を設定する。
【０２５３】
次に、図４１は、データ書き込み部によって実行される上記第七の実施例の第一の動作例の処理を説明するフローチャートである。
尚、ファイル作成時には、先頭位置保持部３０３と最終位置保持部３０４の値は、共に、”０”（ファイルデータブロック３０１の先頭位置）に設定される。
また、ファイル実サイズ情報部３０２には、”０”（サイズが”０”）に設定される（図３８（ａ）の状態１）。
【０２５４】
まず、ファイルデータブロック３０１に書き込むべきデータがあるか否かを判別し（Ｓ７１１），書き込むべきデータがあれば（ＹＥＳ）、次に、重ね書き指示部３０８からデータの重ね書きの指示がなされているか否かを判別する（Ｓ７１２）。
【０２５５】
そして、データの重ね書きの指示がなされていなければ（ＮＯ）、ファイルデータブロック３０１に１バイトのデータを書き込む（Ｓ７１３）。続いて、ファイル実サイズ情報部３０２の値を”１”増加させ（Ｓ７１４）、次に、最終位置保持部３０４の値を”１”増加させる（Ｓ７１５）。
【０２５６】
以上の動作が繰り返されて、ファイルデータブロック３０１には、データが１バイトづつ書き込まれていく。
そして、ファイルデータブロック３０１が図３８（ｃ）の状態３にあるときに、重ね書き指示部３０８からデータの重ね書きの指示がなされると、ステップＳ７１２で、データの重ね書きの指示がなされていると判別し（ＹＥＳ），次に、最終位置保持部３０４の値がファイル実サイズ情報３０２の値以上であるか否かが判別される（Ｓ７１６）。状態３のとき、両者の値は等しいので（ＹＥＳ）、最終位置保持部３０４に”０”を設定する（Ｓ７１７）。この結果、図３８（ｄ）に示す状態４になる。
【０２５７】
続いて、先頭位置保持部３０３と最終位置保持部３０４の値が等しいか否かを判別する（Ｓ７１８）。状態４のときには、両者の値が等しいので、（ＹＥＳ）、先頭位置情報保持部３０３の値に”１”を加える（Ｓ７１９）。
【０２５８】
次に、先頭位置保持部３０３の値がファイル実サイズ情報部３０２の値以上であるか否かを判別する（Ｓ７２０）。この判別において、図３８（ｄ）の状態４のときには、先頭位置情報保持部３０３の値がファイル実サイズ情報部３０２の値以上ではない（ＮＯ）と判別される。
【０２５９】
次に、ファイルデータブロック３０１の最終位置保持部３０４の指す位置に，１バイトのデータを書き込み（Ｓ７２２），最後に最終位置保持部３０４の値に”１”を加える（Ｓ７２３）。このとき、先頭位置情報保持部３０３と最終位置保持部３０４の値は共に”１”となっている。
【０２６０】
以後、処理はステップＳ７１１に戻る。そして、データの重ね書き指示がなされる毎に、ステップＳ７１１→Ｓ７１２→Ｓ７１８→Ｓ７１９→Ｓ７２０→Ｓ７２３の一連の処理が繰り返される。そして、この一連の処理が１回行われる毎に、先頭位置情報保持部３０３と最終位置保持部３０４の値は、”２”、”３”、”４”・・・と、順次”１”づつ大きくなっていく（図３９（ｅ）の状態５参照）。以上の一連の処理は、先頭位置情報保持部３０３と最終位置保持部３０４の値が、ファイル実サイズ情報部３０２の値より小さい間、繰り返される。
【０２６１】
そして、図３９（ｆ）の状態６の状態になったとき、ステップＳ７２０で先頭位置情報保持部３０３の値がファイル実サイズ情報部３０２の値以上であると判別し（ＹＥＳ），先頭位置情報保持部３０３に”０”を設定する（Ｓ７２１）。
【０２６２】
次に、ファイルデータブロック３０１の最終位置保持部３０４の指す位置に、１バイトのデータを書き込み（Ｓ７２２）、続いて、最終位置保持部３０４の値に”１”を加える（Ｓ７２３）。このとき、、先頭位置保持部３０３の値は”０”に、最終位置保持部３０４の値はファイル実サイズ情報部３０２と同じ値となっている。そして、次に、ファイルデータブロック３０１に１バイトのデータが書き込まれるときには、ステップＳ７１６で最終位置保持部３０４の値がファイル実サイズ情報部３０２の値以上であると判別され（ＹＥＳ），この結果、最終位置保持部３０４には”０”が設定される（Ｓ７１７）。
【０２６３】
以降は、再び、先頭位置情報保持部３０３と最終位置保持部３０４の値が共に”１”、”２”、”３”・・・と同じ値を取りながら、同様の処理が繰り返される。
尚、以上の説明では、先頭位置情報保持部３０３と最終位置保持部３０４の値が常に等しくなるため、ステップＳ７１８では常にＹＥＳと判別されるが、先頭位置情報保持部３０３値が一度に”１”より多く増加した場合には、ステップＳ７１８でＮＯと判別される。このような場合の処理については、後述する。
【０２６４】
次に、図４２は、データ書き込み部によって実行される上記第七の実施例の第二の動作の処理を説明するフローチャートである。
尚、ファイル作成時には、先頭位置保持部３０３と最終位置保持部３０４の値は、共に、”０”（ファイルデータブロック３０１の先頭位置）に、また、ファイル実サイズ情報部３０２は”０”（サイズが”０”）に設定される。また、サイズ上限値保持部３０５にファイルデータブロック３０１のサイズの上限の値が設定される。また、データの重ね書きを行っていることを示す重ね書き動作中フラグは”偽”（ＯＦＦ）に設定される（図４０の状態１参照）。
【０２６５】
まず、データ書き込み部は、ファイルデータブロック３０１に書き込むデータがあるか否かを判別し（Ｓ８０１），書き込むデータがあれば（Ｓ８０１，ＹＥＳ），次に、重ね書き動作中フラグが真（ＯＮ）であるか否かを判別する（Ｓ８０２）。
【０２６６】
初期状態では、データの重ね書き動作中フラグ”偽”（ＯＦＦ）であるので、ステップ８０２でＮＯと判別され、ファイルデータブロック３０１の最終位置保持部３０４の指す位置に１バイトのデータを書き込む（Ｓ８０３）。続いて、ファイル実サイズ情報部３０２の値を”１”増加させ（Ｓ８０４），次に、最終位置保持部３０４の値を”１”増加させる（Ｓ８０５）。
【０２６７】
次に、ファイル実サイズ情報部３０２の値がサイズ上限値保持部３０５の値以上であるか否かを判別する（Ｓ８０６）。そして、ファイル実サイズ情報部３０２の値がサイズ上限値保持部３０５の値以上でないと判別すると（Ｓ８０６，ＮＯ），ステップＳ８０１に戻る。
【０２６８】
ステップＳ８０６で、ファイル実サイズ情報部３０２の値がサイズ上限値保持部３０５の値以上でない（ＮＯ）と判別されている間、上述したステップＳ８０１→Ｓ８０２→Ｓ８０３→Ｓ８０４→Ｓ８０５→Ｓ８０６の一連の処理が繰り返して実行され、ファイルデータブロック３０１にはデータが１バイトづつ書き込まれていく。また、ファイル実サイズ情報部３０２及び最終位置保持部３０４の値が，共に”１”づつ増加していく。
【０２６９】
そして、ファイルデータブロック３０１が図４０の状態２の状態になると、ステップＳ８０６でＹＥＳと判別され、重ね書き動作中フラグが”真”に設定される。
この後、ステップＳ８０１の処理に戻り、ファイルデータブロック３０１に書き込むべきデータがある場合には（Ｓ８０１，ＹＥＳ）、ステップＳ８０２で重ね書き動作中フラグが”真”であると判別され、ステップＳ８０８の処理に移行する。
【０２７０】
ステップＳ８０８〜Ｓ８１５の処理は、上述したステップＳ７１６〜Ｓ７２３の処理と同様である。
次に、図４３は、単位解析部３０７によって実行される上記第七の実施例の第三の動作の処理を説明するフローチャートである。
【０２７１】
まず、ファイルデータブロック３０１のサイズの上限値が入力されると（Ｓ９０１），そのサイズ情報をサイズと単位に分離し、該サイズを変数Ｘに単位を変数Ｕに代入する（Ｓ９０２）。
【０２７２】
すなわち、例えば、入力されたサイズ情報が１００Ｋバイトであった場合、サイズは’１００’、単位は’Ｋ’となる。また、この場合、サイズはバイトを基本とし、これ以外に、Ｋバイト、Ｍバイトでの指定が可能であり、また、ブロック単位での指定も可能であるとする（１ブロックは５１２バイトとする）。バイトで指定された場合、単位は”無し”となる。
【０２７３】
次に、変数Ｕの内容をステップＳ９０３，Ｓ９０５，Ｓ９０７，Ｓ９０９で解析する。そして、ステップＳ９０３で変数Ｕの内容が”無し”であると判別すれば、変数Ｙに”１”を代入する（Ｓ９０４）。また、ステップＳ９０５で変数Ｕの内容が”Ｋ”であると判別すれば、変数Ｙに”１０２４”を代入する（Ｓ９０６）。また、ステップＳ９０７で変数Ｕの内容が”Ｂ”であると判別すれば、変数Ｙに”５１２”を代入する（Ｓ９０８）。さらに、ステップＳ９０９で変数Ｕの内容が”Ｍ”であると判別すれば、変数Ｙに”１０２４×１０２４”を代入する（Ｓ９１０）。また、ステップＳ９０９で変数Ｕの内容が”Ｍ”でないと判別すれば、バイト指定であると判断して、変数Ｙに”１”を代入する。
【０２７４】
上記ステップＳ９０３〜Ｓ９１１の処理が終了した後、変数Ｘと変数Ｙの値の乗算結果を変数Ｘに代入する（Ｓ９１２）。そして、変数Ｘの値をサイズ上限値保持部３０５に設定する（Ｓ９１３）。
【０２７５】
以上の結果、サイズ上限値保持部３０５にファイルデータブロック３０１の上限サイズがバイト単位で設定される。
次に、図４４は、本発明の第８の実施例のシステム構成図である。
【０２７６】
ファイルシステム４０１は、ファイルデータブロック４０２、先頭位置保持部４０３、最終位置保持部４０４、空き容量下限保持部４０５、空き容量情報部４０６、空き容量判定部４０７、重ね書き指示部４０８、重ね書きフラグ４０９及びファイル実サイズ情報部４１０を備えている。
【０２７７】
空き容量下限保持部４０５は、ファイルデータブロック４０２の空き容量の下限値が設定される。空き容量情報部４０６は、ファイルデータブロック４０２の現在の空き容量を記憶する。空き容量判定部４０７は、空き容量下限保持部４０５の値と空き容量情報部４０６の値とを比較し、ファイルデータブロック４０２の空き容量が空き容量下限保持部４０５に設定されているファイルデータブロック４０２の空き容量の下限値に等しくなったことを検出する。そして、検出すると、重ね書き指示部４０８にファイルデータブロック４０２に対するデータの重ね書きを指示する。先頭位置保持部４０３，最終位置保持部４０４及びファイル実サイズ情報部４１０は、上記第七実施例の先頭位置保持部３０３、最終位置保持部３０４及びファイル実サイズ情報部３０２と同様の機能を有する。
【０２７８】
次に、この第８の実施例の第一の動作の概略を説明する。
まず、予め、空き容量下限保持部４０５にファイルデータブロック４０２の空き容量の下限値を設定しておく。ファイルデータブロック４０２にデータを書き込んでいくと、次第に、ファイルデータブロック４０２の空き容量が減少していく。この空き容量は、空き容量情報部４０６に設定される。そして、ファイルデータブロック４０２の空き容量が空き容量下限保持部４０５に設定されている値以下になると、このことが、空き容量判定部４０７によって検出され、空き容量判定部４０７から重ね書き指示部４０８にこの検出が通知される。重ね書き指示部４０８は、この通知を受けて、不図示のデータ書き込み部にデータの重ね書きを指示する。上記以外の動作は、前記第七の実施例の第一の動作と同様である。
【０２７９】
次に、この第８の実施例の第二の動作の概略を説明する。
この第二の動作が、上記第一の動作と異なる点は、重ね書きフラグ４０９が「重ね書き可能」（ＯＮ）に設定されている場合のみ、ファイルデータブロック４０２に対してデータの重ね書きを行い、重ね書きフラグ４０９が「重ね書き不可」（ＯＦＦ）に設定されている場合には、ファイルデータブロック４０２に対してデータの重ね書きを行わないことである。
【０２８０】
図４５は、この第二の動作におけるデータ書き込み部の動作を説明するフローチャートである。
尚、ファイル作成時には、先頭位置情報保持部４０３と最終位置保持部４０４は、”０”（ファイルデータブロック４０２の先頭位置）を指す値に設定される。また、ファイル実サイズ情報部４１０は、”０”（サイズが”０”）に設定される。さらに、空き容量下限保持部４０５にファイルデータブロック４０２の空き容量の下限値が設定される。そして、データの重ね書きを行っていることを示す重ね書き動作中フラグは”偽”（ＯＦＦ）に設定される。
【０２８１】
まず、データ書き込み部は、ファイルデータブロック４０２に書き込むべきデータがあるか否かを判別し（Ｓ９２１）、書き込むべきデータがあれば（ＹＥＳ）、次に、重ね書き動作中フラグが”真”（ＯＮ）か否かを判別する（Ｓ９２２）。
【０２８２】
初期状態では、重ね書き動作中フラグは”偽”である（ＮＯ）ので、ファイルデータブロック４０２に１バイトのデータを書き込む（Ｓ９２３）。続いて、ファイル実サイズ情報部４１０の値を”１”増加させ（Ｓ９２４）、次に、最終位置保持部４０４の値を”１”増加させる（Ｓ９２５）。次に、重ね書き可能フラグ４０９が”ＯＮ”となっているか否かを判別し（Ｓ９２６），その判別結果が”ＮＯ”であれば、ステップＳ９２１の処理に戻る。このように、重ね書き可能フラグ４０９が”ＯＦＦ”に設定されていれば、ファイルデータブロック４０２に対してデータの重ね書きは行われない。
【０２８３】
一方、上記ステップＳ９２６で重ね書き可能フラグ４０９が”ＯＮ”に設定されている（ＹＥＳ）と判別すると、次に、空き容量情報部４０６に設定されているファイルシステム４０１の空き容量の値が空き容量下限保持部４０５に保持されている値以上であるか否かを判別する（Ｓ９２７）。そして、ファイルシステムの空き容量の値が空き容量下限保持部４０５に設定されている値以下でない（ＮＯ）と判別すると、ステップＳ９２１の処理に戻る。
【０２８４】
このようにして、ステップＳ９２７でファイルシステム４０１の空き容量の値が空き容量下限保持部４０５に設定されている値以下でないと判別されている間、ステップＳ９２１→Ｓ９２２→Ｓ９２３→Ｓ９２４→Ｓ９２５→Ｓ９２６→Ｓ９２７の一連の処理が繰り返し行われ、ファイルデータブロック４０２にはデータが１バイトづつ書き込まれて行き、また、ファイル実サイズ情報部４１０と最終位置保持部４０４の値が共に”１”づつ増加していく。
【０２８５】
そして、やがて、ステップＳ９２７でファイルシステム４０１の空き容量の値が空き容量下限保持部４０５の値以下である（ＹＥＳ）と判別されると、重ね書き動作中フラグが”真”に設定される（Ｓ９２８）。
【０２８６】
その後、ステップＳ９２１の処理に戻り、次に、ステップＳ９２２で重ね書き動作中フラグ”真”である（ＹＥＳ）と判別され、この後，ステップＳ９２９以降の処理が行われる。このステップＳ９２９以降の処理は、上述した図４２のフローチャートのステップＳ７１６〜Ｓ７２３の処理と同様である。
【０２８７】
次に、本発明の第九実施例を説明する。
図４６は、この第九実施例のシステム構成図である。同図において、図３７に示すブロックと同一のブロックには同じ符号を付与している。
【０２８８】
データ構造情報部５０９は、ファイルデータブロック３０１に書き込まれる各データについてその構造に関する情報を記憶している。データ境界検出部５１０は、ファイルデータブロック３０１に対してデータの重ね書きが開始された際、データ構造情報部５０９に格納されている情報を参照して、重ね書きされたデータの最終位置より後ろに位置する上記データによって重ね書きされなかったデータの先頭位置を見つけ、この先頭位置を先頭位置保持部３０３に設定する。上記以外の動作は、上記第七実施例の動作と同様である。
【０２８９】
この第九実施例の概略動作を、図４６を参照しながら説明する。
図４６に示すファイルデータブロック３０１の状態１においては、サイズが異なる同一のデータ構造を有する５個のデータ１〜データ５が書き込まれている。これらのデータのデータ構造はデータ構造情報部５０９に格納されている。
【０２９０】
この状態１の後で、ファイルデータブロック３０１に対してデータ６が書き込まれたとする。このとき、まだ、ファイルデータブロック３０１のサイズの上限までデータが書き込まれていない。続いて、データ７がファイルデータブロック３０１に対して書き込まれるとき、データの書き込み途中で比較部３０６によって、ファイルデータブロック３０１のサイズの上限までデータの書き込みが行われたことが検出され、重ね書き指示部３０８によってデータ書き込み部にデータ７を重ね書きにより書き込むように指示がなされる。そして、図４６の状態２に示すように、データ７がデータ１の一部に重ね書きされる。
【０２９１】
このとき、最終位置保持部３０４はデータ７の最終位置を指すように設定されるが、先頭位置保持部３０３は、まだ、重ね書きされていないデータ２の先頭を指すように設定される。これによって、重ね書きされたことによって、意味の無くなったデータ１のデータ構造の後半部分がデータブロックを専有するという無駄を無くすことができる。
【０２９２】
図４７は、第九実施例におけるデータ書き込み部の動作を説明するフローチャートである。
データが全く書き込まれていない状態のときには、先頭位置保持部３０３と最終位置保持部３０４は、共に、ファイルデータブロック３０１の先頭位置を指している。また、ファイル実サイズ情報部３０２は”０”（サイズが”０”）に設定される。また、サイズ上限値保持部３０５にファイルデータブロック３０１のサイズの上限値が設定される。さらに、ファイルデータブロック３０１に対してデータの重ね書きを行っていることを示す重ね書き動作中フラグは”偽”に設定される。
【０２９３】
図４７のフローチャートに示す処理は、図４２のフローチャートのステップＳ８１０〜Ｓ８１３の処理を、ステップＳ１００９〜Ｓ１０１０の処理に置き換えた以外は、図４２のフローチャートに示す処理と同様である。
【０２９４】
すなわち、先頭位置保持部３０３と最終位置保持部３０４の値が等しいか否かを判別し（Ｓ１００９），等しいと判別すると（ＹＥＳ）、先頭位置保持部３０３にファイルデータブロック４０２の新しい先頭位置を設定する（Ｓ１０１０）。この新しい先頭位置は、データ境界検出部５１０によって検出される。
【０２９５】
次に、図４８は、図４７のステップＳ１０１０で、データ境界検出部５１０が先頭位置保持部３０３に設定する新たな先頭位置を，見つけ出す処理を説明するフローチャートである。
【０２９６】
尚、図４６に示すように、ファイルデータブロック３０１に書き込まれる各データの先頭には、必ず、データ境界レコード３０１１が書き込まれるものとする。
データ境界検出部５１０は、まず、先頭位置保持部３０３の値に”１”を加えた値を変数Ｘに代入する（Ｓ１０２１）。次に、変数Ｘの値がファイル実サイズ情報部３０２の値以上であるか否かを判別する（Ｓ１０２２）。そして、変数Ｘの値がファイル実サイズ情報部３０２の値以上でない（ＮＯ）と判別した場合にはステップＳ１０２４の処理に進む。
【０２９７】
次に、変数Ｘの指すデータブロックの内容がデータ境界レコードに等しいか否かを判別し（Ｓ１０２４），変数Ｘの指すデータブロックの内容がデータ境界レコードに等しくない（ＮＯ）と判別した場合には、続いて、変数Ｘの値が先頭位置保持部３０３の値に等しいか否かを判別する。そして、変数Ｘの値が先頭位置保持部３０３の値に等しくない（ＮＯ）と判別すると、次に、変数Ｘの値を”１”増加させる（Ｓ１０２８）。
【０２９８】
この後、ステップＳ１０２２の処理に戻り、ステップＳ１０２２→（Ｓ１０２３→）Ｓ１０２４→Ｓ１０２６→Ｓ１０２８の処理が繰り返される。尚、この一連の処理の途中で、ステップＳ１０２４において変数Ｘの値がファイル実サイズ情報部３０２の値以上である（ＹＥＳ）と判別した場合には、変数Ｘに”０”を設定する（Ｓ１０２３）。
【０２９９】
また、さらに、上記一連の処理の途中で、ステップＳ１０２４において変数Ｘの指すデータブロックの内容がデータ境界レコードの値に等しい（ＹＥＳ）と判別した場合には、新先頭位置保持部に変数Ｘの値を設定し、処理を終了する。
【０３００】
さらに、また、ステップＳ１０２２→（Ｓ１０２３→）Ｓ１０２４→Ｓ１０２６→Ｓ１０２８の処理が繰り返され、ステップＳ１０２６で変数Ｘの値が先頭位置保持部３０３の値と等しい（ＹＥＳ）と判別された場合には、新先頭位置保持部に変数Ｘの値に”１”を加えた値を設定し（Ｓ１０２５）、処理を終了する。
これは、データ境界レコードが見つからなかった場合の処理である。
【０３０１】
このようにして、新先頭位置保持部に図４７のフローチャートのステップＳ１０１０で先頭位置保持部３０３に設定される新先頭位置が格納される。
次に、図４９は、ファイルデータブロック３０１からデータを読み出す場合の処理を説明するフローチャートである。
【０３０２】
まず、先頭位置保持部３０３の値を変数Ｘに代入する（Ｓ１１０１）。次に、変数Ｘの示すデータブロックの内容を１バイト読み出す（Ｓ１１０２）。
続いて、変数Ｘの値を”１”増加し（Ｓ１１０３）、次に、変数Ｘの値が最終位置保持部４０４の値に等しいか否かを判別する（Ｓ１１０４）。そして、変数Ｘの値が最終位置保持部３０４の値に等しくない（ＮＯ）と判別した場合には、次に、変数Ｘの値がファイル実サイズ情報部３０２の値以上であるか否かを判別する（Ｓ１１０５）。そして、変数Ｘの値がファイル実サイズ情報部３０２の値以上でない（ＮＯ）と判別した場合には、ステップＳ１００２の処理に戻る。このようにして、ステップＳ１１０４で変数Ｘの値が最終位置保持部４０４の値に等しいと判別されるまでの間、ステップＳ１１０２→Ｓ１１０３→Ｓ１１０５→（Ｓ１１０６）の処理が繰り返される。この一連の処理の途中で、ステップＳ１１０５で、変数Ｘの値がファイル実サイズ情報部３０２の値以上である（ＹＥＳ
）と判別された場合には、変数Ｘに”０”を設定する（Ｓ１１０６）。
【０３０３】
そして、変数Ｘの値が最終位置保持部３０４の値に等しいと判別した場合には、処理を終了する。
以上の動作により、ファイルデータブロック３０１に格納されている全てのデータが、読み出される。
【図面の簡単な説明】
【０３０４】
【図１】本発明の第一の基本構成を示すブロック図である。
【図２】図１の基本構成の第一の実施例を示すブロック図である。
【図３】図２のシステムにおけるファイル作成時のファイル順序管理部の実行するファイル作成処理の動作を説明するフローチャートである。
【図４】図２のシステムにおけるファイル削除時のファイル順序管理部の実行するファイルの削除処理の動作を説明するフローチャートである。
【図５】図３、図４のフローにおける先頭及び最終ポインタの変化の様子を模式的に示した図である。
【図６】本発明の第一の基本構成の第二の実施例を示すブロック図である。
【図７】図６のファイル順序管理部によるファイル作成処理を説明するフローチャート（その１）である。
【図８】図６のファイル順序管理部によるファイル作成処理を説明するフローチャート（その２）である。
【図９】図６のファイル順序管理部による第１のファイル削除処理を説明するフローチャートである。
【図１０】図６のファイル順序管理部による第２のファイル削除処理を説明するフローチャート（その１）である。
【図１１】図６のファイル順序管理部による第２のファイル削除処理を説明するフローチャート（その２）である。
【図１２】図６のファイル順序管理部によるファイル更新処理を説明するフローチャート（その１）である。
【図１３】図６のファイル順序管理部によるファイル更新処理を説明するフローチャート（その２）である。
【図１４】図７〜図１３における各ポインタの状態を模式的に示した図（その１）である。
【図１５】図７〜図１３における各ポインタの状態を模式的に示した図（その２）である。
【図１６】図７〜図１３における各ポインタの状態を模式的に示した図（その３）である。
【図１７】本発明の第一の基本構成の第三の実施例を示すブロック図である。
【図１８】ファイルシステムにおけるディレクトリの構成例を示す図である。
【図１９】ファイルシステムのデータブロック内に作成される図１８のディレクトリ構成に関する情報のデータ構造を示す図である。
【図２０】図１９に示すディレクトリのデータ構造を管理しているファイルシステム内のファイル管理テーブルとファイルシステム管理ブロックの構成図である。
【図２１】ディレクトリエントリ削除部によって実行される、あるファイルを削除する際の処理を説明するフローチャートである。
【図２２】本発明の第一の基本構成の第４の実施例のシステム構成図である。
【図２３】削除候補ファイル問い合わせ部の動作を説明するフローチャートである。
【図２４】削除候補ファイル情報問い合わせフラグの内容の一例を示す図である。
【図２５】削除順序問い合わせ／設定部の動作の一例を説明するフローチャートである。
【図２６】削除順序問い合わせ／設定フラグの内容の一例を示す図である。
【図２７】削除順序情報管理部が削除条件情報格納部に登録するファイルの削除順序情報の一覧を示す図である。
【図２８】削除条件フラグ（ｍｏｄｅ）の一覧を示す図である。
【図２９】削除条件フラグ（ｔｙｐｅ）の一覧を示す図である。
【図３０】削除条件フラグ（ｃｏｎｄ）の一覧を示す図である。
【図３１】削除条件問い合わせ／設定フラグの一例を示す図である。
【図３２】ファイル削除部が削除条件情報格納部に登録されているファイルの削除条件情報を考慮して、ファイルを削除する処理の概略を説明するフローチャート（その１）である。
【図３３】ファイル削除部が削除条件情報格納部に登録されているファイルの削除条件情報を考慮して、ファイルを削除する処理の概略を説明するフローチャート（その２）である。
【図３４】本発明の第二の基本構成のシステム構成を示すブロック図である。
【図３５】ファイルの削除順序情報の優先順位問い合わせ／設定フラグを説明する図である。
【図３６】優先順位を考慮した削除候補ファイル検索処理を示すフローチャートである。
【図３７】本発明の第七の実施例のシステム構成を示すブロック図である。
【図３８】上記第七の実施例の第一の動作を説明する図（その１）である。
【図３９】上記第七の実施例の第一の動作を説明する図（その２）である。
【図４０】上記第七の実施例の第二の動作を説明する図である。
【図４１】データ書き込み部によって実行される第七の実施例の第一の動作の処理を説明するフローチャートである。
【図４２】データ書き込み部によって実行される第七の実施例の第二の動作の処理を説明するフローチャートである。
【図４３】単位解析部によって実行される第七の実施例の第三の動作の処理を説明するフローチャートである。
【図４４】本発明の第８の実施例のシステム構成図である。
【図４５】データ書き込み部の動作を説明するフローチャートである。
【図４６】本発明の第九実施例のシステム構成図である。
【図４７】本発明の第八の実施例におけるデータ書き込み部の動作を説明するフローチャートである。
【図４８】データ境界検出部によって実行される図４４のステップにおいて、先頭位置保持部に設定する新たな先頭位置を見つけだす処理を説明するフローチャートである。
【図４９】ファイルデータブロックからデータを読み出す場合の処理を、説明するフローチャートである。
【符号の説明】
【０３０５】
１１０      ファイルシステム
１１２      ファイル管理テーブル
１３０      ファイルシステム管理機構
１３１ａ    残量把握機構
１３１ｂ    ファイル作成／削除機構
１３２      ファイル削除部
１３３      削除順序情報管理部
１３４      ディレクトリエントリ削除部
１３５      ファイル／ディレクトリ対応情報管理部
１３６      削除順序問い合わせ／設定部
１３７      削除条件判断部
１３８      削除条件問い合わせ／設定部
１３９      削除条件情報管理部
１４０      削除候補ファイル問い合わせ部
１４１      削除順序情報
１４２      ファイル／ディレクトリ対応情報
１４３      削除条件情報
１４５−１  削除順序情報１
１４５−２  削除順序情報２
１４５−３  削除順序情報３
２０１      削除順序情報総合管理部
２０２      優先順位情報管理部
２０３−１  削除順序情報管理部１
２０３−２  削除順序情報管理部２
２０３−３  削除順序情報管理部３
２０５      優先順位情報問い合わせ／設定部
２４４      優先順位情報
３０１      ファイルデータブロック
３０２      ファイル実サイズ情報部
３０３      先頭位置保持部
３０４      最終位置保持部
３０５      サイズ上限保持部
３０６      比較部
３０７      単位解析部
３０８      重ね書き指示部
４０１      ファイルシステム
４０２      ファイルデータブロック
４０３      先頭位置保持部
４０４      最終位置保持部
４０５      空き容量下限保持部
４０６      空き容量情報部
４０７      空き容量判定部
４０８      重ね書き指示部
４０９      重ね書き可能フラグ
４１０      ファイル実サイズ情報部
５０９      データ構造情報部
５１０      データ境界検出部
３０１１    データ境界レコード
【図１】
2006172512.tif 000003
【図２】
2006172512.tif 000004
【図３】
2006172512.tif 000005
【図４】
2006172512.tif 000006
【図５】
2006172512.tif 000007
【図６】
2006172512.tif 000008
【図７】
2006172512.tif 000009
【図８】
2006172512.tif 000010
【図９】
2006172512.tif 000011
【図１０】
2006172512.tif 000012
【図１１】
2006172512.tif 000013
【図１２】
2006172512.tif 000014
【図１３】
2006172512.tif 000015
【図１４】
2006172512.tif 000016
【図１５】
2006172512.tif 000017
【図１６】
2006172512.tif 000018
【図１７】
2006172512.tif 000019
【図１８】
2006172512.tif 000020
【図１９】
2006172512.tif 000021
【図２０】
2006172512.tif 000022
【図２１】
2006172512.tif 000023
【図２２】
2006172512.tif 000024
【図２３】
2006172512.tif 000025
【図２４】
2006172512.tif 000026
【図２５】
2006172512.tif 000027
【図２６】
2006172512.tif 000028
【図２７】
2006172512.tif 000029
【図２８】
2006172512.tif 000030
【図２９】
2006172512.tif 000031
【図３０】
2006172512.tif 000032
【図３１】
2006172512.tif 000033
【図３２】
2006172512.tif 000034
【図３３】
2006172512.tif 000035
【図３４】
2006172512.tif 000036
【図３５】
2006172512.tif 000037
【図３６】
2006172512.tif 000038
【図３７】
2006172512.tif 000039
【図３８】
2006172512.tif 000040
【図３９】
2006172512.tif 000041
【図４０】
2006172512.tif 000042
【図４１】
2006172512.tif 000043
【図４２】
2006172512.tif 000044
【図４３】
2006172512.tif 000045
【図４４】
2006172512.tif 000046
【図４５】
2006172512.tif 000047
【図４６】
2006172512.tif 000048
【図４７】
2006172512.tif 000049
【図４８】
2006172512.tif 000050
【図４９】
2006172512.tif 000051