프레임 할당 (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 | 예측 가능, 독립적 | 메모리 활용도 낮을 수 있음 |
Linux의 메모리 관리
섹션 제목: “Linux의 메모리 관리”- 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프레임
→ 비례 할당이 프로세스 크기에 맞는 공정한 배분