JPH02311936A - ヒープ領域管理方式 - Google Patents

ヒープ領域管理方式

Info

Publication number
JPH02311936A
JPH02311936A JP13384789A JP13384789A JPH02311936A JP H02311936 A JPH02311936 A JP H02311936A JP 13384789 A JP13384789 A JP 13384789A JP 13384789 A JP13384789 A JP 13384789A JP H02311936 A JPH02311936 A JP H02311936A
Authority
JP
Japan
Prior art keywords
area
free space
variable
size
length table
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
JP13384789A
Other languages
English (en)
Inventor
Takao Suzuki
隆夫 鈴木
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 JP13384789A priority Critical patent/JPH02311936A/ja
Publication of JPH02311936A publication Critical patent/JPH02311936A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラムの実行時に割当て可能な全領域(
ヒープ領域)上に動的に確保され、不要になった時点で
解放される変数領域を再使用するためのヒープ領域管理
方式に関する。
〔従来の技術〕
従来、この種の管理方式は、空き領域リストの各要素に
該空き領域の大きさを格納しているただ一つの空き領域
リストを使用し、動的に変数を確保する場合は、その空
き領域リストをたどってそれぞれの大きさを調べ、要求
された大きさを満たすものがあればその空き領域を再使
用し、なければ未使用領域を使用していた。また、動的
に変数を解放する場合は、空き領域リストに該変数をそ
の大きさとともに登録していた。
〔発明が解決しようとする課題〕
上述した従来の管理方式では、要求された大きさを満た
す空き領域の有無を判定するために空き領域リストラた
どらなければならず、要求された大きさ金満たすものが
存在しない場合には、空き領域リスト上のすべての要素
を調べることになる。
そのために、空き領域リストの要素数が多い場合に実行
時間が長くなるという欠点を有する。
本発明は、上述の点に鑑み、空き領域リストを大きさ別
に作ることによシ、空き領域の大きさを登録しである長
さテーブルを調べることで空き領域の有無の判定を可能
とし、実行時間を短縮できるヒープ領域の管理方式を提
供することにある。
〔課題を解決するための手段〕
本発明によるヒープ領域管理方式は、ヒープ領域上に動
的に変数を確保し、不要になった時点で解放するプログ
ラムの実行時に、変数領域の確保および解放を行う実行
時ルーチンにおいて、解放された変数を大きさ別にポイ
ンタで結んだ空き領域リストと、前記空き領域リストの
先頭要素へのポインタおよびそこに登録されている空き
領域の大きさとを含む長さテーブルと、前記プログラム
の実行開始時に前記長さテーブルの初期化を行うヒープ
領域初期化手段と、前記プログラムの動的な変数の確保
時に、前記長さテーブルを参照して要求された大きさを
満たす空き領域の有無を判定し1条件を満たす空き領域
がある場合には再使用し、なければヒープ領域の未使用
部分に変数領域を確保する動的変数確保手段と、前記プ
ログラムの動的な変数の解放時に、前記長さテーブルを
使用して該変数領域を空き領域リストに登録する動的変
数解放手段とを含む。
〔実施例〕
以下2本発明について図面を参照して説明する。
第1図を参照すると1本発明の一実施例のと−デ領域管
理方式は、プログラム11の実行時に必要に応じて呼ば
れるヒープ領域管理ルーチン12と、ヒープ領域14上
に大きさ別に作られる空き領域リスト141と、空き領
域リスト141を管理する長さテーブル13とを有する
。ヒープ領域管理ルーチン12は、長さテーブル13お
よびヒープ領域14を未使用状態にするヒープ領域初期
化手段121と、ヒープ領域14上に変数を確保する動
的変数確保手段122と、ヒープ領域14上の変数を解
放する動的変数解放手段123とを含んで構成されてい
る。
第2図を参照すると、(a)において、空き領域リスト
141の要素(以下、空き領域と略す)210は2次の
空き領域へのポインタ211を含む。また、(b)にお
いて長さテーブル13の要素220は。
空き領域の長さ221と、空き領域リストへのポインタ
222とを含む。
第3図は長さテーブル13および空き領域リスト141
の構成の一例を示す。
次に、このように構成された本実施例のヒープ領域管理
方式の動作を第1図、第2図および第3図を参照して説
明する。
、、 (1)  プログラム11の実行開始時に、と−
ゾ領域初期化手段121が呼ばれる。ヒープ領域初期化
手段121の実行では、未使用領域へのポインタ320
にヒープ領域14の先頭アドレスをセットし、長さテー
ブルのカウンタ310にゼロをセットする。
(2)プログラム11が動的に変数を確保する場合は、
確保する変数領域の大きさく以下、要求サイズと略す)
と、確保した変数領域のアドレスを受は取るためのポイ
ンタとf ハラメータとして。
第4図の流れ図に例示する動的変数確保手段122が呼
ばれる。動的変数確保手段122の実行では。
以下の処理■〜■を行う。
■ ステップ41において、長さテーブル13を検索し
、空き領域の大きさ221が要求サイズ以上で、かつ、
空き領域リストへのポインタ222がnilでない要素
を探す。
■ ステップ42で該当する要素の有無を判定し、該当
する要素がある場合には、まず、ステッ7°43で空き
領域の大きさ221と要求サイズとを比較し、空き領域
の方が大きい場合はステップ44で空き領域の余る部分
を該当する大きさの空き領域リスト141に登録する。
次に、ステップ45において、確保した変数領域のアド
レスを渡すだめの/’Pラメータに空き領域リストへの
ポインタ222を代入し、ステップ46において、空キ
領域リストの更新を行い処理を終了する。
■ 該当する要素がない場合には、まず、ステップ47
でヒープ領域14の未使用領域の大きさと要求サイズと
を比較し、未使用領域の方が小さければエラー処理を行
う。小さくなければステップ48において、確保した変
数領域のアドレスを渡すためのパラメータに未使用領域
へのポインタ320を代入し、ステップ49において、
未使用領域へのポインタ320の更新を行い処理を終了
する。
(3)プログラム11が動的に変数を解放する場合は、
解放する変数領域の大きさく以下、解放サイズと略す)
と、解放する変数領域へのポインタを・ぐラメータとし
て、第5図の流れ図に例示する動的変数解放手段123
が呼ばれる。動的変数解放手段123の実行では、以下
の処理■〜■を行p・ ■ ステップ51において、長さテーブル13を検索し
、空き領域の大きさ′221と解放サイズとが等しい要
素を探す。
■ ステップ52で該当する要素の有無を判定し、該当
する要素がある場合には、ステップ510において、解
放すべき変数領域を空き領域リスト141に登録する。
■ 該当する要素がない場合には、まず、ステップ53
で長さテーブル13に要素が登録できるか否かを判定し
、登録できない場合には、ステップ54において、空き
領域リストへのポインタ222が空である要素を削除す
る。ステップ55で削除できたか否かを判定し、削除で
きなかったならば、ステップ58において、空き領域の
大きさ221が解放サイズより小さく、かつ、解放サイ
ズに最も近い要素に位置付ける。ステップ59で位置付
けができたと判定されたならばステップ510で空き領
域リスト141への登録を行う。
長さテーブル13に登録できる場合には、ステップ56
において、長さテーブル13が外層を保つように新しい
要素を登録し、ステップ57において、長さテーブルの
カウンタ310を更新した後。
ステップ510で空き領域リスト141への登録を行う
■ ステップ511において、解放する変数領域のアド
レスを受は取るためのパラメータにnilを代入して処
理を終了する。
〔発明の効果〕
以上説明したように2本発明によれば、動的に変数を確
保する処理において、要求された大きさを満たす空き領
域を検索するために長さテーブルを使用することによっ
て、実行時間を短縮することができる。その反面、動的
に変数を解放する処理においては、長さテーブルへの登
録が必要になるため実行時間が長くなる。しかし、長さ
テーブルの要素数は一般にあまシ多くならないため、実
行時間への影響は小さいと考えられる。したがって、全
体としては動的な変数の確保および解放を行うヒープ領
域管理の実行時間を短縮できるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例のヒープ領域管理方式の全体
構成図、第2図は第1図中の空き領域リストおよび長さ
テーブルの要素の構成を示す図。 第3図は第1図中の長さテーブルおよび空き領域リスト
の関係を示す図、第4図は第1図中の動的変数確保手段
の手順を示す流れ図、第5図は第1図中の動的変数解放
手段の手順を示す流れ図である。 図において、11・・・プログラム、12・・・ヒープ
領域管理ルーチン、13・・・長さテーブル、14・・
・ヒープ領域、121・・・ヒープ領域初期化手段。 122・・・動的変数確保手段、123・・・動的変数
解放手段、141・・・空き領域リスト、210・・・
空き領域リストの要素、211・・・次の空き領域への
ポインク、220・・・長さテーブルの要素、221・
・・空き領域の大きさ、222・・・空き領域リストへ
のポインタ、310・・・長さテーブルのカウンタ。 320・・・未使用領域へのポインタ。 第2図 第3図 第4図 C−m−)   N5闇

Claims (1)

  1. 【特許請求の範囲】 1、ヒープ領域上に動的に変数を確保し、不要になった
    時点で解放するプログラムの実行時に、変数領域の確保
    および解放を行う実行時ルーチンにおいて、 解放された該変数領域を大きさ別にポインタで結んだ空
    き領域リストと、 前記空き領域リストの先頭要素へのポインタおよびそこ
    に登録されている空き領域の大きさを含む長さテーブル
    と、 前記プログラムの実行開始時に前記長さテーブルの初期
    化を行うヒープ領域初期化手段と、前記プログラムの動
    的な変数の確保時に、前記長さテーブルを参照して要求
    された大きさを満たす空き領域の有無を判定し、条件を
    満たす空き領域がある場合には再使用し、なければヒー
    プ領域の未使用部分に変数領域を確保する動的変数確保
    手段と、 前記プログラムの動的な変数の解放時に、前記長さテー
    ブルを使用して該変数領域を空き領域リストに登録する
    動的変数解放手段と、 を有することを特徴とするヒープ領域管理方式。
JP13384789A 1989-05-26 1989-05-26 ヒープ領域管理方式 Pending JPH02311936A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13384789A JPH02311936A (ja) 1989-05-26 1989-05-26 ヒープ領域管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13384789A JPH02311936A (ja) 1989-05-26 1989-05-26 ヒープ領域管理方式

Publications (1)

Publication Number Publication Date
JPH02311936A true JPH02311936A (ja) 1990-12-27

Family

ID=15114426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13384789A Pending JPH02311936A (ja) 1989-05-26 1989-05-26 ヒープ領域管理方式

Country Status (1)

Country Link
JP (1) JPH02311936A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048237A (ja) * 2004-08-02 2006-02-16 Aplix Corp メモリマネジメント方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048237A (ja) * 2004-08-02 2006-02-16 Aplix Corp メモリマネジメント方法
JP4668562B2 (ja) * 2004-08-02 2011-04-13 株式会社アプリックス メモリマネジメントプログラムおよびメモリマネジメント方法

Similar Documents

Publication Publication Date Title
DE69424610T2 (de) Datenverarbeitungs-anlage und -verfahren
US5717950A (en) Input/output device information management system for multi-computer system
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
JPH0628053B2 (ja) マルチプロセッサシステムの資源の割当制御方法
JPH05233326A (ja) コンピュータシステムにおいて事象を取り扱う方法及びシステム
JPH02201653A (ja) アプリケーシヨン・プログラム・インターフエース方法
US5485573A (en) Method and apparatus for assisting in the determination of the source of errors in a multi-host data base management system
JPH02311936A (ja) ヒープ領域管理方式
JPH0713823A (ja) 仮想計算機システムにおけるファイル資源管理方式
JPH0895771A (ja) サ−ビス処理システム
JP2994138B2 (ja) 対話処理システムにおけるカタログの変数管理方法
JP2882859B2 (ja) オンライン中イベント処理時間分析方式
JP2641919B2 (ja) ジョブスケジュール停止装置
JPH03255533A (ja) プログラミング言語処理システムにおけるシンボル管理方式
JP2003337711A (ja) 情報処理装置および方法
JP2561306B2 (ja) プログラムモジュール間制御移行方式
JP2591818B2 (ja) 補助機能の選択制御方法
JPH0398123A (ja) 時刻スタンプ付き命令系列処理装置
JPS62173535A (ja) 共有資源のアクセス制御方式
JPH04354019A (ja) ソート処理装置
JPS62276629A (ja) システム資源生成文自動変更方式
JPH03116333A (ja) 一括コンパイル方式
JPH01116851A (ja) プログラムのロード制御方式
JPH01188957A (ja) プログラム例外処理方式
JPH0827752B2 (ja) 資源ステータス保持装置