JPH0895849A - メモリ管理方法 - Google Patents

メモリ管理方法

Info

Publication number
JPH0895849A
JPH0895849A JP23151494A JP23151494A JPH0895849A JP H0895849 A JPH0895849 A JP H0895849A JP 23151494 A JP23151494 A JP 23151494A JP 23151494 A JP23151494 A JP 23151494A JP H0895849 A JPH0895849 A JP H0895849A
Authority
JP
Japan
Prior art keywords
memory
application
block
memory block
area
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
JP23151494A
Other languages
English (en)
Inventor
Takeo Kimura
岳男 木村
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP23151494A priority Critical patent/JPH0895849A/ja
Publication of JPH0895849A publication Critical patent/JPH0895849A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 複数のタスクが同時に動作することが可能な
マルチタスクオペレーティングシステムにおいて、アプ
リケーションを必要最小限のメモリサイズで、かつ、シ
ステム全体で使用するメモリ領域が不連続になることを
抑えながら動作させることができるメモリ管理方法を提
供すること。 【構成】 各アプリケーションで使用するメモリを一括
管理するステップと、各アプリケーションの実行に必要
なだけのメモリを譲渡するステップと、各アプリケーシ
ョンの実行に不必要なメモリを回収するステップと、回
収したメモリを一時的に保持するステップと、回収した
メモリから優先的に再利用するステップとを有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリ管理方法に関
し、更に詳しくはコンピュータを使用した各種機器のオ
ペレーティングシステム、特に複数のタスク(アプリケ
ーション)が同時に動作することが可能なマルチタスク
オペレーティングシステムにおけるメモリ管理方法に関
する。
【0002】
【従来の技術】一般的なオペレーティングシステム(以
下、OSと略する)では、メモリの管理機構を持ってお
り、アプリケーションはOSにメモリを割り当ててもら
うことで互いのメモリ領域を侵すことなく動作する。こ
の時、アプリケーションに与えられたメモリ領域は、プ
ログラム領域,スタック領域,ヒープ(heap)領域
(動的データ域)に分けられ、アプリケーションでの動
的なメモリの獲得は、ヒープ領域内から行なわれる。こ
のヒープ領域は、通常その容量が不足すると拡大するこ
とができ、動的に大量のメモリを確保することができる
ようになっている。
【0003】
【発明が解決しようとする課題】しかしながら、一般に
ヒープ領域は連続したメモリ空間に配置されることを前
提としており、それを拡大することはできても縮小する
ことは難しく、そのため一時的に大量のメモリを使用す
るアプリケーションでは、無駄なメモリを抱えたままに
なってしまうということがあった。また、ヒープ領域の
拡大縮小を繰り返すとフラグメンテーションが生じてメ
モリを効率的に使用できなくなることがあった。そし
て、これらの結果、使用していないメモリが十分存在し
ながらも他のアプリケーションを起動できないようなこ
とがあった。
【0004】本発明は、上述の点に鑑みてなされたもの
で、その目的とするところは、アプリケーションを必要
最小限のメモリサイズで、かつ、システム全体で使用す
るメモリ領域が不連続になることを抑えながら動作させ
ることができるメモリ管理方法を提供することにある。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、コンピュータを使用した各種機器を制御
するオペレーティングシステムのメモリ管理方法におい
て、各アプリケーションで使用するメモリを一括管理す
る第1のステップと、前記各アプリケーションの実行に
必要なだけのメモリを譲渡する第2のステップと、前記
各アプリケーションの実行に不必要なメモリを回収する
第3のステップと、前記第3のステップで回収したメモ
リを一時的に保持する第4のステップと、前記第3のス
テップで回収したメモリから優先的に再利用する第5の
ステップとを有することを特徴とする。
【0006】また、本発明は好ましくは、前記第2のス
テップは、まず最初に既にアプリケーションが確保した
メモリの空き状況を調べるステップを包含することを特
徴とすることができる。
【0007】また、本発明は好ましくは、前記第3のス
テップは、各アプリケーションがメモリを解放する毎に
回収するか否かを判断し、不用と判断した場合に直ちに
これを回収するステップを包含することを特徴とするこ
とができる。
【0008】また、本発明は好ましくは、前記第3のス
テップは、アプリケーションのメモリ解放に関係なくオ
ペレーティングシステムがメモリの回収を開始するステ
ップを包含することを特徴とすることができる。
【0009】また、本発明は好ましくは、前記第4のス
テップは、隣接するメモリ領域を回収した場合にそれら
を併合して管理するステップと、オペレーティングシス
テムが一括管理するメモリ領域の未使用領域に隣接する
領域を回収した場合にこれを未使用領域に併合するステ
ップとを包含することを特徴とすることができる。
【0010】
【作用】本発明では、コンピュータを使用した各種機器
を制御するオペレーティングシステムにおいて、各アプ
リケーションで使用するメモリを一括管理するステップ
と、各アプリケーションの実行に必要なだけのメモリを
譲渡するステップと、各アプリケーションの実行に不必
要なメモリを回収するステップと、回収したメモリを一
時的に保持するステップと、回収したメモリから優先的
に再利用するステップを設けているので、アプリケーシ
ョンを必要最小限のメモリサイズで、かつ、システム全
体で使用するメモリ領域が不連続になることを抑えなが
ら動作させることができる。これにより、システム全体
でメモリを効率良く使用でき、より少ないメモリ量でよ
り多くのアプリケーションを実行させることができる。
また、システムで管理するメモリのフラグメンテーショ
ンを早期に解消させることができる。
【0011】
【実施例】以下、添付図面を参照して本発明の実施例を
詳細に説明する。
【0012】図1は本発明の実施例であるメモリ管理方
法の基本構成を示す。図1において、1−1はコンピュ
ータを使用した各種機器を制御するOS(オペレーティ
ングシステム)、1−2はそのOS上で動作するアプリ
ケーションプログラム、1−3は上記OSが一括管理す
るメモリ領域(メモリプール)、1−4はメモリプール
の使用状況を記憶するメモリ管理テーブル、1−5はO
Sがアプリケーションから回収したメモリを一時的に保
持するメモリブロック管理リストである。
【0013】この図1において、上記アプリケーション
1−2からメモリ獲得要求があると、上記OS1−1は
上記メモリブロック管理リスト1−5または上記メモリ
プール1−3から必要な大きさのメモリブロックをとり
だし、これを上記アプリケーション1−2に譲渡する。
この時、譲渡されたメモリブロックの情報は上記メモリ
管理テーブル1−4に記憶され保持される。また、上記
アプリケーション1−2からメモリ解放要求があると上
記OS1−1は譲渡したメモリブロックの使用状況を調
べて、これが回収可能ならばこれを回収し、上記メモリ
ブロック管理リスト1−5に保持する。この時、回収し
たメモリブロックが上記メモリプール1−3の未使用領
域に併合できるならば、上記メモリ管理テーブル1−4
を更新することでこれを併合する。
【0014】(第1の実施例)本発明の第1の実施例を
図1から図5に基づき説明する。
【0015】本発明の第1の実施例におけるメモリ管理
方法の概念は上述の図1に示す通りである。この図1に
示すようにすべてのメモリはOS1−1が管理してお
り、アプリケーション1−2はOS1−1に対して必要
ならばメモリブロックを要求し、また不要となったメモ
リブロックは直ちにOS1−1へ返却する。ただし、メ
モリブロックの操作は通常OS1−1が用意するシステ
ムサービスによって自動的になされ、このサービスを利
用する限りアプリケーション1−2がメモリブロックの
存在を意識することはない。
【0016】本発明の方法では、連続するメモリ領域を
メモリプール1−3としてOS1−1が管理しており、
アプリケーションからシステムサービスを通じてメモリ
ブロックの獲得要求があると、このメモリプールの中か
ら未使用部分を必要なだけ切り出し、各アプリケーショ
ンへ渡すようにしている。
【0017】メモリプールはある一定の大きさの単位
(メモリブロック)に切り分けられて管理されており、
そのメモリブロックの使用状況を記録するための領域が
メモリ管理テーブルである。なお、本発明の方法におけ
るメモリプールの管理単位のサイズをm、メモリプール
のサイズをMとすると切り分けられるメモリブロックの
個数の最大値は(M÷m)個となる。メモリ管理テーブ
ルとメモリプールとの関係は図2に示す様になる。図2
に示すように、メモリ管理テーブル1−4には各メモリ
ブロックを獲得したアプリケーションの番号が2−1の
領域に書き込まれ、そのメモリブロックが使用中である
ことが2−2の領域に記録される。なお、未使用である
メモリブロックの管理テーブルには、システムで規定す
る特殊な値(図2では0)が書き込まれ、使用中の領域
とは区別できるようにしておく。
【0018】管理単位であるメモリブロック1つの大き
さはmであるが、これ以上のサイズのメモリブロックが
必要な場合には、連続するメモリブロックを1つの大き
なメモリブロックとしてアプリケーションが使用できる
ようにする。この場合、先頭のメモリブロックに対応す
るメモリ管理テーブルにのみこのメモリブロックを獲得
したアプリケーションの番号を記録しておくと、いろい
ろなサイズのメモリブロックが存在してもその管理単位
を把握できる。アプリケーションに渡されるメモリブロ
ックは、メモリプールにおける未使用領域の先頭位置を
示すポインタによって管理されており、このポインタは
確保するメモリブロックのサイズにしたがって次々と更
新される。
【0019】また、メモリブロックをアプリケーション
に渡す時には、確保したメモリブロックの先頭部分にメ
モリブロックを有効に利用するための情報であるヘッダ
(MCB)を作成する。したがって、このヘッダの大き
さをH、アプリケーションが要求したメモリの大きさを
Nとすると、実際にはH+Nの大きさを満足するだけの
大きさを持つメモリブロックがメモリを要求したアプリ
ケーションに渡される。ヘッダには例えば下記の表1に
示すようなメモリブロックのサイズ、累積使用サイズ、
使用済みサイズ等を記録することで、メモリブロックを
返却する際の判断材料として使用することができる。
【0020】
【表1】
【0021】アプリケーションに渡ったメモリブロック
は、図3に示すようにリスト(MCB−LIST)でつ
ながれて管理される。この時、各メモリブロックはアプ
リケーションでの従来のヒープ領域に代わるものであ
る。この特徴としては、ヒープがリスト構造をとること
で、アプリケーションに必要なメモリを確保するために
必ずしも連続した領域を必要としない。また、ヒープ領
域の拡大はリストへのメモリブロックの付け足しによっ
て、ヒープの縮小はリストからのメモリブロックの削減
によって、簡単に行なうことができることなどが挙げら
れる。
【0022】ところで、各メモリブロックは最低でもO
Sが管理するサイズmの大きさを持っている。したがっ
て、mよりも小さなメモリを要求した際には、獲得した
メモリブロック中に未使用メモリが残っていることが十
分考えられる。そこで、本発明の方法では、アプリケー
ションがメモリの獲得を要求する際に利用するシステム
サービスにおいて、まずそのアプリケーションの持つメ
モリブロックに要求を満たすに足る空きがあるかどうか
を調べ、空きがある場合には新たなメモリブロックを割
り当てることなく既に獲得したメモリブロックの中から
要求されたサイズのメモリ領域をアプリケーションに渡
すようにする。このため、獲得したメモリブロックはM
CB(ヘッダ)の情報を使って図3に示すように空き領
域の多い順にリストにつなぐなどの工夫をしておくと効
率良く空きメモリを探すことができる。
【0023】以上述べたアプリケーションによるメモリ
の獲得要求におけるOSのメモリ譲渡のステップをまと
めると図6に示すようになる。
【0024】ステップ6−1:メモリ獲得要求に従って
メモリのアライメント等を考慮して、実際に確保するメ
モリのサイズを計算する。
【0025】ステップ6−2:アプリケーションにおい
て既に確保したメモリブロックの内部にステップ6−1
で計算したサイズの空きがないか調べる。この時、アプ
リケーション内のメモリブロックのリスト中に存在する
ブロックのヘッダ情報(MCB)を順番に調べる。メモ
リブロック内に空き領域が存在する場合、ステップS6
−3へ進み、空き領域がない場合にはステップ6−4へ
進む。
【0026】ステップ6−3:ステップ6−2で空き領
域が存在する場合、または、メモリブロックを譲渡する
場合、メモリ領域を使用可能なようにヘッダ(MCB)
を更新して、その位置をアプリケーションに返し、メモ
リ譲渡ステップを終了する(メモリ獲得成功)。
【0027】ステップ6−4:ステップ6−2において
空き領域が見つからなかった場合には、OSの管理する
メモリブロックを譲渡するため、ヘッダ容量を考慮した
メモリブロックのサイズを計算する。
【0028】ステップ6−5:ステップ6−4で計算し
たサイズよりも大きなメモリブロックが回収したメモリ
ブロックを管理するリスト中に存在するか否かを各ブロ
ックのヘッダ情報を順番に調べながら探す。条件に合う
メモリブロックが見つかったならば、ステップ6−6へ
進み、そうでなければステップ6−10へ進む。
【0029】ステップ6−6:ステップ6−5でメモリ
ブロックが見つかったならば、メモリブロックが必要と
するサイズに対して適正かどうか判定する。要求に対し
て見つけたメモリブロックのサイズが大き過ぎるのなら
ばステップ6−7へ、そうでなければステップ6−8へ
進む。
【0030】ステップ6−7:ステップ6−6において
見つけたメモリブロックが大き過ぎるのならば、それを
2つに分割する。
【0031】ステップ6−8:ステップ6−6またはス
テップ6−11において見つけたブロックをアプリケー
ションに譲渡する。
【0032】ステップ6−9:その譲渡するメモリブロ
ックがアプリケーションで使用できるようにメモリ管理
テーブルを更新する。
【0033】ステップ6−10:ステップ6−5におい
てリスト中に必要とするサイズ以上のメモリブロックが
見つけられなかった場合、OSが管理するメモリプール
から必要とするサイズのメモリブロックが確保できるか
否かを調べる。メモリプールから指定されたメモリブロ
ックを確保できる場合、ステップ6−11へ進み、そう
でなければエラーを返してメモリ譲渡ステップを終了す
る(メモリ獲得失敗)。
【0034】ステップ6−11:ステップ6−10にお
いてメモリプールから必要とするサイズのメモリブロッ
クが確保できるならば、未使用領域が縮小されるので未
使用領域を示すポインタを更新し、ステップ6−8へ進
む。
【0035】本発明においてはアプリケーションに渡っ
たメモリブロックは、システム全体でのメモリ使用効率
を上げるために不用になった時点でOSに返却される。
あるメモリブロックがそれを持つアプリケーションにと
って不用かどうかの判断は各メモリブロックのMCBの
情報を使用する。本発明の方法では、システムサービス
を通じてアプリケーションからメモリ解放の要求がある
と、まずその解放するメモリ領域が属するメモリブロッ
クの使用状態を調べる。この時、解放するメモリ領域が
どのメモリブロックに属するかは、メモリ管理テーブル
を使って計算することができ、上記の表1の例では求め
たメモリブロックのMCBに記述された累積使用バイト
数と使用済みバイト数が一致すれば、このブロック内で
現在使用中のメモリが無いことになるので、これをOS
に返却可能であると判断できる。ただし、アプリケーシ
ョンがメモリブロックを1つしか持っていない場合など
は、メモリブロックを返却してしまうと次のメモリ獲得
要求時に必ずメモリブロックの移動が生じてしまうの
で、MCBを初期化するだけでOSに返却しないように
することも可能である。また、当然ながらアプリケーシ
ョンの終了時には、そのアプリケーションが獲得したす
べてのメモリブロックがOSに返却されるようにしてお
くことが必要である。
【0036】OSに返却されたメモリブロックはアドレ
ス順にソートされて、返却メモリ管理リストに一旦登録
される(図4参照)。
【0037】この時、リスト上にあって連続するメモリ
ブロックは1つのメモリブロックとしてまとめて管理す
る(図5参照)。ただし、メモリプール内において未使
用領域に隣接するメモリブロックが返却された場合に
は、メモリ管理テーブルを更新して未使用領域に併合す
る。そして、この時メモリプールの未使用領域の先頭位
置を示すポインタが更新される。例えば、未使用領域に
隣接するメモリブロックとは、図2におけるタスク2で
使用中のメモリブロック2−3であり、これがOSに返
却された場合、未使用領域の先頭位置のポインタは2−
4のブロックを指すようになる。また、この時、すでに
タスク3がメモリブロック2−5,2−6の解放を行な
っていたならば、未使用領域の先頭位置のポインタは、
メモリブロック2−5を指すようになる。以上のような
操作をすることで、返却メモリ管理リストにメモリブロ
ックが登録されている状態はメモリプールにフラグメン
テーションが生じている場合に限定される。したがっ
て、次のメモリブロック獲得要求の際に、返却メモリ管
理リストに登録されているメモリブロックから優先的に
ブロックを渡すようにすれば、メモリプールのフラグメ
ンテーションの解消を早めることができるので結果的に
メモリの使用効率を上げることができる。
【0038】以上述べたアプリケーションによるメモリ
の解放要求におけるOSのメモリ回収のステップをまと
めると図7に示すようになる。
【0039】ステップ7−1:メモリ解放要求にしたが
ってアプリケーションの持つメモリブロックのヘッダ情
報(MCB)を更新する。
【0040】ステップ7−2:ステップ7−1で更新し
たメモリブロックのヘッダ情報を調べ、それが回収可能
か判定する。回収可能ならばステップ7−3へ進み、回
収不可能ならば回収ステップを完了する。
【0041】ステップ7−3:ステップ7−2で回収可
能と判断されたならば、そのメモリブロックを回収し、
回収したメモリブロックをメモリブロック管理リストに
登録する。この時回収したブロックはアドレス順にリス
ティングする。
【0042】ステップ7−4:ステップ7−3によって
回収されたブロックと隣接するブロックがメモリブロッ
ク管理リストで管理されるブロックの中にあるか否かを
調べる。隣接するブロックがあるのならばステップ7−
5へ進み、なければステップ7−6へ進む。
【0043】ステップ7−5:ステップ7−4で回収さ
れたブロックと隣接するブロックがあったならば、これ
らを併合して1つの回収ブロックとして管理し、隣接す
るブロックがなければ、ステップ7−6へ進む。
【0044】ステップ7−6:回収したブロックがメモ
リプールの未使用領域に隣接するか否かを調べる。回収
したブロックが未使用領域に隣接するならば、ステップ
7−7へ進み、そうでなければ回収ステップを終了す
る。
【0045】ステップ7−7:ステップ7−6におい
て、回収したブロックがメモリプールの未使用領域に隣
接するならば、回収したメモリブロックを未使用領域と
するためにメモリ管理テーブルを更新する。
【0046】ステップ7−8:ステップ7−6において
メモリ未使用領域が拡大したので、未使用領域管理ポイ
ンタを更新しメモリ回収ステップを完了する。
【0047】本実施例では上記のようなステップを設け
ることで、アプリケーションを必要最小限のメモリサイ
ズで、かつ、システム全体を使用するメモリ領域が不連
続になることを抑えながら動作させることができる。
【0048】(他の実施例) (第2の実施例)本発明の第2の実施例を図8から図1
0を参照して説明する。
【0049】上述の本発明の第1の実施例では、各アプ
リケーションにおいてメモリを解放する時に回収できる
メモリブロックを回収するようにした手順を示したが、
本第2実施例では、各アプリケーションから不必要なメ
モリを強制回収するステップを設け、メモリが足りなく
なってからメモリの回収を開始するようにした手順を示
す。
【0050】図8は、アプリケーションによるメモリ要
求におけるOSのメモリ譲渡の手順を示したものであ
る。ここで特徴的なのは、1度メモリブロックの獲得に
失敗(図8のステップ8−10でNo(否定判定)の場
合)しても前述のメモリ強制回収ステップによって、実
行中の各アプリケーションから使用済みのメモリを回収
し(図8のステップ8−13)、再度メモリが獲得でき
るか否かをチェックする(図8のステップ8−5,8−
10)点である。他の処理ステップは第1の実施例の図
6と同一である。
【0051】また、図9は、アプリケーションによるメ
モリ解放要求におけるOSの振舞いを示したものであ
る。ここでは、メモリブロックが回収可能(図9のステ
ップ9−2でYes(肯定判定)の場合)であっても、
この時点では回収せず、ヘッダを初期化する(図9のス
テップ9−3)にとどめ、必要になるまで回収のタイミ
ングを遅らすようにしている。実際の回収作業は上記の
メモリ強制回収ステップ(図8のステップ8−13)に
任せることで、オンデマンドな形態でのメモリ回収が実
現できる。
【0052】図10は、上述のメモリの強制回収ステッ
プ8−13の手順の詳細を示したものである。以下、順
に説明する。
【0053】ステップ10−1:すべてのアプリケーシ
ョンについてメモリブロックの調査が終了したならば、
メモリの回収ステップを終了する、そうでなければステ
ップ10−2へ進む。
【0054】ステップ10−2:ステップ10−1で調
査対象となったアプリケーションの各メモリブロックの
ヘッダ情報を調べ、それが初期化されているか否かでそ
れが回収可能か否かを判定する。回収可能なブロックが
あればステップ10−3へ進み、回収不可能ならば次の
アプリケーションを調べるためにステップ10−1へ戻
る。
【0055】ステップ10−3:ステップ10−2で回
収可能と判断されたメモリブロックがあれば、そのメモ
リブロックを回収し、回収したメモリブロックをメモリ
ブロック管理リストに登録する。この時、回収したブロ
ックはアドレス順にリスティングする。
【0056】ステップ10−4:ステップ10−3によ
って回収されたブロックと隣接するブロックがメモリブ
ロック管理リストで管理されるブロック中にあるか否か
を調べる。隣接するブロックがあるのならばステップ1
0−5へ進み、なければステップ10−6へ進む。
【0057】ステップ10−5:ステップ10−4で回
収されたブロックと隣接するブロックがあったならば、
これらを併合して1つの回収ブロックとして管理し、隣
接するブロックがなければ、ステップ10−6へ進む。
【0058】ステップ10−6:回収したブロックがメ
モリプールの未使用領域に隣接するか否かを調べる。回
収したブロックが未使用領域に隣接するならば、ステッ
プ10−7へ進み、そうでなければ次のアプリケーショ
ンを調べるためにステップ10−1へ戻る。
【0059】ステップ10−7:ステップ10−6にお
いて、回収したブロックがメモリプールの未使用領域に
隣接するならば、回収したメモリブロックを未使用領域
とするためにメモリ管理テーブルを更新する。
【0060】ステップ10−8:ステップ10−6にお
いてメモリ未使用領域が拡大したので、未使用領域管理
ポインタを更新しメモリ回収ステップを完了する。
【0061】本実施例では上記のようなステップを設け
ることで、本発明の第1の実施例と同様に、アプリケー
ションを必要最小限のメモリサイズで、かつ、システム
全体で使用するメモリ領域が不連続になることを抑えな
がら動作させることができる。また、この時、図1のO
S1−1でCPUのアイドル状態を検知してメモリの強
制回収を行なう様にすれば、メモリの強制回収のために
費やすCPUパワーを効率良く分散でき、システムのレ
スポンスを上げることができる。
【0062】
【発明の効果】以上説明したように、本発明によれば、
アプリケーションを必要最小限のメモリサイズで、か
つ、システム全体で使用するメモリ領域が不連続になる
ことを抑えながら動作させることができる。
【0063】これにより、本発明によれば、システム全
体でメモリを効率良く使用でき、より少ないメモリ量で
より多くのアプリケーションを実行させることができる
という効果が得られる。
【0064】また、本発明では、アプリケーションを必
要最小限のメモリサイズで、かつ、システム全体で使用
するメモリ領域が不連続になることを抑えながら動作さ
せることができるので、システムで管理するメモリのフ
ラグメンテーションを早期に解消させることができると
いう効果もある。
【0065】従って、本発明は仮想記憶機構のない小規
模なマルチタスクオペレーティングシステムにおいて特
に有効であると期待される。
【図面の簡単な説明】
【図1】本発明の第1の実施例における各ステップを実
行する装置の基本構成を示すブロック図である。
【図2】本発明の第1の実施例においてメモリの一括管
理の方法を説明する図である。
【図3】本発明の第1の実施例においてアプリケーショ
ンでのメモリ管理の方法を説明する図である。
【図4】本発明の第1の実施例においてOSが回収した
メモリを管理する方法を説明する図である。
【図5】本発明の第1の実施例においてOSが回収した
メモリを管理する方法を説明する図である。
【図6】本発明の第1の実施例において、アプリケーシ
ョンがOSにメモリを獲得要求する場合の手順を示すフ
ローチャートである。
【図7】本発明の第1の実施例において、アプリケーシ
ョンが使用済みのメモリを解放する場合の手順を示すフ
ローチャートである。
【図8】本発明の第2の実施例において、アプリケーシ
ョンがOSにメモリを獲得要求する場合の手順を示すフ
ローチャートである。
【図9】本発明の第2の実施例において、アプリケーシ
ョンが使用済みのメモリを解放する場合の手順を示すフ
ローチャートである。
【図10】本発明の第2の実施例において、OSが各ア
プリケーションから使用済みのメモリを強制回収する場
合の手順を示すフローチャートである。
【符号の説明】 1−1 コンピュータを使用した各種機器を制御するO
S 1−2 そのOS上で動作するアプリケーションプログ
ラム 1−3 上記OSが一括管理するメモリ領域(メモリプ
ール) 1−4 メモリプールの使用状況を記憶するメモリ管理
テーブル 1−5 OSがアプリケーションから回収したメモリを
一時的に保持するメモリブロック管理リスト

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータを使用した各種機器を制御
    するオペレーティングシステムのメモリ管理方法におい
    て、 各アプリケーションで使用するメモリを一括管理する第
    1のステップと、 前記各アプリケーションの実行に必要なだけのメモリを
    譲渡する第2のステップと、 前記各アプリケーションの実行に不必要なメモリを回収
    する第3のステップと、 前記第3のステップで回収したメモリを一時的に保持す
    る第4のステップと、 前記第3のステップで回収したメモリから優先的に再利
    用する第5のステップとを有することを特徴とするメモ
    リ管理方法。
  2. 【請求項2】 前記第2のステップは、まず最初に既に
    アプリケーションが確保したメモリの空き状況を調べる
    ステップを包含することを特徴とする請求項1に記載の
    メモリ管理方法。
  3. 【請求項3】 前記第3のステップは、各アプリケーシ
    ョンがメモリを解放する毎に回収するか否かを判断し、
    不用と判断した場合に直ちにこれを回収するステップを
    包含することを特徴とする請求項1または2に記載のメ
    モリ管理方法。
  4. 【請求項4】 前記第3のステップは、アプリケーショ
    ンのメモリ解放に関係なくオペレーティングシステムが
    メモリの回収を開始するステップを包含することを特徴
    とする請求項1または2に記載のメモリ管理方法。
  5. 【請求項5】 前記第4のステップは、隣接するメモリ
    領域を回収した場合にそれらを併合して管理するステッ
    プと、オペレーティングシステムが一括管理するメモリ
    領域の未使用領域に隣接する領域を回収した場合にこれ
    を未使用領域に併合するステップとを包含することを特
    徴とする請求項1ないし4のいずれかに記載のメモリ管
    理方法。
JP23151494A 1994-09-27 1994-09-27 メモリ管理方法 Pending JPH0895849A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23151494A JPH0895849A (ja) 1994-09-27 1994-09-27 メモリ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23151494A JPH0895849A (ja) 1994-09-27 1994-09-27 メモリ管理方法

Publications (1)

Publication Number Publication Date
JPH0895849A true JPH0895849A (ja) 1996-04-12

Family

ID=16924687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23151494A Pending JPH0895849A (ja) 1994-09-27 1994-09-27 メモリ管理方法

Country Status (1)

Country Link
JP (1) JPH0895849A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176578A (ja) * 2009-01-30 2010-08-12 Kyocera Mita Corp メモリ管理システム、電子機器及びメモリ管理プログラム
JP2010204762A (ja) * 2009-02-27 2010-09-16 Kyocera Mita Corp メモリ管理システム、電子機器及びメモリ管理プログラム
US8539198B2 (en) 2008-10-30 2013-09-17 Kyocera Document Solutions Inc. Memory management system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539198B2 (en) 2008-10-30 2013-09-17 Kyocera Document Solutions Inc. Memory management system
JP2010176578A (ja) * 2009-01-30 2010-08-12 Kyocera Mita Corp メモリ管理システム、電子機器及びメモリ管理プログラム
JP2010204762A (ja) * 2009-02-27 2010-09-16 Kyocera Mita Corp メモリ管理システム、電子機器及びメモリ管理プログラム

Similar Documents

Publication Publication Date Title
US6895416B2 (en) Checkpointing filesystem
JP4177960B2 (ja) 増分不要情報収集
US8074222B2 (en) Job management device, cluster system, and computer-readable medium storing job management program
JP3197403B2 (ja) 計算機システムのアプリケーションプログラム障害発生時の制御方法
CN101382916B (zh) 嵌入式系统内存管理的方法
AU2004202730B2 (en) Detection of out of memory and graceful shutdown
JP5212360B2 (ja) 制御プログラム、制御システムおよび制御方法
JPH06139120A (ja) ファイルの更新方式
KR100528973B1 (ko) 가비지 콜렉션 방법 및 그 장치
US20030028723A1 (en) Efficient data backup using a single side file
WO2020224236A1 (zh) 区块链数据处理的装置、方法、系统及存储介质
JPH0895849A (ja) メモリ管理方法
CN110445580B (zh) 数据发送方法及装置、存储介质、电子装置
US20050144168A1 (en) Storage system with a data sort function
CN115391106A (zh) 一种备端资源池化的方法、系统及装置
CN115756726A (zh) 一种应用于云平台的容器本地存储智能调度与分配方法
JP4160817B2 (ja) ディスクサブシステム、計算機システム、それを管理するためのストレージ管理方法、および、管理プログラム
JPH10333944A (ja) メモリダンプ採取方式
JPH11203193A (ja) 共有メモリ管理装置及び方法
JP2989608B2 (ja) セルプール管理装置
JPH07182225A (ja) Osリソースのオンライン増減設方式
JP2003263366A (ja) スワッピング制御方法及びその実施装置並びにその処理プログラム
JP3047533B2 (ja) 計算機システムのリソース管理方法
CN115357197A (zh) 一种预写日志存储方法、系统及设备
CN115756766A (zh) 一种日志解析同步事务存储的方法及设备