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.