Persistent memory (PM) is rising as an excellent candidate for the next-generation memory resource. A tiered-memory system refers to a system where persistent memory is used as the second-level memory resource after DRAM. In this work, we investigate the memory usage characteristics in an environment where DRAM and PM are used simultaneously by multiple processes. We find that, in a tiered memory system, appropriate DRAM partitioning can yield higher system performance. Based on key observations of applications' memory usage patterns and the unique characteristics of tiered-memory systems, we design a policy for the operating system to dynamically allocate DRAM resource among processes. Our policy is reactive and efficient; it does not require any prior knowledge of applications and uses negligible system resources. We implement and evaluate our policy in the Linux kernel using its native features. The experimental results show that the new partitioning policy well understands, captures, and exploits how applications use memory in the target system to achieve higher system performance.
영구 메모리(Persistent Memory - PM)는 차세대 메모리 후보로 떠오르고 있다. 영구 메모리를 DRAM 다음 단계의 메모리 자원으로 사용하는 시스템을 계층 메모리 시스템이라 한다. 본 연구는 다수의 프로세스가 DRAM과 PM을 동시다발적으로 사용하는 환경에서의 메모리 사용 특성을 조사한다. 그리고 그 결과 적절한 DRAM 분할 기법을 통해 더 높은 시스템 성능을 끌어낼 수 있음을 알아냈다. 응용 프로그램의 메모리 사용 패턴과 계층 메모리 시스템의 고유한 특성에서 알아낸 주요 특징을 기반으로 프로세스 간 DRAM 자원을 동적으로 할당하는 정책을 설계했다. 이 정책은 각 응용 프로그램의 DRAM 접근 빈도에 즉각적으로 반응하며 추가적인 오버해드가 적어 효과적이다. 응용 프로그램에 대한 어떠한 사전 지식도 필요하지 않으며 매우 적은 시스템 자원을 필요로 한다. 본 연구에서는 이 정책을 실제 환경에서 동작하는 리눅스 커널에 구현해 실험한다. 실험 결과는 새로운 분할 기법 정책이 응용프로그램의 메모리 사용 방식을 잘 포착하고 상황에 맞게 대응하여 더 높은 시스템 성능을 달성한다는 것을 보여준다.