Browse > Article

APC: An Adaptive Page Prefetching Control Scheme in Virtual Memory System  

Ahn, Woo-Hyun (광운대학교 컴퓨터소프트웨어학과)
Yang, Jong-Cheol (LG전자 MC사업본부)
Oh, Jae-Won (가툴릭대학교 컴퓨터정보공학부)
Abstract
Virtual memory systems (VM) reduce disk I/Os caused by page faults using page prefetching, which reads pages together with a desired page at a page fault in a single disk I/O. Operating systems including 4.4BSD attempt to prefetch as many pages as possible at a page fault regardless of page access patterns of applications. However, such an approach increases a disk access time taken to service a page fault when a high portion of the prefetched pages is not referenced. More seriously, the approach can cause the memory pollution, a problem that prefetched pages not to be accessed evict another pages that will be referenced soon. To solve these problems, we propose an adaptive page prefetching control scheme (APC), which periodically monitors access patterns of prefetched pages in a process unit. Such a pattern is represented as the ratio of referenced pages among prefetched ones before they are evicted from memory. Then APC uses the ratio to adjust the number of pages that 4.4BSD VM intends to prefetch at a page fault. Thus APC allows 4.4BSD VM to prefetch a proper number of pages to have a better effect on reducing disk I/Os, though page access patterns of an application vary in runtime. The experiment of our technique implemented in FreeBSD 6.2 shows that APC improves the execution times of SOR, SMM, and FFT benchmarks over 4.4BSD VM by up to 57%.
Keywords
virtual memory system; page prefetching; 4.4BSD operating system;
Citations & Related Records
Times Cited By KSCI : 1  (Citation Analysis)
연도 인용수 순위
1 G. Dini, G. Lettieri, and L. Lopriore, "Caching and Prefetching Algorithms for Programs with Looping Reference Patterns," The Computer Journal, vol.49, no.1, pp.42-61, 2006.   DOI
2 I. Song and Y. Cho, "Page Prefetching Based on Fault History," In Proc. of the 3rd Mach Symposium on USENIX, pp.203-213, 1993.
3 J.-L. Baer and G. R. Sager, "Dynamic Improvement of Locality in Virtual Memory Systems," IEEE Transactions on Software Engineering, vol.2, no.1, pp.54-62, 1976.
4 R. N. Horspool and R. M. Huberman, "Analysis and Development of Demand Prepaging Policies," Journal of Systems and Software, vol.7, no.3, pp183-194, 1987.   DOI   ScienceOn
5 S. F. Kaplan, L. A. McGeoch, and M. F. Cole, "Adaptive Caching for Demand Prepaging," In Proc. of the 3rd International Symposium on Memory Management (ISMM'02), pp.114-126, 2002.
6 J. Knapka, Outline of Linux memory management system, http://www.thehackademy.net/madchat/ebooks/Mem_virtuelle/linux-mm/vmoutline.html.
7 A. Siberschats, P. B. Galvin, and G. Gagne, Operating System Concepts, 8th Ed., pp.405, Wiley, 2008.
8 M. K. McKusick and G. V. Neville-Neil, The Design and Implementation of the FreeBSD Operating System, pp.183, Addison-Wesley, 2004.
9 Scimark2 benchmark home page. Web site: http://math.nist.gov/scimark2.
10 FFT home page. Web site: http://www.fftw.org.
11 R. H. Patterson, G. A. Gibson, E. Ginting, D. Stodolsky, and J. Zelenka, "Informed Prefetching and Caching," In Proc. of the 15th ACM Symp. on Operating Systems Principles, pp.79-95, 1995.
12 P. Cao, E. Felten, A. Karlin, and K. Li, "A Study of Integrated Prefetching and Caching Strategies," In Proc. of the 1995 ACM SIGMETRICS, pp.188-197, 1995.
13 H. Lei and D. Duchamp, "An Analytical Approach to File Prefetching," In Proc. of the USENIX 1997 Annual Technical Conference, pp.275-288, 1997.
14 E. Shriver, C. Small, and K. A. Smith, "Why Does File System Prefetching Work?," In Proc. of the USENIX 1999 Annual Technical Conference, pp.71-83, 1999.
15 S. Jiang and X. Zhang, "LIRS: An Efficient Low Inter-Reference Recency Set Replacement Policy to Improve Buffer Cache Performance," In Proc. of the 2002 ACM SIGMETRICS, pp.31-42, 2002.
16 N. Megiddo and D. S. Modha, "ARC: A Self- Tuning, Low Overhead Replacement Cache," In Proc. of the 2nd USENIX Conference on File and Storage Technologies (FAST 03), pp.115-130, 2003.
17 S. Bansal and D. Modha, "CAR: Clock with Adaptive Replacement," In Proc. of the 3rd USENIX Conference on File and Storage Technologies (FAST 04), pp.187-200, 2004.
18 Y. Smaragdakis, S. Kaplan, and P. Wilson, "EELRU: Simple and Effective Adaptive Page Replacement," In Proc. of SIGMETRICS 1999, pp.122-133, 1999.
19 S. Jiang, F. Chen, and X. Zhang, "CLOCK-Pro: An Effective Improvement of the CLOCK Replacement," In Proc. of USENIX 2005 Annual Technical Conference, pp.323-336, 2005.
20 R. Cervera, T. Cortes, and Y. Becerra, "Improving Application Performance through Swap Compression," In Proc. of USENIX 1999 Annual Technical Conference, pp.207-218, 1999.
21 D. Black, J. Carter, G. Feinberg, R. MacDonald, S. Mangalat, E. Sheinbrood, J. V. Sciver, and P. Wang, "OSF/1 Virtual Memory Improvements," In Proc. of USENIX Mach Symposium, pp.87-103, 1991.
22 J. Yang, W. H. Ahn, J. Oh, "MOC: A Multiple- Object Clustering Scheme for High Performance of Page-out in BSD VM," Journal of KIISE: Computer Systems and Theory, vol.36, no.6, pp.476-487, Dec. 2009 (in Korean)   과학기술학회마을
23 A. D. Brown and T. C. Mowry, "Compiler-Based I/O Prefetching for Out-of-Core Applications," Journal of ACM Transactions on Computer Systems (TOCS), vol.19, no.2, pp.111-170, 2001.   DOI   ScienceOn
24 S. Cho and Y. Cho, "Page Fault Behavior and Two Prepaging Schemes," In Proc. of the 1996 IEEE 15th Annual International Phoenix Conference on Computers and Communications, pp.15-21, 1996.
25 R. E. Bryant and D. R, O'Hallaron, Computer Systems: A Programmer's Perspective, pp.447-458, Prentice Hall, 2003.
26 K. S. Trivedi, "Prepaging and applications to array algorithms," IEEE Transactions on Computers, vol.25, no.9, pp.915-921, September 1976.
27 K. S. Trivedi, "An analysis of prepaging," Computing, vol.22, no.3, pp.191-210, 1979.   DOI   ScienceOn