핵심 인사이트 (3줄 요약)

  1. 본질: PFF (Page Fault Frequency)는 프로세스가 페이지 부재 (Page Fault)를 얼마나 자주 내는지를 피드백 신호로 삼아, 프레임 수를 동적으로 늘리거나 줄이는 메모리 제어 방식이다.
  2. 가치: 워킹 셋 모델처럼 모든 참조를 정밀 추적하지 않고도, 실제 성능 악화 신호만 보고 대응하므로 구현 오버헤드와 운영 복잡도를 낮출 수 있다.
  3. 판단 포인트: PFF는 단순히 프레임을 더 주는 기법이 아니라, 임계치·히스테리시스·시스템 전체 메모리 여유를 함께 다뤄 스래싱 (Thrashing)을 막는 운영체제 제어 전략으로 이해해야 한다.

Ⅰ. 개요 및 필요성

PFF (Page Fault Frequency)는 프로세스별 페이지 부재 빈도를 관찰해 적정 프레임 수를 조절하는 동적 프레임 할당 기법이다. 핵심은 "현재 이 프로세스가 계산보다 페이지 적재에 더 많은 시간을 쓰고 있는가"를 직접 측정하는 데 있다. 페이지 부재가 지나치게 잦으면 메모리가 부족하다는 뜻이고, 오랫동안 부재가 거의 없으면 프레임을 과하게 쥐고 있을 가능성이 높다.

이 기법이 필요한 이유는 고정 할당만으로는 프로그램의 실행 국면 변화를 따라가기 어렵기 때문이다. 같은 프로세스라도 초기화 구간, 반복 계산 구간, 대용량 데이터 접근 구간에서 필요한 페이지 수가 달라진다. 프레임을 항상 적게 주면 페이지를 불러오느라 CPU (Central Processing Unit)가 놀게 되고, 항상 넉넉히 주면 다른 프로세스가 쓸 물리 메모리까지 잠식해 멀티프로그래밍 수준이 떨어진다.

워킹 셋 (Working Set) 모델이 더 정교한 해법이지만, 모든 참조 패턴을 계속 추적해야 하므로 구현 비용이 크다. 반면 PFF는 결과 신호인 페이지 부재만 보면 되므로, 운영체제 입장에서는 더 실용적인 근사 제어 수단이 된다. 즉 PFF는 "지역성(Locality)을 직접 재지 못하면, 지역성이 깨졌을 때 나타나는 증상부터 보자"는 운영 철학에 가깝다.

  • 📢 섹션 요약 비유: PFF는 학생이 책을 얼마나 자주 떨어뜨리는지 보고 책상 크기를 조절하는 방식과 같다. 너무 자주 떨어뜨리면 책상이 좁은 것이고, 한참 동안 떨어뜨리지 않으면 너무 큰 책상을 혼자 쓰고 있을 수 있다.

Ⅱ. 아키텍처 및 핵심 원리

PFF의 제어 흐름은 단순하지만 의미는 분명하다. 운영체제 (Operating System)는 프로세스마다 최근 페이지 부재 빈도 또는 페이지 부재 간 시간 간격을 기록하고, 이를 상한선과 하한선에 비교한다. 상한선을 넘으면 프레임을 추가하고, 하한선 아래로 내려가면 일부 프레임을 회수하며, 그 사이 구간에서는 현재 할당을 유지한다.

상태 구간관찰 신호운영체제의 판단일반적 조치
상한선 초과페이지 부재가 너무 잦음현재 워킹 셋을 수용하지 못함프레임 추가 할당 또는 교체 압력 완화
안정 구간페이지 부재가 허용 범위현재 메모리 균형이 적절함현상 유지
하한선 미만페이지 부재가 너무 드묾여유 프레임을 과다 점유 중일 수 있음프레임 회수 후 공용 풀 반환

아래 그림은 PFF가 "높은 부재율에는 공급 확대, 낮은 부재율에는 회수"라는 닫힌 루프 제어를 수행함을 보여준다.

┌──────────────────────────────────────────────────────────────────────┐
│                 PFF (Page Fault Frequency) 제어 루프                │
├──────────────────────────────────────────────────────────────────────┤
│ 프로세스 실행                                                        │
│      │                                                               │
│      ▼                                                               │
│ 페이지 부재 발생 수 측정 ──▶ 현재 부재율 계산 ──▶ 임계치 비교        │
│                                               │                      │
│                         ┌─────────────────────┼────────────────────┐ │
│                         │                     │                    │ │
│                         ▼                     ▼                    ▼ │
│                  상한선 초과            안정 구간            하한선 미만 │
│                         │                     │                    │ │
│                         ▼                     ▼                    ▼ │
│                  프레임 추가            현상 유지            프레임 회수 │
│                         └──────────────┬──────┴──────────────┘      │
│                                        ▼                             │
│                               다음 실행 구간 재관찰                 │
└──────────────────────────────────────────────────────────────────────┘

실무적으로 중요한 점은 히스테리시스 (Hysteresis)다. 상한선과 하한선을 너무 가깝게 두면 프레임을 줬다 뺐다 하는 진동이 생긴다. 따라서 PFF는 단일 임계치보다 "완충 구간이 있는 두 임계치"로 설계하는 편이 안정적이다. 또한 페이지 부재율이 높다고 항상 프레임을 무한정 추가할 수는 없으므로, 시스템 전체의 여유 프레임 수와 연계해 판단해야 한다.

  • 📢 섹션 요약 비유: PFF는 자동차의 자동 변속기와 비슷하다. 엔진이 너무 버거워하면 기어를 낮춰 힘을 보태고, 너무 여유로우면 기어를 높여 자원을 아끼지만, 경계값이 민감하면 변속 충격만 커진다.

Ⅲ. 비교 및 연결

PFF를 제대로 이해하려면 워킹 셋 모델과의 차이를 먼저 봐야 한다. 워킹 셋은 "최근에 실제로 참조된 페이지 집합"을 직접 근사하려는 방식이고, PFF는 그 집합이 부족할 때 드러나는 결과인 페이지 부재율을 이용한다. 즉 워킹 셋이 원인 중심 접근이라면, PFF는 증상 중심 접근이다.

비교 축워킹 셋 (Working Set)PFF (Page Fault Frequency)
관찰 대상최근 참조된 페이지 집합페이지 부재의 빈도
제어 성격예방적·정교한 제어반응적·실용적 제어
오버헤드상대적으로 큼상대적으로 작음
장점스래싱을 더 이론적으로 방지구현과 운영이 단순
한계측정 비용과 근사 복잡도폴트가 발생한 뒤 반응

또한 PFF는 지역 교체 (Local Replacement) 정책과 잘 어울린다. 어떤 프로세스의 페이지 부재율이 높다고 해서 다른 프로세스의 프레임을 무작정 빼앗기 시작하면, 문제를 시스템 전체로 확산시킬 수 있기 때문이다. 그래서 PFF는 개별 프로세스의 프레임 조정, 전체 메모리 압박, 스래싱 감지, 프로세스 일시 중지(Suspend) 정책과 함께 해석해야 한다.

연결 관점에서 보면 PFF는 페이지 교체 알고리즘의 대체재가 아니라 상위 제어기다. CLOCK (Clock)이나 NUR (Not Used Recently) 같은 교체 알고리즘이 "주어진 프레임 안에서 누구를 내보낼지"를 결정한다면, PFF는 그보다 한 단계 위에서 "이 프로세스에게 프레임이 몇 개나 필요한지"를 조정한다. 따라서 PFF는 가상 메모리 시스템의 운영 정책 계층에 놓인다고 보는 것이 맞다.

  • 📢 섹션 요약 비유: 워킹 셋이 선수 몸 상태를 정밀 측정하는 트레이너라면, PFF는 경기 중 선수의 숨 가쁨을 보고 교체 여부를 판단하는 감독과 같다. 둘 다 목적은 같지만, 보는 신호와 개입 시점이 다르다.

Ⅳ. 실무 적용 및 기술사 판단

실무에서 PFF를 적용할 때 가장 먼저 봐야 할 것은 "높은 페이지 부재율의 원인이 정말 프레임 부족인가"이다. 순차 스캔처럼 원래 페이지 재사용성이 낮은 작업은 프레임을 더 줘도 부재율이 크게 떨어지지 않을 수 있다. 이런 경우에는 무작정 프레임을 늘리기보다, 메모리 맵 파일 (Memory-Mapped File), 프리페치, 배치 크기 조정 같은 상위 기법이 더 효과적이다.

반대로 여러 프로세스가 동시에 상한선을 넘는다면, 문제는 개별 프로세스가 아니라 시스템 전체 메모리 과부하일 가능성이 높다. 이때는 프레임 재분배만으로 해결되지 않으며, 일부 프로세스를 중지하거나 스왑 아웃 (Swap-Out)해 멀티프로그래밍 정도를 낮춰야 한다. 즉 PFF는 "누가 더 받아야 하는가"뿐 아니라 "지금은 누군가 물러나야 하는가"를 판단하는 신호로도 쓰인다.

기술사 답안형 체크포인트

  1. 임계치 설계: 상한선·하한선 간격을 충분히 둬 진동을 방지할 것.
  2. 관찰 단위 선정: 시간당 부재 수, 참조 수 대비 부재율 등 측정 기준을 일관되게 정할 것.
  3. 전체 메모리 연계: 자유 프레임이 없을 때는 프레임 추가가 아니라 부하 제어로 넘어갈 것.
  4. 워크로드 특성 반영: 스트리밍성 접근과 반복 접근을 같은 기준으로 보지 말 것.

피해야 할 안티패턴

  • 페이지 부재율이 높다는 이유만으로 모든 프로세스에 일괄 증설

  • 상한선과 하한선을 너무 촘촘히 잡아 프레임이 계속 출렁이는 설계

  • 교체 알고리즘 문제를 프레임 수 문제로만 오판하는 운영

  • 📢 섹션 요약 비유: PFF 운영은 응급실 분류와 닮았다. 환자가 많다고 모든 사람에게 침대를 더 주는 것이 아니라, 정말 산소가 부족한 사람인지, 아니면 잠깐 숨이 찬 사람인지 구분하고 병상 전체 상황까지 같이 봐야 한다.


Ⅴ. 기대효과 및 결론

PFF가 잘 작동하면 페이지 부재율이 높은 프로세스에는 필요한 만큼의 프레임이 공급되고, 여유가 큰 프로세스의 프레임은 공용 자원으로 환원된다. 그 결과 시스템은 스래싱 위험을 줄이면서도 전체 처리량과 메모리 활용률을 함께 높일 수 있다. 특히 워크로드가 시간에 따라 크게 변하는 환경에서, PFF는 고정 할당보다 훨씬 유연한 운영 기준이 된다.

다만 PFF는 어디까지나 반응형 제어다. 이미 페이지 부재가 발생한 뒤에야 신호를 읽으므로, 극단적으로 급격한 작업 전환에는 선제 대응이 어렵다. 또한 임계치 설정이 부정확하면, 프레임이 널뛰거나 반대로 필요한 순간에도 충분히 늘어나지 않는 문제가 생길 수 있다.

결론적으로 PFF는 "워킹 셋을 값비싸게 직접 계산하는 대신, 페이지 부재라는 저렴한 센서로 간접 제어하는 방식"으로 기억하면 좋다. 시험과 실무 모두에서 중요한 포인트는 단순한 정의보다도, PFF가 페이지 교체·프레임 할당·스래싱 제어를 연결하는 운영체제의 피드백 제어 메커니즘이라는 점이다.

  • 📢 섹션 요약 비유: PFF는 집 안 전기 차단기를 세밀한 전력 분석기 대신 쓰는 것과 같다. 어디서 얼마를 쓰는지 완벽히 몰라도, 과부하가 걸리는 순간을 감지해 회로를 나누고 부하를 조절하면 집 전체를 안전하게 운영할 수 있다.

📌 관련 개념 맵

개념연결 포인트
페이지 부재 (Page Fault)PFF가 관찰하는 직접 신호이자 프레임 부족의 증상
워킹 셋 모델 (Working Set Model)PFF가 근사적으로 대체하려는 정교한 기준 모델
스래싱 (Thrashing)PFF가 조기 감지하고 완화해야 하는 대표적 실패 상태
지역 교체 (Local Replacement)PFF의 프레임 조정 효과를 개별 프로세스에 안정적으로 반영하는 정책
페이지 교체 알고리즘 (Page Replacement Algorithm)PFF가 정한 프레임 수 안에서 희생 페이지를 선택하는 하위 메커니즘

📈 관련 키워드 및 발전 흐름도

고정 프레임 할당
      │
      ▼
스래싱 (Thrashing) 문제 인식
      │
      ▼
워킹 셋 모델 (Working Set Model)
      │
      ▼
PFF (Page Fault Frequency)
      │
      ├────────▶ 동적 프레임 할당
      │
      └────────▶ 부하 제어 · 프로세스 중지 · 스왑 정책

이 흐름은 "고정 배분의 한계 인식 → 정교한 이론 모델 → 실용적 피드백 제어 → 시스템 전체 부하 관리"로 이어지는 발전 맥락을 보여준다.

👶 어린이를 위한 3줄 비유 설명

  1. 컴퓨터는 어떤 친구가 책을 자꾸 바닥에 떨어뜨리면 책상이 너무 작다고 생각해 더 넓은 자리를 줘요.
  2. 반대로 책을 거의 안 쓰는 친구는 너무 큰 자리를 혼자 쓰는 것 같아서 조금 줄여도 괜찮다고 봐요.
  3. 이렇게 해야 교실 전체에서 정말 바쁜 친구들이 필요한 만큼 자리를 나눠 쓸 수 있어요.