JP4333676B2 - プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 - Google Patents
プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 Download PDFInfo
- Publication number
- JP4333676B2 JP4333676B2 JP2006021496A JP2006021496A JP4333676B2 JP 4333676 B2 JP4333676 B2 JP 4333676B2 JP 2006021496 A JP2006021496 A JP 2006021496A JP 2006021496 A JP2006021496 A JP 2006021496A JP 4333676 B2 JP4333676 B2 JP 4333676B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- area
- time
- memory
- priority
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 143
- 230000004044 response Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 96
- 239000008186 active pharmaceutical agent Substances 0.000 description 76
- 230000008569 process Effects 0.000 description 55
- 238000010586 diagram Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000005056 compaction Methods 0.000 description 12
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 7
- 238000001514 detection method Methods 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010408 sweeping Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Memory System (AREA)
Description
参1:情報技術用語事典(オーム社刊)
参2:情報処理用語大事典(オーム社刊)
参3:先端ソフトウエア用語事典(オーム社刊)
参A:SUPER ASCII Glossary Help on Internet
(1) プロセス(process) :
処理や過程を意味する一般用語(参2)
(2) スレッド(thread):
プロセスまたはタスクと呼ばれる1つの実行環境の中で並列実行可能な処理を複数に分割した場合に、プロセッサのスケジュール対象となる実行単位または制御フローのこと。(参3)
(3) コンテキスト(context) :
(オブジェクト指向システムに関連して)メソッドを実行するために必要な情報を蓄えるオブジェクトをいう。コンテキストは、呼び出し先のコンテキスト、プログラムの入ったメソッドオブジェクト、プログラムカウンタ、スタックポインタという情報、引数や一時変数を取るところ、および評価スタックから成立する。このような実行環境をオブジェクトとしてとるが、プロセスなどをサポートする高級言語の特徴でヒープ言語と呼ばれる。他方PASCALやALGOL60では実行環境はスタックにとられFORTRANでは固定領域にとられる。(参1)
(4) タスク(task):
多重プログラミング又は多重プロセッシングの環境において、計算機によって実行されるべき仕事の要素として制御プログラムによって取り扱われる命令の1つ以上の列(JIS)
(5) ガベージ(garbage) :
どこからも参照されていないが、生成されてしまったオブジェクト。ガベージはガベージコレクタで回収する。(参1)
(6) ガベージコレクション(Garbage Collection):
(オブジェクト指向システムに関連して)メモリ管理の中心となるプログラムを言う。主記憶を使いきるとメインの計算を止め、ガベージコレクタを動かして、もはや使われていないオブジェクトを全部集める方法である。この方法でガベージコレクタが働くと、計算が止まってしまうため入出力が全く反応しなくなり、実時間の応答が必要な用途には使えない。(参1)
(7) インタプリタ(interpreter) :
解釈実行を行う翻訳プログラム(JIS)
(8) リアルタイム(real time) :
計算機外部の他の処理との関係をもちながら、かつ外部の処理によって定められる時間要件に従って、計算機の行うデータの処理に関する用語。実時間。(JIS)
(9) オブジェクト(object):
プロシジュア(定義した手続き)とデータの特性を結合させるエンティティ(実体)であり、これにより計算が行われ、局部的状態が蓄えられる。(参1)
(10) クラス(class) :
同一の手続き群とデータ構造を持つオブジェクトの集合。(参3)
(11) ヒープ領域(heap area) :
プログラム実行時に必要に応じて使用されるような作業領域。(参2)
(12) スケジュールする(scheduling):
ディスパッチされるべきジョブ又はタスクを選択すること。(JIS)
(13) イベント(event) :
ハードウエア/ソフトウエアが、自分自身の状態の変化を他のハードウエア/ソフトウエアに通知すること。一般にこの際の通知では、イベントの種類やハードウエア/ソフトウエアの状態を表す各種パラメータをメッセージとしてまとめ、相手に送信する。そしてイベントの通知を受けた側では、メッセージのパラメータなどから適切な処理を行う。(参A)
(14) イベントフラグ(event flag):
タスクが1つまたは複数の事象の発生を待ち合わせるための機能とその事象を通知する機能とからなるタスク間同期通信機構。(参3)
(15) セマフォ(semaphore) :
複数のプロセスやタスクを並列に処理するシステムで、各プロセス間,タスク間の同期やメッセージ制御、割込処理を行うための仕組み。(参3)
(16) 仮想マシーン(仮想機械)(virtual mathine) :
複数の特定のプラットホーム(OSやハードウエア)に組み込まれた、特定のプラットホームに依存しないアプリケーションプログラムを実行する環境。同じ仮想マシンさえ提供されていれば、プラットホームが変わっても同じアプリケーションプログラムが実行できる。
オペレーティングシステムに組み込まれた、Javaアプリケーションプログラム(JavaはSun Microsystems社の商標)を実行するための環境。一般的なプログラムは、ソースコードをコンパイルして、それぞれのオペレーティングシステムに最適化した実行コードを生成する、というスタイルを採る。Java(JavaはSun Microsystems社の商標)で書かれたプログラムも同様の手順で作成するが、コンパイル後のコードは、特定のオペレーティングシステムに依存しない中間コードの形をとる。これをロードし、各オペレーティングシステムに合わせたコードに変換しながら実行するのがJava仮想マシン(JavaはSun Microsystems社の商標)の役目であり、同じ仮想マシンさえ提供されていれば、プラットホームが変わっても同じコードが実行できるようになっている。
ヒープ領域上の使用可能な領域、未使用領域。
リアルタイム性が要求されない処理を行うスレッド。
オブジェクトがどこからも参照されないか否かを調べるために存在するオブジェクトに1対1に対応する表。或るオブジェクトに参照があることが確かめられた場合、そのオブジェクトに対応する表の欄にマークを付ける。全ての参照関係を調べたときマークの無いオブジェクトは不要であるので取り除くことができる。
オブジェクトが生成され、消去されるまでの時間。
オブジェクトへの参照関係の変更をチェックし、書き替えが起こった場合に何らかの処理をすること。本件の場合は、書き替えが起きたとき、書き替える参照が指しているオブジェクトに対応するマークテーブルの欄にマークを付ける。
ヒープ領域上の不要なオブジェクトを取り除く処理。
新しいオブジェクトを生成すること。具体的には、ヒープ領域の一部をオブジェクトに割り当て、内容を初期化すること。
不要なオブジェクトを取り除くこと。具体的には、ヒープ領域に確保してある領域を解放すること。
或るオブジェクトAが別の特定のオブジェクトBにアクセスするためにオブジェクトBを特定する情報。具体的には、オブジェクトBを指すポインタまたはインデックス。
参照を現在のオブジェクトBから別のオブジェクトCに変更すること。
この論文はBaker が書いたという1978年のリアルタイムGCに対して、全体の処理時間から必要なGCの処理時間の割合を求めるものである。
GCを行う領域を細かく分けることにより、個々の処理時間を短くしてリアルタイム性を向上する方法であり、全ての領域を対象にするものではない。また、スケジューリングについては述べられていない。
Baker の考えを発展させ、ネットワークの分散環境に適応したもの。ネットワーク固有の問題を解決しようとするものである。
システムコール発行時に、そのシステムコールにより起動されるタスクの優先度を制御するものである。
オブジェクトのサイズを検出し、そのサイズに応じてワークエリアをメモリに確保することが一応示されている。
マルチメディアオペレーティングシステムのコンセプトが示されている。
スタック上のオブジェクトの一番上にオブジェクトの大きさを書いておくことが示されている。
オブジェクト間の参照ツリーの考え方が示されている。
オブジェクトの寿命に関連してメモリ割当を行うことが示されている。
アプリケーションプログラムインタフェースの呼出に応じてGCを制御することと、オブジェクト参照に関する技術思想が示されている。
そして、一般にGCを行う場合、そのアルゴリズムに応じて、CPUに要求されるパワー、メモリの使用量、GCに要する時間などがそれぞれ異なることから、GCを効率的に行うには、システムの状況に応じて、実行するGCのアルゴリズムを切り替える必要がある。しかし、従来のシステムにおいては、このような切り替えが行われておらず、その結果、リアルタイム性の要求されるスレッドの実行可能な環境が維持されていない状態が生じることがあった。
前記参照情報記憶手段の記憶内容を基に、前記メモリのヒープ領域内の、どのオブジェクトからも参照されないオブジェクトを検出し、当該オブジェクトのメモリ領域を他のオブジェクトのメモリ割り当て可能なフリー領域として解放するガベージコレクションスレッドをインクリメンタルに行う実行手段と、
前記ガベージコレクションスレッドの優先度を、ガベージコレクションスレッド以外のスレッドの優先度より高い高優先度状態と低い低優先度状態とに交互に変更する変更手段と、
前記変更手段が交互に変更する前記ガベージコレクションスレッドが高優先度状態である時間と、低優先度状態である時間と、を前記メモリのヒープ領域内における前記フリー領域または前記オブジェクトの使用領域の量に基づいて設定する設定手段と、を備えている。
前記非リアルタイムスレッドの実行によりヒープ領域内の前記フリー領域が所定の値まで減少したときに、ガベージコレクションスレッドを実行する手段である。
このことによって、GCの優先度が動的に自動調整される。
集合No.n バイトk 個数m
1 64 5000
2 256 10000
3 1k 10000
4 4k 5000
5 32k 500
とする。
図47は上記「参照変更のマーク付与」の処理手順を示すフローチャートである。先ず、参照変更されたオブジェクトからマークテーブル上の位置を計算し、該当のマークがWhite であるか否かを判定する(s191→s192)。このWhite マークは上述したように未だマークされていない状態を意味する。もし、White マークでなければ、すでにマークされているので、そのまま処理を終了する。White マークであれば、それをGrayにマークする(s193)。上述したようにこのGrayマークは参照変更のあったオブジェクトであることを意味する。続いてマークスタックに参照先のオブジェクトを示すデータを積む(s194)。
Claims (5)
- メモリのヒープ領域内の、他のオブジェクトから参照されるオブジェクトを検出して当該参照の有無状態を記憶する参照情報記憶手段と、
前記参照情報記憶手段の記憶内容を基に、前記メモリのヒープ領域内の、どのオブジェクトからも参照されないオブジェクトを検出し、当該オブジェクトのメモリ領域を他のオブジェクトのメモリ割り当て可能なフリー領域として解放するガベージコレクションスレッドをインクリメンタルに行う実行手段と、
前記ガベージコレクションスレッドの優先度を、ガベージコレクションスレッド以外のスレッドの優先度より高い高優先度状態と低い低優先度状態とに交互に変更する変更手段と、
前記変更手段が交互に変更する前記ガベージコレクションスレッドが高優先度状態である時間と、低優先度状態である時間と、を前記メモリのヒープ領域内における前記フリー領域または前記オブジェクトの使用領域の量に基づいて設定する設定手段と、を備えたことを特徴とするプログラム制御装置。 - スレッドの優先度に応じて各スレッドを時分割に実行するためのスケジューリングを行うスケジューリング手段を備えたことを特徴とする請求項1に記載のプログラム制御装置。
- 前記実行手段は、イベントの発生に応じてリアルタイムスレッドを実行させ、該リアルタイムスレッドの中断時または終了時に非リアルタイムスレッドを実行させる手段を含むとともに、
前記非リアルタイムスレッドの実行によりヒープ領域内の前記フリー領域が所定の値まで減少したときに、ガベージコレクションスレッドを実行する手段である請求項1、または2に記載のプログラム制御装置。 - メモリのヒープ領域内の、他のオブジェクトから参照されるオブジェクトを検出して当該参照の有無状態を参照情報記憶手段に記憶させる第1のステップと、
前記参照情報記憶手段の記憶内容を基に、前記メモリのヒープ領域内の、どのオブジェクトからも参照されないオブジェクトを検出し、当該オブジェクトのメモリ領域を他のオブジェクトのメモリ割り当て可能なフリー領域として解放するガベージコレクションスレッドをインクリメンタルに行う第2のステップと、
前記ガベージコレクションスレッドの優先度をガベージコレクションスレッド以外のスレッドの優先度より高い状態と低い状態とに交互に変更する第3のステップと、
前記第3のステップが交互に変更する前記ガベージコレクションスレッドが高優先度状態である時間と、低優先度状態である時間と、を前記メモリのヒープ領域内における前記フリー領域または前記オブジェクトの使用領域の量に基づいて設定する第4のステップと、をコンピュータに実行させることを特徴とするプログラム制御方法。 - メモリのヒープ領域内の、他のオブジェクトから参照されるオブジェクトを検出して当該参照の有無状態を参照情報記憶手段に記憶させる第1のステップと、
前記参照情報記憶手段の記憶内容を基に、前記メモリのヒープ領域内の、どのオブジェクトからも参照されないオブジェクトを検出し、当該オブジェクトのメモリ領域を他のオブジェクトのメモリ割り当て可能なフリー領域として解放するガベージコレクションスレッドをインクリメンタルに行う第2のステップと、
前記ガベージコレクションスレッドの優先度をガベージコレクションスレッド以外のスレッドの優先度より高い状態と低い状態とに交互に変更する第3のステップと、
前記第3のステップが交互に変更する前記ガベージコレクションスレッドが高優先度状態である時間と、低優先度状態である時間と、を前記メモリのヒープ領域内における前記フリー領域または前記オブジェクトの使用領域の量に基づいて設定する第4のステップと、をコンピュータに実行させる処理プログラムを記録したコンピュータ読取可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006021496A JP4333676B2 (ja) | 1997-11-21 | 2006-01-30 | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32176697 | 1997-11-21 | ||
JP2006021496A JP4333676B2 (ja) | 1997-11-21 | 2006-01-30 | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20034599A Division JP3826626B2 (ja) | 1997-11-21 | 1999-07-14 | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006172495A JP2006172495A (ja) | 2006-06-29 |
JP4333676B2 true JP4333676B2 (ja) | 2009-09-16 |
Family
ID=36673097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006021496A Expired - Lifetime JP4333676B2 (ja) | 1997-11-21 | 2006-01-30 | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4333676B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8450302B2 (en) | 2002-08-02 | 2013-05-28 | Ab Science | 2-(3-aminoaryl) amino-4-aryl-thiazoles and their use as c-kit inhibitors |
US8835435B2 (en) | 2002-08-02 | 2014-09-16 | Ab Science | 2-(3-aminoaryl) amino-4-aryl-thiazoles and their use as c-kit inhibitors |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4751814B2 (ja) | 2006-11-28 | 2011-08-17 | 富士通東芝モバイルコミュニケーションズ株式会社 | 携帯端末 |
JP4917138B2 (ja) | 2009-10-07 | 2012-04-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | オブジェクト最適配置装置、オブジェクト最適配置方法、及びオブジェクト最適配置プログラム |
US8108447B2 (en) * | 2010-03-11 | 2012-01-31 | Symantec Corporation | Systems and methods for garbage collection in deduplicated data systems |
JP5323030B2 (ja) | 2010-12-01 | 2013-10-23 | 株式会社東芝 | メモリ装置及びメモリ制御方法 |
KR102519663B1 (ko) | 2015-07-31 | 2023-04-07 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 포함하는 시스템 및 그것의 동작 방법 |
-
2006
- 2006-01-30 JP JP2006021496A patent/JP4333676B2/ja not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8450302B2 (en) | 2002-08-02 | 2013-05-28 | Ab Science | 2-(3-aminoaryl) amino-4-aryl-thiazoles and their use as c-kit inhibitors |
US8835435B2 (en) | 2002-08-02 | 2014-09-16 | Ab Science | 2-(3-aminoaryl) amino-4-aryl-thiazoles and their use as c-kit inhibitors |
US8993573B2 (en) | 2002-08-02 | 2015-03-31 | Ab Science | 2-(3-aminoaryl) amino-4-aryl-thiazoles and their use as c-kit inhibitors |
Also Published As
Publication number | Publication date |
---|---|
JP2006172495A (ja) | 2006-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4265610B2 (ja) | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 | |
JP3027845B2 (ja) | プログラム制御装置および方法 | |
US7167881B2 (en) | Method for heap memory management and computer system using the same method | |
US7454447B1 (en) | Declarative pinning | |
US6192517B1 (en) | Method, apparatus, and product for improved garbage collection in a memory system through the removal of reference conflicts | |
JP4511653B2 (ja) | マルチスレッド仮想マシン内におけるメモリ・アロケーションの方法及び装置 | |
US7225439B2 (en) | Combining write-barriers within an inner loop with fixed step | |
JP4333676B2 (ja) | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 | |
US20030140071A1 (en) | Apparatus, method, and program for implementing garbage collection suitable for real-time processing | |
EP1659496B1 (en) | Garbage collection system | |
EP3577565B1 (en) | Garbage collector | |
EP3577567A1 (en) | Multiple stage garbage collector | |
US20040186863A1 (en) | Elision of write barriers for stores whose values are in close proximity | |
JP3826626B2 (ja) | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 | |
JP4345748B2 (ja) | メモリ割当装置、メモリ割当方法、およびプログラム記録媒体 | |
JP2004503869A (ja) | モジュール式ガーベッジコレクタを実現するための方法および装置 | |
US7058781B2 (en) | Parallel card table scanning and updating | |
CN114051610A (zh) | 基于arena的存储器管理 | |
US20040172507A1 (en) | Better placement of objects promoted into a generation managed by the train algorithm | |
CN112313631A (zh) | 闭环垃圾收集器 | |
Miller et al. | Garbage collection in MultiScheme | |
Jones et al. | A fast analysis for thread-local garbage collection with dynamic class loading | |
EP3807771A1 (en) | Arena-based memory management | |
US20040172428A1 (en) | Numbering sequences of cars with the same number in a generation managed by the train algorithm | |
Charan et al. | Development of Real-Time Capability in Application Virtual Machine using Concurrent Automatic Memory Management Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090330 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090330 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090602 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090615 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130703 Year of fee payment: 4 |
|
EXPY | Cancellation because of completion of term |