(57)【特許請求の範囲】
【請求項１】
空き物理ディスクブロックを管理してファイルに割り当てるファイルのディスクブロック制御方式において、
ファイルの１論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイルのために用意され、規定のエントリー数から構成されて、連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する拡張管理手段と、
前記拡張管理手段の管理対象とならない空き物理ディスクブロックのブロック番号を管理する第１の管理手段と、
前記第１の管理手段の管理する連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する第２の管理手段と、
拡張ファイルについての空き物理ディスクブロックの獲得要求時に、前記第２の管理手段及び前記拡張管理手段の管理データに従って、その空き物理ディスクブロックの獲得要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定して、その獲得要求数分の連続空き物理ディスクブロックをファイルに割り当てる割当手段とを備えることを、
特徴とするファイルのディスクブロック制御方式。
【請求項２】
前記割当手段は、前記獲得要求数が規定の閾値より小さい場合には、前記第２の管理手段を優先しつつ、前記第２の管理手段及び前記拡張管理手段の管理データに従って、前記獲得要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定し、前記獲得要求数が規定の閾値より大きい場合には、前記拡張管理手段の管理データに従って、前記獲得要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定することを、
特徴とする請求項１記載のファイルのディスクブロック制御方式。
【請求項３】
前記第１の管理手段の管理データに従って空き物理ディスクブロックが特定されてファイルに割り当てられる場合に、前記第２の管理手段の管理データを変更し、前記第２の管理手段の管理データに従って空き物理ディスクブロックが特定されてファイルに割り当てられる場合に、前記第１の管理手段の管理データを変更する変更手段を備えることを、
特徴とする請求項１又は２記載のファイルのディスクブロック制御方式。
【請求項４】
拡張ファイルについての論理ブロックの解放処理時に、前記拡張管理手段がその論理ブロックの解放処理前に管理している連続ブロック数よりも連続ブロック数の大きい連続空き物理ディスクブロックを管理することになるように、前記拡張管理手段の管理データを更新する更新手段を備えることを、
特徴とする請求項１ないし３のいずれか１項に記載のファイルのディスクブロック制御方式。
【請求項５】
前記更新手段は、規定の閾値より大きなサイズを持つ論理ブロックを登録対象として、前記拡張管理手段に空きがある場合には、その論理ブロックの持つ連続空き物理ディスクブロックを前記拡張管理手段へ登録するとともに、空きがない場合にあって、その連続空き物理ディスクブロックの方が登録のものより大きな連続ブロック数を持つ場合には、その連続空き物理ディスクブロックを登録されている小さな連続ブロック数を持つものに代えて前記拡張管理手段へ登録することを、
特徴とする請求項４記載のファイルのディスクブロック制御方式。
【請求項６】
前記拡張管理手段の管理データが変更される場合に、その管理データを連続ブロック数順にソートするソート手段を備えることを、
特徴とする請求項１ないし５のいずれか１項に記載のファイルのディスクブロック制御方式。
【請求項７】
前記ソート手段は、前記第２の管理手段が備えられる場合にあって、前記第２の管理手段の管理データが変更される場合には、その管理データを連続ブロック数順にソートすることを、
特徴とする請求項６記載のファイルのディスクブロック制御方式。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、空き物理ディスクブロックを管理してファイルに割り当てるファイルのディスクブロック制御方式に関し、特に、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を削減するファイルのディスクブロック制御方式に関する。
【０００２】
ファイルキャッシュを使ってファイルアクセスを高速化する方法が採られているが、大きなファイルをアクセスする場合には、ファイルキャッシュは性能に殆ど影響を与えず、ディスクのハード転送能力が性能を左右することになる。これから、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を削減する構成の構築が叫ばれている。
【０００３】
【従来の技術】
ＵＮＩＸのファイルシステムを例にして説明するならば、従来のファイルシステムでは、ファイルの１論理ブロックに対応させる物理ディスクブロックの大きさを一意のものとし、ディスクの持つ空き物理ディスクブロックのブロック番号をリストで管理する構成を採って、ファイル生成時に、空き物理ディスクブロックが要求されるときには、このリストの先頭から順番に空き物理ディスクブロックを特定してファイルに割り当てていくという構成を採っていた。
【０００４】
すなわち、図１９に示すような空き物理ディスクブロックのブロック番号を管理する空き物理ディスクブロックリストを用意して、ファイル生成時に、空き物理ディスクブロックが要求されるときには、この空き物理ディスクブロックリストの先頭から順番に空き物理ディスクブロックを特定してファイルに割り当てていくという構成を採っていたのである。ここで、この空き物理ディスクブロックリストの先頭リスト部分は主記憶上に展開され、残りのリスト部分はディスク上に展開されることになる。
【０００５】
【発明が解決しようとする課題】
しかしながら、このような従来技術に従っていると、複数の空き物理ディスクブロックをファイルに割り当てていくときに、飛び飛びの空き物理ディスクブロックを割り当ててしまうことになることから、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を増大させてしまうという問題点がある。
【０００６】
この問題点を解決するためには、図２０に示すように、各ファイル毎に、ファイルの１論理ブロックを任意の連続した物理ディスクブロックに対応させる構成を採る方法が考えられる。
【０００７】
しかるに、従来の空き物理ディスクブロックリストを用いていたのでは、これを実現することはできない。
本発明はかかる事情に鑑みてなされたものであって、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を削減する新たなファイルのディスクブロック制御方式の提供を目的とする。
【０００８】
【課題を解決するための手段】
図１に本発明の原理構成を図示する。
図中、１は本発明を具備するデータ処理装置、２はデータ処理装置１の備えるディスクである。
【０００９】
このデータ処理装置１は、ファイルを作成するファイル作成手段１０と、ファイル作成手段１０の実行するファイル作成処理を支援するファイル作成支援手段１１とを備える。
【００１３】
このファイル作成支援手段１１は、ファイル作成支援処理を実行するために、拡張管理手段１２と、第１の管理手段１３と、割当手段１４と、更新手段１５と、ソート手段１６と、第２の管理手段１７とを備え、更に、変更手段１８を備えることがある。
【００１４】
この拡張管理手段１２は、ファイルの１論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイル用に用意され、規定のエントリー数から構成されて、ディスク２の持つ連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する。第１の管理手段１３は、ファイルの１論理ブロックのサイズが物理ディスクブロックのサイズと一致する通常ファイル用に用意され、拡張管理手段１２の管理対象とならない空き物理ディスクブロックのブロック番号を管理する。割当手段１４は、ファイル作成手段１０の発行する空き物理ディスクブロックの獲得要求に応答して、空き物理ディスクブロックを獲得してファイルに割り当てる。
【００１５】
更新手段１５は、拡張ファイルについての論理ブロックの解放処理時に、拡張管理手段１２が連続ブロック数の大きい連続空き物理ディスクブロックを管理することになるようにと、拡張管理手段１２の管理データを更新する。ソート手段１６は、拡張管理手段１２の管理データが変更される場合に、その管理データを連続ブロック数順にソートし、更に、第２の管理手段１７が備えられる場合にあって、第２の管理手段１７の管理データが変更される場合には、その管理データを連続ブロック数順にソートする。
【００１６】
第２の管理手段１７は、第１の管理手段１３の管理する連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する。変更手段１８は、第１の管理手段１３の管理データに従って空き物理ディスクブロックが特定されてファイルに割り当てられる場合に、第２の管理手段１７の管理データを変更し、第２の管理手段１７の管理データに従って空き物理ディスクブロックが特定されてファイルに割り当てられる場合に、第１の管理手段１３の管理データを変更する。
【００２１】
【作用】
本発明では、ファイルの１論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイルのために用意され、規定のエントリー数から構成されて、連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する拡張管理手段１２を備える構成を採る。
【００２３】
この構成を採るときにあって、割当手段１４は、ファイル作成手段１０から拡張ファイルについての空き物理ディスクブロックの割当要求があると、割当要求数が規定の閾値より小さい場合には、第２の管理手段１７を優先しつつ、第２の管理手段１７及び拡張管理手段１２の管理データに従って、割当要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定して、それが持つ割当要求数分の連続空き物理ディスクブロックをファイルに割り当て、割当要求数が規定の閾値より大きい場合には、拡張管理手段１２の管理データに従って、割当要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定して、それが持つ割当要求数分の連続空き物理ディスクブロックをファイルに割り当てる。
【００２４】
一方、更新手段１５は、拡張ファイルについての論理ブロックの解放処理時に、規定の閾値より大きなサイズを持つ論理ブロックを登録対象として、拡張管理手段１２に空きがある場合には、その論理ブロックの持つ連続空き物理ディスクブロックを拡張管理手段１２へ登録するとともに、空きがない場合にあって、その連続空き物理ディスクブロックの方が登録のものより大きな連続ブロック数を持つ場合には、その連続空き物理ディスクブロックを登録されている小さな連続ブロック数を持つものに代えて拡張管理手段１２へ登録することで、拡張管理手段１２が連続ブロック数の大きいものを管理するよう処理する。
【００２５】
このようにして、本発明によれば、ファイルの１論理ブロックを任意の連続した物理ディスクブロックに対応させる構成を採ることが可能になり、これにより、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を大幅に削減できるようになる。
【００２６】
【実施例】
以下、実施例に従って本発明を詳細に説明する。
図２に、本発明を具備するデータ処理装置１の一実施例を図示する。
【００２７】
図中、２０はユーザプログラムであって、ファイルを作成するもの、２１はファイルシステムであって、ユーザプログラム２０の実行するファイル作成処理を支援するもの、２２はリスト展開域であって、ディスク２の持つ空き物理ディスクブロックの管理領域となるものである。
【００２８】
図３に、リスト展開域２２に展開される空き物理ディスクブロックの管理情報の一実施例を図示する。
この実施例では、リスト展開域２２は、例えば１００エントリーから構成され、ディスク２の持つ連続空き物理ディスクブロックの先頭ブロック番号及び連続ブロック数を管理する拡張ファイル割当用リスト３０と、拡張ファイル割当用リスト３０の管理対象とならない空き物理ディスクブロックのブロック番号を管理する通常ファイル割当用リスト３１とを展開することで、ディスク２の持つ空き物理ディスクブロックを管理する構成を採っている。
【００２９】
ここで、通常ファイル割当用リスト３１は、従来の空き物理ディスクブロックの管理リストに相当するものであり、先頭リスト部分は主記憶上に展開され、残りのリスト部分はディスク２上に展開されることになる。また、拡張ファイル割当用リスト３０が、エントリー数を限定することで、ディスク２の持つ全ての連続空き物理ディスクブロックを管理対象としないのは、連続ブロック数の余り少ないものについては、通常ファイル割当用リスト３１を使ってファイルに割り当てる空き物理ディスクブロックを特定しても実用上問題ないからである。
【００３０】
図４及び図５に、このような管理構成を採るときに実行するファイルシステム２１の処理フローの一実施例を図示する。ここで、図４は、ファイルシステム２１が空き物理ディスクブロックの割り当て時に実行する処理フローの一実施例であり、図５は、ファイルシステム２１が物理ディスクブロックの解放時に実行する処理フローの一実施例である。
【００３１】
次に、これらの処理フローに従って、本発明を詳細に説明する。
ファイルシステム２１は、ユーザプログラム２０からファイルに対しての空き物理ディスクブロックの割当要求があると、図４の処理フローに示すように、先ず最初に、ステップ１で、作成対象のファイルが拡張ファイルか通常ファイルのいずれであるのかを判断する。ここで、拡張ファイルは、ファイルの１論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となるファイルとして定義され、通常ファイルは、ファイルの１論理ブロックのサイズが物理ディスクブロックのサイズと一致するファイルとして定義されるものであって、作成対象のファイルがどちらのファイルであるのかは、例えば、ユーザプログラム２０が宣言することで指定されることになる。
【００３２】
このステップ１で、作成対象のファイルが通常ファイルであることを判断すると、ステップ２に進んで、通常ファイル割当用リスト３１の先頭エントリーに管理される空き物理ディスクブロックを特定して、それをファイルに割り当てて処理を終了する。すなわち、従来技術と同じ方法に従って、空き物理ディスクブロックを特定して割り当てていくのである。
【００３３】
一方、ステップ１で、作成対象のファイルが拡張ファイルであることを判断すると、ステップ３に進んで、拡張ファイル割当用リスト３０の先頭エントリーを参照し、続くステップ４で、この参照したエントリーの連続ブロック数が要求ブロック数よりも小さいか否かを判断して、小さいことを判断するときには、ステップ５に進んで、拡張ファイル割当用リスト３０の次エントリーを参照してからステップ４に戻っていく。
【００３４】
このようにしてステップ４で、要求ブロック数よりも大きな連続ブロック数を持つ拡張ファイル割当用リスト３０のエントリーを特定すると、ステップ６に進んで、そのエントリーの指す連続空き物理ディスクブロックの先頭から要求ブロック数分の連続空き物理ディスクブロックを特定して、それをファイルに割り当て、続くステップ７で、そのエントリーの管理する先頭ブロック番号及び連続ブロック数を更新し、続くステップ８で、拡張ファイル割当用リスト３０のエントリーデータを連続ブロック数順にソートして処理を終了する。
【００３５】
このように、ファイルシステム２１は、ファイルの１論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイルについては、図４の処理フローに従って、拡張ファイル割当用リスト３０を使って連続した空き物理ディスクブロックを割り当てていくのである。
【００３６】
また、ファイルシステム２１は、ユーザプログラム２０からファイルの持つ物理ディスクブロックの解放要求があると、図５の処理フローに示すように、先ず最初に、ステップ１で、物理ディスクブロックを解放するファイルが拡張ファイルか通常ファイルのいずれであるのかを判断し、通常ファイルであることを判断すると、ステップ２に進んで、解放される物理ディスクブロックを通常ファイル割当用リスト３１に書き込んで処理を終了する。
【００３７】
一方、ステップ１で、物理ディスクブロックを解放するファイルが拡張ファイルであることを判断すると、ステップ３に進んで、その拡張ファイルの論理ブロックサイズが規定の閾値以下であるのか否かを判断して、閾値以下であることを判断すると、ステップ４に進んで、解放される連続物理ディスクブロックを通常ファイル割当用リスト３１に書き込んで処理を終了する。
【００３８】
一方、ステップ３で、物理ディスクブロックを解放する拡張ファイルの論理ブロックサイズが閾値以上であることを判断すると、ステップ５に進んで、拡張ファイル割当用リスト３０に空きがあるか否かを判断して、空きのあることを判断すると、ステップ６に進んで、解放される連続物理ディスクブロックを拡張ファイル割当用リスト３０に書き込み、続くステップ７で、拡張ファイル割当用リスト３０のエントリーデータを連続ブロック数順にソートして処理を終了する。
【００３９】
一方、ステップ５で、拡張ファイル割当用リスト３０に空きのないことを判断すると、ステップ８に進んで、解放される連続物理ディスクブロックの連続ブロック数と、拡張ファイル割当用リスト３０に登録される連続ブロック数とを比較して、解放される連続物理ディスクブロックの連続ブロック数の方が小さいときには、それを通常ファイル割当用リスト３０に書き込み、大きいときには、それを小さい方の拡張ファイル割当用リスト３０のエントリーデータに代えて拡張ファイル割当用リスト３０に書き込むとともに、その書き換えられる拡張ファイル割当用リスト３０のエントリーデータを通常ファイル割当用リスト３１に書き込む。そして、続くステップ９で、拡張ファイル割当用リスト３０のエントリーデータを連続ブロック数順にソートして処理を終了する。
【００４０】
このように、ファイルシステム２１は、拡張ファイルの物理ディスクブロックが解放されるときには、図５の処理フローに従って、拡張ファイル割当用リスト３０が連続ブロック数の大きいものを管理することになるようにと処理していくのである。
【００４１】
図６に、リスト展開域２２に展開される空き物理ディスクブロックの管理情報の他の実施例を図示する。
この実施例では、リスト展開域２２は、図３で説明した拡張ファイル割当用リスト３０と、拡張ファイル割当用リスト３０の管理対象とならない空き物理ディスクブロックのブロック番号を、連続するものについてはチェーニングしつつ管理する第１の通常ファイル割当用リスト３２と、第１の通常ファイル割当用リスト３２の管理する連続空き物理ディスクブロックの先頭ブロック番号及び連続ブロック数を管理する第２の通常ファイル割当用リスト３３とを展開することで、ディスク２の持つ空き物理ディスクブロックを管理する構成を採っている。
【００４２】
この第１の通常ファイル割当用リスト３２は、例えば、図７に示すように、３２ビット構成の下位２４ビットで空き物理ディスクブロックのブロック番号を管理するとともに、ビット２４で、次エントリーのブロック番号と連続しているか否かを管理することで、拡張ファイル割当用リスト３０の管理対象とならない空き物理ディスクブロックのブロック番号を、連続するものについてはチェーニングしつつ管理する構成を採るものであり、更に、最終エントリーのＡ部分で、第２の通常ファイル割当用リスト３３をセーブするものである。
【００４３】
図８ないし図１１に、このような管理構成を採るときに実行するファイルシステム２１の処理フローの一実施例を図示する。ここで、図８ないし図１０は、ファイルシステム２１が空き物理ディスクブロックの割り当て時に実行する処理フローの一実施例であり、図１１は、ファイルシステム２１が物理ディスクブロックの解放時に実行する処理フローの一実施例である。
【００４４】
次に、これらの処理フローに従って、本発明を詳細に説明する。
ファイルシステム２１は、ユーザプログラム２０からファイルに対しての空き物理ディスクブロックの割当要求があると、図８ないし図１０の処理フローに示すように、先ず最初に、図８の処理フローのステップ１で、作成対象のファイルが拡張ファイルか通常ファイルのいずれであるのかを判断し、作成対象のファイルが通常ファイルであることを判断すると、図９の処理フローのステップ２に進んで、第１の通常ファイル割当用リスト３２の先頭エントリーに管理される空き物理ディスクブロックを特定して、それをファイルに割り当てる。
【００４５】
続いて、ステップ３で、割り当てたエントリーのビット２４がチェーニングを表示しているか否かを判断して、非チェーニング表示を判断するときには、ステプ４に進んでそのまま処理を終了し、チェーニング表示を判断するときには、ステップ５に進んで、空き物理ディスクブロックを割り当てたことで変更されることになる第２の通常ファイル割当用リスト３３のエントリーデータを更新し、続くステップ６で、第２の通常ファイル割当用リスト３３のエントリーデータを連続ブロック数順にソートして処理を終了する。
【００４６】
一方、図８の処理フローのステップ１で、作成対象のファイルが拡張ファイルであることを判断すると、ステップ７に進んで、要求ブロック数が規定の閾値以下であるのか否かを判断して、閾値以下であることを判断すると、図１０の処理フローのステップ８に進んで、第２の通常ファイル割当用リスト３３の先頭エントリーを参照する。
【００４７】
続いて、ステップ９で、この参照したエントリーの連続ブロック数が要求ブロック数よりも小さいか否かを判断して、小さいことを判断するときには、ステップ１０に進んで、参照したエントリーが最終エントリーであるのか否かを判断し、最終エントリーであることを判断するときには、後述する図８の処理フローのステップ１６へ進み、最終エントリーでないことを判断するときは、ステップ１１に進んで、第２の通常ファイル割当用リスト３３の次エントリーを参照してからステップ９に戻っていく。
【００４８】
このようにしてステップ９で、要求ブロック数よりも大きな連続ブロック数を持つ第２の通常ファイル割当用リスト３３のエントリーを特定すると、ステップ１２に進んで、そのエントリーの指す連続空き物理ディスクブロックの先頭から要求ブロック数分の連続空き物理ディスクブロックを特定して、それをファイルに割り当て、続くステップ１３で、そのエントリーの管理する先頭ブロック番号及び連続ブロック数を更新し、続くステップ１４で、第２の通常ファイル割当用リスト３３のエントリーデータを連続ブロック数順にソートし、続くステップ１５で、割り当てた空き物理ディスクブロックを第１の通常ファイル割当用リスト３２から削除して処理を終了する。
【００４９】
一方、図８の処理フローのステップ７で、要求ブロック数が規定の閾値以上であることを判断するときと、閾値以下であっても、図１０の処理フローのステップ１０で、第２の通常ファイル割当用リスト３３に要求ブロック数より大きい連続ブロック数が登録されていないことを判断するときには、図８の処理フローのステップ１６に進んで、拡張ファイル割当用リスト３０の先頭エントリーを参照し、続くステップ１７で、この参照したエントリーの連続ブロック数が要求ブロック数よりも小さいか否かを判断して、小さいことを判断するときには、ステップ１８に進んで、拡張ファイル割当用リスト３０の次エントリーを参照してからステップ１７に戻っていく。
【００５０】
このようにしてステップ１７で、要求ブロック数よりも大きな連続ブロック数を持つ拡張ファイル割当用リスト３０のエントリーを特定すると、ステップ１９に進んで、そのエントリーの指す連続空き物理ディスクブロックの先頭から要求ブロック数分の連続空き物理ディスクブロックを特定して、それをファイルに割り当て、続くステップ２０で、そのエントリーの管理する先頭ブロック番号及び連続ブロック数を更新し、続くステップ２１で、拡張ファイル割当用リスト３０のエントリーデータを連続ブロック数順にソートして処理を終了する。
【００５１】
このように、ファイルシステム２１は、ファイルの１論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイルについては、図８ないし図１０の処理フローに従って、要求ブロック数が規定の閾値より小さいときには、第２の通常ファイル割当用リスト３３を優先しつつ、第２の通常ファイル割当用リスト３３及び拡張ファイル割当用リスト３０を使って連続した空き物理ディスクブロックを割り当てていくとともに、要求ブロック数が規定の閾値より大きいときには、拡張ファイル割当用リスト３０を使って連続した空き物理ディスクブロックを割り当てていくのである。
【００５２】
また、ファイルシステム２１は、ユーザプログラム２０からファイルの物理ディスクブロックの解放要求があると、図１１の処理フローに示すように、先ず最初に、ステップ１で、物理ディスクブロックを解放するファイルが拡張ファイルか通常ファイルのいずれであるのかを判断し、通常ファイルであることを判断すると、ステップ２に進んで、解放される物理ディスクブロックを第１の通常ファイル割当用リスト３２に書き込んで処理を終了する。
【００５３】
一方、ステップ１で、物理ディスクブロックを解放するファイルが拡張ファイルであることを判断すると、ステップ３に進んで、その拡張ファイルの論理ブロックサイズが規定の閾値以下であるのか否かを判断して、閾値以下であることを判断すると、ステップ４に進んで、解放される連続物理ディスクブロックを第１及び第２の通常ファイル割当用リスト３２，３３に書き込み、続くステップ５で、第２の通常ファイル割当用リスト３３のエントリーデータを連続ブロック数順にソートして処理を終了する。
【００５４】
一方、ステップ３で、物理ディスクブロックを解放する拡張ファイルの論理ブロックサイズが閾値以上であることを判断すると、ステップ６に進んで、拡張ファイル割当用リスト３０に空きがあるか否かを判断して、空きのあることを判断すると、ステップ７に進んで、解放される連続物理ディスクブロックを拡張ファイル割当用リスト３０に書き込み、続くステップ８で、拡張ファイル割当用リスト３０のエントリーデータを連続ブロック数順にソートして処理を終了する。
【００５５】
一方、ステップ６で、拡張ファイル割当用リスト３０に空きのないことを判断すると、ステップ９に進んで、解放される連続物理ディスクブロックの連続ブロック数と、拡張ファイル割当用リスト３０に登録される連続ブロック数とを比較して、解放される連続物理ディスクブロックの連続ブロック数の方が小さいときには、それを第１及び第２の通常ファイル割当用リスト３２，３３に書き込み、大きいときには、それを小さい方の拡張ファイル割当用リスト３０のエントリーデータに代えて拡張ファイル割当用リスト３０に書き込むとともに、その書き換えられる拡張ファイル割当用リスト３０のエントリーデータを第１及び第２の通常ファイル割当用リスト３２，３３に書き込む。そして、続くステップ１０で、拡張ファイル割当用リスト３０のエントリーデータを連続ブロック数順にソートして処理を終了する。
【００５６】
このように、ファイルシステム２１は、拡張ファイルの物理ディスクブロックが解放されるときには、図１１の処理フローに従って、拡張ファイル割当用リスト３０が連続ブロック数の大きいものを管理することになるようにと処理していくのである。
【００５７】
このようにして、ファイルの１論理ブロックを任意の連続した物理ディスクブロックに対応させる構成を採ることが可能になり、これにより、ファイルアクセスの際のディスク２のシーク回数及び回転待ち時間を大幅に削減できるようになる。
【００５８】
以上に説明した実施例では、拡張ファイルに割り当てる空き物理ディスクブロックを展開する領域と、通常ファイルに割り当てる空き物理ディスクブロックを展開する領域とが、ディスク２上でどのように配置されるのかということについては特に言及しなかったが、この２つの領域は、ファイルアクセスの際のディスク２のシーク回数及び回転待ち時間の削減効果を図るために、図１２に示すように、ディスク２上の異なる領域に割り当てられることが好ましい。
【００５９】
この構成を採るときにあって、通常ファイルに割り当てる空き物理ディスクブロックを展開する領域に、空き物理ディスクブロックが無くなることが起こる。このようなときには、ファイルシステム２１は、図１３に示すように、拡張ファイル割当用リスト３０から規定の数の空き物理ディスクブロックを獲得して、それを通常ファイルに割り当てていく構成を採る。
【００６０】
すなわち、ファイルシステム２１は、ユーザプログラム２０からファイルに対しての空き物理ディスクブロックの割当要求があると、図１４の処理フローに示すように、先ず最初に、ステップ１で、作成対象のファイルが拡張ファイルであるのか通常ファイルであるのかを判断して、拡張ファイルであることを判断するときには、ステップ２に進んで、上述した拡張ファイル用のアルゴリズムに従ってファイルに空き物理ディスクブロックを割り当てる。
【００６１】
一方、ステップ１で、作成対象のファイルが通常ファイルであることを判断するときには、ステップ３に進んで、通常ファイル割当用リスト３１が空き物理ディスクブロックを管理しているのか否かを判断して、空き物理ディスクブロックを管理していることを判断するときには、ステップ４に進んで、上述した通常ファイル用のアルゴリズムに従ってファイルに空き物理ディスクブロックを割り当てる。
【００６２】
一方、ステップ３で、通常ファイル割当用リスト３１が空き物理ディスクブロックを管理していないことを判断するときには、ステップ５に進んで、拡張ファイル割当用リスト３０から規定の数の空き物理ディスクブロックを獲得し、続くステップ６で、拡張ファイル割当用リスト３０のエントリーデータを連続ブロック数順にソートする。続いて、ステップ７で、この獲得した空き物理ディスクブロックを用いて通常ファイル割当用リスト３１を作成してから、ステップ４に進んで、上述した通常ファイル用のアルゴリズムに従ってファイルに空き物理ディスクブロックを割り当てていくのである。
【００６３】
また、以上に説明した実施例では、空き物理ディスクブロックをまとめていくコンデンス処理について言及しなかったが、連続空き物理ディスクブロックの展開位置が飛び飛びになると、ディスク２のシーク回数及び回転待ち時間が増加することから、このコンデンス処理を実行していく構成を採ることが好ましい。
【００６４】
図１５に、このコンデンス処理の処理フローの一例を図示する。
ファイルシステム２１は、この処理フローに従って、図１６に示すように、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域（図中のα，β）を一体的なものと扱いつつ、連続空き物理ディスクブロックをまとめていくコンデンス処理を実行することになる。
【００６５】
すなわち、ファイルシステム２１は、例えば規定周期に到達することでコンデス処理要求があるときには、この図１５の処理フローに示すように、先ず最初に、ステップ１で、拡張ファイル割当用リスト３０とファイルのｉ-node とを使って、拡張ファイルに割り当てた物理ディスクブロック情報と、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域情報とを管理するコンデンス表を作成する。
【００６６】
図１７（ａ）にこのコンデンス表を図示する。すなわち、拡張ファイルに割り当てた連続物理ディスクブロックのブロック番号と、新たに設定されるその連続物理ディスクブロックのブロック番号のエントリーと、その連続物理ディスクブロックのベクトル長と、その連続物理ディスクブロックのｉ-node 番号とを管理するとともに、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域のブロック番号と、新たに設定されるそのブロック領域のブロック番号のエントリーと、そのブロック領域のベクトル長と、そのブロック領域のｉ-node 番号とを管理する図１７（ａ）に示すようなコンデンス表を作成するのである。ここで、ブロック番号は、ディスク２上の展開位置を示すものであり番号の小さい順に並べられる。また、ｉ-node 番号が“−１”となる管理データは、拡張ファイルに割り当てた連続物理ディスクブロックではなくて、図１７（ｂ）に示すように、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域を示している。
ステップ１でコンデンス表を作成すると、続いて、ステップ２で、変数ｎに“１”をセットし、続くステップ３で、変数ｎの値の指すコンデンス表の管理域に登録されているブロック番号を特定して、そのブロック番号の移動先となる新しいブロック番号を求める。すなわち、１つ前に処理したブロックの最終ブロック番号に続くブロック番号として定義される新しいブロック番号を求めるのである。
【００６７】
続いて、ステップ４で、移動前のブロック番号と移動先のブロック番号とが一致するのか否かを判断して、一致しないことを判断するときには、ステップ５に進んで、移動先のブロック番号の領域に、移動元のブロック番号の指す領域に展開されるデータを複写し、続くステップ６で、変数ｎの値を１つインクリメントする。一方、ステップ４で、一致を判断するときは、ステップ５の処理を省略して、直ちにステップ６に進んで、変数ｎの値を１つインクリメントする。
【００６８】
続いて、ステップ７で、コンデンス表の全登録データの処理が終了したかの否かを判断して、未終了を判断するときには、ステップ３に戻っていき、終了を判断するときは、ステップ８に進んで、コンデンス表に登録されているｉ-node 番号の持つブロックアドレスを新しいブロック番号に更新して処理を終了する。
【００６９】
このようにして、ファイルシステム２１は、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域を一体的なものと扱いつつ、連続空き物理ディスクブロックをまとめていくコンデンス処理を実行することになる。このコンデンス処理に従って、ディスク２のシーク回数及び回転待ち時間を大きく削減できるようなる。
【００７０】
このコンデンス処理では、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域（図１６中のα，β）についても、コンデンス処理の移動対象（実際には、この内のβのブロック領域）とする構成を採ったが、このブロック領域には、空き物理ディスクブロックと使用中の物理ディスクブロックとが混在していることから、このブロック領域に対して、ｉ-node 番号の持つブロックアドレスを新しいブロック番号に更新していく構成を採っていると、負荷が大きいという問題点がある。これから、この負荷が無視できない場合には、図１８に示すように、このブロック領域をコンデンス処理の移動対象としない構成を採ることになる。
【００７１】
図示実施例について説明したが、本発明はこれに限定されるものではない。例えば、実施例では、拡張ファイル割当用リスト３０が連続空き物理ディスクブロックの先頭ブロック番号を管理する構成を開示したが、本発明はこれに限られるものではなく、最終ブロック番号を管理する構成を採ってもよいのである。
【００７２】
また、実施例では、拡張ファイル割当用リスト３０／第２の通常ファイル割当用リスト３３のエントリーデータが変更されるときに、そのエントリーデータを連続ブロック数順にソートする構成を開示したが、このソート機能を持つことで連続空き物理ディスクブロックの割当処理の高速が期待できるものの、本発明はこれを絶対具備しなければならないということではない。
【００７４】
【発明の効果】
以上説明したように、本発明によれば、ファイルの１論理ブロックを任意の連続した物理ディスクブロックに対応させる構成を採ることが可能になり、これにより、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を大幅に削減できるようになる。
【図面の簡単な説明】
【図１】  本発明の原理構成図である。
【図２】  本発明の一実施例である。
【図３】  リスト展開域に展開されるリストの一実施例である。
【図４】  ファイルシステムの実行する処理フローの一実施例である。
【図５】  ファイルシステムの実行する処理フローの一実施例である。
【図６】  リスト展開域に展開されるリストの一実施例である。
【図７】  第１の通常ファイル割当用リストの管理データの一実施例である。
【図８】  ファイルシステムの実行する処理フローの一実施例である。
【図９】  ファイルシステムの実行する処理フローの一実施例である。
【図１０】  ファイルシステムの実行する処理フローの一実施例である。
【図１１】  ファイルシステムの実行する処理フローの一実施例である。
【図１２】  ディスクのファイルシステムデータ領域の説明図である。
【図１３】  通常ファイル用領域の追加処理の説明図である。
【図１４】  ファイルシステムの実行する処理フローの一例である。
【図１５】  ファイルシステムの実行する処理フローの一例である。
【図１６】  コンデンス処理の説明図である。
【図１７】  コンデンス表の説明図である。
【図１８】  コンデンス処理の説明図である。
【図１９】  従来技術の説明図である。
【図２０】  ファイルのブロック構成の説明図である。
【符号の説明】
１    データ処理装置
２    ディスク
１０  ファイル作成手段
１１  ファイル作成支援手段
１２  拡張管理手段
１３  第１の管理手段
１４  割当手段
１５  更新手段
１６  ソート手段
１７  第２の管理手段
１８  変更手段
【図１】
0003745398.tif 000002
【図２】
0003745398.tif 000003
【図３】
0003745398.tif 000004
【図４】
0003745398.tif 000005
【図５】
0003745398.tif 000006
【図６】
0003745398.tif 000007
【図７】
0003745398.tif 000008
【図８】
0003745398.tif 000009
【図９】
0003745398.tif 000010
【図１０】
0003745398.tif 000011
【図１１】
0003745398.tif 000012
【図１２】
0003745398.tif 000013
【図１３】
0003745398.tif 000014
【図１４】
0003745398.tif 000015
【図１５】
0003745398.tif 000016
【図１６】
0003745398.tif 000017
【図１７】
0003745398.tif 000018
【図１８】
0003745398.tif 000019
【図１９】
0003745398.tif 000020
【図２０】
0003745398.tif 000021