CCoW: 커버리지를 활용한 지역성 기반 Copy-on-Write 기법 - 하민종; 박주원; 김상훈 (정보과학회 컴퓨팅의 실제 논문지, 2022)
CoW (Copy-on-Write)는 프로세스의 포크(fork)로 인해 발생할 수 있는 불필요한 데이터 복사와 메모리 증가를 최소화할 수 있는 기법이지만, CoW가 일어날 때마다 페이지(page)의 쓰기 오류(write fault)를 처리하는 과정에서 유저-커널 모드 변경이 일어나므로, CoW가 대량으로 발생할 경우 이로 인한 오버헤드가 크다. 따라서 CoW는 포크된 후 곧바로 대량의 쓰기 작업이 이루어지는 작업에서는 비효율적이다. 본 논문에서는 이러한 문제를 해결하기 위한 방법으로 커버리지(coverage)를 활용한 지역성(locality) 기반 Copy-on-Write 기법인 Coverage Copy-on-Write (CCoW)를 제시한다. CCoW는 프로세스 주소 공간에서 CoW가 많이 발생하는 부분을 파악하여 해당 부분 전체를 미리 CoW함으로써 쓰기 오류의 횟수를 줄이고 성능을 향상시킬 수 있다.
Keywords: memory management; copy-on-write; fork; virtual memory; 메모리 관리; 카피-온-라이트; 포크; 가상 메모리