20. 페이지 교체 알고리즘과 스래싱(thrashing)

난이도 중 해설 보기 →
문제

문제 20 — 페이지 교체 알고리즘과 스래싱(thrashing)

물리 메모리가 부족해 페이지를 디스크로 내보내야 할 때, 운영체제는 어떤 페이지를 쫓아낼지(victim) 골라야 한다. 게임 서버가 대용량 맵/에셋을 메모리 매핑하거나 컨테이너 메모리 제한 근처에서 동작할 때 이 선택이 성능을 좌우한다.

다음을 설명하라.

  1. 페이지 교체가 필요한 상황(디맨드 페이징에서 프레임 부족)을 요약하고, 교체 알고리즘의 목표(페이지 폴트율 최소화)를 설명하라.

  2. 대표적 교체 알고리즘을 비교하라:

    • OPT(Belady 최적) — 왜 실현 불가능하지만 기준으로 쓰는가
    • FIFO — 단순함과 Belady의 역설(anomaly)
    • LRU — 원리와 정확한 구현의 비용(왜 그대로 구현하기 어려운가)
    • Clock(2차 기회) — LRU 근사로 실무에서 쓰이는 이유, reference 비트
  3. 워킹셋(working set) 모델이란 무엇이며, 워킹셋이 물리 프레임보다 클 때 생기는 스래싱을 설명하라. 스래싱의 증상과 원인(다중 프로그래밍 정도 과다)을 논하라.

  4. 스래싱을 방지·완화하는 기법을 설명하라(워킹셋 기반 프레임 할당, PFF(page fault frequency) 제어, 다중 프로그래밍 정도 조절, 프리페치).

  5. 게임 서버 관점에서, 이 지식이 어떻게 적용되는가? (핫 데이터의 상주성 확보, mlock/거대 페이지, 컨테이너 메모리 제한과 OOM, mmap 에셋의 접근 지역성, GC 언어에서 페이징이 GC 와 겹칠 때의 위험)

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

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