JPH0438540A - Memory managing system - Google Patents
Memory managing systemInfo
- Publication number
- JPH0438540A JPH0438540A JP14540490A JP14540490A JPH0438540A JP H0438540 A JPH0438540 A JP H0438540A JP 14540490 A JP14540490 A JP 14540490A JP 14540490 A JP14540490 A JP 14540490A JP H0438540 A JPH0438540 A JP H0438540A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- divided
- queue
- memories
- divided 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 302
- 238000007726 management method Methods 0.000 claims description 50
- 230000009467 reduction Effects 0.000 claims description 30
- 230000007246 mechanism Effects 0.000 abstract description 35
- 230000007423 decrease Effects 0.000 abstract description 4
- 238000013467 fragmentation Methods 0.000 description 7
- 238000006062 fragmentation reaction Methods 0.000 description 7
- 238000000034 method Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000008602 contraction Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Abstract
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
この発明は、メモリの領域を分割してサイズの異なる分
割メモリを各サイズ毎に複数用意しておき、プログラム
等からメモリ獲得要求があった場合には最適なサイズの
分割メモリを付与するようなメモリ管理を行うメモリ管
理方式に関する。[Detailed Description of the Invention] [Objective of the Invention] (Industrial Application Field) This invention divides a memory area and prepares a plurality of divided memories of different sizes for each size. The present invention relates to a memory management method that performs memory management that allocates divided memory of an optimal size when there is an acquisition request.
(従来の技術)
複数のプログラムが走行する計算機システムでは、プロ
グラムからのメモリ獲得要求に応じて、そのプログラム
が使用するメモリ領域を割付けるメモリ管理が必要とな
る。従来のメモリ管理は、プログラムからメモリ獲得要
求があると、利用可能なメモリ領域からそのプログラム
に必要なサイズの領域を切出して(獲得して)割付ける
ものであった。このメモリ管理には、−旦プログラムに
割付けたメモリ領域が不要となった場合に、この割付は
状態を解放して再利用可能状態とするためのメモリ解放
処理も含まれる。しかし、このような従来のメモリ管理
方式(以下、第1のメモリ管理方式と呼ぶ)では、メモ
リの断片化(フラグメンテーション)が発生するために
、その断片化によるメモリ使用効率の低下を招き、更に
メモリ解放処理が高速に行えないという欠点があった。(Prior Art) In a computer system in which a plurality of programs are running, memory management is required to allocate memory areas to be used by the programs in response to memory acquisition requests from the programs. In conventional memory management, when a program issues a memory acquisition request, an area of the size required by the program is cut out (acquired) and allocated from an available memory area. This memory management also includes memory release processing for releasing the state of this allocation and making it reusable when a memory area previously allocated to a program is no longer needed. However, in such a conventional memory management method (hereinafter referred to as the first memory management method), memory fragmentation occurs, resulting in a decrease in memory usage efficiency due to the fragmentation. The drawback was that memory release processing could not be performed quickly.
そこで近年は、メモリ(の領域)を分割してサイズの異
なる分割メモリを各サイズ毎に複数用意し、各分割メモ
リをそのサイズに固有のキューにつないておくことによ
り、プログラムからメモリ獲得要求か発生した場合には
、最適なサイズの分割メモリを対応するキューから外し
て要求元に割付け(与え)、逆にメモリ解放要求か発生
した場合には、その分割メモリを元のキューに戻すとい
う第2のメモリ管理方式が適用されるようになっている
。この第2のメモリ管理方式は、上記した第1のメモリ
管理方式に比べてメモリの断片化が発生し難いため、メ
モリの使用効率が低下するのを防止でき、しかもメモリ
の解放処理も比較的高速に行えることから、広く普及し
ている。Therefore, in recent years, by dividing memory (area) and preparing multiple divided memories of different sizes for each size, and by connecting each divided memory to a queue specific to that size, memory acquisition requests from programs can be handled easily. If this occurs, the optimal size divided memory is removed from the corresponding queue and allocated (given) to the requester, and conversely, if a memory release request occurs, the divided memory is returned to the original queue. 2 memory management method is applied. This second memory management method is less likely to cause memory fragmentation than the first memory management method described above, so it can prevent memory usage efficiency from decreasing, and the memory release process is also relatively easy. It is widely used because it can be performed at high speed.
(発明が解決しようとする課題)
上記したように、一定サイズの分割メモリをそのサイズ
に固有のキューにつないでおき、メモリ獲得要求に対し
ては、最適なサイズの分割メモリを対応するキューから
外して要求元に与え、メモリ解放要求に対してはその対
象となる分割メモリを元のキューに戻すという従来のメ
モリ管理方式(第2のメモリ管理方式)は、メモリの断
片化が発生し難いためにメモリの使用効率の低下を防止
でき、しかもメモリの解放処理か比較的高速に行えると
いう利点があった。しかし、この方式でも、目的とする
キュー上に分割メモリがなくなった場合には、通常の(
第1のメモリ管理方式による)メモリ獲得・解放処理を
行わなくてはならず、分割メモリ方式(第2のメモリ管
理方式)の利点を維持てきなくなるという問題があった
。(Problem to be Solved by the Invention) As described above, divided memory of a fixed size is connected to a queue specific to that size, and in response to a memory acquisition request, a divided memory of an optimal size is connected from the corresponding queue. With the conventional memory management method (second memory management method), in which the divided memory is released and given to the requester, and the target divided memory is returned to the original queue in response to a memory release request, memory fragmentation is unlikely to occur. Therefore, it has the advantage that it is possible to prevent a decrease in memory usage efficiency, and memory release processing can be performed relatively quickly. However, even with this method, if there is no more divided memory on the target queue, the normal (
There is a problem in that the advantages of the divided memory method (second memory management method) cannot be maintained because memory acquisition and release processing (based on the first memory management method) must be performed.
この発明は上記事情に鑑みてなされたものでその目的は
、予め用意された分割メモリの数よりも多くのメモリ獲
得要求が発生した場合でも、分割メモリを用いることに
よるメモリの断片化防止とメモリ解放処理の高速性か確
保できるメモリ管理方式を提供することにある。This invention was made in view of the above circumstances, and its purpose is to prevent memory fragmentation by using divided memory even when there are more memory acquisition requests than the number of divided memories prepared in advance. The object of the present invention is to provide a memory management method that can ensure high-speed release processing.
[発明の構成]
(課題を解決するための手段)
この発明は、メモリの領域を分割してサイズの異なる分
割メモリを各サイズ毎に複数確保し、確保した各分割メ
モリをそのサイズに固有のキューに予めつないでおくこ
とで、プログラム等からのメモリ獲得要求に対処するよ
うにしたメモリ管理方式において、上記キューにつなが
れている分割メモリか不足することを予測し、そのキュ
ーに対応するサイズの拡張用分割メモリを予め定められ
た第1の数たけそのキューにつなぐ分割メモリ拡張手段
と、上記キューにつながれている分割メモリが余ること
を予測し、そのキューにつながれている分割メモリを予
め定められた第2の数だけそのキューから外す分割メモ
リ縮小手段とを設け、キューにつながれる分割メモリの
自動拡張・縮小を行うようにしたことを特徴とするもの
である。また、この発明は、現在実際に使用されている
分割メモリの使用数を示す使用数情報が各キュー別に設
定されるメモリ管理テーブルを設け、このテーブル上の
各キュー別の使用数情報をもとに分割メモリの使用状況
を判断して上記の予測を行うようにしたことも特徴とす
る。[Structure of the Invention] (Means for Solving the Problems) This invention divides a memory area, secures a plurality of divided memories of different sizes for each size, and uses each secured divided memory as a memory unique to its size. In a memory management method that handles memory acquisition requests from programs, etc. by connecting to a queue in advance, it is predicted that the divided memory connected to the queue will run out, and the size corresponding to the queue is A divided memory expansion means that connects the divided memory for expansion to a predetermined first number of queues, and predicts that the divided memory connected to the queue will be left over, and predetermines the divided memory connected to the queue. The present invention is characterized in that it is provided with a divided memory reduction means for removing from the queue a second number of divided memories connected to the queue, and automatically expands and contracts the divided memories connected to the queue. Further, the present invention provides a memory management table in which usage number information indicating the number of divided memories currently in use is set for each queue, and based on the usage number information for each queue on this table. Another feature is that the above prediction is made by determining the usage status of divided memory.
(作用)
この発明によれば、キューにつがれている分割メモリ(
即ち使用可能な分割メモリ)が不足することの予測が、
その時点で実際に使用されている分割メモリの使用数等
から判断される分割メモリの使用状況をもとに行われ、
不足予測時には、そのキューに固有のサイズの分割メモ
リが予め定められた数(第1の数)だけ、そのキューに
つながれるので(即ち分割メモリが自動拡張されるので
)、予め用意された分割メモリの数より多くのメモリ獲
得要求が発生しても、分割メモリ方式の利点を維持しつ
つ(即ちメモリの断片化を招くことなく)、メモリ領域
の割当てが行える。また、キューにつがれている分割メ
モリが余ることの予測も行われ、余剰予測時には、その
キューに固有のサイズの分割メモリが予め定められた数
(第2の数)だけ、そのキューから外されるので(即ち
分割メモリが自動縮小されるので)、分割メモリ方式の
利点を維持しつつ、メモリ領域の解放が行える。(Operation) According to this invention, the divided memory (
In other words, the prediction that there will be a shortage of available partitioned memory is
This is done based on the usage status of divided memory, which is determined from the number of divided memories actually used at that time.
When a shortage is predicted, a predetermined number (first number) of divided memory of a size specific to that queue is connected to that queue (that is, the divided memory is automatically expanded), so that the divided memory prepared in advance is Even if there are more memory acquisition requests than the number of memories, memory areas can be allocated while maintaining the advantages of the divided memory method (that is, without causing memory fragmentation). It is also predicted that there will be a surplus of divided memory attached to the queue, and when predicting the surplus, a predetermined number (second number) of divided memory of a size specific to that queue will be removed from the queue. (that is, the divided memory is automatically reduced), the memory area can be released while maintaining the advantages of the divided memory method.
(実施例)
第1図はこの発明のメモリ管理方式を適用するシステム
の一実施例を示すブロック構成図である。同図において
、10−1.10−2・・・10−sは各種のプログラ
ム、20はプログラム1O−1= 10−mの実行に必
要なメモリ領域を持つメモリ部、30はプログラム10
−1〜101からのメモリ獲得/解放要求に応じてプロ
グラムl0−1〜10−1に対するメモリ領域(ここで
は分割メモリ)の付与/解放を行うメモリ管理部である
。メモリ管理部30はオペレーティングシステム(O8
)の一部を成すものである。(Embodiment) FIG. 1 is a block diagram showing an embodiment of a system to which the memory management method of the present invention is applied. In the figure, 10-1, 10-2...10-s are various programs, 20 is a memory section having a memory area necessary for executing the program 1O-1=10-m, and 30 is the program 10-s.
This is a memory management unit that allocates/releases memory areas (here, divided memory) to programs 10-1 to 10-1 in response to memory acquisition/release requests from -1 to 101. The memory management unit 30 is an operating system (O8
).
メモリ部20において、21−1.21−2・21−n
はサイズAI、A2・・・Anの使用可能な(現在使用
されていない)分割メモリがつながれるキュー(以下、
フリーキューと称する) 、22−1.22−2・−2
2−nはフリーキュー21−1.21−2・・・21−
nにつながれる先頭の分割メモリのポインタ情報(アド
レス)を保持するキューエントリ(QE)である。23
−1゜23−2・・・23−nは初期状態においてフリ
ーキュー21−1゜21−2・・・21−nにつながれ
ているサイズAI、A2〜Anの分割メモリ(初期分割
メモリ) 、24−1はフリーキュー21−■において
、分割メモリの不足が発生しないように拡張されたサイ
ズAIの分割メモリ(拡張分割メモリ)、25は分割メ
モリ23−1〜23−n、 24−1のヘッダ部である
。ヘッダ部25は、対応する分割メモリの前また後の分
割メモリへのポインタ情報を持つ。In the memory section 20, 21-1, 21-2, 21-n
is a queue (hereinafter referred to as
(referred to as free queue), 22-1.22-2・-2
2-n is free queue 21-1.21-2...21-
This is a queue entry (QE) that holds pointer information (address) of the first divided memory connected to n. 23
-1゜23-2...23-n are divided memories of size AI, A2 to An (initial divided memory) connected to free queues 21-1゜21-2...21-n in the initial state, 24-1 is a divided memory (extended divided memory) of size AI expanded to prevent a shortage of divided memory in the free queue 21-■; 25 is a divided memory of divided memories 23-1 to 23-n, 24-1; This is the header section. The header section 25 has pointer information to the divided memory before or after the corresponding divided memory.
2Bは分割メモリ(23−1〜23−n、 24−1)
の獲得(付与)/解放等を各フリーキュー21−1〜2
1−nについて管理するために用いられるメモリ管理テ
ーブルである。メモリ管理テーブル26の構造を第2図
の模式図に示す。図に示すように、メモリ管理テーブル
26の各エントリは、フリーキューのキューNαが設定
されるキュー隘フィールド41.このキューNαフィー
ルド41て示されるフリーキュー(対応フリーキュー)
につながれる分割メモリのサイズが設定されるサイズフ
ィールド42、対応フリーキューに初期状態においてつ
ながれている分割メモリの数(初期分割メモリ数)が設
定される初期分割メモリ数フィールド43、および対応
フリーキューに現在つながれている分割メモリの数と同
フリーキューから外されて現在使用されている分割メモ
リの数との合計(全分割メモリ数)が設定される全分割
メモリ数フィールド44を持つ。メモリ管理テーブル2
6の各エントリはまた、対応フリーキューから外されて
現在使用されている分割メモリの数(現使用数)が設定
される現使用数フィールド45、対応フリーキューに新
たに分割メモリ(拡張分割メモリ)をつないで拡張する
際の拡張単位数(分割メモリの増設数)が設定される拡
張単位数フィールド46、および対応フリーキューがら
分割メモリを取除いて縮小する際の縮小単位数(分割メ
モリの縮小数)が設定される縮小単位数フィールド47
を持つ。メモリ管理テーブル26の各エントリは更に、
対応フリーキューに対する分割メモリ拡張操作を必要と
する境界(拡張境界)を示す情報が設定される拡張境界
フィールド4B、および対応フリーキューに対する分割
メモリ縮小操作を必要とする境界(縮小境界)を示す情
報が設定される縮小境界フィールド49を持つ。本実施
例では、上記拡張境界および縮小境界は、全分割メモリ
数に対する成る割合を示す。2B is divided memory (23-1 to 23-n, 24-1)
Acquisition (grant)/release, etc. of each free queue 21-1 to 21-2.
This is a memory management table used for managing 1-n. The structure of the memory management table 26 is shown in the schematic diagram of FIG. As shown in the figure, each entry of the memory management table 26 has a queue field 41. Free queue (corresponding free queue) indicated by this queue Nα field 41
a size field 42 in which the size of the divided memory connected to the corresponding free queue is set, an initial divided memory number field 43 in which the number of divided memories (initial divided memory number) connected to the corresponding free queue in the initial state is set, and a corresponding free queue. It has a total number of divided memories field 44 in which the sum of the number of divided memories currently connected to the free queue and the number of divided memories currently in use removed from the free queue (total number of divided memories) is set. Memory management table 2
Each entry in No. 6 also has a current number field 45 in which the number of divided memories that have been removed from the corresponding free queue and is currently in use (currently used number) is set, and a field 45 in which the number of divided memories that have been removed from the corresponding free queue (currently used number) is set; ) is set in the expansion unit number field 46 where the number of expansion units (the number of divided memory additions) is set when expanding by connecting the corresponding free queues, and the number of reduction units (the number of divided memory Reduction unit number field 47 where the reduction number) is set.
have. Each entry in the memory management table 26 further includes:
Expansion boundary field 4B in which information indicating a boundary (expansion boundary) that requires a divided memory expansion operation for the corresponding free queue is set, and information indicating a boundary (reduction boundary) that requires a divided memory reduction operation for the corresponding free queue It has a reduced boundary field 49 in which is set. In this embodiment, the expansion boundary and contraction boundary indicate the proportion of the total number of divided memories.
再び第1図を参照すると、メモリ管理部3oは、プログ
ラム1O−1〜10−mがらのメモリ獲得要求に応じて
最適なサイズの分割メモリを対応するフリーキューから
外して要求元に付与する分割メモリ付与機構31.およ
びプログラム10−1〜101からのメモリ解放要求に
応じて対象となる分割メモリを対応するフリーキューに
戻す分割メモリ解放機構32を有している。メモリ管理
部30は更に、分割メモリ付与機構31による分割メモ
リ付与操作が行われた場合に、対応フリーキューにつな
がれている分割メモリの数が不足するか否かの予測を行
い、不足予測時には分割メモリ(拡張分割メモリ)の拡
張(増設)を行う分割メモリ拡張機構33、および分割
メモリ解放機構32による分割メモリ解放操作が行われ
た場合に、対応フリーキューにつながれている分割メモ
リの数が余るか否かの予測を行い、余剰予測時には分割
メモリ(拡張分割メモリ)の縮小(削減)を行う分割メ
モリ縮小機構34を有する。Referring again to FIG. 1, the memory management unit 3o removes the optimal size of divided memory from the corresponding free queue in response to memory acquisition requests from the programs 1O-1 to 10-m and assigns it to the request source. Memory allocation mechanism 31. It also has a divided memory release mechanism 32 that returns target divided memory to the corresponding free queue in response to memory release requests from programs 10-1 to 101. The memory management unit 30 further predicts whether or not the number of divided memories connected to the corresponding free queue will be insufficient when the divided memory allocation mechanism 31 performs a divided memory allocation operation, and when the shortage is predicted, the memory management unit 30 performs partitioning. When the divided memory expansion mechanism 33, which expands (adds) memory (extended divided memory), and the divided memory release mechanism 32 perform a divided memory release operation, the number of divided memories connected to the corresponding free queue becomes surplus. It has a divided memory reduction mechanism 34 that predicts whether or not a surplus will occur, and reduces (reduces) the divided memory (extended divided memory) when predicting a surplus.
次に、この発明の一実施例の動作を、第3図のフローチ
ャートを参照して説明する。Next, the operation of one embodiment of the present invention will be explained with reference to the flowchart of FIG.
まずメモリ管理部30は、初期状態において、各フリー
キュー21−1〜21−nへ、メモリ管理テーブル26
の対応エントリのサイズフィールド42て示されるサイ
ズ(Al −An )の分割メモリ(初期分割メモリ)
23−1〜23−nを、初期分割メモリ数フィールド
43で示される数だけつないでおく。なお、初期分割メ
モリ23−1〜23−nは、メモリ部20の領域を分割
することで得られる。First, in the initial state, the memory management unit 30 sends data to each free queue 21-1 to 21-n from the memory management table 26.
A divided memory (initial divided memory) of the size (Al − An ) indicated by the size field 42 of the corresponding entry of
23-1 to 23-n are connected in the number indicated by the initial divided memory number field 43. Note that the initial divided memories 23-1 to 23-n are obtained by dividing the area of the memory section 20.
メモリ管理部30は、プログラム10−1−10−mの
いずれかからメモリ獲得要求があり、その旨を検出する
と(ステップS1)、分割メモリ付与機構31を起動す
る。分割メモリ付与機構31は、フリーキュー21−1
〜21−nのうち、メモリ獲得要求に最適なサイズのフ
リーキューから最後尾の分割メモリを外し、要求元に付
与する(ステップS2)。そして分割メモリ付与機構3
1は、そのフリーキューに対応するメモリ管理テーブル
26内エントリの現使用数フィールド45の内容(現使
用数)を1増加させ、しかる後に分割メモリ拡張機構3
3を起動する(ステップS3)。When the memory management unit 30 receives a memory acquisition request from one of the programs 10-1 to 10-m and detects this (step S1), it activates the divided memory allocation mechanism 31. The divided memory allocation mechanism 31 has a free queue 21-1.
21-n, the last divided memory is removed from the free queue with the optimum size for the memory acquisition request and is given to the request source (step S2). And divided memory allocation mechanism 3
1 increases the contents (currently used number) of the currently used number field 45 of the entry in the memory management table 26 corresponding to the free queue by 1, and then the divided memory expansion mechanism 3
3 (step S3).
分割メモリ拡張機構33は、分割メモリ付与機構31に
よる分割メモリ獲得(付与)に供されたフリーキューの
状態が拡張境界を超えているか否かを、そのキューに対
応するメモリ管理テーブル26内エントリの全分割メモ
リ数フィールド44の内容(全分割メモリ数)、現使用
数フィールド45の内容(現使用数)および拡張境界フ
ィールド48の内容(拡張境界を示す全分割メモリ数に
対する成る割合)をもとに判断する(ステップS4)。The divided memory expansion mechanism 33 determines whether the state of the free queue subjected to divided memory acquisition (allocation) by the divided memory allocation mechanism 31 exceeds the expansion boundary by checking the entry in the memory management table 26 corresponding to the queue. Based on the contents of the total number of divided memories field 44 (total number of divided memories), the contents of the currently used number field 45 (currently used number), and the contents of the extended boundary field 48 (the percentage of the total number of divided memories indicating the extended boundary). (Step S4).
即ち分割メモリ拡張機構33は、全分割メモリ数(対応
フリーキューに現在つながれている分割メモリの数と現
使用数とを合わせた数)に対する現使用数(対応フリー
キューから外されて現在使用されている分割メモリの数
)の割合が、拡張境界を示す割合を超えているか否かに
より、拡張境界を超えているか否かを判断する。もし、
拡張境界を超えているならば、分割メモリ拡張機構33
はそのフリーキューに対応するサイズの拡張分割メモリ
を、そのフリーキューに対応するメモリ管理テーブル2
6内エントリの拡張単位数フィールド゛46で示される
拡張単位数分だけ、そのフリーキューにつなぎ、分割メ
モリを拡張する(ステップS5)。これにより、例えば
フリーキュー21−1の場合であれば、サイズA1の拡
張分割メモリ24−1が指定された拡張単位数分だけ拡
張される。分割メモリ拡張機構33は以上の拡張操作を
行うと、そのフリーキューに対応するメモリ管理テーブ
ル26内エントリのフィールド44の内容(全分割メモ
リ数)を拡張中位数だけ増加させる(ステップS6)。In other words, the divided memory expansion mechanism 33 calculates the number of currently used memories (the number of currently used memories that have been removed from the corresponding free queue) relative to the total number of divided memories (the sum of the number of divided memories currently connected to the corresponding free queue and the number of currently used memories). It is determined whether the expansion boundary is exceeded based on whether the ratio (number of divided memories) exceeding the expansion boundary. if,
If the expansion boundary is exceeded, the divided memory expansion mechanism 33
stores the expanded divided memory of the size corresponding to the free queue in the memory management table 2 corresponding to the free queue.
The divided memory is expanded by connecting to the free queue by the number of expansion units indicated by the expansion unit number field 46 of the entry in 6 (step S5). As a result, in the case of the free queue 21-1, for example, the expanded divided memory 24-1 of size A1 is expanded by the specified number of expansion units. When the divided memory expansion mechanism 33 performs the above expansion operation, it increases the contents of the field 44 (the total number of divided memories) of the entry in the memory management table 26 corresponding to the free queue by the expansion median number (step S6).
なお、拡張境界を超えていない場合には、分割メモリ拡
張機構33は何もしない。Note that if the expansion boundary has not been exceeded, the divided memory expansion mechanism 33 does nothing.
一方、プログラム1O−1〜10−iのいずれかからメ
モリ解放要求があり、その旨がメモリ管理部30により
検出されると(ステップS7)、分割メモリ解放機構3
2が起動される。分割メモリ解放機構32は対象となる
分割メモリをそのサイズのフリキュー(同しサイズの分
割メモリがつながれるフリーキュー)に戻しくつなぎ)
、分割メモリの解放を行う(ステップS8)。そして分
割メモリ解放機構32は、そのフリーキューに対応する
メモリ管理テーブル26内エントリの現使用数フィール
ド45の内容(現使用数)を1減少させ、しかる後に分
割メモリ縮小機構34を起動する(ステップS9)。On the other hand, when there is a memory release request from any of the programs 1O-1 to 10-i and this is detected by the memory management unit 30 (step S7), the divided memory release mechanism 3
2 is activated. The divided memory release mechanism 32 returns the target divided memory to a free queue of that size (a free queue to which divided memories of the same size are connected).
, the divided memory is released (step S8). Then, the divided memory release mechanism 32 decreases by 1 the contents of the currently used number field 45 (currently used number) of the entry in the memory management table 26 corresponding to the free queue, and then activates the divided memory reduction mechanism 34 (step S9).
分割メモリ縮小機構34は、分割メモリ解放機構82に
よって分割メモリが戻されたフリーキューに関する現在
の全分割メモリ数が初期分割メモリ数を超えているか否
か、即ち少なくとも1回分割メモリの拡張が行われたか
否かを、そのキューに対応するメモリ管理テーブル26
内エントリの全分割メモリ数フィールド44の内容およ
び初期分割メモリ数フィールド43の内容をもとに判断
する(ステップ510)。全分割メモリ数が初期分割メ
モリ数を超えている場合には、分割メモリ縮小機構34
は、そのキューの状態が縮小境界を下回っているか否か
を、そのキューに対応するメモリ管理テーブル2B内エ
ントリの全分割メモリ数フィールド44の内容、現使用
数フィールド45の内容および縮小境界フィールド49
の内容(縮小境界を示す全分割メモリ数に対する成る割
合)をもとに判断する(ステップ511)。即ち分割メ
モリ縮小機構34は、全分割メモリ数に対する現使用数
の割合か縮小境界を示す割合を下回っているか否かによ
り、縮小境界を下回っているか否かを判断する。もし、
縮小境界を下回っているならば、分割メモリ縮小機構3
4はそのフリーキューに対応するサイズの拡張分割メモ
リを、そのフリーキューに対応するメモリ管理テーブル
26内エントリの縮小単位数フィールド47で示される
縮小単位数分だけ、そのフリーキューから外して、分割
メモリを縮小する(ステップ512)。これにより、例
えばフリーキュー21−1の場合であれば、拡張分割メ
モリ24−1が指定された縮小単位数分だけ外される。The divided memory reduction mechanism 34 determines whether the current total number of divided memories for the free queue to which the divided memory has been returned by the divided memory release mechanism 82 exceeds the initial number of divided memories, that is, the divided memory has been expanded at least once. The memory management table 26 corresponding to the queue
The determination is made based on the contents of the total number of divided memories field 44 and the contents of the initial number of divided memories field 43 of the inner entry (step 510). If the total number of divided memories exceeds the initial number of divided memories, the divided memory reduction mechanism 34
determines whether the status of the queue is below the reduction boundary by checking the contents of the total number of divided memories field 44, the contents of the current number of used numbers field 45, and the reduction boundary field 49 of the entry in the memory management table 2B corresponding to the queue.
The judgment is made based on the contents (the ratio of the reduction boundary to the total number of divided memories) (step 511). That is, the divided memory reduction mechanism 34 determines whether or not the number of divided memories is below the reduction boundary based on whether the ratio of the number of currently used memories to the total number of partitioned memories is less than the ratio indicating the reduction boundary. if,
If it is below the reduction boundary, split memory reduction mechanism 3
4 removes the expanded divided memory of the size corresponding to the free queue from the free queue by the number of reduction units indicated in the reduction unit number field 47 of the entry in the memory management table 26 corresponding to the free queue, and divides it. Shrink the memory (step 512). As a result, in the case of the free queue 21-1, for example, the expanded divided memory 24-1 is removed by the specified number of reduction units.
分割メモリ縮小機構34は以上の縮小操作を行うと、そ
のフリーキューに対応するメモリ管理テーブル26内エ
ントリのフィールド44の内容(全分割メモリ数)を縮
小単位数だけ減少させる(ステップ813)。After performing the above reduction operation, the divided memory reduction mechanism 34 reduces the contents of the field 44 (the total number of divided memories) of the entry in the memory management table 26 corresponding to the free queue by the number of reduction units (step 813).
なお、全分割メモリ数が初期分割メモリ数を超えていな
い場合、あるいは縮小境界を下回っていない場合には、
分割メモリ縮小機構34は何もしない。Note that if the total number of divided memories does not exceed the initial number of divided memories or is not below the reduction boundary,
The divided memory reduction mechanism 34 does nothing.
なお、前記実施例では、拡張境界および縮小境界が全分
割メモリ数に対する成る割合により示され、現使用数の
全分割メモリ数に対する割合との大小比較により、分割
メモリの拡張・縮小が行われるものとして説明したが、
これに限るものではない。例えば、拡張境界および縮小
境界を成る分割メモリ数で示し、フリーキューに実際に
接続されている分割メモリ数との大小比較により、分割
メモリの拡張・縮小を行うようにしてもよい。In the above embodiment, the expansion boundary and the contraction boundary are indicated by the ratio to the total number of divided memories, and the expansion/reduction of the divided memory is performed by comparing the size of the currently used number with the ratio to the total number of divided memories. It was explained as
It is not limited to this. For example, the expansion boundary and contraction boundary may be indicated by the number of divided memories, and the divided memory may be expanded or contracted by comparing the number of divided memories with the number of divided memories actually connected to the free queue.
また、拡張境界および縮小境界を、例えば全分割メモリ
数に応じて可変するようにしてもよい。Further, the expansion boundary and the contraction boundary may be varied depending on, for example, the total number of divided memories.
[発明の効果]
以上詳述したようにこの発明によれば、キューにつがれ
ている分割メモリ(即ち使用可能な分割メモリ)の不足
・余剰を分割メモリの使用状況をもとに予測し、その予
測結果に応じて該当キューに固有のサイズの分割メモリ
の自動拡張・縮小を行う構成としているので、予め用意
された分割メモリの数よりも多くのメモリ獲得要求が発
生した場合でも、分割メモリ方式の利点であるメモリの
断片化防止とメモリ解放処理の高速性が確保でき、特に
トランザクション処理等、同じ大きさのメモリ要求が顛
繁に発生するシステムに有効である。[Effects of the Invention] As detailed above, according to the present invention, the shortage or surplus of the divided memory (that is, the available divided memory) held in the queue is predicted based on the usage status of the divided memory, The structure is such that the divided memory of a size specific to the corresponding queue is automatically expanded or contracted according to the prediction result, so even if there are more memory acquisition requests than the number of divided memories prepared in advance, the divided memory This method has the advantage of preventing memory fragmentation and ensuring high-speed memory release processing, and is particularly effective in systems where the same size of memory requests occur frequently, such as in transaction processing.
第1図はこの発明のメモリ管理方式を適用するシステム
の一実施例を示すブロック構成図、第2図は第1図のメ
モリ管理テーブル26の構造を示す模式図、第3図は動
作を説明するためのフローチャートである。
10−1〜10−1・・プログラム、20・・・メモリ
部、21−1〜21−n・・・フリーキュー、23−1
〜23−ロ・・・初期分割メモリ、24−1・・・拡張
分割メモリ、2B・・メモリ管理テーブル、30・・・
メモリ管理部、31・・・分割メモリ付与機構、32・
・・分割メモリ解放機構、33・・・分割メモリ拡張機
構、34・・・分割メモリ縮小機構。
出願人代理人 弁理士 鈴江武彦FIG. 1 is a block diagram showing an embodiment of a system to which the memory management method of the present invention is applied, FIG. 2 is a schematic diagram showing the structure of the memory management table 26 in FIG. 1, and FIG. 3 explains the operation. This is a flowchart for 10-1 to 10-1...Program, 20...Memory section, 21-1 to 21-n...Free queue, 23-1
~23-B...Initial divided memory, 24-1...Extended divided memory, 2B...Memory management table, 30...
Memory management unit, 31... divided memory allocation mechanism, 32.
... Divided memory release mechanism, 33... Divided memory expansion mechanism, 34... Divided memory reduction mechanism. Applicant's agent Patent attorney Takehiko Suzue
Claims (2)
リを各サイズ毎に複数確保し、各分割メモリをそのサイ
ズに固有のキューに予めつないでおくことにより、メモ
リ獲得要求が発生した場合には最適なサイズの分割メモ
リを対応するキューから外して要求元に与え、メモリ解
放要求が発生した場合には対象となる分割メモリを元の
キューに戻すようにしたメモリ管理方式において、上記
キューにつながれている分割メモリが不足することを予
測し、そのキューに対応するサイズの拡張用分割メモリ
を予め定められた第1の数だけそのキューにつなぐ分割
メモリ拡張手段と、上記キューにつながれている分割メ
モリが余ることを予測し、そのキューにつながれている
分割メモリを予め定められた第2の数だけそのキューか
ら外す分割メモリ縮小手段と、 を具備し、分割メモリの自動拡張・縮小を行うようにし
たことを特徴とするメモリ管理方式。(1) By dividing the memory area and securing multiple divided memories of different sizes for each size, and by connecting each divided memory to a queue specific to that size in advance, when a memory acquisition request occurs, is a memory management method in which the optimally sized divided memory is removed from the corresponding queue and given to the request source, and when a memory release request occurs, the target divided memory is returned to the original queue. divided memory expansion means that predicts that the connected divided memory will run out and connects a first predetermined number of expansion divided memories of a size corresponding to the queue to the queue; A divided memory reduction means that predicts that the divided memory will be left over and removes a predetermined second number of divided memories connected to the queue from the queue, and automatically expands and contracts the divided memory. A memory management method characterized by the following.
加算され、上記キューに上記分割メモリが戻される毎に
1減算されることにより、実際に使用されている分割メ
モリの使用数を示す使用数情報が上記各キュー別に設定
されるメモリ管理テーブルを備え、上記分割メモリ拡張
手段および上記分割メモリ縮小手段は、このテーブル上
の上記各キュー別の使用数情報をもとに分割メモリの使
用状況を判断して上記予測を行うことを特徴とする第1
請求項記載のメモリ管理方式。(2) 1 each time the above divided memory is removed from the above queue.
The memory management table includes a memory management table in which usage number information indicating the number of divided memories actually used is set for each of the queues by adding 1 and subtracting 1 each time the divided memory is returned to the queue. , the divided memory expansion means and the divided memory reduction means perform the prediction by determining the usage status of the divided memory based on the usage number information for each queue on the table.
A memory management method according to the claims.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14540490A JPH0438540A (en) | 1990-06-05 | 1990-06-05 | Memory managing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14540490A JPH0438540A (en) | 1990-06-05 | 1990-06-05 | Memory managing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0438540A true JPH0438540A (en) | 1992-02-07 |
Family
ID=15384476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14540490A Pending JPH0438540A (en) | 1990-06-05 | 1990-06-05 | Memory managing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0438540A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6239529B1 (en) | 1998-12-28 | 2001-05-29 | Nsk Ltd. | Fixing structure for coil assembly and power-steering device |
US6910213B1 (en) | 1997-11-21 | 2005-06-21 | Omron Corporation | Program control apparatus and method and apparatus for memory allocation ensuring execution of a process exclusively and ensuring real time operation, without locking computer system |
JP2007513437A (en) * | 2003-12-31 | 2007-05-24 | インテル・コーポレーション | Dynamic performance monitoring based approach to memory management |
JP2010176578A (en) * | 2009-01-30 | 2010-08-12 | Kyocera Mita Corp | Memory management system, electronic device and memory management program |
JP2010204762A (en) * | 2009-02-27 | 2010-09-16 | Kyocera Mita Corp | Memory management system, electronic equipment and memory management program |
WO2010122679A1 (en) | 2009-04-23 | 2010-10-28 | 株式会社日立製作所 | Computer system and method for controlling same |
US8516215B2 (en) | 2009-04-23 | 2013-08-20 | Hitachi, Ltd. | Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same |
US8539198B2 (en) | 2008-10-30 | 2013-09-17 | Kyocera Document Solutions Inc. | Memory management system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS605358A (en) * | 1983-06-24 | 1985-01-11 | Fujitsu Ltd | Cell control system of storage area |
JPS6224355A (en) * | 1985-07-24 | 1987-02-02 | Hitachi Ltd | Buffer control system |
JPH0282846A (en) * | 1988-09-20 | 1990-03-23 | Fujitsu Ltd | Buffer pool advance expansion system |
-
1990
- 1990-06-05 JP JP14540490A patent/JPH0438540A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS605358A (en) * | 1983-06-24 | 1985-01-11 | Fujitsu Ltd | Cell control system of storage area |
JPS6224355A (en) * | 1985-07-24 | 1987-02-02 | Hitachi Ltd | Buffer control system |
JPH0282846A (en) * | 1988-09-20 | 1990-03-23 | Fujitsu Ltd | Buffer pool advance expansion system |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910213B1 (en) | 1997-11-21 | 2005-06-21 | Omron Corporation | Program control apparatus and method and apparatus for memory allocation ensuring execution of a process exclusively and ensuring real time operation, without locking computer system |
US6239529B1 (en) | 1998-12-28 | 2001-05-29 | Nsk Ltd. | Fixing structure for coil assembly and power-steering device |
JP2007513437A (en) * | 2003-12-31 | 2007-05-24 | インテル・コーポレーション | Dynamic performance monitoring based approach to memory management |
US8539198B2 (en) | 2008-10-30 | 2013-09-17 | Kyocera Document Solutions Inc. | Memory management system |
JP2010176578A (en) * | 2009-01-30 | 2010-08-12 | Kyocera Mita Corp | Memory management system, electronic device and memory management program |
JP2010204762A (en) * | 2009-02-27 | 2010-09-16 | Kyocera Mita Corp | Memory management system, electronic equipment and memory management program |
WO2010122679A1 (en) | 2009-04-23 | 2010-10-28 | 株式会社日立製作所 | Computer system and method for controlling same |
US8516215B2 (en) | 2009-04-23 | 2013-08-20 | Hitachi, Ltd. | Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same |
US8751767B2 (en) | 2009-04-23 | 2014-06-10 | Hitachi, Ltd. | Computer system and its control method |
US8769235B2 (en) | 2009-04-23 | 2014-07-01 | Hitachi, Ltd. | Computing system having a controller for controlling allocation of a storage area of a logical volume in a pool to a virtual volume and controlling methods for the same |
JP5801189B2 (en) * | 2009-04-23 | 2015-10-28 | 株式会社日立製作所 | Computer system and control method thereof |
US9201607B2 (en) | 2009-04-23 | 2015-12-01 | Hitachi, Ltd. | Computer system and method for balancing usage rate of pool volumes |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5784698A (en) | Dynamic memory allocation that enalbes efficient use of buffer pool memory segments | |
US5561785A (en) | System for allocating and returning storage and collecting garbage using subpool of available blocks | |
US5623654A (en) | Fast fragmentation free memory manager using multiple free block size access table for a free list | |
JPH02300949A (en) | Memory control | |
US5682530A (en) | Hierarchical resource management method | |
US7650400B2 (en) | Dynamic configuration and self-tuning on inter-nodal communication resources in a database management system | |
US7206890B2 (en) | System and method for reducing accounting overhead during memory allocation | |
US7093097B2 (en) | Dynamic self-tuning memory management method and system | |
US20040221290A1 (en) | Management of virtual machines to utilize shared resources | |
CN101681268A (en) | System, method and program to manage memory of a virtual machine | |
US6219772B1 (en) | Method for efficient memory allocation of small data blocks | |
JPH0438540A (en) | Memory managing system | |
US6839822B2 (en) | Memory-block coalescing based on run-time demand monitoring | |
CN110275777B (en) | Resource scheduling system | |
KR20190056624A (en) | Resource assignment method using Continuous Double Auction protocol in distributed processing environment, recording medium and distributed processing device applying the same | |
CN110908939A (en) | Message processing method and device and network chip | |
JP2004227188A (en) | Job swap method, job management device and job management program | |
US20060195662A1 (en) | Method for deterministic cache partitioning | |
US20030084265A1 (en) | Preemptive memory-block splitting | |
US20050066143A1 (en) | Method and system for selective memory coalescing across memory heap boundaries | |
EP1182553A2 (en) | Efficient assignment of processing resources in a fair queuing system | |
JPS62175832A (en) | Resources control system for electronic computer | |
JP2989608B2 (en) | Cell pool management device | |
JPH05158783A (en) | Memory block control system | |
JP2000047933A (en) | Bidirectional memory securing management system |