JPH0455953A - ブロック入出力制御方式 - Google Patents

ブロック入出力制御方式

Info

Publication number
JPH0455953A
JPH0455953A JP2166387A JP16638790A JPH0455953A JP H0455953 A JPH0455953 A JP H0455953A JP 2166387 A JP2166387 A JP 2166387A JP 16638790 A JP16638790 A JP 16638790A JP H0455953 A JPH0455953 A JP H0455953A
Authority
JP
Japan
Prior art keywords
buffer
input
data
output
file
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
JP2166387A
Other languages
English (en)
Inventor
Takao Kosakai
小堺 隆男
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 JP2166387A priority Critical patent/JPH0455953A/ja
Publication of JPH0455953A publication Critical patent/JPH0455953A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、利用者プログラムからの入出力要求に基づく
利用者プログラムとファイルとの間のデータの入出力を
バッファを介して行う(バッファとファイルとの間のデ
ータの入出力についてはブロック単位で行う)計算機シ
ステム(例えば、主にワークステーションのオペレーテ
ィングシステムとして汎く利用されているUNIXが適
用される計算機システム)におけるブロック入出力制御
方式に関する。
〔従来の技術〕
従来、この種のブロック入出力制御方式では、バッファ
の長さよりも短いデータの書き込み要求が利用者プログ
ラムから行われると、まずそのバッファ分のデータがフ
ァイルから読み取られ、そのデータの一部(書き込み要
求が行われたデータと同一の長さのデータ)と書き込み
要求が行われたデータとが置換されていた。
〔発明が解決しようとする課題〕
上述した従来のブロック入出力制御方式では、バッファ
の長さよりも短いデータの書き込み要求が利用者プログ
ラムから行われると、ファイル内のバッファ分のデータ
の一部と書き込み要求が行われたデータとが置換されて
いるので、書き込みがシーケンシャルに行われる場合に
、ファイルから読み取っても結局は無駄なデータ、すな
わち後続する書き込み要求で上書きされてしまい役に立
たないデータをファイルから読み取ることになり、結果
的に利用者プログラムがデータの書き込みに長時間を要
することになるという欠点がある。
利用者プログラムからの入出力要求に基づく利用者プロ
グラムとファイルとの間のデータの入出力をバッファを
介して行う計算機システムの代表例であるUNIXにお
いては、以前はバッファサイズが1024バイトであっ
たが、システム規模の拡大に伴いそのバッファサイズが
4096バイトや8192バイトというように1024
バイトの整数倍で拡張されてきている。このため、10
24バイトのデータの書き込みを行っているような利用
者プログラムでは、上述の欠点が顕著になり、修正を行
わないと十分なデータの入出力の処理速度が得られない
本発明の目的は、上述の点に鑑み、バッファサイズより
短いサイズでデータの書き込み要求を行う利用者プログ
ラムの実行性能の低下の抑制を、その利用者プログラム
の修正を行うことなく実現することができるブロック入
出力制御方式を提供することにある。
なお、本方式は利用顧度の高いソーケンシャル書き込み
においてその効果が現れるが、例えばUNIXにおいて
はランダム書き込みとンーケンシャル書き込みとは何ら
区別されることなく実行されるので、ランダム書き込み
にも対応できるように考慮されている。
〔課題を解決するための手段〕
本発明のブロック入出力制御方式は、利用者プログラム
からの入出力要求に基づく利用者プログラムとファイル
との間のデータの入出力をバッファ管理情報により管理
されるバッファを介して行う計算機システムにおいて、
複数個の同一のサイズのエリアに分割された前記バッフ
ァと、このバッファ内の各エリアのデータの有効性を示
す情報を管理するエリア管理情報と、前記バッファ管理
情報および前記エリア管理情報を参照して利用者プログ
ラムとファイルとの間のデータの入出力の制御を行う入
出力制御手段とを有する。
〔作用〕
本発明のブロック入出力制御方式では、バッファが複数
個の同一のサイズのエリアに分割され、エリア管理情報
がバッファ内の各エリアのデータの有効性を示す情報を
管理し、入出力制御手段がバッファ管理情報およびエリ
ア管理情報を参照して利用者プログラムとファイルとの
間のデータの入出力の制御を行う。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明のブロック入出力制御方式の一実施例
の構成を示すブロック図である。本実施例のブロック入
出力制御方式は、利用者プログラム1と、入出力制御手
段2と、ファイル3とを含んで構成されている。
入出力制御手段2は、複数個の同一のサイズのエリアに
分割されたバッファ4と、バッファ4毎に存在しそのバ
ッファ4とファイル3内のブロックとの対応を示す情報
および更新フラグ(そのバッファ4が更新されたがその
バッファ4に対応するブロックが更新されていない等の
ために両者が一致しなくなる可能性が生じたときにセン
トされるフラグ)を管理するバッファ管理情報5と、バ
ッファ4毎に存在しそのバッファ4内の各エリアのデー
タの有効性を示す情報(各エリアのデータがファイル3
の中にあるべきデータと一致している(有効)か否(無
効)かを示す情報)を管理するエリア管理情報6とを含
んで構成されている。
なお、本実施例ではバッファ4.バツフア管理情報5お
よびエリア管理情報6は入出力制御手段2内に存在する
が、これらが入出力制御手段2外に存在する計算機シス
テムにも本発明を適用することができる。
第2図は、入出力制御手段2の処理を示す流れ図である
。この処理は、ブロック位置算出ステンプ201と、全
ブロック処理終了判定ステップ202と、バンファ割り
当て済み判定ステップ203と、空きバッファ有無判定
ステップ204と、バッファ確保処理ステップ205と
、バンファ割り当てステップ206と、読み取り/書き
込み判定ステップ207と、入力データ対応エリア判定
ステップ208と、ブロックデータ読み取りステップ2
09と、データ移送ステップ210と、出力データ対応
エリア判定ステップ211と、エリア有効判定ステップ
212と、ブロックデータ読み取りステップ213と、
データ移送ステップ214とからなる。
第3図は、第2図中のバッファ確保処理ステ。
ブ205の詳細な処理を示す流れ図である。この処理(
バッファ確保処理)は、ハ、フプ選出ステップ301と
、更新フラグセント判定ステップ302と、エリア有効
判定ステップ303と、ブロックデータ読み取りステッ
プ304と、バッファデータブロック書き込みステップ
305と、バッファ解放ステップ306とからなる。
次に、このように構成された本実施例のプロンク入出力
制御方式の動作について説明する。
利用者プログラム1は、データの入出力要求(読み取り
要求または書き込み要求)時にパラメータとしてファイ
ル内バイト位置、データサイズおよびデータエリアアド
レスを付加して入出力制御手段2を呼ぶ。
入出力制御手段2は、受は取ったファイル内バイト位置
に基づいてその入出力要求がファイル3内のどのブロッ
クに対する入出力要求であるかを算出し、複数存在する
バッファ4の中からいずれかを割り当て、データの入出
力を行う、なお、利用者プログラム1からのデータの入
出力要求が複数のブロックにまたがる場合には、個々の
ブロックに分割してデータの入出力を行う。
次に、第2図を参照して、入出力制御手段2における動
作を詳細に説明する。入出力制御手段2は、以下に示す
ような処理を行う。
利用者プログラム1から渡されたファイル内バイト位置
に基づいて入出力対象のデータに対応するファイル3内
のブロック位置を算出しくステップ201)、利用者プ
ログラム1からの入出力要求に係る全てのブロックにつ
いて以下の処理(ステップ203〜214の処理)を終
了したか否かを判定する(ステップ202)。
ステップ202で当該入出力要求に係る全てのブロック
については以下の処理を終了していないと判定した場合
には、バッファ4が割り当て済みか否かを判定する(ス
テップ203)。
ステップ203でバッファ4が割り当て済みでないと判
定した場合には、空きバッファ(使用されていないバッ
ファ4)の有無を判定する(ステップ204)。
ステップ204で空きバッファがないと判定した場合に
は、バッファ4を確保するために後述するようなバッフ
ァ確保処理(第3図参照)を行う(ステップ205)。
ステップ204で空きバッファがあると判定した場合ま
たはステップ205のバッファ確保処理でバッファ4の
確保が終了した場合には、そのバッファ4 (空きバッ
ファ中のいずれかのバッファ4またはバッファ確保処理
で確保されたバッファ4)を当該入出力要求のために割
り当て、そのバッファ4に対応するエリア管理情報6中
の全てのエリアに関する情報を無効と表示する(ステッ
プ206)。
ステップ203でバッファ4が割り当て済みであると判
定した場合またはステップ206の処理が終了した場合
には、利用者プログラム1からの当該入出力要求が読み
取り要求であるか書き込み要求であるかを判定する(ス
テップ207)。
ステップ207で当該入出力要求が読み取り要求である
と判定した場合には、当該入出力要求に付加されたパラ
メータ中のデータサイズおよびファイル内バイト位置に
よって示される入力データ(読み取り要求の対象のデー
タ)のサイズおよび位置に対応するバッファ4内のエリ
アが全て有効であるか否かを判定する(ステップ208
)。
ステップ208で当該エリアが全て有効であるとはいえ
ない(一部のエリアが有効である場合を含む)と判定し
た場合には、ファイル3から対応するブロックのデータ
を読み取り、無効のエリアを全てファイル3上のデータ
で置き換え、そのバッファ4に対応するエリア管理情報
6中の全てのエリアに関する情報を有効と表示する(ス
テップ209)。
ステップ208で当該エリアが全て有効であると判定し
た場合またはステップ209の処理が終了した場合には
、利用者プログラムlのデータエリア(当該入出力要求
に付加されたパラメータ中のデータエリアアドレスによ
って示されるデータエリア)にそのバッファ4の対応す
る位置からデータを移送する(ステップ210)。
ステップ207で当該入出力要求が書き込み要求である
と判定した場合には、当該入出力要求に付加されたパラ
メータ中のデータサイズおよびファイル内バイト位置に
よって示される出力データ(書き込み要求の対象のデー
タ)のサイズおよび位置に対応するバッファ4内の部分
が1以上のエリアと完全に重なっているか否かを判定す
る(ステップ211)。
ステップ211でそのバッファ4内の当該部分が1以上
のエリアと完全には重なっていないと判定した場合には
、重なっていないエリアが全て有効であるか否かを判定
する(ステップ212)。
ステップ212で重なっていないエリアが全て有効であ
るとはいえないと判定した場合には、ファイル3からそ
のバッファ4に対応するブロックのデータを読み取り、
無効のエリアのデータを全てファイル3上の対応するデ
ータで1き換え、そのバッファ4に対応するエリア管理
情報6中の全てのエリアに関する情報を有効と表示する
(ステップ213)。
ステップ211でそのバッファ4内の当該部分が1以上
のエリアと完全に重なっていると判定した場合、ステッ
プ212で重なっていないエリアが全て有効であると判
定した場合またはステップ213の処理が終了した場合
には、利用者プログラム1のデータエリア(当該入出力
要求に付加されたパラメータ中のデータエリアアドレス
によって示されるデータエリア)からそのバッファ4の
対応する位置にデータを移送し、そのバッファ4に対応
するエリア管理情報6中の移送対象となったエリアに関
する情報を全て有効と表示し、そのバッファ4に対応す
るバッファ管理情報5中の更新フラグをセットする(ス
テップ214) 。
ステップ210または214の処理が終了した場合には
、ステップ202の判定に制御を戻す。
ステップ202で全てのブロックの処理が終了している
と判定した場合には、処理を終了する(当該入出力要求
が複数のブロックにまたがる場合で未処理のブロックが
残っている場合には、ステップ203〜214の処理を
繰り返す)。
次に、第3図を参照して、第2図中のステップ205の
バッファ確保処理の動作について詳細に説明する。この
バッファ確保処理にあたって、入出力制御手段2は以下
に示すような処理を行う。
まず、すでに割り当てられているバッファ4の中から適
当なものを選出する(この選出の手法についてはここで
は問題としないが、例えば最も古くアクセスされたバッ
ファ4を選出するという手法がある) (ステップ30
1)。
ステップ301で選出されたバッファ4に対応するバッ
ファ管理情報5中の更新フラグがセントされているか否
かを判定する(ステップ302)。
ステップ302で更新フラグがセットされていると判定
した場合には、当該バッファ4に対応するエリア管理情
報6を参照して当該バッファ4の全てのエリアが有効で
あるか否かを判定する(ステップ303)。
ステップ303で全てのエリアが有効であるとはいえな
い(無効なエリアがある)と判定した場合には、ファイ
ル3から対応するブロックのデータを読み取り、バッフ
ァ4内の無効エリアを全てファイル3上のデータで置き
換える(ステップ304)。
ステップ303で全てのエリアが有効であると判定した
場合またはステップ304の処理が終了した場合には、
当該バッファ4のデータをファイル3の対応するブロッ
クに書き込む(ステップ305)。
ステップ302で更新フラグがセットされていないと判
定した場合またはステップ305の処理が終了した場合
には、当該バッファ4に対応するバッファ管理情報5を
初期化して当該バッファ4を解放しくステップ306)
、当該バッファ4を確保してバッファ確保処理を終了す
る。
〔発明の効果〕
以上説明したように本発明は、エリアの概念を導入して
エリア管理情報を設けること等により、利用者プログラ
ムからの入出力要求に基づくデータの入出力をバッファ
を介して行う計算機システム(UNIXが適用される計
算機システム等)におけるデータの書き込み処理におい
て、バッファサイズより短いサイズでデータの入出力が
行われる場合に、その入出力要求を行う利用者プログラ
ムの処理速度の低下の抑制をその利用者プログラムに何
ら修正を加えることなく実現することができるという効
果がある。
この利用者プログラムの修正が不要であるという効果は
、利用者プログラムのシステム移行性を重要視するUN
IXが適用される計算機システム等では特に有益なもの
となる。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、 第2図は第1図中の入出力制御手段の処理を示す流れ図
、 第3図は第2図中のバッファ確保処理ステ・ノブの詳細
な処理を示す流れ図である。 図において、 1・・・利用者プログラム、 2・・・入出力制御手段、 3・・・ファイル、 4・・・バッファ、 5・・・バッファ管理情報、 6・・・エリア管理情報である。

Claims (1)

  1. 【特許請求の範囲】 利用者プログラムからの入出力要求に基づく利用者プロ
    グラムとファイルとの間のデータの入出力をバッファ管
    理情報により管理されるバッファを介して行う計算機シ
    ステムにおいて、 複数個の同一のサイズのエリアに分割された前記バッフ
    ァと、 このバッファ内の各エリアのデータの有効性を示す情報
    を管理するエリア管理情報と、 前記バッファ管理情報および前記エリア管理情報を参照
    して利用者プログラムとファイルとの間のデータの入出
    力の制御を行う入出力制御手段とを有することを特徴と
    するブロック入出力制御方式。
JP2166387A 1990-06-25 1990-06-25 ブロック入出力制御方式 Pending JPH0455953A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2166387A JPH0455953A (ja) 1990-06-25 1990-06-25 ブロック入出力制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2166387A JPH0455953A (ja) 1990-06-25 1990-06-25 ブロック入出力制御方式

Publications (1)

Publication Number Publication Date
JPH0455953A true JPH0455953A (ja) 1992-02-24

Family

ID=15830478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2166387A Pending JPH0455953A (ja) 1990-06-25 1990-06-25 ブロック入出力制御方式

Country Status (1)

Country Link
JP (1) JPH0455953A (ja)

Similar Documents

Publication Publication Date Title
JPH04229355A (ja) データアクセス方法及びデータ処理システム
JP3609841B2 (ja) ファイル管理装置
JPH04284548A (ja) データベース排他制御方式
JPH0798663A (ja) 非同期i/o制御方式
JPH0455953A (ja) ブロック入出力制御方式
JPS6342293B2 (ja)
JP2641399B2 (ja) フアイル管理装置
JP2708012B2 (ja) 更新バッファ管理装置
JPH0337748A (ja) 主記憶を利用した外部記憶アクセス方式
JP2735400B2 (ja) 非同期入出力制御方式
JPH0398110A (ja) 多重データ読み込み方式
JP2743849B2 (ja) 更新バッファ管理装置
JPH05334249A (ja) 対話処理システムにおけるカタログのネスティング管理方式
JPS62145441A (ja) キ−順デ−タセツトの更新処理方式
JP2787107B2 (ja) バッファ制御方式及び装置
JP2926873B2 (ja) 計算機システム
JP3251764B2 (ja) 入出力バッファ制御装置
JPS6367656A (ja) デ−タ格納領域管理処理方式
JPH0334031A (ja) キューファイル排他制御装置
JPH0346033A (ja) ジヨブ間データ転送制御方法
JPH0922363A (ja) タスク構成方式
JPS63104137A (ja) アサイン情報アクセス制御方式
JPH02105237A (ja) 順編成ファイルのデータ更新方式
JPH0869401A (ja) ファイル管理装置
JPH01279339A (ja) ファイル書き出し処理方式