JP2734515B2 - 入出力バッファの管理装置 - Google Patents

入出力バッファの管理装置

Info

Publication number
JP2734515B2
JP2734515B2 JP63037197A JP3719788A JP2734515B2 JP 2734515 B2 JP2734515 B2 JP 2734515B2 JP 63037197 A JP63037197 A JP 63037197A JP 3719788 A JP3719788 A JP 3719788A JP 2734515 B2 JP2734515 B2 JP 2734515B2
Authority
JP
Japan
Prior art keywords
file
buffer area
buffer
output
processing
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 - Lifetime
Application number
JP63037197A
Other languages
English (en)
Other versions
JPH01211143A (ja
Inventor
至彦 斉藤
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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP63037197A priority Critical patent/JP2734515B2/ja
Publication of JPH01211143A publication Critical patent/JPH01211143A/ja
Application granted granted Critical
Publication of JP2734515B2 publication Critical patent/JP2734515B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は入出力バッファエリアの管理装置に関し、特
に補助記憶装置上の複数のファイルと主記憶装置との間
のデータ入出力において利用される主記憶装置に設けら
れた入出力バッファエリア(以下、バッファエリアとい
う)を管理する入出力バッファエリアの管理装置に関す
る。
〔従来の技術〕
従来、この種の入出力バッファエリアの管理装置で
は、利用者プログラムにより指定されるバッファのバッ
ファサイズとバッファ数とが乗算されてファイル対応バ
ッファ領域(ファイル毎に存在するバッファエリア内の
領域)サイズが求められ、そのファイル対応バッファ領
域がファイルオープン時にバッファエリア内に確保され
てファイルクラーズ時までサイズが変更されることなく
固定的に保持され、他のファイルのファイル対応バッフ
ァ領域とは全く独立したものとしてデータアクセス手段
(利用者プログラムからのデータ入出力の要求を実現す
る手段)によるデータ入出力のために使用されていた。
〔発明が解決しようとする課題〕
上述した従来の入出力バッファエリアの管理装置は、
バッファエリア内の各ファイルのファイル対応バッファ
領域が固定的に保持され、他のファイルのファイル対応
バッファ領域とは独立して管理されているので、以下に
示すような欠点がある。
まず、利用者プログラムと各ファイルとの間のデータ
入出力の頻度に対応したバッファエリアの管理ができな
いために、各ファイルに対するデータ入出力の頻度をあ
まり考慮せずに各ファイル対応バッファ領域中のバッフ
ァ数を不用意に(バッファ数が必要なファイル対応バッ
ファ領域には過小に、バッファ数があまり必要でないフ
ァイル対応バッファ領域には限られたバッファ数の中か
ら過大に)指定するとデータ入出力回数が増加して利用
者プログラムのデータ入出力時間および処理実行時間が
増加する。
また、上述のような不適切なバッファ数の指定を避け
るためにデータ入出力を行う利用者プログラム側でその
処理に最適なバッファ数を指定しようとすると、利用者
プログラム毎にその処理を分析する(各ファイル対応バ
ッファ領域は独立して管理されているのでファイル毎に
データ入出力の処理を分析しなければならない)ととも
に同時に実行される他の利用者プログラムとの間の主記
憶装置の容量配分も併せて考慮しなければならなくなり
(ファイル対応バッファ領域中のバッファ数は固定的で
あるので、一旦不用意な指定をしてしまうと他の利用者
プログラムに及ぼす影響は大である)、その分析や考慮
に要する労力が大きいものになる(特に、大規模な利用
者プログラムになると処理の量や使用されるファイルの
数が多くなり上述の分析や考慮には多大の労力が必要に
なる)。
さらに、利用者プログラム中のある部分の処理ではあ
るファイルに対するデータ入出力が多くなり他の部分の
処理では他のファイルに対するデータ入出力が多くなる
というように、利用者プログラムにおける処理の流れに
応じて利用者プログラムと特定のファイルとの間のデー
タ入出力の頻度が大きく変動する場合には、上述の分析
や考慮を費やしても適正なバッファ数をファイル対応バ
ッファ領域毎に一意に決定することが困難になる。
本発明の目的は、上述の点に鑑み、データ入出力回数
に応じたバッファ数のファイル対応バッファ領域により
データ入出力を実行でき、利用者プログラムと各ファイ
ルとのデータ入出力回数の合計を最小限に近いレベルに
抑えることが可能になり、利用者プログラム全体のデー
タ入出力時間および処理実行時間の削減を達成すること
ができる入出力バッファエリアの管理装置を提供するこ
とにある。
〔課題を解決するための手段〕
本発明の入出力バッファエリアの管理装置は、複数の
ファイルに係るデータ入出力で共通に使用されるバッフ
ァエリアと、補助記憶装置上のファイルに対するデータ
入出力要求を行う利用者プログラムからのファイルオー
プン要求に応じてファイルオープン要求に係るファイル
のファイル対応バッファ領域を構成するパケットの確保
および前記バッファエリアの再編成処理を要求してバッ
ファエリア再編成手段に制御を渡す機能と、前記利用者
プログラムからのデータ入出力要求に応じてデータ入出
力を実行し各ファイルの処理ブロック数を計数し全ての
ファイルについての処理ブロック数の合計が一定数に達
した時点で前記バッファエリアの再編成処理を要求して
前記バッファエリア再編成手段に制御を渡す機能と、前
記利用者プログラムからのファイルクローズ要求に応じ
て前記バッファエリアの再編成処理を要求して前記バッ
ファエリア再編成手段に制御を渡す機能とを備えるデー
タアクセス手段と、前記利用者プログラムで使用される
全てのファイルのファイルオープン前に前記利用者プロ
グラムにより指定されたパケットサイズに基づき前記バ
ッファエリアを分割してパケットを作成する機能と、前
記データアクセス手段からの要求に応じて前記利用者プ
ログラムからのファイルオープン要求に係るファイルの
ファイル対応バッファ領域を構成するパケットを確保す
る機能と、前記データアクセス手段により計数されてい
る各ファイルの処理ブロック数と各ファイルのファイル
対応バッファ領域中のバッファを構成するパケットの数
とから計算される各ファイルのデータ処理量により示さ
れる前記利用者プログラムからのデータ入出力要求に応
じて実行されているデータ入出力の状況に則った各ファ
イルのファイル対応バッファ領域への最適な割当てバッ
ファ数に基づき前記バッファエリアの再編成処理をパケ
ットを利用して動的に行う機能とを備える前記バッファ
エリア再編成手段とを有する。
〔作用〕
本発明の入出力バッファエリアの管理装置では、バッ
ファエリアが複数のファイルに係るデータ入出力で共通
に使用され、データアクセス手段が、補助記憶装置上の
ファイルに対するデータ入出力要求を行う利用者プログ
ラムからのファイルオープン要求に応じてファイルオー
プン要求に係るファイルのファイル対応バッファ領域を
構成するパケットの確保およびバッファエリアの再編成
処理を要求してバッファエリア再編成手段に制御を渡
し、利用者プログラムからのデータ入出力要求に応じて
データ入出力を実行し各ファイルの処理ブロック数を計
数し全てのファイルについての処理ブロック数の合計が
一定数に達した時点でバッファエリアの再編成処理を要
求してバッファエリア再編成手段に制御を渡し、利用者
プログラムからのファイルクローズ要求に応じてバッフ
ァエリアの再編成処理を要求してバッファエリア再編成
手段に制御を渡し、バッファエリア再編成手段が、利用
者プログラムで使用される全てのファイルのファイルオ
ープン前に利用者プログラムにより指定されたパケット
サイズに基づきバッファエリアを分割してパケットを作
成し、データアクセス手段からの要求に応じて利用者プ
ログラムからのファイルオープン要求に係るファイルの
ファイル対応バッファ領域を構成するパケットを確保
し、データアクセス手段により計数されている各ファイ
ルの処理ブロック数と各ファイルのファイル対応バッフ
ァ領域中のバッファを構成するパケットの数とから計算
される各ファイルのデータ処理量により示される利用者
プログラムからのデータ入出力要求に応じて実行されて
いるデータ入出力の状況に則った各ファイルのファイル
対応バッファ領域への最適な割当てバッファ数に基づき
バッファエリアの再編成処理をパケットを利用して動的
に行う。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は、本発明の入出力バッファエリアの管理装置
の一実施例の構成を示すブロック図である。本実施例の
入出力バッファエリアの管理装置は、利用者プログラム
1と、空きパケット管理云テーブル2と、ファイル別割
当てパケット管理テーブル3と、ファイル別処理ブロッ
ク数テーブル4と、データアクセス手段5と、バッファ
エリア再編成手段6と、バッファエリア7と、ファイル
群8(補助記憶装置(図示せず)上の複数のファイル)
とを含んで構成されている。
バッファエリア7は、N(正整数)個のパケットP1,P
2,…,PNに分割されて構成されている(単数または複数
のパケットによりバッファ(図示せず。1個のバッファ
には1個のブロックが格納されている)が構成され、単
数または複数のバッファにより各ファイルに対応するフ
ァイル対応バッファ領域(図示せず)が構成されてい
る。バッファを構成する複数のパケットおよびファイル
対応バッファ領域を構成する複数のバッファはバッファ
エリア7内で連続して配置されていなくてもよい)。
ここで、バッファエリア7がパケットP1,P2,…,PNに
分割されているのは、ファイル毎にバッファサイズの異
なる単数または複数のバッファの集合であるファイル対
応バッファ領域をそれぞれバッファエリア7に連続領域
として確保しようとするとバッファエリア7の再編成処
理が困難になるからである。
例えば、3個のファイルA,BおよびCが存在しファイ
ルAおよびCに対応するバッファ(ファイルAおよびC
のファイル対応バッファ領域を構成するバッファ)のバ
ッファサイズが2000バイトでありファイルBに対応する
バッファのバッファサイズが4000バイトでありバッファ
エリア7のサイズが8000バイトである場合にファイルB
に対応するバッファの1個を増加しようとするときに
は、ファイルAおよびCに対応するバッファを1個ずつ
削除すればバッファサイズ的には空き領域を確保するこ
とができるが連続領域を確保することができないので結
局はファイルBに対応するバッファを増加することがで
きない。一方、パケットサイズを1000バイトとしてバッ
ファエリア7をパケット単位に分割してそれらのパケッ
トを上述と同一のバッファサイズのバッファに割り当て
ると、ファイルAおよびCに対応するバッファを1個ず
つ削除して計4個のパケットを空き状態とした上でその
4個の空きパケットをファイルBに対応するバッファを
構成するパケットとして割り当てればファイルBに対応
するバッファを容易に増加することができる。
第2図を参照すると、空きパケット管理テーブル2
は、ファイル群8中のファイルに割り当てられていない
パケットである空きパケットの数を示す空きパケット数
を格納している空きパケット数格納域21と、各空きパケ
ットの番地を格納している空きパケット番地テーブル22
とから構成されている(本実施例ではn(正整数。n≦
N)個のパケットPm1〜Pmn((Pm1〜Pmn)⊂(P1〜P
N))が空きパケットであることを示している)。
第3図を参照すると、ファイル別割当てパケット管理
テーブル3(第3図はファイル群8中のファイル毎に存
在するファイル別割当てパケット管理テーブル3の一例
を示す)は、1個のバッファ当たりに含まれるパケット
の数を示すバッファ当たりパケット数(本例では3)を
格納しているバッファ当たりパケット数格納域31と、利
用者プログラム1で処理中のブロックが格納されている
バッファ(現在処理中バッファ)の番号を示す現在処理
中バッファ番号(本例では2)を格納している現在処理
中バッファ番号格納域32と、当該ファイル(このファイ
ル別割当てパケット管理テーブル3に係るファイル)に
現時点で割り当てられているバッファ(当該ファイルの
ファイル対応バッファ領域を構成しているバッファ)の
数を示す現在バッファ数(本例では3)を格納している
現在バッファ数格納域33と、当該ファイルのファイルオ
ープン時に当該ファイルに割り当てられるバッファの目
標数(最小限はこれだけ割り当てようと試みられる数)
を示す最小バッファ数(本例では2)を格納している最
小バッファ数格納域34と、各バッファに割り当てられる
パケットの番地を格納しているパケット番地テーブル35
とから構成されている(本例では、当該ファイルの第1
番目のバッファにパケットPa1,Pa2およびPa3が割り当て
られ、第2番目のバッファにパケットPa4,Pa5およびPa6
が割り当てられ、第3番目のバッファにパケットPa7,Pa
8およびPa9が割り当てられている((Pa1〜Pa9)⊂(P1
〜PN))。
第4図を参照すると、ファイル別処理ブロック数テー
ブル4は、ファイル群8中の各ファイルの処理ブロック
数(ファイル別処理ブロック数テーブル4の初期化(後
述参照)が行われてから利用者プログラム1の処理の対
象となったブロックの数)の合計である処理ブロック数
合計を格納している処理ブロック数合計格納域41と、各
エントリにファイル群8中の各ファイルの処理ブロック
数が設定されている処理ブロック数テーブル42とから構
成されている。
第5図を参照すると、データアクセス手段5の処理
は、ファイルオープン時バッファエリア再編成要求ステ
ップ501と、ファイルオープン処理ステップ502と、現在
処理中バッファ内要求レコード存在判定ステップ503
と、ファイル別処理ブロック数テーブル1加算ステップ
504と、処理ブロック数合計判定ステップ505と、データ
入出力時バッファエリア再編成要求ステップ506と、バ
ッファエリア内次バッファ存在判定ステップ507と、次
バッファ現在処理中バッファ位置付けステップ508と、
データ入出力ステップ509と、要求レコード受渡しステ
ップ510と、ファイルクローズ処理ステップ511と、ファ
イルクローズ時バッファエリア再編成要求ステップ512
とからなる。
このデータアクセス手段5の処理により、ファイル群
8中の各ファイルの処理ブロック数が計測されてその計
測に基づいてファイル別処理ブロック数テーブル4内の
処理ブロック数合計格納域41への処理ブロック数合計の
設定が行われる。処理ブロック数合計が一定数に達した
場合には、データアクセス手段5からバッファエリア再
編成手段6に制御が渡されてバッファエリア7の再編成
処理が行われる。また、バッファエリア再編成手段6に
よるバッファエリア7の再編成処理の終了時には、ファ
イル別処理ブロック数テーブル4の初期化(処理ブロッ
ク数合計格納域41および処理ブロック数テーブル42のゼ
ロクリア)が行われてデータアクセス手段5による次の
処理ブロック数の計測のための準備が行われる。
第6図を参照すると、バッファエリア再編成手段6の
処理は、パケット作成ステップ601と、ファイルオープ
ン時必要パケット数計算ステップ602と、必要パケット
数合計判定ステップ603と、オープン要求ファイル対応
ファイル別割当てパケット管理テーブル設定ステップ60
4と、最小バッファ数分パケット確保判定ステップ605
と、オープン要求ファイル対応ファイル別割当てパケッ
ト管理テーブル余分バッファパケット設定ステップ606
と、データ処理量計算ステップ607と、割当てパケット
数計算ステップ608と、割当てバッファ数計算値取得ス
テップ609と、バッファ削減ステップ610と、バッファ増
加およびファイル別処理ブロック数テーブル初期化ステ
ップ611とからなる。
このバッファエリア再編成手段6によってあるファイ
ルに対応するバッファエリア7内のバッファが削減され
る場合には、以下に示すような処理が行われる(ステッ
プ610の処理において行われる)。
まず、そのファイルが入力ファイルであるときには、
すでに利用者プログラム1による処理の終了しているブ
ロックを格納しているバッファ(現在処理中バッファは
含まれない)を構成するパケットが削除されそのパケッ
トの番地が空きパケットの番地として空きパケット管理
テーブル2内の空きパケット番地テーブル22に設定され
る。この処理でも目的のバッファ数にまで削減すること
ができないときには、未処理のブロック中で最も後に処
理される予定のブロックを格納しているバッファを構成
するパケットが削除されそのパケットの番地が空きパケ
ット管理テーブル2内の空きパケット番地テーブル22に
設定される。
次に、対応するバッファが削減されるファイルが出力
ファイルであるときには、レコード(ブロックの構成要
素)が書き込まれていないバッファを構成するパケット
が削除されそのパケットの番地が空きパケット管理テー
ブル2内の空きパケット番地テーブル22に設定される。
この処理でも目的のバッファ数にまで削減することがで
きないときには、すでに処理が終了しているブロックの
内容がファイル群8中の所定のファイルに出力された後
にそのブロックを格納しているバッファを構成するパケ
ットが削除されそのパケットの番地が空きパケット管理
テーブル2内の空きパケット番地テーブル22に設定され
る。
上述のバッファの削減において、対応するバッファが
削減されたファイルに係るファイル別割当てパケット管
理テーブル3内の現在バッファ数格納域33中の現在バッ
ファ数が最小バッファ数格納域34中の最小バッファ数に
等しい場合には、そのバッファを構成するパケットの削
除は行われずに他のファイルに対応するバッファの削減
の処理に制御が進められる。
次に、このように構成された本実施例の入出力バッフ
ァエリアの管理装置の動作について説明する。
まず、ファイル群8中の全てのファイルのファイルオ
ープン前のバッファエリア再編成手段6における動作に
ついて説明する。
この場合には、利用者プログラム1から制御を渡され
たバッファエリア再編成手段6(利用者プログラム1か
らバッファエリア再編成手段6にバッファエリア初期化
要求が渡される)により、指定さたバッファエリア7が
指定されたパケットサイズで分割されてパケットP1〜PN
が作成され、作成されたパケットP1〜PNの番地が空きパ
ケット管理テーブル2内の空きパケット番地テーブル22
に設定される。例えば、100000バイトのバッファエリア
7および1000バイトのパケットサイズが指定された場合
には100個のパケットP1〜PNが作成される(N=100にな
る)(ステップ601)。
ステップ601の処理が終了すると、バッファエリア再
編成手段6から利用者プログラム1に制御が戻される。
次に、ファイルオープン時のデータアクセス手段5お
よびバッファエリア再編成手段6における動作について
説明する。
利用者プログラム1からファイルオープン要求が渡さ
れたデータアクセス手段5では、ファイルオープン要求
に係るファイル群8中のファイルに対応するファイル別
割当てパケット管理テーブル3内のバッファ当たりパケ
ット数格納域31および最小バッファ数格納域34にバッフ
ァ当たりパケット数および最小バッファ数(あらかじめ
指定されている)が設定され、最小バッファ数分のパケ
ット(最小バッファ数だけのバッファを構成するパケッ
ト)を割り当てる(確保する)旨の要求がバッファエリ
ア再編成手段6に対して行われる(ステップ501。第5
図および第6図における参照)。
データアクセス手段5からの要求を受け取ったバッフ
ァエリア再編成手段6では、ファイル群8中の各ファイ
ル(ファイルオープン要求に係るファイルが新たに加わ
っている)において最小バッファ数分のバッファを満た
すのに必要なパケット数がファイル別割当てパケット管
理テーブル3の参照に基づいて「最小バッファ数×バッ
ファ当たりのパケット数」により計算され(ステップ60
2)、それらの合計(全てのファイルにおいて最小バッ
ファ数分のバッファを満たすのに必要なパケット数)が
全パケット数(N)より大きいか否かが判定される(上
記合計が全パケット数以内であるか否かが確認される)
(ステップ603)。
この判定で必要なパケット数の合計が全パケット数よ
り大きい場合には、最小バッファ数やバッファエリア7
の指定の誤りであると判断されて本実施例の入出力バッ
ファエリアの管理装置の処理は中断される。
ステップ603の判定で必要なパケット数の合計が全パ
ケット数より大きくない場合には、ファイルオープン要
求に係るファイルに対して最小バッファ数分のパケット
を確保するために、空きパケット管理テーブル2内の空
きパケット番地テーブル22中の番地に存在する空きパケ
ットが取り出されてその空きパケットがファイルオープ
ン要求に係るファイルのファイル対応バッファ領域を形
成するバッファを構成するパケットとして割り当てられ
る。この処理は、ファイルオープン要求に係るファイル
に対してその最小バッファ数分のパケットが確保される
か、空きパケット管理テーブル2で管理されている空き
パケットがなくなるまで実行される(ステップ604)。
ステップ604における処理の実行が終了した時点で最
小バッファ数分のパケットがファイルオープン要求に係
るファイルのファイル対応バッファ領域に確保されたか
否かが判定される(ステップ605)。
この判定で最小バッファ数分のパケットが確保されて
いない場合には、最小バッファ数以上のバッファがファ
イル対応領域に割り当てられているファイルが探され、
そのファイルのファイル対応バッファ領域から最小バッ
ファ数を越えるバッファ(余分のバッファ)が削減さ
れ、削減された余分のバッファを構成するパケットが取
り出され、それらのパケットがファイルオープン要求に
係るファイルに割り当てられる。この処理はファイルオ
ープン要求に係るファイルに最小バッファ数分のパケッ
トが割り当てられるまで実行される(ファイルオープン
要求に係るファイルに最小バッファ数分のパケットが割
り当てられた時点で取り出されたパケット(削減された
余分のバッファを構成していたパケット)が余った場合
には、その余ったパケットの番地は空きパケット管理テ
ーブル2の空きパケット番地テーブル22に戻される)
(ステップ606)。
ステップ605の判定で最小バッファ数分のパケットが
ファイルオープン要求に係るファイルに確保されている
場合またはステップ606の処理が終了した場合には、フ
ァイルオープン要求に係るファイルへのパケットの割当
てを契機とするバッファエリア7の再編成処理が次のよ
うに行われる。
まず、ファイル別割当てパケット管理テーブル3内の
バッファ当たりパケット数格納域31に格納されているバ
ッファ当たりパケット数とファイル別処理ブロック数テ
ーブル4内の処理ブロック数テーブル42に格納されてい
るファイル群8中の各ファイルの処理ブロック数とが乗
じられて各ファイルのデータ処理量(処理ブロックを格
納するために使用されたパケット数)Di(0または正整
数)が計算され、さらにファイル群8中の全てのファイ
ルについてのデータ処理量Diの合計であるデータ処理量
合計DM(0または正整数)が計算される(ステップ60
7)。
この計算結果おデータ処理量合計DMと全パケット数
(N)とに基づいて各ファイル毎に以下に示す計算式に
よってバッファエリア再編成後の新たな割当てパケット
数の第1計算値Piが計算される(ステップ608前段)。
この計算式はデータ処理量がDiのファイルおよびデー
タ処理量が(DM−Di)のファイルの両者に対するデータ
入出力回数を最小にするための前者のファイルのファイ
ル対応バッファ領域を構成するパケットの数を求めるた
めの計算式であり、以下に示すような算出根拠によって
導き出される。
ファイルに対するデータ入出力回数は、当該ファイル
のデータ処理量を当該ファイルに係るファイル対応バッ
ファ領域を構成するパケットの数で割った値として算出
することができる。したがって、前者のファイル(デー
タ処理量がDiのファイル)のファイル対応バッファ領域
を構成するパケットの数をPとすると、前者のファイル
に対するデータ入出力回数は「Di/P」となる。また、後
者のファイル(データ処理量が(DM−Di)のファイル)
に対するデータ入出力回数は「(DM−Di)/(N−
P)」となる。この2つの値の合計値が、両ファイルに
対するデータ入出力回数である。この合計値(両ファイ
ルに対するデータ入出力回数)の「Di/P+(DM−Di)/
(N−P)」をPの関数とみなして、その関数をPにつ
いて微分して求めた式を0とおいて得られる二次方程式
「(DM−Di)/(N−P)−Di/P2+=0」の根をPi
とすると、そのPiが上述の合計値の最小値となる。この
ような考え方によってPiを求める計算式が、上述の計算
式である。
なお、3個以上のファイルが取り扱われる場合には、
上述の計算式が各ファイルのファイル対応バッファ領域
を構成するパケットの数を求めるための近似式として使
用される。つまり、ファイル群8中の各ファイルについ
ての割当てパケット数の第1計算値Pi(上述の計算式に
おいてPiは正負両方の値を採る可能性があるか負の値は
採用されない。また、Pi>NとなったときにはPi=Nと
される。さらに、DM=Di=0のときには後述するBj=0
とされてステップ609以下の処理が行われる)の合計PA
が全パケット数(N)の範囲内に入るように、第1計算
値Piが以下に示す計算式によって修正されて第2計算値
Pjが求められる(ステップ608後段)。
Pj=(Pi/PA)×N 次に、この割当てパケット数の第2計算値Pjとファイ
ル群8中の各ファイルに係るファイル別割当てパケット
管理テーブル3内のバッファ当たりパケット数格納域31
中のバッファ当たりパケット数とに基づいて、ファイル
毎の割当てバッファ数の計算値Bj(0または正整数。次
式で非整数(0を除く)になれば四捨五入等で整数化さ
れる)が次式により求められる(ステップ609)。
Bj=Pj/(バッファ当たりパケット数) さらに、ファイル毎に各ファイルに係るファイル別割
当てパケット管理テーブル3内の現在バッファ数格納域
33中の現在バッファ数と上述のようにして求められた割
当てバッファ数の計算値Bjおよび最小バッファ数格納域
34中の最小バッファ数とが比較され、割当てバッファ数
の計算値Bjおよび最小バッファ数のどちらよりも現在バ
ッファ数が大きい場合には割当てバッファ数の計算値Bj
および最小バッファ数の大きい方に一致するまで各ファ
イルに対応するバッファが削減されてそのバッファを構
成していたパケットが取り出され、それらのパケットの
番地が空きパケット管理テーブル2内の空きパケット番
地テーブル22に戻される(ステップ610。バッファの削
減の処理については既述の第6図に関する説明を参
照)。
また、各ファイルの現在バッファ数とステップ609で
計算された割当てバッファ数の計算値Bjとが比較され、
現在バッファ数の方が小さいファイルが存在する場合に
は割当てバッファ数の計算値Bjと現在バッファ数との差
の大きいファイルから順にそのファイルに対応するバッ
ファが増加される。すなわち、空きパケット管理テーブ
ル2内の空きパケット番地テーブル22に番地が格納され
ている空きパケットが取り出されてそのファイルのファ
イル対応バッファ領域のファイルを構成するパケットと
して割り当てられていく(そのファイルに係るファイル
別割当てパケット管理テーブル3内のパケット番地テー
ブル35に増加されるバッファを構成するパケットの番地
が設定される)。これらの処理の後に空きパケットが残
っている場合には、残っている空きパケットで1個のバ
ッファが構成できるファイルにそれらのパケットが割り
当てられて残っている空きパケットができるだけ少なく
なるように処理される(ステップ611前段)。
さらに、ファイル別処理ブロック数テーブル4が初期
化され(ステップ611後段)、データアクセス手段5に
制御が戻される(第5図および第6図における参
照)。
バッファエリア再編成手段6からのリターン後のデー
タアクセス手段5では、通常の(従来の技術による)フ
ァイルオープン処理が実行され(ステップ502)、この
処理の終了後に利用者プログラム1に制御が戻される。
次に、データ入出力時のデータアクセス手段5および
バッファエリア再編成手段6における動作について説明
する。
利用者プログラム1からデータ入出力要求が渡された
データアクセス手段5では、データ入出力要求に係る要
求レコードが現在処理中バッファ(現時点で利用者プロ
グラム1による処理の対象であるブロックが格納されて
いるバッファ)に存在しているか否かが判定される(ス
テップ503)。
この判定で要求レコードが現在処理中バッファに存在
している場合には、要求レコードが利用者プログラム1
と現在処理中バッファとの間で受け渡され(ステップ51
0)、利用者プログラム1に制御が戻される。
ステップ503の判定で要求レコードが現在処理中バッ
ファに存在していない場合には、ファイル別処理ブロッ
ク数テーブル4内の処理ブロック数テーブル42中の当該
ファイルの処理ブロック数と処理ブロック数合計格納域
41中の処理ブロック数合計とに1が加算され(現在処理
中バッファ内のブロックが処理ブロックとして計上され
る)(ステップ504)、ファイル群8中の全てのファイ
ルの処理ブロック数の合計である処理ブロック数合計が
一定数(この一定数の値はデータアクセス手段5により
任意に決定されることもあり、利用者プログラム1によ
り決定されることもある)に達しているか否かが判定さ
れる(ステップ505)。
この判定で処理ブロック数合計が一定数に達している
場合には、バッファエリア再編成手段6に対してバッフ
ァエリア7の再編成処理が要求される(ステップ506。
第5図および第6図における参照)。
バッファエリア7の再編成処理が要求されたバッファ
エリア再編成手段6では、ファイルオープン時の動作で
すでに述べているステップ607〜611の処理(バッファエ
リア7の再編成処理)が行われ(このバッファエリア7
の再編成処理で対象となるファイルはすでにファイルオ
ープンされているファイル群8中の各ファイルであ
る)、データアクセス手段5に制御が戻される(第5図
および第6図における参照)。
ステップ505の判定で処理ブロック数合計が一定数に
達していない場合またはバッファエリア再編成手段6に
おけるバッファエリア7の再編成処理(ステップ506の
処理)が終了した場合には、現在処理中バッファの次の
バッファ(次のバッファ番号を有するバッファ)がバッ
ファエリア7に存在するか否かが判定される(本実施例
ではファイル内のレコードが順アクセスされることを前
提としているので、この判定により要求レコードを含む
ブロックがバッファエリア7内の当該ファイルのファイ
ル対応バッファ領域中の現在処理中バッファ以外のバッ
ファに存在するか否か(存在すれば当該ファイルに対す
るデータ入出力をまだ行う必要がない)を判定すること
ができる)(ステップ507)。
この判定で次のバッファがバッファエリア7に存在す
る場合には、次のバッファ(このバッファ内に要求レコ
ードを含む次のブロックが格納されている)が現在処理
中バッファとして位置付けられる(ステップ508)。
ステップ507の判定で次のバッファがバッファエリア
7に存在しない場合には、当該ファイルが入力ファイル
ならば当該ファイルのファイル対応バッファ領域に割り
当てられているバッファ数(ファイル別割当てパケット
管理テーブル3内の現在バッファ数格納域33が参照され
て求められる現在バッファ数)分のブロックが当該ファ
イルから入力されて(現在バッファ数分のバッファを構
成するパケットのデータ入力が行われる)ファイル対応
バッファ領域の最初のバッファが現在処理中バッファと
して位置付けられ、当該ファイルが出力ファイルならば
当該ファイルの現在バッファ数分のブロックが当該ファ
イルに出力されて(現在バッファ数分のバッファを構成
するパケットのデータ出力が行われる)ファイル対応バ
ッファ領域の最初のバッファが現在処理中バッファとし
て位置付けられる(データ入出力はファイル対応バッフ
ァ領域中のデータ(現在バッファ数分のバッファを構成
するパケット中のデータ)を単位として行われる)(ス
テップ509)。
さらに、要求レコードが利用者プログラム1と現在処
理中バッファとの間で受け渡され(ステップ510)、利
用者プログラム1に制御が戻される。
次に、ファイルクローズ時のデータアクセス手段5お
よびバッファエリア再編成手段6における動作について
説明する。
利用者プログラム1からファイルクローズ要求が渡さ
れたデータアクセス手段5では、通常のファイルクロー
ズ処理が行われ(ステップ511)、ファイルクローズ処
理が行われたファイルのファイル対応バッファ領域に割
り当てられていたバッファを構成していたパケットが取
り出され、それらのパケットの番地が空きパケット管理
テーブル2内の空きパケット番地テーブル22に設定さ
れ、ファイル別処理ブロック数テーブル4内の処理ブロ
ック数テーブル42中の当該ファイルの処理ブロック数が
削除されて(処理ブロック数合計格納域41中の処理ブロ
ック数合計も減少される)バッファエリア再編成手段6
に対してバッファエリア7の再編成処理が要求される
(ステップ512。第5図および第6図における参
照)。
バッファエリア7の再編成処理が要求されたバッファ
エリア再編成手段6では、ファイルクローズされたファ
イルのために使用されていたパケットを他のファイルの
ために使用させてバッファエリア7をより有効に利用す
るためにファイルオープン時の動作ですでに述べている
ステップ607〜611の処理(バッファエリア7の再編成処
理)が行われ、データアクセス手段5に制御が戻され
(第5図および第6図における参照)、さらにデータ
アクセス手段5から利用者プログラム1に制御が戻され
る。
次に、本実施例の入出力バッファエリアの管理装置の
動作を第7図(a)および(b)を参照してさらに具体
的に説明する。
上述したように本実施例を一例とする本発明では、各
ファイル(本実施例ではファイル群8中の各ファイル)
のバッファ数を動的に変更することにより、利用者プロ
グラム(本実施例では利用者プログラム1)の処理にお
ける全てのファイルに対するデータ入出力回数を最小限
に近いレベルに抑えることが可能になる。
例えば、ファイル群8中に3個のファイルA,Bおよび
Cが存在し、それぞれ100個,500個および3000個のブロ
ックが利用者プログラム1により処理される場合を想定
する(簡単のために各ファイルのブロックサイズは全て
同一で、パケットサイズはブロックサイズに等しく、バ
ッファエリア7には20個のバッファを確保できるものと
する)。
この場合に固定バッファ方式(従来の入出力バッファ
エリアの管理装置)で処理ブロック数に比例させてバッ
ファを確保すると、ファイルAのファイル対応バッファ
領域には1個のバッファが確保され、ファイルBのファ
イル対応バッファ領域には3個のバッファが確保され、
ファイルCのファイル対応バッファ領域には16個のバッ
ファが確保される。これによって、ファイルAとそのフ
ァイル対応バッファ領域との間にデータ入出力回数は10
0回となり、ファイルBとそのファイル対応バッファ領
域との間のデータ入出力回数は167回となり、ファイル
Cとそのファイル対応バッファ領域との間のデータ入出
力回数は188回となる。したがって、3つのファイルA
〜Cとバッファエリア7との間のデータ入出力回数の合
計は455回となる(第7図(a)参照)。
これに対して、ファイルAの最小バッファ数が1個と
指定され、ファイルBの最小バッファ数が2個と指定さ
れ、ファイルCの最小バッファ数が10個と指定され、第
5図のステップ505の判定に用いられる一定数が360に設
定されて本実施例の入出力バッファエリアの管理装置が
適用されると、データ入出力回数は第7図(b)に示す
ように減少する。すなわち、ファイルオープン時には最
適な割当てバッファ数を推定するためのデータが存在し
ないために偏ったバッファ数が割り当てられる(ファイ
ルAよりファイルオープンされるので、まず20個のバッ
ファがファイルAのファイル対応バッファ領域に割り当
てられ、ファイルBおよびCのファイル対応バッファ領
域にはファイルAに対応するバッファが削減されて最小
バッファ数分の2個および10個が割り当てられる)が、
ある程度のデータ処理量に関するデータが得られた後に
はデータ入出力回数が少なくなるように3つのファイル
A〜Cのファイル対応バッファ領域への割当てバッファ
数(現在バッファ数)の最適化が行われるために3つの
ファイルA〜Cとバッファエリア7との間のデータ入出
力回数は402回となる。
〔発明の効果〕
以上説明したように本発明は、利用者プログラムの実
行中に使用されるファイルの処理ブロック数(利用者プ
ログラムとファイルとの間のデータ入出力の頻度)に応
じて動的に各ファイル対応バッファ領域中のバッファ数
を増減してバッファエリアの再編成処理を行うことによ
り、データ入出力回数に応じたバッファ数のファイル対
応バッファ領域を介してデータ入出力を実行でき、利用
者プログラムと各ファイルとのデータ入出力回数の合計
を最小源に近いレベルに抑えることが可能になり、利用
者プログラム全体のデータ入出力時間および処理実行時
間の削減を達成することができるという効果がある(特
に、利用者プログラムの処理の流れに応じて特定のファ
イルに対するデータ入出力の頻度が変動する場合には、
データ入出力の頻度の変動に基づくファイル対応バッフ
ァ領域中のバッファ数の動的な(利用者プログラムの処
理中における)調整により、利用者プログラムのデータ
入出力時間の大きな削減が可能になる)。
また、利用者プログラム側では利用者プログラム全体
で使用されるバッファエリアのサイズ,パケットサイズ
および各ファイル対応バッファ領域の最小バッファ数等
の指定を行うだけでバッファエリアの適正な管理を行え
ることにより、利用者プログラムの処理を詳細に分析し
て各ファイル対応バッファ領域中の最適なバッファ数を
算定する作業等から利用者が解放されるという効果があ
る。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、 第2図は第1図中の空きパケット管理テーブルの構成を
示す図、 第3図は第1図中のファイル別割当てパケット管理テー
ブルの構成を示す図、 第4図は第1図中のファイル別処理ブロック数テーブル
の構成を示す図、 第5図は第1図中のデータアクセス手段の処理を示す流
れ図、 第6図は第1図中のバッファエリア再編成手段の処理を
示す流れ図、 第7図(a)は従来の入出力バッファエリアの管理装置
によりデータ入出力が行われる場合のデータ入出力回数
の計算例を示す図、 第7図(b)は第1図に示す入出力バッファエリアの管
理装置によりデータ入出力が行われる場合のデータ入出
力回数の計算例を示す図である。 図において、 1……利用者プログラム、 2……空きパケット管理テーブル、 3……ファイル別割当てパケット管理テーブル、 4……ファイル別処理ブロック数テーブル、 5……データアクセス手段、 6……バッファエリア再編成手段、 7……バッファエリア、 8……ファイル群、 21……空きパケット数格納域、 22……空きパケット番地テーブル、 31……バッファ当たりパケット数格納域、 32……現在処理中バッファ番号格納域、 33……現在バッファ数格納域、 34……最小バッファ数格納域、 35……パケット番地テーブル、 41……処理ブロック数合計格納域、 42……処理ブロック数テーブルである。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のファイルに係るデータ入出力で共通
    に使用されるバッファエリアと、 補助記憶装置上のファイルに対するデータ入出力要求を
    行う利用者プログラムからのファイルオープン要求に応
    じてファイルオープン要求に係るファイルのファイル対
    応バッファ領域を構成するパケットの確保および前記バ
    ッファエリアの再編成処理を要求してバッファエリア再
    編成手段に制御を渡す機能と、前記利用者プログラムか
    らのデータ入出力要求に応じてデータ入出力を実行し各
    ファイルの処理ブロック数を計数し全てのファイルにつ
    いての処理ブロック数の合計が一定数に達した時点で前
    記バッファエリアの再編成処理を要求して前記バッファ
    エリア再編成手段に制御を渡す機能と、前記利用者プロ
    グラムからのファイルクローズ要求に応じて前記バッフ
    ァエリアの再編成処理を要求して前記バッファエリア再
    編成手段に制御を渡す機能とを備えるデータアクセス手
    段と、 前記利用者プログラムで使用される全てのファイルのフ
    ァイルオープン前に前記利用者プログラムにより指定さ
    れたパケットサイズに基づき前記バッファエリアを分割
    してパケットを作成する機能と、前記データアクセス手
    段からの要求に応じて前記利用者プログラムからのファ
    イルオープン要求に係るファイルのファイル対応バッフ
    ァ領域を構成するパケットを確保する機能と、前記デー
    タアクセス手段により計数されている各ファイルの処理
    ブロック数と各ファイルのファイル対応バッファ領域中
    のバッファを構成するパケットの数とから計算される各
    ファイルのデータ処理量により示される前記利用者プロ
    グラムからのデータ入出力要求に応じて実行されている
    データ入出力の状況に則った各ファイルのファイル対応
    バッファ領域への最適な割当てバッファ数に基づき前記
    バッファエリアの再編成処理をパケットを利用して動的
    に行う機能とを備える前記バッファエリア再編成手段
    と、 を有することを特徴とする入出力バッファエリアの管理
    装置。
JP63037197A 1988-02-19 1988-02-19 入出力バッファの管理装置 Expired - Lifetime JP2734515B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63037197A JP2734515B2 (ja) 1988-02-19 1988-02-19 入出力バッファの管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63037197A JP2734515B2 (ja) 1988-02-19 1988-02-19 入出力バッファの管理装置

Publications (2)

Publication Number Publication Date
JPH01211143A JPH01211143A (ja) 1989-08-24
JP2734515B2 true JP2734515B2 (ja) 1998-03-30

Family

ID=12490849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63037197A Expired - Lifetime JP2734515B2 (ja) 1988-02-19 1988-02-19 入出力バッファの管理装置

Country Status (1)

Country Link
JP (1) JP2734515B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03296841A (ja) * 1990-04-16 1991-12-27 Nec Corp キャッシュ制御方式
JPH0799508B2 (ja) * 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
JPH05310611A (ja) * 1991-08-16 1993-11-22 Kawasaki Steel Corp 2−メチルナフタレンの製造方法
JP5391153B2 (ja) * 2010-06-01 2014-01-15 株式会社バッファロー ファイル管理装置およびファイル管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61101851A (ja) * 1984-10-24 1986-05-20 Nec Corp バツフア記憶域の動的資源管理方式
JPS62135929A (ja) * 1985-12-09 1987-06-18 Nec Corp フアイル入出力方式
JPS62257520A (ja) * 1986-04-30 1987-11-10 Nec Corp バツフア領域管理方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「ACOSソフトウェア ACOS−4/MVP XE ADBS導入と構築の手引き DFZ72−2」(1985−6)日本電気株式会社,P.92−95

Also Published As

Publication number Publication date
JPH01211143A (ja) 1989-08-24

Similar Documents

Publication Publication Date Title
US6047356A (en) Method of dynamically allocating network node memory's partitions for caching distributed files
US6542978B2 (en) Externally identifiable descriptor for standard memory allocation interface
US6715054B2 (en) Dynamic reallocation of physical storage
US10831387B1 (en) Snapshot reservations in a distributed storage system
US20080208861A1 (en) Data Sorting Method And System
EP1347369A2 (en) Method for writing contiguous arrays of stripes in a raid storage system
US6363468B1 (en) System and method for allocating memory by partitioning a memory
US7783683B2 (en) Computer-readable storage medium storing generational garbage collection program
JPH11511272A (ja) 実時間データ移送のシステムおよびスパースファイルを用いる方法
JP2004295790A (ja) 記憶装置のキャッシュ管理方法
US20100030994A1 (en) Methods, systems, and computer readable media for memory allocation and deallocation
US20020178176A1 (en) File prefetch contorol method for computer system
US7870171B2 (en) Method and system for garbage collection in a multitasking environment
CN107453948A (zh) 一种网络测量数据的存储方法及系统
US6434553B1 (en) File prefetch control method for computer system
JPH05274152A (ja) オブジェクト管理方式
CN109840247B (zh) 文件系统及数据布局方法
US6785697B2 (en) Storage reclamation on tape management systems
JP2734515B2 (ja) 入出力バッファの管理装置
GB2497172A (en) Reserving space on a storage device for new data based on predicted changes in access frequencies of storage devices
US20040117408A1 (en) Systems, methods and articles of manufacture for determining available space in a database
CN110633053B (zh) 存储容量均衡方法、对象存储方法及装置
JP4176933B2 (ja) 外部記憶装置ドライバプログラムを記録した記録媒体、及び外部記憶装置アクセス機能を有する計算機
JP2839530B2 (ja) メモリ割当て優先度の動的変更処理方式
JP2694109B2 (ja) 動的バッファ管理装置および方法