Taming the memory hogs: using compiler-inserted releases to manage physical memory intelligently
Angela Demke Brown, Todd C. Mowry
Abstract
Out-of-core applications consume physical resources at a rapid
rate, causing interactive applications sharing the same machine to
exhibit poor response times. This behavior is the result of default
resource management strategies in the OS that are inappropriate for
memory-intensive applications. Using an approach that integrates
compiler analysis with simple OS support and a run-time layer that
adapts to dynamic conditions, we have shown that the impact of
out-of-core applications on interactive ones can be greatly
mitigated. A combination of prefetching pages that will soon be
needed, and releasing pages no longer in use results in good
throughput for the out-of-core task and good response time for the
interactive one. Each class of application performs well according
to the metric most important to it. In addition, the OS does not
need to attempt to identify these application classes, or modify
its default resource management policies in any way. We also
observe that when an out-of-core application releases pages, it
both improves the response time of interactive tasks, and also
improves its own performance through better replacement decisions
and reduced memory management overhead.