JP2008191952A - メモリ管理方法、メモリ管理装置、及びメモリ管理プログラムが記録されている記録媒体 - Google Patents
メモリ管理方法、メモリ管理装置、及びメモリ管理プログラムが記録されている記録媒体 Download PDFInfo
- Publication number
- JP2008191952A JP2008191952A JP2007026111A JP2007026111A JP2008191952A JP 2008191952 A JP2008191952 A JP 2008191952A JP 2007026111 A JP2007026111 A JP 2007026111A JP 2007026111 A JP2007026111 A JP 2007026111A JP 2008191952 A JP2008191952 A JP 2008191952A
- Authority
- JP
- Japan
- Prior art keywords
- area
- data
- recording area
- pointer
- destination
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims abstract description 91
- 238000000034 method Methods 0.000 claims description 186
- 230000008569 process Effects 0.000 claims description 175
- 230000010076 replication Effects 0.000 claims description 110
- 230000006870 function Effects 0.000 claims description 106
- 230000004888 barrier function Effects 0.000 claims description 36
- 238000005056 compaction Methods 0.000 abstract description 41
- 230000000694 effects Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 7
- 230000001771 impaired effect Effects 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【解決手段】メモリ管理プログラムは、コンパクション処理中に、主プログラムがヒープ領域にデータを書込むとき、データの書込み先が、複製元オブジェクトの記録領域又は複製先オブジェクトの記録領域のいずれかであるかを判断し(S31)、データの書込み先がいずれかであると判断したとき(S32でYES)、書込むデータを、複製元及び複製先オブジェクトの記録領域の両方に書込む(S33)。そのため、コンパクション処理中に主プログラムが書込み処理を行っても複製元オブジェクトと複製先オブジェクトとのデータの整合性を保つことができる。
【選択図】図10
Description
Parallel Incremental Compaction (US 2004/0128329 A1) Incremental Incrementally Compacting Garbage Collection(SIGPLAN Notice 22(7) pp.253-263)
前記ヒープ領域に連続した利用可能領域を生成する限定範囲を設定する範囲設定手段と、前記限定範囲内に含まれる複製元オブジェクトをこの限定範囲外の利用可能領域に複製先オブジェクトとして複製すると共に、前記オブジェクト位置記録領域に、該複製元オブジェクトの位置及び該複製先オブジェクの位置を記録するオブジェクト複製手段と、前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記オブジェクト複製手段により複製された複製先オブジェクトの位置に更新する第1ポインタ更新手段と、前記限定範囲の領域を利用可能領域にする限定範囲利用可能化手段と、前記オブジェクト複製手段を実行中に、前記主プログラムが前記ヒープ領域に記録されたオブジェクトの記録領域にデータの書込み処理を行うとき、又は書込み処理を行った後、データの書込み先の記録領域が、前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであるかを判断する複製判断手段と、前記複製判断手段により書込み先が前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであると判断されたとき、前記主プログラムが書込み処理を行うデータを、前記複製元オブジェクトの記録領域及び前記複製先オブジェクトの記録領域の両方に書込みを行う複製書込み手段と、を備えるものである。
11 CPU
12 入力部
13 出力部
14 操作部
15 通信部
16 表示部
17 フラッシュメモリ(記録媒体)
18 メモリ部(メモリ)
21 データ記録領域
22 ヒープ領域
24 位置記録リスト(オブジェクト位置記録領域)
25 ヒープ領域
26 データ記録領域
27 スタック領域
30 オブジェクト
31〜33 オブジェクト
36 オブジェクト
37 オブジェクト
34 複製元オブジェクト
35 複製元オブジェクト
34a 複製先オブジェクト
35a 複製先オブジェクト
40〜44 オブジェクト位置ポインタ
50〜54 複製位置ポインタ
60a〜60c 関数フレーム
61〜64 関数フレーム
70 カレントフレーム
80 障壁
91 主プログラム
93 メモリ管理プログラム
94 データ
121〜123 データ要素
R 限定範囲
Claims (15)
- メモリ中に、動的にデータを生成するプログラム(以下、主プログラム)の実行等に利用されるデータが記録されたデータ記録領域と、主プログラムが実行中に使用するデータ要素を含むデータ(以下、オブジェクト)を記録するためのヒープ領域とが設けられ、
主プログラムの実行が進むことにより不要となった前記ヒープ領域のオブジェクトを消去し、該ヒープ領域に利用可能な空き領域(以下、利用可能領域)を生成すると共に、該ヒープ領域に連続した利用可能領域を生成するために、該ヒープ領域に記録されているオブジェクトを移動させるメモリ管理方法において、
前記オブジェクトは、オブジェクトの複製先の位置又は複製元の位置を記録するための複製位置ポインタをさらに含み、
前記データ記録領域に、前記オブジェクトの位置を参照するオブジェクト位置ポインタが記録され、
前記ヒープ領域に連続した利用可能領域を生成する限定範囲を設定する範囲設定ステップと、
前記限定範囲内に含まれる複製元オブジェクトをこの限定範囲外の利用可能領域に複製先オブジェクトとして複製すると共に、該複製元オブジェクト及び該複製先オブジェクトの複製位置ポインタの参照先を互いのオブジェクトの位置に設定するオブジェクト複製ステップと、
前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記オブジェクト複製ステップにより複製された複製先オブジェクトの位置に更新する第1ポインタ更新ステップと、
前記限定範囲の領域を利用可能領域にする限定範囲利用可能化ステップと、
前記オブジェクト複製ステップを実行中に、前記主プログラムが前記ヒープ領域に記録されたオブジェクトの記録領域にデータの書込み処理を行うとき、又は書込み処理を行った後、データの書込み先の記録領域が、前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであるかを判断する複製判断ステップと、
前記複製判断ステップにより書込み先が前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであると判断されたとき、前記主プログラムが書込み処理を行うデータを、前記複製元オブジェクトの記録領域及び前記複製先オブジェクトの記録領域の両方に書込みを行う複製書込みステップと、を含むことを特徴とするメモリ管理方法。 - メモリ中に、動的にデータを生成するプログラム(以下、主プログラム)の実行等に利用されるデータが記録されたデータ記録領域と、主プログラムが実行中に使用するデータ要素を含むデータ(以下、オブジェクト)を記録するためのヒープ領域とが設けられ、
主プログラムの実行が進むことにより不要となった前記ヒープ領域のオブジェクトを消去し、該ヒープ領域に利用可能な空き領域(以下、利用可能領域)を生成すると共に、該ヒープ領域に連続した利用可能領域を生成するために、該ヒープ領域に記録されているオブジェクトを移動させるメモリ管理方法において、
前記データ記録領域に、前記オブジェクトの位置を参照するオブジェクト位置ポインタが記録され、
前記メモリ中に、オブジェクトの位置を記録するオブジェクト位置記録領域がさらに設けられ、
前記ヒープ領域に連続した利用可能領域を生成する限定範囲を設定する範囲設定ステップと、
前記限定範囲内に含まれる複製元オブジェクトをこの限定範囲外の利用可能領域に複製先オブジェクトとして複製すると共に、前記オブジェクト位置記録領域に、該複製元オブジェクトの位置及び該複製先オブジェクの位置を記録するオブジェクト複製ステップと、
前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記オブジェクト複製ステップにより複製された複製先オブジェクトの位置に更新する第1ポインタ更新ステップと、
前記限定範囲の領域を利用可能領域にする限定範囲利用可能化ステップと、
前記オブジェクト複製ステップを実行中に、前記主プログラムが前記ヒープ領域に記録されたオブジェクトの記録領域にデータの書込み処理を行うとき、又は書込み処理を行った後、データの書込み先の記録領域が、前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであるかを判断する複製判断ステップと、
前記複製判断ステップにより書込み先が前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであると判断されたとき、前記主プログラムが書込み処理を行うデータを、前記複製元オブジェクトの記録領域及び前記複製先オブジェクトの記録領域の両方に書込みを行う複製書込みステップと、を含むことを特徴とするメモリ管理方法。 - 前記オブジェクトは、前記データ要素として前記オブジェクト位置ポインタをさらに含み、
前記複製元オブジェクトの位置を参照する前記ヒープ領域内のオブジェクト位置ポインタの参照先を、前記オブジェクト複製ステップにより複製された複製先オブジェクトの位置に更新する第2ポインタ更新ステップと、
前記第2ポインタ更新ステップを実行中に、前記主プログラムが前記ヒープ領域に前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの書込み処理を行うとき、又は書込み処理を行った後、該オブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に変更する参照先変更ステップと、
前記第2ポインタ更新ステップの実行中に、前記主プログラムが2つのオブジェクト位置ポインタの参照先が同じオブジェクトの位置であるかどうかの検査処理を行うとき、該2つのオブジェクト位置ポインタのうちの一方が前記複製元オブジェクトの位置を、他方が前記複製先オブジェクトの位置を参照している場合、同一のオブジェクトを参照していると判断する同一判断ステップと、をさらに備え、
前記複製判断ステップは、前記オブジェクト複製ステップ、又は前記第2ポインタ更新ステップを実行中に、前記主プログラムが前記ヒープ領域に記録されたオブジェクトの記録領域にデータの書込み処理を行うとき、又は書込み処理を行った後、データの書込み先の記録領域が、前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであるかを判断することを特徴とする請求項1又は請求項2に記載のメモリ管理方法。 - 前記データ記録領域中に、前記主プログラムが実行する関数の実行結果等を一時的に記録する関数フレームが積み上げられて配置されるスタック領域が設けられ、
前記スタック領域内の前記関数フレームを上位から下位に向かって走査し、この順に該スタック領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記オブジェクト複製ステップにより複製された複製先オブジェクトの位置に更新する第3ポインタ更新ステップと、
前記第3ポインタ更新ステップによるオブジェクト位置ポインタの更新処理を中断するときに、該第3ポインタ更新ステップによる処理が最後に行われた前記関数フレームに、関数の実行を制御する障壁を設定する障壁設定ステップと、をさらに備え、
前記第1ポインタ更新ステップは、前記スタック領域を除く前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新し、
前記障壁が、関数の実行完了後、前記第3ポインタ更新ステップによる処理を再開させることを特徴とする請求項1乃至請求項3のいずれかに記載のメモリ管理方法。 - 前記ヒープ領域内に前記データ記録領域の一部又は全部を割当て、該ヒープ領域内の該データ記録領域外の領域を、請求項1乃至請求項3のいずれかに記載のヒープ領域とし、
前記範囲設定ステップは、前記ヒープ領域内の前記データ記録領域が割当てられた領域に対して限定範囲を設定することができ、
前記第1ポインタ更新ステップは、
前記限定範囲内の前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新すると共に、該限定範囲内の前記データ記録領域を、前記ヒープ領域内の利用可能領域に移動させ、
前記限定範囲外の前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新することを特徴とする請求項1乃至請求項3のいずれかに記載のメモリ管理方法。 - 前記ヒープ領域内に、前記スタック領域を除く前記データ記録領域の一部又は全部を割当て、該ヒープ領域内の該データ記録領域外の領域を、請求項1乃至請求項3のいずれかに記載のヒープ領域とし、
前記範囲設定ステップは、前記ヒープ領域内の前記データ記録領域が割当てられた領域に対して限定範囲を設定することができ、
前記第1ポインタ更新ステップは、
前記限定範囲内の前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新すると共に、該限定範囲内の前記データ記録領域を、前記ヒープ領域内の利用可能領域に移動させ、
前記限定範囲及び前記スタック領域を除く前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新することを特徴とする請求項4に記載のメモリ管理方法。 - 前記ヒープ領域内に、前記スタック領域を含む前記データ記録領域の一部又は全部を割当て、該ヒープ領域内の該データ記録領域外の領域を、請求項1乃至請求項3のいずれかに記載のヒープ領域とし、
前記範囲設定ステップは、前記ヒープ領域内の前記データ記録領域が割当てられた領域に対して限定範囲を設定することができ、
前記第1ポインタ更新ステップは、
前記限定範囲内の前記スタック領域を除く前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新すると共に、該限定範囲内に割当てられた、前記スタック領域を除く該データ記録領域を、前記ヒープ領域内の利用可能領域に移動させ、
前記限定範囲外の前記スタック領域を除く前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新し、
前記第3ポインタ更新ステップは、
前記ヒープ領域内に割当てられた前記スタック領域内の前記関数フレームを上位から下位に向かって走査し、前記限定範囲内の前記関数フレームに記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新すると共に、該限定範囲内の該関数フレームを、該ヒープ領域内の利用可能領域に移動させ、
前記限定範囲外の前記関数フレームに記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新し、
前記障壁設定ステップは、前記第3ポインタ更新処理による処理を中断して、前記主プログラムを実行するときに、前記障壁を、該第3ポインタ更新処理による処理が最後に行われた前記関数フレームに設定することを特徴とする請求項4に記載のメモリ管理方法。 - メモリ中に、動的にデータを生成するプログラム(以下、主プログラム)の実行等に利用されるデータが記録されたデータ記録領域と、主プログラムが実行中に使用するデータ要素を含むデータ(以下、オブジェクト)を記録するためのヒープ領域とが設けられ、
主プログラムの実行が進むことにより不要となった前記ヒープ領域のオブジェクトを消去し、該ヒープ領域に利用可能な空き領域(以下、利用可能領域)を生成すると共に、該ヒープ領域に連続した利用可能領域を生成するために、該ヒープ領域に記録されているオブジェクトを移動させるメモリ管理装置において、
前記オブジェクトは、オブジェクトの複製先の位置又は複製元の位置を記録するための複製位置ポインタをさらに含み、
前記データ記録領域に、前記オブジェクトの位置を参照するオブジェクト位置ポインタが記録され、
前記ヒープ領域に連続した利用可能領域を生成する限定範囲を設定する範囲設定手段と、
前記限定範囲内に含まれる複製元オブジェクトをこの限定範囲外の利用可能領域に複製先オブジェクトとして複製すると共に、該複製元オブジェクト及び該複製先オブジェクトの複製位置ポインタの参照先を互いのオブジェクトの位置に設定するオブジェクト複製手段と、
前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記オブジェクト複製手段により複製された複製先オブジェクトの位置に更新する第1ポインタ更新手段と、
前記限定範囲の領域を利用可能領域にする限定範囲利用可能化手段と、
前記オブジェクト複製手段を実行中に、前記主プログラムが前記ヒープ領域に記録されたオブジェクトの記録領域にデータの書込み処理を行うとき、又は書込み処理を行った後、データの書込み先の記録領域が、前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであるかを判断する複製判断手段と、
前記複製判断手段により書込み先が前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであると判断されたとき、前記主プログラムが書込み処理を行うデータを、前記複製元オブジェクトの記録領域及び前記複製先オブジェクトの記録領域の両方に書込みを行う複製書込み手段と、を備えることを特徴とするメモリ管理装置。 - メモリ中に、動的にデータを生成するプログラム(以下、主プログラム)の実行等に利用されるデータが記録されたデータ記録領域と、主プログラムが実行中に使用するデータ要素を含むデータ(以下、オブジェクト)を記録するためのヒープ領域とが設けられ、
主プログラムの実行が進むことにより不要となった前記ヒープ領域のオブジェクトを消去し、該ヒープ領域に利用可能な空き領域(以下、利用可能領域)を生成すると共に、該ヒープ領域に連続した利用可能領域を生成するために、該ヒープ領域に記録されているオブジェクトを移動させるメモリ管理装置において、
前記データ記録領域に、前記オブジェクトの位置を参照するオブジェクト位置ポインタが記録され、
前記メモリ中に、オブジェクトの位置を記録するオブジェクト位置記録領域がさらに設けられ、
前記ヒープ領域に連続した利用可能領域を生成する限定範囲を設定する範囲設定手段と、
前記限定範囲内に含まれる複製元オブジェクトをこの限定範囲外の利用可能領域に複製先オブジェクトとして複製すると共に、前記オブジェクト位置記録領域に、該複製元オブジェクトの位置及び該複製先オブジェクの位置を記録するオブジェクト複製手段と、
前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記オブジェクト複製手段により複製された複製先オブジェクトの位置に更新する第1ポインタ更新手段と、
前記限定範囲の領域を利用可能領域にする限定範囲利用可能化手段と、
前記オブジェクト複製手段を実行中に、前記主プログラムが前記ヒープ領域に記録されたオブジェクトの記録領域にデータの書込み処理を行うとき、又は書込み処理を行った後、データの書込み先の記録領域が、前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであるかを判断する複製判断手段と、
前記複製判断手段により書込み先が前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであると判断されたとき、前記主プログラムが書込み処理を行うデータを、前記複製元オブジェクトの記録領域及び前記複製先オブジェクトの記録領域の両方に書込みを行う複製書込み手段と、を備えることを特徴とするメモリ管理装置。 - 前記オブジェクトは、前記データ要素として前記オブジェクト位置ポインタをさらに含み、
前記複製元オブジェクトの位置を参照する前記ヒープ領域内のオブジェクト位置ポインタの参照先を、前記オブジェクト複製手段により複製された複製先オブジェクトの位置に更新する第2ポインタ更新手段と、
前記第2ポインタ更新手段を実行中に、前記主プログラムが前記ヒープ領域に前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの書込み処理を行うとき、又は書込み処理を行った後、該オブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に変更する参照先変更手段と、
前記第2ポインタ更新手段の実行中に、前記主プログラムが2つのオブジェクト位置ポインタの参照先が同じオブジェクトの位置であるかどうかの検査処理を行うとき、該2つのオブジェクト位置ポインタのうちの一方が前記複製元オブジェクトの位置を、他方が前記複製先オブジェクトの位置を参照している場合、同一のオブジェクトを参照していると判断する同一判断手段と、をさらに備え、
前記複製判断手段は、前記オブジェクト複製手段、又は前記第2ポインタ更新手段を実行中に、前記主プログラムが前記ヒープ領域に記録されたオブジェクトの記録領域にデータの書込み処理を行うとき、又は書込み処理を行った後、データの書込み先の記録領域が、前記複製元オブジェクトの記録領域又は前記複製先オブジェクトの記録領域のいずれかであるかを判断することを特徴とする請求項8又は請求項9に記載のメモリ管理装置。 - 前記データ記録領域中に、前記主プログラムが実行する関数の実行結果等を一時的に記録する関数フレームが積み上げられて配置されるスタック領域が設けられ、
前記スタック領域内の前記関数フレームを上位から下位に向かって走査し、この順に該スタック領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記オブジェクト複製手段により複製された複製先オブジェクトの位置に更新する第3ポインタ更新手段と、
前記第3ポインタ更新手段によるオブジェクト位置ポインタの更新処理を中断するときに、該第3ポインタ更新手段による処理が最後に行われた前記関数フレームに、関数の実行を制御する障壁を設定する障壁設定手段と、をさらに備え、
前記第1ポインタ更新手段は、前記スタック領域を除く前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新し、
前記障壁が、関数の実行完了後、前記第3ポインタ更新手段による処理を再開させることを特徴とする請求項8乃至請求項10のいずれかに記載のメモリ管理装置。 - 前記ヒープ領域内に前記データ記録領域の一部又は全部を割当て、該ヒープ領域内の該データ記録領域外の領域を、請求項8乃至請求項10のいずれかに記載のヒープ領域とし、
前記範囲設定手段は、前記ヒープ領域内の前記データ記録領域が割当てられた領域に対して限定範囲を設定することができ、
前記第1ポインタ更新手段は、
前記限定範囲内の前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新すると共に、該限定範囲内の前記データ記録領域を、前記ヒープ領域内の利用可能領域に移動させ、
前記限定範囲外の前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新することを特徴とする請求項8乃至請求項10のいずれかに記載のメモリ管理装置。 - 前記ヒープ領域内に、前記スタック領域を除く前記データ記録領域の一部又は全部を割当て、該ヒープ領域内の該データ記録領域外の領域を、請求項8乃至請求項10のいずれかに記載のヒープ領域とし、
前記範囲設定手段は、前記ヒープ領域内の前記データ記録領域が割当てられた領域に対して限定範囲を設定することができ、
前記第1ポインタ更新手段は、
前記限定範囲内の前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新すると共に、該限定範囲内の前記データ記録領域を、前記ヒープ領域内の利用可能領域に移動させ、
前記限定範囲及び前記スタック領域を除く前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新することを特徴とする請求項11に記載のメモリ管理装置。 - 前記ヒープ領域内に、前記スタック領域を含む前記データ記録領域の一部又は全部を割当て、該ヒープ領域内の該データ記録領域外の領域を、請求項8乃至請求項10のいずれかに記載のヒープ領域とし、
前記範囲設定手段は、前記ヒープ領域内の前記データ記録領域が割当てられた領域に対して限定範囲を設定することができ、
前記第1ポインタ更新手段は、
前記限定範囲内の前記スタック領域を除く前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新すると共に、該限定範囲内に割当てられた、前記スタック領域を除く該データ記録領域を、前記ヒープ領域内の利用可能領域に移動させ、
前記限定範囲外の前記スタック領域を除く前記データ記録領域に記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新し、
前記第3ポインタ更新手段は、
前記ヒープ領域内に割当てられた前記スタック領域内の前記関数フレームを上位から下位に向かって走査し、前記限定範囲内の前記関数フレームに記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新すると共に、該限定範囲内の該関数フレームを、該ヒープ領域内の利用可能領域に移動させ、
前記限定範囲外の前記関数フレームに記録されている、前記複製元オブジェクトの位置を参照するオブジェクト位置ポインタの参照先を、前記複製先オブジェクトの位置に更新し、
前記障壁設定手段は、前記第3ポインタ更新処理による処理を中断して、前記主プログラムを実行するときに、前記障壁を、該第3ポインタ更新処理による処理が最後に行われた前記関数フレームに設定することを特徴とする請求項11に記載のメモリ管理装置。 - 請求項1乃至請求項7のいずれか一項に記載のメモリ管理方法をコンピュータに実行させるためのメモリ管理プログラムが記録されているコンピュータ読取可能な記録媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007026111A JP4769946B2 (ja) | 2007-02-05 | 2007-02-05 | メモリ管理方法、メモリ管理装置、及びメモリ管理プログラムが記録されている記録媒体 |
US12/525,650 US20100077163A1 (en) | 2007-02-05 | 2008-01-23 | Memory Management Method, Memory Management Apparatus, and Recording Medium Recording the Memory Management Program |
CN2008800040779A CN101622605B (zh) | 2007-02-05 | 2008-01-23 | 内存管理方法、装置、以及记录内存管理程序的记录媒体 |
PCT/JP2008/050897 WO2008096602A1 (ja) | 2007-02-05 | 2008-01-23 | メモリ管理方法、メモリ管理装置、及びメモリ管理プログラムが記録されている記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007026111A JP4769946B2 (ja) | 2007-02-05 | 2007-02-05 | メモリ管理方法、メモリ管理装置、及びメモリ管理プログラムが記録されている記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008191952A true JP2008191952A (ja) | 2008-08-21 |
JP4769946B2 JP4769946B2 (ja) | 2011-09-07 |
Family
ID=39681513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007026111A Active JP4769946B2 (ja) | 2007-02-05 | 2007-02-05 | メモリ管理方法、メモリ管理装置、及びメモリ管理プログラムが記録されている記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100077163A1 (ja) |
JP (1) | JP4769946B2 (ja) |
CN (1) | CN101622605B (ja) |
WO (1) | WO2008096602A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5132451B2 (ja) * | 2008-07-02 | 2013-01-30 | 株式会社リコー | 画像形成装置 |
EP2851810A1 (en) * | 2013-09-24 | 2015-03-25 | Continental Automotive GmbH | Management of a memory |
CN104298790A (zh) * | 2014-11-11 | 2015-01-21 | 北京奇虎科技有限公司 | 浏览器加速方法和具有加速器的浏览器装置 |
CN105607924B (zh) * | 2015-12-16 | 2019-01-18 | 天脉聚源(北京)传媒科技有限公司 | 一种下载管理方法及装置 |
US11397568B2 (en) * | 2019-12-10 | 2022-07-26 | International Business Machines Corporation | Escape analysis support for method redefinition |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6249793B1 (en) * | 1999-06-10 | 2001-06-19 | Sun Microsystems, Inc. | Mostly concurrent compaction in a garbage collection system |
JP2002506550A (ja) * | 1997-06-26 | 2002-02-26 | サン・マイクロシステムズ・インコーポレイテッド | 部分的に再配置されたオブジェクトのソース及び目標インスタンスに関する書込みバリアを含む有界休止時間ガーベッジコレクションシステム及び方法 |
JP3530887B2 (ja) * | 2000-03-23 | 2004-05-24 | オムロン株式会社 | データ消去方法、データ消去装置、及び記録媒体 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6115782A (en) * | 1997-04-23 | 2000-09-05 | Sun Micosystems, Inc. | Method and apparatus for locating nodes in a carded heap using a card marking structure and a node advance value |
US20040128329A1 (en) * | 2002-12-31 | 2004-07-01 | International Business Machines Corporation | Parallel incremental compaction |
US7395285B2 (en) * | 2003-06-30 | 2008-07-01 | Matsushita Electric Industrial Co., Ltd. | Garbage collection system |
US7490117B2 (en) * | 2003-12-31 | 2009-02-10 | Intel Corporation | Dynamic performance monitoring-based approach to memory management |
JP4504756B2 (ja) * | 2004-07-26 | 2010-07-14 | 株式会社アプリックス | Java(登録商標名)実行環境におけるメモリ管理方法及びメモリ管理プログラム |
-
2007
- 2007-02-05 JP JP2007026111A patent/JP4769946B2/ja active Active
-
2008
- 2008-01-23 CN CN2008800040779A patent/CN101622605B/zh not_active Expired - Fee Related
- 2008-01-23 US US12/525,650 patent/US20100077163A1/en not_active Abandoned
- 2008-01-23 WO PCT/JP2008/050897 patent/WO2008096602A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002506550A (ja) * | 1997-06-26 | 2002-02-26 | サン・マイクロシステムズ・インコーポレイテッド | 部分的に再配置されたオブジェクトのソース及び目標インスタンスに関する書込みバリアを含む有界休止時間ガーベッジコレクションシステム及び方法 |
US6249793B1 (en) * | 1999-06-10 | 2001-06-19 | Sun Microsystems, Inc. | Mostly concurrent compaction in a garbage collection system |
JP3530887B2 (ja) * | 2000-03-23 | 2004-05-24 | オムロン株式会社 | データ消去方法、データ消去装置、及び記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
WO2008096602A1 (ja) | 2008-08-14 |
US20100077163A1 (en) | 2010-03-25 |
CN101622605B (zh) | 2011-06-29 |
JP4769946B2 (ja) | 2011-09-07 |
CN101622605A (zh) | 2010-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9003381B2 (en) | Context-specific optimized code | |
CN108829493A (zh) | 一种虚拟机时间同步方法与装置 | |
JP4769946B2 (ja) | メモリ管理方法、メモリ管理装置、及びメモリ管理プログラムが記録されている記録媒体 | |
CN106980579B (zh) | 一种图片加载方法及装置 | |
JP4873423B2 (ja) | 仮想化プログラム、シミュレーション装置、仮想化方法 | |
KR102205090B1 (ko) | 정보를 수집하는 방법 및 장치, 그리고 메모리를 해제하는 방법 및 장치 | |
JP2008040701A (ja) | メモリ管理方法および携帯端末装置 | |
CN111399750A (zh) | 闪存数据写入方法及计算机可读取存储介质 | |
CN112328298A (zh) | 移动端的代码库裁剪方法及装置 | |
CN108205559B (zh) | 一种数据管理方法及其设备 | |
JP2007226784A (ja) | インラインされたメソッドの呼出方法およびそれを用いたジャバ仮想マシン | |
JP3785596B2 (ja) | 関数実行方法、関数実行装置、コンピュータプログラム、及び記録媒体 | |
CN114090252A (zh) | 资源管理方法及装置、存储介质、计算机系统 | |
WO2020158347A1 (ja) | 情報処理装置、方法およびプログラム | |
CN111737964B (zh) | 表格动态处理方法、设备及介质 | |
JP4504756B2 (ja) | Java(登録商標名)実行環境におけるメモリ管理方法及びメモリ管理プログラム | |
JP2004296014A (ja) | 不揮発性メモリの消去回数平準化方法 | |
CN109240810B (zh) | 任务处理方法、装置及存储介质 | |
CN105607912B (zh) | 一种Java对象分配优化方法、装置及设备 | |
JP4696500B2 (ja) | メモリ管理方法および装置 | |
JP2006195516A (ja) | データ管理装置、画像処理装置、データ管理方法、データ管理プログラム | |
JP3530887B2 (ja) | データ消去方法、データ消去装置、及び記録媒体 | |
KR20060098639A (ko) | 응용 프로그램에 따라 개별적인 주기를 갖는 가비지 컬렉션방법 및 이를 위한 단말기 | |
JP4920725B2 (ja) | 画像処理装置及びプログラム | |
CN117270988A (zh) | 一种基于快照的深度模型快速加载方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100114 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20101129 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20101206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110428 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110524 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |