7. 페이지 폴트, 디맨드 페이징, 스와핑
난이도 중 해설 보기 →
문제
문제 7 — 페이지 폴트, 디맨드 페이징, 스와핑
면접 질문
-
"페이지 폴트(page fault)"가 무엇인가요? 마이너 폴트(minor/soft)와 메이저 폴트(major/hard)의 차이를 설명하고, 각각이 발생하는 상황과 비용 차이를 말해보세요.
-
"디맨드 페이징(demand paging)"이란 무엇이며, 프로그램을 메모리에 통째로 올리지 않고 필요할 때 페이지를 가져오면 어떤 이점과 부작용이 있나요? (lazy allocation, copy-on-write 포함해서)
-
스와핑(swapping)/페이징 아웃이 무엇이고, "스래싱(thrashing)"은 어떤 상황에서 발생하나요? 워킹셋(working set)과 어떤 관계가 있나요?
응용 시나리오
게임 서버를 운영하는데, 물리 RAM 대비 메모리 사용량이 슬슬 한계에 가까워지자 다음 증상이 나타납니다.
-
평소엔 멀쩡하다가 어느 순간부터 응답 지연이 급격히 치솟고 CPU는 한가한데 디스크 I/O가 폭증한다.
-
한 번 접근하지 않던 영역(예: 오래 안 본 맵 구역, 비활성 플레이어 데이터)을 다시 만질 때 첫 접근만 유독 느리다.
-
서버 프로세스를 새로 fork한 워커가 처음엔 메모리를 거의 안 먹다가 쓰기를 시작하면 메모리가 늘어난다.
-
위 세 증상을 각각 메이저 페이지 폴트/스와핑, 디맨드 페이징, copy-on-write 관점에서 진단해보세요.
-
실시간 게임 서버에서 스와핑/스래싱을 피하기 위한 운영·설계 대책(메모리 상한, 스왑 비활성, 워킹셋 관리, 사전 터치/락 등)을 제안하세요.
답안 작성
내 답안 · 자동 저장
직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.