CS262A Reading Summary 6

Application Controlled Physical Memory using External Page-Cache Management

Kieran Harty and David R. Cheriton
Summary by Feng Zhou
9/17/2002

This paper presents the design, implementation and evaluation of a OS feature that allows user application to control various aspects of VM. Strong points includes,

  1. The authors convincingly enumerate the three problems of classic VM. The central problem is classic VM abstract important performance information from the applications. Thus applications cannot adapt their behavior to the memory system status. This is called by the authurs not achieving Efficient Completeness in memory management. The three problems are specifically: 1) Apps have no knowledge of physical memory available to them. 2) Apps have no control of what part of address space is in physical memory. 3) Apps have no control over read-ahead, writeback and discarding of pages.
  2. The paper then presents external page-cache management as a solution to the problem. This design, if widely used, can facilitate a lot the building of DBMS and applications with large resource requirements. It gives applications more insights into memory management without compromising normal application behavior.
    It is more programmatic than previous attemps like mpin and more general in functionality than others like external pagers in Mach. User-level per-process segment managers are responsible for managing pages associated with segments. The application can use its own segment manager to get information and control memory usage. A default segment manager is used both for applications not interested in implementing its own and as the basis of building custon segment managers.
  3. The fact that segment managers can be in-process ensure that it does not incur high overhead in processing page faults. This is critical to the performance of the whole VM system. If all segment maangers have to be a separate process, it will incur high context switching overhead.

One major flaw:

The idea of having segment managers as separate processes is not very compelling. First drawback is the overhead of context switching. Second is memory consumption itself is larger with a separate process. Actually the segment manager and application is a single logical unit of behavior.