19. 가상 메모리와 페이징: 주소 변환·페이지 폴트·copy-on-write

난이도 중 해설 보기 →
문제

문제 19 — 가상 메모리와 페이징: 주소 변환·페이지 폴트·copy-on-write

게임 서버 프로세스는 물리 RAM 을 직접 다루지 않고 운영체제가 제공하는 가상 주소 공간에서 동작한다. 이 추상화가 어떻게 구현되는지, 그리고 그 비용이 서버 성능·안정성에 어떻게 드러나는지 설명하라.

다음을 포함해 답하라.

  1. 가상↔물리 주소 변환: 페이지(page)와 프레임(frame)의 개념, 페이지 테이블(page table)이 가상 페이지 번호를 물리 프레임 번호로 매핑하는 원리를 설명하라. 다단계(multi-level) 페이지 테이블이 왜 필요한지(단일 배열의 크기 문제)도 다뤄라.

  2. TLB(Translation Lookaside Buffer): 매 메모리 접근마다 페이지 테이블을 걷는 비용을 어떻게 줄이는지, TLB 미스가 비쌀 수 있는 이유(페이지 테이블 워크), 컨텍스트 스위칭 시 TLB 플러시/ASID 를 설명하라.

  3. 페이지 폴트(page fault): 마이너 폴트와 메이저 폴트의 차이, 디맨드 페이징(demand paging)과 지연 할당(lazy allocation, 예: malloc/mmap 후 첫 접근 시 실제 매핑), 그리고 메이저 폴트(디스크/스왑 접근)가 게임 서버의 틱 지연(tail latency)에 미치는 영향을 논하라.

  4. copy-on-write(COW): fork 시 부모/자식이 물리 페이지를 공유하다가 쓰기 시점에 복사하는 메커니즘, 이것이 왜 유용하며 어떤 함정(첫 쓰기 시 폴트 폭풍, GC 언어에서 페이지 더럽힘)을 낳는지 설명하라.

  5. 서버 실무 적용: 대용량 인메모리 상태(맵/캐시)를 다루는 게임 서버가 페이지 폴트로 인한 지연을 줄이기 위해 쓰는 기법(사전 폴트/MAP_POPULATE, 페이지 잠금 mlock, 스왑 비활성화, huge page 로 TLB 커버리지 확대)을 간단히 정리하라.

답안 작성
내 답안 · 자동 저장

직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.