アプリケーション内メモリ管理のためのOS支援

Operating Systems Support for Application-Level Memory Management

Author:

伊藤 純一郎、所 真理雄

Book Title:

オブジェクト指向コンピューティング II (近刊) (近代科学社/レクチャーノート)

Abstract:

In this paper, we would like to propose a new way for application-level memory management.

In high-level programming language systems such as object-oriented programming language systems and functional language systems, dynamic memory allocation and garbage collection mechanism are usually used. Those memory management facilities have made implementation of the language systems harder. Furthermore, there has been an unsolved problem that the garbage collector causes too much page-faults during its execution.

We thought that operating systems should provide support for application-level memory management, to reduce the cost of implementation of language systems, and to make the memory management mechanism more efficient by implementing it with deep concern to operating system level memory management mechanism such as paging.

In this paper, we consider some problems in providing application-level memory management by the operating system, and show a solution to it. We must separate information and mechanism for memory management, so we must have communication mechanism between those parts. Also, as an example of our approach, we show the way to implement a new garbage collector that causes few page-faults during its execution.

Abstract in Japanese:

近年、オブジェクト指向言語に代表される 抽象度の高い言語が広く利用されるようになってきた。 これらの言語の処理系では、 メモリ管理のためにガベージコレクション(GC)などが用いられるため、 メモリ管理機構が非常に複雑になっている。 このため、処理系のうちメモリ管理部を実装するための労力が非常に 大きくなっている。 また、GCの際にページフォルトが多発するという問題が指摘されてきたが、 これまでの構成法では解決が困難であった。

本研究ではアプリケーション内部のメモリ管理機構を OS側で提供することを考えている。 これにより、処理系実装にかかる労力を軽減し、 ページフォルト回数の削減などのきめの細かい効率化をすることが 可能になる。

本稿では、OSがアプリケーション内メモリ管理を支援する際の問題点を挙げ、 その解決方法を述べる。 さらに、OS支援の機構を利用して効率化を図るための手法のひとつとして、 GC中のページフォルトの回数を削減するための具体的な方法を示す。


back