콘텐츠로 이동

프레임 할당 (Frame Allocation)

Jan 27, 2026

프레임 할당은 시스템의 물리 메모리 프레임을 여러 프로세스에 어떻게 나누어 줄 것인가를 결정하는 정책이다. 마치 기숙사 방을 학생들에게 배분하는 것처럼, 한정된 프레임을 프로세스들에게 공정하고 효율적으로 분배해야 한다.

각 프로세스는 정상 실행을 위해 최소 프레임 수가 필요하다. 이 최솟값은 CPU 아키텍처가 결정한다. 예를 들어 IBM 370의 MVC(Move Characters) 명령어는 source, destination, 명령어 자체를 위해 최소 6개 프레임이 필요하다.

전략방식특징
균등 할당 (Equal)m개 프레임을 n개 프로세스에 m/n씩 배분단순하지만 프로세스 크기 무시
비례 할당 (Proportional)a_i = (s_i / S) x m (프로세스 크기에 비례)크기에 맞는 배분, 공정함
우선순위 기반 할당높은 우선순위 프로세스에 더 많은 프레임중요 프로세스 성능 보장

여기서 s_i는 프로세스 i의 크기, S는 모든 프로세스 크기의 합, m은 총 가용 프레임 수이다.

페이지 교체 시 어디서 victim을 선택할 수 있는지에 따라 두 가지로 나뉜다.

Global Replacement Local Replacement
┌──────────────────────┐ ┌──────────────────────┐
│ P1: [a][b][c] │ │ P1: [a][b][c] │
│ P2: [d][e][f] ◄─victim│ │ P2: [d][e][f] │
│ P3: [g][h][i] │ │ P3: [g][h][i] ◄─victim│
│ │ │ (P3 자신의 프레임만) │
│ 모든 프레임에서 선택 │ │ │
└──────────────────────┘ └──────────────────────┘
방식장점단점
Global Replacement처리량(throughput) 높음다른 프로세스에 영향, 예측 불가
Local Replacement예측 가능, 독립적메모리 활용도 낮을 수 있음
  • kswapd: 백그라운드 데몬이 여유 메모리를 모니터링하며, 부족하면 미리 페이지를 회수
  • OOM Killer: 메모리가 극도로 부족하면 프로세스를 강제 종료하여 메모리 확보
총 프레임: 60개, 프로세스 3개
프로세스 크기: P1=10KB, P2=30KB, P3=20KB (합계 S=60KB)
균등 할당:
P1 = 60/3 = 20프레임
P2 = 60/3 = 20프레임
P3 = 60/3 = 20프레임
비례 할당:
P1 = (10/60) × 60 = 10프레임
P2 = (30/60) × 60 = 30프레임
P3 = (20/60) × 60 = 20프레임
→ 비례 할당이 프로세스 크기에 맞는 공정한 배분