研究概要 |
組込みシステムでは,アプリケーションプログラムは長時間終了せずに動き続けるため,プログラムの実行とともに進行するメモリの断片化が問題となる.そのため,コンパクションと呼ばれる,使用中データを詰めて再配置して空き領域を連続させる処理が必須となる.しかし,通常のコンパクションはデータの再配置の際にアプリケーションの動作を止めなければならず,リアルタイムアプリケーションに用いることができない.そこで本研究では,一部のデータだけ移動させることで長時間アプリケーションの動作を止めることなく部分的に断片化を解消でする,「複製に基づくインクリメンタルコンパクション」を用いたガベージコレクタを開発した.このコンパクションは,移動させるデータの選び方により性能が多きく変化する.本研究では,メモリを複数の領域に分割し,それぞれの領域でどの程度断片化されているかを具体的な数値で表す方法を示した.さらに,その断片化の度合いを使って効率よくメモリの断片化を解消し,断片化による空間オーバヘッドを小さくする方法を提案した.また,移動途中のデータが使うメタデータのデータ構造も改良した.本研究で行ったガベージコレクタのベンチマークテストでは,アプリケーションが同時に使用するデータのサイズの151%から286%のメモリと固定の8KBのメモリがあれば,アプリケーションが長時間停止したり,断片化によりメモリ確保に失敗したりすることなく実行できた.
|