RUNTIME SUPPORT FOR EFFECTIVE MEMORY MANAGEMENT IN LARGE-SCALE APPLICATIONS

Open Access
- Author:
- Vilayannur, Murali Natarajan
- Graduate Program:
- Computer Science and Engineering
- Degree:
- Doctor of Philosophy
- Document Type:
- Dissertation
- Date of Defense:
- June 02, 2005
- Committee Members:
- Anand Sivasubramaniam, Committee Chair/Co-Chair
Mahmut Taylan Kandemir, Committee Chair/Co-Chair
Padma Raghavan, Committee Member
Natarajan Gautam, Committee Member
Rajeev Thakur, Committee Member
Robert Craig Ross, Committee Member - Keywords:
- Memory management
parallel file-systems
I/O
scheduling
caching
virtual memory - Abstract:
- As processor speeds continue to advance at a rapid pace, accesses to the I/O subsystem are increasingly becoming the bottleneck in the performance of large-scale applications. In spite of technological advances in peripheral devices, provisioning and maintenance of large buffers in memory remains a crucial technique for achieving good performance, but is only effective if we can achieve good hit rates. This thesis describes the runtime system support to determine what should go into an I/O cache and when to avoid accessing it, as well as techniques to improve the hit ratio itself by choosing appropriate candidate cache blocks for eviction/replacement. Such techniques are equally applicable for both explicitly and implicitly I/O intensive applications that access data either through a file-system interface or through the virtual memory interface. While the afore-mentioned techniques can boost the performance for a single I/O intensive application, an important consideration that needs to be addressed for practical reasons is the effects of multi-programming, where multiple applications are run simultaneously for better resource utilization. The thesis will conclude with the design and implementation of a runtime system scheduling strategy on top of an un-modified process scheduler in the operating system that can be used to ensure that performance of many large-scale applications does not get degraded in multi-programmed scenarios.