JPH1049433A - メモリ管理方式 - Google Patents

メモリ管理方式

Info

Publication number
JPH1049433A
JPH1049433A JP19933596A JP19933596A JPH1049433A JP H1049433 A JPH1049433 A JP H1049433A JP 19933596 A JP19933596 A JP 19933596A JP 19933596 A JP19933596 A JP 19933596A JP H1049433 A JPH1049433 A JP H1049433A
Authority
JP
Japan
Prior art keywords
area
free area
memory
address
free
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
JP19933596A
Other languages
English (en)
Inventor
Masato Moriya
真人 守屋
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 Solution Innovators Ltd
Original Assignee
NEC Solution Innovators 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 NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP19933596A priority Critical patent/JPH1049433A/ja
Publication of JPH1049433A publication Critical patent/JPH1049433A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】メモリ管理エリアの管理対象を未使用エリアの
みならず使用エリアも管理の対象とすることにより、分
割損の少ない、かつ、使用エリアの大小に関係なく自由
にエリアを割り当てできるメモリ管理方式の提供。 【解決手段】メモリ200を構成する各エリアは、その
サイズ303とエンドアドレス302と次空きエリアア
ドレス301とを含むメモリ管理エリア300を含み、
メモリ割当部102はメモリエリア要求に対応し各空き
エリアの先頭アドレスを生成順に格納する空きエリアキ
ュー101とサイズ303とを参照してエリアを割り当
て、メモリ解放部103はエリア解放要求に対応するエ
リアを空きエリアとし空きエリアキュー101にその先
頭アドレスを格納する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はメモリ管理方式に関
し、特に分割損失の少ないメモリ管理方式に関する。
【0002】
【従来の技術】従来のメモリ管理方式は、メモリを固定
長に細分化し、そのブロック単位に使用中、あるいは未
使用中であることを管理する方式となっている。
【0003】したがって、小さなサイズのエリアが必要
な場合でも、予め定められたサイズのエリアが割り当て
られる。このため、分割損失が発生するという問題点が
ある。
【0004】そこで、この問題点を解決する技術とし
て、特開平2−289012号公報記載の技術が開示さ
れている。
【0005】この技術は、図8に示すように、メモリの
エリア全体のアドレスと動的に変化する先頭未使用エリ
アのアドレスとを制御表で管理し、メモリ内の各未使用
エリアにそのエリアのサイズと次未使用エリアのアドレ
スとを示すメモリ管理エリアとを設けることにより分割
損失の発生することを防止している。
【0006】
【発明が解決しようとする課題】上述した従来の特開平
2−289012号公報記載のメモリ管理方式は、図8
に示すように、未使用エリアについてはメモリ管理エリ
アを設けているが、使用エリアについてはメモリ管理エ
リアを有していないため、メモリ管理エリアより小さな
エリアを使用し、その後これを解放しこのエリアを未使
用エリアとして管理しようとした場合に、そのためのメ
モリ管理エリアを設けることができないという欠点があ
る。すなわち、メモリ管理エリアより小さなエリアの使
用に際してのエリア割り当てはできないという問題点が
ある。
【0007】本発明の目的は、メモリ管理エリアの管理
対象を未使用エリアのみならず使用エリアも管理の対象
とすることにより、分割損の少ない、かつ、使用エリア
の大小に関係なく自由にエリアを割り当てできるメモリ
管理方式を提供することにある。
【0008】
【課題を解決するための手段】第1の発明のメモリ管理
方式は、1つ以上のエリアから構成されるメモリと、前
記エリアはそのサイズとエンドアドレスとそのエリアが
空きエリアである場合に直後に生成された空きエリアの
先頭アドレスである次空きエリアアドレスとを含む管理
データを格納するメモリ管理エリアを含み、前記メモリ
の空きエリアの生成順に前記空きエリアのそれぞれの先
頭アドレスを格納する空きエリアキューと、外部からの
メモリエリア要求に対応する空きエリアを前記空きエリ
アキューと前記管理データ中のサイズとを参照して検索
し前記対応する空きエリアを前記要求に応ずる使用中エ
リアと空きエリアとに分割しそれぞれのメモリ管理エリ
アを更新および作成し分割前の空きエリアの先頭アドレ
スを前記空きエリアキューから除去し分割後のこの新た
な空きエリアの先頭アドレスを前記空きエリアキューに
格納して後の空きエリアキューの順に各空きエリアの次
空きエリアアドレスを更新するメモリ割当手段と、外部
からのメモリエリア解放要求に対応するエリアを空きエ
リアとしこの新たな空きエリアの先頭アドレスを前記空
きエリアキューに格納し直前の空きエリアの次空きエリ
アアドレスにこれを書き込むメモリ解放手段とを含んで
構成されている。
【0009】第2の発明のメモリ管理方式は、第1の発
明のメモリ管理方式において、メモリ解放手段はメモリ
エリア解放要求に対応するエリアを空きエリアとしたと
きに前記メモリ上でこの解放された空きエリアに隣接す
る空きエリアがあるときにはこの隣接空きエリアを結合
してサイズの大なる空きエリアを生成することを特徴と
している。
【0010】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。
【0011】図1は本発明のメモリ管理方式の一実施の
形態を示すブロック図である。
【0012】本発明においては、使用中のメモリエリア
も使用されていない空きメモリエリアもともに管理対象
としている。その管理のために図1のメモリ200内に
示すように各使用中エリアと各空きエリアのそれぞれの
先頭に管理データを格納するメモリ管理エリア300を
付加する。
【0013】管理データはそれに後続するそれぞれのエ
リアのサイズ(管理データを含まない)を示すエリアサ
イズ303と、そのエリアの最終アドレスを示すエリア
エンドアドレス302と、このエリアが空きエリアであ
った場合にこの空きエリアの直後に生成された空きエリ
ア(これを次空きエリアと以後称する)の先頭アドレス
(管理データを含むエリアの)を示す次空きエリアアド
レス301とから構成されている。次空きエリアアドレ
ス301の値は空きエリアに付加されているメモリ管理
エリア300の場合のみ有意であり、使用中エリアに付
加されているメモリ管理エリア300の場合には有意で
はない。
【0014】本実施の形態のメモリ管理方式は、図1に
示すように、使用中エリア、空きエリアのそれぞれに共
にメモリ管理エリア300を伴なっているメモリ200
と、空きエリアの次空きエリアアドレス301のメモリ
200における格納位置を示す格納アドレスを空きエリ
アの生成順に格納する空きエリアキュー101と、アプ
リケーションによるメモリ獲得要求に応じて目的のサイ
ズのメモリを検索し割り当てて空きエリアキュー101
の更新および所要のメモリ管理エリア300を作成およ
び更新をするメモリ割当部102と、アプリケーション
によるメモリ解放要求により使用中のメモリエリアを解
放し空きエリアとして管理対象とし空きエリアキュー1
01および必要に応じて所要のメモリ管理エリア300
を更新するメモリ解放部103とを含んで構成されてい
る。
【0015】次に、本実施の形態のメモリ管理方式の動
作について説明する。
【0016】図2はメモリ割当部102の動作を示す流
れ図である。図2を参照してメモリ割当部102の動作
を説明する。
【0017】アプリケーションからのメモリ獲得要求を
メモリ割当部102が受けると、メモリ割当部102は
空きエリアキュー101から最初にアクセスする空きエ
リアの先頭アドレスを知りこれにより対応する空きエリ
アを検索し(ステップ21)、次いで、その空きエリア
のエリアサイズ303の値と(要求サイズ+メモリ管理
エリア300のサイズ)とを比較し(ステップ22)、
空きエリアのエリアサイズ303の値が(要求サイズ+
メモリ管理エリア300のサイズ)以下のときには(ス
テップ22のNO枝)、その空きエリアを割り当てるに
は不適であるので、メモリ割当部102は空きエリアキ
ュー101に格納されている順に空きエリアを検索しそ
のサイズをチェックする(ステップ21、ステップ22
のN枝のループ)。
【0018】ステップ22のチェックで、空きエリアの
エリアサイズ303の値が(要求サイズ+メモリ管理エ
リア300のサイズ)より大きいときには(ステップ2
2のYES枝)、その空きエリアは要求を満足すること
ができるので、次いで割り当て処理に入る。
【0019】先ず、獲得した空きエリアを使用中エリア
と新たな空きエリアとに分割する(ステップ23)。
【0020】そのため、獲得した空きエリアに先ず要求
されたサイズのエリアを割り当てて使用中エリアを作成
し、今までは空きエリアのメモリ管理エリア300であ
ったのを使用中エリアのメモリ管理エリア300に更新
する(そのエリアエンドアドレス302とエリアサイズ
303とを要求サイズに応じて更新する、この場合次空
きエリアアドレス301は無効データとなる)。残のエ
リアは新たな空きエリアを構成することとなるので、こ
れを管理する新たなメモリ管理エリア300をその中に
作成する。
【0021】以上の処理で従来存在した空きエリアが消
滅して、新たな空きエリアが生成されたので、これに対
応して空きエリアキュー101を更新する(ステップ2
4)。
【0022】すなわち、従来存在した空きエリアの次空
きエリアアドレス301の格納アドレスを空きエリアキ
ュー101からはずし、新たに生成された空きエリアの
次空きエリアアドレス301の格納アドレスを空きエリ
アキュー101の最後に格納して後に、空きエリアキュ
ー101に格納されている順にチェーニングできるよう
に、各空きエリアの次空きエリアアドレス301の値を
更新する。すなわち、各空きエリアの次空きエリアアド
レス301に、空きエリアキュー101で、それに続く
空きエリアの次空きエリアアドレス301の格納アドレ
スを格納する。
【0023】図3はメモリ解放部103の動作を示す流
れ図である。図3を参照してメモリ解放部103の動作
を説明する。
【0024】アプリケーションからメモリ解放の要求を
メモリ解放部103が受けると、メモリ解放部103は
今まで使用されていた使用中エリアを解放して(ステッ
プ31)空きエリアにする。これは新たな空きエリアの
発生であり、このような場合にメモリ割当部102が行
なった動作と同様の動作をメモリ解放部103は行な
う。
【0025】すなわち、新たに生成された空きエリアの
次空きエリアアドレス301の格納アドレスを空きエリ
アキュー101の最後に格納して後に、空きエリアキュ
ー101に格納されている順にチェーニングできるよう
に、各空きエリアの次空きエリアアドレス301の値を
更新する。すなわち、この場合は新たな空きエリアの直
前の空きエリアの次空きエリアアドレス301の値に新
たな空きエリアの次空きエリアアドレス301の格納ア
ドレスを格納するだけでよい(ステップ35)。
【0026】このようにすると、相隣るエリアがともに
空きエリアとなる場合が生ずるので、これらの空きエリ
アを結合してエリアの大きい空きエリアとすれば、一層
空きエリアの効用が大となるので、図3のステップ32
に示すように、解放エリアの前後に空きエリアがあるか
どうかをチェックし(ステップ32)、空きエリアが存
在した場合には(ステップ32のYES枝)、メモリ解
放部103はこれの結合処理を行なうこととする(ステ
ップ33および34)。
【0027】相隣る空きエリアが存在するか否かは、各
空きエリアの(エリアエンドアドレス302の値+1)
のいずれかと解放された空きエリアの次空きエリアアド
レス301の格納アドレスとが同じであれば直前に空き
エリアが存在し、解放された空きエリアのエリアエンド
アドレス302と各空きエリアの(次空きエリアアドレ
ス301の値−1)のいずれかとが同じであれば直後に
空きエリアが存在することが判定できる。以上のチェッ
クで直前および直後の両方に存在する場合も生ずる。
(ステップ32)。
【0028】次に、メモリ解放部103の結合処理につ
いて説明する。
【0029】互いに隣接して結合する1つ以上の空きエ
リアがあった場合にはそれらの中で先行する空きエリア
(エリアエンドアドレス302の値の一番小さい空きエ
リア)のメモリ管理エリア300のエリアエンドアドレ
ス302とエリアサイズ303とを結合結果の新たな空
きエリアの値に更新し、他のエリアのメモリ管理エリア
300は消滅させて空きエリアの一部として使用する
(ステップ33)。
【0030】以上の処理で従来存在した空きエリアを結
合して新たな空きエリアが生成されたので、これに対応
して空きエリアキュー101を更新する(ステップ3
4)。
【0031】この処理は従来存在した結合された空きエ
リアは消滅して新たな空きエリアが生成したと考えて処
理を行なう。
【0032】すなわち、従来存在した空きエリアの次空
きエリアアドレス301の格納アドレスを空きエリアキ
ュー101からはずし、新たに生成された空きエリアの
次空きエリアアドレス301の格納アドレスを空きエリ
アキュー101の最後に格納して後に、空きエリアキュ
ー101に格納されている順にチェーニングできるよう
に、各空きエリアの次空きエリアアドレス301の値を
更新する。すなわち、各空きエリアの次空きエリアアド
レス301に空きエリアキュー101でそれに続く空き
エリアの次空きエリアアドレス301の格納アドレスを
格納する。
【0033】次に、本発明の実施例について図面を参照
して説明する。
【0034】図4はメモリの初期状態を示すデータ格納
図、図5は図4の状態にAバイトのメモリを割りつけた
状態を示すデータ格納図、図6は図5にさらにBバイト
のメモリを割り付けた状態を示すデータ格納図、図7は
図6よりAバイトのメモリを解放した状態を示すデータ
格納図である。
【0035】次に、本実施例の動作について、図4、
5、6および7を参照して説明する。
【0036】図4を参照すると、メモリは初期状態なの
で、全体で一つの空きエリアのブロックとして存在し、
空きエリアキューはメモリ管理エリアα内の次空きエリ
アアドレスの格納位置を指している。
【0037】図5を参照すると、図4の状態からアプリ
ケーションからのAバイトのメモリ獲得要求を受けて、
空きエリアキューを参照して空きエリアを指すメモリ管
理エリアαのアドレスを取得し、メモリ管理エリアαの
エリアサイズを取得し、メモリ割り付け可能かどうかを
判断する。メモリ割り付け可能ならば、要求サイズを割
り付け、メモリ管理エリアαを更新し、メモリ管理エリ
アβを作成して空きエリアキューでメモリ管理エリアα
の先頭アドレスをはずしメモリ管理エリアβの次空きエ
リアアドレスの格納位置を格納する。
【0038】図6を参照すると、図5のときと同様の動
作でBバイトのメモリ獲得要求に応答し、要求サイズを
割り付け、メモリ管理エリアβを更新し、メモリ管理エ
リアγを作成して空きエリアキューでメモリ管理エリア
βの先頭アドレスをはずしメモリ管理エリアγの次空き
エリアアドレスの格納位置を格納する。
【0039】図7を参照すると、図6の状態からアプリ
ケーションからのAバイトのメモリ解放要求を受けて、
メモリ管理エリアαの管理するブロックを解放し、メモ
リ管理エリアγの次空きエリアアドレスにメモリ管理エ
リアαの次空きエリアアドレスの格納位置を格納し、空
きエリアとして空きエリアキューにつなげる。
【0040】また、図7の状態からアプリケーションか
らBバイトのメモリ解放要求を受けたときには、メモリ
管理エリアβの管理するブロックを解放し、メモリ管理
エリアαの次空きエリアアドレスにメモリ管理エリアβ
の次空きエリアアドレスの格納位置を格納し、空きエリ
アとして空きエリアキューにつなげる。
【0041】このとき、メモリ管理エリアγの管理する
空きエリアのブロックとメモリ管理エリアαの管理する
空きエリアのブロックおよびメモリ管理エリアβの管理
する空きエリアのブロックは連続した空きエリアを構成
するため、これらを結合し、メモリ全体を一つの空きエ
リアのブロックとして管理するように、さらにメモリ管
理エリアαを更新し空きエリアキューにこの次空きエリ
アアドレスの格納位置を格納し図4の状態となる。
【0042】以上説明したように、本実施の形態のメモ
リ管理方式は、メモリ管理エリアの管理対象を未使用エ
リアのみならず使用エリアも管理の対象とすることによ
り、分割損の少ない、かつ、使用エリアの大小に関係な
く自由にエリアを割り当てることができる。
【0043】
【発明の効果】以上説明したように、本発明のメモリ管
理方式は、メモリ管理エリアの管理対象を未使用エリア
のみならず使用エリアも管理の対象とすることにより、
分割損の少ない、かつ、使用エリアの大小に関係なく自
由にエリアを割り当てることができるという効果を有す
る。
【図面の簡単な説明】
【図1】本発明のメモリ管理方式の一実施の形態を示す
ブロック図である。
【図2】本実施の形態のメモリ管理方式におけるメモリ
割当部の動作の一例を示す流れ図である。
【図3】本実施の形態のメモリ管理方式におけるメモリ
解放部の動作の一例を示す流れ図である。
【図4】本実施例の初期状態を示すデータ格納図であ
る。
【図5】本実施例の1ブロック使用中の状態を示すデー
タ格納図である。
【図6】本実施例の2ブロック使用中の状態を示すデー
タ格納図である。
【図7】本実施例の1ブロック解放時の状態を示すデー
タ格納図である。
【図8】従来例を示す説明図である。
【符号の説明】
101 空きエリアキュー 102 メモリ割当部 103 メモリ解放部 200 メモリ 300 メモリ管理エリア 301 次空きエリアアドレス 302 エリアエンドアドレス 303 エリアサイズ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 1つ以上のエリアから構成されるメモリ
    と、前記エリアはそのサイズとエンドアドレスとそのエ
    リアが空きエリアである場合に直後に生成された空きエ
    リアの先頭アドレスである次空きエリアアドレスとを含
    む管理データを格納するメモリ管理エリアを含み、前記
    メモリの空きエリアの生成順に前記空きエリアのそれぞ
    れの先頭アドレスを格納する空きエリアキューと、外部
    からのメモリエリア要求に対応する空きエリアを前記空
    きエリアキューと前記管理データ中のサイズとを参照し
    て検索し前記対応する空きエリアを前記要求に応ずる使
    用中エリアと空きエリアとに分割しそれぞれのメモリ管
    理エリアを更新および作成し分割前の空きエリアの先頭
    アドレスを前記空きエリアキューから除去し分割後のこ
    の新たな空きエリアの先頭アドレスを前記空きエリアキ
    ューに格納して後の空きエリアキューの順に各空きエリ
    アの次空きエリアアドレスを更新するメモリ割当手段
    と、外部からのメモリエリア解放要求に対応するエリア
    を空きエリアとしこの新たな空きエリアの先頭アドレス
    を前記空きエリアキューに格納し直前の空きエリアの次
    空きエリアアドレスにこれを書き込むメモリ解放手段と
    を含むことを特徴とするメモリ管理方式。
  2. 【請求項2】 メモリ解放手段はメモリエリア解放要求
    に対応するエリアを空きエリアとしたときに前記メモリ
    上でこの解放された空きエリアに隣接する空きエリアが
    あるときにはこの隣接空きエリアを結合してサイズの大
    なる空きエリアを生成することを特徴とする請求項1記
    載のメモリ管理方式。
JP19933596A 1996-07-29 1996-07-29 メモリ管理方式 Pending JPH1049433A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19933596A JPH1049433A (ja) 1996-07-29 1996-07-29 メモリ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19933596A JPH1049433A (ja) 1996-07-29 1996-07-29 メモリ管理方式

Publications (1)

Publication Number Publication Date
JPH1049433A true JPH1049433A (ja) 1998-02-20

Family

ID=16406088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19933596A Pending JPH1049433A (ja) 1996-07-29 1996-07-29 メモリ管理方式

Country Status (1)

Country Link
JP (1) JPH1049433A (ja)

Similar Documents

Publication Publication Date Title
JPH09171470A (ja) 計算機システムにおける資源割当て方法
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
GB2446071A (en) Method of dynamic memory management in an object oriented system
JPH06139120A (ja) ファイルの更新方式
CN110069336A (zh) 内存资源分配方法、分配装置、芯片和存储装置
JP3701890B2 (ja) 圧縮メモリ・システムの再利用スペース予約
JPH1049433A (ja) メモリ管理方式
US5684995A (en) Segment division management system
JP3013742B2 (ja) キャッシュメモリ管理方式
JP3325729B2 (ja) メモリ管理装置
JPH06282446A (ja) ジョブスケジュール作成方法
CN117667764A (zh) 内存管理方法、装置、电子设备及存储介质
JPH1069429A (ja) バッファ割当て管理装置およびバッファ割当て管理プログラム
JPH05108462A (ja) 表形式エデイタにおける動的メモリの中間制御方式
JPH0348950A (ja) メモリ管理方式
JPH08249225A (ja) メモリ管理装置
JP2982134B2 (ja) 主記憶装置の割り当てサイズ決定方法
JP2940452B2 (ja) メモリブロックの確保・解放方式及び方法
JPH0398128A (ja) 通番管理方式
KR20000061779A (ko) 부할당자 메모리 관리방법
JP2000163309A (ja) メモリ管理方法およびメモリ管理装置、並びに記録媒体
JPH01175050A (ja) メモリ管理装置
JPH0793192A (ja) ファイル管理方法
JPH0713852A (ja) 領域管理装置
JPH0431937A (ja) 領域管理処理方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000118