JPH10154089A - ファイル入出力装置 - Google Patents

ファイル入出力装置

Info

Publication number
JPH10154089A
JPH10154089A JP8329134A JP32913496A JPH10154089A JP H10154089 A JPH10154089 A JP H10154089A JP 8329134 A JP8329134 A JP 8329134A JP 32913496 A JP32913496 A JP 32913496A JP H10154089 A JPH10154089 A JP H10154089A
Authority
JP
Japan
Prior art keywords
input
output
record
output buffer
requested
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
JP8329134A
Other languages
English (en)
Inventor
Hiroshi Yoshioka
弘 吉岡
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 JP8329134A priority Critical patent/JPH10154089A/ja
Publication of JPH10154089A publication Critical patent/JPH10154089A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 ファイル入出力装置に於いて、入出力バッフ
ァを用いて直接探査入出力処理を高速に行えるようにす
る。 【解決手段】 直接探査入出力処理を行うプログラム20
の最初の実行時、入出力要求されたレコードのレコード
番号がレコード番号出力ファイル52に出力される。利用
者は、その内容に基づいて、プログラム20のレコードア
クセス順にどのような傾向があるかを調べ、その傾向に
合った配置情報を求める。例えば、降順になる傾向があ
る場合には、入出力要求されたレコードと、その直前に
存在する所定個数のレコードを入出力バッファ45に配置
することを指示する配置情報を求める。第2回目以降の
プログラム20の実行時には、その配置情報を領域43に設
定する。これにより、入出力処理手段30は、入出力要求
されたレコードが入出力バッファ45に配置されていなか
った場合、配置情報に従ってレコードを配置する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ファイル入出力装
置に関し、特に、直接探査入出力処理を行う場合に於い
ても、入出力バッファを使用して効率的に入出力処理を
行うことができるファイル入出力装置に関する。
【0002】
【従来の技術】従来、プログラムの実行時に於ける入出
力処理に於いては、処理の高速化を図るため、一般に、
プログラムとファイルとの間を仲介する入出力バッファ
を主記憶装置上に設け、この入出力バッファを利用して
ファイルの入出力を行っている(例えば、「オペレーテ
ィング・システム入門」,P128〜P130,昭和6
1年4月1日 第20刷発行,日本電気情報処理教育部
編,財団法人 日本能率協会発行)。
【0003】入出力バッファを用いることにより、順番
探査入出力と呼ばれている入出力処理に於いては、処理
の高速化を図ることができる。しかし、直接探査入出力
と呼ばれている入出力処理に於いては、プログラムが任
意のレコードに対して入出力を行うため、入出力バッフ
ァとファイルとの間の入出力処理が頻繁に発生し、処理
を高速化することは難しい。
【0004】そこで、直接探査入出力処理の高速化を図
るため、例えば、特開平6−110669号公報に記載
されているような技術が提案されている。この従来の技
術に於いては、ファイル中の全データを主記憶装置上に
一度入力し、その主記憶装置上のデータとの入出力処理
を行うことにより、直接探査入出力処理の高速化を図っ
ている。
【0005】
【発明が解決しようとする課題】上述した従来の技術
は、直接探査入出力処理を行おうとするファイルと同一
サイズ以上の主記憶装置上の領域が必要になるため、フ
ァイルサイズによっては適用できない場合があるという
問題がある。一般に、コンピュータシステムが備えてい
る主記憶装置のサイズは、外部記憶装置のサイズよりも
はるかに小さく、上述した従来の技術を適用できないと
いう事態は発生し易い。
【0006】そこで、本発明の目的は、入出力バッファ
を利用して直接探査入出力処理を高速に行うことができ
るファイル入出力装置を提供することにある。
【0007】
【課題を解決するための手段】本発明は上記目的を達成
するため、入出力バッファを介してユーザファイルに対
する入出力処理を行うファイル入出力装置に於いて、レ
コード番号出力ファイルと、前記ユーザファイルに対し
て直接探査入出力処理を行うプログラムによって入出力
要求されたレコードが前記入出力バッファに配置されて
いない場合に、前記入出力要求されたレコードを含めて
どのようなレコードを前記入出力バッファ中に配置する
のかを示す配置情報を利用者の指示に従って設定する入
出力バッファデータ配置解析手段と、前記プログラムに
よって入出力要求されたレコードのレコード番号を前記
レコード番号出力ファイルに出力すると共に、前記プロ
グラムによって入出力要求されたレコードが前記入出力
バッファに配置されていなかった場合、前記入出力バッ
ファデータ配置解析手段により設定されている配置情報
に従って前記入出力バッファに前記入出力要求されたレ
コードを含む複数のレコードを配置する入出力処理手段
とを備えている。
【0008】この構成に於いては、直接探査入出力処理
を行うプログラムの実行時に、プログラムがレコードの
入出力を要求すると、入出力処理手段が、レコード番号
出力ファイルに入出力要求されたレコードのレコード番
号を出力する。この結果、レコード番号出力ファイルに
は、上記したプログラムがどのような順番でレコードを
アクセスしたのかを示す情報が格納される。
【0009】プログラムの実行終了後、利用者は、レコ
ード番号出力ファイルに格納されているレコード番号に
基づいて、上記プログラムのレコードアクセス順にどの
ような傾向があるかを調べ、その傾向に合った配置情報
を求めておく。例えば、レコードアクセス順が昇順にな
る傾向があれば、入出力要求されたレコードとその直後
に存在する所定個数のレコードとを入出力バッファに配
置することを示す配置情報を求めておく。また、例え
ば、レコードアクセス順が降順になる傾向が高ければ、
入出力要求されたレコードとその直前に存在する所定個
数のレコードを入出力バッファに配置することを指示す
る配置情報を求めておく。
【0010】そして、上記したプログラムの再実行時に
は、入出力バッファデータ配置解析手段を用いて上記プ
ログラムのレコードアクセス順に合った配置情報を設定
しておき、入出力処理手段は、上記プログラムによって
入出力要求されたレコードが入出力バッファに配置され
ていない場合、入出力バッファデータ配置解析手段によ
って設定されている配置情報に従って上記入出力要求さ
れたレコードを含む複数個のレコードを入出力バッファ
に配置する。
【0011】また、本発明は、無駄なレコード番号の出
力処理が行われないようにするため、前記レコード番号
出力ファイルへレコード番号を出力するか否かを示すレ
コード番号出力可否情報を、利用者の指示に従って設定
するレコード番号出力要求解析手段を備え、且つ、前記
入出力処理手段は、前記レコード番号出力要求解析手段
によって設定されたレコード番号出力可否情報がレコー
ドを出力することを示している場合のみ、前記プログラ
ムによって入出力要求されたレコードのレコード番号を
前記レコード番号出力ファイルに出力する構成を備えて
いる。
【0012】この構成に於いては、利用者は、プログラ
ムの最初の実行時、レコード番号の出力を指示するレコ
ード番号出力可否情報を、レコード番号出力要求解析手
段を用いて設定しておく。従って、プログラムの最初の
実行時に於いては、入出力処理手段は、入出力要求され
たレコードのレコード番号をレコード番号出力ファイル
に出力する。
【0013】プログラムの最初の実行終了後、利用者
は、レコード番号出力ファイルに格納されているレコー
ド番号に基づいて、前述したと同様にして、そのプログ
ラムのレコードアクセス順の傾向に合った配置情報を求
めておく。
【0014】プログラムの第2回目以降の実行時に於い
ては、既にそのプログラムについての配置情報を求めて
あるので、レコード番号の採取を行うことは必要ない。
従って、プログラムの第2回目以降の実行時に於いて
は、利用者は、レコード番号を出力しないことを指示す
るレコード番号出力可否情報をレコード番号出力要求解
析手段を用いて設定する。これにより、無駄なレコード
番号の出力処理が行われないようにすることができる。
【0015】また、本発明は、入出力処理を更に高速化
するため、入出力バッファのサイズを示す入出力バッフ
ァサイズ情報を利用者の指示に従って設定する入出力バ
ッファサイズ解析手段を備え、且つ、前記入出力処理手
段は、前記入出力バッファサイズ解析手段によって設定
された入出力バッファサイズ情報によって示されるサイ
ズの入出力バッファを主記憶装置上に確保する構成を備
えている。
【0016】この構成に於いては、利用者は、プログラ
ムの最初の実行終了時に、レコード番号出力ファイルに
格納されているレコード番号に基づいて、入出力バッフ
ァの最適なサイズを求めておく。そして、プログラムの
第2回目以降の実行時に於いては、利用者は、入出力バ
ッファサイズ解析手段を用いて上記最適なバッファサイ
ズを設定する。これにより、入出力処理手段によって主
記憶装置上に上記最適なサイズの入出力バッファが確保
され、この入出力バッファを介してレコードの入出力が
行われる。
【0017】また、本発明は、入力要求と出力要求とで
レコードアクセス順の傾向が異なるプログラムであって
も、入出力処理を高速に行えるようにするため、入出力
バッファを介してユーザファイルに対する入出力処理を
行うファイル入出力装置に於いて、レコード番号出力フ
ァイルと、前記ユーザファイルに対して直接探査入出力
処理を行うプログラムによって入力要求されたレコード
が前記入出力バッファに配置されていない場合に、前記
入力要求されたレコードを含めてどのようなレコードを
前記入出力バッファ中に配置するのかを示す入力配置情
報を利用者の指示に従って設定すると共に、前記プログ
ラムによって出力要求されたレコードが前記入出力バッ
ファに配置されていない場合に、前記出力要求されたレ
コードを含めてどのようなレコードを前記入出力バッフ
ァ中に配置するのかを示す出力配置情報を利用者の指示
に従って設定する入出力バッファデータ配置解析手段
と、前記プログラムによって入出力要求されたレコード
のレコード番号と、それが入力要求されたものなのか、
出力要求されたものなのかを示す入出力種別情報とを前
記レコード番号出力ファイルに出力すると共に、前記プ
ログラムによって入力要求されたレコードが前記入出力
バッファに配置されていなかった場合、前記入出力バッ
ファデータ配置解析手段により設定されている入力配置
情報に従って前記入出力バッファに前記入力要求された
レコードを含む複数のレコードを配置し、前記プログラ
ムによって出力要求されたレコードが前記入出力バッフ
ァに配置されていなかった場合、前記入出力バッファデ
ータ配置解析手段により設定されている出力配置情報に
従って前記入出力バッファに前記出力要求されたレコー
ドを含む複数のレコードを配置する入出力処理手段とを
備えている。
【0018】この構成に於いては、直接探査入出力処理
を行うプログラムの実行時に、プログラムがレコードの
入出力を要求すると、入出力処理手段が、入出力要求さ
れたレコードのレコード番号と、それが入力要求された
ものなのか、出力要求されたものなのかを示す入出力種
別情報とをレコード番号出力ファイルに出力する。
【0019】プログラムの実行終了後、利用者は、レコ
ード番号出力ファイルに格納されているレコード番号,
入出力種別情報に基づいて、上記プログラムの入力要求
時,出力要求時のレコードアクセス順にそれぞれどのよ
うな傾向があるかを調べ、その傾向に合った入力配置情
報,出力配置情報を求めておく。
【0020】そして、上記したプログラムの再実行時に
は、利用者は、入出力バッファデータ配置解析手段を用
いて上記プログラムの入力処理時,出力処理時のレコー
ドアクセス順に合った入力配置情報,出力配置情報を設
定しておく。入出力処理手段は、上記プログラムによっ
て入力要求されたレコードが入出力バッファに配置され
ていない場合は、入出力バッファデータ配置解析手段に
よって設定されている入力配置情報に従って上記入力要
求されたレコードを含む複数個のレコードを入出力バッ
ファに配置し、出力要求されたレコードが入出力バッフ
ァに配置されていない場合は、入出力バッファデータ配
置解析手段によって設定されている出力配置情報に従っ
て上記出力要求されたレコードを含む複数のレコードを
入出力バッファに配置する。
【0021】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
【0022】図1は本発明の実施例のブロック図であ
り、オプション解析手段10と、FORTRANF言語
で記述されたプログラム20と、入出力処理手段30
と、主記憶装置40と、外部記憶装置50とから構成さ
れている。
【0023】オプション解析手段10は、レコード番号
出力要求解析手段11と、入出力バッファサイズ解析手
段12と、入出力バッファデータ配置解析手段13とか
ら構成されている。
【0024】プログラム20は、OPEN文21と、直
接探査入力文22と、直接探査出力文23とを含んでい
る。
【0025】主記憶装置40上には、第1〜第3の領域
41〜43と、ユーザデータ領域44と、入出力バッフ
ァ45とが設けられる。
【0026】外部記憶装置50上には、ユーザファイル
51と、レコード番号出力ファイル52とが格納されて
いる。
【0027】レコード番号出力要求解析手段11は、直
接探査入出力文によって入出力要求されるレコードのレ
コード番号をレコード番号出力ファイル52に出力する
か否かを示す、利用者によって指示されたレコード番号
出力可否情報を、主記憶装置40上の第1の領域41に
設定する機能を有する。
【0028】入出力バッファサイズ解析手段12は、利
用者によって指示された、確保すべき入出力バッファ4
5のサイズを、主記憶装置40上の第2の領域42に設
定する機能を有する。
【0029】入出力バッファデータ配置解析手段13
は、プログラム20によって入出力要求されたレコード
が入出力バッファ45に配置されていない場合に、入出
力要求されたレコードを含めてどのようなレコードを入
出力バッファ45中に配置するのかを示す配置情報を利
用者の指示に従って主記憶装置40上の第3の領域に設
定する機能を有する。
【0030】入出力処理手段30は、プログラム20中
のOPEN文21の実行時に入出力バッファ45を主記
憶装置40上に確保する機能や、直接探査出力文23,
直接探査入力文22の実行時に入出力要求されたレコー
ドのレコード番号と入出力種別情報とをレコード番号出
力ファイル52に出力する機能や、ユーザデータ領域4
4,入出力バッファ45及びユーザファイル51の間で
レコードのやりとりを行う機能を有する。
【0031】図2はオプション解析手段10の処理例を
示す流れ図、図3はOPEN文実行時の入出力処理手段
30の処理例を示す流れ図、図4は直接探査入力文実行
時の入出力処理手段30の処理例を示す流れ図、図5は
直接探査出力文実行時の入出力処理手段30の処理例を
示す流れ図、図6はレコード番号出力処理時の入出力処
理手段30の処理例を示す流れ図であり、以下各図を参
照して本実施例の動作を説明する。
【0032】利用者は、プログラム20の実行前に、キ
ーボード等の入力装置(図示せず)を用いて主記憶装置
40上或いは外部記憶装置50上の特定の領域(図示せ
ず)に、レコード番号出力可否情報,入出力バッファサ
イズ情報,配置情報を設定する。
【0033】その際、利用者は、プログラム20の最初
の実行時であれば、レコード番号出力可否情報としてレ
コード番号の出力を指示するものを設定し、入力バッフ
ァサイズ情報,配置情報として予め定められているバッ
ファサイズ,配置方式を示すものを設定する。ここで、
レコード番号出力可否情報として、レコード番号の出力
を指示するものを設定するのは、入出力バッファ45の
サイズ及び入出力バッファ45中に入出力要求されたレ
コードが配置されていなかった場合にどのようなレコー
ドを入出力バッファ45に配置するのかを決定するため
に必要となる情報を採取するためである。
【0034】これに対して、プログラム20の最初の実
行時ではなく、既にレコード番号出力ファイル52にプ
ログラム20についての情報を採取している場合は、レ
コード番号を出力しないことを指示するレコード番号出
力可否情報を、上記した特定の領域に設定する。また、
入出力バッファサイズ情報,配置情報としては、レコー
ド番号出力ファイル52中のレコード番号に基づいて決
定した最適なバッファサイズ,データ配置方式を示すも
のを設定する。
【0035】利用者は、上記した各情報を設定すると、
オプション解析手段10に起動指示を与える。これによ
り、オプション解析手段10内のレコード番号出力要求
解析手段11が動作し、図2の流れ図に示すように、上
記した特定の領域に設定されているレコード番号出力可
否情報を主記憶装置40上の第1の領域41に設定する
(ステップS1)。
【0036】次いで、入出力バッファサイズ解析手段1
2が動作し、上記した特定領域に設定されている、入出
力バッファ45のサイズを示す出力バッファサイズ情報
を主記憶装置40上の第2の領域42に設定する(ステ
ップS2)。
【0037】そして、最後に入出力バッファデータ配置
解析手段13が動作し、上記した特定領域に設定されて
いる、データ配置方式を示す配置情報を主記憶装置40
上の第3の領域43に設定する(ステップS3)。
【0038】その後、プログラム20が実行を開始し、
ユーザファイル51のオープンを要求するOPEN文2
1の実行を要求すると、図3の流れ図に示すように、入
出力処理手段30が、主記憶装置40上の第2の領域4
2に設定されている入出力バッファサイズ情報を読み込
み(ステップS11)、それによって示されるサイズ分
の入出力バッファ45を主記憶装置40上に確保する
(S12)。
【0039】その後、プログラム20によってユーザフ
ァイル51への直接探査入力文22の実行が要求される
と、図4の流れ図に示すように、入出力処理手段30
が、入力要求されたレコードが入出力バッファ45中に
配置されているか否かを調べる(ステップS21)。
【0040】そして、配置されている場合(ステップS
21がyes)は、入力要求されたレコードを入出力バ
ッファ45からユーザデータ領域44へ読み込んだ後
(ステップS24)、図6に示すレコード番号の出力処
理を行う(ステップS25)。一方、配置されていない
場合(ステップS21がno)は、主記憶装置40上の
第3の領域43に設定されている配置情報を読み込み
(ステップS22)、読み込んだ配置情報に従ってユー
ザファイル51から入出力バッファ45へ、入力要求さ
れたレコードを含む複数のレコードを読み込む(ステッ
プS23)。その後、入出力処理手段30は、入力要求
されたレコードを、入出力バッファ45からユーザデー
タ領域44へ読み込み(ステップS24)、更に、図6
に示すレコード番号の出力処理を行う(ステップS2
5)。
【0041】ステップS25のレコード番号の出力処理
に於いては、図6の流れ図に示すように、入出力処理手
段30は、主記憶装置40上の第1の領域41からレコ
ード番号出力可否情報を読み込み(ステップS41)、
それがレコード番号を出力することを示している場合
(ステップS42がyes)のみ、直接探査入力文22
或いは直接探査出力文23の実行によって入出力される
レコードのレコード番号をレコード番号出力ファイル5
2に出力する(ステップS43)。
【0042】その後、プログラム20によってユーザフ
ァイル51への直接探査出力文23の実行が要求される
と、入出力処理手段30は、図5の流れ図に示すよう
に、出力要求されたレコードが入出力バッファ45中に
配置されているか否かを調べる(ステップS31)。
【0043】そして、配置されている場合(S31がy
es)は、ユーザデータ領域44中に存在する出力要求
されたレコードを入出力バッファ45中に上書きした
後、(ステップS34)、図6に示すレコード番号出力
処理を行う(ステップS35)。一方、配置されていな
い場合(S31がno)は、入出力バッファ45に配置
されている複数のレコードをユーザファイル51に書き
戻し、入出力バッファ45を再利用可能な状態にする
(ステップS32)。その後、主記憶装置40の第3の
領域43に設定されている配置情報を読み込み(ステッ
プS33)、読み込んだ配置情報に従ってユーザデータ
領域44から入出力バッファ45へのレコードの書き込
みを行い(ステップS34)、更に、図6に示すレコー
ド番号出力処理を行う(ステップS35)。
【0044】図7は、レコード番号出力可否情報がレコ
ード番号の出力を指示している場合に於いて、プログラ
ム20の実行が終了した時のレコード番号出力ファイル
52の内容例を示した図であり、同図に示すように、入
出力要求されたレコードのレコード番号と、それが入力
要求されたものなのか、出力要求されたものなのかを示
す入出力種別情報(READ,WRITE)とが格納さ
れる。
【0045】次に具体例を挙げて本実施例を更に詳細に
説明する。
【0046】一般に、直接探査入出力処理を行うプログ
ラム20に於いては、レコードアクセス順に規則性はな
いが、プログラムによっては、レコードアクセス順が昇
順になる傾向を持つものや、降順になる傾向を持つもの
等が存在する。
【0047】今、例えば、プログラム20の最初の実行
終了時に於いて、レコード番号出力ファイル52の内容
が図8に示すものになったとする。尚、図8に於いて
は、入出力種別情報は省略している。この図8の例の場
合は、レコードアクセス順が昇順になる傾向が高いと判
断することができる。このように、プログラム20のレ
コードアクセス順が昇順になる傾向が高いと判断した場
合は、利用者は、配置情報として、入出力要求されたが
入出力バッファ45に配置されていなかったレコード
と、その直後に連続して存在するn個のレコードとの計
n+1個のレコードを入出力バッファ45に配置するこ
とを指示する配置情報を作成しておく。ここで、〔レコ
ード長×(n+1)〕が入出力バッファ45のサイズと
なる。
【0048】更に、利用者は、図8に示すレコード番号
出力ファイル52の内容に基づいて、最適な入出力バッ
ファ45のサイズを求め、そのサイズを示す入出力バッ
ファサイズ情報を作成しておく。即ち、レコード番号が
連続する部分に注目し、何個のレコードが連続する部分
が最も多いかを調べる。そして、その部分のレコード数
×レコード長を入出力バッファ45のサイズとする。こ
のようにすることにより、データの読み込み時により少
ない回数で入出力バッファ45中にアクセスされるデー
タが配置されるようにすることができる。図8の例の場
合は、6個のレコードが連続する部分が多いので、入出
力バッファ45のサイズを(レコード長×6)とするこ
とを指示する入出力バッファサイズ情報を作成してお
く。
【0049】第2回目以降のプログラムの実行時には、
利用者は、オプション解析手段10を使用して、第1の
領域41にレコード番号を出力しないことを指示するレ
コード番号出力可否情報を、第2の領域42に入出力バ
ッファ45のサイズを(レコード長×6)にすることを
指示する入出力バッファサイズ情報を、第3の領域43
に入出力要求されたが入出力バッファ45に配置されて
いなかったレコードと、その後ろに連続して続く5個の
レコードとの計6個のレコードを入出力バッファ45に
配置することを指示する配置情報を設定する(図2,ス
テップS1〜S3)。
【0050】このような設定が行われると、入出力処理
手段30は、プログラム20中のOPEN文21が実行
された時、図3に示すように、第2の領域42から入出
力バッファ45のサイズを(レコード長×6)とするこ
とを指示する入出力バッファサイズ情報を読み込み、主
記憶装置40上にサイズが(レコード長×6)の入出力
バッファ45を確保する(ステップS11,S12)。
【0051】また、直接探査入力文22が実行された場
合に於いて、それによって入力要求されたレコード(レ
コード番号1のレコードとする)が入出力バッファ45
中に配置されていないと(図4,ステップS21がn
o)、第3の領域43に格納されている配置情報を読み
込み、図9に示すように、ユーザファイル51から入出
力バッファ45へ、レコード番号1(=m)のレコード
を起点にして、それに連続して続く5個のレコードを一
度に読み込む(ステップS22,S23)。次に、レコ
ード番号2,3,5,6のレコードの入力処理を行う場
合には、それらが既に入出力バッファ45中に存在する
ことから、ユーザファイル51から入出力バッファ45
へのレコードの読み込み処理は行われない。
【0052】その後、レコード番号7のレコードに対す
る入力処理を行う場合には、入出力バッファ45中にそ
れが存在しないので、レコード番号7のレコードを起点
にして、それに連続して続く5個のレコードが入出力バ
ッファ45に配置される(ステップS22,S23)。
次に、レコード番号15のレコードに対する入力処理を
行う場合には入出力バッファ45中にそれが存在しない
ので、レコード番号15のレコードを起点にしてそれに
連続して続く5個のレコードが入出力バッファ45に読
み込まれる(ステップS22,S23)。その後、レコ
ード番号16,17,18,19,20のレコードの入
力処理を行う場合には、それらが既に入出力バッファ4
5中に存在することから、ユーザファイル51から入出
力バッファ45へのレコードの読み込み処理は行われな
い。
【0053】また、直接探査出力文23が実行された場
合に於いて、それによって出力要求されたレコード(例
えば、レコード番号1のレコードとする)が入出力バッ
ファ45中に配置されていないと(図5,ステップS3
1がno)、第3の領域43に格納されている配置情報
を読み込み、図10に示すように、ユーザデータ領域4
4から入出力バッファ45へ、レコード番号1(=m)
のレコードを起点にして、それに連続して続く5個のレ
コードを一度に書き込む(ステップS33,S34)。
次に、レコード番号2,3,5,6のレコードの出力処
理を行う場合には、それらが既に入出力バッファ45中
に存在することから、ユーザデータ領域44から入出力
バッファ45へのレコードの読み込み処理は行われな
い。
【0054】その後、レコード番号7のレコードに対す
る出力処理を行う場合には、入出力バッファ45中にそ
れが存在しないので、レコード番号7のレコードを起点
にして、それに連続して続く5個のレコードが入出力バ
ッファ45に書き込まれる(ステップS33,S3
4)。次に、レコード番号15のレコードに対する出力
処理を行う場合には入出力バッファ45中にそれが存在
しないので、レコード番号15のレコードを起点にして
それに連続して続く5個のレコードが入出力バッファ4
5に配置される(ステップS33,S34)。その後、
レコード番号16,17,18,19,20のレコード
の出力処理を行う場合には、それらが既に入出力バッフ
ァ45中に存在することから、ユーザデータ領域44か
ら入出力バッファ45へのレコードの読み込み処理は行
われない。
【0055】上述したように、配置情報として、入出力
要求されたレコードと、その直後に続くn個のレコード
とを入出力バッファ45に配置することを指示する配置
情報を設定しておくことにより、プログラム20のレコ
ードアクセス順の傾向が昇順である場合、入出力要求さ
れたレコードが入出力バッファ45中に存在する確率が
高くなり、それに伴い、ユーザデータ領域44,ユーザ
ファイル51から入出力バッファ45へのデータ転送回
数が減少し、入出力バッファ45の利用効率が向上する
ことから、入出力処理が高速化される。
【0056】また、例えば、プログラム20の最初の実
行終了時に於いて、レコード番号出力ファイル52の内
容が図11に示すものになったとすると、利用者は、次
のような配置情報および入出力バッファサイズ情報を作
成する。この図11に示した例の場合は、プログラム2
0によるレコードアクセス順は、降順になる傾向が高い
と判断することができる。このように、レコードアクセ
ス順が降順になる傾向が高いと判断した場合は、利用者
は、配置情報として、入出力要求されたが入出力バッフ
ァ45に配置されていなかったレコードと、その直前に
連続して存在するn個のレコードとの計n+1個のレコ
ードを入出力バッファ45に配置することを指示する配
置情報を作成しておく。ここでも、〔レコード長×(n
+1)〕が入出力バッファ45のサイズとなる。
【0057】更に、利用者は、図11に示すレコード番
号出力ファイル52の内容に基づいて、最適な入出力バ
ッファ45のサイズを求め、そのサイズを示す入出力バ
ッファサイズ情報を作成しておく。この例の場合、レコ
ード番号が連続した6個のレコードがアクセスされる部
分が多いので、利用者は、入出力バッファ45のサイズ
を(レコード長×6)とすることを指示する入出力バッ
ファサイズ情報を作成しておく。
【0058】第2回目以降のプログラムの実行時には、
利用者は、オプション解析手段10を使用して、第1の
領域41にレコード番号を出力しないことを指示するレ
コード番号出力可否情報を、第2の領域42に入出力バ
ッファ45のサイズを(レコード長×6)にすることを
指示する入出力バッファサイズ情報を、第3の領域43
に入出力要求されたが入出力バッファ45に配置されて
いなかったレコードと、その直前に連続して存在する5
個のレコードとの計6個のレコードを入出力バッファ4
5に配置することを指示する配置情報を設定する(図
2,ステップS1〜S3)。
【0059】このような設定が行われると、入出力処理
手段30は、プログラム20中のOPEN文21が実行
された時、図3に示すように、第2の領域42から入出
力バッファ45のサイズを(レコード長×6)とするこ
とを指示する入出力バッファサイズ情報を読み込み、主
記憶装置40上にサイズが(レコード長×6)の入出力
バッファ45を確保する(ステップS11,S12)。
【0060】また、直接探査入力文22が実行された場
合に於いて、それによって入力要求されたレコード(例
えば、レコード番号20のレコードとする)が入出力バ
ッファ45中に配置されていないと(図4,ステップS
21がno)、第3の領域43に格納されている配置情
報を読み込み、図12に示すように、ユーザファイル5
1から入出力バッファ45へ、レコード番号20(=
m)のレコードと、その直前に連続して存在する5個の
レコードとを一度に読み込む(ステップS22,S2
3)。次に、レコード番号19,18,17,16,1
5のレコードの入力処理を行う場合には、それらが既に
入出力バッファ45中に存在することから、ユーザファ
イル51から入出力バッファ45へのレコードの読み込
み処理は行われない。
【0061】その後、レコード番号6のレコードに対す
る入力処理を行う場合には、入出力バッファ45中にレ
コード番号6のレコードが存在しないので、レコード番
号6と、その直前に連続して存在する5個のレコードが
入出力バッファ45に配置される(ステップS22,S
23)。次に、レコード番号5,4,3,2,1のレコ
ードの入力処理を行う場合には、それらが既に入出力バ
ッファ45中に存在することから、ユーザファイル51
から入出力バッファ45へのレコードの読み込み処理は
行われない。
【0062】また、直接探査出力文23が実行された場
合に於いて、それによって出力要求されたレコード(レ
コード番号20のレコードとする)が入出力バッファ4
5中に配置されていないと(図5,ステップS31がn
o)、第3の領域43に格納されている配置情報を読み
込み、図13に示すように、ユーザデータ領域44から
入出力バッファ45へ、レコード番号20(=m)のレ
コードと、その直前に連続して存在する5個のレコード
を一度に配置する(ステップS33,S34)。次に、
レコード番号19,18,17,16,15のレコード
の出力処理を行う場合には、それらが既に入出力バッフ
ァ45中に存在することから、ユーザデータ領域44か
ら入出力バッファ45へのレコードの読み込み処理は行
われない。
【0063】上述したように、配置情報として、入出力
要求されたレコードと、その直前に存在するn個のレコ
ードとを入出力バッファ45に配置することを指示する
配置情報を設定しておくことにより、プログラム20の
レコードアクセス順の傾向が降順である場合、入出力要
求されたレコードが入出力バッファ45中に存在する確
率が高くなり、それに伴い、ユーザデータ領域44,ユ
ーザファイル51から入出力バッファ45へのデータ転
送回数が減少し、入出力バッファ45の利用効率が向上
することから、入出力処理が高速化される。
【0064】また、例えば、プログラム20の最初の実
行終了時に於いて、レコード番号出力ファイル52の内
容が図14に示すものになったとすると、利用者は、次
のような配置情報および入出力バッファサイズ情報を作
成する。この図14に示した例の場合は、プログラム2
0は、或るレコード番号のレコードを中心にして、その
前後に存在するレコードをアクセスする傾向が高いと判
断することができる。そして、レコードアクセス順にこ
のような傾向がある場合、利用者は、配置情報として、
入出力要求されたが入出力バッファ45に配置されてい
なかったレコードと、その直前に連続して存在するi個
のレコードと、その直後に連続して存在するj個のレコ
ードとを入出力バッファ45に配置することを指示する
配置情報を作成しておく。ここでは、(i+j+1)×
レコード長が入出力バッファ45のサイズとなる。
【0065】更に、利用者は、図14に示すレコード番
号出力ファイル52の内容に基づいて、最適な入出力バ
ッファ45のサイズを求め、そのサイズを示す入出力バ
ッファサイズ情報を作成しておく。この例の場合、入出
力バッファ45のサイズを(レコード長×11)とする
ことを指示する入出力バッファサイズ情報を作成してお
く。
【0066】第2回目以降のプログラムの実行時には、
利用者は、オプション解析手段10を使用して、第1の
領域41にレコード番号を出力しないことを指示するレ
コード番号出力可否情報を、第2の領域42に入出力バ
ッファ45のサイズを、例えば(レコード長×11)に
することを指示する入出力バッファサイズ情報を、第3
の領域42に入出力要求されたが入出力バッファ45に
配置されていなかったレコードと、その直前に連続して
存在する5個のレコードと、その直後に連続して存在す
る5個のレコードとの計11個のレコードを入出力バッ
ファ45に配置することを指示する配置情報を設定する
(図2,ステップS1〜S3)。
【0067】このような設定が行われると、入出力処理
手段30は、プログラム20中のOPEN文21が実行
された時、図3に示すように、第2の領域42から入出
力バッファ45のサイズを(レコード長×11)とする
ことを指示する入出力バッファサイズ情報を読み込み、
主記憶装置40上にサイズが(レコード長×11)の入
出力バッファ45を確保する(ステップS11,S1
2)。
【0068】また、直接探査入力文22が実行された場
合に於いて、それによって入力要求されたレコード(レ
コード番号20のレコードとする)が入出力バッファ4
5中に配置されていないと(図4,ステップS21がn
o)、第3の領域43に格納されている配置情報を読み
込み、図15に示すように、ユーザファイル51から入
出力バッファ45へ、レコード番号15〜25のレコー
ドを一度に配置する(ステップS22,S23)。次
に、レコード番号18,19,17,15,16のレコ
ードの入力処理を行う場合には、それらが既に入出力バ
ッファ45中に存在することから、ユーザファイル51
から入出力バッファ45へのレコードの読み込み処理は
行われない。
【0069】また、直接探査出力文23が実行された場
合に於いて、それによって出力要求されたレコード(レ
コード番号20のレコードとする)が入出力バッファ4
5中に配置されていないと(図5,ステップS31がn
o)、第3の領域43に格納されている配置情報を読み
込み、図16に示すように、ユーザデータ領域44から
入出力バッファ45へ、レコード番号20(=m)のレ
コードと、その直前に連続して存在する5個のレコード
と、その直後に連続して存在する5個のレコードとを一
度に配置する(ステップS33,S34)。18,1
9,17,15,16のレコードの入力処理を行う場合
には、それらが既に入出力バッファ45中に存在するこ
とから、ユーザファイル51から入出力バッファ45へ
のレコードの読み込み処理は行われない。
【0070】このように、入出力要求されたレコード
と、その直前に存在するi個のレコードと、その直後に
存在するj個のレコードとを入出力バッファ45に配置
することを指示する配置情報を設定しておくことによ
り、プログラム20のレコードアクセス順に、或るレコ
ードを中心にしてそのレコードの前後のレコードをアク
セスするという傾向がある場合、入出力処理を高速化す
ることができる。
【0071】尚、上述した実施例に於いては、第3の領
域43に設定する配置情報を1つとしたが、入出力バッ
ファデータ配置解析手段13に、入力処理時用の配置情
報(入力配置情報)と出力処理時用の配置情報(出力配
置情報)との2つを第3の領域43に設定する機能を持
たせるようにし、更に、入出力処理手段30に、直接探
査入力文実行時にそれによって入力要求されたレコード
が入出力バッファ45中に存在しない場合は、入力配置
情報に従って入出力バッファ45へのレコード配置を行
い、直接探査出力文実行時にそれによって入力要求され
たレコードが入出力バッファ45中に存在しない場合
は、出力配置情報に従って入出力バッファ45へのレコ
ード配置を行う機能を持たせるようにすることもでき
る。このようにすることにより、入力処理時と出力処理
時とで、レコードアクセス順の傾向が異なるプログラム
であっても、入出力処理を高速化することが可能にな
る。
【0072】
【発明の効果】以上説明したように、本発明は、直接探
査入出力処理を行うプログラムの実行時に入出力要求さ
れたレコードのレコード番号をレコード番号出力ファイ
ルに出力すると共に、入出力要求されたレコードが入出
力バッファに存在しない場合、利用者が入出力バッファ
データ配置解析手段を用いて設定した配置情報に従って
レコードを入出力バッファに配置する入出力処理手段を
備えているので、ファイルサイズ以上の主記憶装置上の
領域を確保できない場合に於いても、入出力バッファを
効率的に使用して入出力処理の高速化を図ることができ
る。つまり、利用者が、レコード番号出力ファイルに格
納されているレコード番号に基づいて、プログラムのレ
コードアクセス順にどのような傾向があるのかを知り、
その傾向に合った配置情報を設定することができるの
で、入出力バッファを使用して入出力処理を高速に行う
ことが可能になる。
【0073】また、本発明は、レコード番号を出力する
か否かを示すレコード番号出力可否情報を利用者の指示
に従って設定するレコード番号出力要求解析手段を備え
ており、既にレコード番号をレコード番号出力ファイル
に出力してあるプログラムについては、レコード番号の
出力処理が行われないようにすることができるので、無
駄なレコード出力処理が行われない。
【0074】また、本発明は、最適な入出力バッファサ
イズを利用者の指示に従って設定する入出力バッファサ
イズ解析手段を備えているので、入出力処理を更に高速
化することができる。
【0075】更に、本発明は、入力処理時,出力処理時
それぞれのレコードアクセス順にあった入力配置情報,
出力配置情報を設定する入出力バッファデータ配置解析
手段を備えているので、入力要求と出力要求とでレコー
ドアクセス順の傾向が異なる場合でも、入出力処理を高
速に行うことができる。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】オプション解析手段10の処理例を示す流れ図
である。
【図3】OPEN文実行時の入出力処理手段30の処理
例を示す流れ図である。
【図4】直接探査入力文実行時の入出力処理手段30の
処理例を示す流れ図である。
【図5】直接探査出力文実行時の入出力処理手段30の
処理例を示す流れ図である。
【図6】レコード番号出力処理時の入出力処理手段30
の処理例を示す流れ図である。
【図7】レコード番号出力ファイル52の内容例を示す
図である。
【図8】レコードのレコードアクセス順が昇順になる傾
向を有するプログラム20を実行した時のレコード番号
出力ファイル52の内容例を示した図である。
【図9】ユーザファイル51から入出力バッファ45へ
のレコード配置時の入出力処理手段30の動作を説明す
るための図である。
【図10】ユーザデータ領域44から入出力バッファ4
5へのレコード配置時の入出力処理手段30の動作を説
明するための図である。
【図11】レコードのレコードアクセス順が昇順になる
傾向を有するプログラム20を実行した時のレコード番
号出力ファイル52の内容例を示す図である。
【図12】ユーザファイル51から入出力バッファ45
へのレコード配置時の入出力処理手段30の動作を説明
するための図である。
【図13】ユーザデータ領域44から入出力バッファ4
5へのレコード配置時の入出力処理手段30の動作を説
明するための図である。
【図14】或るレコード番号のレコードを中心にしてそ
の直前,直後に存在するレコードをアクセスする傾向が
高いプログラム20を実行した時のレコード番号出力フ
ァイル52の内容例を示す図である。
【図15】ユーザファイル51から入出力バッファ45
へのレコード配置時の入出力処理手段30の動作を説明
するための図である。
【図16】ユーザデータ領域44から入出力バッファ4
5へのレコード配置時の入出力処理手段30の動作を説
明するための図である。
【符号の説明】
10…オプション解析手段 11…レコード番号出力要求解析手段 12…入出力バッファサイズ解析手段 13…入出力バッファデータ配置解析手段 20…プログラム 21…OPEN文 22…直接探査入力文 23…直接探査出力文 30…入出力処理手段 40…主記憶装置 41…第1の領域 42…第2の領域 43…第3の領域 44…ユーザデータ領域 45…入出力バッファ 50…外部記憶装置 51…ユーザファイル 52…レコード番号出力ファイル

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 入出力バッファを介してユーザファイル
    に対する入出力処理を行うファイル入出力装置に於い
    て、 レコード番号出力ファイルと、 前記ユーザファイルに対して直接探査入出力処理を行う
    プログラムによって入出力要求されたレコードが前記入
    出力バッファに配置されていない場合に、前記入出力要
    求されたレコードを含めてどのようなレコードを前記入
    出力バッファ中に配置するのかを示す配置情報を利用者
    の指示に従って設定する入出力バッファデータ配置解析
    手段と、 前記プログラムによって入出力要求されたレコードのレ
    コード番号を前記レコード番号出力ファイルに出力する
    と共に、前記プログラムによって入出力要求されたレコ
    ードが前記入出力バッファに配置されていなかった場
    合、前記入出力バッファデータ配置解析手段により設定
    されている配置情報に従って前記入出力バッファに前記
    入出力要求されたレコードを含む複数のレコードを配置
    する入出力処理手段とを備えたことを特徴とするファイ
    ル入出力装置。
  2. 【請求項2】 前記レコード番号出力ファイルへレコー
    ド番号を出力するか否かを示すレコード番号出力可否情
    報を、利用者の指示に従って設定するレコード番号出力
    要求解析手段を備え、且つ、 前記入出力処理手段は、前記レコード番号出力要求解析
    手段によって設定されたレコード番号出力可否情報がレ
    コードを出力することを示している場合のみ、前記プロ
    グラムによって入出力要求されたレコードのレコード番
    号を前記レコード番号出力ファイルに出力する構成を備
    えたことを特徴とする請求項1記載のファイル入出力装
    置。
  3. 【請求項3】 入出力バッファのサイズを示す入出力バ
    ッファサイズ情報を利用者の指示に従って設定する入出
    力バッファサイズ解析手段を備え、且つ、 前記入出力処理手段は、前記入出力バッファサイズ解析
    手段によって設定された入出力バッファサイズ情報によ
    って示されるサイズの入出力バッファを主記憶装置上に
    確保する構成を備えたことを特徴とする請求項2記載の
    ファイル入出力装置。
  4. 【請求項4】 入出力バッファを介してユーザファイル
    に対する入出力処理を行うファイル入出力装置に於い
    て、 レコード番号出力ファイルと、 前記ユーザファイルに対して直接探査入出力処理を行う
    プログラムによって入力要求されたレコードが前記入出
    力バッファに配置されていない場合に、前記入力要求さ
    れたレコードを含めてどのようなレコードを前記入出力
    バッファ中に配置するのかを示す入力配置情報を利用者
    の指示に従って設定すると共に、前記プログラムによっ
    て出力要求されたレコードが前記入出力バッファに配置
    されていない場合に、前記出力要求されたレコードを含
    めてどのようなレコードを前記入出力バッファ中に配置
    するのかを示す出力配置情報を利用者の指示に従って設
    定する入出力バッファデータ配置解析手段と、 前記プログラムによって入出力要求されたレコードのレ
    コード番号と、それが入力要求されたものなのか、出力
    要求されたものなのかを示す入出力種別情報とを前記レ
    コード番号出力ファイルに出力すると共に、前記プログ
    ラムによって入力要求されたレコードが前記入出力バッ
    ファに配置されていなかった場合、前記入出力バッファ
    データ配置解析手段により設定されている入力配置情報
    に従って前記入出力バッファに前記入力要求されたレコ
    ードを含む複数のレコードを配置し、前記プログラムに
    よって出力要求されたレコードが前記入出力バッファに
    配置されていなかった場合、前記入出力バッファデータ
    配置解析手段により設定されている出力配置情報に従っ
    て前記入出力バッファに前記出力要求されたレコードを
    含む複数のレコードを配置する入出力処理手段とを備え
    たことを特徴とするファイル入出力装置。
JP8329134A 1996-11-25 1996-11-25 ファイル入出力装置 Pending JPH10154089A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8329134A JPH10154089A (ja) 1996-11-25 1996-11-25 ファイル入出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8329134A JPH10154089A (ja) 1996-11-25 1996-11-25 ファイル入出力装置

Publications (1)

Publication Number Publication Date
JPH10154089A true JPH10154089A (ja) 1998-06-09

Family

ID=18218015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8329134A Pending JPH10154089A (ja) 1996-11-25 1996-11-25 ファイル入出力装置

Country Status (1)

Country Link
JP (1) JPH10154089A (ja)

Similar Documents

Publication Publication Date Title
US5881283A (en) Job scheduling analysis method and system using historical job execution data
US6889243B1 (en) Job scheduling analysis method and system using historical job execution data
US5634120A (en) Computer system supporting utilization of utility functions applicable to concurrently executing jobs by monitoring job excution characteristics and determining eligible job combinations for utility function
US20030005022A1 (en) Methods and apparatus for implementing a progress reporting interface
US6279025B1 (en) Parallel processing procedure selecting apparatus and method selecting and implementing parallel-executable processing procedures
Gonzalez et al. Parallel task execution in a decentralized system
JPH02244274A (ja) テキストからのキーワード抽出方法および装置
JPH08241214A (ja) データ処理システム
EP0867811A1 (en) Accounting-information outputting device
JP2814683B2 (ja) 命令処理装置
JPH07105013A (ja) レジスタ割り付け方式
JP2932812B2 (ja) 言語処理プログラム実行装置
JPH11143743A (ja) メッセージ分類方法および装置
JP2000047916A (ja) データベース管理システム
JPH08235044A (ja) ジャーナル検索方式
JPH09120383A (ja) データ入出力方法及びそのためのデータ入出力装置
JPH0414161A (ja) トランザクション処理システム
JPS59189452A (ja) デ−タ処理装置用キユ−構造
JPH05165756A (ja) マクロ処理機能付チャネル制御装置
JPH06324882A (ja) コンパイラ装置
JPH06175937A (ja) キュー制御機構の試験方法
JPH03223980A (ja) 計算機方式
JPS5810248A (ja) 状態履歴記憶方式
JPS63173144A (ja) 実時間ガ−ベジコレクシヨン制御方式
JPS60134994A (ja) デ−タ出力方式