JPH10283230A - ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体 - Google Patents

ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体

Info

Publication number
JPH10283230A
JPH10283230A JP9096543A JP9654397A JPH10283230A JP H10283230 A JPH10283230 A JP H10283230A JP 9096543 A JP9096543 A JP 9096543A JP 9654397 A JP9654397 A JP 9654397A JP H10283230 A JPH10283230 A JP H10283230A
Authority
JP
Japan
Prior art keywords
block
size
empty
block size
storage device
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.)
Pending
Application number
JP9096543A
Other languages
English (en)
Inventor
Yuichi Aiba
雄一 相場
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP9096543A priority Critical patent/JPH10283230A/ja
Publication of JPH10283230A publication Critical patent/JPH10283230A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 二次記憶装置上の記憶領域を複数のサイズの
ブロックに仕切り、複数のブロックサイズが混在した状
態で運用できるようにする。 【解決手段】 複数のブロックサイズを指定した構築指
示に従って、サイズ別空き領域確保手段102及び空き
領域管理情報構築手段103は、二次記憶装置200上
にブロックサイズ別の空きブロックを確保し、各ブロッ
クサイズ別に空きブロックを管理する空き領域管理情報
を作成して二次記憶装置200に記録する。運用時、フ
ァイルのデータ等を書き込むために空きブロックが必要
な場合、ブロックサイズ決定手段106は、書き込むべ
きデータに応じて必要なブロックサイズを決定し、空き
ブロック抽出手段107は、この決定されたブロックサ
イズの空きブロックを前記空き領域管理情報から抽出
し、ブロック割り当て手段108は、この抽出されたブ
ロックを、指定されたファイルの所属とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、二次記憶装置上に
論理ファイルを形成しデータを格納するファイルデータ
格納装置に関し、特に複数のブロックサイズによる運用
を可能とし、記憶領域の無駄を節約するファイルデータ
格納装置に関する。
【0002】
【従来の技術】1つの二次記憶装置を、複数の仮想的な
記憶装置(論理ファイル、または単にファイル)として
見せるための機構として、UNIXのファイルシステム
など様々なファイルデータ格納機構がある。なお、UN
IXのファイルシステムに関する文献としては、例えば
「UNIXカーネルの設計」共立出版や、「UNIX
4.3BSDの設計と実装」丸善や、「UNIX Int
ernals:The New Frontiers」
Prince−Hallなどがある。
【0003】これらのファイルデータ格納機構では、二
次記憶装置上の記憶領域をブロックと呼ばれる固定サイ
ズの区画に仕切り、各ブロックを各ファイルの記憶領域
として割り付けることにより、論理的な複数のファイル
を1つの二次記憶装置上に実現する。
【0004】各ブロックのファイルへの割り付けを固定
的に決めると、各ファイルの容量が固定的に制限されて
しまう。そこで、ほとんどのファイルデータ格納機構で
は、各ブロックのファイルへの割り付けを動的に行って
いる。これにより、各ファイルの容量制限に自由度を持
たせ、全ファイルの容量の合計が全体の容量に制限され
るようにしている。
【0005】各ブロックのファイルへの割り付けを動的
に行うため、UNIXのファイルシステムなどでは、フ
ァイルに割り付けられていないブロックを空きブロック
として一括管理する。
【0006】或るファイルにデータを格納する際に、必
要な数の空きブロックを獲得し、それらのブロックをそ
のファイルの所属として割り付ける。これにより、デー
タの格納のために必要な容量だけが、そのファイルに割
り付けられることになる。
【0007】逆に、或るファイルに格納されているデー
タが必要なくなった際には、そのデータを消去するだけ
でなく、そのファイルの所属として割り付けられている
ブロックを解放し、空きブロックとしての一括管理に戻
す。
【0008】以上により、二次記憶装置の容量を動的に
各ファイルに割り当てることができる。
【0009】しかし、従来のファイルデータ格納機構で
は、ブロックのサイズを固定的に一定の値に決めること
しかできなかった。このことによる問題を以下に説明す
る。
【0010】1つのファイルに格納できるデータ量を増
やすには、1つのファイルに割り付けるブロックの数を
増やす方法と、ブロックのサイズ自体を大きくする方法
がある。
【0011】まず、1つのファイルに割り付けるブロッ
ク数を増やす場合を考える。この場合、各ファイルにど
のブロックが割り付けられているかなどを記録する管理
データ(ファイル管理データ)が増大し、ファイル中の
データにアクセスする際に、ファイル管理情報の参照が
増える。このため、ファイル中のデータにアクセスする
時間が長くなってしまうという問題がある。
【0012】また、ファイルの管理情報が増大すると、
このファイル管理情報も二次記憶装置上に記録されるた
め、実際のデータを記録するための二次記憶装置の容量
がその分だけ減少することにもなる。
【0013】次に、ブロックサイズを大きくした場合を
考える。大きなファイルのデータにアクセスする際に
は、管理情報の参照も少なく、二次記憶装置へのI/O
回数も減るため、アクセス時間は短縮される。
【0014】しかし、小さいファイルのデータやファイ
ルの管理情報など、ブロックサイズと比較して小さなデ
ータでも同じサイズのブロックに格納されるため、ブロ
ックの一部にしか有効なデータが格納されず、記憶領域
が無駄になってしまうという問題がある。
【0015】
【発明が解決しようとする課題】従来の技術における第
1の問題点は、ファイル中に格納できるデータ量の拡大
を、ブロック数の増大によって実現した場合、ファイル
の管理情報が増大し、ファイル中のデータへのアクセス
時間が長くなることにあった。
【0016】更に、この場合、二次記憶装置中のファイ
ル管理情報の占める容量が増大し、その分だけ二次記憶
装置に記憶できる実際のデータ量が減少することも問題
であった。
【0017】従来の技術における第2の問題点は、ファ
イル中に格納できるデータ量の拡大を、ブロックサイズ
の拡大によって実現した場合、小データも同じ大サイズ
のブロックに格納されるため、ブロックの一部しか記憶
のために有効に利用されず、大部分の記憶領域が無駄に
なるということにあった。
【0018】そこで本発明の第1の目的は、ブロックの
サイズを複数用意し、書き込むデータに応じてブロック
サイズを使い分けることにより、巨大ファイルへの高速
アクセスを実現しながら、二次記憶装置上の記憶領域を
有効に利用し得るようにすることにある。
【0019】また本発明の第2の目的は、複数のブロッ
クサイズについて、二次記憶装置上に占める記憶領域の
割合を動的に変更し得るようにして、記憶領域全体のよ
り一層の有効利用を可能とすることにある。
【0020】
【課題を解決するための手段】本発明は、上記第1の目
的を達成するために、二次記憶装置上に複数の論理ファ
イルを構成するファイルデータ格納装置において、前記
二次記憶装置を制御する入出力制御部に、複数のブロッ
クサイズを指定した構築指示に従って、二次記憶装置上
にブロックサイズ別の空きブロックを確保し、かつ、各
ブロックサイズ別に空きブロックの情報を管理する空き
領域管理情報を作成して二次記憶装置に記録する構築部
と、二次記憶装置上に書き込むべきデータに応じて必要
なブロックサイズを決定するブロックサイズ決定手段
と、該ブロックサイズ決定手段で決定されたブロックサ
イズの空きブロックの情報を前記空き領域管理情報から
抽出する空きブロック抽出手段と、該空きブロック抽出
手段で抽出されたブロックを、指定されたファイルの所
属とするブロック割り当て手段と、ファイルに割り当て
られているブロックをそのファイルの所属から取り除く
ブロック解放手段と、該ブロック解放手段で解放された
ブロックの情報をそのブロックのブロックサイズに対応
する空き領域管理情報に登録する空きブロック登録手段
とを備えている。
【0021】このように構成されたファイルデータ格納
装置においては、複数のブロックサイズを指定した構築
指示が与えられると、その構築指示に従って構築部が、
二次記憶装置上にブロックサイズ別の空きブロックを確
保し、かつ、各ブロックサイズ別に空きブロックの情報
(例えばブロック番号)を管理する空き領域管理情報を
作成して二次記憶装置に記録する。その後、実際の運用
が開始され、或るファイルのデータやファイル管理情報
などを記録するために空きブロックが必要になると、ブ
ロックサイズ決定手段が二次記憶装置上に書き込むべき
データに応じて必要なブロックサイズを決定し、空きブ
ロック抽出手段がこの決定されたブロックサイズの空き
ブロックの情報を前記空き領域管理情報から抽出し、ブ
ロック割り当て手段がこの抽出されたブロックを、指定
されたファイルの所属とする。また、或るファイルに所
属していたブロックが不要になった場合、ブロック解放
手段が、そのファイルに割り当てられているブロックを
そのファイルの所属から取り除き、空きブロック登録手
段がこの解放されたブロックの情報をそのブロックのブ
ロックサイズに対応する空き領域管理情報に登録する。
【0022】また本発明は上記第2の目的をも達成する
ために、以下の空きブロック分割手段およびブロック結
合手段のうち少なくとも一方の手段を入出力制御部に備
えている。
【0023】複数のブロックサイズのうち最小サイズ以
外のブロックサイズの空きブロックを抽出し、該抽出し
たブロックを該ブロックサイズより小さなブロックサイ
ズの空きブロックに分割する空きブロック分割手段。複
数のブロックサイズのうち最大サイズ以外のブロックサ
イズの空きブロックを複数個集めて、それより大きなブ
ロックサイズのブロック1個分に結合するブロック結合
手段。
【0024】ブロックサイズ別のブロック数を固定にす
ると、実際の運用状態によっては特定のブロックサイズ
に利用が集中し、そのブロックサイズの空きブロックが
枯渇する恐れがある。このような場合、空きブロック分
割手段を備える構成にあっては、複数のブロックサイズ
のうち最小サイズ以外のブロックサイズの空きブロック
を抽出し、この抽出したブロックを該ブロックサイズよ
り小さなブロックサイズの空きブロックに分割するた
め、余っている大サイズの空きブロックを小サイズの空
きブロックに流用することができ、小サイズの空きブロ
ックの枯渇を防止することができる。他方、ブロック結
合手段を備える構成にあっては、複数のブロックサイズ
のうち最大サイズ以外のブロックサイズの空きブロック
を複数個集めて、それより大きなブロックサイズのブロ
ック1個分に結合するため、余っている小サイズの空き
ブロックを大サイズの空きブロックに流用することがで
き、大サイズの空きブロックの枯渇を防止することがで
きる。
【0025】また別の発明にあっては、前記入出力制御
部に、各ブロックサイズ別の占有状況を管理するブロッ
クサイズ別占有率管理手段を備え、前記空きブロック分
割手段は、空きブロックの分割により各ブロックサイズ
別の占有状況が所定の条件を満たさなくなる場合には、
空きブロックの分割を行わない構成を有し、前記ブロッ
ク結合手段は、空きブロックの結合により各ブロックサ
イズ別の占有状況が所定の条件を満たさなくなる場合に
は、空きブロックの結合を行わない構成を有している。
これによって、ブロックサイズ別の記憶領域の占有率を
所望の範囲内に維持することができ、大きなサイズのブ
ロックの分割が際限なく繰り返されることにより、大き
なサイズのブロックが枯渇したり、その逆に、小さなサ
イズのブロックの結合が際限なく繰り返されることによ
り、小さなサイズのブロックが枯渇したりすることを防
止することができる。
【0026】
【発明の実施の形態】次に本発明の実施の形態の例につ
いて図面を参照して詳細に説明する。
【0027】図1は本発明のファイルデータ格納装置の
一実施例のブロック図である。この例のファイルデータ
格納装置は、磁気ディスク装置等で構成された二次記憶
装置200と、これを制御する入出力制御部100と、
記録媒体300とから構成されている。
【0028】入出力制御部100は、本実施例の場合、
構築指示解析手段101と、サイズ別空き領域確保手段
102と、空き領域管理情報構築手段103と、ファイ
ル書き込み読み出し手段104と、キャッシュ105
と、ブロックサイズ決定手段106と、空きブロック抽
出手段107と、ブロック割り当て手段108と、ブロ
ック解放手段109と、空きブロック登録手段110と
を含んでいる。
【0029】このような入出力制御部100は、例えば
メモリおよび演算処理装置から構成されるデータ処理装
置で実現することができる。
【0030】記録媒体300は、磁気ディスク,半導体
メモリその他の記録媒体であり、ここに記録されたプロ
グラムは入出力制御部100を構成するデータ処理装置
に読み込まれ、データ処理装置の動作を制御し、データ
処理装置を、上記各手段として機能させる。
【0031】以下、本実施例の各部の機能をその全体の
動作を通じて説明する。
【0032】一般にファイルデータ格納装置の運用を管
理する利用者を管理者と呼び、一般の利用者とは区別す
る。管理者は、ファイルデータ格納装置を一般の利用者
が利用できる状態としたり、運用中にファイルデータ格
納装置の記憶領域がどれほど使用されているかなどを監
視,管理する。
【0033】二次記憶装置200をファイルデータ格納
用として用いるために、管理者は、二次記憶装置200
上にファイルデータ格納機構を構築する。この際、ブロ
ックのサイズをどれほどにするかなどの構成を決定して
おく。本発明においては、複数のブロックサイズが使用
できるため、管理者は、使用するブロックサイズを複数
種類決定する。使用する複数種類のブロックサイズは任
意であるが、本実施例では、最小のブロックサイズ以外
のブロックサイズが、最小サイズの整数倍となるように
決定しておく。
【0034】管理者は、使用するブロックサイズを複数
種類決定すると、図示しないキーボード等の入力装置か
ら、それらのブロックサイズを指定した構築指示を入出
力制御部100に投入する。構築指示は、例えばUNI
Xにおけるコマンドのような形で実現される。この場
合、ブロックサイズの指定は、コマンドのパラメータで
与えることができる。
【0035】投入された構築指示は、構築指示解析手段
101で解析され、ブロックサイズの情報がサイズ別空
き領域確保手段102に伝達される。このサイズ別空き
領域確保手段102と後段の空き領域管理情報構築手段
103とで、二次記憶装置200上にブロックサイズ別
の空きブロックを確保し、且つ各ブロックサイズ別に空
きブロックを管理する空き領域管理情報を作成して二次
記憶装置200に記録する構築部が構成される。
【0036】まず、サイズ別空き領域確保手段102
は、二次記憶装置200上に各ブロックサイズ毎の空き
領域(空き容量)を確保する。その処理の一例を図2に
示す。
【0037】サイズ別空き領域確保手段102は、構築
指示解析手段101から渡された複数のブロックサイズ
の内から最大のブロックサイズを取り出し(S1)、こ
の最大ブロックサイズで二次記憶装置200上の記憶領
域を仕切って、各ブロックに一意な番号を割り付ける
(S2)。次に、各ブロックサイズに割り当てるべき空
き領域の割合を決定し、ステップS2で仕切ってできた
ブロックの総数から、各ブロックサイズ毎に割り当てる
べきブロック数を計算する(S3)。ここで、各ブロッ
クサイズに割り当てるべき空き領域の割合は予め静的に
決定しておく方法以外に、構築指示の1つのパラメータ
としてブロックサイズと共に指定する方法がある。
【0038】例えば構築指示で指定されたブロックサイ
ズが、A,B,Cの3種類であり、Aが最も大きなサイ
ズで、次にBが大きく、Cが最も小さいサイズとし、各
ブロックサイズに割り当てるべき領域の割合がA:B:
C=4:5:3であった場合、二次記憶装置200の記
憶領域をブロックサイズAで仕切り、このとき例えば図
3に示すように合計12個のブロックができたとする
と、図示するように二次記憶装置200の先頭アドレス
(0)のブロックから順に、各ブロックに0,1,…,
11と連続するブロック番号を割り付け、各ブロックサ
イズに割り当てるブロック数として同図(b)に示すブ
ロック数を求める。なお、このような0から連続する番
号を割り付けることにより、ブロック番号にブロックサ
イズAを乗じることで、そのブロックの先頭アドレスが
求まり、ブロック番号で各ブロックを一意に識別するこ
とができる。
【0039】次に空き領域管理情報構築手段103は、
サイズ別空き領域確保手段102で仕切られてできた最
大サイズのブロックを、上記算出された各ブロックサイ
ズ毎の割り当てブロック数に従って個々のブロックサイ
ズ毎に割り振り、かつ最大サイズ以外のブロックサイズ
に割り振ったブロックは分割することにより当該ブロッ
クサイズの大きさにすると共に一意なブロック番号を割
り付ける。そして、各ブロックサイズ毎に、空きブロッ
クを管理する空き領域管理情報を作成して二次記憶装置
200に記録する。その処理の一例を図4に示す。
【0040】空き領域管理情報構築手段103は、サイ
ズ別空き領域確保手段102で仕切られてできた最大サ
イズのブロックの全ブロック番号を集合Uに入れ(S1
1)、まず最大のブロックサイズに注目する(S1
2)。そして、サイズ別空き領域確保手段102で決定
された最大ブロックサイズへの割り当て数に応じた数の
ブロック番号を集合Uから取り出し(S13)、最大ブ
ロックサイズ用の空き領域管理情報を作成して二次記憶
装置200に記録する(S14)。
【0041】次に、未処理のブロックサイズが残ってい
るか否かを調べ(S15)、残っていれば、次にサイズ
の大きなブロックサイズに注目を移し(S16)、集合
Uに含まれる各ブロック番号のブロックをN分割し、こ
の分割してできた個々のブロックの番号を計算し、集合
Uを一旦空にした後、その集合Uに今回計算したブロッ
ク番号の全てを格納する(S17)。ここで、Nは、次
式に示す値である。 N=直前に注目していたブロックサイズ/現在注目しているブロックサイズ …(1)
【0042】そして、サイズ別空き領域確保手段102
で決定された当該ブロックサイズへの割り当て数に応じ
た数のブロック番号を集合Uから取り出し(S13)、
当該ブロックサイズ用の空き領域管理情報を作成して二
次記憶装置200に記録する(S14)。
【0043】他方、ステップS15で未処理のブロック
サイズが残っていないと判断したときは、処理を終了す
る。
【0044】空き領域管理情報構築手段103の動作
を、図3を参照して説明すると以下のようになる。
【0045】先ず、ブロック番号0〜11を集合Uに入
れる(S11)。最大ブロックサイズAに注目し(S1
2)、それに割り当てるべきブロック数「4」に応じ
て、集合Uから4つのブロック番号を取り出す(S1
3)。ブロック番号は先頭から順に取り出しても良い
し、ランダムに取り出しても良い。今の場合、ブロック
番号0,1,2,3を取り出したとする。次に、最大ブ
ロックサイズA用の空き領域管理情報を作成し、二次記
憶装置200に記録する(S14)。ここで、最大ブロ
ックサイズA用に作成した空き領域管理情報は、このブ
ロックサイズA用に割り当てた何れか1つまたは複数の
ブロックに格納する。
【0046】次に、ブロックサイズBに注目を移し(S
16)、N=ブロックサイズA/ブロックサイズB=2
とすると、集合Uに含まれる各ブロック番号4〜11の
ブロックを図3(c)に示すように2等分し、個々のブ
ロック番号を以下のように計算して、集合Uに格納する
(S17)。 分割後のブロック番号=分割前のブロック番号×N+n …(2) 但し、n=0,…,(N−1)
【0047】従って、分割後の各ブロックの番号は図3
(c)に付記したようになる。ここで、分割後のブロッ
ク番号にブロックサイズBを乗じると、そのブロックの
先頭アドレスが求まるため、各ブロック番号が各ブロッ
クを一意に識別する情報となる。
【0048】そして、サイズ別空き領域確保手段102
で決定されたブロックサイズBの割り当てブロック
「5」に応じて、最大サイズのブロック数にして5個、
当該ブロックサイズBのサイズにして5×2、つまり1
0個のブロック番号を集合Uから取り出す(S13)。
この取り出しも先頭から順であってもランダムであって
も良い。ここでは、ブロック番号8〜17の10個が取
り出されたとする。次に、ブロックサイズB用の空き領
域管理情報を作成し、二次記憶装置200に記録する
(S14)。ブロックサイズB用に作成した空き領域管
理情報も、このブロックサイズB用に割り当てた何れか
1つまたは複数のブロックに格納する。
【0049】次に、ブロックサイズCに注目を移し(S
16)、N=ブロックサイズB/ブロックサイズC=2
とすると、集合Uに含まれる各ブロック番号18〜23
のブロックを図3(d)に示すように2等分し、個々の
ブロック番号を前記式(2)で計算して、集合Uに格納
する(S17)。従って、分割後の各ブロックの番号は
図3(d)に付記したようになる。ここで、分割後のブ
ロック番号にブロックサイズCを乗じると、そのブロッ
クの先頭アドレスが求まるため、各ブロック番号が各ブ
ロックを一意に識別する情報となる。
【0050】そして、サイズ別空き領域確保手段102
で決定されたブロックサイズCの割り当てブロック
「3」に応じて、最大サイズのブロック数にして3個、
当該ブロックサイズCのサイズにして3×2×2、つま
り12個のブロック番号を集合Uから取り出す(S1
3)。この場合、集合Uに格納されている全てのブロッ
ク番号36〜47が取り出される。次に、ブロックサイ
ズC用の空き領域管理情報を作成し、二次記憶装置20
0に記録する(S14)。ブロックサイズC用に作成し
た空き領域管理情報も、このブロックサイズC用に割り
当てた何れか1つまたは複数のブロックに格納する。
【0051】図5は上述したサイズ別空き領域確保手段
102および空き領域管理情報構築手段103の具体例
による動作の模式図である。図5において、1021は
サイズ別空き領域確保手段102が最大ブロックサイズ
に対して割り当てたブロック番号の集合を示し、103
1,1032,1033は空き領域管理情報構築手段1
03が各ブロックサイズA,B,Cに対して割り当てた
最大ブロックサイズのブロック番号の集合を示す。10
34はブロックサイズA用の空き領域管理情報であり、
二次記憶装置200上の例えばブロック番号0のブロッ
クに格納される。1035は、ブロックサイズBに割り
当てられた最大サイズのブロックをブロックサイズBに
分割して得た個々のブロックのブロック番号の集合であ
り、1036はブロックサイズB用の空き領域管理情報
で、二次記憶装置200上の例えばブロック番号8のブ
ロックに格納される。1037は、ブロックサイズCに
割り当てられた最大サイズのブロックをブロックサイズ
Cに分割して得た個々のブロックのブロック番号の集合
であり、1038はブロックサイズC用の空き領域管理
情報で、二次記憶装置200上の例えばブロック番号3
6,37のブロックに跨がって格納される。
【0052】図6は各ブロックサイズA,B,Cへのブ
ロックの別の割り当て例を示す。この例は、各ブロック
サイズA,B,Cのブロックを二次記憶装置200中に
散在させて割り当てた例を示す。
【0053】図7は個々のブロックサイズ用の空き領域
管理情報の構成例とその二次記憶装置への格納例とを示
す図である。この例の空き領域管理情報は空きブロック
のブロック番号のリストである。空きブロック数が多い
場合、リスト長はそれに比例して長くなる。前述したよ
うに空き領域管理情報も二次記憶装置200上のブロッ
クに記録されるため、リスト長の長い空き領域管理情報
は複数のブロックに跨がって記録される。この場合、リ
ストは複数のリスト部分に分割されて各ブロックに記録
される。このとき、各ブロックに格納されるリスト部分
の先頭には次のリスト部分が記録され、リスト自体が鎖
構造となる。なお、先頭のリスト部分を格納するブロッ
クの番号は、例えば、割り当て,解放の対象とならない
特定のブロックに記録されて管理される。このような空
き領域管理情報は、前述したように各ブロックサイズ毎
に1つずつ用意され、各々のブロックサイズのブロック
を1つまたは複数使って二次記憶装置200に記録され
る。
【0054】以上がファイルデータ格納機構の構築時の
動作である。以下、運用時の各手段の機能とその動作と
を説明する。
【0055】ファイルデータ格納機構の構築時には、二
次記憶装置200上のブロックは管理情報を格納するブ
ロック以外は全て空き領域となっている。この状態から
利用者が或るファイルに対してデータの書き込みなどを
行っていく。
【0056】図1のファイル書き込み読み出し手段10
4は、上位装置(例えば中央処理装置)からの要求に従
ってファイルの書き込み,読み出しなどを司る部分であ
る。或るファイルにデータを書き込む場合、そのファイ
ルの管理情報や実際のデータを格納するための空きブロ
ックが必要となる。ファイル書き込み読み出し手段10
4は、空きブロックが必要になると、ブロックサイズ決
定手段106に対して、その空きブロックを使うファイ
ル名などの情報を渡して空きブロックの要求を出す。
【0057】ブロックサイズ決定手段106は、二次記
憶装置200上に書き込むべきデータに応じて必要なブ
ロックサイズを決定する。ブロックサイズを決定する基
準には幾つかの実現例が考えられる。
【0058】1つの例は、書き込まれるデータの種類に
応じて固定的にブロックサイズを決定してしまう方法で
ある。二次記憶装置200に書き込むデータには、利用
者が書き込みを要求したデータ以外に、ファイルの管理
情報などの管理情報があり、ファイルの管理情報などは
情報量が比較的少ないため小サイズのブロックで足りる
からである。このような方法を実施する場合は、空きブ
ロックの要求時に、ファイル書き込み読み出し手段10
4はそのブロックに書き込もうとしているデータの種類
をブロックサイズ決定手段106に通知する。ブロック
サイズ決定手段106はこのデータの種類を確認し、そ
れに応じてどのブロックサイズを使用するかを決める。
【0059】別の1つの例は、書き込まれるデータのサ
イズに応じてブロックサイズを決める方法である。ファ
イルの管理情報などはデータのサイズがほぼ固定してい
るので前述の方法でも有効であるが、利用者が要求する
書き込みデータはサイズに大きなバラツキがあるため、
有効でない。書き込まれるデータのサイズに応じてブロ
ックサイズを決定すれば、このような問題は解消され
る。この方法を実施する場合、空きブロックの要求時
に、ファイル書き込み読み出し手段104はそのブロッ
クに書き込もうとしているデータのサイズをブロックサ
イズ決定手段106に通知する。ブロックサイズ決定手
段106は、複数用意されたブロックサイズから、過不
足のないブロックサイズを選択する。
【0060】さて、ブロックサイズ決定手段106でブ
ロックサイズが決定されると、ファイル書き込み読み出
し手段104から渡されたファイル名と共にそのブロッ
クサイズが空きブロック抽出手段107に通知される。
空きブロック抽出手段107は、通知されたブロックサ
イズの空きブロックを1つ抽出し、その後段のブロック
割り当て手段108は、この抽出された空きブロック
を、通知されたファイル名のファイルの所属とし、制御
をファイル書き込み読み出し手段104に戻す。ファイ
ル書き込み読み出し手段104は、このファイルの所属
となった空きブロックに対してデータの書き込みを行
う。
【0061】次に、空きブロック抽出手段107および
ブロック割り当て手段108の動作を説明するが、本実
施例の入出力制御部100は処理の高速化を図るために
キャッシュ105を有しており、このキャッシュ105
に管理情報の一部をキャッシングするようにしている
為、まず、キャッシュ105について説明しておく。
【0062】図8は、キャッシュ105に格納される情
報の例を示す。この例では、二次記憶装置200を大ブ
ロックと小ブロックの2種類のブロックサイズで使用し
ており、その為に空き領域管理情報は大ブロック用と小
ブロック用との2種類ある。キャッシュ105には、そ
の各々の空き領域管理情報の一部(先頭のリスト部分)
がキャッシングされる。同様に、現在2つのファイル
α,βが生成されているとすると、その各々のファイル
の管理情報が二次記憶装置200に記録されているた
め、キャッシュ105には、各ファイルの管理情報の一
部がキャッシングされる。
【0063】さて、空きブロック抽出手段107の処理
例を説明する。図9にその処理例を示す。空きブロック
抽出手段107は、ブロックサイズ決定手段106から
ブロックサイズが指定されると、この指定されたブロッ
クサイズの空き領域管理情報の先頭のリスト部分がキャ
ッシュ105上に無ければ、そのリスト部分を二次記憶
装置200からキャッシュ105上に読み込み(S2
1,S22)、ステップS23へ進む。先頭のリスト部
分が既にキャッシュ105上に存在すれば、ステップS
22をスキップしてステップS23へ進む。なお、指定
されたブロックサイズの空き領域管理情報が存在しない
場合、そのブロックサイズの空きブロックが1つも無い
ことになる。この場合の対処としては、例えば別のサイ
ズの空きブロックで代用する等の方法が採用できる。
【0064】次に先頭のリスト部分が空か否か、つまり
リスト部分が次のリスト部分を含むブロックのブロック
番号を格納するエントリだけで空きブロックの番号を格
納したエントリが1つもないか否かを判定し(S2
3)、空でなければ、そのリスト内のブロック番号を1
つ取り出し、そのエントリをクリアし、取り出したブロ
ック番号を空きブロック番号としてブロック割り当て手
段108に通知し(S24)、処理を終える。
【0065】他方、リスト部分が空であった場合、当該
リスト部分が書き込まれていた二次記憶装置200上の
ブロックのブロック番号を内部に一時的に記録し(S2
5)、次のリスト部分があればそれを二次記憶装置20
0からキャッシュ105上に読み込み(S26)、上記
記録しておいたブロック番号を空きブロック番号として
ブロック割り当て手段108に通知し(S27)、処理
を終える。図10はこのときの動作の模式図である。前
述したように或るブロックサイズ用の空き領域管理情報
はそのブロックサイズのブロックに格納してあるため、
空き領域管理情報を格納するブロックが空きになったと
きそれを空きブロックとして利用するわけである。
【0066】次にブロック割り当て手段108の動作に
ついて説明する。図11にその処理例を示す。ブロック
割り当て手段108は、空きブロック抽出手段107か
らブロック番号とその所属させるべきファイルとが指定
されると、指定されたファイルの管理情報がキャッシュ
105上に無ければ、そのファイルの管理情報を二次記
憶装置200からキャッシュ105上に読み込み(S3
1,S32)、ステップS33へ進む。そのファイルの
管理情報が既にキャッシュ105上に存在すれば、ステ
ップS32をスキップしてステップS33へ進む。ステ
ップS33では、キャッシュ上のファイルの管理情報に
対し、割り当てるブロックの番号を、ブロックサイズと
の関係がわかる形で記録する(S33)。ここで、ブロ
ックサイズとの関係がかわる形で記録する方法の例とし
ては、ブロック番号と共にブロックサイズを記録する方
法や、ファイル管理情報内で各ブロックサイズ別にブロ
ック番号が区分けされている場合には、該当する場所に
ブロック番号を記録する方法などがある。
【0067】以上のようにしてファイル書き込み読み出
し手段104は、空きブロックのブロック番号を取得
し、そのブロック番号から計算で求まる二次記憶装置2
00上のアドレスに存在する空きブロックに対してデー
タの書き込みを行う。データの書き込みが行われたブロ
ックは、前述したように該当ファイルの管理下に所属し
ており、そのファイルの管理情報によって、該当ファイ
ルのどのデータがどのブロックサイズのどのブロックに
書かれているかが管理されるため、当該データの読み出
しを行うことができる。
【0068】次に、ファイルのデータが利用者にとって
必要なくなった場合の動作について説明する。この場
合、該当するブロック中のデータを消去するだけでな
く、データが空になった空きブロックを二次記憶装置2
00上の空き領域として管理しなければならない。そこ
で、ブロック解放手段109によって該当するブロック
をファイルの管理下から除去し、更に、この空きブロッ
クを、空きブロック登録手段110によって、二次記憶
装置200上の空き領域としての管理下に戻す。これに
より、データ消去されたブロックは空きブロックとして
管理され、別のデータ書き込みに際して再利用すること
ができる。以下、ブロック解放および空きブロック登録
について説明する。
【0069】ファイルデータを消去する際、ファイル書
き込み読み出し手段104は、該当するデータを含むブ
ロックのブロック番号,その所属するファイル名および
ブロックサイズをブロック解放手段109に指定し、そ
の解放を要求する。ブロック解放手段109はこれに応
じて当該ブロックを解放する処理を行う。
【0070】図12にブロック解放手段109の処理の
一例を示す。ブロック解放手段109は、ファイル書き
込み読み出し手段104から指定されたファイルの管理
情報がキャッシュ105上に無ければ、そのファイルの
管理情報を二次記憶装置200からキャッシュ105上
に読み込み(S41,S42)、ステップS43へ進
む。そのファイルの管理情報が既にキャッシュ105上
に存在すれば、ステップS42をスキップしてステップ
S43へ進む。ステップS43では、キャッシュ105
上のファイルの管理情報から、解放するブロックのブロ
ック番号をクリアし、空きブロック登録手段110に対
してそのブロック番号およびブロックサイズを通知す
る。
【0071】ブロック解放手段109によって解放され
たブロックは、空きブロック登録手段108によって、
空きブロックとしての一括管理下に戻される。図13に
空きブロック登録手段110の処理例を示す。空きブロ
ック登録手段110は、解放ブロックのブロックサイズ
用の空き領域管理情報の先頭のリスト部分がキャッシュ
105上に無ければ、そのリスト部分を二次記憶装置2
00からキャッシュ105上に読み込み(S51,S5
2)、ステップS53へ進む。先頭のリスト部分が既に
キャッシュ105上に存在すれば、ステップS52をス
キップしてステップS53へ進む。
【0072】次に先頭のリスト部分が一杯か否か、つま
りリスト部分の全エントリが使用されており、当該リス
ト部分を格納するブロックに新たなブロック番号を登録
するエントリがないか否かを判定し(S53)、一杯で
なければ、そのリスト内のエントリに解放ブロックのブ
ロック番号を登録する(S54)。
【0073】他方、キャッシュ上のリスト部分が一杯で
あった場合、当該リスト部分を、解放ブロックの二次記
憶装置200の位置に書き出し(S55)、キャッシュ
上のリスト部分をクリアし、前記書き出したリスト部分
を格納したブロックのブロック番号を、リスト部分の先
頭に設定した空のリスト部分をキャッシュ上に生成し、
そのリスト内のエントリに解放ブロックのブロック番号
を登録する(S56)。図14はこのときの動作の模式
図である。前述したように或るブロックサイズ用の空き
領域管理情報の各リスト部分はそのブロックサイズのブ
ロックに格納してあるため、キャッシュ上のリスト部分
が一杯になったときそれを格納する空きブロックとし
て、今回解放の対象となったブロックを利用するわけで
ある。
【0074】なお、指定されたブロックサイズの空き領
域管理情報が存在しない場合、そのブロックサイズの空
きブロックが現在1つも存在しないことを意味する。こ
のときは、今回の解放ブロックを空き領域管理情報の先
頭のリスト部分を格納するブロックとして使用する。
【0075】図15は本発明のファイルデータ格納装置
の別の実施例のブロック図である。この例のファイルデ
ータ格納装置が図1の実施例のファイルデータ格納装置
と相違するところは、入出力制御部100に、空きブロ
ック分割手段111とブロックサイズ別占有率管理手段
112とを付加した点にある。先の実施例と同様に入出
力制御部100は例えばメモリおよび演算処理装置から
構成されるデータ処理装置で実現することができ、記録
媒体300に記録されたプログラムが入出力制御部10
0を構成するデータ処理装置に読み込まれ、データ処理
装置の動作を制御し、データ処理装置を、各手段として
機能させる。
【0076】図1の実施例のファイルデータ格納装置に
あっては、二次記憶装置200上に占める各ブロックサ
イズ毎の領域の割合が、データ構造構築の時点で固定的
に決まってしまうため、小さなブロックサイズの空きブ
ロックが足りなくなると、それより大きなブロックサイ
ズの空きブロックがいくら余っていても、それ以上デー
タを二次記憶装置200に書き込むことができないか、
大きなブロックサイズの空きブロックで代用する必要が
ある。
【0077】これを避けるためには、想定される二次記
憶装置200の利用状況を踏まえて、データ構造構築時
に、各ブロックサイズに対してどのような割合で領域を
確保するかを綿密に計画する必要がある。このため、想
定される利用状況を決定することができない様々な利用
方法に対応することができない。
【0078】そこで、本実施例では、小さなブロックが
足りなくなると大きなブロックを分割して利用し、ブロ
ックサイズ毎の割合を柔軟に変化させる。以下、図1の
実施例との相違点を中心に本実施例の動作を説明する。
【0079】ブロックサイズ別占有率管理手段112
は、各ブロックサイズ別の占有状況を管理している。こ
れは例えば、各ブロックサイズ別にそのブロック総数を
保持することで管理される。各ブロックサイズのブロッ
ク総数の初期値は、データ構造の構築時における各ブロ
ックサイズ毎の空きブロック総数である。以後、ブロッ
クサイズ別占有率管理手段112は、空きブロック分割
手段111からの通知に従って、各ブロックサイズ別の
ブロック総数を増減し、常に最新の占有状況を管理す
る。
【0080】空きブロック分割手段111は、本実施例
の場合、入出力制御部100の空き時間などを利用し
て、定期的に空き領域管理情報を参照し、複数のブロッ
クサイズのうち最大サイズ以外のブロックサイズの空き
ブロックが予め定められた数以下になっているか否か、
即ち不足しているか否かを調べ、若し不足している場合
には、より大きなブロックサイズの空きブロックを分割
して、不足しているブロックサイズの空きブロックを新
たに生成する。
【0081】図16に空きブロック分割手段111の処
理例を示す。まず、不足しているブロックサイズより1
つサイズの大きなブロックサイズを選択する(S6
1)。次に、前記選択したブロックサイズ用の空き領域
管理情報を参照して、その空きブロック数が予め定めら
れた数以上あるか否か、即ち充分な数だけ残っているか
否かを調べる(S62)。若し、充分な数だけ残ってい
なければ、それを使用すると、今度はそのブロックサイ
ズの空きブロック数が不足することになるので、処理を
断念する。
【0082】1つサイズの大きなブロックサイズの空き
ブロック数が充分ある場合、ブロックサイズ別占有率管
理手段112で保持されている現在の占有状況を参照
し、空きブロックの分割により各ブロックサイズ別の占
有状況が所定の条件を満たさなくなるか否かを判定し
(S63)、満たさなくなる場合は処理を断念する。
【0083】1つサイズの大きなブロックサイズの空き
ブロック数が充分あり、且つ、空きブロックを分割して
も各ブロックサイズ別の占有状況が所定の条件を満足す
る場合、空きブロック分割手段111は、空きブロック
抽出手段107にそのブロックサイズを指定して空きブ
ロックの抽出を要求する(S64)。このときの空きブ
ロック抽出手段107の動作は、要求元がブロックサイ
ズ決定手段106の代わりに空きブロック分割手段11
1となり、抽出したブロック番号をブロック割り当て手
段108に通知する代わりに空きブロック分割手段11
1に通知する点が異なるだけで、その処理は図9と実質
的に同じである。
【0084】次に空きブロック分割手段111は、空き
ブロック抽出手段107から通知されたブロック番号か
ら、そのブロック番号のブロックを不足ブロックサイズ
で分割したときの個々のブロックのブロック番号を、例
えば以下の式で計算する(S65)。 分割後のブロック番号=分割前のブロック番号×N+n …(4) 但し、N=(分割前のブロックのサイズ)/(分割後の
ブロックのサイズ n=0,…,(N−1) この式(4)は空き領域管理情報構築手段103がデー
タ構造構築時に用いた前記(2)式と同じである。
【0085】次に空きブロック分割手段111は、上記
計算したN個のブロック番号を空きブロック登録手段1
10に通知して、不足ブロックサイズの空き領域管理情
報への登録を要求する(S66)。このときの空きブロ
ック登録手段110の動作は、要求元がブロック解放手
段109の代わりに空きブロック分割手段111となる
点が異なるだけで、その処理は図13と実質的に同じで
ある。そして、空きブロック分割手段111は、ブロッ
クサイズ別占有率管理手段112に対し、分割したブロ
ックサイズのブロック数を1だけ減じ、分割によってで
きたブロックサイズのブロック数をNだけ増加するよう
に指示する(S67)。
【0086】図17は空きブロック分割手段111の上
述したような動作を模式的に示している。
【0087】なお、本実施例では、以下のような各種の
変形が可能である。
【0088】不足ブロックサイズの1つ上のサイズの空
きブロック数が充分でなかった場合、またはブロックサ
イズ別占有状況が所定の条件を満たさない場合、処理を
断念せず、更に上のサイズの空きブロック数,それを分
割した場合のブロックサイズ別占有状況を調べ、分割可
能ならばそれを分割して充当する。
【0089】不足ブロックサイズより大きなサイズが複
数存在する場合、ブロック総数の多いブロックサイズを
優先的に分割対象とする。
【0090】空きブロック抽出手段107がブロックサ
イズ決定手段106からの要求により該当ブロックサイ
ズの空きブロックを抽出しようとしたときに、当該ブロ
ックサイズの空きブロックが1つも存在しなかった場合
に、空きブロック抽出手段107からそのブロックサイ
ズを指定して空きブロック分割手段111を起動し、空
きブロック分割手段111によって生成された空きブロ
ックを空きブロック抽出手段107が抽出するようにす
る。
【0091】図18は本発明のファイルデータ格納装置
の更に別の実施例のブロック図である。この例のファイ
ルデータ格納装置が図15の実施例のファイルデータ格
納装置と相違するところは、入出力制御部100に、ブ
ロック結合手段113と連続ブロック検出手段114と
を付加した点にある。先の実施例と同様に入出力制御部
100は例えばメモリおよび演算処理装置から構成され
るデータ処理装置で実現することができ、記録媒体30
0に記録されたプログラムが入出力制御部100を構成
するデータ処理装置に読み込まれ、データ処理装置の動
作を制御し、データ処理装置を、各手段として機能させ
る。
【0092】図15の実施例のファイルデータ格納装置
にあっては、大きなブロックを分割して複数の小さなブ
ロックとして使用することにより、小さなブロックの枯
渇は防止できた。しかし、その反対の、大きなブロック
の枯渇は防止できない。
【0093】そこで、本実施例では、大きなサイズのブ
ロックが足りなくなる前に、小さなサイズの空きブロッ
クを結合して大きなサイズの空きブロックを生成する。
このとき、複数個の小さなサイズの空きブロックを無作
為に抽出しただけでは大きなサイズの1個のブロックに
は結合できない。小さな空きブロックを大きな空きブロ
ックとして結合するためには、連続する小さな空きブロ
ックが必要な数だけあって、それらの小さな空きブロッ
クが大きなブロック1個の中に納まらなければならない
からである。そこで、連続ブロック検出手段114によ
って、最大サイズのブロックサイズ以外の各ブロックサ
イズ毎に、より大きなサイズのブロックに結合し得るだ
け空きブロックが連続しているか否かを検出し、連続し
ている場合に、ブロック結合手段113がそれらを結合
する。以下、図15の実施例との相違点を中心に本実施
例の動作を説明する。
【0094】ブロック結合手段113は、本実施例の場
合、入出力制御部100の空き時間などを利用して、定
期的に空き領域管理情報を参照し、複数のブロックサイ
ズのうち最小サイズ以外のブロックサイズの空きブロッ
ク数が予め定められた数以下になっているか否か、即ち
不足しているか否かを調べ、若し不足している場合に
は、より小さなブロックサイズの空きブロックを複数個
結合して、不足しているブロックサイズの空きブロック
を新たに生成する。
【0095】図19にブロック結合手段113の処理例
を示す。まず、不足しているブロックサイズより1つサ
イズの小さなブロックサイズを選択する(S71)。次
に、前記選択したブロックサイズ用の空き領域管理情報
を参照してその空きブロック数が予め定められた数以上
あるか否か、即ち充分な数だけ残っているか否かを調べ
る(S72)。若し、充分な数だけ残っていなければ、
それを使用すると、今度はそのブロックサイズの空きブ
ロック数が不足することになるので、処理を断念する。
【0096】1つサイズの小さなブロックサイズの空き
ブロック数が充分ある場合、ブロックサイズ別占有率管
理手段112で保持されている現在の占有状況を参照
し、空きブロックの結合により各ブロックサイズ別の占
有状況が所定の条件を満たさなくなるか否かを判定し
(S73)、満たさなくなる場合は処理を断念する。
【0097】1つサイズの小さなブロックサイズの空き
ブロック数が充分あり、かつ、空きブロックを結合して
も各ブロックサイズ別の占有状況が所定の条件を満足す
る場合、ブロック結合手段113は、(不足ブロックサ
イズ)/(当該ブロックサイズ)=Nだけ連続している
当該ブロックサイズの空きブロックのブロック番号を、
連続ブロック検出手段114を用いて検出する(S7
4)。
【0098】連続ブロック検出手段114の処理例を図
20に示す。まず、キャッシュ105および二次記憶装
置200に存在する当該ブロックサイズの空き領域管理
情報を参照して、Nの値でちょうど割り切れるブロック
番号のブロックを先頭とするN個連続する空きブロック
の有無を調べる(S81)。ここで、Nは、前述した
(当該ブロックサイズの1つ上のブロックサイズ)/
(当該ブロックサイズ)である。このような連続空きブ
ロックが存在すれば(S82)、それらのブロック番号
をその空き領域管理情報から取り除く(S83)。これ
により、当該ブロックサイズではそのブロック番号のブ
ロックは空きブロックではなくなる。そして、それらの
ブロック番号をブロック結合手段113に通知する(S
84)。他方、連続した空きブロックが存在しなければ
(S82)、検出失敗をブロック結合手段113に通知
する(S85)。
【0099】ブロック結合手段113は、N個連続する
空きブロックの検出に失敗した場合、処理を断念する
(S75)。他方、その検出に成功した場合は、検出さ
れたN個のブロック番号から結合後のブロックの番号
を、例えば次式によって計算する(S76)。 結合後のブロック番号=[結合前の何れかのブロック番号/N] …(5) 但し、Nは、(当該ブロックサイズの1つ上のブロック
サイズ)/(当該ブロックサイズ) [ ]は除算結果の整数部分をとることを意味する。こ
の式(5)は空き領域管理情報構築手段103がデータ
構造構築時に用いた前記(2)式と逆の関係を求める式
である。
【0100】そしてブロック結合手段113は、上記計
算したブロック番号を指定して空きブロック登録手段1
10に登録を要求する(S77)。このときの空きブロ
ック登録手段110の動作は、要求元がブロック解放手
段109の代わりにブロック結合手段113となる点が
異なるだけで、その処理は図13と実質的に同じであ
る。これにより、複数の小さな空きブロックが1つの大
きな空きブロックとして使用可能となる。そして、ブロ
ック結合手段113は、ブロックサイズ別占有率管理手
段112に対し、結合元のブロックサイズのブロック数
をNだけ減じ、結合によってできたブロックサイズのブ
ロック数を1だけ増加するように指示する(S78)。
【0101】次に、連続ブロック検出手段114が連続
性検出を容易に行えるような空き領域管理情報の構成例
について説明する。
【0102】空き領域管理情報が図7で説明したように
空きブロック番号の単なるリストでも、より大きなサイ
ズに結合できる連続する空きブロックを検出することは
可能であるが、処理に時間がかかってしまう。そこで、
本例では、最大サイズのブロックサイズ用以外の空き領
域管理情報を図21に示すようなマトリックス構造とす
る。
【0103】マトリックスの各列には、[(ブロック番
号)/N]の値が等しいブロック番号を並べる。但し、
N=(1つ上のブロックサイズ)/(当該ブロックサイ
ズ)である。また、マトリックスの各行には、(ブロッ
ク番号)mod N の値が等しいブロック番号を並べ
る。ここで、modは、左項を右項で割った余りを求め
る演算子である。
【0104】空き領域管理情報が上述のようなマトリッ
クス構造である場合、マトリックスの1列が満たされて
いれば、その列に含まれる複数のブロック番号のブロッ
クが1つ上のブロックサイズ1個分のブロックに結合で
きることになるため、連続ブロック検出手段114はそ
のような列を検出すれば良い。
【0105】また、空き領域管理情報を上述のようなマ
トリックス構造とした場合、空きブロック登録手段11
0では、或るブロック番号を登録する際、[(ブロック
番号)/N]の値を求め、等しい値を持つ列を探して挿
入する列を決定する。このとき、若し、等しい値の列が
存在しない場合には、空の列を挿入する。更に、(ブロ
ック番号)mod N の値を求め、挿入する列を決定
する。
【0106】なお、本実施例では、以下のような各種の
変更が可能である。
【0107】ブロック結合手段113において、不足ブ
ロックサイズの1つ下のサイズの空きブロック数が充分
でないか、ブロック結合によりブロックサイズ別占有状
況が所定の条件を満たさなくなるか、結合に必要な連続
空きブロックが存在しない場合、直ちに処理を断念せ
ず、更に下のサイズについて、空きブロック数が充分
か、ブロック結合によりブロックサイズ別占有状況が所
定の条件を満足するか、結合に必要な連続空きブロック
が存在するかを調べ、何れも満足する場合に、それを分
割して充当する。
【0108】不足ブロックサイズより小さなサイズが複
数存在する場合、ブロック総数の多いブロックサイズを
優先的に結合対象とする。
【0109】空きブロック分割手段111とブロック結
合手段113とを合わせ持っているので、中間のブロッ
クサイズの空きブロックの不足時、双方の手段が動作す
る可能性がある。これを防止するために、空きブロック
分割手段111とブロック結合手段113とで各々使用
できる総空きブロック数,占有状況などの前提条件を比
較し合い、より最適な側の手段が動作するようにする。
【0110】空きブロック分割手段111を省略し、ブ
ロック結合手段113だけでブロック数の動的変更を行
わせる。
【0111】空きブロック抽出手段107がブロックサ
イズ決定手段106からの要求により該当ブロックサイ
ズの空きブロックを抽出しようとしたときに、当該ブロ
ックサイズの空きブロックが1つも存在しなかった場合
に、空きブロック抽出手段107からそのブロックサイ
ズを指定してブロック結合手段113を起動し、ブロッ
ク結合手段111で生成された空きブロックを空きブロ
ック抽出手段107が抽出するようにする。このときも
前述と同様に中間のブロックサイズの不足時には空きブ
ロック分割手段111を用いる方法と、ブロック結合手
段113を用いる方法との2通りの方法があるため、そ
の調整を行う。
【0112】以上、本発明について幾つかの実施例を挙
げて説明したが、本発明は前述した実施例に限られず、
その要旨の範囲内で様々な付加変更が可能である。例え
ば、図1の実施例におけるブロック番号の計算例は図1
5および図18の実施例にも適用できる例を示したが、
図1の実施例では、データ構築時に生成されたブロック
番号が運用中に変更されることはないため、上述した例
に限られず、ブロックサイズ毎に一意であれば任意のブ
ロック番号を割り当てることができる。また、各ブロッ
クを識別するための情報はブロック番号以外の任意の情
報を使用することができる。
【0113】
【発明の効果】以上説明したように本発明によれば以下
のような効果を得ることができる。
【0114】複数のブロックサイズが混在した運用が行
え、書き込むデータに応じてブロックサイズを使い分け
ることができるので、巨大ファイルへの高速アクセスを
実現しながら、二次記憶装置上の記憶領域を有効に利用
することができる。
【0115】空きブロック分割手段を備えた構成にあっ
ては、運用中に小さなブロックサイズの空きブロックが
不足しても、動的に大きなブロックサイズの空きブロッ
クを分割して振り分けることにより、その枯渇を防止で
き、二次記憶装置の記憶領域をより一層有効に利用する
ことができる。
【0116】ブロック結合手段を備えた構成にあって
は、運用中に大きなブロックサイズの空きブロックが不
足しても、動的に小さなブロックサイズの空きブロック
を結合することにより、その枯渇を防止でき、二次記憶
装置の記憶領域をより一層有効に利用することができ
る。
【0117】ブロックサイズ別占有率管理手段を備えた
構成にあっては、ブロックサイズ別の記憶領域の占有状
態を所定の条件を満たす範囲内で、ブロック分割,ブロ
ック結合を行わせることができる。
【図面の簡単な説明】
【図1】本発明のファイルデータ格納装置の一実施例の
ブロック図である。
【図2】サイズ別空き領域確保手段の処理の一例を示す
フローチャートである。
【図3】サイズ別空き領域確保手段および空き領域管理
情報構築手段の動作説明図である。
【図4】空き領域管理情報構築手段の処理の一例を示す
フローチャートである。
【図5】サイズ別空き領域確保手段および空き領域管理
情報構築手段の具体例による動作の模式図である。
【図6】各ブロックサイズへのブロックをランダムに割
り当てる例を示す図である。
【図7】個々のブロックサイズ用の空き領域管理情報の
構成例とその二次記憶装置への格納例とを示す図であ
る。
【図8】キャッシュに格納される情報の説明図である。
【図9】空きブロック抽出手段の処理例を示すフローチ
ャートである。
【図10】空きブロック抽出手段の動作説明図である。
【図11】ブロック割り当て手段の処理例を示すフロー
チャートである。
【図12】ブロック解放手段の処理の一例を示すフロー
チャートである。
【図13】空きブロック登録手段の処理例を示すフロー
チャートである。
【図14】空きブロック登録手段の動作説明図である。
【図15】本発明のファイルデータ格納装置の別の実施
例のブロック図である。
【図16】空きブロック分割手段の処理例を示すフロー
チャートである。
【図17】空きブロック分割手段の動作説明図である。
【図18】本発明のファイルデータ格納装置の更に別の
実施例のブロック図である。
【図19】ブロック結合手段の処理例を示すフローチャ
ートである。
【図20】連続ブロック検出手段の処理例を示すフロー
チャートである。
【図21】マトリックス構造の空き領域管理情報の例を
示す図である。
【符号の説明】
100…入出力制御部 101…構築指示解析手段 102…サイズ別空き領域確保手段 103…空き領域管理情報構築手段 104…ファイル書き込み読み出し手段 105…キャッシュ 106…ブロックサイズ決定手段 107…空きブロック抽出手段 108…ブロック割り当て手段 109…ブロック解放手段 110…空きブロック登録手段 111…空きブロック分割手段 112…ブロックサイズ別占有率管理手段 113…ブロック結合手段 114…連続ブロック検出手段 200…二次記憶装置

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 二次記憶装置上に複数の論理ファイルを
    構成するファイルデータ格納装置において、 前記二次記憶装置を制御する入出力制御部に、 複数のブロックサイズを指定した構築指示に従って、二
    次記憶装置上にブロックサイズ別の空きブロックを確保
    し、かつ、各ブロックサイズ別に空きブロックの情報を
    管理する空き領域管理情報を作成して二次記憶装置に記
    録する構築部と、 二次記憶装置上に書き込むべきデータに応じて必要なブ
    ロックサイズを決定するブロックサイズ決定手段と、 該ブロックサイズ決定手段で決定されたブロックサイズ
    の空きブロックの情報を前記空き領域管理情報から抽出
    する空きブロック抽出手段と、 該空きブロック抽出手段で抽出されたブロックを、指定
    されたファイルの所属とするブロック割り当て手段と、 ファイルに割り当てられているブロックの情報をそのフ
    ァイルの所属から取り除くブロック解放手段と、 該ブロック解放手段で解放されたブロックをそのブロッ
    クのブロックサイズに対応する空き領域管理情報に登録
    する空きブロック登録手段とを備えることを特徴とする
    ファイルデータ格納装置。
  2. 【請求項2】 前記入出力制御部に、複数のブロックサ
    イズのうち最小サイズ以外のブロックサイズの空きブロ
    ックを抽出し、該抽出したブロックを該ブロックサイズ
    より小さなブロックサイズの空きブロックに分割する空
    きブロック分割手段を備えることを特徴とする請求項1
    記載のファイルデータ格納装置。
  3. 【請求項3】 前記入出力制御部に、各ブロックサイズ
    別の占有状況を管理するブロックサイズ別占有率管理手
    段を備え、前記空きブロック分割手段は、空きブロック
    の分割により各ブロックサイズ別の占有状況が所定の条
    件を満たさなくなる場合には、空きブロックの分割を行
    わない構成を有することを特徴とする請求項2記載のフ
    ァイルデータ格納装置。
  4. 【請求項4】 前記入出力制御部に、複数のブロックサ
    イズのうち最大サイズ以外のブロックサイズの空きブロ
    ックを複数個集めて、それより大きなブロックサイズの
    ブロック1個分に結合するブロック結合手段を備えるこ
    とを特徴とする請求項1記載のファイルデータ格納装
    置。
  5. 【請求項5】 前記入出力制御部に、各ブロックサイズ
    別の占有状況を管理するブロックサイズ別占有率管理手
    段を備え、前記ブロック結合手段は、空きブロックの結
    合により各ブロックサイズ別の占有状況が所定の条件を
    満たさなくなる場合には、空きブロックの結合を行わな
    い構成を有することを特徴とする請求項4記載のファイ
    ルデータ格納装置。
  6. 【請求項6】 前記入出力制御部に、 複数のブロックサイズのうち最小サイズ以外のブロック
    サイズの空きブロックを抽出し、該抽出したブロックを
    該ブロックサイズより小さなブロックサイズの空きブロ
    ックに分割する空きブロック分割手段と、 複数のブロックサイズのうち最大サイズ以外のブロック
    サイズの空きブロックを複数個集めて、それより大きな
    ブロックサイズのブロック1個分に結合するブロック結
    合手段とを備えることを特徴とする請求項1記載のファ
    イルデータ格納装置。
  7. 【請求項7】 二次記憶装置を制御する入出力制御部を
    構成するデータ処理装置を、 複数のブロックサイズを指定した構築指示に従って、二
    次記憶装置上にブロックサイズ別の空きブロックを確保
    し、かつ、各ブロックサイズ別に空きブロックの情報を
    管理する空き領域管理情報を作成して二次記憶装置に記
    録する構築部、 二次記憶装置上に書き込むべきデータに応じて必要なブ
    ロックサイズを決定するブロックサイズ決定手段、 該ブロックサイズ決定手段で決定されたブロックサイズ
    の空きブロックの情報を前記空き領域管理情報から抽出
    する空きブロック抽出手段、 該空きブロック抽出手段で抽出されたブロックを、指定
    されたファイルの所属とするブロック割り当て手段、 ファイルに割り当てられているブロックの情報をそのフ
    ァイルの所属から取り除くブロック解放手段、 該ブロック解放手段で解放されたブロックをそのブロッ
    クのブロックサイズに対応する空き領域管理情報に登録
    する空きブロック登録手段、 複数のブロックサイズのうち最小サイズ以外のブロック
    サイズの空きブロックを抽出し、該抽出したブロックを
    該ブロックサイズより小さなブロックサイズの空きブロ
    ックに分割する空きブロック分割手段、 複数のブロックサイズのうち最大サイズ以外のブロック
    サイズの空きブロックを複数個集めて、それより大きな
    ブロックサイズのブロック1個分に結合するブロック結
    合手段、として機能させるプログラムを記録した機械読
    み取り可能な記録媒体。
JP9096543A 1997-03-31 1997-03-31 ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体 Pending JPH10283230A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9096543A JPH10283230A (ja) 1997-03-31 1997-03-31 ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9096543A JPH10283230A (ja) 1997-03-31 1997-03-31 ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JPH10283230A true JPH10283230A (ja) 1998-10-23

Family

ID=14168030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9096543A Pending JPH10283230A (ja) 1997-03-31 1997-03-31 ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体

Country Status (1)

Country Link
JP (1) JPH10283230A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004512602A (ja) * 2000-10-16 2004-04-22 トムソン ライセンシング ソシエテ アノニム デジタル映像のようなストリームデータと非ストリームデータとを記憶する方法及び装置
WO2005043394A1 (ja) * 2003-10-31 2005-05-12 Matsushita Electric Industrial Co., Ltd. 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
JP2005352899A (ja) * 2004-06-11 2005-12-22 Canon Inc 画像記録装置及びその制御方法
KR100694069B1 (ko) * 2004-11-29 2007-03-12 삼성전자주식회사 상이한 크기를 가지는 복수 개의 데이터 블록들을포함하는 저장 장치 및 이를 이용한 파일 관리 방법 및이를 포함하는 인쇄 장치
WO2007099593A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited 監視装置、監視プログラム、および情報処理システム
JP2008269338A (ja) * 2007-04-20 2008-11-06 Hitachi Ltd ストレージ装置及び管理単位設定方法
JP2013527524A (ja) * 2010-04-14 2013-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化する方法、システム及びコンピュータ・プログラム
WO2017179581A1 (en) * 2016-04-11 2017-10-19 Quantum Biosystems Inc. Systems and methods for biological data management
US10202644B2 (en) 2010-03-03 2019-02-12 Quantum Biosystems Inc. Method and device for identifying nucleotide, and method and device for determining nucleotide sequence of polynucleotide
US10261066B2 (en) 2013-10-16 2019-04-16 Quantum Biosystems Inc. Nano-gap electrode pair and method of manufacturing same
US10413903B2 (en) 2014-05-08 2019-09-17 Osaka University Devices, systems and methods for linearization of polymers
US10438811B1 (en) 2014-04-15 2019-10-08 Quantum Biosystems Inc. Methods for forming nano-gap electrodes for use in nanosensors
US10557167B2 (en) 2013-09-18 2020-02-11 Quantum Biosystems Inc. Biomolecule sequencing devices, systems and methods
US12091712B2 (en) 2016-04-27 2024-09-17 Illumina Cambridge, Ltd. Systems and methods for measurement and sequencing of bio-molecules
US12271615B2 (en) 2022-03-11 2025-04-08 Samsung Electronics Co., Ltd. Systems and methods for checking data alignment between applications, file systems, and computational storage devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0219938A (ja) * 1988-07-08 1990-01-23 Mitsubishi Electric Corp ファイル管理システム
JPH0392941A (ja) * 1989-09-06 1991-04-18 Hitachi Ltd 領域管理方式
JPH0561740A (ja) * 1991-09-03 1993-03-12 Fuji Facom Corp デイスク装置のフアイル管理装置
JPH0887433A (ja) * 1994-09-20 1996-04-02 Matsushita Electric Ind Co Ltd ファイルシステムのブロック管理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0219938A (ja) * 1988-07-08 1990-01-23 Mitsubishi Electric Corp ファイル管理システム
JPH0392941A (ja) * 1989-09-06 1991-04-18 Hitachi Ltd 領域管理方式
JPH0561740A (ja) * 1991-09-03 1993-03-12 Fuji Facom Corp デイスク装置のフアイル管理装置
JPH0887433A (ja) * 1994-09-20 1996-04-02 Matsushita Electric Ind Co Ltd ファイルシステムのブロック管理システム

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9071789B2 (en) 2000-10-16 2015-06-30 Thomson Licensing Method and device for storing stream data such as digital video and non-stream data
JP2004512602A (ja) * 2000-10-16 2004-04-22 トムソン ライセンシング ソシエテ アノニム デジタル映像のようなストリームデータと非ストリームデータとを記憶する方法及び装置
JP4722704B2 (ja) * 2003-10-31 2011-07-13 パナソニック株式会社 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
WO2005043394A1 (ja) * 2003-10-31 2005-05-12 Matsushita Electric Industrial Co., Ltd. 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
JPWO2005043394A1 (ja) * 2003-10-31 2007-11-29 松下電器産業株式会社 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
US8185705B2 (en) 2003-10-31 2012-05-22 Panasonic Corporation Information recording medium, information recording medium accessing apparatus and accessing method
JP2005352899A (ja) * 2004-06-11 2005-12-22 Canon Inc 画像記録装置及びその制御方法
KR100694069B1 (ko) * 2004-11-29 2007-03-12 삼성전자주식회사 상이한 크기를 가지는 복수 개의 데이터 블록들을포함하는 저장 장치 및 이를 이용한 파일 관리 방법 및이를 포함하는 인쇄 장치
US7925745B2 (en) 2006-02-28 2011-04-12 Fujitsu Limited Monitoring apparatus, executive program, and information processing system
WO2007099593A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited 監視装置、監視プログラム、および情報処理システム
JP2008269338A (ja) * 2007-04-20 2008-11-06 Hitachi Ltd ストレージ装置及び管理単位設定方法
US10876159B2 (en) 2010-03-03 2020-12-29 Quantum Biosystems Inc. Method and device for identifying nucleotide, and method and device for determining nucleotide sequence of polynucleotide
US10202644B2 (en) 2010-03-03 2019-02-12 Quantum Biosystems Inc. Method and device for identifying nucleotide, and method and device for determining nucleotide sequence of polynucleotide
JP2013527524A (ja) * 2010-04-14 2013-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 動的なブロック・サイズ粒度を使用して、計算クラスタ内の異なるタイプのアプリケーションについてファイル・システムを最適化する方法、システム及びコンピュータ・プログラム
US9021229B2 (en) 2010-04-14 2015-04-28 International Business Machines Corporation Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity
US10557167B2 (en) 2013-09-18 2020-02-11 Quantum Biosystems Inc. Biomolecule sequencing devices, systems and methods
US10261066B2 (en) 2013-10-16 2019-04-16 Quantum Biosystems Inc. Nano-gap electrode pair and method of manufacturing same
US10466228B2 (en) 2013-10-16 2019-11-05 Quantum Biosystems Inc. Nano-gap electrode pair and method of manufacturing same
US10438811B1 (en) 2014-04-15 2019-10-08 Quantum Biosystems Inc. Methods for forming nano-gap electrodes for use in nanosensors
US10413903B2 (en) 2014-05-08 2019-09-17 Osaka University Devices, systems and methods for linearization of polymers
WO2017179581A1 (en) * 2016-04-11 2017-10-19 Quantum Biosystems Inc. Systems and methods for biological data management
US12091712B2 (en) 2016-04-27 2024-09-17 Illumina Cambridge, Ltd. Systems and methods for measurement and sequencing of bio-molecules
US12271615B2 (en) 2022-03-11 2025-04-08 Samsung Electronics Co., Ltd. Systems and methods for checking data alignment between applications, file systems, and computational storage devices

Similar Documents

Publication Publication Date Title
JPH10283230A (ja) ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体
US5802301A (en) System for load balancing by replicating portion of file while being read by first stream onto second device and reading portion with stream capable of accessing
JP3708195B2 (ja) データ記憶システムにおける仮想容量の過大割当てを避ける方法
US7765545B2 (en) Method for automatically imparting reserve resource to logical partition and logical partitioned computer system
US5606689A (en) Data processing apparatus including external storage previously reserved to be allocated to job groups
US6154852A (en) Method and apparatus for data backup and recovery
US4186438A (en) Interactive enquiry system
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
GB2121995A (en) Method of and apparatus for assigning software resources to memory devices
JPH07175698A (ja) ファイルシステム
JPH0792775B2 (ja) 外部記憶装置群のスペース管理方法
CN113495889A (zh) 一种分布式对象存储方法、装置、电子设备及存储介质
US20060075198A1 (en) Method and system for managing storage reservation
US5678024A (en) Method and system for dynamic performance resource management within a computer based system
CN118012341A (zh) 一种数据存储方法和分布式存储处理系统
CN113254186A (zh) 一种进程调度方法、调度器及存储介质
US7032085B2 (en) Storage system with a data sort function
EP0702301B1 (en) Storage apparatus and method for its control
JPH0887433A (ja) ファイルシステムのブロック管理システム
JP2006039942A (ja) 階層記憶システムにおけるファイル管理装置及びそのファイル管理方法
JPH01173236A (ja) ファイル格納媒体選択方式
JPH06110759A (ja) ファイルシステム
JPH06259292A (ja) 外部記憶装置のオンラインガーベッジコレクション方法
JP2513303B2 (ja) スプ―ルファイル分散方式
US20220283705A1 (en) Storage management apparatus, storage management method, and program