Application-assisted physical memory management


Sitaram Iyer

Juan Navarro

Peter Druschel

Abstract

Many software applications can, in principle, trade main memory consumption for other resources. For instance, garbage collected language runtimes can trade collection overhead for heap size, and many programs can improve their performance by caching data that was precomputed, read from disk or received from the network. Unfortunately, OSs provide little useful information about physical memory availability, and so applications use main memory cautiously to avoid unnecessary paging when memory is scarce.

In this paper, we revisit physical memory management in general-purpose OSs, with the goal to inform interested applications about the level of contention for physical memory. We define a severity metric for memory contention, which allows applications to balance the cost of paging against the cost of freeing and regenerating a memory page. We describe how the system can maintain the severity metric with low overhead, and argue that slightly modified applications can realize substantial performance improvements by dynamically adjusting their memory consumption to physical memory availability.

  1. OSDI 2004 submission (non-blind-review)
  2. Long 61-page (current) thesis proposal (also in PS)
  3. Intermediate 16-page (old)
  4. Short 5-page (oldest)