(57)【特許請求の範囲】
【請求項１】
一定長のデータからなるブロックを複数ブロック分有するファイルを１以上記憶する記憶手段と、
この記憶手段の複数ブロックを一括して入力するために一括ブロック入力要求を行う一括ブロック要求手段と、
複数ブロックに対応した複数のバッファと、
一括ブロック要求手段の一括ブロック入力要求に対して、実際に一括してブロックを入力できる一括バッファを獲得するために前記複数のバッファの内から空き状態にあるバッファの数を算出するバッファ獲得算出手段と、このバッファ獲得算出部で算出された空き状態にあるバッファ数のバッファを獲得して獲得バッファに対応する数のブロックの入力処理を行うバッファ獲得手段とを有するファイル管理装置。
【請求項２】
請求項１において、前記バッファ獲得算出手段は、算出した空きバッファ数をプロセスの数で除算出したバッファ数を一括バッファ数とすることを特徴とするファイル管理装置。
【請求項３】
一定長のデータからなるブロックを複数ブロック分有するファイルを１以上記憶する記憶手段と、
この記憶手段の複数ブロックを一括して出力するために一括ブロック出力要求を行う一括ブロック要求手段と、
複数ブロックに対応した複数のバッファと、
一括ブロック要求手段の一括ブロック出力要求に対して、実際に一括してブロックを出力できる一括バッファを獲得するために前記複数のバッファの内から空き状態にあるバッファの数を算出するバッファ獲得算出手段と、このバッファ獲得算出手段で算出された空き状態にあるバッファ数のバッファを獲得して獲得バッファに対応する数のブロックの出力処理を行うバッファ獲得手段とを有するファイル管理装置。
【請求項４】
請求項３において、前記バッファ獲得算出手段は、算出した空きバッファ数をプロセスの数で除算出したバッファ数を一括バッファ数とすることを特徴とするファイル管理装置。
【請求項５】
請求項３において、一括ブロック要求手段から出力要求があった場合に前記処理手段は、書き込みデータを順次複数のバッファに書き込みその都度書き込みバッファの数を管理し、
前記書き込まれたバッファの数が前記バッファ獲得算出手段で算出されたバッファ数よりも大きいか否かを判定する判定手段と、
この判定手段により書き込みバッファ数が算出バッファ数よりも大きいと判断された場合にバッファに書き込まれたブロックをリストにするためのリスト作成部と、
このリスト作成部でリスト構造にした複数ブロックを一括して記憶手段に出力する出力手段とを有することを特徴とするファイル管理装置。
【請求項６】
一定長のデータからなるブロックを複数ブロック分有するファイルを１以上記憶する記憶手段と、
この記憶手段の複数ブロックを一括して入力するために一括ブロック入力要求を行う一括ブロック要求手段と、
複数ブロックに対応した複数のバッファと、
前記一括ブロック要求手段の一括ブロック入力要求に対して、実際に一括してブロックを入力できる一括バッファを獲得するために前記複数のバッファの内から空き状態にあるバッファの数を算出するバッファ獲得算出手段と、
このバッファ獲得算出手段で算出された空き状態にあるバッファ数のバッファを獲得して獲得バッファに対応する数のブロックの入力処理を行うバッファ獲得手段と、
該バッファ獲得手段にて獲得した一括バッファの一括リストを作成するリスト作成手段と、
該リスト作成手段により作成した一括リストに基づき複数ブロックを前記記憶装置から一括入力する処理手段とを有するファイル管理装置。
【請求項７】
一定長のデータからなるブロックを複数ブロック分有するファイルを１以上記憶する記憶手段と、
この記憶手段の複数ブロックを一括して出力するために一括ブロック出力要求を行う一括ブロック要求手段と、
複数ブロックに対応した複数のバッファと、
一括ブロック要求手段の一括ブロック出力要求に対して、実際に一括してブロックを出力できる一括バッファを獲得するために前記複数のバッファの内から空き状態にあるバッファの数を算出するバッファ獲得算出手段と、このバッファ獲得算出手段で算出された空き状態にあるバッファ数のバッファを獲得して獲得バッファに対応する数のブロックの出力処理を行うバッファ獲得手段と、
該バッファ獲得手段にて獲得した一括バッファの一括リストを作成するリスト作成手段と、
該リスト作成手段により作成した一括リストに基づき複数ブロックを前記記憶装置から一括出力する処理手段とを有するファイル管理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、情報記憶装置に構築されたファイルシステムに対してアクセスするファイル管理装置に関する。
【０００２】
【従来の技術】
従来のファイル管理装置において、アプリケーション部から複数のファイルを構築する情報記憶装置にデータの入出力要求があった場合、情報記憶装置の目的のファイルのデータの入力処理又は出力処理は以下のように行われていた。
【０００３】
まず、アプリケーション部からデータをディスク装置などの情報記憶装置に出力するとき、アプリケーション部から出力要求をバッファに出力する。そして、データがバッファに一定長のデータ（以下、ブロックという。）まで記録されると、バッファから１ブロックのデータが情報記憶装置に記録される。次に、プログラム部から次のブロックのデータを出力する場合には、再びプログラム部から出力要求をバッファに出力し、上述した出力処理を行う。
【０００４】
次に、プログラム部にデータを入力するとき、バッファに情報記憶装置からデータを１ブロック分入力する。そして、データがバッファに１ブロック分記録されると、１ブロック分のデータはバッファからプログラム部に入力される。次に、プログラム部から次のブロックのデータを入力する場合には、再びプログラム部から入力要求をバッファに発行し、上述した入力処理を行う。
【０００５】
このように従来のファイル管理装置では、例えばディスク装置のトラック上に連続して有する複数のブロックを入力又は出力処理する場合、プログラム部からブロック毎にいちいち入出力要求を行っていた。
【０００６】
また、プログラム部の入出力要求に対して、ブロックのアドレス操作にかかるオーバヘッドにより、ディスクの回転待ち時間が発生する。このため、従来の装置は、ファイルを高速にアクセスすることができなかった。
【０００７】
そこで、この問題を解決するためにブロック長を拡大して、拡大ブロック単位で入出力要求を行うことにより入出力要求回数及び回転待ち回数を削減する。これにより、ファイルを高速にアクセスすることができる。
【０００８】
【発明が解決しようとする課題】
しかしながら、ブロック長は、ファイルを作成した時に決定される。このため、ファイルの高速アクセスを行うためには、拡大ブロックのファイルシステムにデータを複写、退避、復元などの移行する作業が必要となる。
【０００９】
また、ブロック長を拡大した場合には、情報記憶装置に拡大ブロックに満たない領域を生ずる場合がある。この場合には、情報記憶装置の記録領域を有効に利用することができない。さらに、ブロック長の大きさに応じた拡張バッファが必要であった。
【００１０】
また、ファイルシステムを初期化した後には、ファイルシステム上の空きブロックを管理している管理情報内（以下、空き管理情報という）に、情報記憶装置に最適な配置でブロックが登録されている。例えば、単一のファイルを作成したり、あるいはこのファイルを削除した場合には、空き管理情報内のブロックの最適配置は保証されている可能性が高い。
【００１１】
しかし、複数のファイルを作成したり、あるいはファイルを頻繁に削除すると、ブロックの獲得の順序やブロックの解放の順序が不定となる。例えば、図１０に示すようにブロック解放処理時には、ファイル情報に管理されているブロック番号Ｂ２，Ｂ１，Ｂ３が解放されて、そのまま空き管理情報部に登録される。このため、空き管理情報部のブロック番号は図に示すように不順となる。
【００１２】
一方、図１１に示すようにブロック獲得処理時には、空き管理情報部のブロック番号Ｂ２，Ｂ１，Ｂ３が獲得される。このため、空き管理情報部のブロック番号は図に示すように不順となる。このように、ブロックの最適配置が保証できなくなるという問題があった。
【００１３】
本発明は、このような点に鑑みてなされたもので、その目的とするところは、ファイルを高速にアクセスすることのできるファイル管理装置を提供することにある。
【００１４】
【課題を解決するための手段】
本発明は、上記課題を解決し目的を達成するために下記の構成とした。図１は本発明の原理図である。
【００１５】
本発明は、ファイルシステムのブロック長の大きさを変えずに複数ブロックの一括入力によりファイルアクセスの高速化を図るものである。本発明は、一括ブロック要求手段１、処理手段２、記憶手段３、複数ブロックに対応した複数のバッファ４を有する。
【００１６】
記憶手段３は一定長のデータからなるブロックを複数ブロック分有するファイルを１以上記憶する。一括ブロック要求手段１はこの記憶手段３の複数ブロックを一括して入力するために一括ブロック入力要求を行う。処理手段２は一括ブロック要求手段１の一括ブロック入力要求に基づき、一括ブロック要求手段１と複数のバッファ４との間で複数ブロックの入力処理を行うとともに、複数のバッファ４と記憶手段３との間で複数ブロックの入力処理とを行う。
【００１７】
また、前記処理手段２は、バッファ獲得算出手段５、バッファ獲得手段３３を有する。バッファ獲得算出手段５は前記一括ブロック要求手段１の一括ブロック入力要求に対して、実際に一括してブロックを入力できる一括バッファを獲得するために前記複数のバッファ４の内から空き状態にあるバッファの数を算出する。バッファ獲得手段３３はこのバッファ獲得算出部５で算出されたバッファ数のバッファを獲得して獲得バッファに対応するブロックの入力処理を行う。
【００１８】
さらに、前記バッファ獲得算出手段５は、算出した空きバッファ数をプロセスの数で除算出したバッファ数を一括バッファ数とする。
また、本発明は、ファイルシステムのブロック長の大きさを変えずに複数ブロックの一括出力によりファイルアクセスの高速化を図るものである。
【００１９】
記憶手段３は一定長のデータからなるブロックを複数ブロック分有するファイルを１以上記憶する。一括ブロック要求手段１はこの記憶手段３の複数ブロックを一括して出力するために一括ブロック出力要求を行う。複数ブロックに対応した複数のバッファ４を有する。処理手段２は一括ブロック要求手段１の一括ブロック出力要求に基づき、一括ブロック要求手段１と複数のバッファ４との間で複数ブロックの出力処理を行うとともに、複数のバッファ４と記憶手段３との間で複数ブロックの出力処理とを行う。
【００２０】
また、前記処理手段２は、前記一括ブロック要求手段１の一括ブロック出力要求に対して、実際に一括してブロックを出力できる一括バッファを獲得するために前記複数のバッファ４の内から空き状態にあるバッファの数を算出するバッファ獲得算出手段５、このバッファ獲得算出部５で算出されたバッファ数のバッファを獲得して獲得バッファに対応するブロックの出力処理を行うバッファ獲得手段３６とを有する。
【００２１】
さらに、前記バッファ獲得算出手段５は、算出した空きバッファ数をプロセスの数で除算出したバッファ数を一括バッファ数とする。
また、ファイルシステム上の空いているブロックの配置を空き管理情報により管理する空き管理情報手段６４、記憶手段３の特性を判別する判別手段６５、前記処理手段２がブロックの獲得又は解放を行った場合に判別手段６５で判別された特性に応じて個々のブロックの最適配置を行うために空き管理情報手段６４で管理される空き管理情報を並び換える管理情報制御手段６６とを備えた。
【００２２】
さらに、一括ブロック要求手段１から出力要求があった場合に前記処理手段２は、書き込みデータを順次複数のバッファに書き込みその都度書き込みバッファの数を管理する。判定手段３８は前記書き込まれたバッファの数が前記バッファ獲得算出手段５で算出されたバッファ数よりも大きいか否かを判定する。リスト作成部３９はこの判定手段３８により書込バッファ数が算出バッファ数よりも大きいと判定された場合にバッファに書き込まれたブロックをリストにする。出力手段４０はこのリスト作成部３９でリスト構造にした複数ブロックを一括して記憶手段３に出力する。
【００２３】
一括ブロック要求手段１は、例えばアプリケーションプログラムであり、記憶手段３は、ディスク装置、フロッピーディスク、光磁気ディスクなどであってもよい。
【００２４】
【作用】
本発明によれば、一括ブロック要求手段１が記憶手段３の複数ブロックを一括して入力するために一括ブロック入力要求を行うと、処理手段２は、一括ブロック要求手段１の一括ブロック入力要求に基づき、一括ブロック要求手段１と複数のバッファ４との間で複数ブロックの入力処理を行うとともに、複数のバッファ４と記憶手段３との間で複数ブロックの入力処理とを行う。
【００２５】
また、一括ブロック要求手段１が記憶手段３の複数ブロックを一括して出力するために一括ブロック出力要求を行うと、処理手段２は、一括ブロック要求手段１の一括ブロック出力要求に基づき、一括ブロック要求手段１と複数のバッファ４との間で複数ブロックの出力処理を行うとともに、複数のバッファ４と記憶手段３との間で複数ブロックの出力処理とを行う。
【００２６】
すなわち、１回の入力要求又は出力要求により複数ブロックの一括入力処理又は一括出力処理を行えるので、ファイルを高速にアクセスすることができる。従って、入出力要求回数及びディスクなどの回転待ち回数の削減、ユーザ資産の移行性による問題点及び資源の有効利用が図れる。
【００２７】
また、空き管理情報手段６４が、ファイルシステム上の空いているブロックの配置を空き管理情報により管理し、判別手段６５が記憶手段３の特性を判別する。
【００２８】
管理情報制御手段６６は、処理手段２がブロックの獲得又は解放を行った場合に判別手段６５で判別された特性に応じて個々のブロックの最適配置を行うために空き管理情報手段６４で管理される空き管理情報を並び換えるので、ブロックを最適に配置できるからアクセスにおける入出力時間を短縮することができる。
【００２９】
【実施例】
以下、本発明の具体的な実施例を説明する。実施例１は一括入出力要求に対して複数ブロックの一括入出力処理を行うものである。図２は実施例１の一括入力の構成ブロック図である。
【００３０】
＜一括入力の構成＞
図２において、ファイル管理装置は、アプリケーション部１、オペレーティングシステム部２（以下、ＯＳ部と称する。）、複数のファイルを構築する情報記憶装置３を有している。なお、各々のファイルは１つ以上のブロックから構成される。
【００３１】
アプリケーション部１は、アプリケーションプログラムを有し、データの入力要求（データの読み込み）とデータの出力要求（データの書き込み）を行う。
ＯＳ部２は、アプリケーション部１に接続され、アプリケーション部１のデータの入出力要求に対して、情報記憶装置３の目的のファイルのデータの入力処理とデータの出力処理とを行う。ＯＳ部２は、ファイルアクセス処理部２１、バッファ管理部２２、入出力要求部２３を有する。
【００３２】
ファイルアクセス処理部２１は、アプリケーション部１からの入出力要求に基づき目的のファイルに対してアクセス処理を行う。ファイルアクセス処理部２１は、ブロック数依頼部３１、ファイル管理部３２、複数バッファ獲得部３３、リスト作成部３４、入出力要求依頼部４０を有している。
【００３３】
バッファ管理部２２は、複数のブロックに対応した複数のバッファ４ａ〜４ｎを有している。また、バッファ管理部２２は、複数のバッファの内、ブロックがはいっているバッファとブロックがはいっていない（以下、空き状態という。）バッファをリストにしたフリーリスト部３５と、バッファ獲得算出部５とを有している。
【００３４】
ブロック数依頼部３１は、アプリケーション部１の一括ブロック入出力要求に基づき、バッファ獲得算出部５に対して、一括して入力できるブロックの数を求めるよう依頼する。
【００３５】
ファイル情報部３２は、ファイルのサイズやブロックを管理するもので、アプリケーション部１の一括ブロック入力要求に含まれるブロック番号を管理情報として登録する。
【００３６】
バッファ獲得算出部５は、ブロック数依頼部３１からの一括ブロック依頼に対し、フリーリスト部３５にリストされている空き状態のバッファの数に基づき実際に一括してブロックを入力要求できる一括バッファの数を算出する。
【００３７】
ここでは、バッファ獲得算出部５は、例えば空き状態のバッファの数をプロセスの数で除算した結果を実際の一括バッファ数として算出する。ここで、プロセスは、タスクのことであり、システムの環境に応じて値が変化する。
【００３８】
複数バッファ獲得部３３は、バッファ獲得算出部５で算出された一括バッファの数に基づきファイル上のブロックに対するバッファを獲得する。
リスト作成部３４は、複数バッファ獲得部３３で獲得した一括バッファの一括リスト構造を作成する。
【００３９】
入出力要求依頼部４０は、そのリスト構造をもとに入出力要求部２３に依頼する。
入出力要求部２３は、リスト作成部３４で作成された一括リスト構造に基づき情報記憶装置３に一括入力要求を発行し、情報記憶装置３の該当するファイルから一括入力要求に応じた複数ブロックを入力し、その複数ブロックを複数のバッファに送る。ファイルアクセス処理部２１は、複数のバッファから複数ブロックをアプリケーション部１に送り、バッファ管理部２２に対して獲得したバッファを解放する。
【００４０】
＜データの一括入力処理＞
図３は実施例１の一括入力処理を示すフローである。次に、図２及び図３を参照して複数ブロックの一括入力処理を説明する。ここでは、例えばアプリケーション部１がブロックＡ，Ｂ，Ｃを入力要求した場合について説明する。
【００４１】
まず、アプリケーション部１がブロック番号Ａ，Ｂ，Ｃを含む一括ブロック入力要求をファイルアクセス処理部２１に行う（ステップ１０１）。ブロック数依頼部３１は、一括入力要求Ａ，Ｂ，Ｃに基づき、バッファ獲得算出部５に対して、アプリケーション部１が一括して入力できるブロックの数を求めるよう依頼する（ステップ１０２）。ファイル情報部３２は入力要求に含まれるブロック番号Ａ，Ｂ，Ｃを管理情報に登録している。
【００４２】
すると、バッファ獲得算出部５は、ブロック数依頼部３１からの一括ブロック依頼に対し、フリーリスト部３５にリストされている空き状態のバッファの数に基づき実際に一括して入力できる一括バッファの数を算出し、その数をプロセス数で除した数を一括バッファの数とする（ステップ１０３）。ここでは、例えば空き状態であるバッファが３つ以上存在しプロセス数が１であるとし、実際に一括して入力できる一括バッファの数は３となる。
【００４３】
次に、複数バッファ獲得部３３は、バッファ獲得算出部５で算出された一括バッファの数に基づきファイル上のブロックＡ，Ｂ，Ｃに対する複数のバッファとして例えばバッファ４ｎ−２，４ｎ−１，４ｎを獲得する（ステップ１０４）。さらに、リスト作成部３４は、複数バッファ獲得部３３で獲得した一括バッファの一括リスト構造を作成する（ステップ１０５）。入出力要求依頼部４０はそのリスト構造をもとに入出力要求部２３に依頼する。
【００４４】
そして、入出力要求部２３は、リスト作成部３４で作成された一括リスト構造に基づき情報記憶装置３に一括入力要求を発行する（ステップ１０６）。一括入力要求が完了すると、情報記憶装置３の該当するファイルから一括入力要求に応じた複数ブロックＡ，Ｂ，Ｃを入力し、その複数ブロックＡ，Ｂ，Ｃをバッファ４ｎ−２，４ｎ−１，４ｎに送る（ステップ１０７）。
そして、ファイルアクセス処理部２１は、バッファ４ｎ−２，４ｎ−１，４ｎからブロックＡ，Ｂ，Ｃをアプリケーション部１に送り、獲得したバッファ４ｎ−２，４ｎ−１，４ｎを解放する（ステップ１０８）。すると、フリーリスト部３５には、ブロック番号Ａ，Ｂ，Ｃがリストされる。
【００４５】
このように、複数ブロックの一括入力によれば、ファイルシステムのブロック長を拡大せずに、しかも既存のファイルシステムを変更せずにファイルの高速アクセスを図ることができる。
【００４６】
＜一括出力の構成＞
図４は実施例１の一括出力の構成ブロック図である。図４において、図２に示す符号と同一の符号が付された部分は同一の動作を行うものとし、その詳細は省略する。ここでは、一括出力時の特有な部分について説明する。
【００４７】
ファイルアクセス処理部２１は、一括出力時にはさらに、情報記憶装置３のファイルに対してブロックの割付け処理を行う。さらに、バッファを獲得してアプリケーション部１からのライトデータを書き込む。
【００４８】
ファイル情報部３７は、この獲得されたバッファをリンクさせると共に、リンクされたバッファの数、すなわちリンク数に１を加算した加算リンク数を管理情報として記憶する。その後、獲得したバッファを解放しフリーリスト部３５にリンクする。
【００４９】
バッファ獲得数判定部３８は、バッファ獲得算出部５で得られたバッファ数がファイル情報部３７の内のリンク数よりも小さいか否かを判定する。
リスト作成部３９は、バッファ獲得数判定部３８によりバッファ獲得算出部５で得られたバッファ数がファイル情報部３７の内のリンク数より小さいと判定された場合にリスト構造を作成し、ファイル情報部３７のリンク数をクリアにするとともにリンクされているすべてのバッファをファイル情報部とフリーリスト部から切り離す。
【００５０】
但し、判定が偽りとなった場合、アプリケーション部１からの要求を全て満足していない時に限り、再度ブロックの割り付け処理から処理を繰り返す。リスト作成部３９は、入出力要求部２３に出力要求を行う。
【００５１】
入出力要求部２３は、情報記憶装置３に対して出力要求を発行し、情報記憶装置３にライトデータの書き込みが完了すると、書き込み完了をファイルアクセス処理部２１に出力する。ファイルアクセス処理部２１はバッファ管理部２２に対して獲得したバッファを解放する。
【００５２】
＜データの一括出力処理＞
次に、実施例１の一括出力処理を説明する。図５は実施例１の一括出力処理を示すフローである。まず、アプリケーション部１から出力要求がファイルアクセス処理部２１に対して行われる。すると、ファイルアクセス処理部２１が情報記憶装置３のファイルに対してブロックの割付け処理を行う（ステップ２０１）。
【００５３】
次に、割り付けしたブロックに対してバッファを獲得してバッファにアプリケーション部１からのライトデータを書き込む（ステップ２０２）。さらに、ファイル情報部３７は、このバッファをリンクし、リンク数に１を加算して加算リンク数を記憶する（ステップ２０３）。その後、獲得したバッファをフリーリスト部３５に解放する。
【００５４】
次に、ブロック数依頼部３１は、バッファ獲得算出部５に対して、アプリケーション部１が一括して出力できるブロックの数を求めるよう依頼する（ステップ２０４）。さらに、バッファ獲得算出部５は、ブロック数依頼部３１からの一括ブロック依頼に対し、フリーリスト部３５にリストされている空き状態のバッファの数に基づき実際に一括して出力できる一括バッファの数を算出し、その数をプロセス数で除した数を一括バッファの数とする（ステップ２０５）。ここでは、例えば一括バッファ数が３である。
【００５５】
そして、バッファ獲得数判定部３８では、バッファ獲得算出部５で得られたバッファ数がファイル情報部３７の内のリンク数よりも小さいか否かを判定する（ステップ２０６）。
【００５６】
ここで、バッファ獲得算出部５で得られたバッファ数がファイル情報部３７の内のリンク数よりも大きいとバッファ獲得数判定部３８が判定した場合には、ステップ２０１の処理に戻り、ステップ２０１〜２０６の処理を行う。
【００５７】
一方、バッファ獲得算出部５で得られたバッファ数がファイル情報管理部の内のリンク数より小さいとバッファ獲得数判定部３８が判定した場合には、ファイル情報部３７に例えばＡ，Ｂ，Ｃが登録され、リンク数は３となる。また、バッファ４ｎ−２，４ｎ−１，４ｎにブロックＡ，Ｂ，Ｃが書き込まれている。
【００５８】
そして、リスト作成部３９は、ブロック番号Ａ，Ｂ，Ｃのリスト構造を作成する（ステップ２０７）。さらに、リスト作成部３９は、ファイル情報部３７のリンク数をクリアにし（ステップ２０８）、リンクされているすべてのバッファをファイル情報部３７とフリーリスト部３５から同時に切り離す（ステップ２０９）。そして、リスト作成部３９は、入出力要求部２３に出力要求を行う（ステップ２１０）。
【００５９】
入出力要求部２３は、情報記憶装置３に対して出力要求を発行し（ステップ２１１）、情報記憶装置３にライトデータの書き込みが完了すると、書き込み完了を入力する（ステップ２１２）。さらに、ファイルアクセス処理部２１は、バッファ管理部２２に対して獲得したバッファを解放する（ステップ２１３）。
【００６０】
このように、複数ブロックの一括出力によれば、ファイルシステムのブロック長を拡大せずに、しかも既存のファイルシステムを変更せずにファイルの高速アクセスを図ることができる。
【００６１】
＜実施例２＞
次に、本発明の実施例２について説明する。実施例２はブロックの解放処理及び獲得処理を行うものである。
＜ブロック解放時の処理＞
図６は実施例２のブロック解放時の構成ブロック図である。図７は実施例２のブロック解放時の処理を示すフローである。
【００６２】
図６及び図７を参照してブロック解放時の処理を説明する。ファイルの削除を行う削除アプリケーション部１ａとファイルに追加書込みを行う書込アプリケーション部１ｂが設けられている。
【００６３】
まず、ブロック解放処理を開始する。次に、排他占有部６１は、削除アプリケーション部１ａと書込アプリケーション部１ｂとのうち削除アプリケーション部１ａに対して排他占有を行う（ステップ３０１）。このとき、ファイル情報部６２にブロック番号Ｂ１，Ｂ３，Ｂ４が登録されている。
【００６４】
次に、そして、装置種別部６５は情報記憶装置３の種別の判断を行う（ステップ３０２）。ここで、種別とは、ディスク装置、フロッピーディスク、光磁気ディスク装置などの種類である。さらに、最適配置解放処理部６６は、装置種別部６５で判別された情報記憶装置３の種別に応じて、解放（削除）すべきファイル情報部６２のブロックＢ１，Ｂ３，Ｂ４と空き管理情報部６４のブロック番号Ｂ２とを最適な配置にすべくブロックの並び換えを行う（ステップ３０３）。
【００６５】
すると、空き管理情報部６４にはブロック番号がＢ１，Ｂ２，Ｂ３，Ｂ４と正しい順に並べられて登録される。
次に、排他解除部６７は、削除アプリケーション部１ａの排他占有を解除して書き込みアプリケーション部１ｂを立ちあげる（ステップ３０４）。以上の処理が終了すると、ブロック解放処理が終了する。
【００６６】
＜ブロック獲得時の処理＞
次に、ブロック獲得処理を説明する。図８は実施例２のブロック獲得時の構成ブロック図、図９は実施例２のブロック獲得時の処理を示すフローである。
【００６７】
ファイルに追加書込みを行う書込アプリケーション部１ｂとファイルの削減を行う削除アプリケーション部１ｃとが設けられている。このブロック獲得処理では、書込アプリケーション部１ｂ書き込み追加処理を行う場合に説明する。
【００６８】
まず、前記排他解除部６７により書き込みアプリケーション部１ｂが立ち上がると、ブロック獲得処理を開始する。
次に、排他占有部６１は、削除アプリケーション部１ｃと書込アプリケーション部１ｂのうち書込アプリケーション部１ｂに対して排他占有を行う（ステップ４０１）。このとき、ファイル情報部６２にはブロックは獲得されていない。
【００６９】
次に、そして、装置種別部６５は情報記憶装置３の種別の判断を行う（ステップ４０２）。さらに、最適配置獲得処理部６８は、装置種別部６５で判別された情報記憶装置３の種別に応じて、空き管理情報部６４から獲得すべきブロックを最適な配置にすべくブロックの並び換えを行う（ステップ４０３）。
【００７０】
すると、ファイル情報部６２にはブロック番号がＢ１，Ｂ２，Ｂ３と正しい順に並べられて登録される。
次に、排他解除部６７は、書込アプリケーション部１ｂの排他占有を解除する（ステップ４０４）。以上の処理が終了すると、ブロック獲得処理が終了する。
【００７１】
このように、実施例２によれば、情報記憶装置３の特性に応じて個々のブロックの最適配置を行うためにファイルシステムの空き管理情報を並び換えるので、さらにファイルの高速アクセスを図ることができる。
【００７２】
以上実施例１及び実施例２で説明したように、ファイルシステムのブロック長を拡大せずに、しかも既存のファイルシステムを変更せずに複数ブロックの一括入出力によりファイルの高速アクセスを図ることができる。これにより、ファイルシステムの再作成や移行作業が不要となる。
【００７３】
また、バッファ数を調整することにより入出力の単位が自動的に変更できるため性能のチューニングが可能となる。
また、情報記憶装置３の特性に応じて個々のブロックの最適配置を行うためにファイルシステムの空き管理情報を並び換えるので、さらにファイルの高速アクセスを図ることができる。
【００７４】
【発明の効果】
本発明によれば、ファイルシステムのブロック長を拡大せずに、しかも既存のファイルシステムを変更せずに複数ブロックの一括入出力によりファイルの高速アクセスを図ることができる。これにより、ファイルシステムの再作成や移行作業が不要となる。さらに、バッファ数を調整することにより入出力の単位が自動的に変更できるため、性能のチューニングが可能となる。
【００７５】
また、装置の特性に応じて個々のブロックの最適配置を行うためにファイルシステムの空き管理情報を並び換えるので、さらにファイルの高速アクセスを図ることができる。
【図面の簡単な説明】
【図１】本発明の原理図である。
【図２】実施例１の一括入力の構成ブロック図である。
【図３】実施例１の一括入力処理を示すフローである。
【図４】実施例１の一括出力の構成ブロック図である。
【図５】実施例１の一括出力処理を示すフローである。
【図６】実施例２のブロック解放時の構成ブロック図である。
【図７】実施例２のブロック解放時の処理を示すフローである。
【図８】実施例２のブロック獲得時の構成ブロック図である。
【図９】実施例２のブロック獲得時の処理を示すフローである。
【図１０】従来のブロック解放時の構成を示す図である。
【図１１】従来のブロック獲得時の構成を示す図である。
【符号の説明】
１・・アプリケーション部
２・・オペレーティングシステム部
３・・情報記憶装置
４・・バッファ
５・・バッファ獲得算出部
２１・・ファイルアクセス処理部
２２・・バッファ管理部
２３・・入出力要求部
３１・・ブロック数依頼部
３２，３７・・ファイル情報部
３３，３６・・複数バッファ獲得部
３４，３９・・リスト作成部
３５・・フリーリスト部
３８・・獲得バッファ数判定部
４０・・入出力要求依頼部
６１・・排他占有部
６４・・空き管理情報部
６５・・装置種別部
６６・・最適配置解放処理部
６７・・排他解除部
６８・・最適配置獲得処理部
【図１】
0003609841.tif 000002
【図２】
0003609841.tif 000003
【図３】
0003609841.tif 000004
【図４】
0003609841.tif 000005
【図５】
0003609841.tif 000006
【図６】
0003609841.tif 000007
【図７】
0003609841.tif 000008
【図８】
0003609841.tif 000009
【図９】
0003609841.tif 000010
【図１０】
0003609841.tif 000011
【図１１】
0003609841.tif 000012