JPH0644257B2 - 不特定長連続領域のバッファリング方法 - Google Patents

不特定長連続領域のバッファリング方法

Info

Publication number
JPH0644257B2
JPH0644257B2 JP59152597A JP15259784A JPH0644257B2 JP H0644257 B2 JPH0644257 B2 JP H0644257B2 JP 59152597 A JP59152597 A JP 59152597A JP 15259784 A JP15259784 A JP 15259784A JP H0644257 B2 JPH0644257 B2 JP H0644257B2
Authority
JP
Japan
Prior art keywords
buffer
length
area
continuous area
continuous
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
JP59152597A
Other languages
English (en)
Other versions
JPS6132155A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP59152597A priority Critical patent/JPH0644257B2/ja
Publication of JPS6132155A publication Critical patent/JPS6132155A/ja
Publication of JPH0644257B2 publication Critical patent/JPH0644257B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理システムにおけるデータのバッフ
ァリング方法に関し、特に領域プールから不特定長連続
領域を効率的に獲得するための切出し制御方法に関す
る。
〔従来の技術〕
データ処理システムでは入出力命令を実行する際、メモ
リ上に必要な大きさの入出力バッファを確保して入出力
データをバッファリングすることが行なわれる。
従来の入出力バッファ制御では、仮想メモリ上のバッフ
ァプールから、要求された入出力バッファ用の連続領域
が切り出される。ところで、各切り出し要求における切
り出し領域の大きさが不特定であるような場合には、要
求される最大のバッファ長の連続領域を単位として各要
求ごとに切り出す方式がとられている。
第2図はこのようなバッファプールを概念的に示したも
ので、たとえば最小12バイトから最大256バイトま
での各種の大きさのバッファが要求される場合、バッフ
ァプールの切り出しエレメントの大きさを最大の256
バイトに定め、各バッファ要求に対して同じ大きさのエ
レメントを切り出すものである。このため、256バイ
ト未満の小さい領域のバッファの切り出し要求が続いた
とき、図示の斜線部分のような無駄な未使用領域が多く
生じ、メモリの利用効率が低下した。
〔発明が解決しようとする問題点〕
本発明は、不特定長の連続領域バッファを獲得する要求
に対して、従来、バッファプールからのバッファ切り出
しの際に無駄な領域が生じていた点を改善するものであ
る。
〔問題点を解決するための手段〕
本発明は、不特定長の連続領域のバッファ要求に対して
各要求の不特定長を予め分類し、さらに分類された各長
さのほぼ最大公約数を求めて、この長さを単位として領
域中の空き連続領域を管理し、必要に応じて要求長のバ
ッファを切り出すようにするものである。そしてそのた
めの具体的な手段として、本発明は、不特定長連続領域
のバッファ要求があったとき、バッファプールから必要
な大きさのバッファを切り出す処理を行うバッファ管理
手段をそなえたデータ処理システムにおいて、上記バッ
ファ管理手段は、システムの運用開始前に予めそのシス
テムで処理する各業務プログラムの各種のバッファ要求
における異なるバッファ長の大きさを調べて、それら異
なるバッファ長の間でのおよその最大公約数を求め、該
最大公約数の値の大きさのエレメントを単位として区切
られるバッファプールの空き領域を連続領域ブロックと
してテーブル管理し、不特定長連続領域のバッファ要求
があったとき、該要求バッファ長を満たすだけの連続空
き領域をエレメント単位に切り出すことを特徴とする。
〔実施例〕
以下に、本発明の詳細を実施例にしたがって説明する。
第1図は本発明の1実施例の構成図であり、図中の1は
処理装置、2は業務プログラム処理部、3はバッファ管
理部、4は仮想メモリ、5はバッファプール、6は主管
理テーブル、7は空きバッファ管理テーブルを表わして
いる。
バッファ管理部3は、システムの運用開始時に、予め業
務プログラム処理部2が処理する各業務プログラムにお
いて必要とされるバッファのバッファ長情報に基づい
て、バッファ長を大きさごとに分類し、そしてそれらか
ら計算した最大公約数Mの値をバッファプール5の各エ
レメントの大きさとして、エレメント単位によるバッフ
ァプールの管理を行う。
たとえば、簡単化して業務プログラム処理部2から切り
出し要求されるバッファの長さが、バイト単位で24、
36、96、120の4種類があるものとすれば、得ら
れる最大公約数は12である。したがって、バッファプ
ール5の各エレメントのサイズは12バイトに定められ
る。なおバッファプール5の領域全体の大きさをQと
し、エレメントの個数をnとすれば、nは、Qを12で
割った商の整数部分として与えられる。
バッファ管理部3は、未使用のエレメントを空きバッフ
ァ管理テーブル7を用いて管理する。空きバッファ管理
テーブル7の先頭位置は、主管理テーブル6によってポ
イントされる。
空きバッファ管理テーブル7は、連続する未使用のエレ
メントのブロックをポインタチェーンで表わしたもの
で、バッファ管理部3は、個々のバッファ要求に対し
て、そのバッファサイズを満たすだけの必要個数の連続
する空きエレメントを切り出して、そのエレメントを空
きバッファ管理テーブル7のポインタチェーンから取り
外す。
他方、業務プログラムの処理終了等により使用されてい
たバッファが返却された場合には、そのエレメントを、
再び空きバッファ管理テーブル6のポインタチェーン中
に組み込む。
図示の例は、エレメントおよびと以降が使用中で
あり、そのためエレメント乃至とエレメント乃至
とがそれぞれ1つの連続領域の空きブロックを形成し
ている状態を示している。なお、ポインタは、ブロック
間だけに張られており、ブロック内は先頭のブロックで
連続するブロックの数を管理するだけである(たとえば
では3、では4と管理している)。
第3図は、バッファ管理の処理例を、空きバッファ管理
テーブル7の状態変化で示したもので、図(a)はエレメ
ントおよびが切り出されていて、エレメント乃至
および乃至がそれぞれ空きブロックとしてチェー
ンにつながれているテーブル状態を示し、図(b)は2エ
レメント分のバッファ要求があり、このためエレメント
乃至からなる空きブロックからエレメントおよび
を切り出した後のテーブル状態、そして図(c)先に切
り出したエレメントおよびで返却されて、エレメン
ト乃至が1つの連続領域ブロックとなったときのテ
ーブル状態を示している。
次に、バッファ管理部3のバッファ切り出しおよび返却
処理の基本的な制御アルゴリズムを、第4図を用いて説
明する。
第4図は、バッファプールのある時点における状態の例
を示したもので、aおよびbはバッファプールの上限お
よび下限のアドレス、llは任意長の連続領域の長さを
表わしたものにする。図示のように、ll=X乃至X
の5つの連続領域の空きブロックが存在しており、そ
してこれらの各空きブロックの間がそれぞれ使用中のブ
ロックとなっている。
ここで、ll=Lおよびll=Lのバッファ要求が
続いて発生し、その後、ll=Lおよびll=L
バッファ返却が続いて発生したものとする。X乃至X
およびL乃至Lは、任意の長さでよい。
(i)バッファ要求(ll=L)に対するバッファ切
り出し処理では、X乃至Xの空きブロックから長さ
を満たすものを調べ、切り出す。
仮に、X<X<X<L<X<Xであったも
のとすると、Lよりも大きくてLに最も近いX
らL分を切り出し、これを使用中とした後、残りの
(X−L)分を空きブロックとして管理する。
(ii)次のバッファ要求(ll=L)に対するバッフ
ァ切り出し処理も(i)と同様に行なう。
仮に、(X−L)<X<X<L<X<X
とすると、Lよりも大きくてLに最も近いXから
分を切り出して、これを使用中とした後、残りの
(X−L)分を空きブロックとして管理する。
(iii)バッファ返却(ll=L)に対する返却処理
では、Lの領域のアドレスが空きブロックのいずれか
と連続していないかどうかを調べ、連続していればそれ
らを1つの空きブロックとして管理する。
仮に、LがXの後尾に連続し、かつXの頭部にも
連続しているものとすれば、{(X−L)+L
}分の新たな空きブロックがつくられる。
(iv)次のバッファ返却(ll=L)に対する返却処
理も(iii)と同様に行なう。
仮に、LがXの後尾に連続し、Xの頭部とは連続
していないものとすれば、(X+L)分の新たな空
きブロックがつくられる。
ところで、各バッファ要求の長さをL、L、L
…、Lとしたとき、その最大公約数Mにより、上記し
たL乃至L、X乃至Xは次のように表わされ
る。
=lM X=xM L=lM X=xM L=lM X=xM L=lM X=xM X=xM ここで、l乃至l、x乃至xは、それぞれ整数
である。この場合、上記した(i)乃至(iv)でつくら
れる新たな空きブロックはそれぞれ、 (i)では、(x−l)×M (ii)では、(x−l)×M (iii)では、(x−l+l+x)×M (iv)では、(x+l)×M と表される。
しかし、実際に要求されるバッファのサイズを任意長と
して管理することは、ソフトウェア技術上きわめて困難
である。そのためL乃至Lの最大公約数も状況に応
じておよその値Mが使用される。この場合、 Ll′M′ X=x′M′ Ll′M′ X=x′M′ Ll′M′ X=x′M′ Ll′M′ X=x′M′ X=x′M′ となり、右辺の値を用いてバッファの切り出しが行なわ
れる。このため要求された真のバッファ長と、切り出さ
れるバッファ長との間に、若干の差が生じ、無駄な領域
となる可能性があるが、一般にその大きさは、第2図で
説明した従来例の場合にくらべて無視できるほど小さい
ものにすることができる。
〔発明の効果〕
本発明によれば、各バッファ要求間におけるバッファの
長さの差が大きい程、従来のバッファリング方式にくら
べて効率的なバッファ切り出しを行なうことができ、メ
モリの無駄を減少させることができる。
【図面の簡単な説明】
第1図は本発明の1実施例の構成図、第2図は従来のバ
ッファリング方式の説明図、第3図は第1図に示した実
施例構成における処理例の説明図、第4図は本発明によ
るバッファ管理の説明図である。 図中、1は処理装置、2は業務プログラム処理部、3は
バッファ管理部、4は仮想メモリ、5はバッファプー
ル、6は主管理テーブル、7は空きバッファ管理テーブ
ルを示す。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】不特定長連続領域のバッファ要求があった
    とき,バッファプールから必要な大きさのバッファを切
    り出す処理を行うバッファ管理手段をそなえたデータ処
    理システムにおいて,上記バッファ管理手段は,システ
    ムの運用開始前に予めそのシステムで処理する各業務プ
    ログラムの各種のバッファ要求における異なるバッファ
    長の大きさを調べて,それら異なるバッファ長の間での
    およその最大公約数を求め,該最大公約数の値の大きさ
    のエレメントを単位として区切られるバッファプールの
    空き領域を連続領域ブロックとしてテーブル管理し,不
    特定長連続領域のバッファ要求があったとき,該要求バ
    ッファ長を満たすだけの連続空き領域をエレメント単位
    に切り出すことを特徴とする不特定長連続領域のバッフ
    ァリング方法。
JP59152597A 1984-07-23 1984-07-23 不特定長連続領域のバッファリング方法 Expired - Lifetime JPH0644257B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59152597A JPH0644257B2 (ja) 1984-07-23 1984-07-23 不特定長連続領域のバッファリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59152597A JPH0644257B2 (ja) 1984-07-23 1984-07-23 不特定長連続領域のバッファリング方法

Publications (2)

Publication Number Publication Date
JPS6132155A JPS6132155A (ja) 1986-02-14
JPH0644257B2 true JPH0644257B2 (ja) 1994-06-08

Family

ID=15543902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59152597A Expired - Lifetime JPH0644257B2 (ja) 1984-07-23 1984-07-23 不特定長連続領域のバッファリング方法

Country Status (1)

Country Link
JP (1) JPH0644257B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01306938A (ja) * 1988-06-03 1989-12-11 Nec Corp メッセージバッファ管理方式
CA2408481C (en) 2002-10-17 2009-10-06 Ibm Canada Limited-Ibm Canada Limitee Autonomic reallocation of memory among buffer pools

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
オペレーティング・システムへの構造的アプローチ(上)P300〜312(日本コンピュータ協会、昭和56年、10版)
オンラインシステムの設計P568−574(丸善昭和50年)

Also Published As

Publication number Publication date
JPS6132155A (ja) 1986-02-14

Similar Documents

Publication Publication Date Title
JPH05189281A (ja) 記憶装置のファイル割当て方式
JPH0644257B2 (ja) 不特定長連続領域のバッファリング方法
JPH0126093B2 (ja)
JP3763452B2 (ja) 情報処理システム、オブジェクトの優先度管理方法、オペレーティングシステム、記録媒体
US5875299A (en) disk access apparatus for performing a stride processing of data
JPS59771A (ja) デ−タ処理装置における演算処理部選択制御方式
JPH0296277A (ja) 画像データ管理方式
JPH10283231A (ja) データ処理装置
CN116955212A (zh) 内存碎片的整理方法、装置、设备及存储介质
JP2616425B2 (ja) ファイルアロケート方式
JPS63192126A (ja) デ−タセツトのスペ−ス管理処理方式
JPH03132842A (ja) 高速オンデマンドページング方式
JPH0387941A (ja) 分散データベース処理方式
JPS61143846A (ja) 情報処理出力装置
JPS61153770A (ja) 画像処理装置
JPS6269321A (ja) プロセススイツチ方式
JPS6356572B2 (ja)
JPS63317829A (ja) デ−タ分割処理方法
JPH02120958A (ja) 出力待ち制御方法
JPH01156818A (ja) バッファ領域設定方法
JPH08153037A (ja) シーケンシャル領域におけるデータ管理方式
KR20020075667A (ko) 이동통신 시스템에서의 쓰레드 지향 동적 버퍼를 이용한데이터 처리 장치 및 그 방법
JPH054695B2 (ja)
JPS6359091A (ja) 蓄積プログラム制御方式電話交換システムにおけるメモリ割付け情報出力方式
JPH0670785B2 (ja) ポインタ動的制御によるバツフアメモリ拡張方法