JP3745398B2 - ファイルのディスクブロック制御方式 - Google Patents
ファイルのディスクブロック制御方式 Download PDFInfo
- Publication number
- JP3745398B2 JP3745398B2 JP32438294A JP32438294A JP3745398B2 JP 3745398 B2 JP3745398 B2 JP 3745398B2 JP 32438294 A JP32438294 A JP 32438294A JP 32438294 A JP32438294 A JP 32438294A JP 3745398 B2 JP3745398 B2 JP 3745398B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- blocks
- block
- physical disk
- free physical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【産業上の利用分野】
本発明は、空き物理ディスクブロックを管理してファイルに割り当てるファイルのディスクブロック制御方式に関し、特に、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を削減するファイルのディスクブロック制御方式に関する。
【0002】
ファイルキャッシュを使ってファイルアクセスを高速化する方法が採られているが、大きなファイルをアクセスする場合には、ファイルキャッシュは性能に殆ど影響を与えず、ディスクのハード転送能力が性能を左右することになる。これから、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を削減する構成の構築が叫ばれている。
【0003】
【従来の技術】
UNIXのファイルシステムを例にして説明するならば、従来のファイルシステムでは、ファイルの1論理ブロックに対応させる物理ディスクブロックの大きさを一意のものとし、ディスクの持つ空き物理ディスクブロックのブロック番号をリストで管理する構成を採って、ファイル生成時に、空き物理ディスクブロックが要求されるときには、このリストの先頭から順番に空き物理ディスクブロックを特定してファイルに割り当てていくという構成を採っていた。
【0004】
すなわち、図19に示すような空き物理ディスクブロックのブロック番号を管理する空き物理ディスクブロックリストを用意して、ファイル生成時に、空き物理ディスクブロックが要求されるときには、この空き物理ディスクブロックリストの先頭から順番に空き物理ディスクブロックを特定してファイルに割り当てていくという構成を採っていたのである。ここで、この空き物理ディスクブロックリストの先頭リスト部分は主記憶上に展開され、残りのリスト部分はディスク上に展開されることになる。
【0005】
【発明が解決しようとする課題】
しかしながら、このような従来技術に従っていると、複数の空き物理ディスクブロックをファイルに割り当てていくときに、飛び飛びの空き物理ディスクブロックを割り当ててしまうことになることから、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を増大させてしまうという問題点がある。
【0006】
この問題点を解決するためには、図20に示すように、各ファイル毎に、ファイルの1論理ブロックを任意の連続した物理ディスクブロックに対応させる構成を採る方法が考えられる。
【0007】
しかるに、従来の空き物理ディスクブロックリストを用いていたのでは、これを実現することはできない。
本発明はかかる事情に鑑みてなされたものであって、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を削減する新たなファイルのディスクブロック制御方式の提供を目的とする。
【0008】
【課題を解決するための手段】
図1に本発明の原理構成を図示する。
図中、1は本発明を具備するデータ処理装置、2はデータ処理装置1の備えるディスクである。
【0009】
このデータ処理装置1は、ファイルを作成するファイル作成手段10と、ファイル作成手段10の実行するファイル作成処理を支援するファイル作成支援手段11とを備える。
【0013】
このファイル作成支援手段11は、ファイル作成支援処理を実行するために、拡張管理手段12と、第1の管理手段13と、割当手段14と、更新手段15と、ソート手段16と、第2の管理手段17とを備え、更に、変更手段18を備えることがある。
【0014】
この拡張管理手段12は、ファイルの1論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイル用に用意され、規定のエントリー数から構成されて、ディスク2の持つ連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する。第1の管理手段13は、ファイルの1論理ブロックのサイズが物理ディスクブロックのサイズと一致する通常ファイル用に用意され、拡張管理手段12の管理対象とならない空き物理ディスクブロックのブロック番号を管理する。割当手段14は、ファイル作成手段10の発行する空き物理ディスクブロックの獲得要求に応答して、空き物理ディスクブロックを獲得してファイルに割り当てる。
【0015】
更新手段15は、拡張ファイルについての論理ブロックの解放処理時に、拡張管理手段12が連続ブロック数の大きい連続空き物理ディスクブロックを管理することになるようにと、拡張管理手段12の管理データを更新する。ソート手段16は、拡張管理手段12の管理データが変更される場合に、その管理データを連続ブロック数順にソートし、更に、第2の管理手段17が備えられる場合にあって、第2の管理手段17の管理データが変更される場合には、その管理データを連続ブロック数順にソートする。
【0016】
第2の管理手段17は、第1の管理手段13の管理する連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する。変更手段18は、第1の管理手段13の管理データに従って空き物理ディスクブロックが特定されてファイルに割り当てられる場合に、第2の管理手段17の管理データを変更し、第2の管理手段17の管理データに従って空き物理ディスクブロックが特定されてファイルに割り当てられる場合に、第1の管理手段13の管理データを変更する。
【0021】
【作用】
本発明では、ファイルの1論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイルのために用意され、規定のエントリー数から構成されて、連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する拡張管理手段12を備える構成を採る。
【0023】
この構成を採るときにあって、割当手段14は、ファイル作成手段10から拡張ファイルについての空き物理ディスクブロックの割当要求があると、割当要求数が規定の閾値より小さい場合には、第2の管理手段17を優先しつつ、第2の管理手段17及び拡張管理手段12の管理データに従って、割当要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定して、それが持つ割当要求数分の連続空き物理ディスクブロックをファイルに割り当て、割当要求数が規定の閾値より大きい場合には、拡張管理手段12の管理データに従って、割当要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定して、それが持つ割当要求数分の連続空き物理ディスクブロックをファイルに割り当てる。
【0024】
一方、更新手段15は、拡張ファイルについての論理ブロックの解放処理時に、規定の閾値より大きなサイズを持つ論理ブロックを登録対象として、拡張管理手段12に空きがある場合には、その論理ブロックの持つ連続空き物理ディスクブロックを拡張管理手段12へ登録するとともに、空きがない場合にあって、その連続空き物理ディスクブロックの方が登録のものより大きな連続ブロック数を持つ場合には、その連続空き物理ディスクブロックを登録されている小さな連続ブロック数を持つものに代えて拡張管理手段12へ登録することで、拡張管理手段12が連続ブロック数の大きいものを管理するよう処理する。
【0025】
このようにして、本発明によれば、ファイルの1論理ブロックを任意の連続した物理ディスクブロックに対応させる構成を採ることが可能になり、これにより、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を大幅に削減できるようになる。
【0026】
【実施例】
以下、実施例に従って本発明を詳細に説明する。
図2に、本発明を具備するデータ処理装置1の一実施例を図示する。
【0027】
図中、20はユーザプログラムであって、ファイルを作成するもの、21はファイルシステムであって、ユーザプログラム20の実行するファイル作成処理を支援するもの、22はリスト展開域であって、ディスク2の持つ空き物理ディスクブロックの管理領域となるものである。
【0028】
図3に、リスト展開域22に展開される空き物理ディスクブロックの管理情報の一実施例を図示する。
この実施例では、リスト展開域22は、例えば100エントリーから構成され、ディスク2の持つ連続空き物理ディスクブロックの先頭ブロック番号及び連続ブロック数を管理する拡張ファイル割当用リスト30と、拡張ファイル割当用リスト30の管理対象とならない空き物理ディスクブロックのブロック番号を管理する通常ファイル割当用リスト31とを展開することで、ディスク2の持つ空き物理ディスクブロックを管理する構成を採っている。
【0029】
ここで、通常ファイル割当用リスト31は、従来の空き物理ディスクブロックの管理リストに相当するものであり、先頭リスト部分は主記憶上に展開され、残りのリスト部分はディスク2上に展開されることになる。また、拡張ファイル割当用リスト30が、エントリー数を限定することで、ディスク2の持つ全ての連続空き物理ディスクブロックを管理対象としないのは、連続ブロック数の余り少ないものについては、通常ファイル割当用リスト31を使ってファイルに割り当てる空き物理ディスクブロックを特定しても実用上問題ないからである。
【0030】
図4及び図5に、このような管理構成を採るときに実行するファイルシステム21の処理フローの一実施例を図示する。ここで、図4は、ファイルシステム21が空き物理ディスクブロックの割り当て時に実行する処理フローの一実施例であり、図5は、ファイルシステム21が物理ディスクブロックの解放時に実行する処理フローの一実施例である。
【0031】
次に、これらの処理フローに従って、本発明を詳細に説明する。
ファイルシステム21は、ユーザプログラム20からファイルに対しての空き物理ディスクブロックの割当要求があると、図4の処理フローに示すように、先ず最初に、ステップ1で、作成対象のファイルが拡張ファイルか通常ファイルのいずれであるのかを判断する。ここで、拡張ファイルは、ファイルの1論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となるファイルとして定義され、通常ファイルは、ファイルの1論理ブロックのサイズが物理ディスクブロックのサイズと一致するファイルとして定義されるものであって、作成対象のファイルがどちらのファイルであるのかは、例えば、ユーザプログラム20が宣言することで指定されることになる。
【0032】
このステップ1で、作成対象のファイルが通常ファイルであることを判断すると、ステップ2に進んで、通常ファイル割当用リスト31の先頭エントリーに管理される空き物理ディスクブロックを特定して、それをファイルに割り当てて処理を終了する。すなわち、従来技術と同じ方法に従って、空き物理ディスクブロックを特定して割り当てていくのである。
【0033】
一方、ステップ1で、作成対象のファイルが拡張ファイルであることを判断すると、ステップ3に進んで、拡張ファイル割当用リスト30の先頭エントリーを参照し、続くステップ4で、この参照したエントリーの連続ブロック数が要求ブロック数よりも小さいか否かを判断して、小さいことを判断するときには、ステップ5に進んで、拡張ファイル割当用リスト30の次エントリーを参照してからステップ4に戻っていく。
【0034】
このようにしてステップ4で、要求ブロック数よりも大きな連続ブロック数を持つ拡張ファイル割当用リスト30のエントリーを特定すると、ステップ6に進んで、そのエントリーの指す連続空き物理ディスクブロックの先頭から要求ブロック数分の連続空き物理ディスクブロックを特定して、それをファイルに割り当て、続くステップ7で、そのエントリーの管理する先頭ブロック番号及び連続ブロック数を更新し、続くステップ8で、拡張ファイル割当用リスト30のエントリーデータを連続ブロック数順にソートして処理を終了する。
【0035】
このように、ファイルシステム21は、ファイルの1論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイルについては、図4の処理フローに従って、拡張ファイル割当用リスト30を使って連続した空き物理ディスクブロックを割り当てていくのである。
【0036】
また、ファイルシステム21は、ユーザプログラム20からファイルの持つ物理ディスクブロックの解放要求があると、図5の処理フローに示すように、先ず最初に、ステップ1で、物理ディスクブロックを解放するファイルが拡張ファイルか通常ファイルのいずれであるのかを判断し、通常ファイルであることを判断すると、ステップ2に進んで、解放される物理ディスクブロックを通常ファイル割当用リスト31に書き込んで処理を終了する。
【0037】
一方、ステップ1で、物理ディスクブロックを解放するファイルが拡張ファイルであることを判断すると、ステップ3に進んで、その拡張ファイルの論理ブロックサイズが規定の閾値以下であるのか否かを判断して、閾値以下であることを判断すると、ステップ4に進んで、解放される連続物理ディスクブロックを通常ファイル割当用リスト31に書き込んで処理を終了する。
【0038】
一方、ステップ3で、物理ディスクブロックを解放する拡張ファイルの論理ブロックサイズが閾値以上であることを判断すると、ステップ5に進んで、拡張ファイル割当用リスト30に空きがあるか否かを判断して、空きのあることを判断すると、ステップ6に進んで、解放される連続物理ディスクブロックを拡張ファイル割当用リスト30に書き込み、続くステップ7で、拡張ファイル割当用リスト30のエントリーデータを連続ブロック数順にソートして処理を終了する。
【0039】
一方、ステップ5で、拡張ファイル割当用リスト30に空きのないことを判断すると、ステップ8に進んで、解放される連続物理ディスクブロックの連続ブロック数と、拡張ファイル割当用リスト30に登録される連続ブロック数とを比較して、解放される連続物理ディスクブロックの連続ブロック数の方が小さいときには、それを通常ファイル割当用リスト30に書き込み、大きいときには、それを小さい方の拡張ファイル割当用リスト30のエントリーデータに代えて拡張ファイル割当用リスト30に書き込むとともに、その書き換えられる拡張ファイル割当用リスト30のエントリーデータを通常ファイル割当用リスト31に書き込む。そして、続くステップ9で、拡張ファイル割当用リスト30のエントリーデータを連続ブロック数順にソートして処理を終了する。
【0040】
このように、ファイルシステム21は、拡張ファイルの物理ディスクブロックが解放されるときには、図5の処理フローに従って、拡張ファイル割当用リスト30が連続ブロック数の大きいものを管理することになるようにと処理していくのである。
【0041】
図6に、リスト展開域22に展開される空き物理ディスクブロックの管理情報の他の実施例を図示する。
この実施例では、リスト展開域22は、図3で説明した拡張ファイル割当用リスト30と、拡張ファイル割当用リスト30の管理対象とならない空き物理ディスクブロックのブロック番号を、連続するものについてはチェーニングしつつ管理する第1の通常ファイル割当用リスト32と、第1の通常ファイル割当用リスト32の管理する連続空き物理ディスクブロックの先頭ブロック番号及び連続ブロック数を管理する第2の通常ファイル割当用リスト33とを展開することで、ディスク2の持つ空き物理ディスクブロックを管理する構成を採っている。
【0042】
この第1の通常ファイル割当用リスト32は、例えば、図7に示すように、32ビット構成の下位24ビットで空き物理ディスクブロックのブロック番号を管理するとともに、ビット24で、次エントリーのブロック番号と連続しているか否かを管理することで、拡張ファイル割当用リスト30の管理対象とならない空き物理ディスクブロックのブロック番号を、連続するものについてはチェーニングしつつ管理する構成を採るものであり、更に、最終エントリーのA部分で、第2の通常ファイル割当用リスト33をセーブするものである。
【0043】
図8ないし図11に、このような管理構成を採るときに実行するファイルシステム21の処理フローの一実施例を図示する。ここで、図8ないし図10は、ファイルシステム21が空き物理ディスクブロックの割り当て時に実行する処理フローの一実施例であり、図11は、ファイルシステム21が物理ディスクブロックの解放時に実行する処理フローの一実施例である。
【0044】
次に、これらの処理フローに従って、本発明を詳細に説明する。
ファイルシステム21は、ユーザプログラム20からファイルに対しての空き物理ディスクブロックの割当要求があると、図8ないし図10の処理フローに示すように、先ず最初に、図8の処理フローのステップ1で、作成対象のファイルが拡張ファイルか通常ファイルのいずれであるのかを判断し、作成対象のファイルが通常ファイルであることを判断すると、図9の処理フローのステップ2に進んで、第1の通常ファイル割当用リスト32の先頭エントリーに管理される空き物理ディスクブロックを特定して、それをファイルに割り当てる。
【0045】
続いて、ステップ3で、割り当てたエントリーのビット24がチェーニングを表示しているか否かを判断して、非チェーニング表示を判断するときには、ステプ4に進んでそのまま処理を終了し、チェーニング表示を判断するときには、ステップ5に進んで、空き物理ディスクブロックを割り当てたことで変更されることになる第2の通常ファイル割当用リスト33のエントリーデータを更新し、続くステップ6で、第2の通常ファイル割当用リスト33のエントリーデータを連続ブロック数順にソートして処理を終了する。
【0046】
一方、図8の処理フローのステップ1で、作成対象のファイルが拡張ファイルであることを判断すると、ステップ7に進んで、要求ブロック数が規定の閾値以下であるのか否かを判断して、閾値以下であることを判断すると、図10の処理フローのステップ8に進んで、第2の通常ファイル割当用リスト33の先頭エントリーを参照する。
【0047】
続いて、ステップ9で、この参照したエントリーの連続ブロック数が要求ブロック数よりも小さいか否かを判断して、小さいことを判断するときには、ステップ10に進んで、参照したエントリーが最終エントリーであるのか否かを判断し、最終エントリーであることを判断するときには、後述する図8の処理フローのステップ16へ進み、最終エントリーでないことを判断するときは、ステップ11に進んで、第2の通常ファイル割当用リスト33の次エントリーを参照してからステップ9に戻っていく。
【0048】
このようにしてステップ9で、要求ブロック数よりも大きな連続ブロック数を持つ第2の通常ファイル割当用リスト33のエントリーを特定すると、ステップ12に進んで、そのエントリーの指す連続空き物理ディスクブロックの先頭から要求ブロック数分の連続空き物理ディスクブロックを特定して、それをファイルに割り当て、続くステップ13で、そのエントリーの管理する先頭ブロック番号及び連続ブロック数を更新し、続くステップ14で、第2の通常ファイル割当用リスト33のエントリーデータを連続ブロック数順にソートし、続くステップ15で、割り当てた空き物理ディスクブロックを第1の通常ファイル割当用リスト32から削除して処理を終了する。
【0049】
一方、図8の処理フローのステップ7で、要求ブロック数が規定の閾値以上であることを判断するときと、閾値以下であっても、図10の処理フローのステップ10で、第2の通常ファイル割当用リスト33に要求ブロック数より大きい連続ブロック数が登録されていないことを判断するときには、図8の処理フローのステップ16に進んで、拡張ファイル割当用リスト30の先頭エントリーを参照し、続くステップ17で、この参照したエントリーの連続ブロック数が要求ブロック数よりも小さいか否かを判断して、小さいことを判断するときには、ステップ18に進んで、拡張ファイル割当用リスト30の次エントリーを参照してからステップ17に戻っていく。
【0050】
このようにしてステップ17で、要求ブロック数よりも大きな連続ブロック数を持つ拡張ファイル割当用リスト30のエントリーを特定すると、ステップ19に進んで、そのエントリーの指す連続空き物理ディスクブロックの先頭から要求ブロック数分の連続空き物理ディスクブロックを特定して、それをファイルに割り当て、続くステップ20で、そのエントリーの管理する先頭ブロック番号及び連続ブロック数を更新し、続くステップ21で、拡張ファイル割当用リスト30のエントリーデータを連続ブロック数順にソートして処理を終了する。
【0051】
このように、ファイルシステム21は、ファイルの1論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイルについては、図8ないし図10の処理フローに従って、要求ブロック数が規定の閾値より小さいときには、第2の通常ファイル割当用リスト33を優先しつつ、第2の通常ファイル割当用リスト33及び拡張ファイル割当用リスト30を使って連続した空き物理ディスクブロックを割り当てていくとともに、要求ブロック数が規定の閾値より大きいときには、拡張ファイル割当用リスト30を使って連続した空き物理ディスクブロックを割り当てていくのである。
【0052】
また、ファイルシステム21は、ユーザプログラム20からファイルの物理ディスクブロックの解放要求があると、図11の処理フローに示すように、先ず最初に、ステップ1で、物理ディスクブロックを解放するファイルが拡張ファイルか通常ファイルのいずれであるのかを判断し、通常ファイルであることを判断すると、ステップ2に進んで、解放される物理ディスクブロックを第1の通常ファイル割当用リスト32に書き込んで処理を終了する。
【0053】
一方、ステップ1で、物理ディスクブロックを解放するファイルが拡張ファイルであることを判断すると、ステップ3に進んで、その拡張ファイルの論理ブロックサイズが規定の閾値以下であるのか否かを判断して、閾値以下であることを判断すると、ステップ4に進んで、解放される連続物理ディスクブロックを第1及び第2の通常ファイル割当用リスト32,33に書き込み、続くステップ5で、第2の通常ファイル割当用リスト33のエントリーデータを連続ブロック数順にソートして処理を終了する。
【0054】
一方、ステップ3で、物理ディスクブロックを解放する拡張ファイルの論理ブロックサイズが閾値以上であることを判断すると、ステップ6に進んで、拡張ファイル割当用リスト30に空きがあるか否かを判断して、空きのあることを判断すると、ステップ7に進んで、解放される連続物理ディスクブロックを拡張ファイル割当用リスト30に書き込み、続くステップ8で、拡張ファイル割当用リスト30のエントリーデータを連続ブロック数順にソートして処理を終了する。
【0055】
一方、ステップ6で、拡張ファイル割当用リスト30に空きのないことを判断すると、ステップ9に進んで、解放される連続物理ディスクブロックの連続ブロック数と、拡張ファイル割当用リスト30に登録される連続ブロック数とを比較して、解放される連続物理ディスクブロックの連続ブロック数の方が小さいときには、それを第1及び第2の通常ファイル割当用リスト32,33に書き込み、大きいときには、それを小さい方の拡張ファイル割当用リスト30のエントリーデータに代えて拡張ファイル割当用リスト30に書き込むとともに、その書き換えられる拡張ファイル割当用リスト30のエントリーデータを第1及び第2の通常ファイル割当用リスト32,33に書き込む。そして、続くステップ10で、拡張ファイル割当用リスト30のエントリーデータを連続ブロック数順にソートして処理を終了する。
【0056】
このように、ファイルシステム21は、拡張ファイルの物理ディスクブロックが解放されるときには、図11の処理フローに従って、拡張ファイル割当用リスト30が連続ブロック数の大きいものを管理することになるようにと処理していくのである。
【0057】
このようにして、ファイルの1論理ブロックを任意の連続した物理ディスクブロックに対応させる構成を採ることが可能になり、これにより、ファイルアクセスの際のディスク2のシーク回数及び回転待ち時間を大幅に削減できるようになる。
【0058】
以上に説明した実施例では、拡張ファイルに割り当てる空き物理ディスクブロックを展開する領域と、通常ファイルに割り当てる空き物理ディスクブロックを展開する領域とが、ディスク2上でどのように配置されるのかということについては特に言及しなかったが、この2つの領域は、ファイルアクセスの際のディスク2のシーク回数及び回転待ち時間の削減効果を図るために、図12に示すように、ディスク2上の異なる領域に割り当てられることが好ましい。
【0059】
この構成を採るときにあって、通常ファイルに割り当てる空き物理ディスクブロックを展開する領域に、空き物理ディスクブロックが無くなることが起こる。このようなときには、ファイルシステム21は、図13に示すように、拡張ファイル割当用リスト30から規定の数の空き物理ディスクブロックを獲得して、それを通常ファイルに割り当てていく構成を採る。
【0060】
すなわち、ファイルシステム21は、ユーザプログラム20からファイルに対しての空き物理ディスクブロックの割当要求があると、図14の処理フローに示すように、先ず最初に、ステップ1で、作成対象のファイルが拡張ファイルであるのか通常ファイルであるのかを判断して、拡張ファイルであることを判断するときには、ステップ2に進んで、上述した拡張ファイル用のアルゴリズムに従ってファイルに空き物理ディスクブロックを割り当てる。
【0061】
一方、ステップ1で、作成対象のファイルが通常ファイルであることを判断するときには、ステップ3に進んで、通常ファイル割当用リスト31が空き物理ディスクブロックを管理しているのか否かを判断して、空き物理ディスクブロックを管理していることを判断するときには、ステップ4に進んで、上述した通常ファイル用のアルゴリズムに従ってファイルに空き物理ディスクブロックを割り当てる。
【0062】
一方、ステップ3で、通常ファイル割当用リスト31が空き物理ディスクブロックを管理していないことを判断するときには、ステップ5に進んで、拡張ファイル割当用リスト30から規定の数の空き物理ディスクブロックを獲得し、続くステップ6で、拡張ファイル割当用リスト30のエントリーデータを連続ブロック数順にソートする。続いて、ステップ7で、この獲得した空き物理ディスクブロックを用いて通常ファイル割当用リスト31を作成してから、ステップ4に進んで、上述した通常ファイル用のアルゴリズムに従ってファイルに空き物理ディスクブロックを割り当てていくのである。
【0063】
また、以上に説明した実施例では、空き物理ディスクブロックをまとめていくコンデンス処理について言及しなかったが、連続空き物理ディスクブロックの展開位置が飛び飛びになると、ディスク2のシーク回数及び回転待ち時間が増加することから、このコンデンス処理を実行していく構成を採ることが好ましい。
【0064】
図15に、このコンデンス処理の処理フローの一例を図示する。
ファイルシステム21は、この処理フローに従って、図16に示すように、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域(図中のα,β)を一体的なものと扱いつつ、連続空き物理ディスクブロックをまとめていくコンデンス処理を実行することになる。
【0065】
すなわち、ファイルシステム21は、例えば規定周期に到達することでコンデス処理要求があるときには、この図15の処理フローに示すように、先ず最初に、ステップ1で、拡張ファイル割当用リスト30とファイルのi-node とを使って、拡張ファイルに割り当てた物理ディスクブロック情報と、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域情報とを管理するコンデンス表を作成する。
【0066】
図17(a)にこのコンデンス表を図示する。すなわち、拡張ファイルに割り当てた連続物理ディスクブロックのブロック番号と、新たに設定されるその連続物理ディスクブロックのブロック番号のエントリーと、その連続物理ディスクブロックのベクトル長と、その連続物理ディスクブロックのi-node 番号とを管理するとともに、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域のブロック番号と、新たに設定されるそのブロック領域のブロック番号のエントリーと、そのブロック領域のベクトル長と、そのブロック領域のi-node 番号とを管理する図17(a)に示すようなコンデンス表を作成するのである。ここで、ブロック番号は、ディスク2上の展開位置を示すものであり番号の小さい順に並べられる。また、i-node 番号が“−1”となる管理データは、拡張ファイルに割り当てた連続物理ディスクブロックではなくて、図17(b)に示すように、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域を示している。
ステップ1でコンデンス表を作成すると、続いて、ステップ2で、変数nに“1”をセットし、続くステップ3で、変数nの値の指すコンデンス表の管理域に登録されているブロック番号を特定して、そのブロック番号の移動先となる新しいブロック番号を求める。すなわち、1つ前に処理したブロックの最終ブロック番号に続くブロック番号として定義される新しいブロック番号を求めるのである。
【0067】
続いて、ステップ4で、移動前のブロック番号と移動先のブロック番号とが一致するのか否かを判断して、一致しないことを判断するときには、ステップ5に進んで、移動先のブロック番号の領域に、移動元のブロック番号の指す領域に展開されるデータを複写し、続くステップ6で、変数nの値を1つインクリメントする。一方、ステップ4で、一致を判断するときは、ステップ5の処理を省略して、直ちにステップ6に進んで、変数nの値を1つインクリメントする。
【0068】
続いて、ステップ7で、コンデンス表の全登録データの処理が終了したかの否かを判断して、未終了を判断するときには、ステップ3に戻っていき、終了を判断するときは、ステップ8に進んで、コンデンス表に登録されているi-node 番号の持つブロックアドレスを新しいブロック番号に更新して処理を終了する。
【0069】
このようにして、ファイルシステム21は、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域を一体的なものと扱いつつ、連続空き物理ディスクブロックをまとめていくコンデンス処理を実行することになる。このコンデンス処理に従って、ディスク2のシーク回数及び回転待ち時間を大きく削減できるようなる。
【0070】
このコンデンス処理では、通常ファイルに割り当てる空き物理ディスクブロックを展開するブロック領域(図16中のα,β)についても、コンデンス処理の移動対象(実際には、この内のβのブロック領域)とする構成を採ったが、このブロック領域には、空き物理ディスクブロックと使用中の物理ディスクブロックとが混在していることから、このブロック領域に対して、i-node 番号の持つブロックアドレスを新しいブロック番号に更新していく構成を採っていると、負荷が大きいという問題点がある。これから、この負荷が無視できない場合には、図18に示すように、このブロック領域をコンデンス処理の移動対象としない構成を採ることになる。
【0071】
図示実施例について説明したが、本発明はこれに限定されるものではない。例えば、実施例では、拡張ファイル割当用リスト30が連続空き物理ディスクブロックの先頭ブロック番号を管理する構成を開示したが、本発明はこれに限られるものではなく、最終ブロック番号を管理する構成を採ってもよいのである。
【0072】
また、実施例では、拡張ファイル割当用リスト30/第2の通常ファイル割当用リスト33のエントリーデータが変更されるときに、そのエントリーデータを連続ブロック数順にソートする構成を開示したが、このソート機能を持つことで連続空き物理ディスクブロックの割当処理の高速が期待できるものの、本発明はこれを絶対具備しなければならないということではない。
【0074】
【発明の効果】
以上説明したように、本発明によれば、ファイルの1論理ブロックを任意の連続した物理ディスクブロックに対応させる構成を採ることが可能になり、これにより、ファイルアクセスの際のディスクのシーク回数及び回転待ち時間を大幅に削減できるようになる。
【図面の簡単な説明】
【図1】 本発明の原理構成図である。
【図2】 本発明の一実施例である。
【図3】 リスト展開域に展開されるリストの一実施例である。
【図4】 ファイルシステムの実行する処理フローの一実施例である。
【図5】 ファイルシステムの実行する処理フローの一実施例である。
【図6】 リスト展開域に展開されるリストの一実施例である。
【図7】 第1の通常ファイル割当用リストの管理データの一実施例である。
【図8】 ファイルシステムの実行する処理フローの一実施例である。
【図9】 ファイルシステムの実行する処理フローの一実施例である。
【図10】 ファイルシステムの実行する処理フローの一実施例である。
【図11】 ファイルシステムの実行する処理フローの一実施例である。
【図12】 ディスクのファイルシステムデータ領域の説明図である。
【図13】 通常ファイル用領域の追加処理の説明図である。
【図14】 ファイルシステムの実行する処理フローの一例である。
【図15】 ファイルシステムの実行する処理フローの一例である。
【図16】 コンデンス処理の説明図である。
【図17】 コンデンス表の説明図である。
【図18】 コンデンス処理の説明図である。
【図19】 従来技術の説明図である。
【図20】 ファイルのブロック構成の説明図である。
【符号の説明】
1 データ処理装置
2 ディスク
10 ファイル作成手段
11 ファイル作成支援手段
12 拡張管理手段
13 第1の管理手段
14 割当手段
15 更新手段
16 ソート手段
17 第2の管理手段
18 変更手段
Claims (7)
- 空き物理ディスクブロックを管理してファイルに割り当てるファイルのディスクブロック制御方式において、
ファイルの1論理ブロックのサイズが物理ディスクブロックのサイズの整数倍となる拡張ファイルのために用意され、規定のエントリー数から構成されて、連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する拡張管理手段と、
前記拡張管理手段の管理対象とならない空き物理ディスクブロックのブロック番号を管理する第1の管理手段と、
前記第1の管理手段の管理する連続空き物理ディスクブロックの代表ブロック番号及び連続ブロック数を管理する第2の管理手段と、
拡張ファイルについての空き物理ディスクブロックの獲得要求時に、前記第2の管理手段及び前記拡張管理手段の管理データに従って、その空き物理ディスクブロックの獲得要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定して、その獲得要求数分の連続空き物理ディスクブロックをファイルに割り当てる割当手段とを備えることを、
特徴とするファイルのディスクブロック制御方式。 - 前記割当手段は、前記獲得要求数が規定の閾値より小さい場合には、前記第2の管理手段を優先しつつ、前記第2の管理手段及び前記拡張管理手段の管理データに従って、前記獲得要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定し、前記獲得要求数が規定の閾値より大きい場合には、前記拡張管理手段の管理データに従って、前記獲得要求数より大きな連続ブロック数を持つ連続空き物理ディスクブロックを特定することを、
特徴とする請求項1記載のファイルのディスクブロック制御方式。 - 前記第1の管理手段の管理データに従って空き物理ディスクブロックが特定されてファイルに割り当てられる場合に、前記第2の管理手段の管理データを変更し、前記第2の管理手段の管理データに従って空き物理ディスクブロックが特定されてファイルに割り当てられる場合に、前記第1の管理手段の管理データを変更する変更手段を備えることを、
特徴とする請求項1又は2記載のファイルのディスクブロック制御方式。 - 拡張ファイルについての論理ブロックの解放処理時に、前記拡張管理手段がその論理ブロックの解放処理前に管理している連続ブロック数よりも連続ブロック数の大きい連続空き物理ディスクブロックを管理することになるように、前記拡張管理手段の管理データを更新する更新手段を備えることを、
特徴とする請求項1ないし3のいずれか1項に記載のファイルのディスクブロック制御方式。 - 前記更新手段は、規定の閾値より大きなサイズを持つ論理ブロックを登録対象として、前記拡張管理手段に空きがある場合には、その論理ブロックの持つ連続空き物理ディスクブロックを前記拡張管理手段へ登録するとともに、空きがない場合にあって、その連続空き物理ディスクブロックの方が登録のものより大きな連続ブロック数を持つ場合には、その連続空き物理ディスクブロックを登録されている小さな連続ブロック数を持つものに代えて前記拡張管理手段へ登録することを、
特徴とする請求項4記載のファイルのディスクブロック制御方式。 - 前記拡張管理手段の管理データが変更される場合に、その管理データを連続ブロック数順にソートするソート手段を備えることを、
特徴とする請求項1ないし5のいずれか1項に記載のファイルのディスクブロック制御方式。 - 前記ソート手段は、前記第2の管理手段が備えられる場合にあって、前記第2の管理手段の管理データが変更される場合には、その管理データを連続ブロック数順にソートすることを、
特徴とする請求項6記載のファイルのディスクブロック制御方式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32438294A JP3745398B2 (ja) | 1994-06-17 | 1994-12-27 | ファイルのディスクブロック制御方式 |
US08/490,589 US5737743A (en) | 1994-06-17 | 1995-06-15 | Disk block controller and file system which supports large files by allocating multiple sequential physical blocks to logical blocks |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13528394 | 1994-06-17 | ||
JP6-135283 | 1994-06-17 | ||
JP32438294A JP3745398B2 (ja) | 1994-06-17 | 1994-12-27 | ファイルのディスクブロック制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0863377A JPH0863377A (ja) | 1996-03-08 |
JP3745398B2 true JP3745398B2 (ja) | 2006-02-15 |
Family
ID=26469163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32438294A Expired - Fee Related JP3745398B2 (ja) | 1994-06-17 | 1994-12-27 | ファイルのディスクブロック制御方式 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5737743A (ja) |
JP (1) | JP3745398B2 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3641872B2 (ja) | 1996-04-08 | 2005-04-27 | 株式会社日立製作所 | 記憶装置システム |
US6742080B1 (en) | 1996-09-06 | 2004-05-25 | Intel Corporation | Disk block allocation optimization methodology and application |
JPH10301818A (ja) * | 1997-04-28 | 1998-11-13 | Matsushita Electric Ind Co Ltd | ファイルシステム及びその管理方法 |
US6707982B2 (en) * | 1997-05-30 | 2004-03-16 | Canon Kabushiki Kaisha | Image recording apparatus having computer readable recording medium for recording image data |
US5845297A (en) * | 1997-06-30 | 1998-12-01 | Intel Corporation | Disk block relocation de-optimization detection methodology and applications |
US6138125A (en) * | 1998-03-31 | 2000-10-24 | Lsi Logic Corporation | Block coding method and system for failure recovery in disk arrays |
US6411770B1 (en) * | 1998-07-02 | 2002-06-25 | Sony Corporation | Data recording method and apparatus |
US6374314B1 (en) * | 1998-09-28 | 2002-04-16 | Raytheon Company | Method for managing storage of data by storing buffer pointers of data comprising a sequence of frames in a memory location different from a memory location for pointers of data not comprising a sequence of frames |
US6266702B1 (en) | 1998-09-28 | 2001-07-24 | Raytheon Company | Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data |
US6381647B1 (en) | 1998-09-28 | 2002-04-30 | Raytheon Company | Method and system for scheduling network communication |
US6317415B1 (en) | 1998-09-28 | 2001-11-13 | Raytheon Company | Method and system for communicating information in a network |
US6523085B1 (en) | 1999-12-08 | 2003-02-18 | International Business Machines Corporation | Disk drive and method of multi-block size addressing |
US6977927B1 (en) | 2000-09-18 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Method and system of allocating storage resources in a storage area network |
US7386610B1 (en) | 2000-09-18 | 2008-06-10 | Hewlett-Packard Development Company, L.P. | Internet protocol data mirroring |
US6804819B1 (en) | 2000-09-18 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Method, system, and computer program product for a data propagation platform and applications of same |
US6606690B2 (en) | 2001-02-20 | 2003-08-12 | Hewlett-Packard Development Company, L.P. | System and method for accessing a storage area network as network attached storage |
JP2003114817A (ja) * | 2001-08-03 | 2003-04-18 | Toshiba Corp | 情報記憶媒体及び情報記録方法 |
US20040268082A1 (en) * | 2003-06-27 | 2004-12-30 | Michael Yatziv | Method and system for parcel-based data mapping |
US8166101B2 (en) * | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US7590643B2 (en) * | 2003-08-21 | 2009-09-15 | Microsoft Corporation | Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system |
US8238696B2 (en) * | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
US7401104B2 (en) * | 2003-08-21 | 2008-07-15 | Microsoft Corporation | Systems and methods for synchronizing computer systems through an intermediary file system share or device |
JP2005135126A (ja) * | 2003-10-30 | 2005-05-26 | Hitachi Ltd | フラグメント防止ファイルシステム |
US20050166012A1 (en) * | 2004-01-26 | 2005-07-28 | Yong Liu | Method and system for cognitive pre-fetching |
US20060015663A1 (en) * | 2004-07-15 | 2006-01-19 | International Business Machines Corporation | Wireless communications device for expanding storage capacity of portable electronic equipment |
JP4690783B2 (ja) * | 2005-06-08 | 2011-06-01 | 株式会社日立製作所 | ボリューム管理システムおよびその方法 |
EP2031491A1 (en) * | 2007-08-28 | 2009-03-04 | Deutsche Thomson OHG | Method for storing files on a storage medium, storage medium, and video recording apparatus using the method |
US20090210647A1 (en) | 2008-02-15 | 2009-08-20 | Madhusudanan Kandasamy | Method for dynamically resizing file systems |
US8140807B2 (en) * | 2008-02-15 | 2012-03-20 | International Business Machines Corporation | System and computer program product for dynamically resizing file systems |
US8103621B2 (en) * | 2008-10-03 | 2012-01-24 | International Business Machines Corporation | HSM two-way orphan reconciliation for extremely large file systems |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5021946A (en) * | 1988-06-17 | 1991-06-04 | Modular Computer Systems, Inc. | Mostly contiguous file allocation technique involving file extension |
GB8829919D0 (en) * | 1988-12-22 | 1989-02-15 | Int Computer Limited | File system |
US5398142B1 (en) * | 1989-05-31 | 1997-09-16 | Raxco Inc | Method for eliminating file fragmentation and reducing average seek times in a magnetic disk media environment |
US5333311A (en) * | 1990-12-10 | 1994-07-26 | Alsoft, Inc. | Optimizing a magnetic disk by allocating files by the frequency a file is accessed/updated or by designating a file to a fixed location on a disk |
US5416915A (en) * | 1992-12-11 | 1995-05-16 | International Business Machines Corporation | Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array |
US5557770A (en) * | 1993-03-24 | 1996-09-17 | International Business Machines Corporation | Disk storage apparatus and method for converting random writes to sequential writes while retaining physical clustering on disk |
-
1994
- 1994-12-27 JP JP32438294A patent/JP3745398B2/ja not_active Expired - Fee Related
-
1995
- 1995-06-15 US US08/490,589 patent/US5737743A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0863377A (ja) | 1996-03-08 |
US5737743A (en) | 1998-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3745398B2 (ja) | ファイルのディスクブロック制御方式 | |
CA2055295C (en) | Logical mapping of data objects using data spaces | |
US6874062B1 (en) | System and method for utilizing a hierarchical bitmap structure for locating a set of contiguous ordered search items having a common attribute | |
US6587915B1 (en) | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | |
US6961835B2 (en) | System and method for autonomically reallocating memory among buffer pools | |
JPH08129457A (ja) | 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置 | |
JP2858795B2 (ja) | 実記憶割り当て方法 | |
JPH02300949A (ja) | メモリ制御方法 | |
JP3510042B2 (ja) | データベース管理方法及びシステム | |
JP2001175529A (ja) | メモリ制御回路 | |
JP3250861B2 (ja) | ディスク装置システム | |
JP2006513493A (ja) | フリーバッファプールを使用することによるメモリの管理 | |
JP2003330792A (ja) | ディスクシステムとそのキャッシュ制御方法 | |
WO1999001817A1 (en) | Defragmentation of stored data without pointer indirection | |
JP3609841B2 (ja) | ファイル管理装置 | |
JP2000181764A (ja) | ファイル管理システム | |
JPH07182220A (ja) | 分散ファイルシステムおよびそのファイルキャッシング方法 | |
JP4204405B2 (ja) | メモリ管理方式 | |
JP2002259201A (ja) | 計算機システムの起動方法 | |
JP3468181B2 (ja) | 分散データ処理装置及びデータ格納方法と負荷分散方法並びに記録媒体 | |
JPH04219836A (ja) | ブロック管理方式 | |
JPH0346046A (ja) | フアイルデータ管理方法 | |
JPH03127137A (ja) | ファイル領域割り当て方式 | |
JPH0581091A (ja) | データ処理装置 | |
JPH0398110A (ja) | 多重データ読み込み方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051011 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051117 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091202 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |