Abstract

The performance of a virtual memory system is the result of the goodness of the memory management policy. The 'demand fetch' policy is one of the most popular, mainly for its simplicity. However, at the expense of increased complexity, other policies can be devised. In this paper, a novel approach with a relatively low complexity is described for the determination of a suitable set of pages to be brought into memory when a page fault occurs. This algorithm is an example of how the overall performance of complex systems can be improved with little computational effort. To anticipate their future use, some pages are determined by using a nonlinear predictor based on the truncated Volterra series. The Volterra predictor is updated every time a new page reference comes in. We first give experimental evidence that page reference sequences contain nonlinearities which can be described using a Volterra predictor. Then we show how the predictor's performance is improved by exploiting temporal and spatial localities in the trace on the basis of the page references histogram and with an input LRU stack filter. When a page fault occurs, a number of pages around the predicted page are brought into memory, in addition to the page which caused the page fault, replacing the pages chosen on an LRU basis in the same section. Trace-driven simulations show that this algorithm leads to a page fault improvement of as much as 10.9% with respect to a conventional demand paging algorithm with the same dimension of the working set (WS). Some results in terms of page fault rate vs. WS dimension are reported.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call