JPH0484346A - 記憶領域管理装置 - Google Patents
記憶領域管理装置Info
- Publication number
- JPH0484346A JPH0484346A JP20040890A JP20040890A JPH0484346A JP H0484346 A JPH0484346 A JP H0484346A JP 20040890 A JP20040890 A JP 20040890A JP 20040890 A JP20040890 A JP 20040890A JP H0484346 A JPH0484346 A JP H0484346A
- Authority
- JP
- Japan
- Prior art keywords
- area
- size
- storage area
- storage
- free space
- 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
Links
- 238000013467 fragmentation Methods 0.000 abstract description 7
- 238000006062 fragmentation reaction Methods 0.000 abstract description 7
- 238000007726 management method Methods 0.000 description 38
- 238000000034 method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
この発明は、コンピュータに備えられている記憶装置の
領域を、複数のプログラムのデータ格納のために割り当
てていく記憶領域管理装置に関する。
領域を、複数のプログラムのデータ格納のために割り当
てていく記憶領域管理装置に関する。
B、従来技術
複数のプログラムから出力されるデータをコンピュータ
の記憶装置の連続した領域内に格納していく場合(各プ
ログラムに記憶領域を割り当てる場合)、あるプログラ
ムが別のプログラムの記憶領域を犯さないように、記憶
領域を管理することが必要となってくる。
の記憶装置の連続した領域内に格納していく場合(各プ
ログラムに記憶領域を割り当てる場合)、あるプログラ
ムが別のプログラムの記憶領域を犯さないように、記憶
領域を管理することが必要となってくる。
この記憶領域の管理は、記憶装置中の未使用領域や使用
領域の先頭のアドレスを管理しておき(管理テーブルと
いう表形式で、各領域を管理する場合が多い)、プログ
ラムからデータ格納の要求がくると、そのデータのサイ
ズに応じた未使用領域をそのプログラムに割り当ててい
くもので、現在、オペレーティングシステム(以下、O
3)と呼ばれる基本ソフトウェアが主体となって行って
いる。
領域の先頭のアドレスを管理しておき(管理テーブルと
いう表形式で、各領域を管理する場合が多い)、プログ
ラムからデータ格納の要求がくると、そのデータのサイ
ズに応じた未使用領域をそのプログラムに割り当ててい
くもので、現在、オペレーティングシステム(以下、O
3)と呼ばれる基本ソフトウェアが主体となって行って
いる。
記憶装置の未使用領域、つまり、プログラムが使うこと
のできる領域には、初めから未使用であった8Mと、使
用領域であったが、あるプログラムがそのN域を解放し
たために空白となった領域の2つがある。ここで、前者
を未使用領域、後者を空き領域と呼ぶことにする。
のできる領域には、初めから未使用であった8Mと、使
用領域であったが、あるプログラムがそのN域を解放し
たために空白となった領域の2つがある。ここで、前者
を未使用領域、後者を空き領域と呼ぶことにする。
さて、限られた記憶N域を効率よくプログラムに割り当
てていく上で、問題となるのは空き領域の使い方である
。第7図を参照して、従来の空き領域の使い方について
説明する。
てていく上で、問題となるのは空き領域の使い方である
。第7図を参照して、従来の空き領域の使い方について
説明する。
第7図(a)は、記憶領域内の空き領域の状態を概念的
に模写したもので、ハンチング部分が使用領域、空白部
分が空き領域となっている。これは、初め、全てが使用
領域であったが、各プログラムが個別に記憶領域を解放
したため、図に示すような空き状態の領域が、とびとび
に発生したことを示している。
に模写したもので、ハンチング部分が使用領域、空白部
分が空き領域となっている。これは、初め、全てが使用
領域であったが、各プログラムが個別に記憶領域を解放
したため、図に示すような空き状態の領域が、とびとび
に発生したことを示している。
ここで、あるプログラムから領域りの割り当て要求が出
されたとすると、 (イ)記憶領域の先頭(図面の左側)から順番に空き領
域を検索していき、最初にみつかった領域りよりも大き
な領域を、そのプログラムに割り当てる。これは、最初
適合法と呼ぼる割り当て方法で、割り当て結果を同図[
有])に示す。
されたとすると、 (イ)記憶領域の先頭(図面の左側)から順番に空き領
域を検索していき、最初にみつかった領域りよりも大き
な領域を、そのプログラムに割り当てる。これは、最初
適合法と呼ぼる割り当て方法で、割り当て結果を同図[
有])に示す。
(ロ)記憶領域の先頭から順番に空き領域を検索してい
き、要求された領域りよりも大きな領域のうち、最もサ
イズの小さな領域を、そのプログラムに割り当てる。こ
れは、最良適合法と呼ばれるもので、割り当て結果を同
図(C)に示す。
き、要求された領域りよりも大きな領域のうち、最もサ
イズの小さな領域を、そのプログラムに割り当てる。こ
れは、最良適合法と呼ばれるもので、割り当て結果を同
図(C)に示す。
C1発明が解決しようとする課題
しかしながら、上述した従来の記憶領域管理装置による
記憶領域の割り当てには、次のような問題点がある。
記憶領域の割り当てには、次のような問題点がある。
(イ)の最初適合法では、最初に見つかった領域りより
も大きな領域を割り当てているため、処理時間は速いも
のとなるが、領域りよりも溝かに大きな領域を割り当て
てしまう可能性がある。そうすると、初め大きな空き領
域であったものが、小さな空き領域(第7図(b)の符
号Fl)となって残ってしまい(これをメモリの断片化
という)、次にかなり大きな領域の要求があった場合に
、その要求に応じられないという問題点がある。つまり
、大きな空き領域を確保することができな(なってしま
うのである。
も大きな領域を割り当てているため、処理時間は速いも
のとなるが、領域りよりも溝かに大きな領域を割り当て
てしまう可能性がある。そうすると、初め大きな空き領
域であったものが、小さな空き領域(第7図(b)の符
号Fl)となって残ってしまい(これをメモリの断片化
という)、次にかなり大きな領域の要求があった場合に
、その要求に応じられないという問題点がある。つまり
、大きな空き領域を確保することができな(なってしま
うのである。
これに対して、(ロ)の最良適合法では、大きな空き領
域を確保しておくことはできるが、第7図(C)に符号
F2で示したような、非常に小さな空き領域が発生して
しまう。すなわち、メモリの断片数は、(イ)の最初適
合法と同しであるが、比較的小さなサイズの断片が残っ
てしまう。このような断片化が進むと、全体としては、
割り当てに十分な空き領域があるのに、連続した空き領
域でないため、割り当てに応しられず、記憶領域が無駄
になるという問題点がある。
域を確保しておくことはできるが、第7図(C)に符号
F2で示したような、非常に小さな空き領域が発生して
しまう。すなわち、メモリの断片数は、(イ)の最初適
合法と同しであるが、比較的小さなサイズの断片が残っ
てしまう。このような断片化が進むと、全体としては、
割り当てに十分な空き領域があるのに、連続した空き領
域でないため、割り当てに応しられず、記憶領域が無駄
になるという問題点がある。
そこで、メモリの断片化が進み、要求サイズの連続領域
がとれなくなると、使用領域を−か所に詰め合わせる圧
縮という操作を行い、連続した空き領域を確保できるよ
うにしている(第7図同参照)。
がとれなくなると、使用領域を−か所に詰め合わせる圧
縮という操作を行い、連続した空き領域を確保できるよ
うにしている(第7図同参照)。
しかし、この圧縮という操作を行うには、かなりの時間
がかかるため、全体の割り当てに要する処理時間が延長
されるという別の問題点が生してしまう。
がかかるため、全体の割り当てに要する処理時間が延長
されるという別の問題点が生してしまう。
以上のような問題は、複数のプログラムの要求に応じて
記憶領域の割り当てを行っているから起こるので、各プ
ログラムが要求してくる領域のサイズが多種類にわたる
という現象が原因となっている。したがって、解放され
る空き領域のサイズも多種類にわたってしまい(例えば
、第7[1IU(a)のような状態になる)、上述した
ようなメモリの断片化が発生し、これを解消しようとす
ると処理時間が延長されるという結果を招いている。
記憶領域の割り当てを行っているから起こるので、各プ
ログラムが要求してくる領域のサイズが多種類にわたる
という現象が原因となっている。したがって、解放され
る空き領域のサイズも多種類にわたってしまい(例えば
、第7[1IU(a)のような状態になる)、上述した
ようなメモリの断片化が発生し、これを解消しようとす
ると処理時間が延長されるという結果を招いている。
この発明は、このような事情に鑑みてなされたものであ
って、記憶領域を効率よく割り当てるとともに、割り当
てに要する処理時間を短縮化することができる記憶領域
管理装置を提供することを目的としている。
って、記憶領域を効率よく割り当てるとともに、割り当
てに要する処理時間を短縮化することができる記憶領域
管理装置を提供することを目的としている。
01課題を解決するための手段
この発明は、上記目的を達成するために次のような構成
を備えている。
を備えている。
即ち、この発明は、コンピュータの記憶装置の記憶領域
を使用する複数のプログラム毎に装備される記憶wI域
管理装置であって、前記記憶領域の中から所要の記憶領
域を確保する記憶領域確保手段と、前記プログラムから
要求された記憶領域サイズを所定のサイズに換算し、換
算したサイズで前記確保している記憶領域に対してアク
セスする領域管理手段と、前記換算した領域サイズのノ
ードを作成し、各種サイズのノードを大小順にリンク結
合してなる木構造の領域サイズ情報を作成する領域サイ
ズ情報作成手段と、前記作成された木構造の領域サイズ
情報を格納する領域サイズ記憶部と、前記プログラムに
よって解放された空き領域のアドレスを前記ノード中に
書き込むとともに、空き領域の先頭部分に同しサイズの
空き領域のアドレスを書き込むことによって空き領域を
管理・検索する空き領域管理手段とを備えたことを特徴
としている。
を使用する複数のプログラム毎に装備される記憶wI域
管理装置であって、前記記憶領域の中から所要の記憶領
域を確保する記憶領域確保手段と、前記プログラムから
要求された記憶領域サイズを所定のサイズに換算し、換
算したサイズで前記確保している記憶領域に対してアク
セスする領域管理手段と、前記換算した領域サイズのノ
ードを作成し、各種サイズのノードを大小順にリンク結
合してなる木構造の領域サイズ情報を作成する領域サイ
ズ情報作成手段と、前記作成された木構造の領域サイズ
情報を格納する領域サイズ記憶部と、前記プログラムに
よって解放された空き領域のアドレスを前記ノード中に
書き込むとともに、空き領域の先頭部分に同しサイズの
空き領域のアドレスを書き込むことによって空き領域を
管理・検索する空き領域管理手段とを備えたことを特徴
としている。
E、作用
この発明によれば、記憶領域管理装置を各プログラム毎
に装備しているので、各記憶領域管理装置は1つのプロ
グラムに割り当てられる記憶領域を管理するこ止になる
。1つのプログラムでは、要求する記憶領域のサイズの
種類がある程度限られたものとなり、同しサイズの領域
を繰り返して要求することが多い。したがって、1つの
プログラムの記憶領域を管理する場合、従来のように使
用領域を圧縮して、連続した空き領域を確保するような
手段をとらずに、空き領域をそのまま残しておけば、そ
の空きHMを再割り当て(再刊用)して使うことができ
、メモリの断片化の発生低下や、処理時間の短縮化を図
ることができる。このためにも、要求されたサイズと同
しサイズの空き領域をすばやく探すことが重要となる。
に装備しているので、各記憶領域管理装置は1つのプロ
グラムに割り当てられる記憶領域を管理するこ止になる
。1つのプログラムでは、要求する記憶領域のサイズの
種類がある程度限られたものとなり、同しサイズの領域
を繰り返して要求することが多い。したがって、1つの
プログラムの記憶領域を管理する場合、従来のように使
用領域を圧縮して、連続した空き領域を確保するような
手段をとらずに、空き領域をそのまま残しておけば、そ
の空きHMを再割り当て(再刊用)して使うことができ
、メモリの断片化の発生低下や、処理時間の短縮化を図
ることができる。このためにも、要求されたサイズと同
しサイズの空き領域をすばやく探すことが重要となる。
この発明の記憶領域管理装置は、以下のようにして、そ
れを達成している。
れを達成している。
まず、記憶領域確保手段は記憶装置の中から所要の記憶
領域を確保する。プログラムから記憶領域の割り当て要
求が出されると、領域管理手段は要求されたサイズを所
定のサイズに換算し、換算したサイズの領域を前記確保
した記憶領域からプログラムに割り当てる。一方、領域
サイズ情報作成手段は、割り当てられた領域サイズのノ
ードを作成し、これを領域サイズ記憶部に格納していく
。
領域を確保する。プログラムから記憶領域の割り当て要
求が出されると、領域管理手段は要求されたサイズを所
定のサイズに換算し、換算したサイズの領域を前記確保
した記憶領域からプログラムに割り当てる。一方、領域
サイズ情報作成手段は、割り当てられた領域サイズのノ
ードを作成し、これを領域サイズ記憶部に格納していく
。
これらの動作が、1回の割り当て要求に応じた動作であ
る。以後、割り当て要求が出されるたびに、この動作は
繰り返され、領域サイズ情報作成手段は作成した複数の
ノードを大小順に部分して、各ノードをリンクで結合し
ていく。これにより、木構造の領域サイズ情報が領域サ
イズ記憶部に格納される。
る。以後、割り当て要求が出されるたびに、この動作は
繰り返され、領域サイズ情報作成手段は作成した複数の
ノードを大小順に部分して、各ノードをリンクで結合し
ていく。これにより、木構造の領域サイズ情報が領域サ
イズ記憶部に格納される。
次に、プログラムから割り当て領域を解放するという要
求が出されると、領域管理手段はその領域を空き領域に
する。一方、空き領域管理手段は、前記作成した領域の
サイズのノード中に空き領域のアドレスを書き込んでい
く。これが1回の解放要求に応じた動作であり、解放要
求が出されるたびに繰り返されるが、同じサイズの解放
要求が出されると、空き領域管理手段は、空き領域の先
頭部分に同じサイズの空き領域のアドレスを書き込んで
いく。
求が出されると、領域管理手段はその領域を空き領域に
する。一方、空き領域管理手段は、前記作成した領域の
サイズのノード中に空き領域のアドレスを書き込んでい
く。これが1回の解放要求に応じた動作であり、解放要
求が出されるたびに繰り返されるが、同じサイズの解放
要求が出されると、空き領域管理手段は、空き領域の先
頭部分に同じサイズの空き領域のアドレスを書き込んで
いく。
このようにして、空き領域の管理を行う、そして、割り
当て要求が出されると、その割り当てサイズのノードを
キーワードとして、木構造の管理情報記憶部内を検索し
ていき、ノードに書き込まれているアドレスで、記憶領
域内の空き領域を見つける。見つけた空き領域を領域管
理手段に与えて、プログラムに割り当てる。このとき、
空き領域の先頭部分に同しサイズの空き領域のアドレス
が書き込まれていれば、そのアドレスでノード内のアド
レスを更新する。そうすると、次に同し空き領域を検索
するときに、割り当てて使用領域となった以前の空き領
域を検索することなく、確実に空き領域のみを検索する
ことができる。
当て要求が出されると、その割り当てサイズのノードを
キーワードとして、木構造の管理情報記憶部内を検索し
ていき、ノードに書き込まれているアドレスで、記憶領
域内の空き領域を見つける。見つけた空き領域を領域管
理手段に与えて、プログラムに割り当てる。このとき、
空き領域の先頭部分に同しサイズの空き領域のアドレス
が書き込まれていれば、そのアドレスでノード内のアド
レスを更新する。そうすると、次に同し空き領域を検索
するときに、割り当てて使用領域となった以前の空き領
域を検索することなく、確実に空き領域のみを検索する
ことができる。
以上のように、木構造で空き領域を管理し、空き領域の
先頭部分に次の空き領域のアドレスを書き込むようにし
たので、高速な空き領域の検索が行える。
先頭部分に次の空き領域のアドレスを書き込むようにし
たので、高速な空き領域の検索が行える。
F、実施例
以下、この発明の実施例を図面に基づいて説明する。
まず、第2図を参照して、この発明の記憶領域管理装置
の使用例について説明する。
の使用例について説明する。
図に示すように、複数のプログラムP1〜Pnを並列動
作させる場合、各プログラムP1〜Pnからデータを記
憶装置1内に格納したいという要求が出される。これを
受けて記憶装置1内の記憶領域を割り当てていくのが、
記憶領域管理装置M1〜Mnであり、各プログラムP1
〜Pn毎に設けられている。O8は、直接、記憶装置1
をアクセスするもので、各記憶9■域管理装置M1〜M
nから出された要求に応して記憶装置1の記憶領域を各
記憶領域管理装置M1〜Mnに割り当てていく。
作させる場合、各プログラムP1〜Pnからデータを記
憶装置1内に格納したいという要求が出される。これを
受けて記憶装置1内の記憶領域を割り当てていくのが、
記憶領域管理装置M1〜Mnであり、各プログラムP1
〜Pn毎に設けられている。O8は、直接、記憶装置1
をアクセスするもので、各記憶9■域管理装置M1〜M
nから出された要求に応して記憶装置1の記憶領域を各
記憶領域管理装置M1〜Mnに割り当てていく。
次に、第1図を参照して記憶領域管理装置の構成につい
て説明する。
て説明する。
図中、符号2はO8に対して要求を出し、所要のサイズ
の記憶領域を確保しておく記憶領域確保部、3はプログ
ラムから要求された領域サイズに応じて、確保している
記憶領域をプログラムに割り当てたり、解放したりする
領域管理部、4は木構造の領域サイズ情報を作成する領
域サイズ作成部、5は作成された領域サイズ情報を格納
する領域サイズ記憶部、6はプログラムが解放した空き
領域のアドレスを領域サイズ情報中に書き込んだり、空
き領域の一部分に書き込んだりして空き領域を管理する
とともに、空き領域の検索を行う空き領域管理部である
。
の記憶領域を確保しておく記憶領域確保部、3はプログ
ラムから要求された領域サイズに応じて、確保している
記憶領域をプログラムに割り当てたり、解放したりする
領域管理部、4は木構造の領域サイズ情報を作成する領
域サイズ作成部、5は作成された領域サイズ情報を格納
する領域サイズ記憶部、6はプログラムが解放した空き
領域のアドレスを領域サイズ情報中に書き込んだり、空
き領域の一部分に書き込んだりして空き領域を管理する
とともに、空き領域の検索を行う空き領域管理部である
。
ここで、記憶領域確保部2が、O3を介し、記憶装置1
から所要サイズよして、記1′!領域へのサイズを確保
したとして、この記憶領域Aをプログラムの要求に応し
て割りつける動作を第3図のフローチャートを基に説明
する。また、以下では、一方的に割りつけるだけで、ま
だプログラムからの領域解放がなされていないとしてお
く。
から所要サイズよして、記1′!領域へのサイズを確保
したとして、この記憶領域Aをプログラムの要求に応し
て割りつける動作を第3図のフローチャートを基に説明
する。また、以下では、一方的に割りつけるだけで、ま
だプログラムからの領域解放がなされていないとしてお
く。
ステップS1で、プログラムから要求される記憶領域の
サイズを入力する。
サイズを入力する。
ステップS2で、入力したサイズを所定のサイズに換算
する。この換算したサイズが実際にプログラムに割り当
てられるサイズとなる。
する。この換算したサイズが実際にプログラムに割り当
てられるサイズとなる。
所定サイズは、予め設定した最小単位のサイズを整数倍
にし、入力したサイズよりも大きく、かつ、その中で最
も小さなサイズを規定するものである。
にし、入力したサイズよりも大きく、かつ、その中で最
も小さなサイズを規定するものである。
例えば、最小単位のサイズを8バイトとし、入力したサ
イズを30バイトとすると、8の倍数で30よりも大き
く、最も30に近い値を算出する。ここでは、32が算
出され、32バイトのサイズの記憶領域がプログラムに
割り当てられる領域となる。
イズを30バイトとすると、8の倍数で30よりも大き
く、最も30に近い値を算出する。ここでは、32が算
出され、32バイトのサイズの記憶領域がプログラムに
割り当てられる領域となる。
このように、予め設定したサイズの整数倍の領域サイズ
で管理を行う。
で管理を行う。
ステップS3で、領域サイズ情報作成部4は、換算した
領域サイズの情報を領域管理部2から受は取り、そのサ
イズをキーワードとして情報記憶部5内を検索する。
領域サイズの情報を領域管理部2から受は取り、そのサ
イズをキーワードとして情報記憶部5内を検索する。
ステップS4で、その領域サイズのノードがあるかどう
かの判断を行う。この要求が1回目の要求であるとし、
その領域サイズのノードがまだ、領域サイズ情報記憶部
5内にはないとして、ステップS5に進む。
かの判断を行う。この要求が1回目の要求であるとし、
その領域サイズのノードがまだ、領域サイズ情報記憶部
5内にはないとして、ステップS5に進む。
ステップS5で、そのサイズのノードを作成し、木構造
化していく。この木構造化については後述する。
化していく。この木構造化については後述する。
このノードは、木構造の節点となるもので、4つの情報
を格納する1つのメモリ単位である。概念的に表すと第
4図(a)のような4分割された1つの「箱」になる。
を格納する1つのメモリ単位である。概念的に表すと第
4図(a)のような4分割された1つの「箱」になる。
ステップS9で、記憶領域Aの未使用領域中に割り当て
領域のサイズ(32ハイド)の確保を試みる。
領域のサイズ(32ハイド)の確保を試みる。
ステップ510で、確保できるかどうかを判断する。つ
まり、未使用領域が32バイト以上あるかどうかを判断
する。ここでは、まだ、記憶領域A全体が未使用領域な
ので、確保することができると判断されて、ステップS
llに進む。
まり、未使用領域が32バイト以上あるかどうかを判断
する。ここでは、まだ、記憶領域A全体が未使用領域な
ので、確保することができると判断されて、ステップS
llに進む。
ステップSllで、未使用領域の先頭から割り当て領域
(32バイト)を確保し、その先頭アドレスA1をプロ
グラムに送出する(第4図(b)参照)。
(32バイト)を確保し、その先頭アドレスA1をプロ
グラムに送出する(第4図(b)参照)。
このとき、割り当て領域の先頭部分にはヘッダ情報部H
が付加される。このヘッダ情報部Hには、後述するポイ
ンタ(空き領域のアドレス)が書き込まれる。
が付加される。このヘッダ情報部Hには、後述するポイ
ンタ(空き領域のアドレス)が書き込まれる。
領域が割り当てられたプログラムは、そのアドレスA1
にデータを格納する。
にデータを格納する。
その後、プログラムから要求が出されるたびに、上記一
連の処理を繰り返して、プログラムに領域を割り当てて
いくとともに、その領域サイズのノードを作成して、領
域サイズ情報記憶部5に格納していく。
連の処理を繰り返して、プログラムに領域を割り当てて
いくとともに、その領域サイズのノードを作成して、領
域サイズ情報記憶部5に格納していく。
そして、第5図山)に示すように記憶領域Aが各サイズ
で割り当てられ、同図(a)に示すようにそのサイズの
ノードが作成されて木構造化されたとする。この木構造
化について説明する。この図で、各サイズのノードの右
側には大きなサイズのノドをリンク結合し、左側には小
さなサイズのノードをリンク結合しているが、これは、
ステップS5でノードを作成するときに、前回作成した
ものよりも大きなサイズのノードを作成すると、前回の
ノードの右下のボックスに、大きなサイズのノードのア
ドレスを、左下のボックスに小さなサイズのノードのア
ドレスを書き込んでいく。このアドレスの書き込みによ
って各ノードがリンクで結合された状態となり、木構造
化していく。この木構造の一番上に示しているのは、ル
ー)R(根)と呼ばれるもので、このルートRには、最
も上位にあるノードのアドレスが書き込まれている。
で割り当てられ、同図(a)に示すようにそのサイズの
ノードが作成されて木構造化されたとする。この木構造
化について説明する。この図で、各サイズのノードの右
側には大きなサイズのノドをリンク結合し、左側には小
さなサイズのノードをリンク結合しているが、これは、
ステップS5でノードを作成するときに、前回作成した
ものよりも大きなサイズのノードを作成すると、前回の
ノードの右下のボックスに、大きなサイズのノードのア
ドレスを、左下のボックスに小さなサイズのノードのア
ドレスを書き込んでいく。このアドレスの書き込みによ
って各ノードがリンクで結合された状態となり、木構造
化していく。この木構造の一番上に示しているのは、ル
ー)R(根)と呼ばれるもので、このルートRには、最
も上位にあるノードのアドレスが書き込まれている。
また、各ノーどの右上のボックスには、nという文字が
記入されているが、これは「null」の略で、このボ
ックスには何も入っていないことを示している。実は、
このボックスの中には、空き領域のアドレスが書き込ま
れる。
記入されているが、これは「null」の略で、このボ
ックスには何も入っていないことを示している。実は、
このボックスの中には、空き領域のアドレスが書き込ま
れる。
次に、プログラムから解放要求が出されたとき、つまり
、空き領域が発生した場合の空き領域管理部6の動作に
ついて、第5図のフローチャートを基に説明する。
、空き領域が発生した場合の空き領域管理部6の動作に
ついて、第5図のフローチャートを基に説明する。
ステップT1で、返還された領域(空き領域)のサイズ
とアドレスを入力する。
とアドレスを入力する。
ステップT2で、入力したサイズをキーワードにして領
域サイズ情報記憶部5内を検索し、そのサイズのノード
を見つける(−度、割り当てた領域が返還されたので、
そのサイズのノードは割り当て時に作成されており、必
ず見つかる)。
域サイズ情報記憶部5内を検索し、そのサイズのノード
を見つける(−度、割り当てた領域が返還されたので、
そのサイズのノードは割り当て時に作成されており、必
ず見つかる)。
ステップT3で、そのノードの右上のボックス内の情報
を読み込む。
を読み込む。
ステップT4で、情報がrnulJであるがどうかを判
断し、’null」であった場合にはステップT5に進
んで、返還された領域のアドレスをボックスに書き込み
、それ以外の情報(アドレス)であればステップT6に
進む。
断し、’null」であった場合にはステップT5に進
んで、返還された領域のアドレスをボックスに書き込み
、それ以外の情報(アドレス)であればステップT6に
進む。
ステップT6で、ボックス内に入っていたアドレトを、
ステップT1で入力したアドレスで書き換えるとともに
、ボックス内に入っていたアドレスを返還された領域の
ヘッダ情報に書き込む。
ステップT1で入力したアドレスで書き換えるとともに
、ボックス内に入っていたアドレスを返還された領域の
ヘッダ情報に書き込む。
以上の処理を、第5図を例にして説明すると、プログラ
ムからアドレスA2.サイズ64ハイドの領域が返還さ
れると、ステップT4がらステップT5に進んで、同図
(a)の64ノードの右上のボックスにA2を書き込む
。
ムからアドレスA2.サイズ64ハイドの領域が返還さ
れると、ステップT4がらステップT5に進んで、同図
(a)の64ノードの右上のボックスにA2を書き込む
。
次に、アドレスA4.サイズ64バイトの領域が返還さ
れた場合、64ノードの右上のボックスには、アドレス
A2が書き込まれているので、ステップT4からステッ
プT6に進んで、64ノードのボックスをアドレスA4
で更新し、アドレスA4のヘッダ情報部Hにはアドレス
A2を書き込む。
れた場合、64ノードの右上のボックスには、アドレス
A2が書き込まれているので、ステップT4からステッ
プT6に進んで、64ノードのボックスをアドレスA4
で更新し、アドレスA4のヘッダ情報部Hにはアドレス
A2を書き込む。
このように、64ハイドの空き領域を連鎖リストで結合
する(順にポインタで結んでいく)ことによって、同し
サイズの空き領域が複数個存在しても、高速番こ検索で
きるような管理体制がつくられる。
する(順にポインタで結んでいく)ことによって、同し
サイズの空き領域が複数個存在しても、高速番こ検索で
きるような管理体制がつくられる。
この状態のもとで、プログラムから記憶領域の要求が出
された場合の割り当て動作(空き領域の再利用)につい
て第3図のフローチャートを基に説明する。例えば、プ
ログラムから62ハイドの領域サイズの要求が出される
と、 ステップS2で、64ハイド番こ換算され、ステップS
4で64ハイドのノードがあると判断されて、ステップ
S6に進む。
された場合の割り当て動作(空き領域の再利用)につい
て第3図のフローチャートを基に説明する。例えば、プ
ログラムから62ハイドの領域サイズの要求が出される
と、 ステップS2で、64ハイド番こ換算され、ステップS
4で64ハイドのノードがあると判断されて、ステップ
S6に進む。
ステップS6で、ノードが指す空き領域を調べる。つま
り、64ノードの右上のボックス内の情報を読み込む。
り、64ノードの右上のボックス内の情報を読み込む。
ステップS7で、空きHMがあるかどうか、つまり、読
み込んだ情報が’null Jであるか、アドレスナン
バーであるかを判断する。’null」の場合は空き領
域がない状態なので、ステップS9に進み、前述と同じ
処理を繰り返す。アドレスが書き込まれていれば、ステ
ップS8に進む。
み込んだ情報が’null Jであるか、アドレスナン
バーであるかを判断する。’null」の場合は空き領
域がない状態なので、ステップS9に進み、前述と同じ
処理を繰り返す。アドレスが書き込まれていれば、ステ
ップS8に進む。
ステップS8で、ボックス内のアドレス情報を領域管理
部3に送り、プログラムにそのアドレスで始まる64ハ
イドの領域を割り当てる。
部3に送り、プログラムにそのアドレスで始まる64ハ
イドの領域を割り当てる。
そして、割り当てた領域のヘッダ情報に書き込まれてい
るポインタで、ボックス内のアドレス情報を更新する。
るポインタで、ボックス内のアドレス情報を更新する。
割り当てた領域のヘッダ情報には、「nυIIJを書き
込む。
込む。
このステップS8の処理を第5図を例にして説明すると
、 64ノードのボックスにはアドレスA4が書き込まれて
いるので(前述の空き領域処理の続き)、アドレスA4
で始まる空き領域をプログラムに割り当てる。そして、
アドレスA4で始まる空き領域のヘッダ情報に書き込ま
れているアドレスA2を64ノードのボックスに書き込
み、そのヘッダ情報には’null Jを書き込む。
、 64ノードのボックスにはアドレスA4が書き込まれて
いるので(前述の空き領域処理の続き)、アドレスA4
で始まる空き領域をプログラムに割り当てる。そして、
アドレスA4で始まる空き領域のヘッダ情報に書き込ま
れているアドレスA2を64ノードのボックスに書き込
み、そのヘッダ情報には’null Jを書き込む。
これにより、次に64ハイドの要求がきた場合には、ア
ドレスA2で始まる空き領域を検索することができる。
ドレスA2で始まる空き領域を検索することができる。
このようにして、空き領域の再割り当てが行われるので
、従来のように圧縮処理を行うことがなく、割り当て処
理時間の短縮化が図れる。
、従来のように圧縮処理を行うことがなく、割り当て処
理時間の短縮化が図れる。
最後に、再割り当てができない場合、つまり空き領域が
ない状態で要求が出されたときで、かつ、未使用領域(
第5図(b)のX領域)からも要求サイズの領域を確保
することができなかった場合の処理(第3図のフローチ
ャートのステップS12〜14)について説明する。
ない状態で要求が出されたときで、かつ、未使用領域(
第5図(b)のX領域)からも要求サイズの領域を確保
することができなかった場合の処理(第3図のフローチ
ャートのステップS12〜14)について説明する。
要求されたサイズの空き領域がないと判断される(ステ
ップS7)と、ステップS9以鋒の処理に進むが、ステ
ップSIOで未使用領域Xから要求されたサイズを確保
することができないと判断されると、ステップS12に
進む。
ップS7)と、ステップS9以鋒の処理に進むが、ステ
ップSIOで未使用領域Xから要求されたサイズを確保
することができないと判断されると、ステップS12に
進む。
ステップS12で、現在の未使用領域χがあるかどうか
の判断を行う。すなわち、要求されたサイズの領域ばな
いにしろ、未使用領域Xが残っているかどうかの判断を
行う。残っていなければ、ステップS14に進んで、O
8から新たな所要領域Aを確保する(記憶領域確保部2
)。まだ、未使用領域が残っていれば、ステップS13
に進む。
の判断を行う。すなわち、要求されたサイズの領域ばな
いにしろ、未使用領域Xが残っているかどうかの判断を
行う。残っていなければ、ステップS14に進んで、O
8から新たな所要領域Aを確保する(記憶領域確保部2
)。まだ、未使用領域が残っていれば、ステップS13
に進む。
ステップS13で、残っている未使用領域Xを分割し、
後ムこ出された要求サイズが、その分割したサイズに適
合するならば、その分割したサイズの領域を割り当てに
使うようにする。
後ムこ出された要求サイズが、その分割したサイズに適
合するならば、その分割したサイズの領域を割り当てに
使うようにする。
この分割は、領域サイズ情報記憶部5内の木構造を検索
し、ルートRに一番近いノードのサイズから小さなサイ
ズを取り出し、取り出したサイズで分割するようにすれ
ばよい。すなわち、第5図(a)の例では、最初(未使
用領域Xの先頭)から32ハイドで分割できるだけ分割
し、次に16バイトで分割し、さらに8バイトで分割す
る。この分割された様子を第5図(C)に示す。
し、ルートRに一番近いノードのサイズから小さなサイ
ズを取り出し、取り出したサイズで分割するようにすれ
ばよい。すなわち、第5図(a)の例では、最初(未使
用領域Xの先頭)から32ハイドで分割できるだけ分割
し、次に16バイトで分割し、さらに8バイトで分割す
る。この分割された様子を第5図(C)に示す。
このようにして、余った未使用領域Xを分割し使えるよ
うにすることで、記憶領域Aの無駄を少しでもなくすよ
うにしている。
うにすることで、記憶領域Aの無駄を少しでもなくすよ
うにしている。
C1発明の効果
以上の説明から明らかなように、この発明に係る記憶領
域管理装置は、コンピュータの記憶装置の記憶領域を使
用する複数のプログラム個々に備えられているので、各
プログラムの出力データサイズに合わせた記憶管理が可
能になる。
域管理装置は、コンピュータの記憶装置の記憶領域を使
用する複数のプログラム個々に備えられているので、各
プログラムの出力データサイズに合わせた記憶管理が可
能になる。
したがって、複数のプログラムの要求に応していた従来
に比べ、記憶領域の割り当て領域サイズが多種類に及ぶ
ことがない。言い換えると多種類にわたる空き領域が存
在しないため、メモリの断片化がおきることが少なく、
圧縮処理をせずに空き領域を再利用することができるの
で、効率のよい記憶領域の割り当ておよび割り当て時間
の短縮化を図ることができる。
に比べ、記憶領域の割り当て領域サイズが多種類に及ぶ
ことがない。言い換えると多種類にわたる空き領域が存
在しないため、メモリの断片化がおきることが少なく、
圧縮処理をせずに空き領域を再利用することができるの
で、効率のよい記憶領域の割り当ておよび割り当て時間
の短縮化を図ることができる。
また、記憶領域サイズを木構造の管理情報で管理し、そ
の管理情報および記憶領域の一部に空き領域のアドレス
を付加したので、高速に空き領域を検索することができ
、割り当てに要する時間を大幅に短縮化することができ
る。
の管理情報および記憶領域の一部に空き領域のアドレス
を付加したので、高速に空き領域を検索することができ
、割り当てに要する時間を大幅に短縮化することができ
る。
第1図ないし第6図は、この発明の一実施例に係り、第
1図は記憶領域管理装置の使用例を説明する図、第2図
は記憶領域管理装置の概略構成を示したブロンク図、第
3図は割り当て動作を説明するフローチャート、第4図
はノードと記憶領域との関係を説明する図、第5図は完
成したノートと記憶領域との関係を説明する図、第6図
は空き領域が発生したときの管理動作を説明するフロー
チャートである。 また、第7図は従来の記憶領域の割り当てを説明する図
である。 1・・・記憶装置 2・・・記憶領域確保部3・・
・領域管理部 4・・・領域サイズ情報作成部5・・
・領域サイズ情報記憶部 6・・・空き領域管理部 A・・・記憶領域 M1〜Mn・・・記憶領域管理装置 特許出願人 株式会社 島津製作所
1図は記憶領域管理装置の使用例を説明する図、第2図
は記憶領域管理装置の概略構成を示したブロンク図、第
3図は割り当て動作を説明するフローチャート、第4図
はノードと記憶領域との関係を説明する図、第5図は完
成したノートと記憶領域との関係を説明する図、第6図
は空き領域が発生したときの管理動作を説明するフロー
チャートである。 また、第7図は従来の記憶領域の割り当てを説明する図
である。 1・・・記憶装置 2・・・記憶領域確保部3・・
・領域管理部 4・・・領域サイズ情報作成部5・・
・領域サイズ情報記憶部 6・・・空き領域管理部 A・・・記憶領域 M1〜Mn・・・記憶領域管理装置 特許出願人 株式会社 島津製作所
Claims (1)
- (1)コンピュータの記憶装置の記憶領域を使用する複
数のプログラム毎に装備される記憶領域管理装置であっ
て、前記記憶領域の中から所要の記憶領域を確保する記
憶領域確保手段と、前記プログラムから要求された記憶
領域サイズを所定のサイズに換算し、換算したサイズで
前記確保している記憶領域に対してアクセスする領域管
理手段と、前記換算した領域サイズのノードを作成し、
各種サイズのノードを大小順にリンク結合してなる木構
造の領域サイズ情報を作成する領域サイズ情報作成手段
と、前記作成された木構造の領域サイズ情報を格納する
領域サイズ記憶部と、前記プログラムによって解放され
た空き領域のアドレスを前記ノード中に書き込むととも
に、空き領域の先頭部分に同じサイズの空き領域のアド
レスを書き込むことによって空き領域を管理・検索する
空き領域管理手段とを備えたことを特徴とする記憶領域
管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20040890A JPH0484346A (ja) | 1990-07-27 | 1990-07-27 | 記憶領域管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20040890A JPH0484346A (ja) | 1990-07-27 | 1990-07-27 | 記憶領域管理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0484346A true JPH0484346A (ja) | 1992-03-17 |
Family
ID=16423822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20040890A Pending JPH0484346A (ja) | 1990-07-27 | 1990-07-27 | 記憶領域管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0484346A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008045220A (ja) * | 2007-10-29 | 2008-02-28 | Jfe Steel Kk | 精錬炉内の地金付着制御操業方法 |
WO2013014705A1 (ja) * | 2011-07-26 | 2013-01-31 | 三菱電機株式会社 | 動的メモリ管理装置及び動的メモリ管理方法 |
-
1990
- 1990-07-27 JP JP20040890A patent/JPH0484346A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008045220A (ja) * | 2007-10-29 | 2008-02-28 | Jfe Steel Kk | 精錬炉内の地金付着制御操業方法 |
WO2013014705A1 (ja) * | 2011-07-26 | 2013-01-31 | 三菱電機株式会社 | 動的メモリ管理装置及び動的メモリ管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5826262A (en) | Parallel bottom-up construction of radix trees | |
CA2436517C (en) | Method and apparatus for data processing | |
JP4659888B2 (ja) | データベース処理システム、計算機及びデータベース処理方法 | |
JP4323637B2 (ja) | メモリアロケーション方法及びメモリアロケーション装置並びに記憶媒体 | |
JPS6310250A (ja) | 仮想論理ボリユ−ム管理方式 | |
US10649967B2 (en) | Memory object pool use in a distributed index and query system | |
CN111984729A (zh) | 异构数据库数据同步方法、装置、介质和电子设备 | |
US6629114B2 (en) | Method, system, and computer program product for managing a re-usable resource | |
WO2024078122A1 (zh) | 数据库表扫描的方法、装置以及设备 | |
JPH0484346A (ja) | 記憶領域管理装置 | |
CN110209489B (zh) | 一种适用于内存页结构的内存管理方法及装置 | |
JP5377001B2 (ja) | メモリ管理システム、電子機器及びメモリ管理プログラム | |
JPH0271342A (ja) | メモリ管理装置 | |
JP2994138B2 (ja) | 対話処理システムにおけるカタログの変数管理方法 | |
JP4204405B2 (ja) | メモリ管理方式 | |
JPS5835656A (ja) | セル管理制御方式 | |
JP2720775B2 (ja) | ファイル並行処理装置 | |
US20020124164A1 (en) | Method for starting computer system | |
JP2874810B2 (ja) | キーの記憶割り当て方法 | |
JPH08249225A (ja) | メモリ管理装置 | |
JPH05241936A (ja) | ガーベッジコレクション処理方式及びその記憶装置 | |
JP2615046B2 (ja) | レコード追加処理方法 | |
CN113656328A (zh) | 一种快速修改多重命名空间的方法 | |
JPS63192126A (ja) | デ−タセツトのスペ−ス管理処理方式 | |
JPH06208502A (ja) | メモリ管理方法 |