JPH0484345A - 記憶領域管理装置 - Google Patents

記憶領域管理装置

Info

Publication number
JPH0484345A
JPH0484345A JP20040990A JP20040990A JPH0484345A JP H0484345 A JPH0484345 A JP H0484345A JP 20040990 A JP20040990 A JP 20040990A JP 20040990 A JP20040990 A JP 20040990A JP H0484345 A JPH0484345 A JP H0484345A
Authority
JP
Japan
Prior art keywords
area
size
binary tree
program
storage
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
JP20040990A
Other languages
English (en)
Inventor
Fujio Inoue
藤男 井上
Hiroko Yamaji
裕子 山地
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.)
Shimadzu Corp
Original Assignee
Shimadzu 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 Shimadzu Corp filed Critical Shimadzu Corp
Priority to JP20040990A priority Critical patent/JPH0484345A/ja
Publication of JPH0484345A publication Critical patent/JPH0484345A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 この発明は、複数のプログラムを並行処理するために、
コンピュータに備えられている記憶装置の連続した記憶
領域を各プログラムに動的に割り当てる記憶領域管理装
置に関する。
B、従来技術 複数のプログラムから出力されるデータをコンピュータ
の記憶装置の連続した領域内に格納していく場合や、各
プログラムの一部を前記記憶領域内に格納して実行して
いく場合、各プログラムが要求したサイズの記憶領域を
、各プログラムに動的に(要求に応じて)割り当ててい
くのであるが、このとき、あるプログラムが別のプログ
ラムの記憶領域を犯さないように、記憶領域を管理する
ことが必要となってくる。
この記憶領域の管理は、記憶装置中の未使用領域や使用
領域のサイズ、各領域のアドレス、各領域を使用してい
るプログラム名などを管理しておき(管理テーブルとい
う表形式で、各領域の管理を行う場合が多い)、プログ
ラムから記憶領域の使用要求がくると、その要求サイズ
に応じた未使用領域をそのプログラムに割り当てていく
もので、現在、オペレーティングシステム(以下、O5
)と呼ばれる基本ソフトウェアが生体となって行ってい
る。
C1発明が解決しようとする課題 O5による記憶領域管理では、記憶領域のサイズを、あ
る特定のサイズの整数倍毎に管理している。つまり、各
プログラムから出された要求サイズそのものを割り当て
るのではなく、要求サイズに適合する「ある特定サイズ
の整数倍の」サイズを割り当てている。これは、記憶領
域の管理を簡単化(管理テーブルを簡単化)しようとす
るもので、例えば、1バイト毎に記憶領域を管理した場
合、どのプログラムがどこの領域(領域のアドレス)を
使用しているかという情報を、1バイト。
2バイト、3バイト、・・・というように、1バイト毎
の単位で管理する必要があるため、当然、管理テーブル
もその単位ごとにプログラム名や領域アドレスを格納し
たものとなってしまい、管理する領域サイズの量が膨大
なものになる。これを解消するために、例えば最小の領
域サイズを比較的大きな32バイトに特定し、32バイ
トの整数倍、すなわち、64バイト、96バイト、・・
・という単位で管理している。
しカルながら、このような管理では、例えば、5バイト
の記憶領域をプログラムが要求したとしても、最小単位
である32バイトが割り当てられることになり、記憶領
域が無駄に使われ、メモリの利用効率が低下するという
問題点がある。
また、O3は汎用的に記憶領域の割り当てを行っている
、つまり、複数のプログラムを対象とする場合、全ての
プログラムの記憶領域の管理をまかなっている。このた
め、管理テーブルも複数のプログラムの管理情報(前述
のサイズ、アドレスなど)を収納したものになり、1つ
のプログラムからの要求が出されても、複数のプログラ
ムの管理テーブルを参照して未使用領域を検索し、その
領域の劃り当てを行うため、その未使用領域の検索に要
する時間はかなり長いものになってしまうという欠点が
ある。
この発明は、このような事情に鑑みてなされたものであ
って、記憶領域の利用効率の向上および記憶領域の割り
当て処理時間の短縮化を図ることができる記憶領域管理
装置を提供することを目的としている。
01課題を解決するための手段 この発明は、上記目的を達成するために次のような構成
を備えている。
即ち、この発明は、コンビニiりの記憶装置の記憶領域
を使用する複数のプログラム毎に装備される記憶領域管
理装置であって、前記プログラムから要求された記憶領
域サイズを各プログラムごとに設定された最小領域サイ
ズの整数倍のサイズに換算し所定サイズの領域をプログ
ラムに割り当てる領域割り当て手段と、前記割り当てた
領域サイズや、プログラムから解放された割り当て領域
のアドレスなどを収納するノードを各領域サイズの大小
順に二分してこれらをリンク結合したバイナリ−ツリー
を作成するバイナリ−ツリー作成手段と、作成されたバ
イナリ−ツリーを記憶するバイナリ−ツリー記憶部と、
学習モード時に、前記各領域サイズの要求回数を記録す
ることによって使用領域サイズの頻度を記録する使用頻
度記録部と、前記学習モードを終了した後に、前記記録
された各領域サイズの使用頻度を参照し頻度の高い領域
サイズのノードほど前記バイナリ−ツリーの比較的上位
に位置するようにバイナリ−ツリーを再構成し、再構成
後のバイナリ−ツリーで前記バイナリーツリー記憶部を
更新するバイナリ−ツリー再構成部と、実行モードの時
に、再構成されたバイナリ−ツリーを用いて前記解放領
域情報の検索を実行し、その検索結果を前記領域割り当
て手段に送出する解放領域検索手段とを備えたことを特
徴としている。
E0作用 この発明によれば、記憶領域管理装置を各プログラム毎
に装備しているので、各記憶領域管理装置は1つのプロ
グラムに割り当てられる記憶領域を管理することになる
。したがって、O3のように複数のプログラムの記憶領
域の情報を一括して管理するよりも、その情報量を少な
いものにすることができる。
これムこ加えて、プログラム番こ記憶領域を割り当てる
たびに、割り当てたサイズ、そのサイズの領域が返還さ
れた情報などをノードとしたバイナリ−・ツリー(各領
域サイズのノードを大小順に二分してリンク結合した木
構造データ)を、バイナリ−ツリー作成部が作成する。
一方、学習モードにおいて、使用頻度記録部が各領域サ
イズの要求回数(頻度)を記録し、学習モード終了後、
バイナリ−ツリー再構成部が、前記記録された各領域サ
イズの頻度を参照して頻度の高いサイズのノードほど上
位になるようにバイナリ−ツリーを再構成する。解放領
域検索手段は、バイナリ−ツリー再構成後の実行モード
において、再構成されたバイナリ−ツリーを用いて解放
itJ域の検索を行い、検索結果を領域割り当て手段に
送出する。
したがって、あるサイズの解放領域の検索を行う場合、
要求頻度の高いものから順に検索されるため、そのサイ
ズを早期に検索する可能性が高くなり、検索時間の短縮
化、ひいては割り当て処理時間の短縮化が図れる。
また、領域割り当て手段は、プログラムから要求された
サイズを、各プログラムに応した最小領域サイズの整数
倍のサイズに換算して割り当てているため、oSのよう
に全てのプログラムに対応できるように比較的大きな最
小領域サイズの整数倍で割り当てた場合のように、要求
サイズよりも遥かに大きなサイズを割り当てることがな
い。
F、実施例 以下、この発明の実施例を図面に基づいて説明する。
まず、第2図を参照して、この発明の記憶領域管理装置
の使用例について説明する。
図に示すように、複数のプログラムP1〜Pn(一般に
これらはアプリケージぢンプログラムと呼ばれる応用プ
ログラムである)を並列動作させる場合、各プログラム
P1〜Pnからデータを記憶装fl内に格納したいとい
う要求が出される。
これを受けて記憶装置!1内の記憶領域を割り当ててい
くのが、記憶領域確保部!M1〜Mnであり、各プログ
ラムP1〜Pn毎に設けられている。O5は、直接、記
憶装置1をアクセスするもので、各記憶領域管理装置M
1〜Mnから出された要求に応じて記憶装置lの記憶領
域を各記憶領域管理装置M1〜Mnに割り当てていく。
次に、第1図を参照して記憶領域管理装置の構成につい
て説明する。
図中、符号2はO5に対して要求を出し、所要のサイズ
の記憶領域を確保しておく記憶領域確保部、3はプログ
ラムから要求された領域サイズに応じて、確保している
記憶領域をプログラムに割り当てる端域割り当て手段と
しての領域管理部、4は後述するバイナリ−ツリーを作
成したり、検索したりするバイナリ−ツリー管理部、5
は作成されたバイナリ−ツリーを格納するバイナリ−ツ
リー記憶部、6はプログラムが要求した領域サイズの頻
度(回数〕をカウントし、それを自身のカウンタに記録
していく使用頻度記録部、7は領域サイズの頻度に応じ
てバイナリ−ツリーを再構成するツリー再構成部である
このような構成による動的記憶領域割り当ての大まかな
動作は、以下のとおりである。
■プログラムから要求のあったサイズをそのサイズに適
した所定のサイズに換算する。
■換算したサイズの領域をプログラムに割り当てる。
■割り当てた領域サイズのノードを作成し、作成した各
サイズのノードを大小順に二分し、それらをリンク結合
して木構造化する(バイナリ−ツリーの作成)。
このように、記憶領域割り当てを動的に行う一方、割り
当てた領域サイズの管理を行うためのバイナリ−ツリー
を作成していく、このバイナリ−ツリーは、割り当て要
求が出されたときに、その要求サイズの解放領域(−度
プログラムに割り当てられた後、プログラムが返還して
きた領域)があるかどうかを高速に検索するためのもの
で、要求されるたびにそのサイズのノードを作成し、後
にそのサイズが解放されると、解放された領域のアドレ
スを書き込むことによって、割り当てた領域が解放され
たか、解放された領域のアドレスほどこか、という情報
を管理するものである。
さて、上記のような一連の割り当て動作を行うにあたり
、この発明の記憶領域管理装置は、以下の処理を並行し
て行う。
(イ)学習モードと称して、プログラムから要求のあっ
たサイズの使用頻度をカウントし、(ロ)しかるのち、
実行モードに切り換える際に、使用頻度の高いサイズの
ノードをバイナリ−ツリーの上位に、頻度が低くなるほ
ど下位に、位置するようにバイナリ−ツリーを再構成す
る。
このように、要求頻度の高いものを上位にもってくるこ
とで、バイナリ−ツリーの検索の高速化を図っている。
学習モードから実行モードへの切り換えには、次のよう
な態様がある。
(ハ)プログラムの実際の運用を行う前に、プログラム
の作成者や管理者によって、学習(使用頻度の記録)を
済ませておき、実際に運用するとに実行モードに切り換
えて、再構成されたバイナリ−ツリーを用いて解放領域
の検索を行う。
(ニ)プログラムの運用開始とともに、学習を開始し、
実行モードへの切り換えはユーザの判断により適宜行う
(ホ)(ニ)において、実行モードへの切り換えを記憶
領域管理装置が判断し、自動的番二行う。
この判断には、プログラムからの要求回数や、あるサイ
ズの使用頻度数などの基準値を予め設定しておき、この
基準値を趨えたかどうかで判断するようにすればよい。
次に、上述した一連の動作を、第3図のフローチャート
をもとにして、さらに詳細に説明する。
ただし、予め記憶領域確保部2により、O5を介して記
憶装置1から、所要の記憶領域が確保されているとし、
以下の領域割り当てはこの記憶領域に対して行うものと
する。
ステップS1で、プログラムからの記憶領域の使用要求
サイズを入力する。
ステップS2で、入力したサイズを所定のサイズに換算
する。この換算したサイズが実際にプログラムに劃り当
てられるサイズとなる。
所定サイズは、予め設定した最小単位のサイズを整数倍
にし、入力したサイズよりも大きく、かつ、その中で最
も小さなサイズを規定するものである。
例えば、最小単位のサイズを4バイトとし、入力したサ
イズを7バイトとすると、4の倍数で7よりも大きく、
最も7に近い値を次式によって算出する。
UX(n−1)<X≦UXn 上式の符号Uは最小単位のサイズ(4バイト)。
nは整数倍するための自然数、Xは入力されたサイズ(
7バイト)であり、「UXn」が所定サイズである。し
たがって、上式を満足するようなrUXn」を求め、こ
れを所定サイズとする。この結果、UXn−8バイトが
算出される。算出された所定サイズを以下、符号Sで記
す。
このように、要求サイズを各プログラムに応した最小領
域サイズの整数倍のサイズに換算することによって、O
5のように、例えば7バイトの割り当て要求のときに3
2バイトの領域を割り当てることなく、記憶領域の利用
効率が向上する。
ステップS3で、使用頻度記録部6のサイズSの使用頻
度カウンタに「1」を加える。
このステップS3は学習モードのみ実行される処理で、
実行モードへの切り換えがなされていないとき、すなわ
ち、前述の(ハ)〜(ホ)による実行モードの切り換え
要求が出されていないときに使用頻度記録部6によって
履行される処理である。
ステップS4で、ツリー管理部4はツリー記憶部5内を
検索し、サイズSのノードがあるかを検索する。
ステップS5で、ノードの存在を判断し、なければ、ス
テップS6に進んで、サイズSのノードを作成し、すで
に存在していればステップS7に進む。
このノードは、バイナリ−ツリーの節点となるもので、
4つの情報を格納する1つのメモリ単位である。a金的
に表すと第4図(a)のような4分割された1つの「箱
」になる。この「箱jの左上のボックスBOには領域サ
イズSが、右上のボックスB】には解放領域のリスト(
解放された領域のアドレスを書き並べたもの)が、左下
のボックスB2にはサイズSよりも小さなサイズのノー
ドのアドレスが、右下のボックスB3にはサイズSより
も大きなサイズのノードのアドレスが格納されこの左右
下側のボックスに大小のサイズのノードのアドレスを書
き込むことによって、各ノードは大小順に二分され、リ
ンクで結合されたバイナリ−ツリーが構成される。構成
されるバイナリ−ツリーの一例を第4図(b)に示す、
この図のバイナリ−ツリーは4バイトの倍数で管理され
たサイズSのバイナリ−ツリーである。なお、図中符号
Rで示したルートはバイナリ−ツリー検索の開始点であ
り、上位のノード(この例では12バイトのノード)の
アドレスが書き込まれている。
サイズSのノードがすでに作成されていれば、ステップ
S7で、解放領域があるかどうかの判断を行う、すなわ
ち、ノードの右上のボックスを読み込み、そのボックス
内に解放領域のアドレスが書き込まれているかどうかを
判断する。
プログラムが一旦割り当てられた領域を解放するとき、
その解放領域のサイズ、アドレスが送られてくるので、
割り当て領域が解放されると、該当するサイズのノード
の右上のボックス中に、そのアドレスが書き込まれる。
解放領域のアドレスが書き込まれていれば、ステップS
8に進み、そのアドレスをプログラムに送ることで解放
領域をプログラムに割り当てる。
解放領域のアドレスが書き込まれていなければ、ステッ
プS9に進む。
ステップS9で、記憶領域から新たにサイズSの領域を
確保して、ステップS8に移行し、その領域をプログラ
ムに割り当てる。
このようにして、プログラムへの記憶領域の動的割り当
ておよびバイナリ−ツリーの作成、割り当て要求サイズ
の頻度の記録(学習モード)が行われる。
そして、前述の(ハ)〜(ホ)に記載したような実行モ
ードの切り換えが行われると、ツリー再構成部7は使用
頻度記録部6が記録した各サイズの使用頻度を参照して
、バイナリ−ツリーの再構成を行う、以下、この処理に
ついて説明する。
まず、ツリー再構成部7は、空き領域管理部6から各サ
イズとその使用頻度数を読み出す。
読み出された各サイズと使用頻度数(カウンタ値)の−
例を表形式にして次に示す。
第1表 第1表において、区間幅は入力サイズの範囲を示してい
る0割当サイズと頻度数から、まず、全体の割当サイズ
(4〜20)中で最も要求される確率の高いサイズを次
の0式によって夏山する。
M−Σ 5ixpi  ・・・・・団・・・・■■式に
おいて、Mは各要求サイズの重み付は平均偵、Siは各
割当サイズ、Piは各割当サイズが要求される確率で、
各サイズの頻度数を頻度数の総数で割ったものである。
第1表を例にして、0式を計算すると、M−9,42と
なり、この値に最も近いサイズのノードをバイナリ−ツ
リーの上位に配置する。
上の表を参照すると、割当サイズ−8がMに最も近いサ
イズであるので、8バイトのノードをバイナリーツリー
の上位とする。
次に、8バイトよりも大きな割当サイズ(12〜20)
を対象として■の計算を行い、その中でMに最も近いサ
イズのノードを8のサイズのノードの右側下位に配置す
る。つまり、8のサイズのノードの右下のボックスにM
に近いサイズのノードのアドレスを書き込む、このよう
な処理を順に繰り返して、バイナリ−ツリーにおける8
のノードの右側に配置するノードを木構造化する。8バ
イトよりも小さなサイズに対しても同様にして左側へ配
置していく、これによって、要求される確率の高いもの
から、順に下位へとのびるバイナリ−ツリーが再構成さ
れる。再構成されたバイナリ−ツリーを第5図に示す。
このようにバイナリ−ツリーを再構成したのち、実行モ
ードで第3図のフローチャートの処理にしたがって、動
的割り当てを行う。
すなわち、実行モードでの動的割り当てでは、第3図の
ステップS3の処理が省略されで、ステップS2からス
テップS4に移行する。このステップS4で、バイナリ
−ツリー内にサイズSのノードがあるかを検索するので
あるが、このとき、バイナリ−ツリーは要求される確率
の高いものから順に下位にいくように再構成されている
ので、上位から検索を行うと、要求されたサイズSのノ
ードを捜し当てる確率が高くなり、このステップS4で
の処理時間(検索時間)を大幅に短縮化することができ
る。
G1発明の効果 以上の説明から明らかなように、この発明に係る記憶頭
載管理装置は、記憶領域を割りつける際に、プログラム
から要求のあった領域サイズを各プロゲラLに応じた最
小領域サイズの整数倍のサイズに換算しているので、O
8のように、比較的大きな最小領域サイズの整数倍で割
り当てた場合のように、要求サイズよりも遥かに大きな
領域を割り当てることがなく、記憶領域の利用効率を向
上させることができる。
また、学習モードにおいて、プログラムから要求のあっ
た各領域サイズの頻度を記録しておき、その頻度の高い
領域サイズのノードほど上位に位置するようにバイナリ
−ツリーを再構成し、実行モードにおいて、再構成した
バイナリ−ツリーを用いて解放領域の検索を行うように
したので、検索時間の短縮化、ひいては割り当て処理時
間の短縮化を図ることができる。
【図面の簡単な説明】
第1図ないし第5図は、この発明の一実施例に係り、′
tJ1図は装置の概略構成を示したブロック図、第2図
は装置の使用例を示した図、第3図は動的割り当て処理
の流れを示したフローチャート、第4図はバイナリ−ツ
リーの一例図、第5図は再構成されたバイナリ−ツリー
の一例図である。 l・・・記憶装置f    3・・・領域管理部4・・
・バイナリ−ツリー管理部 5・・・バイナリ−ツリー記憶部 6・・・使用頻度記憶部 7・・・バイナリ−ツリー再構成部 特許出願人 株式会社 島津製作所

Claims (1)

    【特許請求の範囲】
  1. (1)コンピュータの記憶装置の記憶領域を使用する複
    数のプログラム毎に装備される記憶領域管理装置であっ
    て、前記プログラムから要求された記憶領域サイズを各
    プログラムごとに設定された最小領域サイズの整数倍の
    サイズに換算し所定サイズの領域をプログラムに割り当
    てる領域割り当て手段と、前記割り当てた領域サイズや
    、プログラムから解放された割り当て領域のアドレスな
    どを収納するノードを各領域サイズの大小順に二分して
    これらをリンク結合したバイナリーツリーを作成するバ
    イナリーツリー作成手段と、作成されたバイナリーツリ
    ーを記憶するバイナリーツリー記憶部と、学習モード時
    に、前記各領域サイズの要求回数を記録することによっ
    て使用領域サイズの頻度を記録する使用頻度記録部と、
    前記学習モードを終了した後に、前記記録された各領域
    サイズの使用頻度を参照し頻度の高い領域サイズのノー
    ドほど前記バイナリーツリーの比較的上位に位置するよ
    うにバイナリーツリーを再構成し、再構成後のバイナリ
    ーツリーで前記バイナリーツリー記憶部を更新するバイ
    ナリーツリー再構成部と、実行モードの時に、再構成さ
    れたバイナリーツリーを用いて前記解放領域情報の検索
    を実行し、その検索結果を前記領域割り当て手段に送出
    する解放領域検索手段とを備えたことを特徴とする記憶
    領域管理装置。
JP20040990A 1990-07-27 1990-07-27 記憶領域管理装置 Pending JPH0484345A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20040990A JPH0484345A (ja) 1990-07-27 1990-07-27 記憶領域管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20040990A JPH0484345A (ja) 1990-07-27 1990-07-27 記憶領域管理装置

Publications (1)

Publication Number Publication Date
JPH0484345A true JPH0484345A (ja) 1992-03-17

Family

ID=16423838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20040990A Pending JPH0484345A (ja) 1990-07-27 1990-07-27 記憶領域管理装置

Country Status (1)

Country Link
JP (1) JPH0484345A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128287A (ja) * 1995-10-31 1997-05-16 Nec Corp メモリブロックの確保・解放方式
WO2013014705A1 (ja) * 2011-07-26 2013-01-31 三菱電機株式会社 動的メモリ管理装置及び動的メモリ管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128287A (ja) * 1995-10-31 1997-05-16 Nec Corp メモリブロックの確保・解放方式
WO2013014705A1 (ja) * 2011-07-26 2013-01-31 三菱電機株式会社 動的メモリ管理装置及び動的メモリ管理方法

Similar Documents

Publication Publication Date Title
US10649967B2 (en) Memory object pool use in a distributed index and query system
JPS6310250A (ja) 仮想論理ボリユ−ム管理方式
US20190026317A1 (en) Memory use in a distributed index and query system
JPH0773204A (ja) 継承を有するデータ・モデル用の並列テーブル
WO2024078429A1 (zh) 内存管理方法、装置、计算机设备及存储介质
US11132334B2 (en) Methods and apparatus for filtering dynamically loadable namespaces (DLNs)
JPH0484345A (ja) 記憶領域管理装置
JP4304746B2 (ja) ファイルの置き換え方法及び装置
WO2020164216A1 (zh) 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法
JPH07334402A (ja) メインメモリ化データベース
JP4244716B2 (ja) 多重仮想記憶システムの二次記憶管理方式および方法
US10997126B1 (en) Methods and apparatus for reorganizing dynamically loadable namespaces (DLNs)
Larson Performance analysis of a single-file version of linear hashing
Chen et al. A Length Adaptive Memory Management Framework in High Speed Acquisition System
JPH05233390A (ja) 分散データベースのデータ分割管理方式
JPH0324644A (ja) マルチボリュームにおけるファイルの自動拡張方式
CN111427862B (zh) 电网调度控制系统中分布式文件系统的元数据管理方法
WO2023274197A1 (zh) 一种操作请求处理方法及相关装置
JP2679761B2 (ja) データ管理システム
JPH01209526A (ja) レコードアクセス方式
JPH0520142A (ja) ブロツク管理方式
JPH06208502A (ja) メモリ管理方法
JPS593549A (ja) フアイル管理方式
JPH0484346A (ja) 記憶領域管理装置
JPH0581101A (ja) キーの記憶割り当て方法