JPH08202611A - メモリ管理方法及び装置 - Google Patents

メモリ管理方法及び装置

Info

Publication number
JPH08202611A
JPH08202611A JP2878695A JP2878695A JPH08202611A JP H08202611 A JPH08202611 A JP H08202611A JP 2878695 A JP2878695 A JP 2878695A JP 2878695 A JP2878695 A JP 2878695A JP H08202611 A JPH08202611 A JP H08202611A
Authority
JP
Japan
Prior art keywords
area
memory management
allocated
memory
size
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.)
Granted
Application number
JP2878695A
Other languages
English (en)
Other versions
JP3610528B2 (ja
Inventor
Hiroyuki Sasaki
博幸 佐々木
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.)
Brother Industries Ltd
Original Assignee
Brother Industries 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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP02878695A priority Critical patent/JP3610528B2/ja
Publication of JPH08202611A publication Critical patent/JPH08202611A/ja
Application granted granted Critical
Publication of JP3610528B2 publication Critical patent/JP3610528B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 一つの連続したメモリ空間において、割り当
て領域の静的・動的属性に応じて割り当てる領域を分離
してメモリの使用効率を高め、新たな領域の割り当てや
割り当て済み領域のサイズの変更を効率よく行うメモリ
管理方法及び装置を提供する。 【構成】 一つの連続したメモリ空間60から領域を割
り当てる際に、移動不可な静的属性を持つ領域は静的メ
モリ管理によりMemHiEnd62からMemLoEnd61に向かう
方向に存在する領域66から割り当てられ、移動可能な
動的属性を持つ領域は動的メモリ管理によりMemLoEnd6
1からMemHiEnd62に向かう方向に存在する領域68か
ら割り当てられ、メモリ空間を効率よく管理することが
できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パーソナルコンピュー
タ、プリンタ等の情報処理機器に搭載されたメモリを管
理するメモリ管理方法及び装置に関するものである。
【0002】
【従来の技術】従来、パーソナルコンピュータ、プリン
タ等の情報処理機器におけるメモリ管理は、基本的にア
プリケーションプログラムから要求されたプログラムサ
イズに相当するメモリ領域の割り当て、割り当て済みの
領域のサイズ変更、及び割り当て済み領域の解放といっ
た処理を、保有するメモリ空間において行っている。
【0003】従来のメモリ管理方法について図11
(a)〜(i)を参照して説明する。ここでは、割り当
て済み領域がメモリ空間中を移動することが可能なメモ
リ管理方法(以下、動的メモリ管理方法、また、その割
り当てられた領域を動的な属性を持つ領域という)につ
いて説明する。アプリケーションプログラムに割り当て
られるRAM等のメモリの連続したメモリ領域100に
おいて、図11(a)に示すように、下位アドレスから
上位アドレスに向かう順に既に領域D1,D2,D3,D4(そ
れぞれのサイズをSD1 ,SD2 ,SD3 ,SD4 とする)が割
り当て済みで、領域F1,F2,F3,F4,F5(それぞれのサ
イズをSF1 ,SF2 ,SF3 ,SF4 ,SF5 とする)が空いて
いるとする。いま、アプリケーションプログラムよりサ
イズSD5 の領域割り当て要求があった場合、サイズSD5
と、空き領域F1〜F5のそれぞれのサイズ(SF1 〜SF5 )
とを比較する。その結果、領域F4のサイズSF4 がサイズ
SD5 の領域の確保に十分ならば、図11(b)に示すよ
うに、領域F4にサイズSD5 のプログラムを割り当て、こ
の領域をD5とし、領域F4の余った空き領域をF6(サイズ
SF6=SF4-SD5 )とする。
【0004】しかし、割り当てようとする領域のサイズ
SD5 と、空き領域F1からF4のそれぞれの大きさを比較
し、十分な領域が見つからなかった場合、既に割り当て
済みの領域D1〜D4を、下位アドレス側に移動することに
より、図11(c)に示すように、新たな空き領域F7
(サイズSF7=SF1+SF2+SF3+SF4+SF5 )を作り出し、空き
領域F7にサイズSD5 の領域を割り当て、図11(d)に
示すように、ここをD5とし、D5を割り当ることにより余
った空き領域をF8(サイズSF8=SF7-SD5 ) とする。
【0005】また、図11(a)の状態で割り当て済み
の領域D2のサイズをSD2 からSD2Lに拡大する場合、例え
ば、SD2L>SD2+SF3 かつSD2L≦SD2+SF3+SF4 ならば、図
11(e)に示すように、領域D3を上位アドレス方向、
つまり領域D4側へ移動することにより空き領域F9を作り
出し、図11(f)に示すように、領域D2を拡大するこ
とによりサイズSD2Lの領域を新たに割り当てる。さら
に、図11(a)に示す状態で、SD2L>SD2+SF1+SF2+SF
3+SF4 かつSD2L>SD2+SF1+SF2+SF3+SF4+SF5 のような場
合では、まず、図11(g)に示すように、領域D1,D2
を下位アドレス方向に移動し、領域D3,D4を上位アドレ
ス方向に移動することにより、連続した空き領域F11 を
作り出し、図11(h)に示すように、領域D2を拡大し
たD2L を新たに割り当て、D2L を割り当てることにより
余った空き領域をF12 とする。また、図11(a)の状
態で領域D2を解放した場合、図11(i)に示すように
新たな連続の空き領域F13 (サイズSF13=SF2+SD2+SF3)
が作り出される。
【0006】
【発明が解決しようとする課題】しかしながら、上記の
ような従来のメモリ管理方法においては、総ての領域が
アプリケーションプログラムに対し移動可能な動的な属
性で割り当てられている場合、メモリの空き領域の合計
が0になるまで、新たな領域の割り当て、領域サイズの
変更等が可能であったが、プログラムにおける処理の効
率化から割り当て済みの領域がメモリ空間中を移動不可
な静的な属性で領域を割り当てることがある。例えば、
図11(a)に示すように、既に領域D1,D2,D3,D4に
それぞれプログラムが割り当て済みで、領域F1,F2,F
3,F4,F5が空いている。領域D3が移動不可な静的属性
で領域を割り当てられているとする。このとき、前出の
ようなD2のサイズをSD2 からSD2Lに大きくする要求がな
された場合、SD2L>SD2+SF1+SF2+SF3+SF4+SF5 にも関わ
らず、領域D3が移動不可なために図11(g)に示した
ような空き領域F11 が作り出せない。そのためにD2のサ
イズの拡大は不可能である。つまり、移動不可な静的属
性を持つ領域がメモリ空間の中央付近に存在すると、空
き領域が十分存在するにも関わらずメモリの新規割り当
て、割り当てサイズの変更が不可能な場合が発生する。
また、上述のような不都合から、割り当てられたプログ
ラムの移動の頻度が増えたり、記憶されたプログラムが
細分化されてメモリ空間の空き領域を効率よく使用でき
ないといった問題が生じていた。
【0007】本発明は、上述した問題点を解決するため
になされたものであり、一つの連続したメモリ空間にお
いて、領域の静的又は動的の割り当て属性の違いよって
メモリ空間への割り当て領域を分離することにより、メ
モリの使用効率を高め、メモリ空き領域の新たな領域の
割り当てや割り当て済み領域のサイズの変更を効率よく
行うことが可能なメモリ管理方法及び装置を提供するこ
とを目的とする。
【0008】
【課題を解決するための手段】上記目的を達成するため
に請求項1の発明のメモリ管理方法は、一つの連続した
メモリ空間において、アプリケーションプログラムに対
して割り当て済みの領域が他の領域の新規割り当てある
いは他の領域のサイズ変更に伴い再配置されることがな
い静的なメモリ管理を行う第1のメモリ管理方式と、ア
プリケーションプログラムに対して割り当て済みの領域
が他の領域の新規割り当てあるいは他の領域のサイズ変
更に伴い再配置されることがある動的なメモリ管理を行
う第2のメモリ管理方式とを備え、第1のメモリ管理方
式はメモリ空間の一端から割り当て領域を配置し、第2
のメモリ管理方式はメモリ空間の他端から割り当て領域
を配置するものである。また、請求項2の発明のメモリ
管理方法は、請求項1記載の第1のメモリ管理方式にお
いて、メモリ空間は予め定めたサイズの単位ブロックを
単位に管理され、アプリケーションプログラムに対して
割り当てる領域のサイズを単位ブロックの整数倍とした
ものである。また、請求項3の発明のメモリ管理装置
は、一つの連続したメモリ空間において、アプリケーシ
ョンプログラムに対して割り当て済みの領域が他の領域
の新規割り当てあるいは他の領域のサイズ変更に伴い再
配置されることがない静的なメモリ管理を行う第1のメ
モリ管理手段と、アプリケーションプログラムに対して
割り当て済みの領域が他の領域の新規割り当てあるいは
他の領域のサイズ変更に伴い再配置されることがある動
的なメモリ管理を行う第2のメモリ管理手段とを備え、
第1のメモリ管理手段はメモリ空間の一端から割り当て
領域を配置し、第2のメモリ管理手段はメモリ空間の他
端から割り当て領域を配置するものである。また、請求
項4の発明のメモリ管理装置は、請求項3記載の第1の
メモリ管理手段において、メモリ空間は予め定めたサイ
ズの単位ブロックを単位に管理され、アプリケーション
プログラムに対して割り当てる領域のサイズを単位ブロ
ックの整数倍としたものである。
【0009】
【作用】上記請求項1又は請求項3のメモリ管理方法又
は装置においては、アプリケーションプログラムからの
メモリの割り当て要求に応じて、静的なメモリ管理を行
う第1のメモリ管理方式又は手段はメモリ空間の一端か
ら割り当て領域を配置し、また、動的なメモリ管理を行
う第2のメモリ管理方式又は手段はメモリ空間の他端か
ら割り当て領域を配置する。これにより、メモリの空き
領域の新たな領域の割り当てや割り当て済み領域のサイ
ズ変更を効率よく行うことができる。
【0010】また、請求項2又は請求項4のメモリ管理
方法又は装置においては、メモリ空間は所定サイズに分
割した単位ブロックに分割されており、アプリケーショ
ンプログラムに対して割り当てる領域のサイズをこのブ
ロックの整数倍としたので、細分化された領域がメモリ
空間中に点在して大きな空き領域を作り出せないといっ
たことがなくなり、また、メモリ空間の細分化が抑制さ
れ、効率よくメモリ管理を行え、大きな空き領域を確保
することができる。
【0011】
【実施例】以下、本発明を具体化した一実施例を図面を
参照して説明する。図1は、本実施例のメモリ管理装置
をプリンタコントローラに実装した場合の概略ブロック
図である。メモリ管理装置は、ホストコンピュータ1か
ら送られてきた印刷命令等を処理しプリンタエンジン2
に処理された印刷イメージを転送するプリンタコントロ
ーラ3に搭載され、本発明によるメモリ管理方法はこの
プリンタコントローラ3全体を制御するCPU4により
実行される。プリンタコントローラ3は、前記CPU4
の他に、プリンタエンジン2を制御するための制御プロ
グラム及びフォントデータを格納したROM5と、RA
M6と、ホストコンピュータ1などの外部装置との通信
を行う入出力インターフェース7と、プリンタエンジン
2との通信を行うプリンタエンジンインターフェース8
と、これらを相互に接続するバス9とから構成される。
【0012】上記構成のメモリ管理装置において、CP
U4は、ROM5に格納されているプリンタ制御プログ
ラムに含まれるメモリ管理プログラムに基づいてRAM
6のメモリ領域を管理し、プリンタ制御プログラムから
の要求により、RAM6のメモリ空間に領域を割り当て
る。例えば、ホストコンピュータ1から送られてくる印
刷データを一時的に蓄える受信バッファとしての領域
や、印字データを処理する途中で生成される中間データ
を蓄える領域などは静的属性領域に割り当て、一時的に
蓄えられる(キャッシュされる)フォントデータなどは
動的属性領域に割り当てるようにしている。
【0013】図2は、図1のRAM6の記憶領域の概念
を示す図である。メモリは連続したメモリ空間60を想
定する。メモリ空間60は、一番下位アドレスをMemLoE
nd61、一番上位のアドレスをMemHiEnd62で示し、メ
モリの上位アドレスから下位アドレスへ向かう方向に静
的属性を持つ領域が割り当てられ、下位アドレスから上
位アドレスへ向かう方向に動的属性を持つ領域が割り当
てられる。以降、前者を静的メモリ管理、後者を動的メ
モリ管理という。図示するメモリ空間60の中で、ハッ
チングで示した領域は既に割り当てられている領域であ
り、ハッチングが無い部分は割り当てられていない空き
領域である。
【0014】静的メモリ管理は、アプリケーションプロ
グラム(本実施例では、プリンタ制御プログラム)が必
要とするサイズの領域をMemStEnd62から、順番にMemL
oEnd61方向に向かって割り当てる。メモリ空間60に
はMemHiEnd62の直前に静的メモリ管理のための管理領
域63が確保され、管理領域63の直前をMemStEnd64
で示す。MemStEnd64とStAreaBottom65の間の領域6
6が、静的メモリ管理で使用されている領域である。St
AreaBottom65で示すアドレスが、静的メモリ管理によ
って割り当てられている領域の先端であり、StAreaBott
om65は、領域の割り当て、解放によって移動する。
【0015】動的メモリ管理は、アプリケーションプロ
グラムが必要とするサイズの領域をMemLoEnd61から、
順番にMemStEnd64方向に向かって割り当てる。MemLoE
nd61とDyAreaTop 67の間の領域68が動的メモリ管
理で使用されている領域である。DyAreaTop 67で示す
アドレスが動的メモリ管理によって割り当てられている
領域の先端であり、DyAreaTop 67は、領域の割り当
て、解放によって移動する。また、DyAreaTop 67とSt
AreaBottom65の領域69は、静的・動的メモリ管理の
どちらにも管理されていない未使用の空き領域である。
【0016】次に、静的メモリ管理の基本的な機能(領
域の割り当て、割り当て済み領域のサイズ変更、割り当
て済み領域の開放)について、図3から図6を用いて説
明する。図3は、静的な属性に割り当てられている空間
周辺を示したメモリ空間60の概念図である。静的メモ
リ管理においては、使用可能な空間(MemLoEnd61〜Me
mStEnd64)をある一定のサイズで分割しておく。この
一つ一つを単位ブロックと呼ぶ。単位ブロックのサイズ
は、数百バイトから数Kバイトの間で、効率の良いサイ
ズをあらかじめ設定しておく。個々の単位ブロックのそ
れぞれの情報は、管理領域63に記憶される。静的メモ
リ管理においては、この単位ブロックを割り当て単位と
して管理を行い、アプリケーションプログラムから要求
されたサイズを満たす単位ブロックの整数倍の領域が割
り当てられる。
【0017】図4は、静的メモリ管理における領域の割
り当てについてのフローチャートである。領域の割り当
て処理において、CPU4は、アプリケーションプログ
ラムからの要求サイズに対して、単位ブロックがいくつ
必要か計算し(S1)、計算された単位ブロック数を使
用可能な空間DyAreaTop 67からMemStEnd64の中から
検索し(S2)、空きブロックが見つかれば(S3でY
ES)、その空きブロックに関する管理領域63の管理
情報を更新し(S4)、空きブロックの先頭アドレスを
アプリケーションプログラムに返して(S5)、終了す
る。一方、S3において、十分な空きブロックが見つか
らなかった場合には(S3でNO)、動的メモリ管理に
対して領域の整頓の要求を出す(S6)。
【0018】S6における動的メモリ管理においては、
割り当て済みの動的プログラムに使用している領域を、
MemLoEnd61方向に移動して詰めて行くことにより、Dy
AreaTop 67がMemLoEnd61方向に移動し、その結果、
DyAreaTop 67とStAreaBottom65の間の未割り当ての
空き領域69が広がる。その未割り当て領域に十分な空
きブロックがあれば(S7でYES)、その空きブロッ
クに関する情報を更新し(S4)、見付かった空きブロ
ックの先頭アドレスをアプリケーションプログラムに返
して(S5)、終了する。S7において十分な空きブロ
ックが見つからなかった場合には(S7でNO)、割り
当て失敗となり、終了する。
【0019】図5は、静的メモリ管理における割り当て
済み領域のサイズ変更についてのフローチャートであ
る。この処理においては、既に割り当て済みの領域のサ
イズをアプリケーションプログラムの要求に応じて変更
する。要求サイズに応じて、単位ブロックがいくつ必要
か計算し(S11)、今までの割り当て済みブロック数
と今回の要求に対する必要ブロックサイズを比較し、割
り当てブロックの拡大が必要か否かを調べる(S1
2)。S12で今回の要求サイズが今までの割り当てサ
イズよりも小さく、拡大の必要がないと判断されれば
(S12でNO)、今までの割り当て済み領域を縮小
し、それに伴い管理領域63の管理情報も更新し(S1
3)、終了する。
【0020】一方、S12において拡大の必要があれ
ば、今まで割り当てられていたブロックの前後のブロッ
クの状況を検索し(S14)、今まで割り当てられてい
たブロックと前後の空きブロックで十分な領域が確保で
きるようであれば(S15でYES)、今まで割り当て
られていたブロックと前後の空きブロックで必要なブロ
ックを新しく割り当て(S16)、新しい割り当てに伴
い管理領域63の管理情報を更新し(S17)、必要な
らば今までのブロック内のデータを新しく割り当てられ
たブロックにコピーし(S18)、新しく割り当てられ
たブロックの先頭アドレスをアプリケーションプログラ
ム側に返し(S19)、終了する。
【0021】S15において、前後の空きブロックでは
空き領域が不十分な場合(S15でNO)、十分な空き
ブロックを使用可能な空間DyAreaTop 67からMemStEnd
64の中から検索し(S20)、新たに割り当て可能か
否かを判断し(S21)、可能であれば(S21でYE
S)、その領域のブロックを新規に割り当てるブロック
として割り当て(S22)、今までのブロック内のデー
タを新しく割り当てられたブロックにコピーし(S2
3)、今までのブロック及び、新しいブロックの管理情
報を更新し(S24)、新規に割り当てるブロックの先
頭アドレスをアプリケーションプログラム側に返し(S
25)、終了する。
【0022】S21において、十分な空きブロックが無
かった場合(S21でNO)、上述した図4のS6と同
様に動的メモリ管理に対して領域の整頓の要求を出す
(S26)。動的メモリ管理においては、割り当て済み
の領域をMemLoEnd61方向に移動して、詰めて行くこと
により、DyAreaTop 67がMemLoEnd61方向に移動し
て、その結果、DyAreaTop 67とStAreaBottom65の間
の未割り当て領域が広がる。十分な空きブロックがあれ
ば(S27でYES)、S22以降の処理に移る。S2
7において、十分な空きブロックが見つからなかった場
合には(S27でNO)、サイズ変更失敗となり、終了
する。
【0023】図6は、静的メモリ管理における割り当て
済み領域の開放についてのフローチャートである。この
処理においては、アプリケーションプログラムから支持
されたブロックを開放して空きブロックとし、管理領域
63の管理情報等を更新し(S31)、終了する。
【0024】動的メモリ管理について、図7から図10
を用いて説明する。図7は、動的な属性に割り当てられ
ている空間周辺を示したメモリ空間60の概念図であ
る。動的メモリ管理ではメモリの下位アドレスから領域
の割り当てを行う。動的メモリ管理において使用可能な
メモリ空間は、メモリの下位アドレスMemLoEnd61から
静的メモリ管理が使用している空間の下限を示すStArea
Bottom65までである。動的メモリ管理で割り当てられ
た領域は、新たな空き領域の確保のために移動すること
がある。そのために、アプリケーションプログラム側で
は割り当てられた領域の先頭アドレスでは管理できな
い。そこで、割り当てられた領域の先頭アドレスを別の
領域75に一度記憶しておき、アプリケーションプログ
ラムからは、その記憶された領域を介して、割り当てら
れた領域の先頭アドレスを得る。割り当てられた領域の
先頭アドレスをまとめて記憶しておく領域75をポイン
タ記憶領域と呼ぶ。ポインタ記憶領域75は、動的メモ
リ管理において移動の対象とならないように、静的メモ
リ管理で管理される領域に確保される。
【0025】また、アプリケーションプログラムから要
求されたサイズの領域が割り当てられるが、割り当てら
れる領域それぞれに、管理領域が付随している。図7に
は割り当て済みの一つの領域80を拡大しており、アプ
リケーションプログラムに対して割り当てられた領域8
0aの直前にこの領域80aを管理するための管理情報
領域80bが付加されている。この管理情報領域80b
には、領域80のサイズ、領域80の前後に存在する領
域の先頭アドレス、それらの領域の割り当て済み・未割
り当ての属性などが記憶されている。
【0026】図8は、動的メモリ管理における領域の割
り当てについてのフローチャートである。領域の割り当
て処理において、アプリケーションプログラムからの要
求サイズに対して、そのサイズと管理情報領域とを加え
た大きさを満足する空き領域をMemLoEnd61からStArea
Bottom65の間で検索し(S41)、十分な空き領域が
あれば(S42でYES)、その領域を割り当て、その
領域に関する管理情報及びその領域の前後領域の管理情
報を管理情報領域80bにて更新する(S43)。そし
て、割り当てる領域の先頭アドレスをポインタ記憶領域
75に書き込み(S44)、ポインタ記憶領域75内の
書き込まれたアドレスをアプリケーションプログラムに
返して(S45)、終了する。
【0027】一方、S42において、十分な空き領域が
見つからなかった場合には(S42でNO)、動的メモ
リ管理によって管理されている領域(MemLoEnd61から
DyAreaTop 67の間)の整頓を行う(S46)。すなわ
ち、割り当て済みの領域をMemLoEnd61方向に移動し
て、詰めてゆくことにより、DyAreaTop 67がMemLoEnd
61の方向に移動して、その結果、DyAreaTop 67とSt
AreaBottom65の間の未割り当ての空き領域69が広が
り、その空き領域69に、十分な空き領域が存在すれば
(S47でYES)、処理はS43に移る。十分な空き
領域が存在しなければ(S47でNO)、割り当て失敗
となり、終了する。
【0028】図9は、動的メモリ管理における割り当て
済み領域のサイズ変更についてのフローチャートであ
る。この処理においては、既に割り当て済みの領域のサ
イズをアプリケーションプログラムの要求に応じて変更
する。要求サイズと今までの割り当てサイズとを比較し
(S51)、今回のサイズが今までよりも小さく、領域
拡大の必要がなければ(S51でNO)、今までの割り
当て済み領域を縮小し、それに伴い管理情報も更新し
(S52)、終了する。
【0029】S51において領域拡大の必要があれば
(S51でYES)、今まで割り当てられていた領域の
前後の領域の状況を検索し(S53)、今まで割り当て
られていた領域と前後の空き領域で十分な領域が確保で
きるようであれば(S54でYES)、今まで割り当て
られていた領域と前後の空き領域で必要な領域を新しく
割り当て(S55)、新しい割り当てに伴い管理情報を
更新し(S56)、今までの領域内のデータを新しく割
り当てられた領域にコピーし(S57)、ポインタ記憶
領域75に書き込まれていた割り当て領域の先頭アドレ
スを新しく割り当てる領域の先頭アドレスに書き換え
(S58)、ポインタ記憶領域75に書き込まれたアド
レスをアプリケーションプログラムに返し(S59)、
終了する。
【0030】S54において、十分な空き領域が無かっ
た場合(S54でNO)、MemLoEnd61からStAreaBott
om65の間で十分な空き領域を検索し(S60)、十分
な空き領域があり、新たに割り当て可能であれば(S6
1でYES)、その領域を新規に割り当てる領域とし
(S62)、今まで割り当てられていた領域の内部のデ
ータを新しく割り当てる領域にコピーし(S63)、今
まで割り当てられていた領域を未使用にし、新しく割り
当てる領域の管理情報を更新し(S64)、ポインタ記
憶領域75に書き込まれていた割り当て領域の先頭アド
レスを新しく割り当てる領域の先頭アドレスに書き換え
(S65)、ポインタ記憶領域75の書き込まれたアド
レスをアプリケーションプログラムに返し(S66)、
終了する。
【0031】S61において、十分な空き領域が見つか
らなかった場合は(S61でNO)、上述した図8のS
46と同様に動的メモリ管理によって管理している領域
(MemLoEnd61からDyAreaTop 67の間)の整頓を行う
(S67)。すなわち、割り当て済みの領域をMemLoEnd
61方向に移動して、詰めていくことにより、DyAreaTo
p 67がMemLoEnd61方向に移動して、その結果、DyAr
eaTop 67とStAreaBottom65の間の未割り当て領域が
広がる。その未割り当て領域に、十分な空き領域が存在
すれば(S68でYES)、処理はS62に移る。十分
な空き領域が存在しなければ(S68でNO)、割り当
て失敗となり、終了する。
【0032】図10は、動的メモリ管理における割り当
て済み領域の開放についてのフローチャートである。こ
の処理においては、アプリケーションプログラムから指
示された領域を開放して空き領域とし、管理情報等を更
新し(S71)、終了する。
【0033】本実施例によるメモリ管理方法及び装置に
よれば、メモリ空間60を管理する際、静的メモリ管理
はメモリ空間60の上位アドレスMemHiEnd62からMemL
oEnd61へ向かう方向に静的な属性を持つ領域を割り当
て(図4〜図6の処理)、動的メモリ管理はメモリ空間
60の下位アドレスMemLoEnd61からMemHiEnd62へ向
かう方向に動的な属性を持つ領域を割り当てる(図8〜
図10の処理)ことにより2つの異なる属性の領域が分
離され、メモリ空間60を有効に利用することができ
る。また、静的メモリ管理で管理される領域66は、一
定のサイズのブロックに分割され、領域をこのブロック
の整数倍として割り当てるようにしたことで、一定サイ
ズ以下にメモリ空間60が細分化されることはなく、効
率的なメモリ管理が行える。
【0034】また、動的メモリ管理で管理される領域6
8の割り当ては、動的属性で割り当てられる領域の先頭
アドレス情報をポインタ記憶領域75を介してアプリケ
ーションプログラムに返すようにしているので(図8の
S43〜S45、図9のS64〜S66及びS56〜S
59、図10のS71)、動的属性を持つ領域のサイズ
変更、他の動的属性を持つ領域の割り当て、他の動的属
性を持つ領域のサイズ変更、静的メモリ管理からの領域
の整頓要求が行われても、割り当て済み領域が自由にメ
モリ空間中を移動可能であるために、メモリ管理の自由
度が大きく、メモリ使用の高効率化を図ることができ、
適正にメモリ管理を行うことができる。
【0035】なお、本発明は上記実施例構成に限られず
種々の変形が可能である。例えば、上記実施例では、静
的プログラム領域66は使い易いバイト数の単位ブロッ
クに任意に分割しておくことで一層メモリ空間60を効
率よく使用することができる。また、実施例では上位ア
ドレスから下位アドレスへ向かう方向に静的メモリ管理
による管理、下位アドレスから上位アドレスへ向かう方
向に動的メモリ管理による管理を行うようにしたが、静
的メモリ管理で下位アドレスから上位アドレスへ向かう
方向に、動的メモリ管理で上位アドレスから下位アドレ
スへ向かう方向に領域を割り当てるようにしてもよい。
【0036】
【発明の効果】以上のように請求項1又は3の発明に係
るメモリ管理方法又は装置によれば、メモリ空間を静的
属性を持つ領域と、動的属性を持つ領域とに分離し、静
的属性を持つ領域を管理する静的メモリ管理はメモリ空
間の一端から他端へ向かう方向に領域を割り当て、動的
属性を持つ領域を管理する動的メモリ管理は他端から一
端へ向かう方向に領域を割り当てるようにしたことによ
り、動的属性で割り当てられた領域間に静的属性で割り
当てられた領域が存在することがなく、他の動的属性の
領域の割り当てやサイズ変更が自在となり、従って、効
率の良いメモリ管理が実現できる。
【0037】また、請求項2又は4の発明に係るメモリ
管理方法又は装置によれば、メモリ空間を予め所定サイ
ズの単位ブロックに分割しておき、アプリケーションプ
ログラムに対して単位ブロックの整数倍で割り当て、割
り当てられた領域の先頭アドレスを固定するようにして
いるので、不規則なサイズによるメモリ空間の細分化を
防ぐことが可能となり、空き領域の確保が容易となり、
メモリ空間を効率よく管理することができる。
【図面の簡単な説明】
【図1】本発明の一実施例によるメモリ管理方法が用い
られるメモリ管理装置の概略構成を示すブロック図であ
る。
【図2】本メモリ管理方法におけるメモリ空間の概念を
示した図である。
【図3】本メモリ管理方法の静的属性を持つ領域の管理
におけるメモリ空間の概念を示した図である。
【図4】静的属性を持つ領域の管理における領域の割り
当て処理を示したフローチャートである。
【図5】静的属性を持つ領域の管理における割り当て済
み領域のサイズ変更処理を示したフローチャートであ
る。
【図6】静的属性を持つ領域の管理における割り当て済
み領域の解放処理を示したフローチャートである。
【図7】本メモリ管理方法の動的属性を持つ領域の管理
におけるメモリ空間の概念を示した図である。
【図8】動的属性を持つ領域の管理における領域の割り
当て処理を示したフローチャートである。
【図9】動的属性を持つ領域の管理における割り当て済
み領域のサイズ変更処理を示したフローチャートであ
る。
【図10】動的属性を持つ領域の管理における割り当て
済み領域の解放処理を示したフローチャートである。
【図11】従来のメモリ管理方法におけるメモリ空間の
動きを示した概念図である。
【符号の説明】
3 プリンタコントローラ(メモリ管理装置) 4 CPU(制御装置) 5 ROM 6 RAM(メモリ) 60 メモリ空間 61 MemLoEnd(最下位アドレス) 62 MemHiEnd(最上位アドレス) 63 管理領域 66 静的なメモリ管理で使用されている領域 68 動的なメモリ管理で使用されている領域 75 ポインタ記憶領域 80b 管理情報領域

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 一つの連続したメモリ空間において、 アプリケーションプログラムに対して割り当て済みの領
    域が他の領域の新規割り当てあるいは他の領域のサイズ
    変更に伴い再配置されることがない静的なメモリ管理を
    行う第1のメモリ管理方式と、 アプリケーションプログラムに対して割り当て済みの領
    域が他の領域の新規割り当てあるいは他の領域のサイズ
    変更に伴い再配置されることがある動的なメモリ管理を
    行う第2のメモリ管理方式とを備え、 前記第1のメモリ管理方式は前記メモリ空間の一端から
    割り当て領域を配置し、前記第2のメモリ管理方式は前
    記メモリ空間の他端から割り当て領域を配置することを
    特徴とするメモリ管理方法。
  2. 【請求項2】 前記第1のメモリ管理方式において、メ
    モリ空間は予め定めたサイズの単位ブロックを単位に管
    理され、アプリケーションプログラムに対して割り当て
    る領域のサイズは前記単位ブロックの整数倍であること
    を特徴とする請求項1記載のメモリ管理方法。
  3. 【請求項3】 一つの連続したメモリ空間において、 アプリケーションプログラムに対して割り当て済みの領
    域が他の領域の新規割り当てあるいは他の領域のサイズ
    変更に伴い再配置されることがない静的なメモリ管理を
    行う第1のメモリ管理手段と、 アプリケーションプログラムに対して割り当て済みの領
    域が他の領域の新規割り当てあるいは他の領域のサイズ
    変更に伴い再配置されることがある動的なメモリ管理を
    行う第2のメモリ管理手段とを備え、 前記第1のメモリ管理手段は前記メモリ空間の一端から
    割り当て領域を配置し、前記第2のメモリ管理手段は前
    記メモリ空間の他端から割り当て領域を配置することを
    特徴とするメモリ管理装置。
  4. 【請求項4】 前記第1のメモリ管理手段において、メ
    モリ空間は予め定めたサイズの単位ブロックを単位に管
    理され、アプリケーションプログラムに対して割り当て
    る領域のサイズは前記単位ブロックの整数倍であること
    を特徴とする請求項3記載のメモリ管理装置。
JP02878695A 1995-01-24 1995-01-24 メモリ管理方法及び装置 Expired - Fee Related JP3610528B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02878695A JP3610528B2 (ja) 1995-01-24 1995-01-24 メモリ管理方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02878695A JP3610528B2 (ja) 1995-01-24 1995-01-24 メモリ管理方法及び装置

Publications (2)

Publication Number Publication Date
JPH08202611A true JPH08202611A (ja) 1996-08-09
JP3610528B2 JP3610528B2 (ja) 2005-01-12

Family

ID=12258117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02878695A Expired - Fee Related JP3610528B2 (ja) 1995-01-24 1995-01-24 メモリ管理方法及び装置

Country Status (1)

Country Link
JP (1) JP3610528B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213201A (ja) * 2002-12-27 2004-07-29 Fujitsu Ltd バージョンアップ方法
KR100453964B1 (ko) * 2001-12-28 2004-10-20 엘지전자 주식회사 메모리 운영장치 및 방법
JP2010079893A (ja) * 2008-09-11 2010-04-08 Konica Minolta Systems Lab Inc 最適なメモリアロケーションユニットのシステム及び方法
JP2010272072A (ja) * 2009-05-25 2010-12-02 Toshiba Corp メモリ管理装置
JP2011100230A (ja) * 2009-11-04 2011-05-19 Fujitsu Ltd メモリ管理機能を有するプログラム及び装置
US8861014B2 (en) 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
CN105653464A (zh) * 2014-11-13 2016-06-08 北京同方微电子有限公司 一种java智能卡的结构及其对象管理方法
CN111666177A (zh) * 2020-05-07 2020-09-15 中国石油天然气股份有限公司 一种气液两相流量计仪表数据存储方法
CN113485832A (zh) * 2021-07-09 2021-10-08 支付宝(杭州)信息技术有限公司 用于对物理内存池进行分配管理的方法及装置、物理内存池

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100453964B1 (ko) * 2001-12-28 2004-10-20 엘지전자 주식회사 메모리 운영장치 및 방법
JP2004213201A (ja) * 2002-12-27 2004-07-29 Fujitsu Ltd バージョンアップ方法
JP2010079893A (ja) * 2008-09-11 2010-04-08 Konica Minolta Systems Lab Inc 最適なメモリアロケーションユニットのシステム及び方法
US8854680B2 (en) 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
US8861014B2 (en) 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
JP2010272072A (ja) * 2009-05-25 2010-12-02 Toshiba Corp メモリ管理装置
JP2011100230A (ja) * 2009-11-04 2011-05-19 Fujitsu Ltd メモリ管理機能を有するプログラム及び装置
CN105653464A (zh) * 2014-11-13 2016-06-08 北京同方微电子有限公司 一种java智能卡的结构及其对象管理方法
CN105653464B (zh) * 2014-11-13 2024-05-07 紫光同芯微电子有限公司 一种java智能卡的结构及其对象管理方法
CN111666177A (zh) * 2020-05-07 2020-09-15 中国石油天然气股份有限公司 一种气液两相流量计仪表数据存储方法
CN111666177B (zh) * 2020-05-07 2023-06-30 中国石油天然气股份有限公司 一种气液两相流量计仪表数据存储方法
CN113485832A (zh) * 2021-07-09 2021-10-08 支付宝(杭州)信息技术有限公司 用于对物理内存池进行分配管理的方法及装置、物理内存池

Also Published As

Publication number Publication date
JP3610528B2 (ja) 2005-01-12

Similar Documents

Publication Publication Date Title
US5548740A (en) Information processor efficiently using a plurality of storage devices having different access speeds and a method of operation thereof
US6038571A (en) Resource management method and apparatus for information processing system of multitasking facility
JP3183901B2 (ja) メモリ管理方法
US5561785A (en) System for allocating and returning storage and collecting garbage using subpool of available blocks
US5301288A (en) Virtual memory management and allocation arrangement for digital data processing system
JPH0954723A (ja) グラフィックス・エンジンのオフ・スクリーン・メモリを仮想化するための方法及び装置
JPH0659982A (ja) 仮想記憶制御方法および装置
JPH0644137A (ja) 動的マップド・データ蓄積システムにおける補助記憶装置へのデータ転送のための方法および装置
JPH08202611A (ja) メモリ管理方法及び装置
JP2007249708A (ja) メモリ領域割り当て制御装置、メモリ領域割り当て制御プログラム、及びメモリ領域割り当て制御方法
JP2006209651A (ja) グラフィクスハードウェア
JP2002351739A (ja) メモリー管理方法およびデータ処理装置
JP3022829B2 (ja) 記憶装置の自動割り当て装置
JPH0212339A (ja) テーブル管理装置
JPH05108462A (ja) 表形式エデイタにおける動的メモリの中間制御方式
JP2002207634A (ja) 記憶領域管理方法及び記憶装置
JPH0869403A (ja) ファイル管理装置
JP2000010842A (ja) ファイル管理方法および方式
JPH0869399A (ja) ファイル管理装置
JP2005157714A (ja) メモリ管理システム
JPH04137127A (ja) 補助記憶装置の領域管理装置
JPH05324433A (ja) データベース入力制御方式
JPH05120094A (ja) フアイル管理方式
JPH04209045A (ja) 動的メモリ割り当て方式
JPH04257041A (ja) 仮想記憶管理方式

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041008

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071029

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081029

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091029

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091029

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101029

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101029

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111029

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111029

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121029

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131029

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees