JP3792194B2 - メモリ管理システム - Google Patents

メモリ管理システム Download PDF

Info

Publication number
JP3792194B2
JP3792194B2 JP2002358003A JP2002358003A JP3792194B2 JP 3792194 B2 JP3792194 B2 JP 3792194B2 JP 2002358003 A JP2002358003 A JP 2002358003A JP 2002358003 A JP2002358003 A JP 2002358003A JP 3792194 B2 JP3792194 B2 JP 3792194B2
Authority
JP
Japan
Prior art keywords
size
size range
storage means
stored
memory
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.)
Expired - Fee Related
Application number
JP2002358003A
Other languages
English (en)
Other versions
JP2004192208A (ja
Inventor
忠 伊藤
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Mita Corp
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 Kyocera Mita Corp filed Critical Kyocera Mita Corp
Priority to JP2002358003A priority Critical patent/JP3792194B2/ja
Publication of JP2004192208A publication Critical patent/JP2004192208A/ja
Application granted granted Critical
Publication of JP3792194B2 publication Critical patent/JP3792194B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は,動的に使用されるメモリ領域に対して割付要求がされた際に,当該メモリ領域の空領域を選択して割付処理を行うメモリ管理システムに関し,特に新たに要求されたメモリ割付を高速処理するメモリ管理システムに関するものである。
【0002】
【従来の技術】
メモリ割付要求がされた際にメモリ領域の空領域を選択して動的に割付処理を実行する代表的な方法として,最良適合法(best-fit)と最初適合法(first-fit)が一般的に知られている。
最良適合法は,メモリ領域に散在している全ての空領域を探査し,割付要求がされたサイズに最も適合する空領域を選択するものであるため,メモリ全領域を検索する必要があり,割付処理に費やす時間が大きいという欠点があった。
一方,最初適合法は,割付要求がされたサイズが格納され得る空領域を,空領域の大小に関係なくメモリアドレスの昇順に探査し,最初に探査された空領域を選択するものである。このため,必然的にアドレス先頭付近の利用頻度が高まり,メモリアドレス先頭付近にメモリ領域の断片化(フラグメンテーション)が頻繁に発生し,メモリ不足が発生しやすいという欠点があった。
【0003】
この問題を解決するため,従来,例えば特許文献1に示されるように,過去に割付要求がされたサイズの統計をとり,その大きさに準じてクラス分けをし,割付要求の回数が多いクラス順に要求サイズに適合する空領域を選択する方法がある。
【0004】
【特許文献1】
特開平9−16463号公報
【0005】
【発明が解決しようとする課題】
しかしながら,割付要求がされた回数が少ないクラスに属するサイズの割付要求がされた場合は,結局最後に探査されるため,却って割付処理に多大な時間を費やし,従って,上記最良適合法や最初適合法と較べれば無駄な選択処理が回避されるとはいえ,選択される全てのサイズについて統計的に見ると,上記特許文献1に記載の方法は依然として選択効率に問題がある。
従って,本発明は上記事情に鑑みてなされたものであり,その目的とするところは,割付要求がされた情報のサイズに関わらず,無駄な処理を排除し,効率のよい割付処理を実行することができるメモリ管理システムを提供することにある。
【0006】
【課題を解決するための手段】
上記目的を達成するために本発明は,動的に使用されるメモリ領域に対して割付要求がされた際に当該メモリ領域の空領域を選択して割付処理を行うメモリ管理システムにおいて,上記メモリに記憶し得る情報のサイズを適宜のサイズ範囲毎に分級し,このサイズ範囲を記憶するサイズ範囲記憶手段と,上記適宜のサイズ範囲に属するサイズを持つ空領域の探査順位を設定するための所定のルールを記憶する順位付けルール記憶手段と,上記割付要求がなされた情報のサイズに応じた上記サイズ範囲記憶手段に記憶されたサイズ範囲を選択すると共に,上記順位付けルール記憶手段に記憶された上記所定のルールに基づいて,上記割付要求がされた情報の割付位置を特定する割付位置特定手段と,上記算出値が所定の数値を超えることを条件に,上記算出対象のサイズ範囲を分割するサイズ範囲分割手段と,を具備してなることを特徴とするメモリ管理システムとして構成されている。
また,動的に使用されるメモリ領域に対して割付要求がされた際に当該メモリ領域の空領域を選択して割付処理を行うメモリ管理システムにおいて,上記メモリに記憶し得る情報のサイズを適宜のサイズ範囲毎に分級し,このサイズ範囲を記憶するサイズ範囲記憶手段と,上記適宜のサイズ範囲に属するサイズを持つ空領域の探査順位を設定するための所定のルールを記憶する順位付けルール記憶手段と,上記割付要求がなされた情報のサイズに応じた上記サイズ範囲記憶手段に記憶されたサイズ範囲を選択すると共に,上記順位付けルール記憶手段に記憶された上記所定のルールに基づいて,上記割付要求がされた情報の割付位置を特定する割付位置特定手段と,上記サイズ範囲記憶手段により記憶された複数のサイズ範囲に属するサイズを持つ上記空領域数の合計数を算出し,この合計数値が所定の数値未満であることを条件に,上記複数のサイズ範囲を併合するサイズ範囲併合手段と,を具備してなることを特徴とするメモリ管理システムとして構成される。
これにより,割付要求がされたサイズが属するサイズ範囲をまず選択し,選択された範囲内のみを探査するだけで割付要求サイズの割付位置を特定することができるので,これまで無駄に探査処理を行っていた空領域を探査対象から排除することができ,割付要求がされた情報のサイズに左右されず,常に安定した速度で効率よく割付処理を実行することが可能となる。
この場合,上記所定のルールとしては,上記適宜のサイズ範囲に属するサイズを持つ空領域をそのサイズに応じて順位付けするもの,上記適宜のサイズ範囲に属するサイズを持つ空領域をそのアドレスに応じて順位付けするもの,若しくは割付要求頻度の高い割付サイズに応じて順位付けするもの,が考えられる。
【0007】
また,上記サイズ範囲記憶手段により記憶されたサイズ範囲に属するサイズを持つ上記空領域数を算出可能とし,この算出値を記憶する空領域数記憶手段を具備する構成であるため,例えばメモリ内に散在する空領域数と空領域サイズからメモリの断片化率,或いはメモリの使用率等を算出することができ便利である。もちろん,前記分級されるサイズ範囲の分割或いは併合もこの機能を前提として可能となる。
さらに,上記サイズ範囲分割手段を具備する構成では,探査する範囲を絞り込み,常に一定のサイズ範囲内だけを探査することができるので,空領域を迅速に探査することができ,その結果,高速に割付処理をすることができる。
また,上記サイズ範囲併合手段を具備する構成では,例えば複数のサイズ範囲に属する空領域数の合計数が極端に少なくなった場合は,特定の複数のサイズ範囲を併合することにより,サイズ範囲数が不必要に増加することによるサイズ範囲を選択するためだけの無駄な探査処理を排除するため,処理全体として空領域を迅速に探査することができ,その結果,高速に割付処理をすることができる。
【0008】
この場合,上記サイズ範囲記憶手段により記憶されたサイズ範囲,若しくは上記順位付けルール記憶手段により記憶される所定のルール,若しくは上記空領域数記憶手段により記憶された空領域数,若しくは上記サイズ範囲分割手段により分割されたサイズ範囲,若しくは上記サイズ範囲併合手段により併合されたサイズ範囲のいずれか1つ又は複数をテーブル化するテーブル作成手段を更に具備するものが望ましい。このようなテーブルを参照するだけで,効率のよいメモリ選択が可能となる。
【0009】
【発明の実施の形態】
以下添付図面を参照しながら,本発明の実施の形態について説明し,本発明の理解に供する。尚,以下の実施の形態は,本発明を具体化した一例であって,本発明の技術的範囲を限定する性格のものではない。
ここに,図1は本発明の実施の形態に係るメモリ管理システムにおけるメモリの使用状態及び空領域に関する各種情報を示す図,図2は空領域の増加により図1のメモリ使用状態が変化したことを説明する図,図3は空領域の増加によりサイズ範囲が分割されることを説明する図,図4は割付要求時の空領域探査処理を説明するフローチャート,図5はクラスの分割処理及び併合処理を説明するフローチャートである。
【0010】
まず,図1〜図3を用いて,本発明の一実施形態におけるメモリ管理システムの概要について説明する。尚,この実施形態は,一般的な演算処理,記憶処理を行い得る通常のコンピュータによる処理を前提としており,特殊なハードウェア資源を用いる必要がないので,ハードウェア資源の説明はここでは省略される。図中のテーブル11,21及び31は,上記テーブル作成手段により作成され,メモリ内の空領域に関する各種の情報を管理するテーブルの一例である。具体的には,この管理テーブルは,例えば不揮発性メモリに記憶されるものであり,この管理テーブルには,後記サイズ範囲記憶手段により記憶される全メモリサイズを適宜のサイズ範囲2にクラス分け(分級)するための情報(後記サイズ範囲記憶手段により記憶される),後記空領域数記憶手段により記憶されるクラス分けする各クラス1に属する空領域数3に関する情報(後記空領域数記憶手段により記憶される),及び後記順位付けルール記憶手段により記憶される各クラス1に属する空領域を探査するための順位付けをするルールの一例である探査ポインタ4に関する情報(後記順位付けルール記憶手段により記憶される)等が含まれている。また,メモリ内の空領域数及び空領域サイズからメモリの断片化率,或いはメモリの使用率等を算出し,上記各クラス毎の当該算出情報を含むものであってもよい。この管理テーブルは,後述する当該メモリ管理システムが行なうテーブル更新処理(図4,S70参照)によってその内容が更新されて管理される。
本発明に係る実施形態においては,上記探査ポインタ4の設定方法,即ち,空領域の探査の順位付けのルールは,クラス1に属する空領域のサイズに関して探査の順位がサイズの昇順に設定されるものとして説明する。しかし,特にこれに限られることはなく,例えば上記空領域のサイズに関して降順に設定されるものでもよい。クラス分けされたサイズ範囲内においては,空領域数が絞り込まれているため,メモリ領域の断片化が生じにくく,断片化によるメモリ不足が頻繁に発生しないというメリットがある。また,空領域のメモリアドレスに応じて設定されるものでもよい。既に割り付けられる空領域の属する範囲が絞り込まれているので,この範囲内であればアドレスに基づいて空領域を探査することとしても割付け処理が大きく遅延することがなく,空領域のサイズに対してランダムに探査されることになるので,却って割付け処理速度が増す場合があるからである。更に,割付要求頻度の高いサイズに応じた空領域のサイズに基づいて設定されるものでもよい。この場合は最近のメモリ使用状況に対応する探査が可能となる。このように,管理テーブル11におけるサイズ範囲2は,メモリ12に記憶し得る情報のサイズを適宜のサイズ範囲毎に分級し,このサイズ範囲を記憶するサイズ範囲記憶手段の一例であり,上記探査ポインタ4は,上記適宜のサイズ範囲に属するサイズを持つ空領域の探査順位を設定するためのルールを記憶する順位付けルール記憶手段の一例である。
図中のメモリ12,22及び32では,メモリの使用状態が模式的に表されている。尚,括弧内の数値は空領域のサイズを表す。
【0011】
図1に示されるメモリ12を対象とする割付処理について,管理テーブル11を用いて説明する。現在のメモリ使用状態では,クラスC1(0<S≦1000:Sはメモリサイズ)に「100」と「800」の2個の空領域が属しており,クラスC2(1000<S≦5000)に「1200」「1400」「2000」「3000」「5000」の5個の空領域が属しているものとする。このメモリ使用状態において,例えばクラスC1のサイズ範囲に属するサイズの割付要求がされた場合,CPUによるその割付要求サイズに該当する空領域の探査は,探査ポインタR1(x)に従って,
R1(1):[100]→R1(2):[800]
の順序(実線矢印順)で行なわれる。即ち,探査ポインタRn(x)は,クラスCnというサイズ範囲に属するサイズを持つ空領域を探査するときの順位を記憶するもので,従って,探査ポインタR1(x)は,クラスC1というサイズ範囲に属するサイズを持つ空領域を探査するときの順位を記憶するものである。この場合,サイズの昇順に探査するというルールに基づく順位が記憶されるのである。
また,同様に,例えばクラスC2のサイズ範囲に属するサイズの割付要求がされた場合,その割付要求サイズに該当する空領域の探査は,探査ポインタR2(x)に従って,
R2(1):[1200]→R2(2):[1400]→R2(3):[2000]→R2(4):[3000]→R2(5):[5000]
の順序(点線矢印順)で行なわれる。
このように,割付要求がなされた情報のサイズに応じた上記サイズ範囲記憶手段に記憶されたサイズ範囲を選択すると共に,上記順位付けルール記憶手段に記憶された上記所定のルールに基づいて,上記割付要求がされた情報の割付位置を特定する,というCPUによる機能を達成する手段が割付位置特定手段である。
【0012】
次に,探査ポインタ4の更新処理について説明する。例えば,図1のようなメモリ12の使用状態において,例えば,使用中であった「2500」の大きさのメモリ領域が,データの削除等により空領域となった場合,即ち,「2500」のサイズの空領域が1個増加した場合について,図2を用いて説明する。
図示しないCPUはメモリ22を常時監視しているが,このとき増加した空領域のサイズは「2500」であるので,この空領域は管理テーブル21を参照すると,クラスC2に属することになる。従って,CPUは,クラスC2の空領域数を1個増加させて,合計6個とすると共に,空領域「2500」を含むクラスC2の探査ポインタR2(x)に記憶された探査順位を図1の点線で示したものから,図2の点線で示したものに更新する。即ち,「空(2000)」の次に「空(3000)」を探査するという順位を,点線矢印Y1,Y2のように
「空(2000)」→「空(2500)」→「空(3000)」
のように更新する。これにより,クラスC2のサイズ範囲に属するサイズの割付要求がされた場合は,その割付要求サイズに該当する空領域の探査は,探査ポインタR2(x)に従って,
R2(1):[1200]→R2(2):[1400]→R2(3):[2000]→R2(4):[2500]→R2(5):[3000]→R2(6):[5000]
の順序(点線矢印順)で行なわれることになる。
【0013】
次に,サイズ範囲分割手段及びサイズ範囲併合手段について説明する。
上記のようにメモリの割付及び削除を繰り返すことにより,メモリ内の空領域が流動的に増加或いは減少する。今,メモリ内の空領域が著しく増加し,例えば特定のクラスCnのサイズ範囲に属する空領域数が1000個に増加した場合を考える。このとき,クラスCnのサイズ範囲に属するサイズの割付要求がされた場合,仮に要求サイズに該当する空領域が1000番目に位置付けされているとすると,1000個の空領域情報が読み込まれ,後述する割付可能サイズかどうかの判断(図4,S40参照)が1000回行なわれることになり,空領域の探査に膨大な時間がかかる。
従って,この場合,図3に示す管理テーブル31において,1つのクラスで管理し得る最大空領域数を定め,クラス1のあるサイズ範囲2に属する空領域数3が,この最大空領域数を越えた場合には,そのクラス内において,サイズ範囲2を複数に分割し(本実施の形態では2分割とする),その分割されたサイズ範囲に応じて新たにクラス分けをすることによって,上記管理テーブルにおける空領域情報を管理することにより,割付サイズの探査対象の空領域数を減少させ,割付け処理を迅速に実行する。
具体的には,例えば上記のクラスが管理し得る最大空領域数を15個と定めた場合,空領域数がこの数値超えて16になると同時に,この空領域が属するクラスは2分割されることになる。従って,クラスCnに1000の空領域が存在する場合においては,クラスCnは最多で125(1000/8)のクラスに分割さる。もし分割しないすると,最多で1000回の割付可能性の判断を行なわなければならないが,このように分割すると,分割された全てのクラスが8個の空領域を管理することになるので,上記管理テーブルの空領域情報を読み込み,割付可能サイズかどうかの判断は,割り付けようとする情報のサイズがどのサイズ範囲に属するかの判断を含めても,最多で125+8回の合計133回行なわれるだけである。また,上記判断回数が最も多くなるのは,クラスCnが124のクラスに分割され,探査される最後のクラスが15個の空領域を管理する場合であるが,この場合であっても,124+15回の合計139回の判断が行なわれるだけである。このように,上記1つのクラスが管理し得る最大空領域数を定めることにより,探査する範囲を絞り込み,これまで無駄に探査処理を行っていたメモリ領域を探査対象から排除し,常に一定のサイズ範囲内だけを探査することができるので,空領域を迅速に探査することができ,その結果,高速に割付処理をすることが可能となる。
この新たなクラス分けの処理については,後述する図5の分割及び併合処理において詳しく説明される。
上述したように,1つのサイズ範囲に属する空領域数が所定値を越えると,そのサイズ範囲を分割する処理をCPUに実行させる手段が,サイズ範囲分割手段である。
【0014】
また逆に,メモリの使用によりメモリ内の空領域が減少し,例えば1つのクラスのサイズ範囲に属する空領域数の合計数が極端に少なくなる場合も想定される。この場合は,例えば特定の隣接するクラスCm,Cm+1のサイズ範囲に属する空領域数の合計数が例えば10未満であることを条件に,上記サイズ範囲併合手段により上記クラスCmとCm+1を併合することにより,クラス数が不必要に増加することを防止し,無駄なクラス選択処理を排除することができるため,その結果,空領域の探査が迅速に実行され得ることになる。かかる処理は後述する図5の分割及び併合処理において実行される。
このように,複数のサイズ範囲に属する空領域数の合計が,所定数値未満の場合にこれらのサイズ範囲を併合させる機能をCPUに実行させる手段が,サイズ範囲併合手段である。
【0015】
図3は,クラスC2で管理する最大空領域数を15とした場合であって,テーブル上記図2のメモリ22の使用状態が,クラスC2に16の空領域が属するようなメモリ使用状態になった場合に,クラスC2をクラスC2とクラスC3(それぞれ空領域数8)とに分割したときの管理テーブル,メモリ使用状態の模式図,及び探査ポインタ4による分割後のメモリ空領域の探査順序が示されている。管理テーブル31(a)はクラスC2に16の空領域が属する場合の管理テーブル,管理テーブル31(b)は上記クラスC2をクラスC2とクラスC3とに分割したときの管理テーブルである。
図3に示されるメモリ32の使用状態において,クラスC2のサイズ範囲に属するサイズの割付要求がされた場合,その割付要求サイズに該当する空領域の探査は,探査ポインタR2(x)に従って,
R2(1):[1200]→………→R2(7):[1400]→R2(8):[2000]
の順序(点線矢印順)で行なわれ,クラスC3のサイズ範囲に属するサイズの割付要求がされた場合,その割付要求サイズに該当する空領域の探査は,探査ポインタC(x)に従って,
R3(1):[2500]→R3(2):[3000]→R3(3):[4000]→………→R3(8):[5000]
の順序(一点鎖線矢印順)で行なわれる。
【0016】
次に,図4のフローチャートを用いて,割付要求がされたサイズが格納し得る空領域を探査する処理手順について説明する。図中のS10,S20,…は処理手順(ステップ)番号を示す。処理はステップS10より開始される。
【0017】
メモリ領域に対して割付要求がされると,まず,クラスC1から昇順に,割付要求サイズ(p)を格納し得る空領域の属するクラス(Ck)が探査される(S10,S20)。つまり,ステップS20では,割付要求サイズ(p)がクラスで管理し得る最大空領域サイズ(CkSmax)以上であるかどうかが判断される(S20)。割付要求サイズ(p)が上記最大空領域サイズ(CkSmax)よりも大きいと判断された場合は,全てのクラスについて探査するため,次のクラスを探査対象に指定した後に(S21),ステップS20〜S21のループ処理が実行される。
ステップS20において,割付要求サイズ(p)がクラス(Ck)で管理し得る最大空領域サイズ(CkSmax)以下であると判断される,つまり割付要求サイズ(p)を格納し得る空領域が探査対象のクラス(Ck)に属していると判断されると,ステップS30に進む。ステップS21のようにサイズ範囲の小さいものから昇順にサーチが行なわれるので,必要以上に大きいサイズ範囲が選択されることはない。
ステップS30では,上記探査対象のクラス(Ck)内において,クラス内の空領域サイズの昇順に探査し得るよう関連付けて探査ポインタ(Rk(x))が設定される。このように探査ポインタが所謂チェーン化して設定されることで,プログラムソフト等によって探査ポインタが付された空領域を容易にチェーン探査することが可能になる。
上記探査ポインタが設定された後は,クラスCkに属する空領域の内,最もサイズの小さい空領域に付された探査ポインタ(Rk(1))の空領域(Rk(1)S)から探査が開始され(S40),割付要求サイズ(p)を格納し得る空領域(Rk(u)S)が見つかるまで順次昇順に探査される(S50,S51)。
ステップS50において,割付要求サイズ(p)を格納し得る空領域(Rk(u)S)が見つかると,この空領域には新たなデータが割り付けられ,つまりメモリ使用中の状態になる。従って,もはや空領域ではないので,ステップS60において,この空領域に付されていた探査ポインタ(Rk(u))の設定は解除される。
ステップS70では,使用中のデータが削除等されることによって増加した空領域や,逆に,新たなデータが割付けられることによって減少した空領域,及び新たなデータが割り付けられたことにより生じる余分空領域,に基づいて,サイズ範囲2,空領域数3の空領域情報が更新される。また,空領域サイズの昇順に探査し得るよう関連付けられた探査ポインタ4の設定も,上記更新されたサイズ範囲や空領域数に応じて更新される。このテーブル更新処理により,新たに要求されるメモリ割付が正常に行なわれることになる。
ステップS70の処理がなされると,ステップS80に進む。
【0018】
図5のフローチャートを用いて,上記ステップS80で行われるクラスの分割処理及び併合処理について説明する。処理はステップS210より開始される。
分割処理及び併合処理の対象となるかどうかの判断は,まず,クラスC1から開始される(S210)。
ステップS220では,クラスCkに属する最小空領域(CkSmin)が0であるかどうかが判断される。この判断は後述するステップS220〜S270の無限ループ処理の解除条件である。上記最小空領域(CkSmin)が0であると判断されれば,空領域が無ければ分割も併合も必要がないので,当該無限ループは解除され,分割及び併合処理が終了し,上記最小空領域(CkSmin)が0でないと判断されれば,ステップS220〜S270の無限ループ処理を行う。
ステップS230では,クラスCk内の空領域数(CkT)が所定の値T1(本例では,T1=16)以上であるかどうかが判断される。T1及び後述するT2は共に1以上の予め定められるの整数であり,T1≧T2の関係を有する。ステップS230においてクラスCk内の空領域数(CkT)がT1以上であると判断がされれば,クラスCkはCkとCk+1に分割される(S240)。ここでは2分割することとしたが,これに限られず,2以上の複数に分割する形態としても良い。その後ステップS250に進む。クラスCk内の空領域数(CkT)がT1未満であると判断がされれば,クラスCkは分割されずにステップS250に進む。
ステップS250では,クラスCk内の空領域数(CkT)とその隣のクラスCk+1の空領域数(Ck+1T)の合計数が所定の値T2(本例では,T2=10)以上であるかどうかが判断される。クラスCk内の空領域数(CkT)及びクラスCk+1の空領域数(Ck+1T)の合計数がT2未満であると判断がされれば,クラスCk+1はCkに併合される。ここでは2個のクラスを併合することとしたが,これに限られず,2以上の複数のクラスを1のクラスに併合する形態としても良い。その後ステップS270に進む。クラスCk内の空領域数(CkT)及びクラスCk+1の空領域数(Ck+1T)の合計数がT2以上であると判断がされれば,クラスは併合されずにステップS270に進み,次のクラスについて同様に上記ステップS220〜S270の無限ループ処理が行なわれる。
【0019】
【発明の効果】
以上説明したように,本発明によれば,割付要求がされたサイズが属するサイズ範囲を選択し,これまで無駄に探査処理を行っていた空領域を探査対象から排除し,選択された範囲内だけを探査するので,割付要求がされた情報のサイズに関わらずに割付位置を特定することができるので,無駄な探査を排し,常に安定した速度で効率よく割付処理を実行することが可能となる。
また,分級されたサイズ範囲に属する空領域数を所定の数値に設定することにより,分級されたサイズ範囲を更に分級し,或いは複数のサイズ範囲を1の範囲に併合することにより,常に一定のサイズ範囲内だけを探査すると共に,サイズ範囲数が不必要に増加することによる無駄な探査処理を排除するため,割付要求サイズを格納し得る空領域を迅速に探査することができ,その結果,高速に割付処理をすることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るメモリ管理システムにおけるメモリの使用状態及び空領域に関する各種情報を示す図。
【図2】空領域の増加により図1のメモリ使用状態が変化したことを説明する図。
【図3】空領域の増加によりサイズ範囲が分割されることを説明する図。
【図4】本発明の実施の形態に係るメモリ管理システムにおいて実行される割付要求時の空領域探査処理を説明するフローチャート。
【図5】本発明の実施の形態に係るメモリ管理システムにおいて実行される分割処理及び併合処理を説明するフローチャート。
【符号の説明】
1…分級されたサイズ範囲のクラス名称表示欄
2…サイズ範囲表示欄
3…空領域数表示欄
4…探査ポインタ表示欄
11,21,31…管理テーブル
12,22,32…メモリ

Claims (7)

  1. 動的に使用されるメモリ領域に対して割付要求がされた際に当該メモリ領域の空領域を選択して割付処理を行うメモリ管理システムにおいて,
    上記メモリに記憶し得る情報のサイズを適宜のサイズ範囲毎に分級し,このサイズ範囲を記憶するサイズ範囲記憶手段と,
    上記適宜のサイズ範囲に属するサイズを持つ空領域の探査順位を設定するための所定のルールを記憶する順位付けルール記憶手段と,
    上記割付要求がなされた情報のサイズに応じた上記サイズ範囲記憶手段に記憶されたサイズ範囲を選択すると共に,上記順位付けルール記憶手段に記憶された上記所定のルールに基づいて,上記割付要求がされた情報の割付位置を特定する割付位置特定手段と,
    上記サイズ範囲記憶手段により記憶されたサイズ範囲に属するサイズを持つ上記空領域数を算出し,この算出値を記憶する空領域数記憶手段と,
    上記算出値が所定の数値を超えることを条件に,上記算出対象のサイズ範囲を分割するサイズ範囲分割手段と,
    を具備してなることを特徴とするメモリ管理システム。
  2. 上記サイズ範囲記憶手段により記憶されたサイズ範囲,若しくは上記順位付けルール記憶手段により記憶される所定のルール,若しくは上記空領域数記憶手段により記憶された空領域数,若しくは上記サイズ範囲分割手段により分割されたサイズ範囲のいずれか1つ又は複数をテーブル化するテーブル作成手段を更に具備してなる,請求項に記載のメモリ管理システム。
  3. 動的に使用されるメモリ領域に対して割付要求がされた際に当該メモリ領域の空領域を選択して割付処理を行うメモリ管理システムにおいて,
    上記メモリに記憶し得る情報のサイズを適宜のサイズ範囲毎に分級し,このサイズ範囲を記憶するサイズ範囲記憶手段と,
    上記適宜のサイズ範囲に属するサイズを持つ空領域の探査順位を設定するための所定のルールを記憶する順位付けルール記憶手段と,
    上記割付要求がなされた情報のサイズに応じた上記サイズ範囲記憶手段に記憶されたサイズ範囲を選択すると共に,上記順位付けルール記憶手段に記憶された上記所定のルールに基づいて,上記割付要求がされた情報の割付位置を特定する割付位置特定手段と,
    上記サイズ範囲記憶手段により記憶されたサイズ範囲に属するサイズを持つ上記空領域数を算出し,この算出値を記憶する空領域数記憶手段と,
    上記サイズ範囲記憶手段により記憶された複数のサイズ範囲に属するサイズを持つ上記空領域数の合計数を算出し,この合計数値が所定の数値未満であることを条件に,上記複数のサイズ範囲を併合するサイズ範囲併合手段と,
    を具備してなることを特徴とするメモリ管理システム。
  4. 上記サイズ範囲記憶手段により記憶されたサイズ範囲,若しくは上記順位付けルール記憶手段により記憶される所定のルール,若しくは上記空領域数記憶手段により記憶された空領域数,若しくは上記サイズ範囲併合手段により併合されたサイズ範囲のいずれか1つ又は複数をテーブル化するテーブル作成手段を更に具備してなる,請求項3に記載のメモリ管理システム。
  5. 上記所定のルールが,上記適宜のサイズ範囲に属するサイズを持つ空領域を,そのサイズに応じて順位付けするものである,請求項1〜のいずれかに記載のメモリ管理システム。
  6. 上記所定のルールが,上記適宜のサイズ範囲に属するサイズを持つ空領域を,そのアドレスに応じて順位付けするものである,請求項1〜のいずれかに記載のメモリ管理システム。
  7. 上記所定のルールが,割付要求頻度の高い割付サイズに応じて順位付けするものである,請求項1〜のいずれかに記載のメモリ管理システム。
JP2002358003A 2002-12-10 2002-12-10 メモリ管理システム Expired - Fee Related JP3792194B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002358003A JP3792194B2 (ja) 2002-12-10 2002-12-10 メモリ管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002358003A JP3792194B2 (ja) 2002-12-10 2002-12-10 メモリ管理システム

Publications (2)

Publication Number Publication Date
JP2004192208A JP2004192208A (ja) 2004-07-08
JP3792194B2 true JP3792194B2 (ja) 2006-07-05

Family

ID=32757840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002358003A Expired - Fee Related JP3792194B2 (ja) 2002-12-10 2002-12-10 メモリ管理システム

Country Status (1)

Country Link
JP (1) JP3792194B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4631871B2 (ja) * 2006-04-19 2011-02-16 三菱電機株式会社 メモリ管理装置、情報処理装置およびメモリ管理方法
JP5352284B2 (ja) * 2009-02-27 2013-11-27 京セラドキュメントソリューションズ株式会社 メモリ管理システム、電子機器及びメモリ管理プログラム

Also Published As

Publication number Publication date
JP2004192208A (ja) 2004-07-08

Similar Documents

Publication Publication Date Title
US10353864B2 (en) Preferentially retaining memory pages using a volatile database table attribute
US9063982B2 (en) Dynamically associating different query execution strategies with selective portions of a database table
JP3611305B2 (ja) 永続的且つロバストな記憶割当てシステム及び方法
US7454420B2 (en) Data sorting method and system
US20070156997A1 (en) Memory allocation
CN112437916A (zh) 数据库表的增量群集
JPH05189281A (ja) 記憶装置のファイル割当て方式
US5568635A (en) Physical memory allocation system, program execution scheduling system, and information processor
US10114866B2 (en) Memory-constrained aggregation using intra-operator pipelining
JPH0546447A (ja) 空き領域検索方法
JP2011248920A (ja) 使用可能なメモリ資源を管理するための構成および方法
WO2020125396A1 (zh) 一种共享数据的处理方法、装置及服务器
US7752206B2 (en) Method and data processing system for managing a mass storage system
US11561929B2 (en) Method, device and computer program product for shrinking storage space
JP3792194B2 (ja) メモリ管理システム
JP7367365B2 (ja) タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム
CN112085644B (zh) 多列数据排序方法、装置、可读存储介质和电子设备
JPH0793198A (ja) コンピュータシステム
CN116955212A (zh) 内存碎片的整理方法、装置、设备及存储介质
JP3980729B2 (ja) 記憶領域管理システムおよび記憶領域管理プログラムを記録した媒体
JPH06103157A (ja) 記憶空間管理方法
JP2005157714A (ja) メモリ管理システム
JPH0546399A (ja) オーバーレイリンカ
Chikoore et al. An Optimized Main Memory Management Dynamic Partitioning Placement Algorithm
JPH06208502A (ja) メモリ管理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060404

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees