Abstract
Traditionally, operating systems use a coarse approximation
of memory accesses to implement memory management algorithms by monitoring page faults or scanning page table entries. With finer-grained memory access information,
however, the operating system can manage memory much
more effectively. Previous work has proposed the use of a
software mechanism based on virtual page protection and
soft faults to track page accesses at finer granularity. In this paper, we show that while this approach is effective for some applications, for many others it results in an unacceptably high overhead.
We propose simple Page Access Tracking Hardware (PATH)
to provide accurate page access information to the operating system. The suggested hardware support is generic and
can be used by various memory management algorithms.
In this paper, we show how the information generated by
PATH can be used to implement (i) adaptive page replacement policies, (ii) smart process memory allocation to improve performance or to provide isolation and better process
prioritization, and (iii) effectively prefetch virtual memory
pages when applications have non-trivial memory access patterns. Our simulation results show that these algorithms
can dramatically improve performance (up to 500%) with
PATH-provided information, especially when the system is
under memory pressure. We show that the software overhead of processing PATH information is less than 6% across
the applications we examined (less than 3% in all but two
applications), which is at least an order of magnitude less
than the overhead of existing software approaches.
Users
Please
log in to take part in the discussion (add own reviews or comments).