초록
BSD 가상 메모리 시스템(BSD VM)은 페이지-아웃 시 디스크 I/O 횟수를 줄이기 위해 클러스터링 기법을 사용한다. 이 기법은 페이지-아웃 대상 페이지와 가상 메모리 공간에서 인접한 변경 페이지들을 그 대상 페이지와 함께 클러스터(그룹)를 만들어 한 번의 디스크 I/O로 디스크에 저장한다. 하지만 응용 프로그램이 가상 메모리 공간에서 서로 인접하지 않은 다수의 페이지들을 변경하면 클러스터들의 크기가 작아져 클러스터링의 효과가 감소된다. 이 문제점을 해결하기 위해 본 논문에서는 Multiple-Object Clustering(MOC) 기법을 제안한다. MOC는 클러스터별로 디스크 I/O를 하는 대신 여러 클러스터들을 모아 단일 디스크 쓰기로 페이지-아웃시킨다. 따라서 이 페치지-아웃 방식은 디스크 I/O 횟수를 감소시켜 시스틴 성능을 크게 향상시킨다. MOC는 성능 검증을 위해 FreeBSD 6.2 운영체제 커널에서 구현되었다. NS2, Scimark2 SOR, nbench LU 벤치마크를 통한 MOC 성능 측정 결과 기존 BSD VM보다 MOC의 실행 씨간이 9~45% 단축되었다.
The virtual memory system in 4.4 BSD operating systems exploits a clustering scheme to reduce disk I/Os in paging out (or flushing) modified pages that are intended to be replaced in order to make free rooms in memory. Upon the page out of a victim page, the scheme stores a cluster (or group) of modified pages contiguous with the victim in the virtual address space to swap disk at a single disk write. However, it fails to find large clusters of contiguous pages if applications change pages not adjacent with each other in the virtual address space. To address the problem, we propose a new clustering scheme called Multiple-Object Clustering (MOC), which together stores multiple clusters in the virtual address space at a single disk write instead of paging out the clusters to swap space at separate disk I/Os. This multiple-cluster transfer allows the virtual memory system to significantly decrease disk writes, thus improving the page-out performance. Our experiments in the FreeBSD 6.2 show that MOC improves the execution times of realistic benchmarks such as NS2, Scimark2 SOR, and nbench LU over the traditional clustering scheme ranging from 9 to 45%.