Abstract
On modern operating systems such as Linux, virtual memory is a general way to provide a large address space to applications by using main memory and storage devices. Recently, storage devices have been improved in terms of latency and bandwidth, and it is expected that applications with large memory show high-performance if next-generation storage devices are considered. However, due to the overhead of virtual memory subsystem, the paging system can not exploit the performance of next-generation storage devices. In this study, we propose several optimization techniques to extend memory with next-generation storage devices. The techniques are to allocate block addresses of storage devices for write-back operations as well as to configure the system parameters, and we implement the techniques on Linux 3.14.3. Our evaluation through using multiple benchmarks shows that our system has 3 times (/24%) better performance on average than the baseline system in the micro(/macro)-benchmark.
Linux와 같은 발전된 운영 체제의 가상 메모리 관리 기술은 메인 메모리와 하드디스크와 같은 저장 장치를 이용하여 응용 프로그램에게 가상의 큰 주소 공간을 제공해준다. 최근 저장 장치는 속도의 측면에서 비약적인 발전을 보이고 있기 때문에 고속의 차세대 저장 장치를 메모리 확장에 이용하면 메모리를 많이 사용하는 응용의 성능이 좋아질 것이다. 그러나 기존 운영체제의 가상 메모리 관리 오버헤드 때문에 응용의 성능을 극대화시킬 수 없다. 이러한 문제를 해결하기 위해 본 논문은 차세대 저장 장치를 메모리 확장에 사용했을 때 쓰기 연산을 위한 블록 주소를 할당하는 향상된 알고리즘 및 시스템 튜닝 기법들에 대해 제안하였고, 제안된 기법들을 Linux 3.14.3의 가상 메모리 관리 시스템에 구현하였다. 그리고 구현된 시스템을 벤치마크를 이용하여 실험을 하였고, 마이크로 벤치마크의 경우에 평균 3배, 과학 계산 벤치마크 응용의 경우에 24%의 성능 향상이 있음을 보였다.