11. Copy-on-Write와 fork, 페이지 캐시·mmap(메모리 매핑)
난이도 중 해설 보기 →
문제
문제 11 — Copy-on-Write와 fork, 페이지 캐시·mmap(메모리 매핑)
서버 프로세스가 거대한 인메모리 상태(수 GB)를 들고 있는데, 이를 멈추지 않고 디스크에 스냅샷하고 싶다. 흔한 기법이 fork() 후 자식이 스냅샷을 쓰는 것이다(예: Redis의 BGSAVE). 다음에 답하라.
-
Copy-on-Write(COW) 가 무엇인가?
fork()직후 부모와 자식의 가상 메모리·물리 페이지가 어떤 상태가 되고, 어느 쪽이 어디에 쓰기를 했을 때 무슨 일이 일어나는지(페이지 폴트 → 복사) 페이지 테이블 관점에서 설명하라. -
위 "fork 후 스냅샷" 기법의 장점은 무엇인가? 그리고 부모가 스냅샷 중에 상태를 계속 수정하면 메모리 사용량과 지연(latency)에 어떤 일이 생기는가? 가비지 컬렉터나 메모리 할당기가 모든 페이지를 건드리는 행위가 왜 COW의 이점을 무너뜨릴 수 있는지 설명하라.
-
페이지 캐시(page cache) 란 무엇인가? 파일을
read()/write()할 때 페이지 캐시가 어떻게 개입하고, dirty 페이지의 지연 기록(writeback) 과fsync의 의미는 무엇인가? -
mmap(메모리 매핑) 은 어떻게 동작하는가?
MAP_SHARED와MAP_PRIVATE(COW)의 차이, 디맨드 페이징과 페이지 캐시와의 관계를 설명하라. 게임 서버에서 mmap이 유용한 경우와 주의점(랜덤 접근 시 페이지 폴트 지연, 매핑된 파일 변경/크기 변동 위험)을 논하라.
답안 작성
내 답안 · 자동 저장
직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.