VAX/VMS internals and data structures
VAX/VMS internals and data structures
Operating system concepts (2nd ed.)
Operating system concepts (2nd ed.)
The design and implementation of the 4.4BSD operating system
The design and implementation of the 4.4BSD operating system
Operating systems (2nd ed.): design and implementation
Operating systems (2nd ed.): design and implementation
Adaptive page replacement based on memory reference behavior
SIGMETRICS '97 Proceedings of the 1997 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
EELRU: simple and effective adaptive page replacement
SIGMETRICS '99 Proceedings of the 1999 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Principles of Optimal Page Replacement
Journal of the ACM (JACM)
A study of storage partitioning using a mathematical model of locality
Communications of the ACM
The working set model for program behavior
Communications of the ACM
Linux Core Kernel Commentary
In the Beginning: Recollections of Software Pioneers
In the Beginning: Recollections of Software Pioneers
Dynamic Cluster Resource Allocations for Jobs with Known and Unknown Memory Demands
IEEE Transactions on Parallel and Distributed Systems
Page Replacement in Linux 2.4 Memory Management
Proceedings of the FREENIX Track: 2001 USENIX Annual Technical Conference
Adaptive Memory Allocations in Clusters to Handle Unexpectedly Large Data-Intensive Jobs
IEEE Transactions on Parallel and Distributed Systems
Dynamic tracking of page miss ratio curve for memory management
ASPLOS XI Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
Token-ordered LRU: an effective page replacement policy and its implementation in Linux systems
Performance Evaluation - Performance modelling and evaluation of high-performance parallel and distributed systems
Program-level adaptive memory management
Proceedings of the 5th international symposium on Memory management
BI batch manager: a system for managing batch workloads on enterprise data-warehouses
EDBT '08 Proceedings of the 11th international conference on Extending database technology: Advances in database technology
Energy optimization schemes in cluster with virtual machines
Cluster Computing
Waste not, want not: resource-based garbage collection in a shared environment
Proceedings of the international symposium on Memory management
Swap fairness for thrashing mitigation
ECSA'13 Proceedings of the 7th European conference on Software Architecture
Hi-index | 0.00 |
Operating system designers attempt to keep high CPU utilization by maintaining an optimal multiprogramming level (MPL). Although running more processes makes it less likely to leave the CPU idle, too many processes adversely incur serious memory competition, and even introduce thrashing, which eventually lowers CPU utilization. A common practice to address the problem is to lower the MPL with the aid of process swapping out/in operations. This approach is expensive and is only used when the system begins serious thrashing. The objective of our study is to provide highly responsive and cost-effective thrashing protection by adaptively conducting priority page replacement in a timely manner. We have designed a dynamic system Thrashing Protection Facility (TPF) in the system kernel. Once TPF detects system thrashing, one of the active processes will be identified for protection. The identified process will have a short period of privilege in which it does not contribute its least recently used (LRU) pages for removal so that the process can quickly establish its working set, improving the CPU utilization. With the support of TPF, thrashing can be eliminated in its early stage by adaptive page replacement, so that process swapping will be avoided or delayed until it is truly necessary. We have implemented TPF in a current and representative Linux kernel running on an Intel Pentium machine. Compared with the original Linux page replacement, we show that TPF consistently and significantly reduces page faults and the execution time of each individual job in several groups of interacting SPEC CPU2000 programs. We also show that TPF introduces little additional overhead to program executions, and its implementation in Linux (or Unix) systems is straightforward.