Check out the new USENIX Web site. next up previous
Next: Conclusion Up: Adaptive Page Replacement to Previous: Performance Measurements

Related work

Improvement of CPU and memory utilization has been a fundamental consideration in the design of operating systems. Studies of page replacement policies have a direct impact on memory utilization, which have continued for several decades. The goal of an optimal page replacement is to achieve efficient memory usage by only replacing those pages not used in the near future when available memory is not sufficient, reducing the number of page faults. In a single-programming environment, these proposed methods address both concerns of CPU and memory utilization since any extra page faults due to low memory utilization will make the CPU stall. However system thrashing associated with the concurrent execution in a multiprogramming can not be fully covered by the work on this aspect due to the conflicting interests between CPU and memory utilization mentioned in Section 2.4.

In the multiprogramming context, mainly there are two methods to eliminate thrashing. One is local replacement, another is load control. A local replacement requires that the paging system select pages for a program only from its allocated memory space when no free pages can be found in their memory allotments. Unlike the global replacement policy, the local policy needs a memory allocation scheme to satisfy the need of each program. Two commonly used policies are equal and proportional allocations, which can not capture dynamically changing memory demand of each program [2]. As a result, the memory space may not be well utilized. On the other hand, an allocation dynamically adapting to the demand of individual programs will shift the scheme to the global replacement. The VMS [5] is a representative operating system using a local replacement policy. The memory is partitioned into multiple independent areas, each of which is localized to a collection of processes that compete with one another for memory. Unfortunately, this scheme can be difficult to administer [6]. Researchers and system practitioners seem to have agreed that a local policy is not an effective solution for virtual memory management. Our patch is built on the global replacement policy of Linux.

A commonly used load control mechanism is to suspend/reactivate, even swapping out/in processes to free more memory space after the thrashing is detected. The 4.4 BSD operating system[8], AIX system in the IBM RS/6000[4], HP-UX 10.0 in HP 9000 [3] are the examples to adopt this method. In addition, HP-UX system provides a ``serialize()" command to run the processes once at a time after thrashing is detected. Compared with load control, our patch works to the same objective but not through action on the whole processes, instead through adaptively adjusting page replacement algorithms. Memory allocation scheduling at this level allows us to carefully consider the tradeoff between CPU and memory utilization.


next up previous
Next: Conclusion Up: Adaptive Page Replacement to Previous: Performance Measurements
Song Jiang 2001-09-09