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
Links
Abstract
て領域の静的・動的属性に応じて割り当てる領域を分離
してメモリの使用効率を高め、新たな領域の割り当てや
割り当て済み領域のサイズの変更を効率よく行うメモリ
管理方法及び装置を提供する。 【構成】 一つの連続したメモリ空間60から領域を割
り当てる際に、移動不可な静的属性を持つ領域は静的メ
モリ管理によりMemHiEnd62からMemLoEnd61に向かう
方向に存在する領域66から割り当てられ、移動可能な
動的属性を持つ領域は動的メモリ管理によりMemLoEnd6
1からMemHiEnd62に向かう方向に存在する領域68か
ら割り当てられ、メモリ空間を効率よく管理することが
できる。
Description
タ、プリンタ等の情報処理機器に搭載されたメモリを管
理するメモリ管理方法及び装置に関するものである。
タ等の情報処理機器におけるメモリ管理は、基本的にア
プリケーションプログラムから要求されたプログラムサ
イズに相当するメモリ領域の割り当て、割り当て済みの
領域のサイズ変更、及び割り当て済み領域の解放といっ
た処理を、保有するメモリ空間において行っている。
(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 )とする。
SD5 と、空き領域F1からF4のそれぞれの大きさを比較
し、十分な領域が見つからなかった場合、既に割り当て
済みの領域D1〜D4を、下位アドレス側に移動することに
より、図11(c)に示すように、新たな空き領域F7
(サイズSF7=SF1+SF2+SF3+SF4+SF5 )を作り出し、空き
領域F7にサイズSD5 の領域を割り当て、図11(d)に
示すように、ここをD5とし、D5を割り当ることにより余
った空き領域をF8(サイズSF8=SF7-SD5 ) とする。
の領域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)
が作り出される。
ような従来のメモリ管理方法においては、総ての領域が
アプリケーションプログラムに対し移動可能な動的な属
性で割り当てられている場合、メモリの空き領域の合計
が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のサ
イズの拡大は不可能である。つまり、移動不可な静的属
性を持つ領域がメモリ空間の中央付近に存在すると、空
き領域が十分存在するにも関わらずメモリの新規割り当
て、割り当てサイズの変更が不可能な場合が発生する。
また、上述のような不都合から、割り当てられたプログ
ラムの移動の頻度が増えたり、記憶されたプログラムが
細分化されてメモリ空間の空き領域を効率よく使用でき
ないといった問題が生じていた。
になされたものであり、一つの連続したメモリ空間にお
いて、領域の静的又は動的の割り当て属性の違いよって
メモリ空間への割り当て領域を分離することにより、メ
モリの使用効率を高め、メモリ空き領域の新たな領域の
割り当てや割り当て済み領域のサイズの変更を効率よく
行うことが可能なメモリ管理方法及び装置を提供するこ
とを目的とする。
に請求項1の発明のメモリ管理方法は、一つの連続した
メモリ空間において、アプリケーションプログラムに対
して割り当て済みの領域が他の領域の新規割り当てある
いは他の領域のサイズ変更に伴い再配置されることがな
い静的なメモリ管理を行う第1のメモリ管理方式と、ア
プリケーションプログラムに対して割り当て済みの領域
が他の領域の新規割り当てあるいは他の領域のサイズ変
更に伴い再配置されることがある動的なメモリ管理を行
う第2のメモリ管理方式とを備え、第1のメモリ管理方
式はメモリ空間の一端から割り当て領域を配置し、第2
のメモリ管理方式はメモリ空間の他端から割り当て領域
を配置するものである。また、請求項2の発明のメモリ
管理方法は、請求項1記載の第1のメモリ管理方式にお
いて、メモリ空間は予め定めたサイズの単位ブロックを
単位に管理され、アプリケーションプログラムに対して
割り当てる領域のサイズを単位ブロックの整数倍とした
ものである。また、請求項3の発明のメモリ管理装置
は、一つの連続したメモリ空間において、アプリケーシ
ョンプログラムに対して割り当て済みの領域が他の領域
の新規割り当てあるいは他の領域のサイズ変更に伴い再
配置されることがない静的なメモリ管理を行う第1のメ
モリ管理手段と、アプリケーションプログラムに対して
割り当て済みの領域が他の領域の新規割り当てあるいは
他の領域のサイズ変更に伴い再配置されることがある動
的なメモリ管理を行う第2のメモリ管理手段とを備え、
第1のメモリ管理手段はメモリ空間の一端から割り当て
領域を配置し、第2のメモリ管理手段はメモリ空間の他
端から割り当て領域を配置するものである。また、請求
項4の発明のメモリ管理装置は、請求項3記載の第1の
メモリ管理手段において、メモリ空間は予め定めたサイ
ズの単位ブロックを単位に管理され、アプリケーション
プログラムに対して割り当てる領域のサイズを単位ブロ
ックの整数倍としたものである。
は装置においては、アプリケーションプログラムからの
メモリの割り当て要求に応じて、静的なメモリ管理を行
う第1のメモリ管理方式又は手段はメモリ空間の一端か
ら割り当て領域を配置し、また、動的なメモリ管理を行
う第2のメモリ管理方式又は手段はメモリ空間の他端か
ら割り当て領域を配置する。これにより、メモリの空き
領域の新たな領域の割り当てや割り当て済み領域のサイ
ズ変更を効率よく行うことができる。
方法又は装置においては、メモリ空間は所定サイズに分
割した単位ブロックに分割されており、アプリケーショ
ンプログラムに対して割り当てる領域のサイズをこのブ
ロックの整数倍としたので、細分化された領域がメモリ
空間中に点在して大きな空き領域を作り出せないといっ
たことがなくなり、また、メモリ空間の細分化が抑制さ
れ、効率よくメモリ管理を行え、大きな空き領域を確保
することができる。
参照して説明する。図1は、本実施例のメモリ管理装置
をプリンタコントローラに実装した場合の概略ブロック
図である。メモリ管理装置は、ホストコンピュータ1か
ら送られてきた印刷命令等を処理しプリンタエンジン2
に処理された印刷イメージを転送するプリンタコントロ
ーラ3に搭載され、本発明によるメモリ管理方法はこの
プリンタコントローラ3全体を制御するCPU4により
実行される。プリンタコントローラ3は、前記CPU4
の他に、プリンタエンジン2を制御するための制御プロ
グラム及びフォントデータを格納したROM5と、RA
M6と、ホストコンピュータ1などの外部装置との通信
を行う入出力インターフェース7と、プリンタエンジン
2との通信を行うプリンタエンジンインターフェース8
と、これらを相互に接続するバス9とから構成される。
U4は、ROM5に格納されているプリンタ制御プログ
ラムに含まれるメモリ管理プログラムに基づいてRAM
6のメモリ領域を管理し、プリンタ制御プログラムから
の要求により、RAM6のメモリ空間に領域を割り当て
る。例えば、ホストコンピュータ1から送られてくる印
刷データを一時的に蓄える受信バッファとしての領域
や、印字データを処理する途中で生成される中間データ
を蓄える領域などは静的属性領域に割り当て、一時的に
蓄えられる(キャッシュされる)フォントデータなどは
動的属性領域に割り当てるようにしている。
を示す図である。メモリは連続したメモリ空間60を想
定する。メモリ空間60は、一番下位アドレスをMemLoE
nd61、一番上位のアドレスをMemHiEnd62で示し、メ
モリの上位アドレスから下位アドレスへ向かう方向に静
的属性を持つ領域が割り当てられ、下位アドレスから上
位アドレスへ向かう方向に動的属性を持つ領域が割り当
てられる。以降、前者を静的メモリ管理、後者を動的メ
モリ管理という。図示するメモリ空間60の中で、ハッ
チングで示した領域は既に割り当てられている領域であ
り、ハッチングが無い部分は割り当てられていない空き
領域である。
グラム(本実施例では、プリンタ制御プログラム)が必
要とするサイズの領域をMemStEnd62から、順番にMemL
oEnd61方向に向かって割り当てる。メモリ空間60に
はMemHiEnd62の直前に静的メモリ管理のための管理領
域63が確保され、管理領域63の直前をMemStEnd64
で示す。MemStEnd64とStAreaBottom65の間の領域6
6が、静的メモリ管理で使用されている領域である。St
AreaBottom65で示すアドレスが、静的メモリ管理によ
って割り当てられている領域の先端であり、StAreaBott
om65は、領域の割り当て、解放によって移動する。
グラムが必要とするサイズの領域をMemLoEnd61から、
順番にMemStEnd64方向に向かって割り当てる。MemLoE
nd61とDyAreaTop 67の間の領域68が動的メモリ管
理で使用されている領域である。DyAreaTop 67で示す
アドレスが動的メモリ管理によって割り当てられている
領域の先端であり、DyAreaTop 67は、領域の割り当
て、解放によって移動する。また、DyAreaTop 67とSt
AreaBottom65の領域69は、静的・動的メモリ管理の
どちらにも管理されていない未使用の空き領域である。
域の割り当て、割り当て済み領域のサイズ変更、割り当
て済み領域の開放)について、図3から図6を用いて説
明する。図3は、静的な属性に割り当てられている空間
周辺を示したメモリ空間60の概念図である。静的メモ
リ管理においては、使用可能な空間(MemLoEnd61〜Me
mStEnd64)をある一定のサイズで分割しておく。この
一つ一つを単位ブロックと呼ぶ。単位ブロックのサイズ
は、数百バイトから数Kバイトの間で、効率の良いサイ
ズをあらかじめ設定しておく。個々の単位ブロックのそ
れぞれの情報は、管理領域63に記憶される。静的メモ
リ管理においては、この単位ブロックを割り当て単位と
して管理を行い、アプリケーションプログラムから要求
されたサイズを満たす単位ブロックの整数倍の領域が割
り当てられる。
り当てについてのフローチャートである。領域の割り当
て処理において、CPU4は、アプリケーションプログ
ラムからの要求サイズに対して、単位ブロックがいくつ
必要か計算し(S1)、計算された単位ブロック数を使
用可能な空間DyAreaTop 67からMemStEnd64の中から
検索し(S2)、空きブロックが見つかれば(S3でY
ES)、その空きブロックに関する管理領域63の管理
情報を更新し(S4)、空きブロックの先頭アドレスを
アプリケーションプログラムに返して(S5)、終了す
る。一方、S3において、十分な空きブロックが見つか
らなかった場合には(S3でNO)、動的メモリ管理に
対して領域の整頓の要求を出す(S6)。
割り当て済みの動的プログラムに使用している領域を、
MemLoEnd61方向に移動して詰めて行くことにより、Dy
AreaTop 67がMemLoEnd61方向に移動し、その結果、
DyAreaTop 67とStAreaBottom65の間の未割り当ての
空き領域69が広がる。その未割り当て領域に十分な空
きブロックがあれば(S7でYES)、その空きブロッ
クに関する情報を更新し(S4)、見付かった空きブロ
ックの先頭アドレスをアプリケーションプログラムに返
して(S5)、終了する。S7において十分な空きブロ
ックが見つからなかった場合には(S7でNO)、割り
当て失敗となり、終了する。
済み領域のサイズ変更についてのフローチャートであ
る。この処理においては、既に割り当て済みの領域のサ
イズをアプリケーションプログラムの要求に応じて変更
する。要求サイズに応じて、単位ブロックがいくつ必要
か計算し(S11)、今までの割り当て済みブロック数
と今回の要求に対する必要ブロックサイズを比較し、割
り当てブロックの拡大が必要か否かを調べる(S1
2)。S12で今回の要求サイズが今までの割り当てサ
イズよりも小さく、拡大の必要がないと判断されれば
(S12でNO)、今までの割り当て済み領域を縮小
し、それに伴い管理領域63の管理情報も更新し(S1
3)、終了する。
ば、今まで割り当てられていたブロックの前後のブロッ
クの状況を検索し(S14)、今まで割り当てられてい
たブロックと前後の空きブロックで十分な領域が確保で
きるようであれば(S15でYES)、今まで割り当て
られていたブロックと前後の空きブロックで必要なブロ
ックを新しく割り当て(S16)、新しい割り当てに伴
い管理領域63の管理情報を更新し(S17)、必要な
らば今までのブロック内のデータを新しく割り当てられ
たブロックにコピーし(S18)、新しく割り当てられ
たブロックの先頭アドレスをアプリケーションプログラ
ム側に返し(S19)、終了する。
空き領域が不十分な場合(S15でNO)、十分な空き
ブロックを使用可能な空間DyAreaTop 67からMemStEnd
64の中から検索し(S20)、新たに割り当て可能か
否かを判断し(S21)、可能であれば(S21でYE
S)、その領域のブロックを新規に割り当てるブロック
として割り当て(S22)、今までのブロック内のデー
タを新しく割り当てられたブロックにコピーし(S2
3)、今までのブロック及び、新しいブロックの管理情
報を更新し(S24)、新規に割り当てるブロックの先
頭アドレスをアプリケーションプログラム側に返し(S
25)、終了する。
かった場合(S21でNO)、上述した図4のS6と同
様に動的メモリ管理に対して領域の整頓の要求を出す
(S26)。動的メモリ管理においては、割り当て済み
の領域をMemLoEnd61方向に移動して、詰めて行くこと
により、DyAreaTop 67がMemLoEnd61方向に移動し
て、その結果、DyAreaTop 67とStAreaBottom65の間
の未割り当て領域が広がる。十分な空きブロックがあれ
ば(S27でYES)、S22以降の処理に移る。S2
7において、十分な空きブロックが見つからなかった場
合には(S27でNO)、サイズ変更失敗となり、終了
する。
済み領域の開放についてのフローチャートである。この
処理においては、アプリケーションプログラムから支持
されたブロックを開放して空きブロックとし、管理領域
63の管理情報等を更新し(S31)、終了する。
を用いて説明する。図7は、動的な属性に割り当てられ
ている空間周辺を示したメモリ空間60の概念図であ
る。動的メモリ管理ではメモリの下位アドレスから領域
の割り当てを行う。動的メモリ管理において使用可能な
メモリ空間は、メモリの下位アドレスMemLoEnd61から
静的メモリ管理が使用している空間の下限を示すStArea
Bottom65までである。動的メモリ管理で割り当てられ
た領域は、新たな空き領域の確保のために移動すること
がある。そのために、アプリケーションプログラム側で
は割り当てられた領域の先頭アドレスでは管理できな
い。そこで、割り当てられた領域の先頭アドレスを別の
領域75に一度記憶しておき、アプリケーションプログ
ラムからは、その記憶された領域を介して、割り当てら
れた領域の先頭アドレスを得る。割り当てられた領域の
先頭アドレスをまとめて記憶しておく領域75をポイン
タ記憶領域と呼ぶ。ポインタ記憶領域75は、動的メモ
リ管理において移動の対象とならないように、静的メモ
リ管理で管理される領域に確保される。
求されたサイズの領域が割り当てられるが、割り当てら
れる領域それぞれに、管理領域が付随している。図7に
は割り当て済みの一つの領域80を拡大しており、アプ
リケーションプログラムに対して割り当てられた領域8
0aの直前にこの領域80aを管理するための管理情報
領域80bが付加されている。この管理情報領域80b
には、領域80のサイズ、領域80の前後に存在する領
域の先頭アドレス、それらの領域の割り当て済み・未割
り当ての属性などが記憶されている。
り当てについてのフローチャートである。領域の割り当
て処理において、アプリケーションプログラムからの要
求サイズに対して、そのサイズと管理情報領域とを加え
た大きさを満足する空き領域をMemLoEnd61からStArea
Bottom65の間で検索し(S41)、十分な空き領域が
あれば(S42でYES)、その領域を割り当て、その
領域に関する管理情報及びその領域の前後領域の管理情
報を管理情報領域80bにて更新する(S43)。そし
て、割り当てる領域の先頭アドレスをポインタ記憶領域
75に書き込み(S44)、ポインタ記憶領域75内の
書き込まれたアドレスをアプリケーションプログラムに
返して(S45)、終了する。
見つからなかった場合には(S42でNO)、動的メモ
リ管理によって管理されている領域(MemLoEnd61から
DyAreaTop 67の間)の整頓を行う(S46)。すなわ
ち、割り当て済みの領域をMemLoEnd61方向に移動し
て、詰めてゆくことにより、DyAreaTop 67がMemLoEnd
61の方向に移動して、その結果、DyAreaTop 67とSt
AreaBottom65の間の未割り当ての空き領域69が広が
り、その空き領域69に、十分な空き領域が存在すれば
(S47でYES)、処理はS43に移る。十分な空き
領域が存在しなければ(S47でNO)、割り当て失敗
となり、終了する。
済み領域のサイズ変更についてのフローチャートであ
る。この処理においては、既に割り当て済みの領域のサ
イズをアプリケーションプログラムの要求に応じて変更
する。要求サイズと今までの割り当てサイズとを比較し
(S51)、今回のサイズが今までよりも小さく、領域
拡大の必要がなければ(S51でNO)、今までの割り
当て済み領域を縮小し、それに伴い管理情報も更新し
(S52)、終了する。
(S51でYES)、今まで割り当てられていた領域の
前後の領域の状況を検索し(S53)、今まで割り当て
られていた領域と前後の空き領域で十分な領域が確保で
きるようであれば(S54でYES)、今まで割り当て
られていた領域と前後の空き領域で必要な領域を新しく
割り当て(S55)、新しい割り当てに伴い管理情報を
更新し(S56)、今までの領域内のデータを新しく割
り当てられた領域にコピーし(S57)、ポインタ記憶
領域75に書き込まれていた割り当て領域の先頭アドレ
スを新しく割り当てる領域の先頭アドレスに書き換え
(S58)、ポインタ記憶領域75に書き込まれたアド
レスをアプリケーションプログラムに返し(S59)、
終了する。
た場合(S54でNO)、MemLoEnd61からStAreaBott
om65の間で十分な空き領域を検索し(S60)、十分
な空き領域があり、新たに割り当て可能であれば(S6
1でYES)、その領域を新規に割り当てる領域とし
(S62)、今まで割り当てられていた領域の内部のデ
ータを新しく割り当てる領域にコピーし(S63)、今
まで割り当てられていた領域を未使用にし、新しく割り
当てる領域の管理情報を更新し(S64)、ポインタ記
憶領域75に書き込まれていた割り当て領域の先頭アド
レスを新しく割り当てる領域の先頭アドレスに書き換え
(S65)、ポインタ記憶領域75の書き込まれたアド
レスをアプリケーションプログラムに返し(S66)、
終了する。
らなかった場合は(S61でNO)、上述した図8のS
46と同様に動的メモリ管理によって管理している領域
(MemLoEnd61からDyAreaTop 67の間)の整頓を行う
(S67)。すなわち、割り当て済みの領域をMemLoEnd
61方向に移動して、詰めていくことにより、DyAreaTo
p 67がMemLoEnd61方向に移動して、その結果、DyAr
eaTop 67とStAreaBottom65の間の未割り当て領域が
広がる。その未割り当て領域に、十分な空き領域が存在
すれば(S68でYES)、処理はS62に移る。十分
な空き領域が存在しなければ(S68でNO)、割り当
て失敗となり、終了する。
て済み領域の開放についてのフローチャートである。こ
の処理においては、アプリケーションプログラムから指
示された領域を開放して空き領域とし、管理情報等を更
新し(S71)、終了する。
よれば、メモリ空間60を管理する際、静的メモリ管理
はメモリ空間60の上位アドレスMemHiEnd62からMemL
oEnd61へ向かう方向に静的な属性を持つ領域を割り当
て(図4〜図6の処理)、動的メモリ管理はメモリ空間
60の下位アドレスMemLoEnd61からMemHiEnd62へ向
かう方向に動的な属性を持つ領域を割り当てる(図8〜
図10の処理)ことにより2つの異なる属性の領域が分
離され、メモリ空間60を有効に利用することができ
る。また、静的メモリ管理で管理される領域66は、一
定のサイズのブロックに分割され、領域をこのブロック
の整数倍として割り当てるようにしたことで、一定サイ
ズ以下にメモリ空間60が細分化されることはなく、効
率的なメモリ管理が行える。
8の割り当ては、動的属性で割り当てられる領域の先頭
アドレス情報をポインタ記憶領域75を介してアプリケ
ーションプログラムに返すようにしているので(図8の
S43〜S45、図9のS64〜S66及びS56〜S
59、図10のS71)、動的属性を持つ領域のサイズ
変更、他の動的属性を持つ領域の割り当て、他の動的属
性を持つ領域のサイズ変更、静的メモリ管理からの領域
の整頓要求が行われても、割り当て済み領域が自由にメ
モリ空間中を移動可能であるために、メモリ管理の自由
度が大きく、メモリ使用の高効率化を図ることができ、
適正にメモリ管理を行うことができる。
種々の変形が可能である。例えば、上記実施例では、静
的プログラム領域66は使い易いバイト数の単位ブロッ
クに任意に分割しておくことで一層メモリ空間60を効
率よく使用することができる。また、実施例では上位ア
ドレスから下位アドレスへ向かう方向に静的メモリ管理
による管理、下位アドレスから上位アドレスへ向かう方
向に動的メモリ管理による管理を行うようにしたが、静
的メモリ管理で下位アドレスから上位アドレスへ向かう
方向に、動的メモリ管理で上位アドレスから下位アドレ
スへ向かう方向に領域を割り当てるようにしてもよい。
るメモリ管理方法又は装置によれば、メモリ空間を静的
属性を持つ領域と、動的属性を持つ領域とに分離し、静
的属性を持つ領域を管理する静的メモリ管理はメモリ空
間の一端から他端へ向かう方向に領域を割り当て、動的
属性を持つ領域を管理する動的メモリ管理は他端から一
端へ向かう方向に領域を割り当てるようにしたことによ
り、動的属性で割り当てられた領域間に静的属性で割り
当てられた領域が存在することがなく、他の動的属性の
領域の割り当てやサイズ変更が自在となり、従って、効
率の良いメモリ管理が実現できる。
管理方法又は装置によれば、メモリ空間を予め所定サイ
ズの単位ブロックに分割しておき、アプリケーションプ
ログラムに対して単位ブロックの整数倍で割り当て、割
り当てられた領域の先頭アドレスを固定するようにして
いるので、不規則なサイズによるメモリ空間の細分化を
防ぐことが可能となり、空き領域の確保が容易となり、
メモリ空間を効率よく管理することができる。
られるメモリ管理装置の概略構成を示すブロック図であ
る。
示した図である。
におけるメモリ空間の概念を示した図である。
当て処理を示したフローチャートである。
み領域のサイズ変更処理を示したフローチャートであ
る。
み領域の解放処理を示したフローチャートである。
におけるメモリ空間の概念を示した図である。
当て処理を示したフローチャートである。
み領域のサイズ変更処理を示したフローチャートであ
る。
済み領域の解放処理を示したフローチャートである。
動きを示した概念図である。
Claims (4)
- 【請求項1】 一つの連続したメモリ空間において、 アプリケーションプログラムに対して割り当て済みの領
域が他の領域の新規割り当てあるいは他の領域のサイズ
変更に伴い再配置されることがない静的なメモリ管理を
行う第1のメモリ管理方式と、 アプリケーションプログラムに対して割り当て済みの領
域が他の領域の新規割り当てあるいは他の領域のサイズ
変更に伴い再配置されることがある動的なメモリ管理を
行う第2のメモリ管理方式とを備え、 前記第1のメモリ管理方式は前記メモリ空間の一端から
割り当て領域を配置し、前記第2のメモリ管理方式は前
記メモリ空間の他端から割り当て領域を配置することを
特徴とするメモリ管理方法。 - 【請求項2】 前記第1のメモリ管理方式において、メ
モリ空間は予め定めたサイズの単位ブロックを単位に管
理され、アプリケーションプログラムに対して割り当て
る領域のサイズは前記単位ブロックの整数倍であること
を特徴とする請求項1記載のメモリ管理方法。 - 【請求項3】 一つの連続したメモリ空間において、 アプリケーションプログラムに対して割り当て済みの領
域が他の領域の新規割り当てあるいは他の領域のサイズ
変更に伴い再配置されることがない静的なメモリ管理を
行う第1のメモリ管理手段と、 アプリケーションプログラムに対して割り当て済みの領
域が他の領域の新規割り当てあるいは他の領域のサイズ
変更に伴い再配置されることがある動的なメモリ管理を
行う第2のメモリ管理手段とを備え、 前記第1のメモリ管理手段は前記メモリ空間の一端から
割り当て領域を配置し、前記第2のメモリ管理手段は前
記メモリ空間の他端から割り当て領域を配置することを
特徴とするメモリ管理装置。 - 【請求項4】 前記第1のメモリ管理手段において、メ
モリ空間は予め定めたサイズの単位ブロックを単位に管
理され、アプリケーションプログラムに対して割り当て
る領域のサイズは前記単位ブロックの整数倍であること
を特徴とする請求項3記載のメモリ管理装置。
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)
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 | 支付宝(杭州)信息技术有限公司 | 用于对物理内存池进行分配管理的方法及装置、物理内存池 |
-
1995
- 1995-01-24 JP JP02878695A patent/JP3610528B2/ja not_active Expired - Fee Related
Cited By (12)
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 |