JP2000047933A - Bidirectional memory securing management system - Google Patents

Bidirectional memory securing management system

Info

Publication number
JP2000047933A
JP2000047933A JP10215667A JP21566798A JP2000047933A JP 2000047933 A JP2000047933 A JP 2000047933A JP 10215667 A JP10215667 A JP 10215667A JP 21566798 A JP21566798 A JP 21566798A JP 2000047933 A JP2000047933 A JP 2000047933A
Authority
JP
Japan
Prior art keywords
memory
size
request
memory block
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
JP10215667A
Other languages
Japanese (ja)
Inventor
Takehiro Ueda
岳宏 上田
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 Software Kobe Ltd
Original Assignee
NEC Software Kobe 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 Software Kobe Ltd filed Critical NEC Software Kobe Ltd
Priority to JP10215667A priority Critical patent/JP2000047933A/en
Publication of JP2000047933A publication Critical patent/JP2000047933A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To reduce the fragmentation of a memory by searching a free area in the direction from a high address to a low address in a continuous memory space concerning a request for securing a size being equal to or larger than the one which is decided as against a memory securing request and securing it. SOLUTION: When the size requesting securing is equal to or larger than the size(St) which is decided against the memory securing request from a process in an information processor, a free memory block queue managed by a large free memory block managing part 51 is retrieved. When the request size to be secured is smaller than St, the free memory block queue managed by a small free memory block managing part 52 is retrieved. When the free memory block whose size is the same as the requested one is detected, it is adopted. Unless the equal sized one exists, the free memory block which is larger and also is provided with the size being the nearest to the requested size is adapted.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、情報処理装置で動
作するプログラム(システム提供プログラムやユーザプ
ログラム)が実行中に主記憶(メモリ)上の作業領域を
必要量分、動的メモリ管理機能に要求して動的に確保
し、また確保したメモリが不要となった時に該動的メモ
リ管理機能に要求して解放する処理における該動的メモ
リ管理機能のメモリ管理方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a dynamic memory management function for storing a required amount of a work area on a main memory (memory) while a program (system-provided program or user program) operating on an information processing apparatus is being executed. The present invention relates to a memory management method of the dynamic memory management function in a process of requesting and dynamically securing the secured memory and requesting and releasing the secured memory when the secured memory becomes unnecessary.

【0002】[0002]

【従来の技術】従来、プロセス(情報処理装置上で動作
するプログラムの実行単位)が確保要求するメモリにつ
いて、該メモリを管理する動的メモリ管理機能は、メモ
リ確保用空き領域からなる連続したメモリ空間からプロ
セスから確保要求されたメモリを切り出す場合、要求さ
れたメモリのサイズに関わりなく前記連続したメモリ空
間の低アドレスから高アドレス方向に空き領域をサーチ
する等の一方向のサーチしか行っていなかった。
2. Description of the Related Art Conventionally, for a memory requested by a process (execution unit of a program operating on an information processing apparatus), a dynamic memory management function for managing the memory is provided by a continuous memory consisting of a memory securing free area. When the memory requested to be secured from the process is cut out from the space, only a unidirectional search such as searching for a free area from a low address to a high address in the continuous memory space is performed regardless of the size of the requested memory. Was.

【0003】動的メモリ管理機能の一部であるメモリ解
放処理は、空き領域相互を一方向または双方向に各空き
領域の開始アドレスをポインタでリンクして管理するた
めの単一のフリーメモリブロックキューに空き領域であ
るフリーメモリブロック(メモリブロックとはメモリの
連続した領域を言う。)を登録し、該フリーメモリブロ
ックを登録する時、フリーメモリブロックの前後が空き
領域でフリーであれば互いに連結してより大きなフリー
メモリブロックを生成するということが行われていた。
The memory release processing, which is a part of the dynamic memory management function, is performed by a single free memory block for managing the free areas in one direction or two directions by linking the start addresses of the free areas with pointers. A free memory block (a memory block is a continuous area of the memory) which is a free area is registered in the queue, and when the free memory block is registered, if free areas before and after the free memory block are free and free, each other is registered. It has been common to create larger free memory blocks by concatenation.

【0004】またメモリ確保処理の場合、フリーメモリ
ブロックキューに要求されたメモリブロックのサイズに
合致するもしくはそれより大きなフリーメモリブロック
が存在する場合は、そのフリーメモリブロックから必要
分を切り出して要求したプロセスに与え、切り出し後の
残りの領域はまたフリーメモリブロックに再登録すると
いうことが行われていた。
In the case of a memory securing process, if there is a free memory block matching or larger than the size of the requested memory block in the free memory block queue, a required portion is cut out from the free memory block and requested. Given to the process, the rest of the area after clipping was also re-registered in the free memory block.

【0005】このため大きなメモリブロックが解放され
た場合に、フリーとなった該大きなメモリブロックの一
部分を、その後発生する複数の小さなメモリブロックの
確保要求に対し次々と割り当てていく状況が発生する
と、前記解放された大きなメモリブロックの中で小さく
分断されたメモリブロックが確保済みの領域とフリーの
領域とが混在する事になっていくため、いわゆるメモリ
フラグメンテーション状態となる。
For this reason, if a large memory block is released and a part of the free large memory block is successively allocated to a plurality of small memory block reservation requests generated thereafter, In the released large memory block, an area where a small divided memory block is secured and a free area are mixed, so that a so-called memory fragmentation state occurs.

【0006】そのため次に該大きなメモリと同等のサイ
ズのメモリ確保要求が行われると要求に応じられないた
め、別の新たな領域を確保する必要が発生しプロセスが
使用する仮想メモリ空間が肥大化するという問題があっ
た。
[0006] Therefore, if a request for securing a memory having the same size as the large memory is made next, the request cannot be fulfilled. Therefore, it is necessary to secure another new area, and the virtual memory space used by the process is enlarged. There was a problem of doing.

【0007】例えば上記のような従来のメモリ確保処理
の場合、数バイト〜数百バイト単位の小さなサイズのメ
モリブロックから数メガバイト以上の大きなサイズのメ
モリブロックをランダムかつ頻繁に確保し解放するよう
なプロセスを(例えばイメージデータを扱うプロセスな
ど)実行する場合、数メガバイト単位で確保された領域
が解放され、フリーメモリブロックキューにつながれ
て、次に数バイト単位の確保要求、その次に数百バイト
単位の確保要求がランダムに発生して前記数メガバイト
のフリーメモリブロックから次々と要求サイズが切り出
されていくと、大きなサイズのフリーメモリブロックが
細分化されてしまい、次に数メガバイトの新しい要求が
きた場合、フリーメモリブロックキューには要求サイズ
に適合するフリーメモリブロックが存在していないとい
うことになり、新たに数メガバイトの新しいアドレス空
間の確保が必要となる。
For example, in the case of the above-described conventional memory securing processing, a large-sized memory block of several megabytes or more is randomly and frequently secured and released from a small-sized memory block of several bytes to several hundred bytes. When executing a process (for example, a process that handles image data), the area allocated in units of several megabytes is released, connected to the free memory block queue, and then a request for allocation in units of several bytes, and then several hundred bytes If a request for securing a unit occurs randomly and the request size is cut out one after another from the free memory block of several megabytes, a large free memory block is subdivided, and then a new request of several megabytes is generated. The free memory block queue has a free Will be that the re-block does not exist, it is necessary to ensure the new address space of the newly several megabytes.

【0008】これによりプロセスのメモリサイズが漸進
的に肥大化し、1プロセスに許容されるプロセスサイズ
の限界値に達してそれ以降はメモリ確保ができなくなる
という問題が発生していた。
[0008] As a result, the memory size of the process gradually increases, and a problem occurs that the memory size cannot be secured after reaching the limit of the process size allowed for one process.

【0009】[0009]

【発明が解決しようとする課題】従来では大きなサイズ
のメモリ要求も小さなサイズのメモリ要求も常に同じ方
向(メモリの低位アドレスから高位アドレスの方向等)
からの割り当てが行われていた。図8はその割り当て状
況をあらわしており、低アドレス方向から高アドレス方
向へ割り当てが行われ、高アドレス部分には未使用領域
が存在している状態を表している。
Conventionally, both large and small memory requests are always in the same direction (such as the direction from the lower address to the higher address of the memory).
Assignment from was made. FIG. 8 shows the allocation status, in which allocation is performed from the low address direction to the high address direction, and an unused area exists in the high address portion.

【0010】[0010]

【課題を解決するための手段】本発明の双方向メモリ確
保管理方式は、情報処理装置におけるプロセスからのメ
モリ確保要求に対し、決められたサイズ(以降、Stと
称す。)より小さいサイズの確保要求についてはメモリ
確保用空き領域からなる連続したメモリ空間の低アドレ
スから高アドレスの方向へ空き領域をサーチして確保
し、Stに等しいかより大きいサイズの確保要求につい
ては前記連続したメモリ空間の高アドレスから低アドレ
ス方向へ空き領域をサーチして確保することを備える。
According to the bidirectional memory allocation management system of the present invention, a size smaller than a predetermined size (hereinafter referred to as St) is allocated in response to a memory allocation request from a process in an information processing apparatus. For requests, a free area is searched for and secured in the direction from a low address to a high address in a continuous memory space composed of free areas for securing memory. For a secure request of a size equal to or larger than St, Searching for and securing a free area from the high address to the low address direction is provided.

【0011】また、本発明の双方向メモリ確保管理方式
は、前記Stの値に関し、プロセスからの要求サイズに
ついて、要求サイズ別の使用頻度に拘わる履歴情報を収
集し、該収集した情報を提供することを備える。
Further, in the bidirectional memory allocation management system of the present invention, with respect to the value of St, history information relating to the frequency of use for each requested size is collected for the requested size from the process, and the collected information is provided. It is prepared.

【0012】さらに、本発明の双方向メモリ確保管理方
式は、前記Stの値をプロセスから通知し、それを元に
メモリ確保を行うことを備える。
Further, the bidirectional memory reservation management system of the present invention comprises notifying the value of St from a process and reserving a memory based on the notification.

【0013】さらに、本発明の双方向メモリ確保管理方
式は、前記Stの値がプロセスから通知されない場合、
Stの既定値によりメモリ確保を行うことを備える。
Further, according to the bidirectional memory allocation management method of the present invention, when the value of St is not notified from the process,
It is provided that memory is secured by a default value of St.

【0014】さらに、本発明の双方向メモリ確保管理方
式は、前記メモリ確保用空き領域からなる連続したメモ
リ空間の初期値のサイズについてプロセスから該初期値
のサイズの指定を行い、その指定サイズに見合う大きさ
の前記メモリ空間を確保することを備える。
Further, according to the bidirectional memory allocation management method of the present invention, the size of the initial value of a continuous memory space consisting of the free area for memory allocation is specified by a process, and the specified size is set to the specified size. Providing a commensurate size of the memory space.

【0015】さらに、本発明の双方向メモリ確保管理方
式は、前記メモリ確保用空き領域からなる連続したメモ
リ空間を複数個用意しプロセスからのメモリ確保要求サ
イズに従って該複数個用意した連続した空間の一つを選
択し、該連続したメモリ空間それぞれに定義されたSt
を元にStより小さいサイズの確保要求についてはメモ
リ確保用空き領域からなる連続したメモリ空間の低アド
レスから高アドレスの方向へ空き領域をサーチして確保
し、Stに等しいかより大きいサイズの確保要求につい
ては前記連続したメモリ空間の高アドレスから低アドレ
ス方向へ空き領域をサーチして確保することを備える。
Further, according to the bidirectional memory securing management method of the present invention, a plurality of continuous memory spaces consisting of the memory securing free areas are prepared and the plurality of continuous memory spaces are prepared according to a memory securing request size from a process. One is selected, and St defined in each of the continuous memory spaces is selected.
In response to a request for securing a size smaller than St, a free area is searched for and secured from a low address to a high address in a continuous memory space composed of free areas for securing memory, and a size equal to or larger than St is secured. The request includes searching for and securing a free area from the high address to the low address in the continuous memory space.

【0016】[0016]

【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。
Next, embodiments of the present invention will be described with reference to the drawings.

【0017】図1を参照すると、本発明の双方向メモリ
確保管理方式の第一の実施の形態を示すブロック図であ
る。
FIG. 1 is a block diagram showing a first embodiment of a bidirectional memory allocation management system according to the present invention.

【0018】本実施の形態は、プロセス1、メモリ確保
・解放要求解析部2、メモリ確保サイズ解析部3、フリ
ーメモリブロック検索部4、大フリーメモリブロック管
理部51、小フリーメモリブロック管理部52、大メモ
リーブロックアドレス空間領域確保部61、小メモリブ
ロックアドレス空間領域確保部62、要求メモリブロッ
ク返却部7、メモリ解放サイズ解析部8、フリーメモリ
ブロック登録部9、動的メモリ管理部10から構成され
る。
In this embodiment, a process 1, a memory allocation / release request analysis unit 2, a memory allocation size analysis unit 3, a free memory block search unit 4, a large free memory block management unit 51, and a small free memory block management unit 52 A large memory block address space reservation unit 61, a small memory block address space reservation unit 62, a requested memory block return unit 7, a memory release size analysis unit 8, a free memory block registration unit 9, and a dynamic memory management unit 10. Is done.

【0019】プロセス1は自身の処理を実行するために
必要なメモリの確保要求を行い、処理を終了後、不要に
なったメモリの解放要求を行う。
The process 1 issues a request to secure a memory required to execute its own processing, and after the processing, issues a request to release memory that is no longer needed.

【0020】メモリ確保・解放要求解析部2はプロセス
1からの要求がメモリの確保要求であるか解放要求であ
るかをチェックし要求に応じた処理への振り分けを行
う。
The memory allocation / release request analysis unit 2 checks whether the request from the process 1 is a memory allocation request or a release request, and distributes the request to a process according to the request.

【0021】メモリ確保サイズ解析部3はプロセス1か
らの要求がメモリ確保要求の場合、確保サイズを解析
し、要求サイズによっては適切なサイズに切り上げて
(4の倍数等)フリーメモリブロック検索部4をコール
する。
When the request from the process 1 is a memory reservation request, the memory reservation size analysis unit 3 analyzes the reservation size, rounds up to an appropriate size depending on the request size (such as a multiple of 4), and searches for a free memory block 4. Call.

【0022】フリーメモリブロック検索部4はメモリ確
保サイズ解析部3から渡された確保要求サイズに応じて
適合するサイズのフリーなメモリブロックが有るかを検
索する。確保を要求するサイズがStに等しいかより大
きい場合は、大フリーメモリブロック管理部51が管理
するフリーメモリブロックキューを検索する。確保する
要求サイズがStより小さい場合は小フリーメモリブロ
ック管理部52が管理するフリーメモリブロックキュー
を検索する。
The free memory block search unit 4 searches whether there is a free memory block of a size suitable for the allocation request size passed from the memory allocation size analysis unit 3. If the size requested to be secured is equal to or larger than St, a free memory block queue managed by the large free memory block management unit 51 is searched. When the required size to be secured is smaller than St, the free memory block queue managed by the small free memory block management unit 52 is searched.

【0023】要求されたサイズと等しいフリーメモリブ
ロックを検出した場合は、それを採用する。もし等しい
サイズのものがない場合はより大きくて要求されたサイ
ズに一番近いサイズを持つフリーメモリブロックを採用
するが、この場合は該フリーメモリブロックから要求さ
れたメモリサイズ分を切り出して残ったサイズの領域は
フリーメモリブロックキューへ再登録し返却する。
If a free memory block equal to the requested size is detected, it is used. If there is no equal size, a larger free memory block having the size closest to the requested size is used. In this case, the required memory size is cut out from the free memory block and left. The size area is re-registered in the free memory block queue and returned.

【0024】要求されたサイズのフリーメモリブロック
が見つからなかった場合、新しい領域を確保する必要が
有るため、要求サイズがStに等しいか大きい場合は大
メモリブロックアドレス空間領域確保部61に対して新
領域の確保要求を行い、小さい場合は小メモリブロック
アドレス空間領域確保部62に対して新領域の確保要求
を行う。
If a free memory block of the requested size is not found, it is necessary to secure a new area. Therefore, if the requested size is equal to or larger than St, a new area is provided to the large memory block address space area securing unit 61. An area reservation request is made. If the area is smaller, a new area reservation request is made to the small memory block address space area reservation section 62.

【0025】大フリーメモリブロック管理部51はSt
に等しいか大きいサイズの解放されたフリーメモリブロ
ックをフリーメモリブロックキューに繋ぎ管理する処理
部であり、フリーメモリブロックキューに登録されたフ
リーメモリブロックの前後のブロックがフリーであるか
どうかを調べ、フリーで有ればメモリブロックの連結を
行う。
The large free memory block management unit 51 is St
A processing unit that connects and manages free memory blocks that have been released with a size equal to or larger than the free memory block queue, and checks whether blocks before and after the free memory blocks registered in the free memory block queue are free. If it is free, the memory blocks are linked.

【0026】小フリーメモリブロック管理部52はSt
より小さいサイズの解放されたフリーメモリブロックを
フリーメモリブロックキューに繋ぎ管理する処理部であ
り、フリーメモリブロックキューに登録されたフリーメ
モリブロック前後のブロックがフリーであるかどうかを
調べフリーで有ればメモリブロックの連結を行う。
The small free memory block management unit 52 operates as St
This is a processing unit that connects and manages free memory blocks that have been freed to smaller sizes into the free memory block queue, and checks whether the blocks before and after the free memory block registered in the free memory block queue are free. For example, memory blocks are connected.

【0027】大メモリブロックアドレス空間領域確保部
61はメモリ確保サイズがStに等しいか大きい場合
に、高アドレスから低アドレス方向にメモリ空間より新
たにメモリを確保する。
When the reserved memory size is equal to or larger than St, the large memory block address space reserving section 61 reserves a new memory from the memory space in the direction from the high address to the low address.

【0028】小メモリブロックアドレス空間領域確保部
62はメモリ確保サイズがStより小さい場合に低アド
レスから高アドレス方向にメモリ空間より新たにメモリ
を確保する。
When the memory reservation size is smaller than St, the small memory block address space reservation unit 62 reserves a new memory from the memory space in the direction from the low address to the high address.

【0029】要求メモリブロック返却部7はフリーブロ
ック内で見つかったあるいは新しく領域が確保されたメ
モリブロックのアドレスをプロセス1に返却する。
The request memory block return unit 7 returns to the process 1 the address of the memory block found in the free block or in which a new area has been secured.

【0030】メモリ解放サイズ解析部8はプロセス1か
らメモリ解放要求が行われた場合、解放要求サイズを算
出しフリーブロック登録部9を呼び出す。
When a memory release request is made from the process 1, the memory release size analysis unit 8 calculates the release request size and calls the free block registration unit 9.

【0031】フリーメモリブロック登録部9はフリーメ
モリブロックをStのサイズに応じて大フリーメモリブ
ロック管理部51または小フリーメモリブロック管理部
52に登録する。
The free memory block registration section 9 registers the free memory block in the large free memory block management section 51 or the small free memory block management section 52 according to the size of St.

【0032】動的メモリ管理部10はプロセス1からの
メモリ確保/解放要求処理を実行する前記のプロセス1
を除く構成全体をさしている。
The dynamic memory management unit 10 executes the above-described process 1 for executing a process for requesting memory reservation / release from the process 1.
Except for the entire configuration.

【0033】次に本発明の第一の実施の形態(図1)に
ついて、図2のフローチャートを参照して詳細に説明す
る。
Next, the first embodiment (FIG. 1) of the present invention will be described in detail with reference to the flowchart of FIG.

【0034】詳細な説明の前に若干の補足を行うと、先
ず本発明の適用されるプロセス1の構造の概略を図4に
示す。本図によればプロセス1は命令コードからなるコ
ードセクション31、グローバル/スタティックデータ
用の静的データセクション32、本発明の確保/解放の
対象となるメモリ領域である動的データセクション33
及び関数呼び出し/リターン時に呼び出し側の情報を保
存するのに使用されるスタックセクション34からな
る。コードセクション31と静的データセクション32
の大きさは固定で、プロセス1の実行開始から終了まで
変化しない。また本発明の動的メモリ管理部10はコー
ドセクション31部分にライブラリ関数として静的もし
くは動的にリンクされて実行される。
Before the detailed description, a few supplementary explanations will be given. First, FIG. 4 schematically shows the structure of the process 1 to which the present invention is applied. According to the figure, a process 1 comprises a code section 31 composed of instruction codes, a static data section 32 for global / static data, and a dynamic data section 33 which is a memory area to be secured / released according to the present invention.
And a stack section 34 used to store caller information upon function call / return. Code section 31 and static data section 32
Is fixed and does not change from the start to the end of the execution of the process 1. Further, the dynamic memory management unit 10 of the present invention is executed by being statically or dynamically linked to the code section 31 as a library function.

【0035】プロセス1からのメモリ確保、解放要求が
発生すると動的メモリ管理部10の中のメモリ確保・解
放要求解析部2がコールされ該要求が受け付けられる。
メモリ確保・解放要求解析部2はプロセス1からの最初
の要求の場合、プロセス1内の動的データセクション3
3の開始アドレス、終了アドレスの取り込みを行う等の
初期化処理を実行する(ステップA1)。
When a memory reservation / release request is generated from the process 1, the memory reservation / release request analysis unit 2 in the dynamic memory management unit 10 is called and the request is accepted.
In the case of the first request from the process 1, the memory allocation / release request analysis unit 2
Then, an initialization process such as taking in the start address and end address of No. 3 is executed (step A1).

【0036】次にメモリ確保・解放要求解析部2は、
(ステップB1)においてプロセス1からの要求がメモ
リの確保要求かメモリの解放要求かを判断し、確保要求
の場合は(ステップC1)に行き、解放要求の場合は
(ステップD1)に行く。以下にメモリ確保要求の場合
の(ステップC1)以下の処理内容を述べる。
Next, the memory allocation / release request analysis unit 2
In (Step B1), it is determined whether the request from the process 1 is a memory reservation request or a memory release request. If the request is a reservation request, go to (Step C1), and if it is a release request, go to (Step D1). The following processing contents in the case of a memory securing request (step C1) will be described.

【0037】メモリ確保要求の場合、メモリ確保サイズ
解析部3は、(ステップC1)においてプロセス1から
のメモリ確保要求サイズが4の倍数でない場合はアドレ
ス計算処理の高速化の為、該確保要求サイズを4の倍数
に切り上げ、該メモリ確保要求サイズSxとStとの大
小比較を行う。
In the case of a memory reservation request, the memory reservation size analysis unit 3 determines that the memory reservation request size is high in order to speed up the address calculation processing if the memory reservation request size from the process 1 is not a multiple of 4 in (Step C1). Is rounded up to a multiple of 4, and the magnitude of the memory reservation request size Sx and St is compared.

【0038】SxがStより小の場合は(ステップE
1)に行き、SxがStに等しいか大の場合は(ステッ
プE2)に行く。
If Sx is smaller than St (step E
Go to 1), and if Sx is equal to or greater than St, go to (Step E2).

【0039】フリーメモリブロック検索部4はそれぞれ
(ステップE1)と(ステップE2)において要求サイ
ズSxに等しいサイズの未使用領域をフリーメモリブロ
ックキューから検索する。ここで、フリーメモリブロッ
クキューの構造を図5に示す。
The free memory block search unit 4 searches the free memory block queue for an unused area having a size equal to the requested size Sx in each of (Step E1) and (Step E2). Here, the structure of the free memory block queue is shown in FIG.

【0040】図5に示すように各フリーメモリブロック
の先頭には固定長(サイズMt)の管理情報部が設けら
れている。尚、同図の斜線部分の領域はプロセス1が使
用中のメモリブロックを表し、図示されてないが同様に
管理情報部が存在している。
As shown in FIG. 5, a fixed length (size Mt) management information section is provided at the head of each free memory block. Note that the hatched area in the figure represents a memory block being used by the process 1, and although not shown, a management information section similarly exists.

【0041】管理情報部には各フリーメモリブロックを
双方向にポイントするポインター部分と各フリーメモリ
ブロックのサイズを表す部分を持っている。そのためS
xのサイズのメモリブロックの確保要求が有ると動的メ
モリ管理部10の処理ではSx+Mtのサイズの領域が
フリーメモリブロックキューから検索されることにな
る。図6を見るとフリーメモリブロックキューから最初
にSx+Mtのサイズのメモリブロックが確保され、そ
の後管理情報部にメモリブロックの前方ポインタと後方
ポインタ及び当該メモリブロックのサイズSxが設定さ
れプロセス1にはSxのサイズを持つメモリブロックの
先頭のアドレスが渡される事になる。
The management information section has a pointer portion pointing bidirectionally to each free memory block and a portion indicating the size of each free memory block. So S
When there is a request to secure a memory block of size x, in the processing of the dynamic memory management unit 10, an area of size Sx + Mt is searched from the free memory block queue. Referring to FIG. 6, a memory block having a size of Sx + Mt is first secured from the free memory block queue, and then the forward and backward pointers of the memory block and the size Sx of the memory block are set in the management information section. Will be passed.

【0042】尚、以降の説明ではMtのサイズを持つ管
理情報部については、説明上省略するが、内部的には上
述した処理が行われる。Sxに等しいサイズの領域がフ
リーメモリブロックキューに検出できない場合はSxよ
り大きくて最もそのサイズに近いものを検索する。
In the following description, although the management information portion having the size of Mt is omitted for the sake of explanation, the above-described processing is internally performed. If an area having a size equal to Sx cannot be detected in the free memory block queue, an area larger than Sx and closest to that size is searched.

【0043】(ステップE1)においては、前記処理を
動的データセクション33の先頭側の領域を管理するフ
リーメモリブロックキューに対して検索する。(ステッ
プE2)においては動的データセクション33の後方側
の領域を管理するフリーメモリブロックキューに対して
検索する。
In step (E1), the above processing is searched for a free memory block queue that manages the head area of the dynamic data section 33. In (Step E2), a search is made for the free memory block queue that manages the area behind the dynamic data section 33.

【0044】(ステップE1)での検索の結果、要求サ
イズSxに応えるフリーメモリブロックが検索できた時
は(ステップG1)に行く。(ステップE1)での検索
の結果、要求サイズに応えられるサイズのフリーメモリ
ブロックが検索できなかった時は(ステップH1)に行
く。
As a result of the search in (Step E1), when a free memory block corresponding to the requested size Sx can be searched, the procedure goes to (Step G1). As a result of the search in (Step E1), when a free memory block having a size corresponding to the requested size cannot be searched, the procedure goes to (Step H1).

【0045】(ステップE2)においては、前記(ステ
ップE1)とは逆に後方側を管理するフリーメモリブロ
ックキューに対しての検索の結果、要求サイズSxに応
えるフリメモリブロックが検索できた時は(ステップG
2)に行く。(ステップE2)での検索の結果、要求サ
イズに応えられるサイズのフリーメモリブロックが検索
できなかった時は(ステップH2)に行く。
In (Step E2), contrary to the above (Step E1), as a result of searching the free memory block queue for managing the rear side, if a free memory block corresponding to the requested size Sx can be searched, (Step G
Go to 2). As a result of the search in (Step E2), when a free memory block having a size corresponding to the requested size cannot be searched, the procedure goes to (Step H2).

【0046】先頭側の領域を管理するフリーメモリブロ
ックキューに要求サイズSxに応えられるサイズのメモ
リブロックが存在した場合の処理である(ステップG
1)において、小フリーメモリブロック管理部52はサ
イズSxに適合するフリーブロックを取り出し、取り出
し後、もし残った部分が有ればフリーブロックキューに
再登録して返却する。
This processing is performed when there is a memory block having a size corresponding to the requested size Sx in the free memory block queue for managing the head area (step G).
In 1), the small free memory block management unit 52 fetches a free block conforming to the size Sx, and after fetching, if there is any remaining portion, re-registers it in the free block queue and returns it.

【0047】先頭側の領域を管理するフリーメモリブロ
ックキューに要求サイズSxに応えられるサイズのメモ
リブロックが存在しなかった場合の処理である(ステッ
プH1)において、小メモリブロックアドレス空間領域
確保部62は、未使用領域の先頭側から要求サイズSx
に相当するメモリを切り出す。
In the processing when there is no memory block having a size corresponding to the requested size Sx in the free memory block queue managing the head area (step H1), the small memory block address space area securing section 62 Is the requested size Sx from the top of the unused area
Cut out the memory corresponding to.

【0048】後方側の領域を管理するフリーメモリブロ
ックキューに要求サイズSxに応えられるサイズのメモ
リブロックが存在した場合の処理である(ステップG
2)において、大フリーメモリブロック管理部51はサ
イズSxに適合するフリーブロックを取り出し、取り出
し後、もし残った部分が有ればフリーブロックキューに
再登録して返却する。
This processing is performed when a memory block having a size corresponding to the required size Sx exists in the free memory block queue for managing the rear area (step G).
In 2), the large free memory block management unit 51 fetches a free block conforming to the size Sx, and after fetching, if there is any remaining portion, re-registers it in the free block queue and returns it.

【0049】後方側の領域を管理するフリーメモリブロ
ックキューに要求サイズSxに応えられるサイズのメモ
リブロックが存在しなかった場合の処理である(ステッ
プH2)において、大メモリブロックアドレス空間領域
確保部61は、未使用領域の後方側から要求サイズSx
に相当するメモリを切り出す。(ステップI1)におい
ては、前述した管理情報の設定を行う。そのあと(ステ
ップJ1)に行く。
In the processing when there is no memory block having a size corresponding to the requested size Sx in the free memory block queue for managing the rear area (step H2), the large memory block address space area securing section 61 Is the requested size Sx from the rear side of the unused area.
Cut out the memory corresponding to. In (Step I1), the above-mentioned management information is set. Then go to (Step J1).

【0050】次にメモリ解放要求の場合の処理を述べ
る。
Next, processing for a memory release request will be described.

【0051】(ステップB1)においてプロセス1から
の要求がメモリ解放要求であった場合は、(ステップD
1)に行き、ここではメモリ解放サイズ解析部8は解放
されるメモリサイズSxを算出し、フリーブロック登録
部9は該メモリサイズSxを決められた値Stと比較す
る。 解放要求サイズSxがStより小さい場合は(ス
テップF1)を呼び、SxがStより大きいか等しい場
合は、(ステップF2)を呼ぶ。
If the request from the process 1 is a memory release request in (Step B1), (Step D
Going to 1), here the memory release size analysis unit 8 calculates the memory size Sx to be released, and the free block registration unit 9 compares the memory size Sx with the determined value St. When the release request size Sx is smaller than St, (Step F1) is called, and when Sx is larger than or equal to St, (Step F2) is called.

【0052】(ステップF1)においては、小フリーメ
モリブロック管理部52によって先頭側の領域を管理す
るフリーメモリブロックキューに解放されたメモリブロ
ックをキュー上のメモリブロックのアドレスの昇順に従
い再登録を行う。登録されたメモリブロックのアドレス
前後のブロックがフリーで有ればブロックの連結を行っ
て一つにまとめ、また解放されたメモリブロックが未使
用領域部と連続していれば該メモリブロックを未使用領
域部に再登録して(ステップJ1)に行く。
In (Step F1), the memory blocks released to the free memory block queue for managing the head area by the small free memory block management section 52 are re-registered in the ascending order of the addresses of the memory blocks on the queue. . If blocks before and after the address of the registered memory block are free, concatenate the blocks and combine them into one, and if the released memory block is continuous with the unused area, unused the memory block Reregister in the area section and go to (Step J1).

【0053】(ステップF2)においては、大フリーメ
モリブロック管理部51によって後方側の領域を管理す
るフリーメモリブロックキューに解放されたメモリブロ
ックをキュー上のメモリブロックのアドレスの降順に従
い再登録を行う。登録されたメモリブロックのアドレス
前後のブロックがフリーで有ればブロックの連結を行っ
て一つにまとめ、また解放されたメモリブロックが未使
用領域部と連続していれば該メモリブロックを未使用領
域部に再登録して(ステップJ1)に行く。以下はメモ
リ確保・解放の共通の処理である。
In (Step F2), the memory blocks released to the free memory block queue for managing the rear area by the large free memory block management unit 51 are re-registered in descending order of the addresses of the memory blocks on the queue. . If blocks before and after the address of the registered memory block are free, concatenate the blocks and combine them into one, and if the released memory block is continuous with the unused area, unused the memory block Reregister in the area section and go to (Step J1). The following is a common process for securing and releasing memory.

【0054】前記のようにメモり確保要求とメモリ解放
要求処理を行ったあと、(ステップJ1)において、要
求メモリブロック返却部7はメモリ確保要求の場合は確
保されたメモリブロックのアドレスと確保結果をプロセ
ス1に返却する。メモリ解放要求の場合は解放結果をプ
ロセス1に返却して処理を終える。
After performing the memory reservation request and the memory release request processing as described above, in (step J1), the request memory block returning unit 7 returns the address of the reserved memory block and the reservation result in the case of the memory reservation request. Is returned to process 1. In the case of a memory release request, the release result is returned to the process 1 and the process is terminated.

【0055】以上の説明を整理するため図7を参照する
と、低アドレス側からはStより小さな領域の割り当て
が実施され、一方高アドレス側からはSt値と等しいか
より大きなサイズの領域が割り当てられている。
Referring to FIG. 7 to summarize the above description, an area smaller than St is allocated from the low address side, while an area having a size equal to or larger than the St value is allocated from the high address side. ing.

【0056】次に本発明の第2の実施の形態(図3)に
ついて図面を参照して詳細に説明する。
Next, a second embodiment (FIG. 3) of the present invention will be described in detail with reference to the drawings.

【0057】図3を参照すると、本発明の第2の実施の
形態は、動的メモリ管理部10の中で図1で示された第
1の実施の形態における動的メモリ管理部10の構成に
おいて、メモリ確保・解放要求処理部2がプロセス要求
解析部21になっていること及びSt記憶部11を有す
る点で異なる。他の構成部分は第1の実施の形態と同一
の為、プロセス要求解析部21とSt記憶部11を中心
に説明する。
Referring to FIG. 3, according to a second embodiment of the present invention, a dynamic memory management unit 10 in the dynamic memory management unit 10 according to the first embodiment shown in FIG. 1 in that the memory reservation / release request processing unit 2 is a process request analysis unit 21 and that it has an St storage unit 11. Since the other components are the same as those of the first embodiment, the description will be focused on the process request analysis unit 21 and the St storage unit 11.

【0058】前記Stの値についてはプロセス1の処理
内容に従って決定するのが望ましい。それは個々のプロ
セス1の処理内容がそれぞれ異なるためであり、256
バイト程度の小さなメモリブロックの確保要求が中心と
なるプロセス、片やイメージ処理を行うため数メガ〜数
十キロバイトのメモリブロックの確保要求が中心となる
プロセス等様々である。
It is desirable that the value of St be determined in accordance with the processing contents of process 1. This is because the processing contents of the individual processes 1 are different from each other.
There are various processes such as a process mainly for requesting a memory block as small as about a byte, and a process mainly for requesting a memory block of several megabytes to several tens of kilobytes for performing a piece or image processing.

【0059】プロセス1は自己の処理内容に見合うSt
値を決定するため、動的メモリ管理部10にメモリブロ
ック確保要求時の割り当てサイズについて履歴を採取す
る要求を行い動的メモリ管理部10をコールする。動的
メモリ管理部10のプロセス要求解析部21はプロセス
1からの要求がメモリブロック確保時のサイズに関する
履歴を採取する要求であると認知すると、St記憶部1
1の中の履歴採取指示のフラグを立ててプロセス1に戻
る。このときSt記憶部10内にある履歴採取領域は例
えば確保サイズの範囲1〜16バイト、17〜32バイ
ト、33バイト〜64バイト、65バイト〜128バイ
ト、・・・・、4095バイト〜8192バイト、・・
・等、2のn乗の形の確保サイズ範囲識別情報とそれぞ
れの範囲についての使用回数をカウントするカウンター
フィールドから構成されている。プロセス1からのメモ
リ確保要求が発生すると、メモリ確保サイズ解析部はS
t記憶部11の中の履歴採取指示フラグを参照しそのフ
ラグが立っている場合、確保要求サイズに見合う範囲の
カウンター値を1アップする。
Process 1 is based on St corresponding to its own processing contents.
In order to determine the value, a request is made to the dynamic memory management unit 10 to collect a history of the allocation size at the time of the memory block reservation request, and the dynamic memory management unit 10 is called. When the process request analysis unit 21 of the dynamic memory management unit 10 recognizes that the request from the process 1 is a request for collecting a history regarding the size at the time of securing the memory block, the St storage unit 1
The flag of the history collection instruction in 1 is set, and the process returns to process 1. At this time, the history collection area in the St storage unit 10 has a reserved size range of 1 to 16 bytes, 17 to 32 bytes, 33 to 64 bytes, 65 to 128 bytes, ..., 4095 to 8192 bytes. , ...
And the like, which is composed of reserved size range identification information in the form of 2 to the power of n and a counter field for counting the number of uses for each range. When a memory allocation request is issued from the process 1, the memory allocation size analysis unit
The history collection instruction flag in the t storage unit 11 is referred to, and when the flag is set, the counter value in the range corresponding to the required securement size is increased by one.

【0060】次に上記メモリ確保サイズに関する履歴採
取が実施された後、プロセス1がメモリブロック確保サ
イズに関する履歴の採取要求を行うと、プロセス要求解
析部21はSt記憶部11内の履歴採取領域の内容をプ
ロセス1に渡す。プロセス1は該履歴採取領域の内容を
ディスプレイ装置等に表示することでプロセス1に関す
る最適なメモリ確保サイズに関するSt値を求めるため
の参考とする事ができる。
Next, after the history collection regarding the memory reservation size is performed, when the process 1 requests the collection of the history regarding the memory block reservation size, the process request analysis unit 21 stores the history collection area in the St storage unit 11. Pass the contents to process 1. The process 1 displays the contents of the history collection area on a display device or the like, so that it can be used as a reference for obtaining an St value relating to the optimal memory allocation size for the process 1.

【0061】さらに、プロセス1は、自身の使用するメ
モリブロックサイズに見合ったSt値を動的メモリ管理
部10に通知し動的メモリ管理部10はその値に従いメ
モリブロックの割り当て方向を決定する。
Further, the process 1 notifies the dynamic memory management unit 10 of an St value corresponding to the memory block size used by the process 1, and the dynamic memory management unit 10 determines a memory block allocation direction according to the St value.

【0062】プロセス1はそのためSt値を指定して動
的メモリ管理部10をコールする。動的メモリ管理部1
0のプロセス要求解析部21はプロセス1の要求内容を
解析しSt値の設定要求であることを認知すると該St
値をSt記憶部11に設定する。以降の動的メモリ管理
部10のメモリ確保処理においてはSt記憶部11に設
定されたSt値を使用して動作することになる。またプ
ロセス1からのSt値の設定要求が行われない場合は、
St記憶部11内のSt値設定位置には予め既定値(例
えば1024バイト)が設定されているのでその値で切
り出し方向の決定を行うことができる。
The process 1 calls the dynamic memory management unit 10 by designating the St value. Dynamic memory management unit 1
0 process request analysis unit 21 analyzes the request contents of process 1 and recognizes that it is a St value setting request,
The value is set in the St storage unit 11. In the subsequent memory securing processing of the dynamic memory management unit 10, the operation is performed using the St value set in the St storage unit 11. If the St value setting request from Process 1 is not made,
Since a predetermined value (for example, 1024 bytes) is set in advance in the St value setting position in the St storage unit 11, the cutout direction can be determined based on the value.

【0063】次にプロセス1の動的データセクション3
3が本発明におけるメモリブロック割り当ての対象領域
となるが、この開始アドレスと終了アドレスはオペレー
ティングシステム(OS)の用意する該アドレス取得用
のシステムコールを動的メモリ管理部10は発行する事
で取得する。この時OSが渡す終了アドレスは(物理的
に実装されているメモリ量+ディスク上のスワップ領域
サイズ)となる。そのためプロセス1の障害等によりメ
モリ確保が不用意に頻発して行われると、該障害発生プ
ロセスの不都合な動作によってシステムのメモリが該障
害発生プロセスに占有されてしまうため、他のプロセス
の動作に影響がでる事がある。プロセス1は上記のメモ
リ確保における履歴情報から自己の使用する動的確保メ
モリ量の上限値をある程度予測することができるため、
プロセス1は終了アドレスを動的メモリ管理部10に通
知する。
Next, the dynamic data section 3 of the process 1
3 is a memory block allocation target area in the present invention. The start address and the end address are obtained by the dynamic memory management unit 10 issuing a system call for obtaining the address prepared by the operating system (OS). I do. At this time, the end address passed by the OS is (the amount of physically mounted memory + the size of the swap area on the disk). Therefore, if memory reservation is performed inadvertently and frequently due to the failure of the process 1 or the like, the memory of the system is occupied by the failure process because of the inconvenient operation of the failure process. May be affected. Since the process 1 can predict the upper limit value of the amount of dynamically allocated memory to be used to some extent from the history information in the above memory allocation,
The process 1 notifies the dynamic memory management unit 10 of the end address.

【0064】動的メモリ管理部10のプロセス要求解析
部21はこの要求を認知すると、St記憶部11内にあ
る上記開始アドレスと終了アドレスの終了アドレスをプ
ロセス1の指定した値で置き換えることで以降のメモリ
確保要求においてはこの終了アドレスが後方側からのメ
モリ割り当てで使用される事になる。
When the process request analysis unit 21 of the dynamic memory management unit 10 recognizes this request, the process request analysis unit 21 replaces the start address and the end address of the end address in the St storage unit 11 with the values specified by the process 1 and thereafter. In the memory allocation request, the end address is used for memory allocation from the rear side.

【0065】次にプロセス1の動的データセクションを
複数個に分割し、複数個に分割した各領域に対し開始ア
ドレス、終了アドレスを設定し、それぞれの該領域に対
しSt値を設定させ、例えば分割した上記領域のうち領
域1は1〜1024バイトのメモリ要求サイズに対応
し、領域2は1025〜8192バイトまで対応する等
の構成を持つことで尚一層効果的なメモリ確保が可能と
なる。
Next, the dynamic data section of the process 1 is divided into a plurality of sections, a start address and an end address are set for each of the plurality of divided areas, and an St value is set for each of the divided areas. Of the divided areas, the area 1 corresponds to a memory request size of 1 to 1024 bytes, and the area 2 corresponds to a memory size of 1024 to 8192 bytes, so that a more effective memory can be secured.

【0066】[0066]

【発明の効果】以上説明したように、本発明の双方向メ
モリ確保管理方式はプロセスの空間内に存在する動的デ
ータセクションを該プロセスからのメモリ確保要求、解
放要求時の対象となる領域とし、確保要求サイズSxに
ついて決められた値Stとの比較を行い、SxがStよ
り大きいか等しい場合は、前記動的データセクションの
高位アドレスから低位アドレスの方向に要求されたメモ
リブロックを割り当て、逆に前記確保要求サイズSxが
Stより小さい場合は前記動的データセクションの低位
アドレスから高位アドレスの方向に要求されたメモりブ
ロックを割り当てることでメモリのフラグメンテーショ
ン化を減少させるため、未使用となる空き領域が減り、
その結果プロセスのメモリサイズの肥大化を抑止すると
いう効果を有している。
As described above, according to the bidirectional memory allocation management method of the present invention, a dynamic data section existing in the space of a process is set as a target area when a memory allocation request or a release request is issued from the process. A comparison is made with the value St determined for the reservation request size Sx, and if Sx is greater than or equal to St, the requested memory block is allocated in the direction from the higher address to the lower address of the dynamic data section, and In the case where the reservation request size Sx is smaller than St, the requested memory block is allocated in the direction from the lower address to the higher address of the dynamic data section to reduce the fragmentation of the memory. Area is reduced,
As a result, there is an effect that the enlargement of the memory size of the process is suppressed.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第一の実施の形態を示すブロック図で
ある。
FIG. 1 is a block diagram showing a first embodiment of the present invention.

【図2】本発明の第一の実施の形態の動作の一例を示す
フローチャートである。
FIG. 2 is a flowchart illustrating an example of an operation according to the first exemplary embodiment of the present invention.

【図3】本発明の第二の実施の形態を示すブロック図で
ある。
FIG. 3 is a block diagram showing a second embodiment of the present invention.

【図4】本発明の対象となるプロセスの概略図である。FIG. 4 is a schematic view of a process to which the present invention is applied.

【図5】本発明のフリーメモリブロックの概略図であ
る。
FIG. 5 is a schematic diagram of a free memory block of the present invention.

【図6】本発明のフリーメモリブロックキューからのメ
モリ確保の詳細図である。
FIG. 6 is a detailed diagram of memory reservation from a free memory block queue according to the present invention.

【図7】本発明のメモリ確保時におけるメモリブロック
の確保方向を表す図である。
FIG. 7 is a diagram illustrating a memory block allocation direction when a memory is allocated according to the present invention.

【図8】従来のメモリ確保時におけるメモリブロックの
確保方向を表す図である。
FIG. 8 is a diagram illustrating a memory block securing direction when a conventional memory is secured.

【符号の説明】[Explanation of symbols]

1 プロセス 2 メモリ確保・解放要求解析部 3 メモリ確保サイズ解析部 4 フリーメモリブロック検索部 51 大フリーメモリブロック管理部 52 小フリーメモリブロック管理部 61 大メモリブロックアドレス空間領域確保部 62 小メモリブロックアドレス空間領域確保部 7 要求メモリブロック返却部 8 メモリ解放サイズ解析部 9 フリーメモリブロック登録部 10 動的メモリ管理部 1 Process 2 Memory allocation / release request analysis unit 3 Memory allocation size analysis unit 4 Free memory block search unit 51 Large free memory block management unit 52 Small free memory block management unit 61 Large memory block address space area reservation unit 62 Small memory block address Space area reservation unit 7 Requested memory block return unit 8 Memory release size analysis unit 9 Free memory block registration unit 10 Dynamic memory management unit

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 情報処理装置におけるプロセスからのメ
モリ確保要求に対し決められたサイズ(以降、Stと略
す。)より小さいサイズの確保要求についてはメモリ確
保用空き領域からなる連続したメモリ空間の低アドレス
から高アドレスの方向へ空き領域をサーチして確保し、
前記Stに等しいかより大きいサイズの確保要求につい
ては前記連続したメモリ空間の高アドレスから低アドレ
ス方向へ空き領域をサーチして確保することを特徴とす
る双方向メモリ確保管理方式。
1. A request for securing a memory smaller than a predetermined size (hereinafter, abbreviated as St) in response to a memory securing request from a process in an information processing apparatus. Search and secure a free area in the direction from the address to the high address,
A bidirectional memory allocation management method characterized by searching for and securing an empty area from a high address to a low address in the continuous memory space for an allocation request having a size equal to or larger than St.
【請求項2】 プロセスからのメモリ確保の要求サイズ
に関し、要求サイズ別の使用頻度に拘わる履歴情報を収
集し、該収集した情報を提供することを特徴とする請求
項1記載の双方向メモリ確保管理方式。
2. The bidirectional memory reservation according to claim 1, wherein history information relating to the frequency of use for each request size is collected for the requested size of memory reservation from the process, and the collected information is provided. Management method.
【請求項3】 前記Stの値をプロセスから通知しそれ
を元にメモリ確保を行うことを特徴とする請求項1記載
の双方向メモリ確保管理方式。
3. The system according to claim 1, wherein a value of St is notified from a process, and a memory is allocated based on the value.
【請求項4】 前記Stの値がプロセスから通知されな
い場合は既定値によりメモリ確保を行うことを特徴とす
る請求項1記載の双方向メモリ確保管理方式。
4. The bidirectional memory reservation management system according to claim 1, wherein when the value of St is not notified from a process, the memory is reserved by a default value.
【請求項5】 前記メモリ確保用空き領域からなる連続
したメモリ空間の初期値のサイズについてプロセスから
該初期値のサイズの指定を行い、その指定サイズに見合
う大きさの前記メモリ空間を確保する事を特徴とする請
求項1記載の双方向メモリ確保管理方式。
5. A process for designating the size of an initial value of a continuous memory space consisting of the memory securing free area from a process, and securing the memory space having a size corresponding to the designated size. 2. The bidirectional memory allocation management system according to claim 1, wherein:
【請求項6】 前記メモリ確保用空き領域からなる連続
したメモリ空間を複数個用意しプロセスからのメモリ確
保要求サイズに従って該複数個用意した連続した空間の
一つを選択し、該連続したメモリ空間それぞれに定義さ
れたStを元にStより小さいサイズの確保要求につい
てはメモリ確保用空き領域からなる連続したメモリ空間
の低アドレスから高アドレスの方向へ空き領域をサーチ
して確保し、Stに等しいかより大きいサイズの確保要
求については前記連続したメモリ空間の高アドレスから
低アドレス方向へ空き領域をサーチして確保することを
特徴とする請求項1記載の双方向メモリ確保管理方式。
6. A continuous memory space comprising a plurality of continuous memory spaces each comprising said memory securing free area, and selecting one of said plurality of continuous spaces according to a memory securing request size from a process. For a request for securing a size smaller than St based on each defined St, a free area is searched from a low address to a high address in a continuous memory space composed of free areas for memory reservation and secured, and is equal to St. 2. The bidirectional memory allocation management system according to claim 1, wherein for a request for allocation of a size larger than that, a free area is searched and allocated from a high address to a low address in the continuous memory space.
JP10215667A 1998-07-30 1998-07-30 Bidirectional memory securing management system Pending JP2000047933A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10215667A JP2000047933A (en) 1998-07-30 1998-07-30 Bidirectional memory securing management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10215667A JP2000047933A (en) 1998-07-30 1998-07-30 Bidirectional memory securing management system

Publications (1)

Publication Number Publication Date
JP2000047933A true JP2000047933A (en) 2000-02-18

Family

ID=16676185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10215667A Pending JP2000047933A (en) 1998-07-30 1998-07-30 Bidirectional memory securing management system

Country Status (1)

Country Link
JP (1) JP2000047933A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2388448A (en) * 2001-12-27 2003-11-12 Nec Corp Memory pool management system capable of using memory efficiently
JP2005316839A (en) * 2004-04-30 2005-11-10 Kyocera Corp Memory management device and mobile terminal device
JP2007249708A (en) * 2006-03-16 2007-09-27 Fujitsu Ltd Memory area allocation controller, memory area allocation control program and memory area allocation control method
JP2008033838A (en) * 2006-07-31 2008-02-14 Sanyo Electric Co Ltd Memory management device and memory management method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2388448A (en) * 2001-12-27 2003-11-12 Nec Corp Memory pool management system capable of using memory efficiently
GB2388448B (en) * 2001-12-27 2005-03-09 Nec Corp Memory pool management method and system capable of using memory efficiently
US7203812B2 (en) 2001-12-27 2007-04-10 Nec Corporation Memory pool management method and system capable of using memory efficiently
JP2005316839A (en) * 2004-04-30 2005-11-10 Kyocera Corp Memory management device and mobile terminal device
JP2007249708A (en) * 2006-03-16 2007-09-27 Fujitsu Ltd Memory area allocation controller, memory area allocation control program and memory area allocation control method
JP2008033838A (en) * 2006-07-31 2008-02-14 Sanyo Electric Co Ltd Memory management device and memory management method

Similar Documents

Publication Publication Date Title
US4528624A (en) Method and apparatus for allocating memory space based upon free space in diverse memory devices
US5983324A (en) Data prefetch control method for main storage cache for protecting prefetched data from replacement before utilization thereof
US6067608A (en) High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
KR920005853B1 (en) Apparatus for controlling input/output operation in virtual memory/visual computer type data processing system
JP2571664B2 (en) Computer main storage management system and method
EP1010080B1 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
US5884303A (en) Parallel searching technique
EP0239181B1 (en) Interrupt requests serializing in a virtual memory data processing system
EP0232960A2 (en) Method for automatically extending the size of a segment in a page segmented virtual memory data processing system
WO1997039407A9 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
JP2858795B2 (en) Real memory allocation method
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
JPH08129457A (en) Method and apparatus for expansion,reduction and redistribution of external storage structure
GB2265734A (en) Free memory cell management system
JP2005338985A (en) Method and system for managing storage area
JPH05274152A (en) Object management system
US6434553B1 (en) File prefetch control method for computer system
JP2000047933A (en) Bidirectional memory securing management system
JPH02220152A (en) Dynamic change processing system of memory allocation priority
JPH05158783A (en) Memory block control system
JP3328283B2 (en) Free memory of a computing device, dynamic management of free memory subdivided into at least two logic memory areas with different access characteristics
JP2994138B2 (en) Catalog Variable Management Method for Interactive Processing System
JPH03138737A (en) Large-scale file generating device
JP3013742B2 (en) Cache memory management method
JPH06266619A (en) Page saving/restoring device

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020820