JPH0962565A - メモリ管理方法およびメモリ管理装置 - Google Patents
メモリ管理方法およびメモリ管理装置Info
- Publication number
- JPH0962565A JPH0962565A JP22136095A JP22136095A JPH0962565A JP H0962565 A JPH0962565 A JP H0962565A JP 22136095 A JP22136095 A JP 22136095A JP 22136095 A JP22136095 A JP 22136095A JP H0962565 A JPH0962565 A JP H0962565A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- management table
- module
- memory management
- 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
Links
Abstract
(57)【要約】
【目的】 獲得したメモリの使用が終了すると確実に解
放する。 【構成】 スタック領域3とこれを管理するメモリ管理
テーブル11を設け、アプリケーションプログラム1,
2が起動すると、スタック領域3を使用しアプリケーシ
ョンプログラム1,2の命令を実行する共通実行プログ
ラム群4が起動してメモリ管理テーブル11を初期化
し、スタック領域3の獲得、そのスタック領域3の解放
の度にメモリ管理テーブル11に該当事項を記入または
それを消去し、アプリケーションプログラム1,2を終
了するときはメモリ管理テーブル11の未解放メモリを
調べ、存在すればこれを解放する。
放する。 【構成】 スタック領域3とこれを管理するメモリ管理
テーブル11を設け、アプリケーションプログラム1,
2が起動すると、スタック領域3を使用しアプリケーシ
ョンプログラム1,2の命令を実行する共通実行プログ
ラム群4が起動してメモリ管理テーブル11を初期化
し、スタック領域3の獲得、そのスタック領域3の解放
の度にメモリ管理テーブル11に該当事項を記入または
それを消去し、アプリケーションプログラム1,2を終
了するときはメモリ管理テーブル11の未解放メモリを
調べ、存在すればこれを解放する。
Description
【0001】
【産業上の利用分野】本発明は共通実行プログラム群が
使用するメモリ領域の管理方法およびメモリ管理装置に
関する。
使用するメモリ領域の管理方法およびメモリ管理装置に
関する。
【0002】
【従来の技術】米国マイクロソフト社のWindows 3.1
(登録商標) では独自の専用モジュール郡をダイナミッ
ク・リンク・ライブラリ( 以下DLLと称する)の形式
で開発することができ、それを構成するモジュールがロ
ーカルメモリを獲得、解放する手法として、それぞれWi
ndows が提供しているLocal Alock ()、Local Fre
e()コマンドを呼び出してメモリの獲得、解放がなさ
れる。Local Alock ()コマンドは、引き数に取得する
メモリサイズを渡すことにより正常終了すると、取得し
たメモリのハンドル(メモリ管理番号に相当するもの)
を返し、これをLocal Free()コマンドの引き数として
渡せば、取得したメモリを解放する。
(登録商標) では独自の専用モジュール郡をダイナミッ
ク・リンク・ライブラリ( 以下DLLと称する)の形式
で開発することができ、それを構成するモジュールがロ
ーカルメモリを獲得、解放する手法として、それぞれWi
ndows が提供しているLocal Alock ()、Local Fre
e()コマンドを呼び出してメモリの獲得、解放がなさ
れる。Local Alock ()コマンドは、引き数に取得する
メモリサイズを渡すことにより正常終了すると、取得し
たメモリのハンドル(メモリ管理番号に相当するもの)
を返し、これをLocal Free()コマンドの引き数として
渡せば、取得したメモリを解放する。
【0003】
【発明が解決しようとする課題】上述の手法でDLL内
のモジュールが個々にメモリを獲得している場合、ソフ
トのバグでメモリの解放をし忘れたり、メモリを解放す
る前にパーソナルコンピュータがハングアップ(動作不
能)したりすると、獲得したメモリを解放する方法がな
くなり、このためアプリケーションプログラムで使用で
きる限りあるメモリが減少してしまうという問題点があ
る。
のモジュールが個々にメモリを獲得している場合、ソフ
トのバグでメモリの解放をし忘れたり、メモリを解放す
る前にパーソナルコンピュータがハングアップ(動作不
能)したりすると、獲得したメモリを解放する方法がな
くなり、このためアプリケーションプログラムで使用で
きる限りあるメモリが減少してしまうという問題点があ
る。
【0004】本発明は、上述の問題点に鑑みてなされた
もので、獲得したメモリの使用が終了すると確実にその
メモリを解放するメモリ管理方法およびメモリ管理装置
を提供することを目的とする。
もので、獲得したメモリの使用が終了すると確実にその
メモリを解放するメモリ管理方法およびメモリ管理装置
を提供することを目的とする。
【0005】
【課題を解決するための手段】上記目的を達成するため
請求項1の発明では、メモリ領域とこれを管理するメモ
リ管理テーブルが設けられ、アプリケーションプログラ
ムが起動すると、前記メモリ領域を使用しアプリケーシ
ョンプログラムの命令を実行する共通実効プログラム群
が起動してメモリ管理テーブルを初期化し、前記メモリ
領域のメモリを獲得して前記メモリ管理テーブルに該当
事項を記入し、獲得メモリを解放した時は前記メモリ管
理テーブルの該当事項を消去し、アプリケーションプロ
グラムを終了するときは前記メモリ管理テーブルの未解
放メモリを調べて存在すれば解放する。
請求項1の発明では、メモリ領域とこれを管理するメモ
リ管理テーブルが設けられ、アプリケーションプログラ
ムが起動すると、前記メモリ領域を使用しアプリケーシ
ョンプログラムの命令を実行する共通実効プログラム群
が起動してメモリ管理テーブルを初期化し、前記メモリ
領域のメモリを獲得して前記メモリ管理テーブルに該当
事項を記入し、獲得メモリを解放した時は前記メモリ管
理テーブルの該当事項を消去し、アプリケーションプロ
グラムを終了するときは前記メモリ管理テーブルの未解
放メモリを調べて存在すれば解放する。
【0006】請求項2の発明では、アプリケーションプ
ログラムが使用する共通実行プログラム群と、前記共通
実行プログラム群の構成モジュールが使用するメモリ領
域とを備え、前記共通実行プログラム群は起動モジュー
ルと終了モジュール、前記メモリ領域のメモリを獲得す
るメモリ獲得モジュールとこのメモリを解放するメモリ
解放モジュール、所定の作業を実施する実行モジュール
および前記メモリ領域を管理するメモリ管理テーブルと
を備え、前記アプリケーションプログラムが共通実行プ
ログラム群を起動させると起動モジュールがメモリ管理
テーブルを初期化し、次いで実行モジュールを起動させ
ると該実行モジュールはメモリ獲得モジュールを起動し
てメモリ領域のメモリを獲得すると共にメモリ管理テー
ブルに該当事項を記入し、実行モジュールが終了する場
合、メモリ解放モジュールを起動してメモリ領域で獲得
したメモリを解放すると共にメモリ管理テーブルの該当
事項を消去し、前記アプリケーションプログラムが終了
する際、終了モジュールを起動させて共通実行プログラ
ム群を終了させると共にメモリ管理テーブルに未解放メ
モリが存在するか調べ、存在すれば前記メモリ領域の該
当メモリを解放する。
ログラムが使用する共通実行プログラム群と、前記共通
実行プログラム群の構成モジュールが使用するメモリ領
域とを備え、前記共通実行プログラム群は起動モジュー
ルと終了モジュール、前記メモリ領域のメモリを獲得す
るメモリ獲得モジュールとこのメモリを解放するメモリ
解放モジュール、所定の作業を実施する実行モジュール
および前記メモリ領域を管理するメモリ管理テーブルと
を備え、前記アプリケーションプログラムが共通実行プ
ログラム群を起動させると起動モジュールがメモリ管理
テーブルを初期化し、次いで実行モジュールを起動させ
ると該実行モジュールはメモリ獲得モジュールを起動し
てメモリ領域のメモリを獲得すると共にメモリ管理テー
ブルに該当事項を記入し、実行モジュールが終了する場
合、メモリ解放モジュールを起動してメモリ領域で獲得
したメモリを解放すると共にメモリ管理テーブルの該当
事項を消去し、前記アプリケーションプログラムが終了
する際、終了モジュールを起動させて共通実行プログラ
ム群を終了させると共にメモリ管理テーブルに未解放メ
モリが存在するか調べ、存在すれば前記メモリ領域の該
当メモリを解放する。
【0007】
【作用】アプリケーションプログラムは共通実行プログ
ラム群の実行モジュールを用いて所定の作業を実施する
が、その際実行モジュールはメモリ領域のメモリを使用
する。このメモリ領域は共通実行プログラム群に設けら
れたメモリ管理テーブルで管理されており、メモリ獲得
モジュールがメモリを獲得したり、メモリ解放モジュー
ルが獲得したメモリを解放する度にメモリ管理テーブル
に該当事項を記入し、消去する管理を行う。さらにアプ
リケーションプログラムが終了するとき、終了モジュー
ルを起動させて共通実行プログラム群を終了させると共
にメモリ管理テーブルにメモリ獲得モジュールで獲得し
たメモリが存在するか調べ、存在すれば解放する。この
ように実行プログラム群を終了させるときメモリの解放
をチェックするので確実にメモリの解放を行うことがで
きる。
ラム群の実行モジュールを用いて所定の作業を実施する
が、その際実行モジュールはメモリ領域のメモリを使用
する。このメモリ領域は共通実行プログラム群に設けら
れたメモリ管理テーブルで管理されており、メモリ獲得
モジュールがメモリを獲得したり、メモリ解放モジュー
ルが獲得したメモリを解放する度にメモリ管理テーブル
に該当事項を記入し、消去する管理を行う。さらにアプ
リケーションプログラムが終了するとき、終了モジュー
ルを起動させて共通実行プログラム群を終了させると共
にメモリ管理テーブルにメモリ獲得モジュールで獲得し
たメモリが存在するか調べ、存在すれば解放する。この
ように実行プログラム群を終了させるときメモリの解放
をチェックするので確実にメモリの解放を行うことがで
きる。
【0008】
【実施例】以下、本発明の実施例を図面を参照して説明
する。図1は本実施例の構成を示すブロック図である。
CPU21は全体を管理し、プログラムに従って処理を
行う。ハードディスク22はプログラム等を格納し、プ
ログラムメモリ23にハードディスク22に格納したプ
ログラムをCPU21が読み出して記憶する。ワーキン
グメモリ24はCPU21がプログラムに従って処理を
する場合の作業エリアとなる。プリンタ25は記録紙に
印刷し、イメージスキャナ26は原稿等を読み取り画像
データを出力する。表示部27はディスプレイに処理内
容や入力した内容を表示する。フロピーディスク接続部
28はフロピーディスクの読み取りおよび書き込みを行
い、ディスク接続部29は光ディスクや磁気ディスクの
読み取りおよび書き込みを行う。キーボード30はオペ
レータが命令やデータ等を打ち込むのに用いられる。
する。図1は本実施例の構成を示すブロック図である。
CPU21は全体を管理し、プログラムに従って処理を
行う。ハードディスク22はプログラム等を格納し、プ
ログラムメモリ23にハードディスク22に格納したプ
ログラムをCPU21が読み出して記憶する。ワーキン
グメモリ24はCPU21がプログラムに従って処理を
する場合の作業エリアとなる。プリンタ25は記録紙に
印刷し、イメージスキャナ26は原稿等を読み取り画像
データを出力する。表示部27はディスプレイに処理内
容や入力した内容を表示する。フロピーディスク接続部
28はフロピーディスクの読み取りおよび書き込みを行
い、ディスク接続部29は光ディスクや磁気ディスクの
読み取りおよび書き込みを行う。キーボード30はオペ
レータが命令やデータ等を打ち込むのに用いられる。
【0009】図2はメモリ領域とソフトウェアの構成を
示す図である。本実施例は一例としてファイルの管理に
関する処理を説明するが、ファイルに限定されることは
ない。またWindows 3.1 を用いた場合を説明するが、他
のシステムにも利用できる。検索アプリケーション1は
光ディスクなどに記憶された内容を検索し、表示又は印
刷などをするプログラムであり、使用できるメモリをス
タック領域3として持っている。登録アプリケーション
2は光ディスク等に書き込むプログラムである。共通実
行プログラム群4は各アプリケーション1,2がそれぞ
れ使用することのできる実行プログラム群で、Windows
3.1 の場合ダイナミック・リンク・ライブラリ(DL
L)と呼ばれている。Lib Main()5はDLL4を使用
するアプリケーションが起動する際Windows 3.1 が必ず
呼び出すモジュールで本発明ではこのモジュールにより
スタック領域3のメモリを管理するメモリ管理テーブル
11を初期化するようにしている。WEP()6はDL
L4を使用しているアプリケーションが終了する際、Wi
ndows 3.1 が呼び出すモジュールで本発明ではこのモジ
ュールにより使用済でまだメモリを解放していない場合
にメモリを解放するようにしている。
示す図である。本実施例は一例としてファイルの管理に
関する処理を説明するが、ファイルに限定されることは
ない。またWindows 3.1 を用いた場合を説明するが、他
のシステムにも利用できる。検索アプリケーション1は
光ディスクなどに記憶された内容を検索し、表示又は印
刷などをするプログラムであり、使用できるメモリをス
タック領域3として持っている。登録アプリケーション
2は光ディスク等に書き込むプログラムである。共通実
行プログラム群4は各アプリケーション1,2がそれぞ
れ使用することのできる実行プログラム群で、Windows
3.1 の場合ダイナミック・リンク・ライブラリ(DL
L)と呼ばれている。Lib Main()5はDLL4を使用
するアプリケーションが起動する際Windows 3.1 が必ず
呼び出すモジュールで本発明ではこのモジュールにより
スタック領域3のメモリを管理するメモリ管理テーブル
11を初期化するようにしている。WEP()6はDL
L4を使用しているアプリケーションが終了する際、Wi
ndows 3.1 が呼び出すモジュールで本発明ではこのモジ
ュールにより使用済でまだメモリを解放していない場合
にメモリを解放するようにしている。
【0010】AAAA()7,BBBB()8,・・・
はアプリケーション1,2が行う作業をそれぞれ実施す
る実行モジュールで、例えばAAAA()7は光ディス
クの検索を実施し、BBBB()8はフロピーディスク
の検索を実施する。メモリ獲得()9は各実行モジュー
ル7,8・・・が呼び出してスタック領域3のメモリを
獲得し、メモリ管理テーブル11へ管理データを書き込
むモジュールで本発明で設けたものである。メモリ解放
()10は各実行モジュール7,8・・・が終了すると
き、獲得していたメモリを解放し、メモリ管理テーブル
11の該当する管理データを消去するモジュールで本発
明で設けたものである。メモリ管理テーブル11はスタ
ック領域3のメモリを管理するテーブルであり、Lib Ma
in()5によって初期化され、メモリ獲得()9によっ
て獲得されたメモリ管理番号が記入され、メモリ解
放()10モジュールによってメモリが解放されるとそ
のメモリ管理番号が消去され、WEP()6によってア
プリケーション終了時に使用済で未解放のメモリがある
とそのメモリ管理番号が消去される。
はアプリケーション1,2が行う作業をそれぞれ実施す
る実行モジュールで、例えばAAAA()7は光ディス
クの検索を実施し、BBBB()8はフロピーディスク
の検索を実施する。メモリ獲得()9は各実行モジュー
ル7,8・・・が呼び出してスタック領域3のメモリを
獲得し、メモリ管理テーブル11へ管理データを書き込
むモジュールで本発明で設けたものである。メモリ解放
()10は各実行モジュール7,8・・・が終了すると
き、獲得していたメモリを解放し、メモリ管理テーブル
11の該当する管理データを消去するモジュールで本発
明で設けたものである。メモリ管理テーブル11はスタ
ック領域3のメモリを管理するテーブルであり、Lib Ma
in()5によって初期化され、メモリ獲得()9によっ
て獲得されたメモリ管理番号が記入され、メモリ解
放()10モジュールによってメモリが解放されるとそ
のメモリ管理番号が消去され、WEP()6によってア
プリケーション終了時に使用済で未解放のメモリがある
とそのメモリ管理番号が消去される。
【0011】次に動作について説明する。光ディスクを
検索する場合を例にとり説明する。検索アプリケーショ
ン1が起動するとWindows 3.1 によりLib Main()5が
呼び出され、Lib Main()5はメモリ管理テーブル11
を初期化する。図3はこの状態を示す。図4はLib Main
()5の動作フロー図である。Lib Main()5は呼び出
されるとメモリ管理テーブル11の全初期化を行う(S
1)。また、その他のものの初期化も実施する(S
2)。これらが正常に行われた時、正常終了する。
検索する場合を例にとり説明する。検索アプリケーショ
ン1が起動するとWindows 3.1 によりLib Main()5が
呼び出され、Lib Main()5はメモリ管理テーブル11
を初期化する。図3はこの状態を示す。図4はLib Main
()5の動作フロー図である。Lib Main()5は呼び出
されるとメモリ管理テーブル11の全初期化を行う(S
1)。また、その他のものの初期化も実施する(S
2)。これらが正常に行われた時、正常終了する。
【0012】次に検索アプリケーション1は、例えば光
ディスクの検索を行う実行モジュールAAAA()7を
起動させる。AAAA()7は検索を実行するに当た
り、まずメモリを獲得するため、メモリ獲得()9を起
動させると、メモリ獲得()9はWindows 3.1 のメモリ
獲得コマンドであるLocal Alock ()を用いてスタック
領域3にメモリを獲得し、次に獲得したメモリの管理番
号をメモリ管理テーブルに記入する。AAAA()7は
検索作業が終了するとメモリ解放()10を起動させ
る。これによりWindows 3.1 のメモリ解放コマンドであ
るLocal Free()を用いてスタック領域3のメモリを解
放し、次に解放したメモリ管理番号(これをハンドルと
称する)をメモリ管理テーブル11から消去する。
ディスクの検索を行う実行モジュールAAAA()7を
起動させる。AAAA()7は検索を実行するに当た
り、まずメモリを獲得するため、メモリ獲得()9を起
動させると、メモリ獲得()9はWindows 3.1 のメモリ
獲得コマンドであるLocal Alock ()を用いてスタック
領域3にメモリを獲得し、次に獲得したメモリの管理番
号をメモリ管理テーブルに記入する。AAAA()7は
検索作業が終了するとメモリ解放()10を起動させ
る。これによりWindows 3.1 のメモリ解放コマンドであ
るLocal Free()を用いてスタック領域3のメモリを解
放し、次に解放したメモリ管理番号(これをハンドルと
称する)をメモリ管理テーブル11から消去する。
【0013】図5は上述した実行モジュールAAA
A()7によってメモリ獲得()9、メモリ解放()1
0を起動させメモリ獲得、メモリ解放をし、メモリ管理
テーブル11の記入、消去を行う関係を示す。図6はメ
モリ獲得()9の動作フローを示す。メモリ獲得()9
はまずメモリ管理テーブル11で使用できるメモリがあ
るか否かを調べ(S10)、使用できるメモリがあるこ
とを示す空きエリアが無い場合は、異常終了し、スタッ
ク領域3のメモリが使用できない旨の表示などを行う。
空きエリアが存在すればLocal Alock ()コマンドによ
りスタック領域3のメモリを獲得し(S11)、正常に
獲得できて正常終了したか調べる(S12)。獲得でき
ず正常終了としない場合は異常終了し、アラームなどの
表示を行う。メモリが獲得でき正常に終了した場合は、
メモリ管理テーブル11に獲得したメモリのハンドルを
記入し(S13)、メモリ管理テーブル内の使用してい
るメモリ数を1つ加算して(S14)終了する。
A()7によってメモリ獲得()9、メモリ解放()1
0を起動させメモリ獲得、メモリ解放をし、メモリ管理
テーブル11の記入、消去を行う関係を示す。図6はメ
モリ獲得()9の動作フローを示す。メモリ獲得()9
はまずメモリ管理テーブル11で使用できるメモリがあ
るか否かを調べ(S10)、使用できるメモリがあるこ
とを示す空きエリアが無い場合は、異常終了し、スタッ
ク領域3のメモリが使用できない旨の表示などを行う。
空きエリアが存在すればLocal Alock ()コマンドによ
りスタック領域3のメモリを獲得し(S11)、正常に
獲得できて正常終了したか調べる(S12)。獲得でき
ず正常終了としない場合は異常終了し、アラームなどの
表示を行う。メモリが獲得でき正常に終了した場合は、
メモリ管理テーブル11に獲得したメモリのハンドルを
記入し(S13)、メモリ管理テーブル内の使用してい
るメモリ数を1つ加算して(S14)終了する。
【0014】図7はメモリ解放()10の動作フローを
示す。メモリ解放()10は、Local Free()コマンド
を用いて先に獲得したメモリを解放する(S15)。正
常に解放できたか調べ(S16)、正常でない場合は異
常終了し、その旨の表示などを行う。正常に解放した場
合は、メモリ管理テーブル11内の解放したメモリのハ
ンドルを消去し(S17)、メモリ管理テーブル11内
の使用しているメモリ数を1つ減じ(S18)、正常に
終了する。
示す。メモリ解放()10は、Local Free()コマンド
を用いて先に獲得したメモリを解放する(S15)。正
常に解放できたか調べ(S16)、正常でない場合は異
常終了し、その旨の表示などを行う。正常に解放した場
合は、メモリ管理テーブル11内の解放したメモリのハ
ンドルを消去し(S17)、メモリ管理テーブル11内
の使用しているメモリ数を1つ減じ(S18)、正常に
終了する。
【0015】図8はメモリ管理テーブルの管理状況を示
す図である。左側はモジュールAAAA()がメモリ
1、メモリ2を獲得し、これを使用して処理を行った
後、メモリ2、メモリ1を解放して終了する動作を示
し、右側は使用しているメモリの数の管理状況を示して
いる。モジュールAAAA()がメモリを要求する前は
N個のメモリが使用されており、メモリを獲得してゆく
と、使用中のメモリ数は増加してゆき、解放してゆくと
減少して元のN個に戻る状態を示している。
す図である。左側はモジュールAAAA()がメモリ
1、メモリ2を獲得し、これを使用して処理を行った
後、メモリ2、メモリ1を解放して終了する動作を示
し、右側は使用しているメモリの数の管理状況を示して
いる。モジュールAAAA()がメモリを要求する前は
N個のメモリが使用されており、メモリを獲得してゆく
と、使用中のメモリ数は増加してゆき、解放してゆくと
減少して元のN個に戻る状態を示している。
【0016】DLL4を使用している検索アプリケーシ
ョン1が終了するとWindows 3.1 がDLL4内のWEP
()6を呼び出し終了するが、その際、未解放メモリを
チェックし、未解放メモリが存在すれば、これを解放し
た後、メモリ管理テーブル11の該当するメモリ管理番
号を消去する。図9は上述のWEP()6の動作を表示
した図面である。
ョン1が終了するとWindows 3.1 がDLL4内のWEP
()6を呼び出し終了するが、その際、未解放メモリを
チェックし、未解放メモリが存在すれば、これを解放し
た後、メモリ管理テーブル11の該当するメモリ管理番
号を消去する。図9は上述のWEP()6の動作を表示
した図面である。
【0017】図10はWEP()6の動作フロー図であ
る。WEP()6は動作を開始するとメモリ管理テーブ
ル11を調べてスタック領域3に未解放のメモリがある
か調べ(S20)、ある場合Local Free()コマンドに
よりメモリを解放し(S21)、メモリ管理テーブル1
1の解放したメモリのハンドルを消去し(S22)、テ
ーブル11内の未解放メモリの数を示すメモリ数を1つ
減少させる(S23)。このようにしてメモリ数が0と
なるまでS20〜S23のステップを繰り返し、0にな
り未解放メモリが無くなると(S20)、その他の処理
を終了させて(S24)、終了する。以上のように検索
アプリケーション1が終了するときはWEP()6が起
動し、未解放メモリを解放した後、終了するので、確実
に未解放メモリを解放して終了することができる。
る。WEP()6は動作を開始するとメモリ管理テーブ
ル11を調べてスタック領域3に未解放のメモリがある
か調べ(S20)、ある場合Local Free()コマンドに
よりメモリを解放し(S21)、メモリ管理テーブル1
1の解放したメモリのハンドルを消去し(S22)、テ
ーブル11内の未解放メモリの数を示すメモリ数を1つ
減少させる(S23)。このようにしてメモリ数が0と
なるまでS20〜S23のステップを繰り返し、0にな
り未解放メモリが無くなると(S20)、その他の処理
を終了させて(S24)、終了する。以上のように検索
アプリケーション1が終了するときはWEP()6が起
動し、未解放メモリを解放した後、終了するので、確実
に未解放メモリを解放して終了することができる。
【0018】図11は従来のメモリ獲得、メモリ解放を
示した図で実行モジュールAAAA()は、コマンドLo
cal Alock ()を用いてメモリを獲得し、コマンドLoca
l Free()を用いてメモリを解放しているが、メモリ管
理テーブルを用いて管理は行われていない。これに対
し、本発明は図5で説明したように獲得または解放した
メモリをメモリ管理テーブルで管理し、更にアプリケー
ションを終了するときWEP()コマンドにより未解放
メモリの解放を行うので、確実に未解放メモリを解放で
きる。
示した図で実行モジュールAAAA()は、コマンドLo
cal Alock ()を用いてメモリを獲得し、コマンドLoca
l Free()を用いてメモリを解放しているが、メモリ管
理テーブルを用いて管理は行われていない。これに対
し、本発明は図5で説明したように獲得または解放した
メモリをメモリ管理テーブルで管理し、更にアプリケー
ションを終了するときWEP()コマンドにより未解放
メモリの解放を行うので、確実に未解放メモリを解放で
きる。
【0019】実施例では検索アプリケーション1の場合
で説明したが、登録アプリケーション2の場合でも同様
の動作が行われ、また他のアプリケーションでも同様
に、まずLib Main()でメモリ管理テーブル11が初期
化され、メモリ獲得()、メモリ解放()でメモリ獲
得、解放したメモリのハンドルをメモリ管理テーブル1
1に記入または消去し、アプリケーションを終了時には
WEP()により未解放メモリを解放する。また実施例
はWindows 3.1 を用いて説明したが、これに限定される
ことなく、実施例で説明した機能を有するモジュールを
備えていれば、または備えていなくもこれらのモジュー
ルを作成することによりアプリケーションが終了したと
き未解放メモリはチェックされ解放される。
で説明したが、登録アプリケーション2の場合でも同様
の動作が行われ、また他のアプリケーションでも同様
に、まずLib Main()でメモリ管理テーブル11が初期
化され、メモリ獲得()、メモリ解放()でメモリ獲
得、解放したメモリのハンドルをメモリ管理テーブル1
1に記入または消去し、アプリケーションを終了時には
WEP()により未解放メモリを解放する。また実施例
はWindows 3.1 を用いて説明したが、これに限定される
ことなく、実施例で説明した機能を有するモジュールを
備えていれば、または備えていなくもこれらのモジュー
ルを作成することによりアプリケーションが終了したと
き未解放メモリはチェックされ解放される。
【0020】
【発明の効果】以上の説明より明らかなように、本発明
は、メモリ管理テーブルを設けてメモリの使用を管理
し、さらにアプリケーションを終了するとき、共通実行
プログラム群を終了させるモジュールはメモリ管理テー
ブルをチェックし、未解放メモリがあれば解放するので
確実にメモリ解放が行われる。
は、メモリ管理テーブルを設けてメモリの使用を管理
し、さらにアプリケーションを終了するとき、共通実行
プログラム群を終了させるモジュールはメモリ管理テー
ブルをチェックし、未解放メモリがあれば解放するので
確実にメモリ解放が行われる。
【図1】実施例のハードウェアの構成を示す図
【図2】実施例のソフトウェアの構成を示す図
【図3】検索アプリケーションの起動時、Lib Main()
が呼び出されメモリ管理テーブルを初期化する動作の説
明図
が呼び出されメモリ管理テーブルを初期化する動作の説
明図
【図4】Lib Main()モジュールの動作フロー図
【図5】検索アプリケーションが実行モジュールを起動
させ、これによりメモリ獲得、メモリ解放を行う動作を
示す図
させ、これによりメモリ獲得、メモリ解放を行う動作を
示す図
【図6】メモリ獲得モジュールの動作フロー図
【図7】メモリ解放モジュールの動作フロー図
【図8】メモリ管理テーブルの説明図
【図9】WEP()モジュールの動作の説明図
【図10】WEP()モジュールの動作フロー図
【図11】実行モジュールAAAA()によるメモリ獲
得、メモリ解放を行う従来の動作図
得、メモリ解放を行う従来の動作図
1 検索アプリケーション 3 スタック領域 4 DLL(共通実行プログラム群) 5 Lib Main() 6 WEP() 7 AAAA() 9 メモリ獲得() 10 メモリ解放() 11 メモリ管理テーブル
Claims (2)
- 【請求項1】 メモリ領域とこれを管理するメモリ管理
テーブルが設けられ、アプリケーションプログラムが起
動すると、前記メモリ領域を使用しアプリケーションプ
ログラムの命令を実行する共通実効プログラム群が起動
してメモリ管理テーブルを初期化し、前記メモリ領域の
メモリを獲得して前記メモリ管理テーブルに該当事項を
記入し、獲得メモリを解放した時は前記メモリ管理テー
ブルの該当事項を消去し、アプリケーションプログラム
を終了するときは前記メモリ管理テーブルの未解放メモ
リを調べて存在すれば解放するメモリ管理方法。 - 【請求項2】 アプリケーションプログラムが使用する
共通実行プログラム群と、前記共通実行プログラム群の
構成モジュールが使用するメモリ領域とを備え、前記共
通実行プログラム群は起動モジュールと終了モジュー
ル、前記メモリ領域のメモリを獲得するメモリ獲得モジ
ュールとこのメモリを解放するメモリ解放モジュール、
所定の作業を実施する実行モジュールおよび前記メモリ
領域を管理するメモリ管理テーブルとを備え、前記アプ
リケーションプログラムが共通実行プログラム群を起動
させると起動モジュールがメモリ管理テーブルを初期化
し、次いで実行モジュールを起動させると該実行モジュ
ールはメモリ獲得モジュールを起動してメモリ領域のメ
モリを獲得すると共にメモリ管理テーブルに該当事項を
記入し、実行モジュールが終了する場合、メモリ解放モ
ジュールを起動してメモリ領域で獲得したメモリを解放
すると共にメモリ管理テーブルの該当事項を消去し、前
記アプリケーションプログラムが終了する際、終了モジ
ュールを起動させて共通実行プログラム群を終了させる
と共にメモリ管理テーブルに未解放メモリが存在するか
調べ、存在すれば前記メモリ領域の該当メモリを解放す
ることを特徴とするメモリ管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22136095A JPH0962565A (ja) | 1995-08-30 | 1995-08-30 | メモリ管理方法およびメモリ管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22136095A JPH0962565A (ja) | 1995-08-30 | 1995-08-30 | メモリ管理方法およびメモリ管理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0962565A true JPH0962565A (ja) | 1997-03-07 |
Family
ID=16765579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22136095A Pending JPH0962565A (ja) | 1995-08-30 | 1995-08-30 | メモリ管理方法およびメモリ管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0962565A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013109756A (ja) * | 2011-11-18 | 2013-06-06 | Apple Inc | データ処理システムのメモリ使用状況を追跡する方法 |
CN108563507A (zh) * | 2018-04-12 | 2018-09-21 | 郑州云海信息技术有限公司 | 一种内存管理方法、装置、设备及可读存储介质 |
-
1995
- 1995-08-30 JP JP22136095A patent/JPH0962565A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013109756A (ja) * | 2011-11-18 | 2013-06-06 | Apple Inc | データ処理システムのメモリ使用状況を追跡する方法 |
US8949518B2 (en) | 2011-11-18 | 2015-02-03 | Apple Inc. | Method for tracking memory usages of a data processing system |
CN108563507A (zh) * | 2018-04-12 | 2018-09-21 | 郑州云海信息技术有限公司 | 一种内存管理方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9189263B1 (en) | Object synchronization in shared object space | |
US5525978A (en) | Graphical key manager for computer | |
US7266807B2 (en) | Method for integration edition of setting file and setting file integration base | |
US6209088B1 (en) | Computer hibernation implemented by a computer operating system | |
US6115738A (en) | Input/output device information management method and apparatus for multi-computers | |
JPH0713813B2 (ja) | データアクセス方法及びデータ処理システム | |
US7228544B2 (en) | Job processing method, job processing unit, and storage managing system | |
JPH03278126A (ja) | 計算機システム立上げ方式 | |
US6543011B1 (en) | Method for event recording in java | |
JP2000066904A (ja) | マルチタスク制御方法及び記憶媒体 | |
MX2010012829A (es) | Recobrar control de un recurso de procesamiento que ejecuta un contexto de ejecucion externa. | |
JP2004523812A (ja) | 効率的なタイマ管理システム | |
JPH0962565A (ja) | メモリ管理方法およびメモリ管理装置 | |
US6332199B1 (en) | Restoring checkpointed processes including adjusting environment variables of the processes | |
JP3586943B2 (ja) | プログラムロード装置と方法 | |
JPH064364A (ja) | Cpu動作記録方式 | |
JPS6312300B2 (ja) | ||
JP3175684B2 (ja) | ダンプ出力制御方式 | |
JPH103380A (ja) | コンピュータシステムとそのファイル管理方式 | |
JPH07262021A (ja) | システムリカバリシステム | |
JP2713230B2 (ja) | コンピュータ・システムにおける入出力システム | |
JPH113231A (ja) | ソフトウェア処理方法 | |
JPH11184712A (ja) | 情報処理装置 | |
JPH0756743A (ja) | モジュ−ル管理方法および装置 | |
JPS63314642A (ja) | 選択プロダクト管理処理方式 |